Vídeo: Linux no Desktop do desenvolvedor

KDE 3.4
Como muita gente demonstra curiosidade em relação ao fato de eu usar Linux para trabalhar, resolvi preparar um pequeno vídeo mostrando como é trabalhar com Linux no Desktop. Não é um tutorial nem nada assim, serve apenas para mostrar meu Desktop para que aqueles que nunca viram desenvolvimento com Linux tenham idéia de como é:
desktoplinux.avi (19,2MB)
São oito minutos, em resolução 640X480, compactado com XviD 4. O som está cortando em alguns pedaços, em virtude de eu ter deixado muita coisa rodando na máquina ao mesmo tempo em que gravava o vídeo. Apesar disso, creio que dá para entender.
Ah, aprendi o nome desse tipo de vídeo hoje cedo: screencast. Aprendi com o Fred, que publicou uma excelente análise do Picasa. Vale a pena assistir. (O post do Fred chegou em excelente hora, assim posto meu screencast chamando-o pelo nome de screencast ;-))
Antes que você pergunte, meu sistema é um Kurumin[bb], com KDE 3.4, 3D-Desktop e Komposé, Superkaramba, Kmail, Kopete, Kate, Firefox, Opera e IE rodando no Wine.
Update: Um bocado de gente me escreveu pra perguntar sobre o desktop 3D e o programa de gravação de vídeo. Vamos lá. Para desktop 3d usei o 3D-Desktop (para quem usa Debian basta apt-get install 3ddesktop). Para configurá-lo crie um novo ícone em algum lugar de seu menu K que executa o seguinte comando:
3ddesk --goto=1 --nozoom
Dê a ele o nome de, por exemplo, Desktop 1, desligue o histórico de lançamento e atribua a ele a combinação de teclas CTRL+F1. Depois crie um que executa:
3ddesk --goto=2 --nozoom
Chame de Desktop 2 e atribua CTRL+2. E assim por diante, até o número de desktops virtuais que você normalmente usa.
Só isso já é o suficiente para trabalhar sem o pager. É como eu geralmente trabalho aqui, usando o teclado para alternar. Usei o pager para o pessoal que assiste o vídeo entender que eu estava fazendo alguma coisa.
Para configurar o pager, usei isso aqui.
Já a gravação do vídeo, fiz o com o gvidcap, uma versão do xvidcap. Para quem usa Debian, adicione o repositório do autor do programa e: apt-get install gvidcap.

Complicado!

Caramba, como é complicado configurar um servidor de e-mail. Apache, MySQL, PHP, modpython, TeamSpeak, bind, coloquei tudo pra funcionar numa boa. O apt do Debian ajuda um bocado. Agora estou há três dias tentando aprender como configurar um servidor SMTP decente para um servidor com vários domínios. Já tentei qmail, exim, sendmail e postfix. Não consigo fazer meu cliente de email autenticar de jeito nenhum. Socorro!

Sistema Multi-idioma em ASP

Muitas vezes a melhor solução que se pode dar a um problema é a coisa mais simples que se consegue fazer. Foi exatamente o que aconteceu com esse sistema. Ao fazermos o planejamento do site da Santos Stones, sentimos que o site era simples demais para precisar do Prodo, nosso CMS. Desenvolvi então um pequeno script para obter dados de texto em vários idiomas de um arquivo XML. Não é que o pessoal do conteúdo aqui adorou editar direto o arquivo XML? Resolvi o problema do multi-idioma com 20 minutos de trabalho e, para minha surpresa, não tive que melhorar a solução. Serviu exatamente como estava.
Essa semana, na lista do GADW alguém estava procurando por algo semelhante. Bom, então estou publicando o sistema multi-idioma para quem quiser ver ou usar. Bom proveito.

UPDATE: Consertei o link para download. Obrigado ao pessoal que escreveu avisando.

Aprenda algo novo

