Hoje teve início na Paraíba o IV Encontro de Software Livre da Paraíba – a programação completa pode ser vista aqui – , este ano é prometida a presença de Jon Maddog, e Rasmus Lerdof, o pai do PHP. Infelizmente não pude ir devido a proximidade dos dias das mães – sacanagem essa data – mas seguindo os grandes eventos como FISL e a Campus Party, hoje, foi anunciado que o evento também será transmitido on-line através do link http://ensol.gigahost.com.br além de flashes que serão postados no Twitter do ENSOL http://twitter.com/ensol. Fica a dica 😀

Rodrigo Lira

Além das reuniões mensais agora o pessoal do PUG-PE pode se reunir no canal do Freenode. O #pug-pe foi criado nesse último final de semana e já possui participantes assíduos! Eu vivo por lá, rodrigoclira  😀

Rodrigo Lira

Frequentemente perguntam-me  onde pode ser encontrado documentação para estudar Python, sempre respondo

– “Internet !

E  não estou sendo chato, ou impaciente mas  é a realidade. A internet é uma fonte inesgotável de informação sobre Python, o único problema é conseguir filtrar o que realmente vinrá a somar no seu aprendizado. Enfim para não falar o óbvio novamente, criei uma seção no blog para servir como repositório de links para livros, tutoriais e sites importantes.

p.s. A foto não tem nenhuma relação com o post mas achei muito boa 😀

Rodrigo Lira

O Ideone é um ‘pastebin’ que além de postar o código com a formatação e o highlights permite rodar e debugar  no próprio site.

http://ideone.com/

Twittado por Flávio Ribeiro.

Rodrigo Lira

Descobri recentemente que o Google tem uma API para geração de gráficos on line, o Google Chart API. O mais legal é que há alguns módulos em Python, para essa API como o pygooglechart e o google-chartwrapper.
A utilização desses módulos é bem simples, veja o código abaixo  que cria um gráfico de Pizza 3D com o pygooglechart.
from pygooglechart import PieChart3D
pie = PieChart3D(200,200) # Tamanho em pixels da imagem
info = [15,80,5] # os três dados que serão mostrados no Gráfico.
pie.add_data(info)
pie.download('pie.png')
print pie.get_url() # retorna uma url onde pode ser visualizado o gráfico
Através dos métodos disponíveis em cada instância é possível configurar título,  legendas para os dados, entre outros.
O resultado será
Seguindo o exemplo que está na página do google-chartwrapper o gráfico de Pizza 3D poderia ser criado da seguinte forma
>>> from GChartWrapper import Pie3D
>>> Pie3D([5,10]).title('Hello Pie').color('red','lime').label('hello','world')

Rodrigo Lira

Recentemente estava procurando um widget em PyGtk ou Tkinter  para representar uma matriz NxM, recebi o conselho na lista da Python Brasil que poderia ser usado “GtkListModel associada com a respectiva GtkTreeView” mas googlando encontrei algo mais simples com Tkinter.

gridview

Encontrei o código original neste fórum mas alterei alguns trechos  para sua utilização ficar mais simples e flexível.

1. Com uma  mudança de ordens de parâmetros tornei  possível acessar e alterar as células no formato LINHAxCOLUNA através dos métodos get  e set respectivamente.

2. Agora o widget herda de Tkinter.Frame o que torna a sua utilização mas flexível.

Não sou muito fã da Tkinter devido seu estilo antiquado mas o fato de já está incluso na biblioteca padrão de Python pesou a seu favor na hora de utiliza-la no meu projeto. O código atualizado do widget  pode ser visualizado aqui.

Rodrigo Lira

subversion

Como tinha dito no último post falarei  como autenticar um repositório svn mas antes disso darei uma dica para quem precisa encurtar o caminho de acesso.

Se você perceber no ultimo post o caminho do repositório para acesso externo ficou

svn://250.1.168.72/home/rodrigoclira/projeto

Além de ser extremamente grande, revela todo uma série de diretórios no seu pc, uma forma simples de resolver isso é criando um link simbólico no diretório raiz,

rodrigoclira@desktop:/# ln -s /home/rodrigoclira/projeto projeto
rodrigoclira@desktop:/# chmod 777 projeto

Agora podemos utilizar apenas

svn://250.1.168.72/projeto

Vamos para a autenticação…

Primeiramente, há três maneiras de fazer uma autenticação num repositório, via ssh, apache ou svn. Vou explicar utilizando a do próprio svn que é bem simples.

