Django 1.0 alpha liberado!

Agora é oficial. A versão 1.0 alpha do Django foi liberada!

Dentre as principais novidades estão:

  • Uma interface de administração completamente refatorada (newforms-admin);
  • Melhorias na manipulação do Unicode; e
  • Melhorias no ORM.

Para saber mais leia o anúncio oficial e os release notes.


Palestras sobre Python no meio Acadêmico

Duas palestras muito interessantes sobre o uso de Python no meio acadêmico foram publicadas recentemente e eu achei interessante disponibilizá-las aqui também.

Vale a pena assistir!


Relato: Mini-curso – Ruby On Rails – Latinoware 2007

O mini curso que estava previsto para ter início às 15:00 e término às 20:00 do dia 13 teve uma duração bem menor do que a prevista onde foram abordados os principais aspectos do framework para desenvolvimento de aplicações Web Ruby On Rails. Inicialmente o ministrante fez uma demonstração de especificidades da linguagem Ruby, que é muito parecida com Python e demonstrações de como tudo na linguagem é composto por objetos que possuem métodos, inclusive os tipos primitivos de dados, o que é muito bom, pois associado ao fato de se tratar de uma linguagem dinâmica, ela é fortemente tipada e conta com tipagem dinâmica de dados. Essas características fazem do Ruby uma linguagem simples, poderosa e fácil, que pode ser utilizada para construir softwares complexos sem que o programador tenha tanto trabalho quanto teria se estivesse usando linguagens mais rudimentares como o Java, C ou Pascal, além de não exigir recompilações e todas as outras vantagens que são inerentes a linguagens dinâmicas como o Python, Perl e outras.

Ao iniciar a demonstração do framework própriamente dito, no caso o Ruby On Rails, ele demonstrou de maneira rápida as características prinicipais do framework e explicou como a filosofia de “Convention over Configuration” contribui para a criação de aplicações simples e eficazes.

O Ruby on Rails parte da premissa que um desenvolvedor cria seus softwares partindo do topo para a base, sendo que a definição da base de dados gera automáticamente as classes do sistema de forma dinâmica, sem geração de código, aumentando muito a produtividade do desenvolvedor. Infelizmente não foi possível desenvolver a aplicação de exemplo que havia sido proposta inicialmente, o que prejudicou o conteúdo do mini-curso, que acabou se transformando numa palestra um pouco mais aprofundada.

De qualquer forma, existem muitos materiais sobre Ruby on Rails e eu procurei listar alguns aqui para quem tiver interesse.

Site Oficial: http://www.rubyonrails.org/

Ruby On Rails Brasil: http://www.rubyonrails.com.br


Caindo na Real: Metodologia para Desenvolvimento de Aplicações Web

Não sei se todo mundo já ouviu falar do Ruby on Rails, que é um framework para desenvolvimento ágil de aplicações web desenvolvido em uma linguagem chamada Ruby, muito parecida com o Python (que também possui frameworks assim), que são linguagens simples, dinâmicas e totalmente orientadas a objetos.

A empresa que desenvolveu o Ruby on Rails, a 37signals, também criou uma nova metodologia de desenvolvimento de aplicações web chamada “Getting Real”, que deu origem a um livro com o mesmo nome. A grande novidade é que esse livro agora está disponível para leitura on-line em português do brasil e pode ser encontrado nesse endereço.

É claro que existem outras metodologias, como a RUP, que é muito adequada para grandes projetos, principalmente os mais complexos, que contam com grandes equipes e que foca a organização e documentação prévia de cada detalhe do projeto, e a XP que é voltada para o desenvolvimento de aplicações privilegiando a comunicação com o usuário e a realização de ciclos rápidos de desenvolvimento focando a divisão do projeto em pequenas partes, aliada a modularização do projeto (e que deu origem a algumas técnicas marcantes, como a realização de testes unitários e a programação em pares).

Já a proposta do pessoal da 37signals foi criar uma metologia que privilegia a utilização de frameworks de desenvolvimento ágil, onde a preocupação com detalhes de implementação é totalmente abstraída e o desenvolvedor se foca apenas na construção da solução para o problema apresentado, podendo ser utilizada tanto em projetos pequenos quanto em grandes projetos. Além disso, as ferramentas de desenvolvimento ágil de aplicações web possuem recursos de auto-documentação e API‘s de fácil compreensão, além de serem desenvolvidas em linguagens de script, como as que eu citei inicialmente, onde o código fonte está sempre à disposição do desenvolvedor seguindo critérios de organização definidos pelo framework, que dentre outras coisas, também oferece a separação entre modelos, controladores e visões ( MVC).

Pois bem, se você leu até aqui eu creio que irá gostar de ler o livro. Ele é curto, divertido e de simples compreensão. Vale a pena perder um tempo e refletir sobre qual metodologia é mais adequada ao seu projeto.

Obs.: Tentei disponibilizar o máximo possível de links no texto pra dar uma força pra quem se sentir meio perdido. Espero que gostem.


Django Book

Está disponível no endereço http://djangobook.com a versão prévia do Livro do Django que está sendo escrito por Adrian Holovaty e Jacob Kaplan-Moss, os dois sujeitos mais envolvidos com o desenvolvimento do Framework Web Django. E pra não dizer que não falei em flores, até a Interface do Livro na Web é um verdadeiro show :-).


Tabblo: A Aplicação Matadora para Fotologs e Álbuns Digitais

Eis que surge o campeão das aplicações da web 2.0 para álbuns de fotos e demais usos relacionados com imagens digitais. O nome do mais novo web 2.0 killer app é Tabblo. O ambiente foi desenvolvido em Django com ampla utilização de Ajax e uma interface que é simplesmente ótima.

