As emocionantes aventuras de um sysadmin linux na procura pelo uptime perfeito!

Turbogears (ou zope, ou ruby) Behind Apache: Diminuindo o load.

Posted: janeiro 30th, 2007 | Author: coredump | Filed under: Linux e Open Source, Programação | Tags: , , ,

E então, muita gente usa frameworks como o Turbogears ou alguns menos legais como o Zope ou mesmo Ruby on Rails. Para garantir um bom serviço web, segurança e disponibilidade nada melhor que deixar essas belezas rodando atrás de um proxy Apache. Com o mod_proxy do Apache2 então, as coisas ficaram ainda mais simples.
Só que as vezes rola uma leseira meio generalizada. Como por exemplo deixar o servidor do framework servir conteúdo estático. Por mais que os servidores sejam confiáveis, melhor deixar para eles a tarefa mais especializada e deixar o trabalho pesado de imagens e javascript (ainda mais nestas épocas de javascripts gigantes) para nosso amigo Apache. Coisa simples na configuração, exemplo abaixo para turbogears:

Alias /static/ /usr/lib/python2.4/site-packages/app/static/
Alias /images/ /usr/lib/python2.4/site-packages/app/static/images/

ProxyPass /static !
ProxyPass /images !

ProxyPass http://127.0.0.1:8080/
ProxyPassReverse http://127.0.0.1:8080/
RequestHeader set CP-Location /
RewriteRule ^(.*) http://localhost:8080/$1 [P]

Basicamente, mandamos os requests de imagens e conteúdo estático direto pelo apache, sem precisar passar pela aplicação rodando no localhost. Ainda tenho de testar isso em ambiente real, mas pela minha experiência, só tem a melhorar a performance de tudo.

intel!

PS: Tive de editar o post umas 3 vezes, mas o boo-box tá mostrando os resultados direitinho. O que é o boo-box? São essas palavrinhas destacadas. Você pode saber mais no site deles. Muito massa a idéia. Eu to no beta testing com a Amazon e tá sendo bem interessante.

tags: turbogears, apache, proxy, boo-box

No Comments »

Trac Hacks Indispensáveis

Posted: dezembro 1st, 2006 | Author: coredump | Filed under: Linux e Open Source, Programação | Tags: , ,

Então, eu uso bastante o trac como gerenciador de projetos. Além disso ele é uma ótima ferramenta para integrar wiki/svn/controle de tempo, de uma forma simples e limpa.
Além disso, é feito em Python e usa uma estrutura de plugins muito legalzinha, depois de configurar um Trac/SVN perfeitamente, tenho pelo menos 3 destes plugins que eu achei indispensáveis:

WebAdmin: Este é básico. Administrar o Trac sem ter de logar na interface shell é muito mais prático, seguro e hosteável. O companheiro dele, AccountManager, também é bem legal mas eu não cheguei a usar porque nenhum dos meus sites usando Trac permite/necessita cadastro de usuários e coisas assim.

PageToPDF: O nome já diz tudo. Exporte as páginas do Wiki em PDF além do formato normal (texto). Só isso já é uma mão na roda no quesito documentação.

Acronyms: Usa uma tabela criada em uma página especial do próprio wiki para mostrar aquelas explicações sobre abreviaturas quando se passa o mouse em cima. Além disso suporta links dinâmicos, muito legalzinha.

DoxygenPlugin: Para o caso de projetos legados ou mesmo projetos atuais que usam documentação no formato Doxygen este plugin é fantástico. Ele não só disponibiliza o conteúdo HTML do Doxygen no Trac como cria um namespace wiki [doxygen:] que você pode referenciar nas páginas, linkando diretamente do Wiki para a documentação gerada do código. Pena que o suporte a Python do Doxygen é meio fraquinho :(

Mas então, dêem sempre uma olhada no Trac-hacks, tem muita coisa legal lá e algumas bem específicas que mesmo não indo para a distribuição principal podem ajudar bastante, principalmente nas ferramentas de integração com outros sistemas.

intel

Technorati Tags: , ,

1 Comment »

Funcionalidades e Prazos

Posted: dezembro 1st, 2006 | Author: coredump | Filed under: Programação | Tags: ,

Então…

Vale mais atender ao prazo ou colocar todas as funcionalidades? Acho que depende mais do foco do projeto na verdade.
Um dos meus projetos pessoais tinha a deadline para hoje, e eu consegui colocar todas as funcionalidades que eu queria nele a tempo. Só que durante os últimos 3 dias eu notei que as funcionalidades que eu tinha colocado não eram corretas, a aplicação simplesmente não iria funcionar a contento daquela forma. Fazer o que? Back to the drawing board, ao que parece.
Por enquanto, o closed alpha test que devia começar hoje vai ser arrastado para alguns dias, enquanto eu penso em como resolver uns problemas de concepção.
A verdade é que a definição de prazos para desenvolvimento de software é bem relativa. Mesmo eu tendo feito quase tudo pelo manual, incluindo casos de uso e diagramas, a concepção não foi pensada direito. Também, para uma idéia que eu tive enquanto tomava banho… :)
Agora é pensar direitinho como resolver os entraves. A versão que era para esta semana vai ganhar mais uma semana, acho.

intel

Technorati Tags:

1 Comment »

Turbogears, Mysql and UTF. Advice Needed!

Posted: novembro 16th, 2006 | Author: coredump | Filed under: Programação | Tags: , ,

So, I have this little problem…

  • For design reasons, I must use SQLObject. SQLAlchemy is cool but managing all my relations ‘by hand’ is a very time consuming task and TurboGears implementation of ActiveMapper is unstable, at best.
  • Turboentity was a good replacement using SQLA, but the project was dropped and merged with ActiveMapper, they’re all working on a new ORM layer for SQLA but right now, there’s not even an unstable one… ITOH, SO is the TG 1.0 official db layer, so it’s better supported.
  • I host my turbogears projects on rimuhosting, on a Virtual Machine. The thing is, memory is a little tight and running apache/php/mysql for wordpress consumes most of it. My Trac/SVN system use little resources.
  • I’ll finish in some weeks a TG app that, I hope, will attract a considerable ammount of users. I’m developing using a database in SQLite, but there’s no way to use that as a production db to something that can grow fast. And then my problems start…

MySQL/SQLObject UTF support seems to be erratic, I have run into problems before with this combination and on the TG group you can see any people complaining about a lot of problems with utf-8 and how mysql is erratic about it. My other choice is to use Postgres, but I don’t think that would fit on my brain-limited hosting machine, and removing MySQL is a problem because WordPress uses it (my blog…) and has no PGsql port avaiable.

So, anyone uses MySQL + SO or UTF and got some tips on the matter? How to make it work or at least do not be so buggy? I’ll be handling data from a lot of languages and I’ll just hate to spend time and time trying to debug some query that doesn’t work because of utf errors…

Technorati Tags: , , ,

2 Comments »

Kindness of Strangers

Posted: novembro 11th, 2006 | Author: coredump | Filed under: Linux e Open Source, Programação | Tags: ,

Tá bom… Vocês ficaram com dó e não me falaram que todo trabalho que eu tive aqui foi a toa porque o TurboGears já inclui uma função que serve pra mesma coisa e faz bem mais bem feito…

:\

intel

Technorati Tags:

No Comments »