tag:blogger.com,1999:blog-18193244055377794472009-05-29T23:05:42.973-03:00Blog do Petryoutra tentativa de manter um blog vivo na net...Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.comBlogger14125tag:blogger.com,1999:blog-1819324405537779447.post-45156958800730258552009-05-28T13:34:00.008-03:002009-05-28T15:16:33.638-03:00Busca full-text do mysql no djangoEssa semana tive que implementar em um dos meus projetos um sistema de busca full-text. como estou utilizando o Mysql, ele possui um mecanismo de pesquisa integrado. Há outras bibliotecas de pesquisa como o <a href="http://lucene.apache.org/java/docs/">Lucene</a>, <a href="http://xapian.org/">Xapian</a> e <a href="http://www.sphinxsearch.com/">Sphinx</a> e todas elas possuem modulos para integra-las ao Django(<a href="http://code.google.com/p/django-search-lucene/" style="text-decoration: none; color: rgb(0, 0, 0);">django-search-lucene</a>, <a href="http://code.google.com/p/djapian/">djapian</a> e <a href="http://code.google.com/p/django-sphinx/">django-sphinx</a> ) mas no meu caso, como estou utilizando uma hospedagem compartilhada, tenho certas restrições para instalar algumas bibliotecas, portanto tive que partir para esta alternativa.<br /><br />Bom, vamos ao que é necessário para funcionar a busca:<br /><br />digamos que você possui um model de noticias:<br /><pre>class Artigo(models.Model):<br /> data_publicacao = models.DateTimeField("Data de Publicação", default=datetime.now)<br /> titulo = models.CharField(max_length=200)<br /> slug = models.SlugField()<br /> texto = models.TextField("Texto da noticia")<br /><br /> class Meta:<br /> ordering = ['-data_publicacao']<br /> get_latest_by = 'data_publicacao'<br /><br /> def __unicode__(self):<br /> return self.titulo<br /></pre><br /><br />Como esperado, o código acima vai gerar um tabela no banco, mas, para a busca funcionar corretamente, teremos que criar "no braço" um índice fulltext para efetuar a busca. Como estamos utilizando o mecanismo de busca do próprio banco. O índice será atualizado automaticamente quando registros são inseridos, atualizados, ou excluídos, de modo que os resultados da pesquisa nunca estarão desatualizada. A declaração CREATE INDEX é utilizado para criar o índice:<br /><pre>CREATE FULLTEXT INDEX fti_noticias_artigo ON noticias_artigo(titulo,texto)</pre><br /><br />Bom agora teremos que estender esta funcionalidade ao ORM do Django e criar um manager para o model em que você quer fazer a busca. Para isso simplesmente <a href="http://djangotidbits.com/17/">copie este código</a> no seu models, ou melhor, coloque em um arquivos separado, já que você poderá aproveitá-lo em outros models!<br /><br />Agora, chame o manager do código, atribuindo ao atributo objects (ou qualquer outro que você criar) passando como parâmetro os campos que você indexou no mysql:<br /><pre>objects = SearchManager(('titulo', 'texto'))</pre><br /><br />e está pronto!<br /><br />agora para realizar alguma busca utilize o seguinte comando:<br /><br /><pre>Artigo.objects.search('minha busca')</pre><br /><br />o método search executará uma consulta, verificando se a string que você enviou se encontra em um dos campos que você estabeleceu no seu SearchManager.<br /><br />algo mais ou menos assim:<br /><pre>SELECT titulo, data_publicacao, slug, texto, MATCH(titulo, texto) AGAINST ('minha busca')<br /> AS `relevance`<br />FROM noticias_artigo<br />WHERE MATCH(titulo, texto) AGAINST ('minha busca')</pre><br /><br />O seu manager também inclui um campo extra na sua consulta chamado relevance, que é o indice de relevância da sua pesquisa. Desse modo é possivel efetuar uma ordenacão através deste campo.<br /><br /><pre>Artigo.objects.search('minha busca').order_by('relevance')</pre><br /><br />bom era isso! qualquer duvida, reclamação, ou colaboração de código, é só comentar!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-4515695880073025855?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com2tag:blogger.com,1999:blog-1819324405537779447.post-21985580557679089232009-04-24T09:37:00.001-03:002009-04-24T09:39:52.139-03:00Vote nos convidados internacionais para a Conferência Python BrasilChegou a hora de votar para escolher os convidados internacionais da Conferência Python Brasil 5.<br /><br />Qualquer interessado pode votar, não é preciso ser membro da<br />Associação Python Brasil (APyB).<br /><br />Visite a <span class="link-external"><a class="external-link" href="http://www.python.org.br/wiki/ConvidadosInternacionais">página dos candidatos</a></span> para saber quem é quem, e conhecer os detalhes sobre o processo de escolha. <br /><br />Para votar, utilize <a title="Convidados Internacionas da Conferência Python Brasil [5]" class="internal-link" href="http://associacao.pythonbrasil.org/votacoes/convidados-internacionas-pyconbrasil-5">este formulário</a>. Você pode votar em um ou dois candidatos.<br /><br />O prazo final para votar é 26/4 (domingo) e o resultado da votação será publicado dia 27/4.<br /><br />O candidato mais votado será convidado pela APyB para vir à nossa Conferência Python Brasil 5 em Caxias do Sul, com passagens e hospedagem paga.<br /><br />Os conselheiros e diretores da APyB convidarão também um segundo palestrante, escolhido entre os candidatos, independente da classificação dele na votação.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-2198558055767908923?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com1tag:blogger.com,1999:blog-1819324405537779447.post-58007525706121739762009-03-24T09:26:00.004-03:002009-03-24T09:52:31.148-03:00Adeus DjangoSnippets! olá DjangoTidBits!!<span class="google-src-active-text" style="direction: ltr; text-align: left;">Foi criado por Jose S</span>oares <span class="google-src-active-text" style="direction: ltr; text-align: left;">da <a href="http://opensource.washingtontimes.com/">W</a></span><span class="google-src-active-text" style="direction: ltr; text-align: left;"><a href="http://opensource.washingtontimes.com/">ashington Times</a> </span><span class="google-src-active-text" style="direction: ltr; text-align: left;"> o site <a href="http://djangotidbits.com/">DjangoTidbits</a> que é mais ou menos o famigerado <a href="http://www.djangosnippets.org/">Django Snippets</a>.<br /><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://djangotidbits.com/static/img/tidbits_logo.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 67px;" src="http://djangotidbits.com/static/img/tidbits_logo.png" alt="" border="0" /></a><span class="google-src-active-text" style="direction: ltr; text-align: left;">O DjangoTidbits, além de um layout, na minha opinião, mais bonito, possui outros recursos como um controle de revisões do código, a opção de fazer uploads dos arquivos através de um arquivos compactado - ou não, e, o mais importante <span style="font-weight: bold;">tem uma busca</span>!!!!!!<br /><br />Por enquanto o site possui poucos snippets, ou melhor tidbits, mas acredito que seja questão de tempo, pois achei este novo recurso *muito* melhor que o seu antecessor!<br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-5800752570612173976?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com1tag:blogger.com,1999:blog-1819324405537779447.post-29679469134152189792009-03-19T23:19:00.003-03:002009-03-19T23:24:09.546-03:00Django Code SearchCom o <a href="http://www.djangocodesearch.com/">Django Code Search</a> é possivel realizar uma pesquisa no código do próprio framework.<br /><div style="text-align: left;" id="result_box" dir="ltr"><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.djangocodesearch.com/site_media/images/logo.png"><img style="cursor: pointer; width: 285px; height: 47px;" src="http://www.djangocodesearch.com/site_media/images/logo.png" alt="" border="0" /></a><br /><br />Atratves dele, é possível encontrar atributos de classe ou até mesmo a definições de funções. É leve e rápido, é ma ferramenta a ser usada pelos djangers!</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-2967946913415218979?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com0tag:blogger.com,1999:blog-1819324405537779447.post-22880645034467347142009-01-13T10:07:00.004-03:002009-01-13T10:20:16.258-03:00PythonBrasil 5 em Caxias do SulApenas para tirar as traças do blog, hehehe espero que este ano eu dê mais atenção a ele!<br /><br />A decisão foi tomada a tempo, mas como não foi publicada oficialmente, fiquei segurando a noticia! Mas é mais do que certo! o próximo encontro da comunidade Python brasileira será na minha cidade, mas precisamente no meu local de trabalho! Na <a href="http://www.ucs.br/">Universidade de Caxias do Sul</a>!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://media.djangobrasil.org/djangobrasil/images/casos_de_sucesso/ucs_foto.jpg"><img style="cursor:pointer; cursor:hand;width: 300px; height: 225px;" src="http://media.djangobrasil.org/djangobrasil/images/casos_de_sucesso/ucs_foto.jpg" border="0" alt="" /></a><br /><br />O evento agora chamdo PythonBrasil 5 acontecerá dias 10, 11, e 12 de Setembro de 2009.<br /><br />Posso dizer em nome de todos os colegas de trabalho, que estamos muito felizes e orgulhosos de sermos os anfitriões deste evento e daremos todo o apoio necessário para que ele se torne um sucesso!<br /><br />Mais informações estão no <a href="http://associacao.pythonbrasil.org/associacao/imprensa/caxias-do-sul-2009">site da associação</a>:<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-2288064503446734714?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com0tag:blogger.com,1999:blog-1819324405537779447.post-35194206204131424582008-09-03T08:46:00.003-03:002008-09-03T08:56:14.243-03:00Palestra na Tche LinuxDia 27, sábado, estarei no evento da <a href="http://www.tchelinux.org/caxias/">TcheLinux</a>, na FTEC de Caxias do Sul, falando sobre o Django, onde mostrarei algumas das várias ferramentas do framework (admin, forms, generic views,...) e uma palhinha sobre o <a href="http://code.google.com/appengine/">Google App Engine</a>!<br /><br />Estão se você estiver à toa neste dia (o que é muito dificil ehhehe),morar perto de Caxias do Sul e estiver afim de fazer um programinha nerd, aparece lá!<br /><br />os detalhes do evento podem ser conferidos em: <a href="http://www.tchelinux.org/caxias/">http://www.tchelinux.org/caxias/</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-3519420620413142458?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com0tag:blogger.com,1999:blog-1819324405537779447.post-63638345676303575322008-07-04T09:21:00.004-03:002008-07-04T09:37:37.739-03:00Proposta do TCC Aprovada!Acabei de receber um "OK" para minha proposta do meu trabalho de conclusão do curso de graduação!!<br /><br />A idéia basicamente é criar um gerador de código para o framework <a href="http://www.djangoproject.com/">Django</a> a partir de modelos UML, algo como o <a href="http://plone.org/products/archgenxml">archgenXML</a> mas com algumas técnicas de compiladores (GLC's, Analisadores Léxicos, Sintaticos, etc...)<br /><br />Para quem quiser mais informações, o link para proposta está publico no Google Docs<br /><a href="http://docs.google.com/Doc?id=d7zxc7q_71rbmszjdd">http://docs.google.com/Doc?id=d7zxc7q_71rbmszjdd</a><br /><br />ahh e também...qualquer ajuda é bem vinda! hehe<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-6363834567630357532?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com9tag:blogger.com,1999:blog-1819324405537779447.post-8813884848928705672008-05-16T13:44:00.003-03:002008-05-16T13:49:35.992-03:00Django + mysql + clusterA noticia é meio antiga mas como não sabia to postando aqui...<br />Foi criado um <a href="http://softwaremaniacs.org/soft/mysql_cluster/en/">beckend</a> para o <a href="http://www.djangoproject.com/">django</a> pra utilizar o mysql em um clusters, ele permite que voce configure servidores master e slave e, e expecificar qual deles será utilizado através dos decorators!<br /><br />E tudo bem explicadinho como instalar, configurar e usar! :)<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-881388484892870567?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com0tag:blogger.com,1999:blog-1819324405537779447.post-5850476376697152642008-04-02T09:11:00.005-03:002008-04-02T14:44:01.365-03:00Django e Python2.5 no dreamhost - Parte 2Bom depois de Configurado o Python, como visto no <a href="http://blog.mdpetry.net/2008/04/django-e-python25-no-dreamhost-parte-1.html">post anterior</a> é hora de colocar o django no ar. Ahh lembrando que o Django não é suportado oficialmente pela dreamhost por isso a instalação é um pouquinho...digamos...xarope ehhehe, mas é possivel sim!<br /><br />Usei como base para <a href="http://wiki.dreamhost.com/index.php/Django">esse post</a> a instalação do Django que está no wiki do Dreamhost, mas tinha dado uns probleminhas e, garimpando aki e ali... cheguei no resultado que vou passar para voces!<br /><br /><h4>Configurando o site no dreamhost</h4><br />bom pra começar, crie um dominio no painel de controle da Dreamhost, no meu caso criei um subdominio, mas o processo é o mesmo!<br /><br /><blockquote>Escolha “Manage Domains” e depois “Add New Domain / Sub-Domain”<br />Escolha oome para seu (sub)dominio, no meu caso coloquei django.mdpetry.net<br />Escolha “Extra web security” e “Fast CGI Support” e submeta o formulário</blockquote><br /><br />Depois crie uma base de dados e uma tabela para seu projeto (não vo ficar explicando isso, mas é bem fácil de fazer! :) )<br /><br /><h4>Configurando o Django</h4><br />Entre por ssh na sua conta, e no home seu usuário, crie uma pasta django e dentro dela a pasta django_projects, para adicionar os seus projetos.<br /><br />dentro da pasta ~/django, baixe o source do django, através do svn utilizando o comando:<br /><code>svn co http://code.djangoproject.com/svn/django/trunk/ django_src</code><br /><br />Altere o seu .bash_profile, adicionando as linhas:<br /><code>export PATH=$PATH:$HOME/django/django_src/django/bin<br />export PYTHONPATH=$PYTHONPATH:$HOME/django/django_src:$HOME/django/django_projects</code><br />e ative as mudanças digitando <code>source ~/.bash_profile </code><br /><br />agora entre no diretório django_projects e crie um novo projeto:<br /><code>django-admin.py startproject myproject</code><br /><br />Como de costume, ele criou uma série de arquivos, crie as pastas para os templates e para as imagens (geralmente eu as crio dentro da pasta do projeto, mas tanto faz onde elas serão criadas)<br />no meu caso criei a pasta templates e media.<br /><br />á no arquivo <span style="font-weight:bold;">settings.py</span> e altere as configurações:<br /><br />de banco de dados:<br /><code><br /> DATABASE_ENGINE = 'mysql' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.<br /> DATABASE_NAME = 'django_db' # Or path to database file if using sqlite3.<br /> DATABASE_USER = 'usuario' # Not used with sqlite3.<br /> DATABASE_PASSWORD = 'senha' # Not used with sqlite3.<br /> DATABASE_HOST = 'djangomysql.mdpetry.net' # Set to empty string for localhost. Not used with sqlite3.</code><br /><br />de internacionalização:<br /><code> TIME_ZONE = 'America/Sao_Paulo'<br />LANGUAGE_CODE = 'pt-br'<br /> </code><br /><br />de templates:<br /><code>TEMPLATE_DIRS = (<br /> # Put strings here, like "/home/html/django_templates".<br /> # Always use forward slashes, even on Windows.<br /> "/home/mdpetry/django/django_projects/myproject/templates"<br /> )</code><br /><br />mídia:<br /><code><br /> MEDIA_ROOT = '/home/mdpetry/django/django_projects/myproject/media'<br /> MEDIA_URL = 'http://django.mdpetry.net/media/'<br /> ADMIN_MEDIA_PREFIX = '/admin_media/'</code><br /><br />insira a seguinte linha no .bash_profile<br /><code>export DJANGO_SETTINGS_MODULE=myproject.settings</code> e ative novamente o arquivo.<br /><br />após isso, sincronize o BD e crie u musuário para acessar a area de adminsitração com as suas alterações na pasta do projeto, digite:<br /><code>django-admin.py syncdb</code><br /><br /><h4>instalando e configurando o FASTCGI e o mod_rewrite</h4><br />vá até o subdominio criado e vaixe o script python<br /><br /><code>wget http://svn.saddi.com/py-lib/trunk/fcgi.py</code> e altere as permissões do arquivo <code>chmod 755 fcgi.py</code><br /><br />crie o arquivo dispatch.fcgi<br /><code>#!/home/mdpetry/opt/bin/python<br />import sys<br />sys.path += ['/home/mdpetry/django/django_src']<br />sys.path += ['/home/mdpetry/django/django_projects']<br />from fcgi import WSGIServer<br />from django.core.handlers.wsgi import WSGIHandler<br />import os<br />os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'<br />WSGIServer(WSGIHandler()).run()</code><br /><br />para o mod rewrite, crie o arquivo .htaccess:<br /><code>RewriteEngine On<br /> RewriteBase /<br /> RewriteRule ^(media/.*)$ - [L]<br /> RewriteRule ^(admin_media/.*)$ - [L]<br /> RewriteRule ^(dispatch\.fcgi/.*)$ - [L]<br /> RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]<br /></code><br /><br />reinicia o python para validar as mudanças:<br /><code>pkill python</code><br /><br /><h2>Configurações finais</h2><br />altere as os links dos arquivos de midia para o projeto do django:<br /><code>ln -s $HOME/django/django_src/django/contrib/admin/media $HOME/django.mdpetry.net/admin_media</code><br /><br />adicione no arquivos settings.py do seu projeto a app de adminsitração:<br /><code><br />INSTALLED_APPS = (<br /> 'django.contrib.auth',<br /> 'django.contrib.contenttypes',<br /> 'django.contrib.sessions',<br /> 'django.contrib.sites',<br /> 'django.contrib.admin',<br /> )</code><br /><br />e no arquivos urls.py, deconmente a linahs da adminsitração tbem:<br /><code>(r'^admin/', include('django.contrib.admin.urls')),</code><br /><br />reinicie o python e na pasta do projeto instale o proejto com o manage.py<br /><code>pkill python<br />python manage.py syncdb</code><br /><br />e... ta pronto! se voce acessar http://django.DEUDOMINIO.com/admin, deverá aparecer a tela de login da interface de adminsitração do django!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-585047637669715264?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com3tag:blogger.com,1999:blog-1819324405537779447.post-7085554136843018512008-04-01T19:18:00.005-03:002008-04-01T19:44:26.250-03:00Django e Python2.5 no dreamhost - Parte 1Estava com alguns probleminhas para isntalar o <a href="http://www.djangoproject.com">Django</a> no <a href="http://www.dreamhost.com/">Dreamhost</a>, no meu caso, o servidor, depois de um tempo tentando estabelecer conexão, aparecia aquela indesejavel tela de erro 500, foi ai que o <a href="http://andrewsmedina.com/">Andrews</a> me deu a idéia de isntalar o python2.5, e de primeira deu tudo certo!<br /><br />bom os passos para instalar:<br /><br />Baixe o arquivo com o source do python e coloque numa pasta, no meu caso coloquei na opt do meu home, e após isso descompacte o arquivo:<br /><br /><code>cd ~<br />mkdir opt<br />wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz <br />tar xvzf Python-2.5.2.tgz<br /></code><br /><br />entre na pasta do source, e instale com os comandos abaixo:<br /><br /><code>./configure --prefix=$HOME/opt/ --enable-unicode=ucs4<br />make<br />make install</code><br /><br />após instalado, altere o .bash_profile:<br /><br /><code>vim ~/.bash_profile</code><br /><br />e insira a seguinte linha no arquivo:<br /><br /><blockquote>export PATH=$HOME/opt/bin/:$PATH</blockquote><br /><br />execute o arquivo e verifique a versão do python instalada!<br /><br /><code>source .bash_profile<br />python --version</code><br /><br />Ele irá retornar a versão correta do python no caso a 2.5.2<br /><br />Feito isso, será necessário instalar o módulo de conexão com o mysql, e agora com o python 2.5 vai se beem + fácil! :)<br /><br /><code><br />wget http://internap.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz<br />tar xvzf MySQL-python-1.2.2.tar.gz<br />cd MySQL-python-1.2.2<br />python setup.py install</code><br /><br /><br />Amanha (ou depois hehe), posto como está configurado o djando na minha conta!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-708555413684301851?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com3tag:blogger.com,1999:blog-1819324405537779447.post-55740764249030416232008-03-25T13:48:00.003-03:002008-03-25T14:05:13.562-03:00Django (e vários outros projetos) estão aceitando estudantes para desenvolver aplicações no Google Summer of CodeVocê é estudante e está interessado em desenvolver algumas melhorias ou funções novas para o framework <a href="http://www.djangoproject.com/">Django</a>? o Django é um dos projetos que o Google Summer of code está bancando!<br />Se voce se acha que tem conhecimento suficiente, submeta suas proposta! o prazo se encerra dia 31 de março, ou seja, não há muito tempo! Ah e como recompensa voce ganha 4.500 doletas e uma camiseta bonitona! :)<br /><br />algumas idéias que o pessoal sugeriu estão em: http://code.djangoproject.com/wiki/SummerOfCode2008<br /><br />e a lista de discussão: http://groups.google.com/group/django-gsoc<br /><br />se houver interesse siga este guia e faça sua aplicação: http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants<br /><br />ahh o pssoal do Plone, Zope, Grok, TurboGears e vários outros também estão aceitando participantes! veja a lista completa em: http://code.google.com/soc/turbogears/about.html<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-5574076424903041623?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com0tag:blogger.com,1999:blog-1819324405537779447.post-36688149495249912008-01-25T10:02:00.000-03:002008-01-25T10:06:20.300-03:00Recorte de imagens usando Python/Django/PILrespondendo um dúvida na lista <a href="http://groups.google.com.br/group/django-brasil">django-brasil,</a> resolvi colocar aqui também um exemplo de recorte de imagem através do django.<br /><br /><blockquote>from django.utils.httpwrappers import HttpResponse<br />from PIL import Image<br /><br />def image(request,arquivo,largura=100,altura=100):<br /><br /> im = Image.open(arquivo)<br /> imre = im.transform((largura, altura), Image.AFFINE,(1,0,0,0,1,0))<br /> <br /> response = HttpResponse(mimetype="image/png")<br /> image.save(response, "PNG")<br /> return response<br /></blockquote><br /><br />:)<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-3668814949524991?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com1tag:blogger.com,1999:blog-1819324405537779447.post-59328194222152562102008-01-23T15:20:00.000-03:002008-01-23T15:40:04.257-03:00DjangoPeopleNos últimos meses, muitos usuários aderiram ao Django e, consequentemente ao Python! isso é muito bom e fico muito feliz com isso! :). No entnado, são pouco os usuários que utilizam as listas de discussão, irc, ou coisas do tipo, simplesmente entram no site, baixam o framewor, lêem a documentação (que'é muito boa por sinal!) e começam a desenvolver!<br /><br />Então o co-criador do Django, Simon Willison e Natalie Downe, criaram o site <a href="http://djangopeople.net">djangopeople.net</a> com o objetivo de "dar uma chance" de mostrar ao o mundo quem são os usuários desse fantástico framework (pouquinho puxa-saco não? ehhe)<br /><br />Então se voce desenvolve sites em django, visite o site, e coloque mostre-se!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-5932819422215256210?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com0tag:blogger.com,1999:blog-1819324405537779447.post-73526495423136587512007-07-03T10:31:00.000-03:002007-07-14T19:23:51.241-03:00Projetos em DjangoDecidi durante o meu pequeno periodo de férias da faculdade, brincar um pouco com o <a href="http://www.djangoproject.com/">Django</a>, trabalhando com ele com *todo o seu poder*... classe de modelagem <a href="http://en.wikipedia.org/wiki/Object-Relational_Impedance_Mismatch">ORMI,</a> atc... coisa que na UCS não fazemos.... Para isso tenho dois projetos pra continuar:<br /><br />O projeto o o <a href="http://code.google.com/p/zztop/">ZZtop</a> que começou, entre os colegas do trabalho, mais pra aprender a usar o framework, é basicamente um cadastro de itens relacioados a filmes, cada usuario pode postar filmes, e compartilhar entre os mesmbro... Infelizmente morreu na praia! Vou "tentar" dar continuidade e ele, criar algo funcional pelo menos...<br /><br />Outro projeto é o da <a href="http://code.google.com/p/djmusix/">Musix</a>, seria fazer uma versão melhorada do meu trabalho de Analise e Projeto de sistema II, mas em vez de ser em JDeveloper (eu não queria!! mas como era um trabalho em grupo, não tive muita voz entre meus colegas javistas hehehe) usaria o Django...<br /><br />Os projetos estão no google Code, se alguém quiser participar no desenvolvimento da apicação, é bem vindo!!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1819324405537779447-7352649542313658751?l=blog.mdpetry.net'/></div>Marcos Daniel Petryhttp://www.blogger.com/profile/13496416580634204340marcospetry@gmail.com0