Django no dreamhost (super script)

dezembro 2nd, 2008

Em julho de 2007 eu postei sobre como fazer o deploy de django no dreamhost,
há algumas semanas eu adotei uma perspectiva nova para trabalhar com freelas num ambiente fácil de lidar, ou seja, deployment fácil, num ambiente flexível.

No domingo eu comecei a escrever um shell script que faz toda a configuração no dreamhost.

O post original sobre isso está no meu blog pessoal, mas vou replicar alguns pontos aqui.

O que o script faz é baixar alguns arquivos de template que estão no meu server, e fazer uma configuração de python e django no seu $home do dreamhost.

Esses templates se tornarão scripts ou arquivos de configuração para seus projetos.

Os passos que o script segue são:

  1. Baixar Python, Django, Python-setuptools, Python-fastcgi para um diretório chamado “downloads”
  2. Extrair tudo
  3. Criar um root local em $HOME/.myroot com os subdiretórios etc e usr
  4. Adicionar o novo caminho “bin” ao PATH global, através dos arquivos basrh e bash profile.
  5. Compilar e instalar python no novo prefixo: $HOME/.myroot/usr
  6. Instalar Django, e renomear o script django-admin.py para django-admin
  7. Configurar o bash completion para completar comandos do django (tanto to manage.py como do django-admin)
  8. Instalar os módulos FLUP (fastcgi), MySQL, PIL
  9. Baixar os scripts de template to $HOME/projects/script_templates
  10. Substituir as variáveis necessárias nos templates
  11. Mover o template djangify.template para o novo path de bin $HOME/usr/bin e dar permissão de execução.

O script pode ser baixado em: http://gnu.gabrielfalcao.com/django_dreamhost/django_dreamhost.sh

E todos os componentes estão num repositório GIT:

git clone http://git.nacaolivre.org/django_dreamhost

Todas as partes estão sob GPLv2+

Espero que ajude!

Python cx_Oracle e unicode

outubro 31st, 2008

Fazendo alguns scripts de migração com SQLAlchemy tive problemas com os resultados das queries.

Acontece que todos os resultados que possuem caracteres especiais vinham com "?".

Por exemplo, se nos resultados tivesse o nome João, vinha "Jo?o".

A princípio acreditei ser algo relacionado à configuração do SQLAlchemy, mas depois descobri que o problema está relacionado ao ambiente do oracle.

Para resolver o problema, basta definir a variável que ambiente que será usada pelas bibliotecas compartilhadas do Oracle:

NLS_LANG

 

Exemplo:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
from sqlalchemy import *
from sqlalchemy.sql import *

os.environ["NLS_LANG"] = ".UTF8"

engine = create_engine(’oracle://usuario:senha@tnsentry’,
                       encoding=’utf8′,
                       convert_unicode=True)

metadata = MetaData(bind=engine)

connection = engine.connect()

user = Table(’table_user’, db.metadata,
                Column(’user_id’, Integer, nullable=False),
                Column(’user_name’, Unicode(200)))

query = select([user.c.user_name]).\
                where((user.c.user_name.like(’%Pereira%’))). \
                      order_by(user.c.user_name.desc()).limit(10)

for x in db.connection.execute(query).fetchall():
    print x[0]

 

Easter Egg no Globo Amazônia

setembro 16th, 2008

O time de aplicativos da globo.com deixou um easter egg no Globo Amazônia, basta acessar o site http://www.globoamazonia.com/ aumentar o nivel de zoom duas vezes (clicar 2x no +) e teclar Ctrl+Shift+Alt+a.

Muito legal!

Configurando a placa de som no Toshiba A135-S4527

setembro 8th, 2008

Desde que troquei meu notebook pro satellite135.jpgToshiba A135-S4527, o jack do fone de ouvido sequer funcionava.
Procurei bastante na internet, mas o máximo que consegui foi fazer com que o jack do headset funcionasse, mas os speakers continuavam tocando.
Após muito, mas muito tempo, resolvi procurar novamente, e acabei descobrindo uma pequena opção extra que faz o que eu sempre quis: Deixar os speakers mudos enquanto o headset está ligado.

As dicas que seguem funcionam somente em Debian, e provavelmente em Ubuntu ou outras distros baseadas em Debian.

Tudo o que precisa fazer é adicionar a seguinte configuração em /etc/modprobe.d/alsa-base:

options snd-hda-intel position_fix=1 model=lenovo

Depois de definir essa configuração e reiniciar os módulos de audio o headset funcionou quase perfeitamente, exceto pelo fato de que quando eu diminuia o volume completamente e depois aumentava, o speaker começava a tocar, daí eu precisava remover e recolocar o headset no jack.

Mas vasculhando o mixer do GNOME, descobri que basta deixar o Front-speaker mudo.

Segue screenshot:
Mixers

Django 1.0 estável lançado! (e empacotado pra debian)

setembro 3rd, 2008

Ontem saiu a esperada versão 1.0 do Django.
Fiquei bastante empolgado, o Django amadureceu bastante, e nos ultimos tempos o número de commits foi absurdamente grande num curto período de tempo. O pessoal andou trabalhando bastante :)

Quem estava preocupado em usar o 1.0 alpha ou beta, já pode ficar tranquilo.
Pra quem usa Debian, acabei de atualizar o pacote oficial, o novo pacote com a stable tá quentinho aqui.

Enjoy!