Programar é algo fácil de se aprender. Aprendi a programar aos oito ou nove anos, em BASIC para TK-90X. Programar bem, ser produtivo, é algo que leva um bocado de tempo. Conforme você avança programando em uma linguagem, vai descobrindo os segredos e armadilhas daquela linguagem. Encontra desenvolvedores que usam a mesma linguagem, formam uma linguagem e compartilham código. Constrói uma biblioteca pessoal de código e decora a solução de algumas dúzias de problemas simples (sei até hoje como alternar o QBASIC para os modos gráficos de tela, e como desenhar linhas e retângulos, embora já não me lembre como desenhar arcos e círculos.)
Programar é algo difícil de se aprender a segunda vez. Quando tentei aprender C no internato, as coisas foram bem mais difíceis. Não é porque a linguagem era mais difícil, lembre-se que muita coisa no TK a gente resolvia com Assembly. É porque aprender a segunda linguagem de programação é algo muito mais burocrático e menos apaixonante. É divertido aprender a construir algoritmos, pensar como a máquina e resolver problemas. É entendiante decorar os comandos de uma nova linguagem para fazer o que você já fazia antes, aprender a usar um compilador diferente, uma plataforma diferente e se lembrar de colocar o maldito ponto-e-vírgula no final de cada linha (ah, eu amo Python[bb]!)
É por isso que a inércia é tão grande entre as pessoas que desenvolvem em apenas uma linguagem, ou para apenas uma plataforma. E isso nos ajuda a entender porque a Microsoft vai ensinar os estudantes de São Paulo a programar.
Mas há boas notícas, senhoras e senhores. A primeira é que há conceitos novos e maneiras novas de pensar para se aprender, o que pode tornar a tarefa de aprender outra linguagem de programação apaixonante outra vez. Aconteceu quando eu descobri a Orientação a Objeto, e consegui finalmente aprender C++. Aconteceu quando eu descobri como era fácil (para os padrões da época) trabalhar com bancos de dados em Clipper. Aconteceu quando eu descobri Programação Orientada a Eventos no VB e no Delphi. Aconteceu quando eu descobri a web. Ah, a web… Linguagens de marcação, de script, server-side, client-side. Quanta coisa divertida para se aprender! E está acontecendo de novo agora com Python. Encontrei a Programação Pragmática, ou Programação “Direto-ao-Assunto”.
A segunda boa notícia é que a segunda linguagem é difícil, mas daí em diante fica tudo mais fácil. Como qualquer programador mediano com o tempo de carreira que eu tenho, sou fluente em pelo menos 10 linguagens/ambientes de programação, e consigo escrever código em umas 20. Então, se você é programador de um ambiente só, fica aqui o incentivo: aprenda alguma coisa nova. Tudo fica mais fácil a partir daí.

Sincronismo

Eu tinha uma porção de arquivos WMA aqui. Escrevi isso ontem:

while [ "$1" != "" ];do
      echo CONVERTER: $1
      mplayer "$1" -ao pcm
      lame -h audiodump.wav -o "`echo $1|sed -e 's/wma$/mp3/'`"
      rm -f audiodump.wav
      rm -f "$1"
      shift
done

Fui à pasta de músicas e mandei:

wmaparamp3 *.wma */*.wma */*/*.wma */*/*/*.wma

Deixei rolando à noite e funcionou!
Recebi hoje cedo esta dica.

Trails?

Acabo de assistir o vídeo sobre Trails, um framework, na onda Rails, em Java. Alguma coisa fedeu aqui para mim. Me pareceu só um clone mal feito do Rails. Usa Hibernate para persistência, dando um bocado a mais de trabalho ao programador do que o Rails.
Mas o principal problema é o Java. O vídeo, assim como o do Rails, tem 10 minutos. Nos dez minutos do vídeo sobre Rails o sujeito instala e configura o Rails, cria a base de dados e a aplicação funcional. Nos dez minutos do Trails o camarada, que já tinha o webserver, o Eclipse e o Hibernate configurados, coloca a aplicação para funcionar.
Assista os dois vídeos e perceba a diferença. Usar Hibernate é um saco, principalmente comparando ao esquema de persistência transparente usado no Rails, o activerecord. Programo em Java+JSP há alguns anos, e não achei nada divertido o tutorial do Trails. Quando assisti o tutorial do Rails só tinha ouvido falar de Ruby, nunca tinha escrito uma linha de código nessa linguagem. Apesar disso, achei aquilo tudo muito divertido.
Estou cada vez mais convencido de que o problema é a linguagem. Leia por exemplo o primeiro parágrafo desta resposta do Bruce Eckel.
E por falar em framework web e boa linguagem de programação, ontem comecei a mexer com CherryPy, dica do Jonas, e estou realmente impressionado. Reproduzi o livro de receitas do tutorial do Rails em 40 minutos (sim, eu sei, o vídeo tem apenas 10 minutos, mas eu estava aprendendo) e escrevi um Wiki funcional, embora ainda muito simples (usa pickle, não SQL), em menos de uma hora. Divertidíssimo.

Aconteceu

Sucesso!

A Promoção Amigão está de volta. Se você quiser saber de onde nasceu uma idéia tão original, tudo bem, eu conto. Foi lendo as coisas escritas por esse cara. Ao final da promoção conto também alguma coisa dos resultados obtidos.
Por falar em resultados, fizemos uma revisão de usabilidade na Fotolab. Partimos de testes com usuários, seguindo um modelo simples de revisão, tentando fazer apenas o que fosse mais simples de implementar e tivesse impacto mais significativo. Foram 5 dias de trabalho. O faturamento aumentou mais de 30% no mês seguinte. Estamos orgulhosos.