quinta-feira, setembro 27, 2007

Não clique nunca mais!

Há vários anos eu sofro com tendinite. São dores horríveis, que às vezes estão muito fortes e outras vezes nem tanto.

Além do problema para digitar, também sofro para clicar o botão do mouse. Se eu clicar duas ou três vezes o botão do mouse, já era... são pelo menos uns 20 dias de molho.

Apesar disso, até hoje trabalho com desenvolvimento. Como é possível?

Eu uso vários métodos para reduzir os impactos da minha atividade no meu problema de tendinite.

Entre outras coisas, uso um programa chamado MouseTool e posso dizer, com 100% de certeza, que se hoje estou trabalhando com desenvolvimento de software, é graças, principalmente, a ele.

Este programa permite que eu use o mouse sem precisar clicar. Isso mesmo, ele clica com o botão direito, esquerdo, dá clique duplo e arrasta pastas e arquivos para mim, sem que eu precise apertar seus botões.

O único problema com ele é que ele foi feito para Windows. Eu, como usuário Linux, tinha que me contentar com uma versão muito pobre do MouseTool para o KDE.

Resolvi então fazer a minha própria versão do MouseTool para Gnome. Quero deixá-lo o mais próximo possível da versão original para Windows, tanto na aparência quanto no comportamento.

Hoje, eu coloquei no site do SourceForge a primeira versão do meu programa, que batizei de GMouseTool, em homenagem ao GTK+ e ao MouseTool.

Você pode obter uma cópia do projeto em http://gmousetool.sourceforge.net/.

quarta-feira, setembro 12, 2007

wxWidgets e CodeBlocks no Ububtu Feisty

Quem desenvolve com o wxWidgets sabe que ele é multi-plataforma. Assim, podemos fazer programas que rodem tanto no Linux quanto no Mac e no Windows (que desperdício de esforço).

É sempre possível desenvolvermos e compilarmos para outras plataformas a partir do Linux (isso também é verdade quando se está nos outros SOs). Mas o desejável é que possamos compilar nativamente, em especial se vamos integrar as APIs nativas de determinado sistema operacional no nosso aplicativo.

O ideal é que pudéssemos levar o nosso projeto de um sistema operacional para outro apenas copiando a pasta com seus arquivos. Isso nos pouparia o trabalho de reconfigurarmos nosso aplicativo a cada mudança de ambiente.

Atualmente existem duas IDEs que podem ser executadas no Linux, Mac e Windows: O Eclipse e o Code::Blocks.

O Eclipse é um IDE maduro e com muitos recursos. É feito em java e com a instalação do CDT nos permite utilizá-lo para desenvolvermos programas em C/C++.

O Code::Blocks é uma IDE feita com o wxWidgets e também é multi-plataforma. Não é tão maduro quanto o Eclipse, mas caminha a passos largos para superá-lo (pelo menos no que diz respeito ao C/C++).

Fica a pergunta: se podemos usar o Eclipse (que é um excelente IDE), por que usaríamos o Code::Blocks?

Simples: o Eclipse é feito em Java, come muita memória e espaço em disco. Para quem desenvolve apenas com C/C++, não compensa o custo. Além disso, com o Code::Blocks vem uma ferramenta gráfica para montagem das telas dos aplicativos.

Para quem usa o Ubuntu 7.04 (Feisty Fawn), há uma opção muito conveniente que facilita o uso do Code::Blocks como IDE no desenvolvimento. Podemos configurar os repositórios do wxWidgets e do Code::Blocks. Assim, a cada atualização dos projetos, seremos avisados pelo Ubuntu, conforme mostra a figura 1 abaixo.

Figura 1 - Sistema de notificação de atualizações do Ubuntu

Abra o prompt de comando e digite os comandos abaixo para adicionar as chaves públicas:

sudo wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -

sudo wget -q http://lgp203.free.fr/public.key -O- | sudo apt-key add -

A seguir, abra o arquivo /etc/apt/sources.list:

sudo gedit /etc/apt/sources.list

adicione as linhas

deb http://lgp203.free.fr/ubuntu/ feisty main
deb http://apt.wxwidgets.org/ feisty-wx main

Salve o arquivo e volte para o prompt de comando. Estando novamente nele, digite

sudo apt-get update

para que o apt-get atualize a sua lista de repositórios.

Ótimo. A partir deste ponto, você pode utilizar o Synaptic para instalar o wxWidgets e o Code::Blocks.

Quase todo dia sai uma nova versão do Code::Blocks. Sempre que isso acontecer, você será avisado e poderá atualizar o seu sistema sem problemas.

A instalação do Code::Blocks no Mac e no Windows ficarão para um outro post.