Conector Python/PostgreSQL

Alguns dias atras resolvi instalar o Trac para gerenciar um projeto que desenvolvi, porem durante a instalacao resolvi armazenar meus dados em uma base PostgreSQL, e entao me deparei com a falta de um modulo para conexao Python com PostgreSQL presente na documentacao do Trac, o pyPgSQL.

Minha plataforma utilizada foi um RedHat Enterprise 5 rodando em 64bits, e acabei nao encontrando nenhum pacote pronto e atualizado para a instalacao. Para que nao fosse necessario compilar e instalar tudo manualmente resolvi criar o pacote com base em um spec ja existente e para aqueles que precisarem, vou disponibiliza-lo aqui para download:

Source: pyPgSQL-2.4-0.src.rpm
RedHat Advanced Server 5: pyPgSQL-2.4-0.x86_64.rpm

Bandwidthd Monitor

Muitas vezes não temos como capturar informações sobre a utilização da largura de banda utilizada com SNMP, principalmente porque muitos dispositivos não oferecem suporte ao protocolo e desta forma precisamos de um meio onde seja possível monitorar o consumo de clientes, e essa tarefa pode ser facilmente feita com a utilzacao do Bandwidthd.

Apesar de nao ser muito difundido, o software e bem simples e conta com uma documentacao bem completa para a instalacao e configuracao em servidores. Os dados podem ser armazenados localmente em arquivo ou com a utilizacao de uma base de dados PostgreSQL, sendo que quando configurado para utilizar uma base de dados externa e possivel utilizar uma interface web dinamica escrita em PHP ao inves de HTML estatico e em ambos os casos a geracao dos graficos e feita com a utilizacao da biblioteca GD.

Para aqueles que utilizam sistemas RedHat/CentOS deixei disponibilizado aqui os pacotes RPM para download nas plataformas mais comuns (i386, x86_64) e disponibilizei o src.rpm para caso seja necessaria a recompilacao do pacote.

RedHat Advanced Server 5: i386 / x86_64 / Source RPM

Timezone no PHP

Muitas vezes o horário de verão brasileiro pode afetar o funcionamento de nossas aplicações escritas em PHP que utilizem funções de data, e para que não aconteça nenhum problema existem algumas alternativas que podem ser adotadas para automatizar o processo de transição de horário (BRT/BRST).

A mais comum delas (e menos eficiente na minha opinião) é setar o horário diretamente no seu php.ini através da linha:

date.timezone = "Etc/GMT+2"

Sendo que também é possível utilizar esta chamada diretamente no script de sua aplicação com:

date_default_timezone_set("Etc/GMT+2");

A forma mais eficiente que encontrei para realizar estas transições de horário de forma automática foi utilizando o módulo php-timezonedb que está disponível através do PECL.

Para realizar a instalação do timezonedb é necessário ter as bibliotecas do php (php-dev) disponíveis na máquina.

A forma mais prática de instalação é diretamente através do repositório PECL:

# pecl install timezonedb

E para carregar o módulo na inicialização do PHP, adicione ao php.ini (ou uma entrada no php.d):

extension=timezonedb.so

Para testar o módulo sem a necessidade de reiniciar o servidor web utilize o próprio php-cli:

# php-cli -r "print date('d/m/Y H:i:s e T');"

A saída (em horário de verão) será algo parecido com:

04/02/2008 19:23:32 America/Sao_Paulo BRST

E em horário normal:

04/02/2008 19:23:32 America/Sao_Paulo BRT

Para instalação em um número elevado de servidores é recomendável utilizar o proprio empacotamento de sua distribuicaopara automatizar o processo. Para aqueles que utilizam distribuicoes baseadas em RPM, deixei o pacote source disponivel para downloadphp-timezonedb.el4.src.rpm

Lighttpd Server no FreeBSD

Iniciando os posts deste ano, vou demonstrar a facilidade de instalação de programas no FreeBSD (diferente da complicação que normalmente o pessoal imagina..) contando com a instalação do servidor web Lighttpd que cada vez mais vem se popularizando entre os administradores de sistema, principalmente por ser muito flexível, rápido e ter um consumo reduzido de memória nos servidores.

Em servidores de aplicação com base em FreeBSD ele é uma ótima alternativa e apresenta alta performance no processamento das requisições, principalmente na distribuição dos recursos da máquina entre os processos. Segue os procedimentos de instalação contando com a utilização dos ports disponíveis para o FreeBSD.

Primeiramente, atualize sua árvore de ports com:

# portsnap fetch
# portsnap update

Para iniciar a instalação, entre no diretório do port referente ao Lighttpd:

# cd /usr/ports/www/lighttpd

E execute o processo de compilação, instalação e limpeza para finalizar:

# make
# make install
# make clean

Após finalizado o processo de instalação, configure o /usr/local/etc/lighttpd.conf de acordo com seu ambiente e inicialize o serviço com:

# /usr/local/etc/rc.d/lighttpd start

Para aqueles que não estão habituados a utilizar FreeBSD, esta é a maneira mais simples de manter seu servidor funcional e atualizado, da mesma forma que utilizamos os gerenciadores de pacote no Linux, porém com a diferença de que desta forma a aplicação e compilada diretamente no servidor durante o processo de instalação.

Utilizando RTorrent

Há algum tempo venho utilizando muito o RTorrent como meu client de torrent e estou muito satisfeito com o funcionamento! Para aqueles que ainda não conhecem, RTorrent é um client para Linux / Unix escrito em C que roda diretamente no terminal, sem necessidade de interface gráfica (X-Window), muito rápido, leve e repleto de recursos para a manipulação dos downloads.

Existem pacotes prontos para a maioria das distribuições, mas o processo de compilação é bem simples e conta com uma ótima documentação no site oficial… Basicamente toda a configuração é feita diretamente no arquivo .rtorrent.rc dentro do home de cada usuário, uma descrição geral dos parametros e um arquivo de exemplo podem ser encontrados aqui.

Adicionando e removendo torrents:

  • Backspace – Abre a linha para adicionar novo arquivo .torrent e inicia imediatamente o download
  • Enter - Abre a linha para adicionar novo arquivo .torrent e deixa o download parado na fila (Use ctrl+s para ativar)
  • Ctrl+O – Específica nova pasta de download para o torrent selecionado (só funciona se ele ainda não foi ativado)
  • Ctrl+s – Inicia o download
  • Ctrl+d – Para um download ativo ou remove um download que já estava parado
  • Ctrl + r – Iniciar a checagem de hash do torrent, sem iniciar download/upload.

Controle de velocidade:

  • a / s / d – Aumenta a velocidade de upload em 1/5/50 KB
  • z / x / c – Diminui a velocidade de upload em 1/5/50 KB
  • Utilizar letras maiúsculas para controle de velocidade de download…

Lembrando sempre que os limites são aplicados de forma global, e não por torrent.

Utilização geral:

  • Ctrl + q – Inicia o shutdown do client, já informando os trackers
  • + / – - Define a prioridade dos torrents
  • | – Ver os logs (aperte espaço para voltar)

Consulte também o guia oficial de utilização