terça-feira, 18 de agosto de 2009

Paixões

Se você acompanha este blog há um tempo, sabe que comecei a programar para iPhone há alguns meses. Como nunca tinha utilizado um Mac, fui correr atrás de informações, tutoriais, etc… Passei na banca e vi uma revista chamada Mac+. Humm.. iPhone na capa, falando sobre programação para ele, análises de programas, tutoriais for dummies como eu, etc.. vou levar. :-)

Cheguei em casa e fui lê-la. A revista é ótima, mas tem uma coisa ali que me incomodou muito: frases do tipo: “Isto funciona, não é como aquele sistema feito por aquela empresa de Redmond”, ou “O pessoal da MS vem tentando copiar isto faz tempo”, etc, etc..

Pra quê isto? Não bastaria falar o que o Mac OS X tem de bom, sem precisar xingar a MS? Veja bem, não estou defendo a MS, estou criticando o comportamento “apaixonado” de certos meios de comunicação.

O Mac OS é fantástico! A facilidade de uso e ergonomia são realmente impressionantes. Mas o Windows XP é um excelente sistema operacional, sim! Ele tem seus defeitos, mas, no geral, funciona muito bem! Basta ver a quantidade absurda de hardware que ele é compatível, a quantidade de programas disponíveis, trava pouquíssimo, etc…

O Linux também tem suas qualidades. Usei Linux no meu notebook direto, por seis meses e não tive problema algum.. Muito pelo contrário, a máquina ficou ótima. Mas, por motivos profissionais, tive que voltar ao Windows. Acabei instalando o Windows Seven RC. Não tenho do que reclamar dele. Performance praticamente igual ao XP, com um visual do Vista, melhorado. :-)

Eu entendo que cada um deles tem as suas qualidades e seus defeitos. E todos eles podem co-existir, até na mesma máquina, por que não?

O mesmo raciocínio vale para as linguagens de programação. Há muitos anos atrás havia uma briga forte entre Delphi x Visual Basic. Mais recentemente, temos Java x .Net, ou Eclipse x Netbeans, etc... Eu programo em Java direto e acho ótimo. Mas estou lendo e aprendendo .Net e ali também tem muita coisa boa! Coisas que não existem nem perto em Java. “Ah, mas só funciona no Windows! É mais um produto proprietário da empresa-maligna-Microsoft!”, dizem os mais xiitas por Java. E daí que só funciona no Windows? Se eu precisar fazer alguma coisa que só vá ser executada em Windows mesmo e for fácil fazer em .Net, por que não utilizá-la?

Sem contar que nunca se sabe como será o dia de amanhã… Vai que aparece alguma oportunidade boa em .Net? Ou em Objective C (Mac Os e iPhone)? Ou Linux? Ou, ou, ou…?

Enfim, sou contra qualquer “radicalismo profissional”. Acho que existem várias linguagens e Sistemas Operacionais e procuro aprender e utilizar o máximo que consigo.  Acho que um bom profissional deve utilizar a ferramenta certa para resolver o problema da forma mais eficiente possível, sem paixões. Claro que existe o gosto pessoal, suas preferências. Mas sempre devemos manter a mente aberta para não fechar os olhos para o mundo.

Deixe estas paixões avassaladoras para as outras coisas da vida, como seu amor, seus filhos, família, hobby, etc.. Estas coisas sim valem a pena serem vividas apaixonadamente.

segunda-feira, 17 de agosto de 2009

Mensagem Beta

Instalei o Windows Live Writer aqui na minha máquina (aliás, instalei o Windows 7 RC aqui, estou achando muito bom, estável, rápido, mas isto é assunto para outro post) e este post aqui é o meu primeiro com esta ferramenta.. Então, se ficar meio estranho, a culpa é do Live Writer, não é minha :-)

Mas o editor é bacana. Já buscou o estilo que utilizo automaticamente (fontes, cores, formatação) e com isto a edição do texto fica bem fiel ao que vai ser publicado.

Também publica imagens automaticamente, como esta tela abaixo:

BlogPost3

Vou continuar utilizando ele, para ter uma melhor avaliação. Depois eu conto para vocês com mais detalhes.

terça-feira, 11 de agosto de 2009

Triste realidade


Isto é uma obra de ficção e qualquer semelhança com a realidade é mera coincidência. Sei.. conta outra...

Dirigir e mandar SMS ao mesmo tempo

segunda-feira, 10 de agosto de 2009

Metendo a mão II - a missão

