Bug de geração de hash no apache, rodando aplicação Django

Novembro 30th, 2007

Hoje ocorreu um problema aqui na empresa, um dos nossos produtos, em Django, parou de funcionar.

Ao efetuar login no sistema havia um erro sobre cookies. O Django “reclamava” que o browser não dava suporte a cookies.

O problema na verdade é com o apache rodando simultaneamente os módulos mod_php5 e mod_python.

O módulo mhash do php “confunde” o mod_python, segundo esse bug report.

A solução é simplesmente desabilitar o módulo mhash no php.

Infelizmente é uma solução pesada, mas é o suficiente até que o bug seja resolvido.

O VIM como editor a tiracolo

Novembro 25th, 2007

O VIm é um editor simplesmente fantástico.

Há algum tempo atrás eu usava o Scite como editor, mas desde que comecei a trabalhar com desenvolvimento web em Django resolvi testar o VIM e acabei apaixonando.

Alguns amigos que usam outros editores também acham o vim bacana mas não tem muita coisa na internet sobre as tarefas mais simples no vim, pelo menos, não em português.

A principal viés para quem vai se iniciar em VIM ou Emacs é a utilização intensa do teclado para acessar as funções do editor, mas não é nada difícil, é uma questão de treino.

É muitíssimo importante ressaltar que o VIM não é o vi, o vim é um fork do vi com vários melhoramentos, principalmente ao que se diz de usabilidade, daí o nome Vim Improved.

Para instalar em debian e derivados sugiro alguns pacotes bacanas:

aptitude install vim vim-scripts vim-python

Aqui vão algumas dicas legais pra quem quer usar o vim como editor multi-uso:

Edição simples

Mantendo o caps-lock desligado temos o básico:

execute o editor:

$ vim

se quiser abrir um arquivo diretamente o comando é:

$ vim /caminho/para/arquivo

abrira a tela simples do vim, modo de visualização

agora, os atalhos

para editar o texto aperte insert, repare que entrará em modo de inserção, se apertar insert novamente vai para o modo “replace” ou substituição.

Para sair de algum modo a qualquer momento pressione Esc até notar que o editor voltou ao modo de visualização.

Comandos

Para abrir o buffer de comandos digite dois-pontos “:”

daí basta ir teclado TAB e ver as opções de comandos, e teclar Enter para executar.

Vejamos os mais comuns:

Salvar o arquivo atual - :w

Salvar e sair do arquivo atual - :wq ou: x

Sair - :q

Sair sem salvar - :q!

Recarregar o arquivo atual - :e

Carregar outro arquivo na buffer(tela) - :e /caminho/para/arquivo

Trabalhando com abas:

Abrir nova aba - :tabnew <ENTER> ou :tabnew /caminho/para/arquivo <ENTER>

Ir para próxima aba - :tabnext

Ir para aba anterior - :tabprevious

Sair de todas as abas - :qall 

Sair de todas as abas ignorando mudanças - :qall!

Salvar todas as abas - :wall

Salvar e sair de todas as abas - : xall

Dividindo a tela:

horizontalmente - :split

verticalmente - :vsplit

navegar entre as divisões da tela - manter <Control> pressionado e digitar ww

Fechar a divisão de tela atual - :q

Seleção visual, recortar, copiar, colar:

para começar/encerrar o modo de seleção visual, vá para o modo de visualização (Esc) e tecle v

Seleção da linha inteira: V (sim, V maiúsculo, pode ser com shift ou caps lock)

Recortar: no vim recortar e deletar são a mesma coisa, pense nomo uma remoção que mantém o item removido em memória:

em modo visual: d

deletar/recortar a linha inteira: dd

colar do cursor em diante: p (funciona em modo visual, substituindo o item selecionado)

colar do cursor para trás: P
copiar em modo não-visual: yy (copia a linha inteira)

copiar visualmente:y

Desfazendo os ações: u

Refazendo o desfeito: <Control>r

Auto-completion

O recurso que mais uso no vim, sem dúvida é o auto completion, é graças ao auto completion que eu aprendo a usar módulos do python e foi graças a ver isso funcionando no vim que resolvi deixar o Scite de lado.

Enquanto estiver em modo de inserção tecle:

<control>n ou <control>p para autocompletar reaproveitando as palavras do arquivo atual

para autocompletar usando recursos do tipo de arquivo atual(javascript, html, python, css, ruby, etc):

mantenha <Control> pressionado e tecle xo

Pronto, com isso acho que já é suficiente para quem quer começar a usar o VIM, por favor, se alguém lembrar de alguma coisa eu adiciono aqui.

Para animar, um vimrc bacanudo:

Baixe esse vimrc, salve como .vimrc e coloque-o na sua home.

Boa diversão!

Interessantes Web Browsers Cujo Você Pouco Ouviu Falar

Novembro 23rd, 2007

Existem vários navegadores que talvez você nunca ou pouco ouviu falar. Além do Firefox, Opera e um tal de IE, existe uma série de alternativas promissoras que possam melhorar a sua flexibilidade, aumentar sua produtividade e enriquecer a sua experiência de navegação.

Na verdade, existem mais de 100 (embora não seja amplamente utilizados) navegadores de aplicações. A maioria deles fazem uso de engine de renderização* Trident (Internet Explorer), Gecko (Mozilla Firefox), WebCore (Safari) e Presto (Opera). Alguns deles oferecem grandes campos de experimentação e exploração, por exemplo 3D, mas também navegadores muito útil com funções avançadas.

Este site selecionou 20 navegadores que entre eles nota-se navegadores parecidos com o que usamos(firefox, opera, IE), alguns bastante desconhecidos, esquecidos e outros avançados ou experimentais, tendo até recursos 3D. Bem interessante dar uma espiada.

O que mais temos no horizonte? O que deveremos usar? E quais poderão ser dispostos a usar? Aparentemente, entre Firefox, Opera e Internet Explorer, há espaço suficiente para abordagens criativas.

*A engine de renderização de um browser pega o conteúdo da página(que pode incluir HTML, XML, arquivos de imagem e etc) e aplica a formatação baseada em um conjunto de instruções codificadas na página (geralmente em um formato como CSS), resultando no que vemos. Cada um dos três produtos tem uma engine diferente, como foi citado, contudo quanto mais aberto o código da engine, melhor e maior o interesse do desenvolvedor e, consequentemente, mais aplicativos estarão disponíveis. O Firefox lidera, com muitas extensões ou add-ons de vários tipos. O Opera, distribuiu APIs para desenvolvedores criarem widgets(mini-aplicativos) e o IE, é o que tem menos a oferecer.