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.

Usando o Docker para deploy de aplicações Django

Nessa última sexta eu tive a oportunidade de apresentar mais um mutirão python, dessa vez eu falei sobre o Docker.io e como fazer um deploy de um pequena aplicação Django usando o conceito de containers do Docker.

Vídeo do hangout:

Vídeo gravado com screenflow:

Slides:

Django + Docker

Evento:
Usando o Docker para deploy de aplicações Django

Vídeos do Mutirão Python Construindo um micro framework web em Python

Ontem eu tive a oportunidade de falar sobre a minha experiência em criar o micro framework Gunstar, como de costume eu sempre gravo o hangout com o screenflow e recomendo assistir essa versão.

Vídeo do hangout

Vídeo gravado com screenflow

Slides:
http://www.slideshare.net/allisson/micro-frameworkpython

http://speakerdeck.com/allisson/construindo-um-micro-framework-web-em-python

Gerenciando versões do python com o pyenv

Em uma pesquisa rápida eu encontrei o pyenv, que segue os mesmos princípios do rbenv para ruby.

O que o pyenv nos oferece:

  • Instalação do interpretador python usando o $HOME do usuário
  • Instalação de várias versões diferentes do python, cada uma com seu diretório isolado

Atualmente eu estou utilizando o vagrant com o box do precise32 (ubuntu 12.04 lts), ele vem com o python 2.7.3 e com a opção de instalar o python 3.2.3, mas eu queria ter as últimas versões estáveis (atualmente 2.7.5 e 3.3.2), o pyenv resolve esse problema.

Primeiro precisamos instalar as dependências:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential git-core
sudo apt-get install libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev

Clonando o pyenv no $HOME do seu usuário:

cd
git clone git://github.com/yyuu/pyenv.git .pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.profile
exec $SHELL

Faça o logout/login e volte ao seu terminal, para ver quais são as versões que você pode instalar execute:

vagrant@precise32:~$ pyenv install -l
Available versions:
  2.4
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
  2.5
  2.5.1
  2.5.2
  2.5.3
  2.5.4
  2.5.5
  2.5.6
  2.6.6
  2.6.7
  2.6.8
  2.6-dev
  2.7
  2.7.1
  2.7.2
  2.7.3
  2.7.4
  2.7.5
  2.7-dev
  3.0.1
  3.1.3
  3.1.4
  3.1.5
  3.1-dev
  3.2
  3.2.1
  3.2.2
  3.2.3
  3.2.4
  3.2.5
  3.2-dev
  3.3.0
  3.3.1
  3.3.2
  3.3-dev
  3.4-dev
  jython-2.5.0
  jython-2.5.1
  jython-2.5.2
  jython-2.5.3
  jython-2.5.4-rc1
  jython-2.5-dev
  jython-2.7-beta1
  jython-dev
  pypy-1.5
  pypy-1.5-src
  pypy-1.6
  pypy-1.7
  pypy-1.7-dev
  pypy-1.8
  pypy-1.8-dev
  pypy-1.9
  pypy-1.9-dev
  pypy-2.0
  pypy-2.0.1
  pypy-2.0.1-src
  pypy-2.0.2
  pypy-2.0.2-src
  pypy-2.0-dev
  pypy-2.0-src
  pypy-2.1
  pypy-2.1-src
  pypy3-2.1-beta1
  pypy3-2.1-beta1-src
  pypy3-dev
  pypy-dev
  stackless-2.7.2
  stackless-2.7-dev
  stackless-3.2.2
  stackless-3.2-dev
  stackless-3.3-dev
  stackless-dev

Instalando o 2.7.5 e 3.3.2:

pyenv install 2.7.5
pyenv install 3.3.2
pyenv rehash # execute sempre depois de instalar um novo interpretador
pyenv global 2.7.5 3.3.2 # deixa o python 2.7.5 como o python padrão e também o 3.3.2 disponível

Para instalar o pypy você precisa instalar mais algumas dependências:

sudo apt-get install libffi-dev libssl0.9.8

Após isso precisamos criar um link simbólico para o libffi ser encontrado pelo pypy:

sudo ln -s /usr/lib/i386-linux-gnu/libffi.so.6 /usr/lib/i386-linux-gnu/libffi.so.5

Agora sim, pypy 2.1:

pyenv install pypy-2.1

Isso é o básico, no wiki do pyenv tem mais informações úteis.

Construindo um micro framework web em Python

Convido a todos para o Mutirão Python – Construindo um micro framework web em Python na próxima terça-feira.

Irei falar bastante sobre WSGI e das decisões que tomei ao criar o Gunstar, e como já é de costume, vamos ver muito código!

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.