Isso demonstra o quanto é viável utilizar o Django no desenvolvimento de aplicações web, principalmente se na hora de desenvolver as interfaces e templates houver a preocupação com a adoção de tecnologias que favoreçam a usabilidade.

Não vou nem tecer muitos comentários a respeito, vá até o site, cadastre-se e faça alguns testes. Duvido que não irá passar a usar o Tabblo como ambiente para seus álbuns de fotos. 😉


CMS’s, frameworks e informações estruturadas

Passei um bom tempo dedicando-me à exaustiva jornada em procura por um sistema de gestão de conteúdos que possibilitasse a construção de um ambiente composto por informações estruturadas e não estruturadas. A primeira grande descoberta é que os CMS’s mais difundidos na Internet são muito enfaixados e que geralmente só conseguem dar conta sem grandes dores de cabeça daquilo para o qual foram originalmente desenvolvidos.

Depois de muito tempo em busca de um CMS’s que fosse capaz de manipular conteúdos estruturados com facilidade acabei descobrindo o Plone, em conseqüência disso me enveredei pelo Zope e aí a lista de acrônimos só foi aumentando, passando por DTML, TAL, ArcheTypes, ArchGenXML, Python Products, ZODB, Zeo Clients, Zeo Servers, Slots, Macros, Python Controllers, etc., ou seja, é possível obter grandes resultados com o chamado “PZP” (Python+Zope+Plone), entretanto é preciso estar disposto a vencer uma curva extremamente ingreme de aprendizagem, além de ter que conviver com uma abordagem que não envolve diretamente bancos de dados relacionais, passando pela utilização de adaptadores e todo tipo de parafernalha que parece que só é utilizada pela própria pessoa que escreveu o código, isso quando é utilizada (vide o caso do MySQLda e outros Database Adapters).

Voltei a fazer a minha peregrinação, conheci o Ruby on Rails (me dei conta que um CMS não poderia me antender naquele momento, devido ao aprendizado com o Zope e a simpatia que acabei criando com o Archetypes), achei interessante, mas ainda pouco funcional, já que a idéia é boa mas não vejo como poderia ser utilizado em projetos sérios sem oferecer uma série de características, além do mais a abordagem de criar aplicações apartir do banco de dados não me agrada, afinal de contas, se vou manipular objetos mais tarde porque não começar logo de uma vez com essa abordagem e abstrair o resto?

Por fim acabei descobrindo o Django, framework este que estou utilizando em um projeto e não tenho do que reclamar. Foi a escolha certa? Ainda não posso dizer, afinal de contas as mudanças na API e o fato de ainda não ter entrado em produção ainda me deixam com a pulga atrás da orelha, mas certamente foi a melhor opção até agora.


Sessão de perguntas e respostas do Snakes and Rubies

O vídeo da sessão de perguntas e respostas do Snakes and Rubies (evento que foi realizado no ano passado onde foram discutidas as características dos dois frameworks) está disponível no Google Vídeo. Como essa parte do evento não havia sido disponibilizada inicialmente e ela é tão interessante ou mais que a própria apresentação, eu resolvi disponibilizá-lo abaixo.


Análise do Django

Como já falei aqui anteriormente o Django é um Framework para desenvolvimento de aplicações web escrito em Python que tem por objetivo simplificar a vida do desenvolvedor e possibilitar a criação de aplicações de forma limpa e organizada. Também havia prometido que descreveria a minha experiência com o framework e é por isso que resolvi escrever o texto abaixo.

O primeiro passo na utilização do Django foi fazer a sua instalação, o que não foi difícil, já que bastou seguir as instruções contidas no Tarball. Depois disso, como todo bom iniciante, parti para o processo de leitura do tutorial, disponível na área de documentação do site oficial, e repetição dos passos descritos em meu próprio equipamento.

A utilização é bastante simples, básicamente composta pelos seguintes passos:

  1. Inicialização do projeto, que é feita com o comando django-admin.py startproject projeto;
  2. Configuração da aplicação, que consiste em informar o endereço, login e senha, além do tipo (mysql, postgres, etc) da base de dados a ser utilizada pela aplicação, através da edição do arquivo settings.py;
  3. Criação da aplicação (um projeto pode ser composto por multiplas aplicações), o que é feito com o comando django-admin.py startapp aplicação;
  4. Definição das classes, editando o arquivo apps/aplicação/models/aplicação.py; e
  5. Instalação da aplicação, que é na verdade a geração das tabelas necessárias ao funcionamento da aplicação na base de dados indicada na configuração, o que é feito pelo comando django-admin.py install aplicação.

Omiti alguns detalhes do processo, como a configuração do settings.py para que a aplicação seja adicionada ao projeto e outros pequenos detalhes de implementação, já que não é essa a finalidade desse texto, mas basicamente é assim que a coisa funciona.

Com as devidas definições no modelo, parâmetros especiais, etc. é possível ter uma interface de gerenciamento de dados completa, com direito a mecanismo de busca, níveis de acesso, autenticação, filtragem, além das operações CRUD (Create, Recover, Update, Delete).

Depois da primeira experiência comecei a montar uma pequena aplicação de minha própria autoria (sempre recorrendo à documentação no site oficial) e posso dizer que:

É possível criar aplicações em minutos com o Django, entretanto ainda não comecei a mexer com as views (templates), mas posso garantir que pelo menos o “M” (model) e parte do “C” (controller) da triade MVC, sobre a qual está alicerçado o framework, são postas na tela com pouquissimo trabalho.

Pois bem. Nos próximos dias voltarei a dar notícias do Django por aqui. Python on Rails? Não sei… Mas pode ser até melhor.