Sexta-feira, 16 de Maio de 2008

Django + mysql + cluster

A noticia é meio antiga mas como não sabia to postando aqui...
Foi criado um beckend para o django 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!

E tudo bem explicadinho como instalar, configurar e usar! :)

Sábado, 10 de Maio de 2008

jogo de damas

Pra tirar as traças do blog ehhe, acabei de acabar um trabalho da disciplina de Sistemas Distribuidos, ainda tem uns controles ptra fazer e algumas coisas pra acertar, mas tá entregável ehehhe...foi feito utiizando python o o módulo Socket. A interface gráfica tá meio tosca... mas quem kiser brincar com ele, ou até mesmo complementá-lo hehe aí vai o link
http://code.google.com/p/pydamas/

Quarta-feira, 2 de Abril de 2008

Django e Python2.5 no dreamhost - Parte 2

Bom depois de Configurado o Python, como visto no post anterior é 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!

Usei como base para esse post 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!

Configurando o site no dreamhost


bom pra começar, crie um dominio no painel de controle da Dreamhost, no meu caso criei um subdominio, mas o processo é o mesmo!

Escolha “Manage Domains” e depois “Add New Domain / Sub-Domain”
Escolha oome para seu (sub)dominio, no meu caso coloquei django.mdpetry.net
Escolha “Extra web security” e “Fast CGI Support” e submeta o formulário


Depois crie uma base de dados e uma tabela para seu projeto (não vo ficar explicando isso, mas é bem fácil de fazer! :) )

Configurando o Django


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.

dentro da pasta ~/django, baixe o source do django, através do svn utilizando o comando:
svn co http://code.djangoproject.com/svn/django/trunk/ django_src

Altere o seu .bash_profile, adicionando as linhas:
export PATH=$PATH:$HOME/django/django_src/django/bin
export PYTHONPATH=$PYTHONPATH:$HOME/django/django_src:$HOME/django/django_projects

e ative as mudanças digitando source ~/.bash_profile

agora entre no diretório django_projects e crie um novo projeto:
django-admin.py startproject myproject

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)
no meu caso criei a pasta templates e media.

á no arquivo settings.py e altere as configurações:

de banco de dados:

DATABASE_ENGINE = 'mysql' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'django_db' # Or path to database file if using sqlite3.
DATABASE_USER = 'usuario' # Not used with sqlite3.
DATABASE_PASSWORD = 'senha' # Not used with sqlite3.
DATABASE_HOST = 'djangomysql.mdpetry.net' # Set to empty string for localhost. Not used with sqlite3.


de internacionalização:
TIME_ZONE = 'America/Sao_Paulo'
LANGUAGE_CODE = 'pt-br'


de templates:
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates".
# Always use forward slashes, even on Windows.
"/home/mdpetry/django/django_projects/myproject/templates"
)


mídia:

MEDIA_ROOT = '/home/mdpetry/django/django_projects/myproject/media'
MEDIA_URL = 'http://django.mdpetry.net/media/'
ADMIN_MEDIA_PREFIX = '/admin_media/'


insira a seguinte linha no .bash_profile
export DJANGO_SETTINGS_MODULE=myproject.settings e ative novamente o arquivo.

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:
django-admin.py syncdb

instalando e configurando o FASTCGI e o mod_rewrite


vá até o subdominio criado e vaixe o script python

wget http://svn.saddi.com/py-lib/trunk/fcgi.py e altere as permissões do arquivo chmod 755 fcgi.py

crie o arquivo dispatch.fcgi
#!/home/mdpetry/opt/bin/python
import sys
sys.path += ['/home/mdpetry/django/django_src']
sys.path += ['/home/mdpetry/django/django_projects']
from fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
WSGIServer(WSGIHandler()).run()


para o mod rewrite, crie o arquivo .htaccess:
RewriteEngine On
RewriteBase /
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(admin_media/.*)$ - [L]
RewriteRule ^(dispatch\.fcgi/.*)$ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]


reinicia o python para validar as mudanças:
pkill python

Configurações finais


altere as os links dos arquivos de midia para o projeto do django:
ln -s $HOME/django/django_src/django/contrib/admin/media $HOME/django.mdpetry.net/admin_media

adicione no arquivos settings.py do seu projeto a app de adminsitração:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
)


e no arquivos urls.py, deconmente a linahs da adminsitração tbem:
(r'^admin/', include('django.contrib.admin.urls')),

reinicie o python e na pasta do projeto instale o proejto com o manage.py
pkill python
python manage.py syncdb


e... ta pronto! se voce acessar http://django.DEUDOMINIO.com/admin, deverá aparecer a tela de login da interface de adminsitração do django!

Terça-feira, 1 de Abril de 2008

Django e Python2.5 no dreamhost - Parte 1

Estava com alguns probleminhas para isntalar o Django no Dreamhost, no meu caso, o servidor, depois de um tempo tentando estabelecer conexão, aparecia aquela indesejavel tela de erro 500, foi ai que o Andrews me deu a idéia de isntalar o python2.5, e de primeira deu tudo certo!

bom os passos para instalar:

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:

cd ~
mkdir opt
wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
tar xvzf Python-2.5.2.tgz


entre na pasta do source, e instale com os comandos abaixo:

./configure --prefix=$HOME/opt/ --enable-unicode=ucs4
make
make install


após instalado, altere o .bash_profile:

vim ~/.bash_profile

e insira a seguinte linha no arquivo:

export PATH=$HOME/opt/bin/:$PATH


execute o arquivo e verifique a versão do python instalada!

source .bash_profile
python --version


Ele irá retornar a versão correta do python no caso a 2.5.2

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! :)


wget http://internap.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz
tar xvzf MySQL-python-1.2.2.tar.gz
cd MySQL-python-1.2.2
python setup.py install



Amanha (ou depois hehe), posto como está configurado o djando na minha conta!

Terça-feira, 25 de Março de 2008

Django (e vários outros projetos) estão aceitando estudantes para desenvolver aplicações no Google Summer of Code

Você é estudante e está interessado em desenvolver algumas melhorias ou funções novas para o framework Django? o Django é um dos projetos que o Google Summer of code está bancando!
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! :)

algumas idéias que o pessoal sugeriu estão em: http://code.djangoproject.com/wiki/SummerOfCode2008

e a lista de discussão: http://groups.google.com/group/django-gsoc

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

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

Terça-feira, 29 de Janeiro de 2008

Desenvolvendo para internet

Achei num blog por ai, e como to meio sem inspiração vai isso mesmo!

Sexta-feira, 25 de Janeiro de 2008

Recorte de imagens usando Python/Django/PIL

respondendo um dúvida na lista django-brasil, resolvi colocar aqui também um exemplo de recorte de imagem através do django.

from django.utils.httpwrappers import HttpResponse
from PIL import Image

def image(request,arquivo,largura=100,altura=100):

im = Image.open(arquivo)
imre = im.transform((largura, altura), Image.AFFINE,(1,0,0,0,1,0))

response = HttpResponse(mimetype="image/png")
image.save(response, "PNG")
return response


:)