Quarta-feira, 24 de Setembro de 2008
Quarta-feira, 25 de Junho de 2008
Colaboração
Há uma promoção da BR-Linux que irá contribuir com comunidades e projetos de software livre. Muito do conhecimento que tenho hoje devo à comunidade Python Brasil e graças à BR-Linux poderei retribuir um pouquinho, divulgando a promoção nesse blog. Obrigado BR-Linux e parabéns pela iniciativa.
Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!
…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e participe - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!
Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!
…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e participe - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!
Terça-feira, 3 de Junho de 2008
Detalhes do comando import em Python
Entre os dias 02 e 06 de junho ocorre na Universidade Tecnologica Federal do Paraná a semana de mobilidade da nokia. Me inscrevi no curso de python para série 60 de celulares da nokia. Para participar foi necessário realizar uma prova e uma das questões me chamou a atenção.
Nessa questão foi declarada uma variável, X, em um módulo e era usada em outro. A idéia aqui é mostrar como funciona o comando import.
O primeiro módulo do teste contém apenas a definição da variável:
No outro módulo, que importa o modulo1.py, a variável é acessada de duas maneiras diferentes:
Quando executamos esse código percebemos que a variável X importada do modulo1.py e a variável X sendo acessada com o nome do módulo não apontam para o mesmo endereço de memória, sendo referências diferentes. Esse é um cuidado que programadores python devem ter ao importar variáveis.
Nessa questão foi declarada uma variável, X, em um módulo e era usada em outro. A idéia aqui é mostrar como funciona o comando import.
O primeiro módulo do teste contém apenas a definição da variável:
#!/usr/bin/env python
# modulo1.py
X = 100
No outro módulo, que importa o modulo1.py, a variável é acessada de duas maneiras diferentes:
#!/usr/bin/env python
# -*- coding=iso8859-1 -*-
'''
funcoes.py: Exemplo de uso do comando import.
Importa a variável X definida no modulo1,
exemplifica o uso do comando import.
'''
import modulo1
from modulo1 import X
def soma(X,Y):
# No escopo da função soma, X é o parametro
# definido no cabecalho da função.
return X+Y
# Atribuição feita à variável X,
# imprime o valor e soma em seguida.
print 'X, antes da soma: %s' % X
X = soma(20,10)
# Atribuição acessando a variável X do modulo1.
modulo1.X = soma(modulo1.X,100)
# Mostra o resultado das operações. É possível reparar
# que após o comando: from modulo1 import X, obtemos
# uma cópia de X no módulo local(funcoes.py). Tanto é
# que ao acessar a variável X usando o nome do modulo
# obtemos o valor sem alterações.
print 'X: %s' % X
print 'modulo1.X: %s' % modulo1.X
Quando executamos esse código percebemos que a variável X importada do modulo1.py e a variável X sendo acessada com o nome do módulo não apontam para o mesmo endereço de memória, sendo referências diferentes. Esse é um cuidado que programadores python devem ter ao importar variáveis.
Marcadores: python import module
Terça-feira, 13 de Maio de 2008
Dica para teste unitário com Python
Em vários posts nesse blog não tenho colocado código em Python, então resolvi dar uma dica para testes unitários, relacionados à uma situação pela qual passei.
A minha intenção foi de criar herança nos testes pois queria testar classes parecidas(que também possuem herança).
À principio importei a classe pai e fiz a herança como de costume.
Ao executar o teste percebi que havia algo errado pois estavam aparecendo mensagens do teste da classe Pai, a ClasseTeste, definida no modulotestes. Fiquei intrigado e fui olhar o código da biblioteca de testes unitários do Python, unittest. Percebi então uma curiosidade, a biblioteca "varre" o módulo sendo testado e executa os testes de todas as classes que herdam de unittest.TestCase. Mas porque então executou os testes do modulotestes?
Ao fazer:
Pedi ao python que trouxesse todos os nomes do modulotestes para o espaço de nomes do testeheranca e com isso a classe Pai, ClasseTeste, veio de brinde, sendo encontrada pela biblioteca unittest. No momento eu percebi isso e fiz uma pequena mudança, veja como ficou:
Dessa forma importei apenas o módulo e evitei trazer todas as coisas que estavam no modulotestes para o espaço de nomes atual. Espero que essa dica ajude alguém. :)
A minha intenção foi de criar herança nos testes pois queria testar classes parecidas(que também possuem herança).
À principio importei a classe pai e fiz a herança como de costume.
from modulotestes import *
class testeheranca(ClasseTeste):
...
Ao executar o teste percebi que havia algo errado pois estavam aparecendo mensagens do teste da classe Pai, a ClasseTeste, definida no modulotestes. Fiquei intrigado e fui olhar o código da biblioteca de testes unitários do Python, unittest. Percebi então uma curiosidade, a biblioteca "varre" o módulo sendo testado e executa os testes de todas as classes que herdam de unittest.TestCase. Mas porque então executou os testes do modulotestes?
Ao fazer:
from modulotestes import *
Pedi ao python que trouxesse todos os nomes do modulotestes para o espaço de nomes do testeheranca e com isso a classe Pai, ClasseTeste, veio de brinde, sendo encontrada pela biblioteca unittest. No momento eu percebi isso e fiz uma pequena mudança, veja como ficou:
import modulotestes
class testeheranca(modulotestes.ClasseTeste):
...
Dessa forma importei apenas o módulo e evitei trazer todas as coisas que estavam no modulotestes para o espaço de nomes atual. Espero que essa dica ajude alguém. :)
Marcadores: python unittest herança import
Domingo, 4 de Maio de 2008
Python - Linguagem BiCampeâ da Arena de Programação
A linguagem Python foi Bi-Campeã da Arena de Programação do FISL, versões 8.0 e 9.0.
No ano passado a arena tinha um formato diferente, foram apresentados problemas em diversas
linguagens, com troca de equipes e ao final foram congratulados primeiro, segundo e terceiro colocados na arena. Nesse ano houve uma equipe ganhadora e a grande diferença é que os desafios da arena eram em Python. Mas então porque a linguagem é bicampeã? No ano passado não houve nem desafio em Python? É que o campeão da arena em 2007, foi Dorneles Treméa, um dos personagens mais importantes do cenário Python, brasileiro, gaúcho e boa gente. Esse ano, o pessoal da comunidade de software liver e Python de Joinville, Alexandre Klostermann e Rafael Floriano e o mineiro importado para o grupo de usuários Python do Paraná, Grupy-PR, Éverton Ribeiro.
Parabéns a todos os vencedores, mas gostaria de destacar o importante papel da linguagem Python na arena, os próprios desafios foram em Python, para os celulares S60 da Nokia e para a plataforma Maemo. Além de palestras lotadas, como a palestra sobre jogos do Gambiarra e do Marco André Lopes, Por que Python? [ Não sei porque não consegui entrar. :) ]. A linguagem foi destaque em palestras que não estavam na trilha Python e nem na grade da associação, APyBR, em duas palestras de games 3D com Blender a linguagem Python foi bem mensionada e também na palestra da Nokia, sobre dispositivos móveis, onde ouvi a frase, Python é a menina dos olhos da Nokia, o que me trouxe um momento de muita alegria. :)
Meus parabéns aos campeões e à linguagem que escolhi como minha preferida.
No ano passado a arena tinha um formato diferente, foram apresentados problemas em diversas
linguagens, com troca de equipes e ao final foram congratulados primeiro, segundo e terceiro colocados na arena. Nesse ano houve uma equipe ganhadora e a grande diferença é que os desafios da arena eram em Python. Mas então porque a linguagem é bicampeã? No ano passado não houve nem desafio em Python? É que o campeão da arena em 2007, foi Dorneles Treméa, um dos personagens mais importantes do cenário Python, brasileiro, gaúcho e boa gente. Esse ano, o pessoal da comunidade de software liver e Python de Joinville, Alexandre Klostermann e Rafael Floriano e o mineiro importado para o grupo de usuários Python do Paraná, Grupy-PR, Éverton Ribeiro.
Parabéns a todos os vencedores, mas gostaria de destacar o importante papel da linguagem Python na arena, os próprios desafios foram em Python, para os celulares S60 da Nokia e para a plataforma Maemo. Além de palestras lotadas, como a palestra sobre jogos do Gambiarra e do Marco André Lopes, Por que Python? [ Não sei porque não consegui entrar. :) ]. A linguagem foi destaque em palestras que não estavam na trilha Python e nem na grade da associação, APyBR, em duas palestras de games 3D com Blender a linguagem Python foi bem mensionada e também na palestra da Nokia, sobre dispositivos móveis, onde ouvi a frase, Python é a menina dos olhos da Nokia, o que me trouxe um momento de muita alegria. :)
Meus parabéns aos campeões e à linguagem que escolhi como minha preferida.
Marcadores: python fisl arena
Sexta-feira, 25 de Abril de 2008
Resoluções de FISL novo.
Todo ano novo as pessoas fazem resoluções de ano novo, são intenções de mudar algum comportamento ou agir em alguma direção. Muitas vezes não passam disso, criamos as resoluções e durante o ano não às praticamos.
Como sempre que participo do FISL eu renovo minhas energias e me sinto empolgado com software livre, o que causa em mim uma vontade enorme de contribuir com os diversos projetos. E normalmente fica nisso também, acabo não contribuindo com os projetos como eu gostaria.
Nesse FISL resolvi mudar, minha resolução de FISL novo será mais simples e acessível, nada de projetos impossíveis ou compromissos que não poderia cumprir, minha resolução é simplesmente cumprir minhas resoluções. Como uma boa prática para conseguir isso é divulgar ao maior número de pessoas, pois gera um compromisso maior consigo mesmo, resolvi colocar na internet algumas delas.
Escrever no blog uma vez na semana, ao menos. Aprender conversação e redação em inglês. Promover a linguagem Python no Paraná. Melhorar a qualidade de meus códigos, com documentação e comentários.
Essa é a primeira semana, estou dando os primeiros passos nesse caminho. Escrevi um post, programadores Python do Paraná irão participar do FLISOL em mais de uma cidade e marcamos uma reunião para discutir nossos passos e grupos de interesse e comecei a escrever mais comentários e mais documentação nos meus códigos além de organizar melhor a estrutura do código em si.
Lembrei de trazer uma camiseta para meu filho, dei a ele no domingo quando cheguei. Ele vestiu a camisa assim que ganhou e usou todos os dias até hoje, tirando apenas para colocar o uniforme da escola e para colocar o pijama, veja ele acompanhado dos inseparáveis bonecos do Ben10
, pretendo fazer o mesmo, vestir a camisa do software livre todos os dias.
Espero ter forças e motivação para continuar assim, até o próximo FISL pelo menos. :)
Como sempre que participo do FISL eu renovo minhas energias e me sinto empolgado com software livre, o que causa em mim uma vontade enorme de contribuir com os diversos projetos. E normalmente fica nisso também, acabo não contribuindo com os projetos como eu gostaria.
Nesse FISL resolvi mudar, minha resolução de FISL novo será mais simples e acessível, nada de projetos impossíveis ou compromissos que não poderia cumprir, minha resolução é simplesmente cumprir minhas resoluções. Como uma boa prática para conseguir isso é divulgar ao maior número de pessoas, pois gera um compromisso maior consigo mesmo, resolvi colocar na internet algumas delas.
Escrever no blog uma vez na semana, ao menos. Aprender conversação e redação em inglês. Promover a linguagem Python no Paraná. Melhorar a qualidade de meus códigos, com documentação e comentários.
Essa é a primeira semana, estou dando os primeiros passos nesse caminho. Escrevi um post, programadores Python do Paraná irão participar do FLISOL em mais de uma cidade e marcamos uma reunião para discutir nossos passos e grupos de interesse e comecei a escrever mais comentários e mais documentação nos meus códigos além de organizar melhor a estrutura do código em si.
Lembrei de trazer uma camiseta para meu filho, dei a ele no domingo quando cheguei. Ele vestiu a camisa assim que ganhou e usou todos os dias até hoje, tirando apenas para colocar o uniforme da escola e para colocar o pijama, veja ele acompanhado dos inseparáveis bonecos do Ben10
, pretendo fazer o mesmo, vestir a camisa do software livre todos os dias.Espero ter forças e motivação para continuar assim, até o próximo FISL pelo menos. :)
Sexta-feira, 18 de Maio de 2007
III Conferencia Brasileira de Python

Que tal participar de um evento onde assuntos
como cache de servidores web, bibliotecas de
sistemas distribuidos, frameworks para web e
monitoramento de cargas rolam solto?
Gosta disso tudo? Quer ver caras bons falando
desses assuntos? Então o seu destino é Joinville.
Participe da III Conferencia Brasileira de Programadores Python.
Mesmo sem poder ir você pode ajudar
divulgando em seu site.
Você que manja de Python pode apresentar algum trabalho
ou ministrar um mini-curso.