Dentro de qualquer repositório há algumas pastas entre elas a ‘conf’, essa pasta contém os arquivos que iremos alterar.

É no arquivo ‘passwd’ que iremos definir os usuários e suas respectivas senhas.

[users]
rodrigo = 1234

Dessa forma o repositório terá apenas um usuário, ‘rodrigo’ com a senha ‘1234’.

Agora é necessário alterar algumas linhas da tag [general] do arquivo ‘svnserve.conf’, que se encontra na mesma pasta.

No final a sua aparência será algo como

[general]
# Acesso anônimo não é autorizado
anon-access = none # outras opções, read ou write
# Usuários autenticados podem ler e escrever
auth-access = write
# O arquivo que define os usuários
password-db = passwd
# Nome real do repositório
realm = Repositorio do Rodrigo


Com essa configuração qualquer acesso ao repositório só será permitido após uma autenticação.

Instalando servidor svn no linux

| Controle de versão com Subversion

Rodrigo Lira

“Um sistema de controle de versão é um software que tem finalidade gerenciar diferentes tipos de versões no desenvolvimento de um documento qualquer. Esses sistemas são comumente utilizados no desenvolvimento de software para controlar as diferentes versões – histórico e desenvolvimento – dos códigos-fontes e também da documentação. Este tipo de sistema é muito presente em empresas e instituições de tecnologia e desenvolvimento de software. É também muito comum no desenvolvimento de software livre. É útil, em diversos aspectos, tanto para projetos pessoais pequenos e simples como também para grandes projetos comerciais.”

Texto retirado do Wikipedia

Recentemente foi necessário instalar e configurar um servidor svn na empresa que estagio. Devido a grande quantidade de informação inútil absorvida na internet e minha total inexperiência no assunto, a instalação demorou mais do que o necessário porém o procedimento é bem simples. A instalação foi feita numa máquina virtualizada através do VMware com o Debian Lenny.

Vamos lá !

Para o funcionamento do Servidor SVN é necessário a instalação de três pacotes, o subversion, apache2 e a libapache2-svn. Para instalar os pacotes, como root, digite no terminal

#apt-get install subversion

#apt-get install apache2

#apt-get install libapache2-svn

Bem agora é necessário adicionar duas linhas no arquivo de configuração do apache, “httpd.conf” e caso você esteja usando Debian é necessário fazer o mesmo para o “apache2.conf”. Ambos são encontrados em /etc/apache2/

Adicione o seguinte

LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so

LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so

Depois é necessário reiniciar o servidor apache

rodrigoclira:/etc/apache2/# /etc/init.d/apache2 restart

Será impresso algo parecido com isso na tela

Forcing reload of web server: Apache2[Sun Apr 03 22:16:45 2010] [warn] module dav_module is already loaded,skipping

[Sun Apr 03 22:16:45 2010] module dav_svn_module is already loaded,skipping

[Sun Apr 03 22:16:48 2010] module dav_module is already loaded, skipping.

[Sun Apr 03 22:16:48 2010] module dav_svn_module is already loaded,skipping

Bem, está quase tudo pronto, agora é necessário rodar o comando svnserve que permite acessar aos repositórios usando o svn network protocol.

#svnserve -d

DICA Adicione esse comando no script de inicialização da máquina, veja como no artigo do vivaolinux

Acabada as configurações, vamos criar um repositório SVN

rodrigoclira@desktop:/home/rodrigoclira# svnadmin create projeto

Onde “projeto” é o nome do repositório a ser criado. Para acessar externamento ao repositório por um cliente SVN, como o TortoiseSVN , RapidSVN ou o svn, dê um checkout informando na url o seguinte

svn://IPdaMAQUINA/CAMINHOdoREPOSITORIO

 

Se tudo foi feito corretamente aparecerá a confirmação do checkout, informando que não há alterações no repositório.

Esse tutorial é baseado no Playing with SVN do Debian Administrator

Próximo post eu escreverei algumas dicas e explicarei como colocar autenticação no repositório SVN.

| Autenticação no repositório svn

| Controle de Versão com Subversion

| HP12C on line

Rodrigo Lira

Desde que comecei a cursar Engenharia da Computação, tenho passado grande parte do meu tempo livre lendo, estudando, testando algumas tecnologias. Bem hoje, após dois anos de curso decidi criar um blog para falar um pouco sobre TIC e poder passar  esse conhecimento adquirido.

Vamos ver se vai dá certo 😀

Rodrigo Lira