Páginas

Showing posts with label turbogears. Show all posts
Showing posts with label turbogears. Show all posts

Friday, December 5, 2008

Instalando e usando o Capistrano no Ubuntu Linux - Parte 2

Depois de instalarmos o Capistrano hoje pela manhã [1], chegou a hora de usar!

No momento não estamos desenvolvendo em Rails, o framework que tornaria o uso do Capistrano natural. Porém, o Capistrano não é limitado a framework ou linguagem.
Então, vamos configurar o deploy automático de uma aplicação web em TurboGears / Python.

Primeiro criamos um projeto TG básico:
$ tg-admin quickstart
Enter project name: lifeatmymind
Enter package name [lifeatmymind]:
Do you need Identity (usernames/passwords) in this project? [no]
...
$ cd lifeatmymind/
Criamos o diretório config só para termos um dos arquivos que o Capistrano irá criar:
$ mkdir config
E rodamos o comando para preparar o Capistrano para fazer deploy da aplicação: capify.
$ capify .
[add] writing `./Capfile'
[add] writing `./config/deploy.rb'
[done] capified!

Infelizmente tivemos que interromper nossa tarde por alguns problemas.
Ainda faltam alguns passos para efetivamente colocarmos o Capistrano em ação:
  • Configurar nosso repositório SVN
  • Configurar o apache2 (ou instalar o nginx)
  • Configurar o Capistrano
  • Ver se tudo funciona :D
Por hora, existe um tutorial oficial que pode dar uma noção do que fazer [2].

[1] http://lifeatmymind.blogspot.com/2008/12/instalando-e-usando-o-capistrano-no.html
[2] http://www.capify.org/getting-started/from-the-beginning

Wednesday, November 26, 2008

Pyndorama

Meu projeto de iniciação científica no Labase começou através do Pyndorama, um software para a produção de aventuras textuais.
Felizmente o Labase sempre me proporcionou muito mais para fazer, e com isso o Pyndorama não recebeu toda a atenção que merecia (desculpa Lívia!).

Ainda assim, aprendi muito com o Pyndo. Padrões de projeto, testes, história dos jogos antigos! Ah, ele foi o primeiro projeto TurboGears com o qual tive contato.

Como parte do processo de iniciação científica, precisamos apresentar a sociedade o que foi feito no último ano. Então em poucos minutos mostrei algumas das principais mudanças que implementei no Pyndorama, e o que vislumbramos fazer no futuro.

Demorei para publicar esse post por causa das várias provas. A XXX Jornada Giulio Massarani de Iniciação Científica, Artística e Cultural foi há vinte dias.

Como se não bastasse, utilizei o Pyndorama para meu trabalho de fim de curso da cadeira de Computador e Sociedade, junto ao Gabriel Mendonça.
Nós entrevistamos o prof. Carlo Emmanoel e a mestranda Lívia Monnerat, ambos do Labase/NCE/UFRJ, para coletar informação sobre as origens do projeto.

Só a conversa com o Carlo levou mais de duas horas! E com isso reunimos muita coisa sobre a história NCE e do Carlo. Tanto que agora o Carlo me emprestou o livro "Construindo o Futuro Através da Educação - Do Fortran à Internet" de Tercio Pacitti (2003), que conta muito dos primórdios dos computadores e do papel do NCE e outras instituições. Mais leitura para as férias!

Resolvi publicar o documento com o trabalho, que contém também uma "transcrição despreocupada" das entrevistas com o Carlo e com a Lívia.

Os slides das apresentações deste mês e o link para o texto na na íntegra encontram-se abaixo:

2008/11/06 - Jornada de Iniciação Científica da UFRJ
Pyndorama
View SlideShare presentation or Upload your own. (tags: construcionism pygtk)

2008/11/25 - Trabalho do curso de Computador e Sociedade / UFRJ (slides)
Pyndorama
View SlideShare presentation or Upload your own. (tags: interactive_fiction nce)


2008/11/25 - Trabalho do curso de Computador e Sociedade / UFRJ (texto)
http://docs.google.com/Doc?id=...
Pyndorama
1. Introdução
Entendemos que para contar uma história que é fruto da imbricação de diversos aspectos, sejam estes técnicos, sociais, políticos, de mercado, entre outros, é preciso traçar os delineamentos de cada um deles e entender o funcionamento do sistema em sua forma integral. (...)

Friday, November 7, 2008

Palestra na Python Campus

Ontem fiz uma apresentação no evento Python Campus, realizado no campus Candelária da Universidade Gama Filho.
Claro, não seria nada sem a espetacular performance do Neno Albernaz. Juntos mostramos o desenvolvimento de aplicações web em Python, utilizando o TurboGears, por pessoas com deficiência visual, com auxílio do sistema DOSVOX.

Já faz algum tempo que vejo o Neno usar o DOSVOX, e sempre fiquei impressionado com a alta produtividade. Essa semana instalei na minha máquina e já fiquei viciado, mesmo possuindo minhas capacidades visuais.
Atualmente o DOSVOX é implementado em Pascal, porém o projeto tende a ser reimplementado em Python e se tornar multiplataforma.
Espero poder contribuir com código!

