4/27/2007

Captcha no django

Você quer evitar spams em seus sistemas feitos em django?

Seus problemas acabaram! Existe um projeto opensource da verificação capctha para django. Este projeto utiliza os newforms o que é algo muito bom, já que a maneira antiga de tratar formulários no django tende a ser extinta.

Para saber mais sobre o projeto acesse: http://www.lostlogicx.com/captchasblow/

4/19/2007

Lançado o Ubuntu 7.04 veja como atualizar


Lançado o Ubuntu 7.04 (Feisty Fawn) , veja o que há de novo nele aqui: http://www.ubuntu.com/getubuntu/releasenotes/704tour

Há 4 formas de adquirir ele:

1 - Baixando o iso: http://www.ubuntu.com/getubuntu/download

2 - Comprando o cd: http://www.ubuntu.com/getubuntu/purchase

3 - Requisitando o cd gratuitamente: https://shipit.ubuntu.com/

4 - Atualizando a sua versão do ubuntu: http://www.ubuntu.com/getubuntu/upgrading

Só lembrando, que para atualizar para o 7.04 você tem que estar com a versão 6.10.

Lançado o Bingo!


Depois do anúncio aqui está o lançamento. Este ainda não é o lançamento oficial, mas já está disponível no google code o código fonte do bingo.

Para quem não sabe o bingo é um CMS desenvolvido em django.

O blog, wiki, feeds RSS e atom já estão em funcionamento, mas há várias coisas a serem resolvidas, como os comentários e cadastro de usuários.

Para as tags usamos o django-tagging.

O marinho, meu parceiro no desenvolvimento do bingo colocou uma versão do bingo no ar para ver acesse http://marinho.webdoisonline.com/blog/.

Também foi criado um grupo de discussão para o grupo de desenvolvimento do bingo. Se quiser participar é só se inscrever. O e-mail do grupo é bingo-developers@googlegroups.com

Só lembrando que ainda não foram lançadas nenhuma versão release, mas em breve lançaremos o 0.1.

Para acessar o código fonte do bingo via svn use:

svn checkout http://bingo.googlecode.com/svn/trunk/ bingo

4/16/2007

O MVC, o MTV e o Django


Como muitos sabem, MVC ( Model – View – Controller ) é um padrão de desenvolvimento, que é um padrão que separa o desenvolvimento nessas 3 camadas.

Model – nessa camada é implementada o banco de dados ou o modelo objeto-relacional.

Controller – nessa camada é implementado as regras de negocio, onde são processados os dados vindo camada Model e passados para a camada View.

View – nessa camada é onde fica a interface do sistema.

O MVC é muito utilizado nos dias de hoje e tem agradado a muitos desenvolvedores para web por separar a parte de programação de dados da parte da programação visual de um sistema feito para web, onde geralmente essas partes de um sistema são feitos por pessoas diferentes.

Em conseqüência ao aceitamento desse padrão pela comunidade, surgiram muitos frameworks que implementam esse padrão como o Ruby on Rails, Struts, Mentawai, TurboGears, Django entre muitos outros.

Como citado acima o desenvolvimento usando o django é feito de acordo com o MVC separado nessas 3 camadas. Até ai tudo perfeito, mas há um problema.

Qual problema?

O django usa as nomenclaturas para as camadas,diferente do modelo MVC. Para modelo o django usa model, para view ele usa template, até ai tudo bem. Mas ele define o controller como view. Isso mesmo, o django define o controller como view. E tem também as generic ‘views’ que são controllers genéricos para situações comuns como master/detail, delete, update.

O problema é maior ainda porque muitos desenvolvedores acham que essa nomenclatura errada chique porque as iniciais delas são igual aquele canal de TV a MTV ( Model – Template – View ).

Eu mesmo não gostei nada disso, porque isso pode confundir muitos que estão iniciando nesse framework.

Eu só não entendo porque eles resolveram chamar o controller de view.

