Posts de January, 2011

[Tarsis Azevedo] development |should| be_funny - Python e TDD

Monday, January 31st, 2011

Should o que?!

O should-dsl é uma ferramenta de teste que tem como principal objetivo tornar o codigo mais legivel e limpo.
(http://www.should-dsl.info/)

Ok, mas #comofas?

Depois de instalado (o site ensina como fazer) é bem simples começar a escrever os testes.
Tá duvidando, então olha só:

Esse exemplo eh a implementacao das specs da musica Só para Loucos – Ventania

So Para Loucos Spec Spec

class Pessoa:
    louco = False
    careta = True

    def colher_cogumelos(self):
        self.cogumelos = ['cogumelo1', 'cogumelo2', 'cogumelo3', 'cogumelo4', 'cogumelo5']
        return self.cogumelos

    def fazer_cha(self, *ingredientes):
        cha = ingredientes
        return cha

    def beber(self, oque):
        self.louco = True
        self.careta = False
        self.versos = ['espinho', 'espinho']

        return self

    def guardar_cogumelos(self, cogumelos):
        self.recanto_espiritual = cogumelos
        return self.recanto_espiritual

class TestSoParaLoucos(unittest.TestCase):
    def setUp(self):
        self.pessoa = Pessoa()

    def test_deve_ser_careta_sem_tomar_nada(self):
        self.pessoa |should| be_careta

    def test_deve_estar_louco_depois_de_tomar_um_cha_de_cogumelo(self):
        cogumelos = self.pessoa.colher_cogumelos()

        cha_de_cogumelo = self.pessoa.fazer_cha(cogumelos)
        cha_de_cogumelo |should| contain(cogumelos)

        self.pessoa.beber(cha_de_cogumelo) |should| be_louco
        self.pessoa.versos |should| have(2).espinhos

    def test_deve_guardar_cogumelos_escondidos(self):
        cogumelos = self.pessoa.colher_cogumelos()
        self.pessoa.guardar_cogumelos(cogumelos)
        self.pessoa.recanto_espiritual |should| have(5).cogumelos

if __name__ == '__main__':
    unittest.main()

Só isso?

Isso foi só um exemplo ludico, pra mostrar as possibilidades da ferramneta!
Hoje ela contem varios matchers(as funções de teste) para os mais variados objetivos. Voce pode ver a lista completa aqui

Voce tambem pode fazer seus proprios matchers

Acabou?

Se voce gostou do projeto e quer ajudar, aqui vc encontra varias formas de contribuir!

Entao eh isso, Até a proxima xD

Permalink

| Leave a comment  »

[Andrews Medina] Análise de Código em Python

Monday, January 31st, 2011

Análise (estática) de código é um termo utilizado pela análise feita fora do tempo execução de um código, verificando a sua qualidade.

Há várias formas de analisar um código, a sua sintaxe, verificar a ocorrência de elementos não utilizados, código duplicado e etc.

Vou listar aqui algumas ferramentas de análise de código para python, explicar o uso e instalação de cada uma delas.

pep8

Verificar se o código está seguindo as orientações do pep 8.

Instalação:


[sudo] pip install pep8

Uso:


pep8 /diretorio-do-meu-codigo

pylint

Analisa o código procurando por bugs ou por sinais de baixa qualidade. Como:

  • existência de docstring nos métodos
  • variáveis e atributos não definidos
  • pep8
  • métodos, modulos ou objetos importados não utilizados
  • verifica linhas similares

O pylint atribui uma nota ao seu código de acordo com o resultado do teste.

Instalação:


[sudo] pip install pylint

Uso:


pylint /diretorio-do-meu-modulo-python

pyflakes

Verifica se algum modulo ou objeto importado ou uma variável não estão sendo utilizado. Detecta também variávies não definidos.

Instalação:


[sudo] pip install pyflakes

Uso:


pyflakes /diretorio-do-meu-codigo

clonedigger

O objetivo do clonedigger é detectar códigos semelhantes.

Instalação:


[sudo] pip install clonedigger

Uso:


clonedigger /diretorio-do-meu-codigo

O clonedigger gera um arquivo chamado output.html mostrando todas as duplicações.

Bônus: http://pypants.org/

pypants é um site onde você cadastra seu projeto python e ele analisa a qualidade do seu projeto e da uma nota de acordo com o resultado.

Agora, uma vez como o código analisado, fica mais fácil saber o que refatorar para melhorar a qualidade do mesmo.

[Tarsis Azevedo] Meu ambiente de desenvolvimento em 7 itens

Friday, January 28th, 2011

Mas vc nao já falou disso?!

Entao…

Desde o começo da semana estou trabalhando na equipe do Andrews Medina, na globo.com e ele me indicou para mostrar meu novo ambiente de desenvolvimento.

Sendo assim….

 

1) MacBook + MacOs

