Linux


Depois que atualizei para o novo Ubuntu 8.04 LTS Hardy Heron (utilizando a opção automática pelo Gerenciador de Atualizações), quase tudo funcionou perfeitamente.

Observei até agora apenas um problema de configuração: os botões laterais “Avançar” e “Voltar” — que uso freqüentemente para navegação no histórico de páginas web (Firefox) — do meu mouse Logitech MX700 pararam de funcionar. Eles funcionavam até o Ubuntu 7.10 com as configurações que apresentei em meu artigo Mouse multi-botões no Linux.

Pesquisando na Internet, achei o artigo Logitech MX1000 Mouse on Ubuntu 8.04 Linux (Hardy Heron), 2008-04-27, cujas sugestões de configuração funcionaram para mim.

Eis o que fiz.

Primeiro, assegure-se de ter instalado o pacote xserver-xorg-input-evdev referente ao driver evdev. Se necessário, instale o pacote. Você pode fazer isso graficamente pelo Gerenciador de Pacotes Synaptic (menu Sistema > Administração) ou por linha de comando:

sudo apt-get install xserver-xorg-input-evdev

Depois, localize o nome exato do dispositivo do seu mouse.

cat /proc/bus/input/devices

No meu caso, para o Logitech MX700 encontrei N: Name=”PS2++ Logitech MX Mouse”.

Depois, edite o arquivo de configuração do X11. Antes disso, faça uma cópia de segurança.

sudo bash
cd /etc/X11/
cp -p xorg.conf xorg.conf.backup
gedit xorg.conf

Comente a configuração de InputDevice anteriormente existente para o mouse e adicione uma nova similar a esta, usando o driver evdev (minha configuração anterior usava o driver mouse):

Section "InputDevice"
	Identifier	"Logitech MX700"
	Driver		"evdev”
	Option		“Name”		“PS2++ Logitech MX Mouse”
	Option		“HWHEELRelativeAxisButtons”	“7 6″
EndSection

O Identifier pode ser livremente escolhido por você. Se o seu mouse é outro modelo, substitua pelo nome mais apropriado. Já a opção “Name” deve receber exatamente o mesmo nome encontrado no arquivo de devices.

Ainda no arquivo xorg.conf, localize a seção ServerLayout, verifique e atualize a linha InputDevice relativa ao mouse. O nome do InputDevice deve ser o exato Identifier do mouse que você definiu.

Section "ServerLayout"
	...
	Inputdevice	"Logitech MX700"
	...
EndSection

Salve o arquivo xorg.conf.

Pronto. Reinicie o X11, saindo (logout) e entrando novamente, para ativar as novas configurações.

Para testar o funcionamento de todos os botões e controles do mouse no driver evdev, você pode usar a aplicação gráfica xev. Execute a partir de uma janela de comando, pois as informações de eventos gerados na janela gráfica de teste aparecem em texto no console.

Um aviso final: Vi em alguns fóruns que a opção Option "CorePointer" não deve ser usada na seção InputDevice com o evdev. No meu caso, realmente testei adicionar esta opção e o meu mouse ficava completamente inoperante com ela.

Dois lançamentos importantes nos últimos dias.

Ontem foi lançado o NetBeans IDE 6.1 final, com várias novidades e melhorias atrativas, conforme eu havia adiantado em 7 e 27 de março.

O release oficial do NetBeans IDE 6.1 traz recursos para edição de JavaScript (coloração e validação semânticos, code completion, quick fixes e refactoring), biblioteca Spring Framework 2.5 embutida e suporte ao Spring web framework, maior integração com MySQL, melhoria no compartilhamento de bibliotecas entre projetos dependentes, suporte a Ruby/JRuby melhorado — incluindo novos quick fixes, um gerenciador de plataforma Ruby, debug rápido para JRuby. Por demanda popular, os recursos de geração do padrão bean e de CRUD JSF que ficaram de fora na versão 6.0 retornaram.

Além disso, versões preliminares (early versions) de novos módulos estão disponíveis, como o como JavaScript debugger e plugin para suporte a ClearCase. E na página de download há uma nova opção de pacote/bundle voltada para PHP: Early Access for PHP.

A versão 6.1 traz suporte a APIs web populares de SaaS (Software as a Service) com a inclusão dos serviços providos por Google, Facebook, Yahoo, YouTube na aba de Serviços, permitindo usá-los facilmente em aplicações mashup com simples arrastar-e-soltar para qualquer POJO, Servlet, JSP ou RESTful web service. O suporte a RESTful Web Services (especificação JSR 311 JAX-RS usando a implementação Jersey), disponível desde o NetBeans 6.0 como plugin, foi incluído na distribuição padrão do 6.1. E há novos plugins para suporte a Axis2 e SOAP UI.

Destacam-se também melhorias em desempenho, especialmente o início até 40% mais rápido, menor consumo de memória e mais agilidade nas respostas ao trabalhar com projetos extensos.

