
12:36
Nesse último sábado, dia 21/06/2008, ocorreu mais um Dia Livre (versão 8.06), o tema principal foi Web, mas também tiveram palestras sobre o Blender e Linux. Não pude comparecer a todas as apresentações, mas pelo que disseram todas foram muito legais.
Eu fui palestrar sobre PHP, estava tudo acertado para eu e Ítalo Rossi palestrarmos juntos, mas infelizmente ele adoeceu e não pôde comparecer, mas ele já está melhor.
Já que a maioria das pessoas que estariam alí na platéia seriam alunos dos primeiros anos do CEFET então fiz uma palestra bem iniciante, mostrando desde o básico da sintaxe do PHP, passando por tipos, condicionais, laços, declaração de funções e indo até o básico de orientação a objetos (que infelizmente por causa do tempo não pude falar) e no final dei pequenas dicas de segurança e debug.
Aparentemente o público em geral gostou e fiquei satisfeito com o resultado final, mesmo tendo sido uma apresentação mais teórica do que prática não ficou cansativo.
Eu ia adicionar a apresentação no slideshare.net, mas não consegui acessar o site para fazer upload, por isso deixo o link direto para o arquivo em PDF, mas assim que o site do slideshare voltar ao ar eu adiciono o arquivo.
Arquivo da apresentação: PHP - Uma pequena introdução.pdf
ATUALIZAÇÃO: Consegui adicionar os slides no slideshare, você pode dar uma olhada neles acessando a apresentação PHP - Uma pequena introdução.
Categorizado em Apresentação, PHP, Portifólio, Software Livre, Web | 1 Comentário

1:44
Se você já usou o TurboGears para criar aplicações, mesmo as mais simples, já se deparou com exceções levantadas por pequenos problemas como não enviar um dicionário de retorno para uma função. A resolução desses problemas na maioria das vezes é bem simples, você lê o erro reportado pelo tracebak, procura o arquivo, depois a linha, que gerou a exceção e conserta.
Mas você que tem uma aplicação um pouco mais crescida já deve ter tido problemas em que só olhar o traceback não resolveu, você teve que implantar vários trechos de código para verificar o que estava ocorrendo e provavelmente perdeu horas do seu dia tentando corrigir um erro que era simplesmente um espaço a mais em uma string.
Já faz um tempo que para tentar resolver esse problema eu sobrescrevi o método _cp_on_error do CherryPy fazendo com que toda exceção gerada pelo TurboGears que não fosse tratada, dispararia um email me informando do problema e o estado de algumas variáveis, por exemplor a sessão do CherryPy, naquele momento. Esse método de automatização de reportagem de erro ajudou a resolver muitos bugs, mas não ajudava em nada enquanto em desenvolvimento.
Hoje enquanto lia sobre profile do CherryPy descobri uma simples configuração, tg.fancy_exception, que faz milagres e com toda a certeza vai me ajuda na hora de “debugar” problemas durante o desenvolvimento, para habilitar:

Com essa configuração habilitada quando houver qualquer exceção não tratada, mesmo que você tenha sobrescrito o _cp_on_error, ao invés de um traceback em texto puro, será mostrado um traceback em HTML com algumas opções a mais:

A opção mais importante e interessante, ao meu ver, é uma shell do python que pode ser ativada clicando no “+” ao lado do contexto que você quer debugar:

Logo abaixo do traceback você ainda tem o botão “extra data” que mostra dados recebidos pelo CherryPy e mais abaixo em “text version” uma versão em texto puro do traceback e dados extras.
Eu recomendo a utilização do tg.fancy_exception somente em desenvolvimento pois dar um acesso a shell do Python para qualquer um pode ser perigoso, na verdade não sei se esta opção funciona em produção.
Categorizado em Estudo, Python, Software Livre, TurboGears, Web | 1 Comentário

2:50
Já fazia muito tempo que eu não chegava nem perto do blog e estava tentando de alguma forma me forçar a atualizá-lo pelo menos uma vez por mês. Hoje tive a idéia de criar um novo layout para ele e o fiz, acho que isso vai me ajudar a mantê-lo atualizado.
Esta foto que eu tirei a um bom tempo atrás serviu de inspiração e elemento principal para o layout. Não fiz grandes mudanças, ele está tão simples quanto o anterior, mas agora tenho cores!

Usei o tema padrão do WordPress como base. Fiz poucas modificações no código PHP, fiz muito mais na disposição dos elementos HTML e criei um CSS completamente novo. Tive que fazer algumas estripulias para converter a fonte usada nos títulos dos posts (estou usando o plugin Image Headline).
A página de arquivos do blog ainda não está funcionando e eu não sei o porque, mas pretendo corrigir em breve esse problema.
Vamos ver se esse trabalho todo me faz voltar a postar coisas interessantes por aqui.
Categorizado em Blogagem, Portifólio, Software Livre, Web Standards, Wordpress | 3 Comentários