Máquina virtual para desenvolvimento usando o Vagrant e Ansible

Depois de fazer um belo upgrade de memória (4gb -> 16gb) eu resolvi usar o Vagrant como plataforma de desenvolvimento, fiz uma nova instalação do Osx Mavericks e deixei o meu sistema o mais limpo possível, deixando tudo que é necessário para desenvolvimento na máquina virtual do vagrant.

Agora eu estou usando o Ubuntu Precise64 e tenho praticamente a mesma infra que uso nos servidores de produção, para provisionar essa máquina eu usei o Ansible e os arquivos de configuração eu deixei a disposição no meu Github.

Agora eu tenho tudo o que preciso para desenvolver ao alcance, basta usar o vagrant up e esperar a configuração do sistema.

O que vem incluso:

  • Mapeamento das portas dos servidores
  • Mysql 5.5, usuário e senha ‘allisson’
  • Postgresql 9.3 + Postgis, usuário e senha ‘allisson’
  • Nodejs via ppa
  • Mongodb via ppa
  • Redis e Memcached

Links:

Django para Iniciantes

Eu já tinha falado sobre o Curso Django para Iniciantes, pois bem, estou dando um presente para a comunidade e liberando todas as aulas no meu canal do Youtube.

Foi usado o Django 1.4 nas aulas, e penso em fazer uma nova versão do curso (se a comunidade demonstrar interesse), usando o 1.6/1.7. Confirmado o interesse da comunidade, eu usarei o esquema de financiamento coletivo para arrecadar e assim poder produzir as novas aulas.

Gunstar 0.2

Acabei de liberar o release 0.2 do Gunstar, a principal mudança foi na documentação, que está bem mais abrangente, agora temos vários tópicos e não apenas o quickstart.

Tive o prazer de fechar a issue #1 do projeto também :D

Para os interessados, agora em setembro eu estarei fazendo um mutirão python sobre o Gunstar, se você quiser saber mais sobre WSGI e como é simples criar um micro framework, não perca!

Atualização:
A versão 0.2 está com um bug na instalação, eu já liberei a 0.2.1 que resolve o problema. Eu agradeço ao Elton Santos por avisar.

É difícil criar um micro web framework em python? Eu consegui em 12 dias :)

Hoje eu fiz o lançamento da versão 0.1.0 do Gunstar, um micro web framework em python. Isso levou ao todo 12 dias, desde a criação do repositório até a publicação da versão 0.1.0 no pypi.

A principal facilidade em escrever um micro framework em tão pouco tempo se resume a um padrão , o WSGI, com ele podemos escrever aplicações usando ótimas bibliotecas como o WebOb (que usei no Gunstar) ou o Werkzeug (base do Flask). Essas duas bibliotecas cuidam de transformar requisição e resposta em objetos que posso manipular facilmente na minha aplicação python.

Com o tempo que poupei usando o WebOb eu escrevi duas classes que fazem o papel de roteamento de urls, o código é bem simples, e o melhor de tudo, funciona!

Também criei uma interface para gerir sessão dos usuários usando signed cookies, não vejo motivos para usar sessão em arquivos ou em banco de dados, claro que temos que reconhecer que existe um limite para o tamanho da sessão e que isso tem uma influência no tamanho das requisições e respostas, mas se você precisa guardar tanta informação assim em uma sessão, você está fazendo isso errado, grave apenas a chave na sessão e o resto retorne de um banco de dados.

Usei o Blinker para implementar signals, um dos usos foi na captura do template e do contexto em que esse template foi renderizado para usar nos testes, o código chega a ser ridículo, o blinker é uma mão na roda.

A documentação ainda está devendo em muitos pontos, temos apenas o quickstart por enquanto, mas se vocês tiverem curiosidade podem olhar os testes que vão descobrir o que podemos fazer com o Gunstar.