Baixar o NetBeans IDE 6.1 final (mirror em dlc.sun.com.edgesuite.net). Os pacotes localizados para português do Brasil, existentes na versão 6.0.1, ainda não estão disponíveis para o 6.1, mas devem estar em breve.


Dia 21 houve o lançamento da distribuição Linux Ubuntu 8.04 LTS, codinome Hardy Heron, nas edições Desktop e Servidor.

O Ubuntu é provavelmente a distribuição Linux atual mais amigável, estável e bem suportada para usuários pessoais. Oferece fácil instalação, compatibilidade com ampla variedade de dispositivos em desktops e notebooks.

Há também enorme quantidade de pacotes adicionais (no formato apt do GNU/Debian) disponíveis e freqüentemente atualizados, instaláveis pelo gerenciador de pacotes gráfico Synaptic (ou outro de sua preferência), com repositórios oficiais livres e restritos pré-configurados do Ubuntu.

O interessante da nova versão 8.04 é ser Long Term Support (LTS), o que significa garantia de suporte oficial ao ciclo de vida da Edição Desktop até 2011 e da Edição Servidor até 2013. A versão LTS anterior foi a 6.06, em junho de 2006.

Para aqueles que querem sempre as mais novas aplicações e tecnologias, poderão fazer ainda este ano a atualização para o Ubuntu 8.10, previsto para outubro. Quem prefere a estabilidade no ciclo de distribuição de software (tipicamente o ambiente corporativo de larga escala), pode ficar tranqüilo com o Ubuntu 8.04 por três (desktop) ou cinco (servidor) anos até migrar para a próxima versão LTS.

E sobre o que a versão 8.04 traz de novo? Para essa resposta, eu indico o artigo do português Bruno Carlos, muito bem escrito e ilustrado: Todas as novidades da versão oficial do Ubuntu 8.04 LTS.

Se você busca alguma inspiração em tecnologia de sistemas de informação durante o fim de semana, eis aqui dois artigos que recomendo.

Bruce Eckel, palestrante e autor do excelente livro “Thinking in Java”, escreveu o provocativo Java, Evolutionary Dead End (em inglês), 2008-01-03. O autor afirma que Java não deveria mudar muito mais, pois ele considera mais importe a linguagem buscar se manter estável (como C ou C++) do que do que evoluir incorporando recursos.

A tecnologia Java pode evoluir (plataformas, APIs) sem que a linguagem de programação Java mude tanto? São alternativas viáveis novas linguagens de programação como Groovy e Scala — sem falar das adaptações JRuby e Jython — que vão surgindo e podem rodar sobre JVM?

Veja também a discussão do artigo em TSS.


The 50 Most Popular Web Design Blog Posts, Resources & Cheat Sheets of 2007 (em inglês), por Eric Hebert, 2008-01-03, em Crestock.com Blog, faz um interessante tour por 2007 em uma coletânea de 50 artigos de destaque sobre temas de design gráfico e de interação: fundamentos e princípios, cor, gráficos e ícones, fotos, CSS, fonte e texto, layout e outros. Se o assunto interessa a você, vale a viagem.


Aproveito para dizer que atualizei o artigo Codificação de caractere e o Ubuntu pt_BR, de 2006-09-24, após refletir sobre o comentário do leitor ZeroA4 e o artigo Unicode de Rafael Benevides. Como resultado, adicionei um tópico final “Olhando à frente para internacionalização”.

Tenho muitas Extensões para o navegador Firefox instaladas, quase todas da lista neste link, tanto em Windows quanto em Linux Ubuntu.

Mas há vários dias — não sei dizer exatamente quando ou como começou — meu Firefox 2 em Linux (Ubuntu) estava com comportamentos estranhos em relação a extensões.

Toda vez que alguma extensão era atualizada, o Firefox não reiniciava normalmente. Iniciando pelo console, via-se que a tentativa de execução em seguida resultava em “Segmentation fault (Core dumped)”. Mais uma ou duas tentativas de execução do Firefox e aí sim ele abria.

Também observei que algumas extensões instaladas estavam inoperantes (exemplos: Update Notifier, Download Statusbar).

Supus que alguma extensão problemática era a raiz do problema. Parti então para o trabalho mais chato, porém preciso. Primeiro, apaguei toda as configurações pessoais do Firefox em meu diretório home (rm -rf ~/.mozilla/). Depois, segui repetidamente estes passos: instalar uma extensão de cada vez; sair do Firefox; e, em seguida, iniciar o programa novamente pela linha de comando (firefox), para o caso de alguma mensagem de erro ser exibida na console.

Após um longo e tedioso trabalho, finalmente quando instalei a extensão ColorZilla — uma ferramenta para identificar cores (RGB) em qualquer parte da tela/página no Firefox — a tentativa de reiniciar o Firefox em seguida gerou o famigerado Segmentation fault (Core dumped).

Esta é a minha configuração onde observei o erro:

Não sei dizer se o erro ocorre com outras combinações de versões, mas tenha cuidado ao utilizar o ColorZilla em Linux, principalmente se você está com um cenário de problema similar ao meu.

Nota: Já no meu Windows, o ColorZilla está funcionando normal.

