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.

Valdomiro Produções apresenta

20:45

Primeiro curta metragem dos produtores Jonatas Oliveira e Aninha D’Aguiar. O curta retrata uma pacata caneta, encenada pela Compactor 07, que em um dia qualquer se vê em apuros sendo perseguida por uma mão, mão do Jonatas Oliveira, que quer acabar com a pobre esferográfica.

You need to a flashplayer enabled browser to view this YouTube video

Este dramático curta foi totalmente gravado com o iStopMotion e editado com o iMovie e se encontra também na minha página de vídeos do YouTube.

Esta foi uma das minhas primeiras filmagem de curta estilo stop motion no computador, já tinha feito alguns testes anteriores com câmeras filmadoras analógicas, mas era muito complicado deixar a câmera parada enquanto pressionava o botão de gravar.

Screen Shot do programa iStopMotion.

Usando o iStopMotion tudo se torna simples. É só enquandrar e pressionar a barra de espaço, assim você terá o seu primeiro frame, mude a posição do seu personagem ou até mesmo a câmera e pressione mais uma vez barra de espaço, assim você terá gravado o seu segundo frame e assim continua até você terminar o vídeo.

Outro ponto positivo é a facilidade de editar um frame, você pode apagar, mover ou substituir, tudo isso na linha do tempo no parte inferior da janela.

E por ele ser realmente simples, não precisar de configurações complicadas, é muito mais fácil se concentrar no que você está fazendo e deixar a criatividade te levar.

Aninhadaguiar.com

1:22

Novo de novo.

Depois de quase dois meses com uma aparência mal-acabada resolvi finalizar o layout do blog da Aninha.

Aninhadaguiar.com Scree Shot

Deixou pra trás o tema da tropicália, mas eu gostei. Agora é só visitar: aninhadaguiar.com

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.