Um sistema que eu nunca usei, num note que eu nunca tive. Entao, me sinto com 12 anos ligando meu primeiro pc :D

Tudo é mto diferente, ainda to acostumando a usar 1, 2 ou 3 dedos no trackpad, digitar option+e pra acentuar, entre outras peculiaridades.

Mas to gostando muito, aprendendo muito e me divertindo!!!

 

2) TextMate

Um editor muito legal! Totalmente novo  pra mim tambem, mas me entendi muito bem com ele :P 

Plugins(bundles), macros e snippets muito bons! Acho que vou me dar muito bem com ele! xD

 

3) Git + Gitorius|Github

Bom se vc nao usa/conhece nenhuma dessas coisas, reveja sua carreira de dev! :)

 

4) pip + virtualenv + virtualenvwrapper

Com esse combo consigo desenvolver de forma segura e isolada cada projeto, garantindo que não haverá interferencia.

Se vc desenvolve com python, este combo é essencial

 

5) Iterm2 + Vim + Homebrew

Essa dupla me traz uma velocidade incrivel na hora de editar arquivos e navegar em diretorios.

Com configuraçoes simples consigo tem um bash e um editor poderoso.

Para instalaçao dos pacotes o homebrew é quase tao bom quanto o apt-get xD

 

6)TeamCity CI server

Codigo não testado não merece respeito! Nosso teamcity está configurado pra rodar os 3 tipos de testes: Integracao, unitario, e interface.

Para os testes unitarios e integracao nós usamos o unittest e client do Django. Para interface usamos o splinter (http://pypi.python.org/pypi/splinter/0.0.2)

Os testes rodam com Nose(http://somethingaboutorange.com/mrl/projects/nose/0.11.1/testing.html) xD

 

7) Equipe Mega Foda

xD

 

Bom é esse meu novo ambiente de tabalho!

 

Agora a bola passo a missao para meus amigos: @HugoMaia, @MariOuNaum, @ratembr, @becamotta e @pmnhaes

Permalink

| Leave a comment  »

[Francisco Souza] Mãe, tô na Globo!

Wednesday, January 26th, 2011

G1Eu estava quase certo que a Giran seria a primeira empresa a me aturar por um ano, mas parece que me enganei mais uma vez. 2010 foi um ano totalmente sensacional na Giran, mas em 2011 um novo emprego em uma nova cidade de um novo estado me esperam com quilos de novos desafios! Em Fevereiro vou me juntar ao time de jornalismo da Globo.com.

Entrei na Giran em Março e comecei trabalhando em um projeto utilizando Ruby on Rails. Desde então, trabalhei em alguns outros projetos pontuais utilizando outras tecnologias e linguagens, como PHP, Python, Ruby e Java :) Giran Além de algumas aventuras aleatórias com outras linguagens e plataformas. Tem sido uma experiência incrível trabalhar ao lado de um time de excelentes profissionais, nunca antes na história desse país eu aprendi e amadureci tanto quanto neste tempo que estive na Giran. Me envolvi em eventos e dojos, me aventurei como palestrante, ministrei um curso de Django, joguei no Rails Rumble e adquiri experiência com websites com vários acessos (Wine, maior e-commerce de vinhos da América Latina).

Além desse enorme aprendizado e coisas técnicas malucas, também me acostumei a ganhar da Flavia Missi e do Tagliati nas partidas de Fifa no Xbox, e a ouvir o Almir M3nd3s reclamando por perder todas as lutas para o Leo Hackin (no Street Fighter IV). Por fim, mas não menos importante, fiz grandes amigos que com certeza vou levar para a vida toda!

