tag:blogger.com,1999:blog-376603162024-03-21T14:31:49.326-04:00PyManO diário pessoal de um programador fanático por Python.
=]Unknownnoreply@blogger.comBlogger49125tag:blogger.com,1999:blog-37660316.post-30520274011373642062008-01-10T11:05:00.000-04:002008-01-10T11:07:00.427-04:00Ano novo, blog novoMotivado pelo início do ano, após muita enrolação, resolvi finalmente lançar meu blog em domínio próprio, o <a href="http://www.andrewsmedina.com">http://www.andrewsmedina.com</a> e descontinuar o PyMan (http://pyman.blogspot.com)<br /><br />Essa enrolação é devido á escolha de um tema e um sistema para o blog. Eu já devo ter desenvolvido uns 5 layout e uns 4 sistemas ( em Django é lógico ) entre eles o falecido bingo. E resolvi utilizar um tema para wordpress e o django-diario como sistema para o blog.<br /><br />A escolha do tema, foi meramente devido a beleza desse tema. Já a escolha do django-diario, foi feita porque é um projeto coeso, que está ativo, e tem também os fatos do fundador do projeto ser brasileiro e ser meu amigo.<br /><br />Ainda falta eu importar os posts do blog antigo e criar um sistema de comentário, mas isso farei em breve, aguardem!Unknownnoreply@blogger.com69tag:blogger.com,1999:blog-37660316.post-62897493812256663302007-11-25T13:18:00.001-04:002007-11-25T19:04:03.132-04:00Django Brasil no ar!Após grande expectativa, está no ar o site da comunidade <a href="http://www.djangobrasil.org/"><b>Django Brasil</b></a> (<a href="http://www.djangobrasil.org/">http://www.djangobrasil.org/</a>)! O objetivo é ser um veículo de divulgação deste framework em terras tupiniquins, trazendo informações para auxiliar tanto os iniciantes quanto os mais experientes.<br /><br />Atualmente o site fornece:<br /><br /><ul><li> as principais características do Django; </li><li> um weblog para anúncios e avisos à comunidades brasileira; </li><li> uma página exclusiva para a comunidade descrevendo como um desenvolvedor pode participar; </li><li> um agregador de blogs (planeta) dos desevolvedores nacionais, e; </li><li> uma área específica para a documentação. </li></ul><br />A documentação e tradução da documentação oficial ainda é escassa. Convidamos os interessados em traduzir ou produzir conteúdo em língua portuguesa para suprir essa necessidade.<br /><br />Este é apenas o início de uma nova fase da comunidade Django Brasil. Participe!<br /><br />O site foi desenvolvido pelo Guilherme Mesquita Gondim (semente) e o belo <i>desing </i>pelo Jader Rubini (<a class="reference external" href="http://jaderubini.wordpress.com/">http://jaderubini.wordpress.com</a>). O código é livre e pode ser acessado no seguinte endereço: <a href="http://code.google.com/p/djangobrasil/">http://code.google.com/p/djangobrasil/</a>.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-37660316.post-45456883256451615532007-11-25T13:18:00.000-04:002007-11-25T13:19:24.596-04:00Django Brasil no ar!Após grande expectativa, está no ar o site da comunidade <b>Django Brasil</b>! O objetivo é ser um veículo de divulgação deste framework em terras tupiniquins, trazendo informações para auxiliar tanto os iniciantes quanto os mais experientes.<br /><br />Atualmente o site fornece:<br /><br /><ul><li> as principais características do Django; </li><li> um weblog para anúncios e avisos à comunidades brasileira; </li><li> uma página exclusiva para a comunidade descrevendo como um desenvolvedor pode participar; </li><li> um agregador de blogs (planeta) dos desevolvedores nacionais, e; </li><li> uma área específica para a documentação. </li></ul><br />A documentação e tradução da documentação oficial ainda é escassa. Convidamos os interessados em traduzir ou produzir conteúdo em língua portuguesa para suprir essa necessidade.<br /><br />Este é apenas o início de uma nova fase da comunidade Django Brasil. Participe!<br /><br />O site foi desenvolvido pelo Guilherme Mesquita Gondim (semente) e o belo <i>desing </i>pelo Jader Rubini (<a class="reference external" href="http://jaderubini.wordpress.com/">http://jaderubini.wordpress.com</a>). O código é livre e pode ser acessado no seguinte endereço: <a href="http://code.google.com/p/djangobrasil/">http://code.google.com/p/djangobrasil/</a>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-37660316.post-85982403836609246112007-11-21T17:39:00.000-04:002007-11-21T17:41:18.815-04:00Usando o ZODB no DjangoTer a flexibilidade da orientação a <span class="misspell" suggestions="objectos">objetos</span> do <span class="misspell" suggestions="">Python</span> em um banco de dados pode ser algo muito útil e interessante que utilizar bancos relacionais. Um dos melhores bancos orientado a <span class="misspell" suggestions="objectos">objetos</span> em <span class="misspell" suggestions="">Python</span> é o <a title="ZODB" href="http://wiki.zope.org/ZODB/FrontPage" id="rnup">ZODB</a> , é poderoso e simples de utilizar.<br /><br />Mas como utilizar ele para web?<br /><br />A resposta mais óbvia é <a title="Zope" href="http://www.zope.org/" id="fbeo">Zope</a> e <span class="misspell" suggestions="Grou"><a title="Grok" href="http://grok.zope.org/" id="zemf">Grok</a> </span>. São dois <span class="misspell" suggestions="">frameworks</span> para web que utilizam <span class="misspell" suggestions=""><a title="ZODB" href="http://wiki.zope.org/ZODB/FrontPage" id="ls2e">ZODB</a> </span> como base de dados!<br /><br />A resposta não tão óbvia é o <span class="misspell" suggestions=""><a title="Pylons" href="http://www.sqlalchemy.org/" id="fedc">Pylons</a> </span>. O <span class="misspell" suggestions=""><a title="Pylons" href="http://www.sqlalchemy.org/" id="rtrd">Pylons</a> </span> é um <span id="bad_word" class="misspell" suggestions="">framework</span> que trabalha através de camadas (<span class="misspell" suggestions="">middlwares</span>) onde você uma dessas camadas pode ser a implementação para suporte a <span class="misspell" suggestions=""></span><a title="ZODB" href="http://wiki.zope.org/ZODB/FrontPage" id="lw.t">ZODB</a>.<br /><br />E a resposta nada óbvia é o <span class="misspell" suggestions=""></span><a title="Django" href="http://www.djangoproject.com/" id="zs3:">Django</a>. O <span class="misspell" suggestions=""><a title="Django" href="http://www.djangoproject.com/" id="rc__">Django</a> </span> é um <span class="misspell" suggestions="">framework</span> famoso pela sua coesão, mas isso não quer dizer que ele não pode ser facilmente integrado com outras ferramentas. Uma das provas disso é o <a title="tranquil" href="http://code.google.com/p/tranquil/" id="we_0">tranquil</a>, uma <span class="misspell" suggestions="">middlware</span> que integra o <a title="Django" href="http://www.djangoproject.com/" id="pzqk">Django</a> <span class="misspell" suggestions=""></span> ao <span class="misspell" suggestions=""><a title="SQLAlchemy" href="http://www.sqlalchemy.org/" id="jqs3">SQLAlchemy</a> </span>.<br /><br />Inspirado pela necessidade de usar o <span class="misspell" suggestions=""><a title="ZODB" href="http://wiki.zope.org/ZODB/FrontPage" id="m0ek">ZODB</a> </span>, por não querer usar <span class="misspell" suggestions="Grou"><a title="Grok" href="http://grok.zope.org/" id="dj72">Grok</a> </span>, <span class="misspell" suggestions="">Pylons</span> ou outro e pela implementação do <a title="tranquil" href="http://code.google.com/p/tranquil/" id="b3s6">tranquil</a>, implementei o <span class="misspell" suggestions=""></span><a title="django-zodb" href="http://code.google.com/p/django-zodb/" id="fyx-">django-zodb</a>, uma <span class="misspell" suggestions="">middlware</span> que integra o <a title="Django" href="http://www.djangoproject.com/" id="n:qb">Django</a> <span class="misspell" suggestions=""></span> ao <span class="misspell" suggestions=""></span><a title="ZODB" href="http://wiki.zope.org/ZODB/FrontPage" id="y4re">ZODB</a>.<br /><br />O endereço do <span class="misspell" suggestions="projecto,prometo">projeto</span> é: <a title="http://code.google.com/p/django-zodb/" href="http://code.google.com/p/django-zodb/" id="szu_">http://code.google.com/p/django-zodb/</a><br /><br />Para instalar o <span class="misspell" suggestions="projecto,prometo">projeto</span> basta ler a página do wiki do <span class="misspell" suggestions="projecto,prometo">projeto</span>: <a title="http://code.google.com/p/django-zodb/wiki/Installation" href="http://code.google.com/p/django-zodb/wiki/Installation" id="b46b">http://code.google.com/p/django-zodb/wiki/Installation</a><br /><br />No <span class="misspell" suggestions="projecto,prometo">projeto</span> tem um <span class="misspell" suggestions="projecto,prometo">projeto</span> em <span class="misspell" suggestions=""><a title="Django" href="http://www.djangoproject.com/" id="tpx7">Django</a> </span> demonstrando como usar o <span class="misspell" suggestions=""></span><a title="django-zodb" href="http://code.google.com/p/django-zodb/" id="azsf">django-zodb</a> <span class="misspell" suggestions=""></span>.<br /><br />Ou seja usar <a title="ZODB" href="http://wiki.zope.org/ZODB/FrontPage" id="k1z0">ZODB</a> com o <a title="Django" href="http://www.djangoproject.com/" id="je97">Django</a> também pode ser uma boa alternativa!Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-37660316.post-9199291795631338082007-11-12T16:24:00.000-04:002007-11-12T18:39:47.477-04:00Segundo Django Sprint dia 1 de Dezembro<style type="text/css"> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --></style> <p class="western" style="margin-bottom: 0cm;"><span class="misspell" suggestions="">Sprint</span> é um evento onde os <span class="misspell" suggestions="desenvolve dores,desenvolve-dores">desenvolvedores</span>, colaboradores e simpatizantes com alguma ferramenta <span class="misspell" suggestions="">opensource</span> se unem para implementar novidades de arrumar erros existentes nessa ferramenta. E dia 1 de Dezembro ocorrerá o segundo <a title="Django" href="http://www.djangoproject.com/" id="k:0h">Django</a> <span class="misspell" suggestions=""></span> <span class="misspell" suggestions="">Sprint</span> desse ano.</p> <p class="western" style="margin-bottom: 0cm;">Para participar do <span class="misspell" suggestions="">Sprint</span>, inscreva-se na página do <a title="wiki" href="http://code.djangoproject.com/wiki/Sprint1Dec2007" id="d:mr">wiki</a> do <a title="Django" href="http://www.djangoproject.com/" id="k3js">Django</a> <span class="misspell" suggestions=""></span> e no dia do <span class="misspell" suggestions="">Sprint</span> fique atento no canal #<span class="misspell" suggestions="">django</span>-<span class="misspell" suggestions="">sprint</span>, onde todos os envolvidos com o <span class="misspell" suggestions="">Sprint</span> e os responsáveis pelo código do <a title="Django" href="http://www.djangoproject.com/" id="k:0h">Django</a> estarão para auxiliar e tirar dúvidas.<br /></p> <p class="western" style="margin-bottom: 0cm;">Se você ainda não conhece o processo de criação de <span class="misspell" suggestions="">tickets</span>, envio de <span class="misspell" suggestions="pata,pato">path</span>'s utilizado no desenvolvimento do <a title="Django" href="http://www.djangoproject.com/" id="k:0h">Django</a>, leia esse artigo: <a title="Contributing to Django" href="http://www.djangoproject.com/documentation/contributing/" id="k6y4">Contributing to Django</a><span class="misspell" suggestions=""></span>. </p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-37660316.post-54911888880778992292007-10-12T23:24:00.000-04:002007-10-12T23:48:54.391-04:00SQLAlchemy no Django com tranquilMuitos programadores reclamam a falta de integração do <a href="http://www.djangoproject.com"><span class="misspell" suggestions="">Django</span></a> com o <a href="http://www.sqlalchemy.org/"><span class="misspell" suggestions="">SQLAlchemy</span></a>. Há até um <span class="misspell" suggestions="branca,branco">branch</span> no <span class="misspell" suggestions="projecto,prometo">projeto</span> do <a href="http://www.djangoproject.com"><span class="misspell" suggestions="">Django</span></a> para realizar essa integração, mas esse <span class="misspell" suggestions="branca,branco">branch</span> anda meio parado no momento.<br /><br />Em paralelo a isso foi criado um <span class="misspell" suggestions="projecto,prometo">projeto</span> chamado <a href="http://code.google.com/p/tranquil/"><span class="misspell" suggestions="tranquila,tranquilo">tranquil</span></a>, que tem por <span class="misspell" suggestions="objectivo">objetivo</span> integrar o <a href="http://www.sqlalchemy.org/"><span class="misspell" suggestions="">SQLAlchemy</span></a> no <a href="http://www.djangoproject.com"><span class="misspell" suggestions="">Django</span></a>.<br /><br />As <span class="misspell" suggestions="">features</span> mais legais desse <span class="misspell" suggestions="projecto,prometo">projeto</span> implementado até o momento são:<br /><ul><li>Usar <span class="misspell" suggestions="tabeles,tales">tables</span>, <span class="misspell" suggestions="objectas,objectes,objectos,objecta,objectá">objects</span> e <span class="misspell" suggestions="">mapper</span> <span class="misspell" suggestions="objectas,objectes,objectos,objecta,objectá">objects</span> do <a href="http://www.sqlalchemy.org/"><span class="misspell" suggestions="">SQLAlchemy</span></a> no <a href="http://www.djangoproject.com"><span class="misspell" suggestions="">Django</span></a></li><li>Manipular <span class="misspell" suggestions="modelas,modeles,modelos,modela,modelá">models</span> do <a href="http://www.djangoproject.com"><span class="misspell" suggestions="">Django</span></a> como se fossem objetos do <a href="http://www.sqlalchemy.org/"><span class="misspell" suggestions="">SQLAchemy</span></a></li></ul>O <span class="misspell" suggestions="projecto,prometo">projeto</span> está no início ainda, mas será bem interessante quando for possível usar o <a href="http://elixir.ematia.de/">Elixir</a> no <a href="http://www.djangoproject.com"><span class="misspell" suggestions="">Django</span></a>.<br /><br />O site do projeto é: <a href="http://code.google.com/p/tranquil/">http://code.google.com/p/tranquil/</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-37660316.post-41882604567330888352007-10-11T18:07:00.000-04:002007-10-11T18:09:37.359-04:00Intalando XMMS com suporte a wma no Ubuntu<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.xmms.org/screenshots/main_opt.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 154px; height: 108px;" src="http://www.xmms.org/screenshots/main_opt.png" alt="" border="0" /></a>O <span class="misspell" suggestions="">XMMS</span> é meu <span class="misspell" suggestions="">player</span> de música favorito. Um dos motivos é a semelhança com o <span class="misspell" suggestions="">Winamp</span>. O suporte a vários <span class="misspell" suggestions="">skins</span> também me agrada.<br /><br />Algumas das músicas que tenho são em formato <span class="misspell" suggestions="ma,ama,uma">wma</span> e o <span class="misspell" suggestions="">XMMS</span> não toca <span class="misspell" suggestions="ma,ama,uma">wma</span> por padrão, mas como uso o <span class="misspell" suggestions="">Ubuntu</span> como distribuição, instalar o <span class="misspell" suggestions="">XMMS</span> com suporte a <span class="misspell" suggestions="ma,ama,uma">wma</span> e com <span class="misspell" suggestions="">skins</span> é tarefa fácil, basta digitar o comando abaixo no terminal:<br /><br /><span style="color: rgb(0, 0, 102); font-style: italic;">$ </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="Sudão,suado,surdo,sido,suo">sudo</span><span style="color: rgb(0, 0, 102); font-style: italic;"> </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="apta,apto,PT,API,APL">apt</span><span style="color: rgb(0, 0, 102); font-style: italic;">-</span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="gel,geá">get</span><span style="color: rgb(0, 0, 102); font-style: italic;"> </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="instala,instale,instalo,instalá">install</span><span style="color: rgb(0, 0, 102); font-style: italic;"> </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="">xmms</span><span style="color: rgb(0, 0, 102); font-style: italic;"> </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="">xmms</span><span style="color: rgb(0, 0, 102); font-style: italic;">-</span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="ma,ama,uma">wma</span><span style="color: rgb(0, 0, 102); font-style: italic;"> </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="">xmms</span><span style="color: rgb(0, 0, 102); font-style: italic;">-</span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="">skins</span>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-37660316.post-40330263769517779392007-10-10T22:53:00.000-04:002007-10-10T22:55:12.677-04:00Instalando o Adobe Flex no UbuntuEu resolvi "brincar" com o <span class="misspell" suggestions="">Flex</span>, para ver como é a integração dele com o <span class="misspell" suggestions="">Django</span> e para aprender mais sobre essa ferramenta. E para isso instalei ele no meu <span class="misspell" suggestions="">Ubuntu</span>.<br /><br />Para instalar o <span class="misspell" suggestions="">Flex</span> no é necessário ter o Java <span class="misspell" suggestions="">Runtime</span> <span class="misspell" suggestions="">Environment</span> (<span class="misspell" suggestions="JURE,ARE,IRE,ORE">JRE</span>) instalado. Para instalar o <span class="misspell" suggestions="JURE,ARE,IRE,ORE">JRE</span> eu utilizei o <span class="misspell" suggestions="apta,apto,PT,API,APL">apt</span>-<span class="misspell" suggestions="gel,geá">get</span>, basta digitar a seguinte linha no terminal:<br /><br /><span style="font-style: italic; color: rgb(0, 0, 102);"> $ </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="Sudão,suado,surdo,sido,suo">sudo</span><span style="font-style: italic; color: rgb(0, 0, 102);"> </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="apta,apto,PT,API,APL">apt</span><span style="font-style: italic; color: rgb(0, 0, 102);">-</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="gel,geá">get</span><span style="font-style: italic; color: rgb(0, 0, 102);"> </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="instala,instale,instalo,instalá">install</span><span style="font-style: italic; color: rgb(0, 0, 102);"> </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="SVN,San,sua,sue,sul">sun</span><span style="font-style: italic; color: rgb(0, 0, 102);">-</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="Java,cava,dava,fava,jaza">java</span><span style="font-style: italic; color: rgb(0, 0, 102);">6-</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="jure,are,ire,ore">jre</span><span style="font-style: italic; color: rgb(0, 0, 102);"> </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="SVN,San,sua,sue,sul">sun</span><span style="font-style: italic; color: rgb(0, 0, 102);">-</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="Java,cava,dava,fava,jaza">java</span><span style="font-style: italic; color: rgb(0, 0, 102);">6-</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="">plugin</span><span style="font-style: italic; color: rgb(0, 0, 102);"> </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="SVN,San,sua,sue,sul">sun</span><span style="font-style: italic; color: rgb(0, 0, 102);">-</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="Java,cava,dava,fava,jaza">java</span><span style="font-style: italic; color: rgb(0, 0, 102);">6-</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="fontes,fonte">fonts</span><br /><br />Após isso é só fazer o <span class="misspell" suggestions="">download</span> do <span class="misspell" suggestions="">SDK</span> do Adobe <span class="misspell" suggestions="">Flex</span> no site da Adobe: <a href="http://download.macromedia.com/pub/flex/sdk/flex2_sdk_hf1.zip">http://download.macromedia.com/pub/flex/sdk/flex2_sdk_hf1.zip<br /></a><br />Feito isso descompacte o <span class="misspell" suggestions="IP,CIP">zip</span> e poderá utilizar o <span class="misspell" suggestions="">Flex</span>.<br /><br />Para verificar se tudo esta funcionando, basta executar os exemplos de aplicações que vem junto com o <span class="misspell" suggestions="">SDK</span> do <span class="misspell" suggestions="">Flex</span>. Para execute o arquivo <span class="misspell" suggestions="">build</span>-<span class="misspell" suggestions="simples">samples</span>.<span class="misspell" suggestions="ah,Sá,eh,oh,se">sh</span> que fica na pasta <span class="misspell" suggestions="simples">samples</span>.<br /><br />E bom proveito.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-37660316.post-22944853298147159892007-10-09T14:41:00.000-04:002007-10-09T14:45:57.877-04:00Lançado o e-book Diabetes na Prática ClínicaOntem (8/10) foi o lançamento oficial do e-<span class="misspell" suggestions="">book</span> <a href="http://www.diabetesebook.org.br/">"Diabetes na Prática Clínica"</a>. Esse e-<span class="misspell" suggestions="">book</span> é um <span id="bad_word" class="misspell" suggestions="projecto,prometo">projeto</span> pioneiro lançado pela <a href="http://www.diabetes.org.br/">Sociedade Brasileira de Diabetes</a> para estimular a educação médica continuada.<br /><br />Toda a parte de programação e banco de dados <span class="misspell" suggestions="projecto,prometo">projeto</span> foi desenvolvido por mim, e eu utilizei o <a href="http://www.djangoproject.com"><span class="misspell" suggestions="">Django</span></a> como ferramenta para o desenvolvimento. E o <span class="misspell" suggestions="">layout</span> e desenvolvimento visual foi feito pelo <a href="http://www.edufrick.com">Eduardo <span class="misspell" suggestions="">Frick</span></a>.<br /><br />O mais interessante desse <span class="misspell" suggestions="projecto,prometo">projeto</span> foi a utilização do <span class="misspell" suggestions="">Django</span>. Em todos os trabalhos que fiz em parceria com o Eduardo <span class="misspell" suggestions="">Frick</span> sempre utilizamos <span class="misspell" suggestions="PP,PCP,PSP">PHP</span>. Mas, como um bom <span class="misspell" suggestions="">pythonista</span> e <span class="misspell" suggestions="">djanger</span>, convenci o Eduardo a trabalharmos com <span class="misspell" suggestions="">Django</span> nesse <span class="misspell" suggestions="projecto,prometo">projeto</span> e ele me deu seu voto de confiança.<br /><br />Essa escolha foi arriscada, mas eficaz! Com o <span class="misspell" suggestions="">Django</span> foi possível solucionar problemas complexos de maneira simples e rápida.<br /><br />Nesse <span class="misspell" suggestions="projecto,prometo">projeto</span> eu usei e abusei do que mais gosto do <span class="misspell" suggestions="">Django</span>: o <span class="misspell" suggestions="">newforms</span>, ferramenta de <span class="misspell" suggestions="">serialização</span>, <span class="misspell" suggestions="">template</span> <span class="misspell" suggestions="tas,tais">tags</span> e <span class="misspell" suggestions="">template</span> <span class="misspell" suggestions="filtres">filters</span> deixando de lado as <span class="misspell" suggestions="">generic</span> <span class="misspell" suggestions="">views</span> e o <span class="misspell" suggestions="">admin</span> do <span class="misspell" suggestions="">Django</span>. <span class="misspell" suggestions="Fiz,Diz,Foz,Giz,Afiz">Fiz</span> essa escolha pela necessidade de fazer um painel de administração bem específico.<br /><br />Usei também o <a href="http://www.prototypejs.org/"><span class="misspell" suggestions="Prototipe">Prototype</span></a> para facilitar o trabalho com <span class="misspell" suggestions="ÁJAX,AJA,AJAM,AJAS">AJAX</span> e Javascript.<br /><br />O resultado foi um sucesso e espero que vocês gostem!Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-37660316.post-44981147504601956452007-10-08T23:00:00.000-04:002007-10-08T23:16:12.239-04:00Sob nova direçãoA partir de hoje (08/10/2007), junto com Pedro Werneck eu faço parte da equipe de moderação da lista de discussão do<a href="http://www.pythonbrasil.com.br/"> PythonBrasil</a>.<br /><br />A minha entrada na equipe marca a saída de <a href="http://www.pythonologia.org/">Osvaldo Santana</a> da moderação da lista. O pedido de aposentadoria do Osvaldo, foi uma surpresa para mim. Desde que participo da comunidade ele é moderador da lista e fez bem esse trabalho enquanto esteve a frente da moderação. Por isso espero fazer esse trabalho da melhor maneira possível. E até já estou me familiarizando com o moderationtools ( ferramenta utilizada pelo Osvaldo para moderar a lista).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img337.imageshack.us/img337/8234/moderationtoolsil4.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://img337.imageshack.us/img337/8234/moderationtoolsil4.png" alt="" border="0" /></a><br />Se você programa em Python e não faz parte da lista, que tal se inscrever na <a href="http://www.pythonbrasil.com.br/moin.cgi/EnvolvaSe">lista</a> e fazer parte dessa comunidade?. Mas, se você não programa em Python ainda, que tal se <a href="http://www.pythonbrasil.com.br/moin.cgi/EnvolvaSe">inscrever</a> e conhecer essa linguagem que tem mudado o ponto de vista ( e a vida ) de muitos programadores?Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-37660316.post-54079494784357906242007-10-04T18:08:00.000-04:002007-10-04T18:11:32.598-04:00Bibliotecas do .NET Framework terão código-fonte abertoParece mentira, mas não é!<br /><br />Mas segundo <a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx">Scott Guthrie</a>, que está a frente do desenvolvimento do ASP.NET, as bibliotecas do .NET Framework 3.5 terão o código-fonte aberto, sobre a <a href="http://www.microsoft.com/resources/sharedsource/licensingbasics/referencelicense.mspx">Microsoft Reference License</a>.Unknownnoreply@blogger.com7tag:blogger.com,1999:blog-37660316.post-76828684521615562562007-09-27T22:01:00.000-04:002007-09-27T22:13:50.850-04:00Instalando Django com Apache e Mod_Python no UbuntuUm servidor com <a href="http://www.apache.org/">Apache</a> rodando <a href="http://www.djangoproject.com/">Django</a> através de <a href="http://www.modpython.org/">mod_python</a> é uma das melhores escolhas para se fazer um deploy de uma aplicação feita em Django. Devido a isso resolvi fazer através deste post um simples passo a passo de como fazer a instalação e configuração desse deploy.<br /><br />Como no Ubuntu <a href="http://www.blogger.com/www.python.org">Python</a> já vem instalado, é uma coisa a menos a se preocupar. Outra vantagem em usar o <a href="http://www.ubuntu.com/">Ubuntu</a>, ou qualquer distribuição baseada em Debian e a possibilidade de utilizar o apt-get para facilitar a instalação dos programas.<br /><br />Então vamos aos passos:<br /><br /><span style="font-weight: bold;">1 - Instalando o Apache 2</span><br />Para instalar o <a href="http://www.apache.org/">Apache</a> 2 no <a href="http://www.ubuntu.com/">Ubuntu</a> basta abrir o terminal e digitar apenas um apt-get<br /><span style="color: rgb(153, 153, 153); font-style: italic;">#sudo apt-get install apache2</span><br /><br />Para ver se o <a href="http://www.apache.org/">Apache</a> foi instalado com sucesso e está em funcionamento é só acessar http://localhost em seu navegador.<br /><br /><span style="font-weight: bold;">2 - Instalando mod_python</span><br />Para instalar o <a href="http://www.modpython.org/">mod_python</a> no <a href="http://www.ubuntu.com/">Ubuntu</a> não é muito diferente<br /><span style="font-style: italic; color: rgb(153, 153, 153);">#sudo apt-get libapache2-mod-python</span><br /><br /><span style="font-weight: bold;">3 - Instalando o Django</span><br /><span style="font-style: italic; color: rgb(153, 153, 153);">#sudo apt-get install python-django</span><br /><br /><span style="font-weight: bold;">4 - Configurando o Apache</span><br />Como o mod_python foi instalado via apt-get, o módulo já fica habilitado automaticamente.<br /><br />Mas é necessário configurarmos nossa aplicação no <a href="http://www.apache.org/">Apache</a>. Para isso temos que editar o http.conf da seguinte maneira:<br /><br />Para editar o http.conf, é só digitar esse comando no terminal:<br /><br /><span style="font-style: italic; color: rgb(153, 153, 153);">#sudo gedit /etc/apache2/http.conf</span><br /><br />E adicionar as linhas a seguir:<br /><br /><span style="font-style: italic; color: rgb(153, 153, 153);"><VirtualHost * ></span><br /><span style="font-style: italic; color: rgb(153, 153, 153);"> <Location "/"></span><br /><span style="font-style: italic; color: rgb(153, 153, 153);"> SetHandler python-program </span><br /><span style="font-style: italic; color: rgb(153, 153, 153);"> PythonPath "['/home/seuusuario/projetos/'] + sys.path"</span><br /><span style="font-style: italic; color: rgb(153, 153, 153);"> PythonHandler django.core.handlers.modpython</span><br /><span style="font-style: italic; color: rgb(153, 153, 153);"> SetEnv DJANGO_SETTINGS_MODULE meuprojeto.settings</span><br /><span style="font-style: italic; color: rgb(153, 153, 153);"> PythonDebug On</span><br /><span style="font-style: italic; color: rgb(153, 153, 153);"> </Location></span><br /><span style="font-style: italic; color: rgb(153, 153, 153);"> </VirtualHost></span><br /><span style="font-style: italic; color: rgb(153, 153, 153);"></span><br /><br />Onde informamos através do PythonPath o diretório onde ficam os seus projetos como no exemplo foi: '/home/seuusuario/projetos/'. E criamos a variável de ambiente DJANGO_SETTINGS_MODULE cujo valor é o local onde fica o settings.py onde "meuprojeto" é o nome do projeto.<br /><br />Podemos ao invés de editar o http.conf editar o arquivo: /etc/apache2/sites-avaliable/default.<br /><br /><span style="font-weight: bold;">5 - Reiniciando o Apache</span><br />Após configurar o <a href="http://www.apache.org/">Apache</a> é só reiniciar ele. Para reiniciar ele digite o comando abaixo:<br /><span style="font-style: italic; color: rgb(153, 153, 153);">#/etc/init.d/apache2 reload</span><br /><br />Para testar é só acessar no seu navegador o endereço configurado!<br /><br /><span style="color: rgb(0, 0, 0); font-weight: bold;">Só para lembrar, o Django + Apache + Mod_python é uma ótima opção para deploy, ou seja, para rodar sua aplicação já finalizada. Para ser servidor de desenvolvimento não é recomendado a utilização do Apache e sim do próprio servidor de testes do Django.</span>Unknownnoreply@blogger.com7tag:blogger.com,1999:blog-37660316.post-17321509086871306812007-09-24T16:58:00.000-04:002007-09-24T16:59:45.302-04:00Wubuntu - a verão online do UbuntuNavegando por ai na <span class="misspell" suggestions="Internet,interne,internei,internem,internes">internet</span> eu achei o <span class="misspell" suggestions="">Wubuntu</span>! Que se propõe a ser uma versão <span class="misspell" suggestions="">online</span> do <span class="misspell" suggestions="">Ubuntu [1]</span>!<br /><br />Ele ainda está bem longe de fazer tudo que o <span class="misspell" suggestions="">Ubuntu</span> faz, mas as janelas no estilo do <span class="misspell" suggestions="Nome,Gnoma,Gnomo,Gnose">Gnome</span> ficaram bem <span id="bad_word" class="misspell" suggestions="bacanais,bacanal,badanas,baianas,bananas">bacanas</span>!<br /><br />Para quem quiser conferir, o Wubuntu pode ser acessado através do endereço: <a href="http://wubuntu.weejewel.net/">http://wubuntu.weejewel.net/</a><br /><br />[1] - <a href="http://www.ubuntu.com/">http://www.ubuntu.com/</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-37660316.post-82760284212779895682007-09-23T11:29:00.000-04:002007-09-23T16:45:44.593-04:00Como aprender Django<span class="misspell" suggestions=""></span>Na minha ida à <span class="misspell" suggestions="">PyCon</span> Brasil [1], e as ajudas que dou a iniciantes em <span class="misspell" suggestions="">Django</span>, percebi que muitas pessoas tem interesse em aprender <span class="misspell" suggestions="">Django</span>, mas não sabem por onde começar. Para suprir esse problema resolvi criar este <span class="misspell" suggestions="posta,poste,posto,postá,posa">post</span> mostrando um caminho de como aprender <span class="misspell" suggestions="">Django</span>. Com certeza deve haver outros caminhos, mas resolvi escrever sobre o a maneira que no meu ponto de vista é ideal.<br /><br />Antes de aprender <span class="misspell" suggestions="">Django</span> é necessário que você tenha pelo menos um conhecimento básico sobre <span class="misspell" suggestions="">Python</span>. O <span class="misspell" suggestions="">Gabriel</span> Falcão escreveu em seu blog um <span class="misspell" suggestions="óptimo,timo,étimo">ótimo</span> <span class="misspell" suggestions="posta,poste,posto,postá,posa">post</span> mostrando como aprender <span class="misspell" suggestions="">Python</span> [2].<br /><br />A primeira coisa que alguém que quer iniciar no <span class="misspell" suggestions="">Django</span> deve fazer (após instalar o <span class="misspell" suggestions="">Django</span>, é lógico!) é ler e praticar o tutorial oficial [3] do <span class="misspell" suggestions="">Django</span>, que é dividido em 4 partes. O tutorial oficial abrange o básico sobre o <span class="misspell" suggestions="">framework</span>, e após finalizar ele, você estará apto a criar pequenas aplicações com o <span class="misspell" suggestions="">Django</span>. Mas lembre-se, é importante que siga o tutorial até o final! Se você seguir até a parte 2 ou 3 do tutorial, conseguirá fazer algumas coisas em <span class="misspell" suggestions="">Django</span>, e por isso muitos não terminam o tutorial.<br /><br />Após terminar o tutorial, o importante é praticar e ir estudando a documentação [4] de acordo com suas necessidades e interesses. A documentação do <span class="misspell" suggestions="">Django</span> é toda dividida por <span class="misspell" suggestions="sectores,se tores,se-tores">setores</span> do <span class="misspell" suggestions="">framework</span> o que facilita muito a consulta. Por exemplo, você queira criar uma interface administrativa usando o <span class="misspell" suggestions="">newforms</span> ao invés de usar o <span class="misspell" suggestions="">admin</span> do <span class="misspell" suggestions="">Django</span>. É só você <span class="misspell" suggestions="avessar,cessar,acossar">acessar</span> a parte da documentação responsável pelo <span class="misspell" suggestions="">newforms</span> [5] que irá se <span class="misspell" suggestions="integrar,inteirar,internar,iterar">interar</span> sobre o assunto.<br /><br />Se você quiser aprender mais sobre o <span class="misspell" suggestions="">Django</span> de uma vez, ao invés de ir aprendendo "sobre demanda", você poder ler o <span class="misspell" suggestions="">Django</span> <span class="misspell" suggestions="">Book</span> [6], que é um livro <span class="misspell" suggestions="">online</span> sobre o <span class="misspell" suggestions="">Django</span>. O <span class="misspell" suggestions="">Django</span> <span class="misspell" suggestions="">Book</span> ainda está em desenvolvimento, mas seu conteúdo é muito bom e interessante.<br /><br />Se quiser tirar dúvidas, ou esclarecer algo sobre o <span class="misspell" suggestions="">Django</span>, você pode se cadastrar na lista de discussão [7] dos <span id="bad_word" class="misspell" suggestions="desenvolve dores,desenvolve-dores">desenvolvedores</span> de <span class="misspell" suggestions="">Django</span> do Brasil.<br /><br />Para ver exemplo de código, e para tentar não "refazer a roda" existe o site <span class="misspell" suggestions="">Django</span> <span class="misspell" suggestions="">Snippets</span> [8] que é um <span class="misspell" suggestions="">cookbook</span> para <span class="misspell" suggestions="">Django</span>.<br /><br />E para ficar atento as novidades, curiosidades e informações, vale ver os planetas [9] [10] com os blogs relacionados ao <span class="misspell" suggestions="">Django</span>.<br /><br />[1] - <a href="http://pyman.blogspot.com/2007/09/pyconbrasil.html">http://pyman.blogspot.com/2007/09/pyconbrasil.html</a><br />[2] - <a href="http://nacaolivre.org/2007/09/12/pra-quem-quer-comecar-a-aprender-python/">http://nacaolivre.org/2007/09/12/pra-quem-quer-comecar-a-aprender-python/</a><br />[3] - <a href="http://www.djangoproject.com/documentation/tutorial01/">http://www.djangoproject.com/documentation/tutorial01/</a><br />[4] - <a href="http://www.djangoproject.com/documentation/">http://www.djangoproject.com/documentation/</a><br />[5] - <a href="http://www.djangoproject.com/documentation/newforms/">http://www.djangoproject.com/documentation/newforms/</a><br />[6] - <a href="http://www.djangobook.com/">http://www.djangobook.com/</a><br />[7] - <a href="http://www.djangobrasil.org/">http://www.djangobrasil.org</a><br />[8] - <a href="http://www.djangosnippets.org/">http://www.djangosnippets.org/</a><br />[9] - <a href="http://planeta.djangobrasil.org/">http://planeta.djangobrasil.org/</a><br />[10] - <a href="http://www.djangoproject.com/community/">http://www.djangoproject.com/community/</a>Unknownnoreply@blogger.com6tag:blogger.com,1999:blog-37660316.post-37364222475903514002007-09-16T18:24:00.000-04:002007-09-16T18:26:03.079-04:00Django Sprint - statusNesse final de semana (dia 14, 15 e 16 de Setembro) teve o <span class="misspell" suggestions="">Django</span> <span class="misspell" suggestions="">Sprint</span> e o <span class="misspell" suggestions="">Django</span> <span class="misspell" suggestions="">Sprint</span> Brasil [1].<br /><br />No meu ponto de vista, tanto o <span class="misspell" suggestions="">Sprint</span> mundial e o <span class="misspell" suggestions="">Sprint</span> nacional foram um sucesso!<br /><br />No <span class="misspell" suggestions="">Sprint</span> mundial muitos <span class="misspell" suggestions="">tickets</span> foram filtrados, vários erros resolvidos, novos itens criados e algumas coisas que não eram documentadas no <span class="misspell" suggestions="">Django</span> agora tem documentação. Como os <span class="misspell" suggestions="">shortcuts [2]</span>, <span class="misspell" suggestions="foram,forem,forma,forme,formo">form</span> <span class="misspell" suggestions="">preview [3]</span>. Para conferir algumas coisas que foram feitas é só verificas os <span class="misspell" suggestions="">tickets</span> com a palavra chave: <span>sprintsept14</span><span id="bad_word" class="misspell" suggestions="se,SEC,SEF,sei,sem"> [4]</span>.<br /><br />Eu tive uma humilde participação, sugerindo e criando um DataTimeInput, mas o aprendizado foi grande! Me <span class="misspell" suggestions="integrei,inteirei,internei,iterei">interei</span> mais no processo de colaboração do <span class="misspell" suggestions="">Django</span>, como triagem de <span class="misspell" suggestions="">tickets</span>, por exemplo.<br /><br />Já no <span class="misspell" suggestions="">Sprint</span> nacional, um dos grandes <span class="misspell" suggestions="">resultados</span> é o site do <span class="misspell" suggestions="">DjangoBrasil</span> que em breve deve estar no ar. Várias <span class="misspell" suggestions="isques,is sues,is-sues">issues</span> relacionadas ao desenvolvimento do site foram solucionadas [5]. Também foi criada a página sobre <span class="misspell" suggestions="">Django</span> no Wikipédia, melhorada a página sobre <span class="misspell" suggestions="">Django</span> no <span class="misspell" suggestions="">PythonBrasil</span>, e algumas traduções foram feitas.<br /><br />Todos que participaram estão de parabéns!!!!<br /><br />Quem não pode colaborar não fique triste pois o trabalho não para por aqui! O <span class="misspell" suggestions="">Sprint</span> foi apenas uma maneira de motivar os <span class="misspell" suggestions="">djangers</span> a se unirem e a melhorarem o <span class="misspell" suggestions="">Django</span>, mas a colaboração pode ser feita quando você quiser.<br /><br />[1] - <a href="http://pyman.blogspot.com/2007/09/django-sprint.html">http://pyman.blogspot.com/2007/09/django-sprint.html</a><br />[2] - <a href="http://www.djangoproject.com/documentation/shortcuts/">http://www.djangoproject.com/documentation/shortcuts/</a><br />[3] - <a href="http://www.djangoproject.com/documentation/form_preview/">http://www.djangoproject.com/documentation/form_preview/</a><br />[4] - <a href="http://code.djangoproject.com/query?status=new&status=assigned&status=reopened&group=stage&keywords=%7Esprintsept14&order=priority">http://code.djangoproject.com/query?status=new&status=assigned&status=reopened&group=stage&keywords=%7Esprintsept14&order=priority</a><br />[5] - <a href="http://code.google.com/p/djangobrasil/issues/list?can=1&q=&sort=status&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Stars%20Opened">http://code.google.com/p/djangobrasil/issues/list?can=1&q=&sort=status&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Stars%20Opened</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-37660316.post-18062703062485070702007-09-13T15:39:00.000-04:002007-09-13T15:41:11.840-04:00Django SprintAmanhã, dia 14 de setembro (extendendo para todo o<br />final de semana) ocorrerá um Django Sprint[1] pelo mundo todo. Ou<br />seja, será um dia onde os djangers focalizarão sua atenção em melhorar<br />o Django.<br /><br />Um dos objetivos do Sprint é unir as features que estão prontas no<br />branch do django com o projeto atual, como o newforms-admin,<br />GeoDjango, suporte a multi-databases entre outras features. Outro<br />objetivo é resolver os tickets em aberto no sistema de tickets do<br />Django que chegam a mais de 1000 tickets em aberto.<br /><br />Se você quiser participar é só acompanhar e adicionar seu nome na<br />página do wiki[1]. São mais de 100 pessoas do mundo todo inscritas!<br />Entre elas 9 são brasileiros!<br /><br />Aproveitando o gancho do Sprint Mundial, a comunidade de Django aqui<br />no Brasil resolveu fazer um Sprint também, iniciando no mesmo dia (14) e prolongando até o dia 16. Esse Sprint tem como objetivo resolver<br />algumas coisas relacionadas ao site do djangobrasil, a tradução do<br />Django, tradução da documentação e alistamento e organização de dois projetos: bingo[2] ( um cms ) e ajaxforms[3] ( newforms + ajax).<br /><br />Se você deseja participar, acesse a página da Sprint do Django<br />Brasil[4] para obter maiores informações e assinar a lista de<br />presença.<br /><br />Eu já me inscrevi no Sprint Mundial e marcarei presença no Sprint do<br />djangobrasil também!!!<br /><br />E aê? Vamos participar?<br /><br /><br />[1] <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://code.djangoproject.com/wiki/Sprint14Sep" target="_blank">http://code.djangoproject.com<wbr>/wiki/Sprint14Sep</a><br />[2] <a href="http://code.google.com/p/bingo/">http://code.google.com/p/bingo/</a><br />[3] <a href="http://code.google.com/p/django-ajaxforms/">http://code.google.com/p/django-ajaxforms/</a><br />[4] <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://groups.google.com/group/django-brasil/web/django-brasil-sprint" target="_blank">http://groups.google.com/group<wbr>/django-brasil/web/django<wbr>-brasil-sprint</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-37660316.post-34511437846787191592007-09-09T16:59:00.000-04:002007-09-09T17:05:22.557-04:00Django Rapidinhas (1)<blockquote></blockquote><span style="font-weight: bold; color: rgb(0, 0, 102);">Ordenar </span><span style="font-weight: bold; color: rgb(0, 0, 102);" class="misspell" suggestions="modela,modele,modelo,modelá,modal">model</span><span style="font-weight: bold; color: rgb(0, 0, 102);">'s </span><span style="font-weight: bold; color: rgb(0, 0, 102);" class="misspell" suggestions="">randomicamente</span><span style="font-weight: bold; color: rgb(0, 0, 102);"> no </span><span class="misspell" suggestions=""><span style="font-weight: bold; color: rgb(0, 0, 102);">Django</span><br /><br /></span>Eu resolvi fazer uma série<span style="text-decoration: none;"> de <span class="misspell" suggestions="posta,poste,posto,postá,posa">post</span>'s rápidos de dicas sobre <span class="misspell" suggestions="">Django</span>. As '<span class="misspell" suggestions="">Django</span> <span class="misspell" suggestions="">Rapidinhas</span>'.<br /><br /></span>E o tema de hoje é ordenar <span class="misspell" suggestions="modela,modele,modelo,modelá,modal">model</span>'s <span class="misspell" suggestions="">randomincamente</span> no <span class="misspell" suggestions="">Django</span>. Para isso precisamos de um <span class="misspell" suggestions="modela,modele,modelo,modelá,modal">model</span> de exemplo. Vamos criar um <span class="misspell" suggestions="modelas,modeles,modelos,modela,modelá">model</span> que represente um Aluno de uma escola ou faculdade.<br /><br /><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="classe"></span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="classe">class</span><span style="font-style: italic; color: rgb(0, 0, 102);"> Aluno(</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="modelas,modeles,modelos,modela,modelá">models</span><span style="font-style: italic; color: rgb(0, 0, 102);">.</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="Modela,Modele,Modelo,Modelá,Modal">Model</span><span style="font-style: italic; color: rgb(0, 0, 102);">):<br /></span><span style="font-style: italic; color: rgb(0, 0, 102);"> nome = </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="modelas,modeles,modelos,modela,modelá">models</span><span style="font-style: italic; color: rgb(0, 0, 102);">.</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="">CharField</span><span style="font-style: italic; color: rgb(0, 0, 102);">(</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="Max,Marx,ma,Mao,fax">max</span><span style="font-style: italic; color: rgb(0, 0, 102);">_</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="">lenght</span><span style="font-style: italic; color: rgb(0, 0, 102);">=40)</span><span style="font-style: italic; color: rgb(0, 0, 102);"><br /> idade = </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="modelas,modeles,modelos,modela,modelá">models</span><span style="font-style: italic; color: rgb(0, 0, 102);">.</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="">IntegerField</span><span style="font-style: italic; color: rgb(0, 0, 102);">()</span><span style="font-style: italic; color: rgb(0, 0, 102);"></span><br /><br />Para retornarmos em uma lista todos os usuários usando o <span class="misspell" suggestions="ROM,ORAM,OREM,ORA,ORE">ORM</span> do <span class="misspell" suggestions="">Django</span> usamos o método <span class="misspell" suggestions="Hall,AML,APL,ala,ale">all</span>(): <p style="margin-bottom: 0cm; text-decoration: none;"><span style="font-style: italic; color: rgb(0, 0, 102);">>> </span><span style="text-decoration: none; font-style: italic; color: rgb(0, 0, 102);">Aluno</span><span style="font-style: italic; color: rgb(0, 0, 102);">.objects.all()</span><br /><br />Para ordenarmos essa lista usamos o método <span class="misspell" suggestions="Oder,morder,arder,ordem">order</span>_<span class="misspell" suggestions="BT,BD,BE,BP,bê">by</span>, que necessita de um parâmetro informando o nome do campo que será a referência para a ordenação. Para um ordenação descendente adicionamos o '-' ao início do parâmetro e para uma ordenação ascendente não adicionamos nada, só o nome do campo basta.</p> <p style="margin-bottom: 0cm; text-decoration: none;">Ordenar por nome, de forma ascendente:</p><p style="margin-bottom: 0cm; text-decoration: none; color: rgb(0, 0, 102); font-style: italic;">>> <span style="text-decoration: none;">Aluno</span>.objects.all().order_by('nome')</p> <p style="margin-bottom: 0cm; text-decoration: none;">Ordenar por nome de forma descendente:</p> <p style="margin-bottom: 0cm; text-decoration: none; font-style: italic; color: rgb(0, 0, 102);">>> <span style="text-decoration: none;">Aluno</span>.object.all().order_by('-nome')</p> <p style="margin-bottom: 0cm; text-decoration: none;">E para ordenar <span class="misspell" suggestions="">randomicamente</span>? É difícil?</p><p style="margin-bottom: 0cm; text-decoration: none;">A resposta é não. Pelo contrário. É muito fácil. É só passar uma interrogação (?) como parâmetro.</p> <p style="margin-bottom: 0cm; text-decoration: none; font-style: italic; color: rgb(0, 0, 102);">>> <span style="text-decoration: none;">Aluno</span>.objects.all().order_by('?')</p> <p style="margin-bottom: 0cm; text-decoration: none;">Fácil não?</p>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-37660316.post-79502901652894402112007-09-07T23:19:00.000-04:002007-09-07T23:36:13.476-04:00PyConBrasilUma semana após o PyConBrasil resolvi me pronunciar sobre o evento!<br /><br />Para começar, levei aproximadamente 30 horas de viagem para chegar em <span class="misspell" suggestions="">Joinville</span>! Na viagem estava muito ansioso, por não conhecer ninguém da comunidade pessoalmente e por nunca ter participado de um <span class="misspell" suggestions="">PyCon</span> e por começar dando um <span class="misspell" suggestions="">treinamento</span> de um <span class="misspell" suggestions="">Framework</span> Web que está iniciando em um ambiente onde há muitos <span class="misspell" suggestions="desenvolve dores,desenvolve-dores">desenvolvedores</span> que utilizam <span class="misspell" suggestions="Zoe,Tope">Zope</span>/<span class="misspell" suggestions="Clone,Plane">Plone</span>.<br /><br />Meu primeiro <span id="bad_word" class="misspell" suggestions="constato,contacto,contanto,contrato,contado">contato</span> com o pessoal, na Assembleia tirou todas essas <span class="misspell" suggestions="baboseira">baboseiras</span> da minha cabeça.<br /><br />Aliás a melhor coisa que estou trazendo do evento são as amizades que fiz lá. Realmente estava lá uma comunidade. Muito bate papo entre uma palestra e outra e nas palestras também. Muitas piadas e brincadeiras nos <span class="misspell" suggestions="">Happy</span> <span class="misspell" suggestions="">Hour</span>. O humor do pessoal é enorme.<br /><br />No primeiro dia, eu participei dos dois <span class="misspell" suggestions="">treinamentos</span>: sobre programação com <span class="misspell" suggestions="">python</span> em celulares <span class="misspell" suggestions="">nokia</span> e sobre <span class="misspell" suggestions="Grou">Grok</span>. Os dois <span class="misspell" suggestions="">treinamentos</span> foram conceitos introdutórios, mas foram muitos importantes para conhecer um pouquinho sobre cada ferramenta. No final do primeiro dia fui avisado que teria uma mesa redonda sobre <span class="misspell" suggestions="">Python</span> para Web e eu representaria o <span class="misspell" suggestions="">Django</span>, <span class="misspell" suggestions="Dor neles,Dor-neles">Dorneles</span> o <span class="misspell" suggestions="Clone,Plane">Plone</span> e Luciano Ramalho o <span class="misspell" suggestions="Grou">Grok</span>. Nós três tivemos a <span class="misspell" suggestions="ideia">idéia</span> de falarmos sobre cada ferramenta de forma divertida e contar porque cada um de nós a utilizamos. Foi bem divertido, arrancamos muitos <span class="misspell" suggestions="rios,ricos,ridos,rijos,rimos">rizos</span> do pessoal, inclusive quando disse que não uso <span class="misspell" suggestions="Clone,Plane">Plone</span> por sua tela azul. Para quem quiser acho que em breve estará disponível na Web.<br /><br />No segundo dia, comecei tentando arrumar o meu computador e o laboratório para dar o <span class="misspell" suggestions="">treinamento</span> de <span class="misspell" suggestions="">Django</span> e também não assisti quase palestras. Uma das poucas palestras que assisti foi a do Gustavo <span class="misspell" suggestions="">Neimayer</span> sobre <span class="misspell" suggestions="">Storm</span> que foi muito legal.<br /><br />A experiência de ministrar um <span class="misspell" suggestions="">treinamento</span> sobre <span class="misspell" suggestions="">Django</span> foi muito legal! A sala estava lotada! Vi que muitas pessoas tem interesse sobre o <span class="misspell" suggestions="">framework</span>, mas percebi também que muitos não sabem por onde começar! E o <span class="misspell" suggestions="">treinamento</span> tinha essse <span class="misspell" suggestions="objectivo">objetivo</span>, mostrar como iniciar no <span class="misspell" suggestions="">Django</span>.<br /><br />No último dia eu eu resolvi não fazer nenhum <span class="misspell" suggestions="">treinamento</span>, para poder assistir as palestras.<br /><br />Resumindo na <span class="misspell" suggestions="">PyCon</span> foram abordados muitos assuntos como: <span class="misspell" suggestions="">Eagle</span>, <span class="misspell" suggestions="">GTK</span>, <span class="misspell" suggestions="BT,PT">QT</span>, <span class="misspell" suggestions="">WxPython</span>, <span class="misspell" suggestions="Mamo">Maemo</span>, <span class="misspell" suggestions="">PyJamas</span>, <span class="misspell" suggestions="">Django</span>, <span class="misspell" suggestions="Grou">Grok</span>, <span class="misspell" suggestions="Zoe,Tope">Zope</span>, <span class="misspell" suggestions="Clone,Plane">Plone</span>, <span class="misspell" suggestions="">TurboGears</span>, <span class="misspell" suggestions="">SqlAlchemy</span>, <span class="misspell" suggestions="">IronPython</span>, <span class="misspell" suggestions="">Shuberry</span>, <span class="misspell" suggestions="Gim">Gimp</span>, <span class="misspell" suggestions="">PyGame</span>, <span class="misspell" suggestions="">Gsoc</span>. E assuntos como <span class="misspell" suggestions="">Python</span> no ensino de estatística, no ensino de computação, na ciência. E teve uma palestra sobre motivação com o <span class="misspell" suggestions="Dor neles,Dor-neles">Dorneles</span> <span class="misspell" suggestions="">Climber</span>.<br /><br />Para quem quiser ver as fotos oficiais do evento: <a href="http://picasaweb.google.com/PyConBrasil">http://picasaweb.google.com/PyConBrasil</a><br /><br />A <span class="misspell" suggestions="">PyCon</span> foi muito legal. Não vejo a hora de chegar a próxima.<br /><br />Nos vemos lá.Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-37660316.post-82667769183038619232007-08-16T19:23:00.000-04:002007-08-16T19:30:33.105-04:00Baixando uma página com IronPython<span style="font-weight: bold;">Ouvi dizer que é baixar uma página com </span><span style="font-weight: bold;" class="misspell" suggestions="">IronPython</span><span style="font-weight: bold;"> exige mais linhas de código do que usando </span><span style="font-weight: bold;" class="misspell" suggestions="">CPython</span><span style="font-weight: bold;"> e </span><span style="font-weight: bold;" class="misspell" suggestions="">urllib</span><span style="font-weight: bold;">2. É verdade?</span><br /><span style="color: rgb(0, 0, 153); font-weight: bold;">Não. É possível baixar uma página em </span><span style="color: rgb(0, 0, 153); font-weight: bold;" class="misspell" suggestions="">IronPython</span><span style="color: rgb(0, 0, 153); font-weight: bold;"> com a mesma quantidade de linhas que se usaria com o </span><span style="color: rgb(0, 0, 153); font-weight: bold;" class="misspell" suggestions="">urrllib</span><span style="color: rgb(0, 0, 153); font-weight: bold;">2.<br /><br /></span><span style="font-weight: bold;">Como que eu faço isso?</span><br /><span style="color: rgb(0, 0, 153); font-weight: bold;">É bem simples. Veja:</span><br /><span style="color: rgb(0, 0, 102); font-style: italic;">>>> </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="ROM">from</span><span style="color: rgb(0, 0, 102); font-style: italic;"> </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="Sustem">System</span><span style="color: rgb(0, 0, 102); font-style: italic;">.</span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="Neta,Neto,Nem">Net</span><span style="color: rgb(0, 0, 102); font-style: italic;"> </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="importa,importe,importo,importá,impor">import</span><span style="color: rgb(0, 0, 102); font-style: italic;"> </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="">WebClient</span><br /><span style="color: rgb(0, 0, 102); font-style: italic;">>>> site = WebClient().DownloadString('http://pyman.blogspot.com')</span><br /><span style="color: rgb(0, 0, 102); font-style: italic;">>>> </span><span style="color: rgb(0, 0, 102); font-style: italic;" class="misspell" suggestions="">print</span><span style="color: rgb(0, 0, 102); font-style: italic;"> site</span><br /><br /><span style="font-weight: bold;">E se eu quiser salvar uma página em um arquivo? Há uma maneira bem simples de se fazer isso com </span><span style="font-weight: bold;" class="misspell" suggestions="">CPython</span><span style="font-weight: bold;">. E com o </span><span style="font-weight: bold;" class="misspell" suggestions="">IronPython</span><span style="font-weight: bold;"> como fica?</span><br /><span style="color: rgb(0, 0, 153); font-weight: bold;">No </span><span style="color: rgb(0, 0, 153); font-weight: bold;" class="misspell" suggestions="">IronPython</span><span style="color: rgb(0, 0, 153); font-weight: bold;"> a simplicidade é a mesma. Olha só:</span><br /><span style="font-style: italic; color: rgb(0, 0, 102);">>>> </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="ROM">from</span><span style="font-style: italic; color: rgb(0, 0, 102);"> </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="Sustem">System</span><span style="font-style: italic; color: rgb(0, 0, 102);">.</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="Neta,Neto,Nem">Net</span><span style="font-style: italic; color: rgb(0, 0, 102);"> </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="importa,importe,importo,importá,impor">import</span><span style="font-style: italic; color: rgb(0, 0, 102);"> </span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="">WebClient</span><br /><span style="font-style: italic; color: rgb(0, 0, 102);">>>> WebClient().DownloadFile('http://pyman.blogspot.com', '</span><span style="font-style: italic; color: rgb(0, 0, 102);" class="misspell" suggestions="">pyman</span><span style="font-style: italic; color: rgb(0, 0, 102);">.html')</span><br /><br /><span style="font-weight: bold;">Legal esse </span><span style="font-weight: bold;" class="misspell" suggestions="">IronPython</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;" class="misspell" suggestions="EN,eis">ein</span><span style="font-weight: bold;">!!!!<br /><br /><br /></span>----------------------------<br /> Gostaria de deixar bem claro, que este <span class="misspell" suggestions="posta,poste,posto,postá,posa">post</span> é uma resposta a um <span class="misspell" suggestions="posta,poste,posto,postá,posa">post</span> [1] feito pelo meu amigo Walter Cruz sobre o mesmo assunto.<br /><br />Outras referências sobre o assunto:<br />[1] - <a href="http://devlog.waltercruz.com/baixando_pagina_com_python">http://devlog.waltercruz.com/baixando_pagina_com_python</a><br />[2] - <a href="http://andrzejonsoftware.blogspot.com/2007/05/how-to-download-web-page-with.html">http://andrzejonsoftware.blogspot.com/2007/05/how-to-download-web-page-with.html</a><br />[3] - <a href="http://www.voidspace.org.uk/python/weblog/arch_d7_2007_08_11.shtml#e790">http://www.voidspace.org.uk/python/weblog/arch_d7_2007_08_11.shtml#e790</a>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-37660316.post-62906064525808627542007-08-13T17:40:00.000-04:002007-08-13T17:45:28.441-04:00Django no UbuntuFoi criado um package para o Django no Ubuntu [1]. Com isso é possível instalar o Django no Ubuntu com apenas um comando:<br /><br /><span style="color: rgb(153, 153, 153);"> sudo apt-get install python-django</span><br /><br />Simples, fácil e rápido como tudo na vida deve ser!<br /><br />[1] - http://packages.ubuntu.com/feisty-backports/python/python-djangoUnknownnoreply@blogger.com3tag:blogger.com,1999:blog-37660316.post-47700187377985346332007-08-09T00:06:00.000-04:002007-08-09T00:07:51.554-04:00Django na PyCon BrasilDia 30 de <span class="misspell" suggestions="Agosto,gosto,acosto,agasto,aposto">agosto</span> a 1 de <span class="misspell" suggestions="Setembro">setembro</span> na <span class="misspell" suggestions="">SOCIESC</span> em <span class="misspell" suggestions="">Joinville</span> - Santa Catarina, acontecerá o maior encontro de <span class="misspell" suggestions="desenvolve dores,desenvolve-dores">desenvolvedores</span>, amantes e simpatizantes pela linguagem de programação <span class="misspell" suggestions="">Python</span> o <span class="misspell" suggestions="">PyCon</span> Brasil.<br /><br />Esse ano a <span class="misspell" suggestions="">PyCon</span> Brasil [1] contará com duas palestras e um <span class="misspell" suggestions="">treinamento</span> básico sobre <span class="misspell" suggestions="">Django</span>. Aliás o <span class="misspell" suggestions="">treinamento</span>, será ministrado por este singelo <span class="misspell" suggestions="">djanger</span> que vos escreve (eu). <span class="misspell" suggestions="Ses,Essa,Esse,ESA,Hess">Essa</span> participação de <span class="misspell" suggestions="">djangers</span> na <span class="misspell" suggestions="">PyCon</span> é uma avanço, já que será o primeiro <span class="misspell" suggestions="">PyCon</span> Brasil que conta com palestras e <span class="misspell" suggestions="">treinamentos</span> relacionados ao <span class="misspell" suggestions="">Django</span>.<br /><br />O <span class="misspell" suggestions="">Django</span> é um dos <span class="misspell" suggestions="">frameworks</span> para desenvolvimento rápido para web em <span class="misspell" suggestions="">Python</span> com mais ascensão no Brasil. Devido ao crescimento da comunidade aqui no <span class="misspell" suggestions="pais,pá is,pá-is,pás,pois">país</span>, que começou a se formar em <span class="misspell" suggestions="Dezembro">dezembro</span> do ano passado com uma lista de discussão no google <span class="misspell" suggestions="grous">groups</span> [2]. Um sintoma do crescimento da comunidade <span class="misspell" suggestions="">Django</span> aqui no Brasil é a participação de <span class="misspell" suggestions="">djangers</span> brasileiros no <span class="misspell" suggestions="plante,planeta,plane,planei,planem">planet</span> oficial do <span class="misspell" suggestions="">django</span>, além das participações de brasileiros na listas de discussões oficiais do <span class="misspell" suggestions="">Django</span> [3].<br /><br />Se você curte <span class="misspell" suggestions="">Python</span>, <span class="misspell" suggestions="">Django</span>, quer aprender mais sobre <span class="misspell" suggestions="">Python</span>, <span class="misspell" suggestions="">Django</span>, <span class="misspell" suggestions="Zoe,Tope">Zope</span>, conhecer os amantes dessa linguagem e saber o que a galera anda fazendo com <span class="misspell" suggestions="">Python</span> aqui no Brasil. Comece a arrumar as suas malas, ainda há tempo de fazer sua inscrição [4].<br /><br /><span id="bad_word" class="misspell" suggestions="Óptima">Ótima</span> oportunidade de aprender e fazer amigos!<br /><br />[1] - http://pyconbrasil.com.br/<br />[2] - http://groups.google.com/group/django-brasil<br />[3] - http://www.djangoproject.com/community/<br />[4] - http://pyconbrasil.com.br/sobre-o-evento/inscricaoUnknownnoreply@blogger.com4tag:blogger.com,1999:blog-37660316.post-83233806450931105962007-08-01T13:22:00.000-04:002007-08-01T13:26:22.887-04:00Django Master ClassJeremy Dunck, Jacob Kaplan-Moss, Simon Willison disponibilizaram online a apresentação deles sobre Django feita na OSCON desse ano.<br /><br />Essa apresentação trata de técnicas avançadas em Django abordando: o uso de testes unitários, OpenID, criação de Fields Customizados, middleware, signal's, ajax entre outros temas.<br /><br />Essa apresentação é parada obrigatória para quem quer aprofundar seus conhecimentos em Django.<br /><br />Para quem quiser conferir é só acessar:<br /><a href="http://toys.jacobian.org/presentations/2007/oscon/tutorial/"> http://toys.jacobian.org/presentations/2007/oscon/tutorial/</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-37660316.post-89375346019751817282007-06-21T13:59:00.000-04:002007-06-21T14:09:59.158-04:00PHTCFazendo o mesmo teste [1] que o Walter fez [2], para descobrir minha personalidade como porgramador. Segundo o teste eu sou um Planjeador, gosto de programar em alto nível (Hight-level), curto trabalhar em equipe (Team) e sou Conservador.<br /><br />Gostar mesmo de planejar não gosto, mas planejo... Em minha opinião eu sou mais executor do que planejador, mas, sempre que posso planejo.<br /><br />Eu gosto de linguagens de alto-nível como Python, Ruby, mas também gosto de brincar com C.<br /><br />Trabalhar em equipe, ensinar e compartilhar conhecimentos é uma das coisas que mais gosto. Ta precisando de professor ou ajuda por ae ?<br /><br />E para finalizar eu sou conservador sim! Não gosto de comentar no código! Para mim quanto mais simples, menos código, melhor! Também gosto de otimizar e refatorar códigos, e testar, mas sem comentários por favor!<br /><br />Ps: Os únicos comentários que gosto são esses comentários sobre posts, que vocês também fazem aqui, por isso podem comentar a vontade.<br /><br />[1] - http://devlog.waltercruz.com/dhtb#comments<br />[2] - http://www.doolwind.com/index.php?page=11Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-37660316.post-48633681479111119012007-06-16T02:26:00.000-04:002007-06-16T02:41:43.887-04:00Instalando o mono e o IronPython no UbuntuHoje resolvi instalar o mono [1] e o IronPython [2] no 'meu' Ubuntu 7.04.<br /><br />Eu achei 2 textos que me auxiliaram na instalação [3] [4], e então resolvi postar aqui passo a passo da instalação.<br /><br />Comecei instalando o mono, seus utilitários e o monodevelp que é um ambiente de desenvolvimento para .net no linux. Como uso o Ubuntu, tudo isso foi instalado com um apt-get:<br /><br /><span style="color: rgb(102, 102, 102); font-style: italic;"># sudo apt-get install mono mono-gmcs mono-gac mono-utils monodevelop</span><br /><br />Para instalar o IronPython, eu fui no site dele e baixei a versão 1.1 com os binários do IronPython [5].<br /><br />Depois de baixado, eu descompactei o arquivo, e executei o shell interativo do IronPython através do comando no temrinal:<br /><br /><span class="fixed_width" style="font-family:Courier, Monospaced;"><span style="color: rgb(102, 102, 102); font-style: italic;">mono ipy.exe</span><br /><br />E eu quisesse executar um arquivo .py com o IronPython no mono era só eu utilizar o comando no temrinal:<br /><br /><span style="font-style: italic; color: rgb(102, 102, 102);">mono ipy.exe meuarquivo.py<br /><br /><br /></span><span style="color: rgb(102, 102, 102);"><span style="color: rgb(0, 0, 0);">Eu instalei a versão 1.1 do IronPython, mas a versão 2 alpha já pode ser testada [6].<br /><br />[1] - http://www.mono-project.com/<br /></span></span></span><span class="fixed_width" style="font-family:Courier, Monospaced;"><span style="color: rgb(102, 102, 102);"><span style="color: rgb(0, 0, 0);">[2] - http://www.codeplex.com/IronPython/<br /></span></span></span><span class="fixed_width" style="font-family:Courier, Monospaced;"><span style="color: rgb(102, 102, 102);"><span style="color: rgb(0, 0, 0);">[3] - http://www.guiaubuntupt.org/wiki/index.php?title=Programacao/.Net<br /></span></span></span><span class="fixed_width" style="font-family:Courier, Monospaced;"><span style="color: rgb(102, 102, 102);"><span style="color: rgb(0, 0, 0);">[4] - http://groups.google.com/group/comp.lang.python/browse_thread/thread/398aca428247ad7e/<br /></span></span></span><span class="fixed_width" style="font-family:Courier, Monospaced;"><span style="color: rgb(102, 102, 102);"><span style="color: rgb(0, 0, 0);">[5] - http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=2573<br /></span></span></span><span class="fixed_width" style="font-family:Courier, Monospaced;"><span style="color: rgb(102, 102, 102);"><span style="color: rgb(0, 0, 0);">[6] - </span></span></span>http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=438Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-37660316.post-21602882593016569032007-06-12T23:37:00.002-04:002007-06-12T23:44:25.426-04:00djangosites.org - galeria de sites feito em djangoEu estava navegando na internet quando encontrei um site feito em django que achei interessante. O <a href="http://www.djangosites.org/">djangosites.org</a>, e resolvi escrever sobre ele.<br /><br />O djangosites é um site que tem por objetivo divulgar sites feitos em django.<br /><br />O mais legal desse site é que você pode se cadastrar, votando e comentando sobre os sites cadastrados e se tiver desenvolvido um site usando django, pode divulgá-lo também.<br /><br />Essa é uma dica para quem quer divulgar seu trabalho feito em django, ou ver sites que utilizam o django.Unknownnoreply@blogger.com0