Pensei, pensei e ainda não descobri.

Bom, eu prefiro o MVC e você?

4/12/2007

Ruby e Python duas irmãs de pais diferentes.

Ruby foi desenvolvida por Yukihiro Matsumoto, com o objetivo de criar uma linguagem simples, mas poderosa. Já python, foi criada por Guido Van Rossum em 1991, com o objetivo de criar uma linguagem simples com fácil aprendizado.

Assim nasceram duas irmãs.

Digo duas irmãs porque no mundo da programação elas têm características parecidas entre si, ambas são bonitas, simpáticas, ousadas, mas uma (ruby) é mais atrevida, outra (python) é mais organizada.

Python é toda organizadinha com suas identações.

>>>if “ola” == “ola”:
print “ola”

Já ruby é mais atrevida com seus blocos flexíveis.

>>if “ola” == “ola”: puts “ola” end

Ou

>>if “ola” == “ola”
puts “ola”
end

Ambas são interpretadas, e tem seu ambiente interativo e também com tipagem de forma dinâmica, não precisando informar de qual tipo aquela variável será. Se eu quiser números:

>>>valor = 1

E não:

int valor = 1

Objetos? Nelas tudo são objetos. Um ‘oi’ é objeto, um ‘tchau’ é objeto também, e um número? Lógico que é objeto. Mesmo tudo sendo objeto não é necessário programar orientando a objetos. Se quiser cumprimentar:

puts ‘oi’

Ou

print ‘oi’

Ou se despedir

puts ‘adeus’

Ou

print ‘adeus’

Ambas servem para tudo, mas cada uma tem seu ponto forte.

Ruby voa nos trilhos da web (rubyonrails), como se fosse um trem bala.

Já python conquistou as buscas na web (google), os vídeos (youtube), os efeitos 3D (blender), e até o espaço (NASA).

Como podem ver, as duas são atraentes. Então qual escolher?

Fique tranqüilo!

No mudo da programação bigamia não é crime!

Concorrendo ao livro do simplesideias.com.br

4/08/2007

IronPython o Python para .NET

IronPython é um projeto da Microsoft (Quem disse que tudo que a Microsoft faz é ruim?) que é a implementação do Python para a plataforma .NET.

Com isso temos a integração do .NET Framework e sua bibliotecas, como o WindowsForms, com o Python.

Para ter o IronPython basta fazer o download dele aqui. E para que ele funcione direitinho é necessário o .NET Framework que pode ser baixado aqui.

Para acessar o console do IronPython basta executar o ipy.exe.

Programando algumas coisas no console poderá ver que os comando básicos do Python funcionam perfeitamente. Por exemplo:

>>> print 'ola IronPython'
ola IronPython
>>>range(3)
[0,1,2]
>>>def soma(a,b):
return a+b
>>>soma(1,2)
3

Agora usando uma biblioteca do .NET Framework

>>>import System
>>>System.Environment.OSVersion
Microsoft Windows NT 5.1.2600 Service Pack 2

E agora para finalizar este post sobre o básico do básico do IronPython, usando as bibliotecas padrão do Python no IronPython. Para isso, é só adicionar o caminho da pasta lib do Python no path. Se o seu Python for a versão 2.4, ficaria assim:

>>>import sys
>>>sys.path.append(r"c:\python24\lib")

E agora usando a biblioteca do Python no IronPython:

>>>import os
>>>os.getcwd()
'C:\\ironpython'

IronPyth9on funciona independente de ter Python instalado, mas daí não tem como utilizar a biblioteca padrão do Python no IronPython.

Só para finalizar...

Se você quer trabalhar com .NET, IronPython é uma grande alternativa para escolha de linguagem, já que as outras opções são C#, J#, VB.NET.

E com o projeto mono, sua aplicação usando IronPython fica portável tnato em ambientes Windows como Linux.

Para saber mais acesse o site do projeto: http://www.codeplex.com/IronPython