Na Globo.com, vou trabalhar principalmente com Python, e tenho certeza que vou encontrar desafios muito bacanas, e aprendizados nunca antes experimentados. Estou muito motivado com o ano de 2011 e esse enorme salto profissional, e espero que tudo dê certo nessa nova aventura!

[Andrews Medina] Meu ambiente de trabalho em 7 itens

Wednesday, January 26th, 2011

O @franciscosouza me convocou para listar 7 ítens do meu ambiente de trabalho. Então, lá vamos nós…

1) git + github

O git é uma ótima ferramenta para controle de versão, rápido e distribuído. Já o github é mais que um repósitorio para projetos opensource. É uma rede social para desenvolvedores, onde você pode seguir desenvolvedores e projetos. Ele também simplifica e ajuda a desburocratização da colaboração com o software livre, facilitando a colaboração.

2) textmate

O meu editor favorito é o textmate. Ele é simples, tem syntax highlighting e é facil fazer macros e plugins para ele.

3) macbook + mac os

Para mim o macbook e o mac os é a melhor harmonia entre o software e o hardware. =)

O mac os é muito agradável, fácil de usar, não é necessário perder tempo instalando drivers e etc, e é unix o que o torna bem poderoso como ambiente de desenvolvimento.

Ah, e a bateria dura bastante tempo.

4) homebrew, iterm2

Como terminal eu tenho utilizado o iterm2 tenho gostado. E para instalar pacotes utilizo homebrew.

5) pip + virtualenv + virtualenvwrapper

Atualmente utilizo várias linguagens de programação, mas a que mais utilizo (no momento) é Python.

Para desenvolver em Python, utilizo pip para instalação de pacotes, virtualenv e virtualenvwrapper, para trabalhar em ambientes limpos e isolados pro projeto. Fazendo com que um ambiente utilizado pelo projeto X não precise ter instalado as dependências do projeto Y.

6) TeamCity Continuous Integration Server

Para mim um código não testado não existe. E para monitorar meus projetos e saber se seus testes estão passando eu utilizo o TeamCity com um plugin para chrome, que mostra no chrome se o build está passando ou está quebrado.

7) monitor + teclado sem fio + mouse

Junto com o macbook eu utilizo um monitor, um teclado sem fio da apple e um mouse da microsoft.

Passo a bola para:

[Emerson Macedo] Vídeo e Slides Campus Party Brasil 2011

Tuesday, January 25th, 2011

Na última semana estive na Campus Party Brasil 2011 falando sobre Node.JS. A apresentação foi uma introdução ao tema, até porque o público do evento era bem variado. Deixo aqui os slides e vídeos da palestra pra quem quiser ver como foi.

Node.JS – Campus Party Brasil 2011

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

[Francisco Souza] Meu ambiente de trabalho em 7 itens

Friday, January 21st, 2011

Após ser convocado pelo Jeveaux e pelo Almir M3nd3s a escrever sobre meu ambiente de trabalho, resolvi tirar as teias de aranha do blog, escrever um post sobre o tema e seguir a modinha. Montei uma seleção de ferramentas e “coisas” sem as quais não vivo tanto no meu trabalho na Giran quanto em casa quando estou brincando de programar. Confesso que foi difícil enumerar apenas sete itens, mas vamos lá…

1. Pessoas totalmente sensacionais

Time da Giran

Difícil é combinar uma pose

Esse é o ponto mais importante. Pode parecer blá blá blá e clichezinho de agilista-pseudo-telectual, mas o fato é que eu não estaria apto a desempenhar meu trabalho sem as pessoas com quem trabalho. Os recursosAs pessoas do time da Giran formam o conjunto de gente doida mais incrível com quem já tive o prazer de trabalhar. Estou saindo da Giran, no próximo mês vou para a Globo.com (e isso vai ser assunto de outro post nos próximos dias ;D), e a parte ruim desse enorme salto profissional é deixar a Giran, abandonar geograficamente os grandes amigos que fiz nesse quase um ano de trabalho :)

2. Git e Github

