Resultado do dia livre 8.06

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.

tg.fancy_exception: debug on the fly

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:

Habilitando comando tg.fancy_exception.

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:

Detalhes adicionais no traceback.

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:

Debugando em um contexto direto no browser.

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.

Cacto

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!

Screen Shot do novo layout.

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.

Este é um blog pessoal e intransferível, em caso de perda favor entrar em contato com o SAC.

Feito com WordPress por Jonatas Oliveira.
Posts ou Comentários via RSS.