Há um tempo atrás, falei sobre o netbook Acer Aspire One aqui. O linux padrão dele é uma versão customizada do Fedora 8 (Werewolf), feita pela própria Acer. É bacana, vem com o Open Office 2.x, o Firefox 2, alguns jogos, messenger, etc...

Mas ela é meio pobre visualmente, não tem nada pronto para se fazer um update dos programas, baixar e instalar novos programas (não dá para adicionar nada no desktop e não tem menu Iniciar), etc.. Ou seja: basicamente é o que vem junto e fim de papo. Você só pode adicionar os teus arquivos de dados ali (documentos, fotos, músicas, etc...).

Com um "jeitinho", dá para habilitar um menu, que libera acesso a outras funções e, principalmente, ao terminal! :-) Mas, de qualquer forma, muito enrolado.

Neste final de semana eu baixei e instalei o Ubuntu Netbook Remix 9.04. Fantástico! Parece que troquei de máquina! A interface dele é muito boa, vem completo, com Firefox 3, OpenOffice 3, Pidgin Messenger, Evolution Mail, Jogos, etc..


Você pode conferir o vídeo de demonstração dele aqui.

E além disto, tem tudo o que o irmão mais velho tem: configurações completas da máquina, terminal, gerenciador de pacotes.. Enfim, outro mundo, vida nova para a máquina.

Altamente recomendado!

domingo, 2 de agosto de 2009

Cúmulo da preguiça

Bom, tinha que fazer uma coisa para testar a minha Arduino + Ethernet. A primeira coisa que me veio à mente foi fazer uma automação das luzes aqui da minha casa. Tá.. é o cúmulo da preguiça comandar todas as luzes sentadão no sofá, mas que é legal, é!

Mãos à obra, então! Primeiro o trabalho, depois o descanso. Para começar, o protótipo vai comandar apenas 4 leds, ligados nos pinos 2, 3, 4 e 5 da placa. Depois, com todo o software funcionando, é só colocar um acoplador ótico, ligado a um DIAC/TRIAC para controlar as luzes de verdade...

O programa vai atender aos seguintes comandos:
  • Status: Retorna o status das lâmpadas (quais estão acesas e quais estão apagadas)
  • Acender lâmpada
  • Apagar lâmpada
Deve ser acessível via browser (interface web). A comunicação com a placa é toda via TCP/IP. Antes de fazer a parte web, fiz um cliente nativo para windows, em delphi, para fazer e testar a parte de comunicação com a Arduino.


Quando este cliente funcionou ok, fiz uma interface web beeeem simples (visual bonito pra site não é meu forte.. e é só um protótipo, por enquanto):

Esta página é enviada para um servlet, que abre uma conexão TCP/IP com a Arduino e envia os comandos correspondentes aos radio-buttons da página (acende e apaga as luzes conforme o preenchido na página).

E aí está.. Dá para acessar esta página direto pelo iPod Touch, sentadão no sofá. E comandar todas as luzes da casa quando o hardware final estiver pronto, com o controle de potência. Por enquanto, dá para acender ou apagar 4 leds remotamente :-)

Mas toda a parte do software está pronta. Se tiver tempo, faço um vídeo disto funcionando e posto aqui.

Brincando com eletrônica


Pois é.. como falei ali no meu perfil, gosto muito de eletrônica.. e a junção de eletrônica com programação é muito bacana, dá para fazer umas coisas muito legais. Neste final de semana (chuvoso, por sinal.. mais um susto aqui pra região) acabei mexendo com minha placa arduino.

Resumidamente, a Arduino é uma placa open-source (o projeto do circuito da placa e o boot dela são totalmente free), baseada no PIC Atmega e programada em Java! Isto mesmo: Java! Ela não executa Java, ela executa Assembly nativo do processador, mas quem faz o trabalho sujo de converter Java para Assembly é a IDE.

A placa possui 13 saídas, sendo 5 PWM e 6 entradas analógicas, com conversor A/D, ou digitais.
Além da placa básica, existem vários módulos que podem ser acoplados a ela, como Ethernet (TCP/IP), Bluetooth, GPS, Saída de áudio, sensores de temperatura, luminosidade, etc..

Fantástica. Muito boa. Funciona de primeira. Foi só espetar a placa (que é conectada via USB), configurar os drivers e sair utilizando a IDE. A IDE é baseada na Processing, que eu já havia comentado aqui. Fizeram uma extensão para programação das placas Arduino.

Você escreve o programa, faz o upload pra placa e sai rodando. Uma vez na placa, não precisa mais do PC.

É um brinquedinho legal.