GithubSim, eu coloquei o Git e o Github em primeiro lugar entre as tecnologias. Posso dizer com certeza que o Github é a minha principal rede social, vira e mexe vejo algum projeto bacana e começo seguir, faço fork e to sempre enviando meus commits pra uma ou outra coisa. Também usamos Git aqui na Giran, e espero poder carregar essa incrível ferramenta comigo por qualquer lugar que eu for. Independente do sistema operacional, o Git estará presente. Claro que também uso o Mercurial e o Bitbucket, e tenho que dizer que o Bitbucket está cada vez melhor e mais bonito, mas o Github já faz parte da minha vida.

3. (Mac|G)?Vim

Primeiramente, quero deixar claro que copiei mesmo na cara dura a regex do @m3nd3s. Agora, falando um pouco do Vim, posso descreve-lo de forma bem direta como o editor de texto mais produtivo que eu conheço. VimEu sei, eu sei, pra você o seu editor de texto é o mais produtivo, mas no meu blog é a minha opinião que conta :-P Claro que o meu Vim é turbinado com alguns plugins, snippets e funções. O @jeveaux gosta de implicar comigo dizendo que meu Vim demora mais pra carregar do que o Eclipse. Balela, o Eclipse carrega em 8 segundos e o Vim em 7 segundos e 958 milésimos. A propósito, eu ainda utilizo o Eclipse para trabalhar em projetos Java, por que não encontrei nenhum plugin para imports automáticos no Vim sem transformá-lo numa IDE que fica compilando meus códigos e obtendo informações de execução (como as IDEs pesadonas por aí), então continuo utilizando o Eclipse para trabalhar com Java. E sigo com o Vim para todas as outras coisas: Python, Ruby, XML, HTML, CSS, JavaScript e o que for! :)

4. Python

Sou apaixonado por tecnologia, desenvolvimento de software, agile, TDD, XP, linguagens dinâmicas, etc., etc., etc., mas preciso confessar que tenho um carinho especial pela linguagem de programação Python. É uma das ferramentas mais poderosas que conheço e utilizo, e não Python poweredconsigo imaginar meu cotidiano sem essa linguagem. Aonde quer que eu vá, independente do sistema operacional, eu levo o Vim, o Git e o Python comigo! Não, eu não sou xiita, não vou dizer pra você que a resposta para todos os problemas da sua vida é Python, nem que você deve deixar de usar o que está utilizando para utilizar Python. Não estou nem mesmo dizendo que Python é a melhor linguagem de programação do planeta (mas bem que eu poderia :-P), só quero dizer que a linguagem é incrível e eu não vivo sem ela!

No dia a dia, utilizo Python para aventuranças, testes de conceitos e posts no blog, desenvolvemos o novo site da Giran em Python (usando o Flask), para automatização de tarefas pequenas, no desenvolvimento de projetos open source (Splinter, Lettuce, Flask, Flask-MongoAlchemy, etc.), treinamentos de Django e projetos pessoais.

5. Mac OS X/Linux

Sim, o Mac OS é para moças (pode ficar bravinho e fazer comentário, xiita :-P), mas moças estáveis. Desde que entrei na Giran, tive a experiência de trabalhar com um Macbook Pro, Linux na veia :Duma máquina excelente, mas com um sistema operacional que não **me** agradou muito: apesar da estabilidade, o Finder é um dos piores softwares que já usei na vida, sem falar de outras limitações estranhas e a necessidade de sair procurando um monte de aplicações ali e aqui. Sim, essa crítica é vazia e sem fundamentações, mas entenda: eu uso Mac há quase um ano e minha conclusão é que ainda prefiro Linux. E é por que eu gosto e me sinto mais à vontade com Linux, não por que eu odeio a Apple, o Mac OS ou o Steve Jobs. Pra mim, o Linux é melhor, e ponto final, não há espaço para debates aqui ;)

6. Terminal/Bash

TerminalSim, eu preciso de uma telinha preta (ou roxa, no caso do Ubuntu :P) para digitar comandos. Tanto no Mac OS quanto no Linux eu utilizo o Bash como terminal. Como no caso do Vim, também personalizei o bash com alguns arquivos e essa personalização também está no Github. Desde o vício de digitar ls e git status até a construção de alguns bash scripts e Makefiles onde agrupo meus comandos mais comuns para determinados projetos.