A palestra foi empolgante. O público se interessou bastante pelo DOSVOX, e o TurboGears ficou ofuscado com razão.
Gargalhadas foram ouvidas quando mostramos alguns dos joguinhos presentes no DOSVOX, a maioria com um toque de humor.
Espero que possamos apresentar mais palestras juntos no futuro.

Seguem os slides no meu slideshare.net:

Desenvolvimento Web com TurboGears e DOSVOX
View SlideShare presentation or Upload your own. (tags: dosvox turbogears)

Tuesday, August 26, 2008

Django Templates + Dreamweaver

Resolvi fazer uma rápida pesquisa para saber o que é possível fazer para editar Templates do Django num editor como o Dreamweaver, depois que uma amiga expressou a vontade de usar tal ferramenta para criar o layout de um site.

Para começar, por filosofia, a linguagem de templates do Django não tenta ser amigável a editores WYSIWYG, como o Dreamweaver:

http://www.djangoproject.com/documentation/design_philosophies/

Assume designer competence

The template system shouldn’t be designed so that templates necessarily are displayed nicely in WYSIWYG editors such as Dreamweaver. That is too severe of a limitation and wouldn’t allow the syntax to be as nice as it is. Django expects template authors are comfortable editing HTML directly.


No meu caso, eu assumo competência para usar um editor de textos normal, ou usar o Dreamweaver em modo Code View (pelas funcionalidades do editor, como code-completion, code-folding, referência à mão, busca e substituição, etc), porém, de fato, nem todos os desenvolvedores trabalham assim.

Li o post do Mark Ramm sobre "user-friendly templates", e confirmei que temos aí uma grande questão de opinião. Uns defendendo linguagens que utilizam atributos em tags, como estou acostumado a usar no TurboGears, e outros mostrando vantagens notadamente no sistema do Django, com marcação própria. Eu estou aprendendo a gostar da abordagem do Django, pela quantidade reduzida de código que preciso escrever. Tudo bem que os templates em Kid geralmente são feitos copiando um já existente para garantir o código repetitivo de doctypes, xml namespaces, e resto da estrutura básica, mas a simplicidade de escrever arquivos pequenos, só com aquilo que realmente interessa, é tentador!

A propósito, a breve discussão do Mark com o Simon Willison sobre como eles estão usando AJAX me trouxe várias idéias! Já faz algum tempo que não brinco com AJAX pra valer, entretanto recentemente dei uma opinada no código de uma amiga que está desenvolvendo uma aplicação de redes sociais, e agora tenho novidades para acrescentar.

Ainda não tenho experiência suficiente no Django para saber se na hora de manter o código essa simplificação trará alguma dificuldade. A princípio, creio que não, já que geralmente me encontro usando o Firebug contra páginas servidas localmente (nunca abri um arquivo .kid no Firefox para 'debugar' e não consigo imaginar alguém fazendo isso). Além do mais, o Kid também tem herança, e com isso os arquivos que manipulamos não são exatamente o que teremos de output na tela, pensando na visualização do layout com CSS, por exemplo.

Por fim, o Beshr Kayali desenvolveu uma extensão para o Dreamweaver, DjangoExt, que promete facilitar a vida. Eu não tive paciência de me cadastrar no site da Adobe só para baixar essa extensão. Se alguém tiver o arquivo, por favor entre em contato.

Thursday, August 7, 2008

Python ou Ruby? Turbogears x Django x Rails

Bem, não sou o primeiro a fazer esse questionamento. Comecei a procurar a opinião das pessoas, notadamente em blogs, e a olhar os sites de tutorias de cada opção para formar a minha.

Faz um ano que venho desenvolvendo aplicações web usando o Turbogears, que considero muito legal, comparado a coisas como Java para web, PHP, e qualquer outra coisa mais "burocrática".
O TG me permite trabalhar de forma simples e that just works.

Lembro que antes de usar o TG, depois de algum tempo me divertindo com Python, eu queria experimentar ele ou o Django, que eram os frameworks para Python falados na época. Claro, foi também quando fui ver o que era o tal do Zope (nome que vi no dia que resolvi aprender Python...).

Ultimamente o Ruby on Rails tem cada vez mais "batido à porta", e não falta vontade de cair dentro e desenvolver com ele. Até agora eu só vi screencasts, li bastante, ouvi podcasts e mexi em aplicações prontas.

Mas afinal, porquê todo esse papo furado? Hoje temos mais um projeto de desenvolvimento web. Um projeto que deve durar em torno de dois anos no "rítmo universitário". Para ele, a equipe parou pra pensar no que usaríamos. Essa é uma boa hora para ver algo diferente do Turbogears, conhecer novos mundos... mas, o quão novos? Continuar no Python ou pular pro Ruby?
Eu adoro Python, sim, amo mesmo. Deixamos as outras opções de lado e vamos nos decidir entre TG, Django e RoR.

Nos próximos posts vou relatar minha percepção da relação entre Django x TG e RoR x TG.
Como não tenho experiência prática nos frameworks da esquerda, comentários são muito bem vindos! O que pode parecer bom num primeiro momento, pode esconder fraquezas a longo prazo.