26 de março de 2009

Snoopy & Cia

(Clique na imagem para ver a tira inteira)

Tradução livre:
-- Outra bola, jogo perdido!! Ótima chatisse!
-- Estou cansado de perder... Tudo que eu faço, eu perco!
-- Olhe dessa forma, Charlie Brown... Nós aprendemos mais na derrota que o fazemos quando ganhamos.
-- ISSO ME FAZ A PESSOA MAIS ESPERTA NO MUNDO!!

23 de março de 2009

Portabilidade do PyGTK

Na última semana consegui com sucesso fazer a migração de dois terminais de Windows para Ubuntu.

Me impressinou a facilidade com que se deu. GTK se mostrou realmente cross-platform. A adaptação da engine em Python foi quase zero, e no que tange à PyGTK não foi preciso mudar nenhum "til" sequer. Tudo rodou com perfeição. Alguns outros dispositivos precisarão apenas de re-enquadramento da interface desenhada em Glade, isso porque Ubuntu usa um tamanho de letra maior por padrão.

Sem falar, é claro, da facilidade com que se pode configurar a rede em Ubuntu, já que ele reconhece a rede Windows automagicamente. Uma vez que usamos MySQL tudo ficou muito fácil. Por alguma razão ainda desconhecida o terminal com Ubuntu não acessa MySQL por meio do nome da máquina, mas somente pelo IP. De modo que foi necessário colocar um IP fixo para o servidor e para os terminais com Ubuntu.

Nos próximos dias todo o sistema vai estar nos trilhos de Ubuntu. Thanks God.

Numa segunda etapa, parte do que está em PyGTK vai para Django (não tudo).

16 de março de 2009

New Life

Tem umas coisas mucho locas acontecendo. Pretendo passar a relatar em breve. Por hora, o que posso dizer que é sempre melhor buscar a Deus que satisfazer as concupisciências da carne. Não, não falo com quem está acima do bem e do mal, mas como quem humildemente também precisa de correção.

5 de março de 2009

Além da Janela de Casa


De noite assistindo tv, vi um personagem tocar no piano um blues ou algo assim. Procurei na internet alguns vídeos de Boogie Woogie. Ouvi algumas canções. Lembrei de alguns antigos sonhos. Afinei e dedilhei um velho violão. De volta estava em paz, me dei conta: do outro lado da janela tem vida, longe das gazetas, da conta bancária, dos jogos políticos, da programação sem fim.

4 de março de 2009

Linux.com agora é do "Linux"

Notícia da hora! A Linux Foundation comprou o domínio Linux.com (notícia aqui).

De acordo com a Wikipedia:

Linux Foundation foi criado dia 21 de janeiro de 2007 [1] juntando Open Source Development Labs (OSDL) e Free Standards Group. A Fundação vai ajudar a desenvolver o Linux. Linux Foundation vai proteger e padronizar o Linux. Vai ajudar com meios e serviços aos projetos para poder concorrer com outras sistemas operacionais. Linux Foundation tem mais que 70 membros como: AMD, Cisco, EMC, Fujitsu, HP, Hitachi, IBM, Intel, Motorola, NEC, Nokia, NetApp, Novell, NTT, Oracle, Siemens, Unisys e Sun Microsystems.

Linux Foundation emprega o próprio Linus Torvalds[2], ajuda na collaboração entre as empresas de Linux e na proteção da marca Linux.

3 de março de 2009

Por que Python?

Primeiro, se o programador precisa trabalhar próximo ou junto ao Hardware, use logo C, C++ ou outra de médio ou baixo nível. Nos demais casos, PyCappuccino recomenda Python, seja web, desktop ou qualquer outra engine*. É bom dizer que Python é extensível para C.

Fique claro também que nunca se inventou e provalvemente nunca será inventada uma linguagem de programação perfeita, ainda menos uma que se destine a todos os casos.

Vamos lá.

# Porque em Python a delimitação de bloco se dá por indentação

Essa foi uma das coisas que primeiro me entusiasmou na primeira vez que tive contato com Python. Veja um exemplo simples.
def par_ou_impar(inteiro):
 x = inteiro / 2.
 y = int(x)
 if x == y:
     return "par"
 return "impar"

par_ou_impar(7)
# Retorna "impar"
Pensemos. Se por boa técnica de programação se usa indentação, por que não usar a indentação de uma vez para delimitar um bloco. Pois em Python você não precisa se preocupar em fechar ifs, fors, whiles, funções, classes. Uma vez que você assume que abriu um bloco, intuitivamente você indenta, e saindo daquele nível de indentação, o bloco se fecha.

No exemplo se vê que a função "par_ou_impar" não possui um "fechador" porque seu bloco está dentro do primeiro nível indentado, e uma vez que se desce o nível de indentação o bloco já é fechado. Nesse em particular, o comando "return" ao ser executado irá também fechar a função, mas mesmo que não houvesse "return" o bloco seria fechado quando o interpretador encontrasse a primeira linha com recuo da indentação.

Na mesma esteira o "if" abre um bloco e não precisa de fechador já que é fechado pela indentação da linha seguinte (um nível abaixo). Como "return" fecha a função não precisamos colocar um "else".

Além da facilidade que a indentação fixa proporciona a quem programa, também facilita em muito a leitura de um código, o raciocínio fica coerente, visto que tudo está necessariamente indentado. Outra vantagem é que uniformiza todo os códigos.

Aguarde em breve, outros artigos desta série.

* Há os que objetam que Lua é uma excelente linguagem-cola.