Uso, em geral, o Bash para tarefas de desenvolvimento do dia a dia, e também nas minhas brincadeiras do dia a dia com minha máquina virtual na Linode. Vira e mexe o blog fica fora do ar por que faço alguma “caquinha” no nginx e tudo cai, mas vale o aprendizado, e o bash é o companheiro certo de madrugadas de hackings e momentos que invento de brincar de sysadmin.

7. Algo rabiscável

RabiscoSou viciado em rabiscar coisas. Meus cadernos são totalmente rabiscados, minha apostila de inglês e meus materiais da faculdade parecem cadernos de crianças na creche. Rabisco o teclado do computador, rabisco a carcaça do Macbook Pro, tenho um quadro branco no meu quarto e de vez em quando invento moda de escrever cartas para meus amigos (sim, eu escrevo cartas :-P). Rabisco o scrum board alheio, a tela do meu celular e de vez em quando algumas camisetas e bermudas (sim :P). Enfim, qualquer coisa que parecer rabiscável, eu rabisco. Por isso, *sempre* tenho papel por perto para não rabiscar coisas que parecem rabiscáveis, mas na verdade não são :)

Passando a bola pra frente

Como eu tenho que dar todo segmento à modinha, vou convocar uma turma para escrever sobre os seus respectivos ambientes de trabalho:

[Rafael Biriba] Blogs poluídos: O problema de utilizar anúncios

Tuesday, January 18th, 2011
http://www.adfreeblog.org/

http://www.adfreeblog.org/

Passeando pela internet, achei muito interessante a idéia da campanha “AD-Free Blog“, onde o autor propõe blogs livre de anúncios.

Segundo o autor da campanha, ao monetizar o seu blog, abrindo para anúncios, principalmente quando o anúncio é do tipo indicação (o cliente tem que clicar no banner e comprar.), isso interfere diretamente no conteúdo do blog, ou seja, na forma com que a matéria é escrita.

Veja um exemplo:

Digamos que um autor de blog vai postar sobre o lançamento de um jogo novo. Certamente ele irá colocar alguns banner do submarino no meio do post apontando para a pré-venda do jogo, e pior que isso, ele irá induzir o leitor a clicar no banner.

Agora imagina todos os posts desse autor, sempre com um banner/anúncio espalhado por todos os cantos da publicação. Além de poluir a imagem do blog, você passa a escrever sempre direcionando suas idéias para os anúncios, e dependendo do caso isso pode até alterar a sua opnião sobre o assunto.

Agora, a questão é, Anúncios nos Blogs são ou não um problema ?

Como você já deve ter percebido, eu utilizo muitos anúncios no meu blog. Parte do meu servidor é pago com alguns trocados que recebo com banners do submarino e do google adsense.

O importante é ter anúncios em lugares estratégicos de forma que não atrapalhe o consumo do conteúdo (por isso você nunca encontrará um anuncio no meio do post).

Concordo que existem pessoas que usam e abusam dos anúncios… Já entrei em blogs que a cada parágrafo tinha um banner, mal dava para ler as matérias. Acho que não tem nada pior que você entrar no blog, e ter que se esforçar para ler a matéria, tendo que desviar o olhar de vários anúncios poluindo a área destinada somente ao conteúdo.

Mas também temos que levar em consideração as pessoas que usam de forma correta. E algumas delas (como eu), utilizam de publicidade para ajudar a manter o blog no ar.

Na minha opnião, quem quiser monetizar o seu blog, tem que saber exatamente o que está fazendo, ou seja, sem poluir muito a imagem do blog e sem atrapalhar o consumo da informação. (Que é oa única coisa que importa num blog!)

Eu gosto muito quando entro no site de alguém, e vejo algum anúncio que me interessa, então eu clico e aproveito a promoção. As vezes eu só fico sabendo de algumas promoções boas do submarino pelos banners em alguns sites.

Para mim tem sido extremamente útil ter uma pequena ajuda nos custos do servidor. É muito bom poder contar com leitores dispostos a clicar nos banner (bem posicionados e relevantes), ajudando e incentivando o autor. ;)