Eis algumas referências a respeito que encontrei na Internet:

No portal IBM developerWorks, está sendo publicado um tutorial em três partes sobre desenvolvimento para web com o Eclipse Europa, usando Java, PHP e Ruby; por Michael Galpin, Desenvolvedor do eBay.

A terceira parte, sobre Ruby, deve sair breve saiu dia 18. Para acessar o conteúdo do tutorial, é necessário registrar-se gratuitamente no portal IBM developerWorks.


Outro artigo muito interessante, para quem está considerando suas opções de infra-estrutura para aplicações Java EE na web. JBoss, Geronimo, or Tomcat? — Três servidores de aplicação Java open source comparados, por Jonathan Campbell, JavaWorld.com, 2007-12-11. Só faltou cobrir também GlassFish.


O recente artigo An easy way to make your code more testable, no blog Programblings, me levou a outro artigo excelente.

We don’t write tests. There just isn’t time for luxuries, por James Golick, um desenvolvedor de softwre em Montreal, 2007-08-28. Golick, com argumentos objetivos passo a passo, contesta a afirmação que muito se houve de desenvolvedores ou times de software: “Não escrevemos testes ou fazemos cobertura de testes porque não temos tempo.” ou “Escrever testes toma tempo demais.”

Todo desenvolvedor precisa testar seu código, de alguma forma. A diferença é que alguns escrevem testes automatizados, enquanto outros usam humanos (normalmente, o próprio desenvolvedor) para verificar o comportamento correto. Então, o argumento “testar-nos-atrasa” reside na premissa que verificação manual é mais rápida que escrever testes automatizados.

Assim começa o raciocínio que se desenvolve ao longo do inteligente artigo. Leia e veja se você também concorda que a prática de testes automatizados pode ser bem produtiva.

Se práticas de desenvolvimento de software interessam a você, então sugiro ler também os artigos Pair Programming vs. Code Reviews, por Jeff Atwood, 2007-11-18; e Pair Programming vs. Code Reviews - It’s a no Brainer, por Mark Levison (Ottawa, Canadá), 2007-12-14. Eles confrontam programação em pares e revisão de código.


Conforme anúncio no Javalobby, acabou de ser lançada em dezembro a nova certificação Sun Certified Programmer for the Java Platform, Standard Edition 6 (CX-310-065) da Sun.

SCJP é a certificação de programação na linguagem Java, a mais fundamental no caminho de Certificações Sun para a Tecnologia Java. É também uma certificação bem reconhecida no mercado de trabalho. A nova versão do SCJP atualiza o programa da para cobrir Java SE 6.0.

Para saber mais:


Entrando na programação de páginas web, vale a pena ler The Problem With innerHTML, por Julien Lecomte, 2007-12-12.

E do HTML para o CSS. A escala graduada de 1 a 6 para Rate Your CSS Skill Level: Final Version & Poll montada pelo portal CSS-Tricks oferece critérios para você avaliar em que nível está sua habilidade com CSS. Minha auto-avaliação foi de 4. Para atingir 6, você tem que estar em estado graça ou ser membro da especificação no W3C. :-D


Da programação para os utilitários nerd. Hoje descobri algo interessante para quem às vezes lida com a linha de comando no Windows. Windows PowerShell. Esta janela de console melhorada virá no Windows Server 2008, mas qualquer usuário de Windows original (com a devida validação WGA) pode baixar gratuitamente da Microsoft.

Download Windows PowerShell 1.0 - PowerShell 1.0 para Windows XP Português do Brasil (KB926140).

Documentação: Windows PowerShell Documentation Pack (para baixar, em inglês e outros idiomas).

Já para quem conhece e sente falta dos comandos do Linux ao usar a linha de comando do Windows, recomendo meu velho conhecido GnuWin32, projeto em SourceForge que porta pacotes de utilitários GNU/Posix para Windows nativo (usando MinGW). O projeto disponibiliza centenas de pacotes binários, em arquivos ZIP para baixar.

Recomendo obter a ferramenta GetGnuWin32, que traz um script que baixa/atualiza todos os pacotes mais recentes do GnuWin32, e outro que descompacta todos os pacotes em uma pasta gnuwin32. Depois é só copiar/mover essa pasta para onde achar mais adequado (por exemplo, C:\ ou C:\Arquivos de programas\) e adicionar gnuwin32\bin ao PATH. Feito isso, grep, find, sed, tar, diff e mais quase mil outros comandos estarão disponíveis na linha de comando do Windows (inclusive na PowerShell).


Por falar em Linux, uma última nota. O IDG Now! noticiou que as Urnas usarão Linux em eleições de 2008.

O TSE autorizou a substituição dos sistemas operacionais VirtuOS e Windows CE para o sistema aberto Linux, adaptado pelo próprio órgão, em todas as 430 mil urnas eletrônicas usadas nas eleições de 2008, que escolherão prefeitos. Segundo o Tribunal, o objetivo é conferir mais transparência e confiabilidade à urna e ao processo eleitoral.

- Próxima Página »