Seu opnião sobre o assunto é muito importante para mim. Fique a vontade para expressar seu ponto de vista sobre o assunto.

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] Blogs poluídos: O problema de utilizar anúncios

Tuesday, January 18th, 2011
http://www.adfreeblog.org/

http://www.adfreeblog.org/

Passeando pela internet, achei muito interessante a idéia da campanha “AD-Free Blog“, onde o autor propõe blogs livre de anúncios.

Segundo o autor da campanha, ao monetizar o seu blog, abrindo para anúncios, principalmente quando o anúncio é do tipo indicação (o cliente tem que clicar no banner e comprar.), isso interfere diretamente no conteúdo do blog, ou seja, na forma com que a matéria é escrita.

Veja um exemplo:

Digamos que um autor de blog vai postar sobre o lançamento de um jogo novo. Certamente ele irá colocar alguns banner do submarino no meio do post apontando para a pré-venda do jogo, e pior que isso, ele irá induzir o leitor a clicar no banner.

Agora imagina todos os posts desse autor, sempre com um banner/anúncio espalhado por todos os cantos da publicação. Além de poluir a imagem do blog, você passa a escrever sempre direcionando suas idéias para os anúncios, e dependendo do caso isso pode até alterar a sua opnião sobre o assunto.

Agora, a questão é, Anúncios nos Blogs são ou não um problema ?

Como você já deve ter percebido, eu utilizo muitos anúncios no meu blog. Parte do meu servidor é pago com alguns trocados que recebo com banners do submarino e do google adsense.

O importante é ter anúncios em lugares estratégicos de forma que não atrapalhe o consumo do conteúdo (por isso você nunca encontrará um anuncio no meio do post).

Concordo que existem pessoas que usam e abusam dos anúncios… Já entrei em blogs que a cada parágrafo tinha um banner, mal dava para ler as matérias. Acho que não tem nada pior que você entrar no blog, e ter que se esforçar para ler a matéria, tendo que desviar o olhar de vários anúncios poluindo a área destinada somente ao conteúdo.

Mas também temos que levar em consideração as pessoas que usam de forma correta. E algumas delas (como eu), utilizam de publicidade para ajudar a manter o blog no ar.

Na minha opnião, quem quiser monetizar o seu blog, tem que saber exatamente o que está fazendo, ou seja, sem poluir muito a imagem do blog e sem atrapalhar o consumo da informação. (Que é oa única coisa que importa num blog!)

Eu gosto muito quando entro no site de alguém, e vejo algum anúncio que me interessa, então eu clico e aproveito a promoção. As vezes eu só fico sabendo de algumas promoções boas do submarino pelos banners em alguns sites.

Para mim tem sido extremamente útil ter uma pequena ajuda nos custos do servidor. É muito bom poder contar com leitores dispostos a clicar nos banner (bem posicionados e relevantes), ajudando e incentivando o autor. ;)

Seu opnião sobre o assunto é muito importante para mim. Fique a vontade para expressar seu ponto de vista sobre o assunto.

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Emerson Macedo] Node.JS na Campus Party Brasil 2011

Monday, January 17th, 2011

Amanhã (18/01/2011), estarei na Campus Party Brasil 2011 falando sobre Node.JS. A pedido da organização da track de desenvolvimento, essa palestra será uma introdução sobre o tema, portanto o foco é para quem não conhece quase nada de Node. Se você já assistiu alguma das minhas palestras sobre Node.JS em São Paulo ou no Rio, provavelmente não verá nada de novo, portanto não vale muito a pena assistir novamente, a não ser que queira trocar figurinhas sobre a tecnologia ao final da palestra :p

Para os que não conhecem ainda, garanto que é uma boa introdução a tecnologia, e vai te dar uma visão geral do que o Node.JS tem a oferecer .

Eu não compareci a nenhuma das edições anteriores da Campus Party Brasil. Todo mundo diz que é muito legal, mas nada como estar lá para ter uma opinião própria sobre o evento. Essa ida também será uma oportunidade de conhecer os “Campuseiros” e o ambiente desse concorrido evento (as vagas esgotaram bem rápido).

Estou ansioso, pois provavelmente vai ser bem legal o dia amanhã.

Nos vemos lá.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.