Sep 28, 2010


Django e Ruby on Rails

Desde o início do ano tenho estudado Python e Django, inclusive, mês passado comprei um livro chamado Aprendendo Python da editora O’Reilly, que é excelente e recomendo.

Aprendi diversas coisas, uma dessas, o conceito de metaprogramação. Enfim, depois de vários problemas que tive usando o Django — alguns resolvidos e outros não — a partir dessa experiência de seis meses, posso compartilhar algumas conclusões:

  • O módulo de autenticação força o desenvolvedor a seguir determinadas práticas, e isso promove a inflexibilidade, por exemplo, para remover alguns atributos do modelo User ou utilizar o email como condição de autenticação é necessário duplicar um bucado de código;
  • Atualmente as views não possuem um padrão para organização e nomenclatura;
  • Configurações de ambientes não são geradas automaticamente pelo esqueleto do projeto;
  • O módulo de serialização não foi desenvolvido com a filosofia RESTful em mente, o que significa, o suporte para serialização é incompleto.

Estes são os quatro pontos crucias que podem ser melhorados no Django. Eric Florenzano deu uma palestra no DjangoConf intitulada Why Django Sucks, and How We Can Fix It, assitam.

O que não pode ser alterado com linha de código é a sinergia e o espírito da comunidade, vamos falar um pouco de Ruby e Rails agora.

É impressionante a quantidade de desenvolvedores, e bons profissionais, que fazem parte do ecossistema do Ruby comparado ao Python. Sem contar que o GitHub é praticamente dominado por rubistas.

Estou dedicando boa parte do meu tempo para aprender Ruby e Rails agora, essa linguagem é simplesmente maravilhosa.

Ruby on Rails foi uma extração de um projeto chamado Basecamp, gerenciador de projetos, criado por David Heinemeir Hansson. Foi lançado em julho de 2004.

Django foi criado a partir de outros requisitos e dentro de um ambiente jornalístico. Poucos meses depois do lançamento do Rails, Django é anunciado para o mundo.

Novos desafios, novos aprendizados pela frente.

Sep 17, 2010

A bondade é uma via de mão dupla.
Sep 12, 2010

Sep 8, 2010


Atualização: Django em hospedagem compartilhada

Alguns meses atrás publiquei um screencast ensinando como atualizar o Django na KingHost, empresa brasileira de hospedagem. E felizmente, descobri uma solução mais simples pra esse problema.

Antes de ir direto ao código, entenda os porquês dessa história.

Qual era o problema mesmo?

O trecho de código que eu havia disponibilizado (aqui) tem uma falha: não identifica os python eggs instalados automaticamente. Ou seja, era preciso repetir várias vezes o comando sys.path.append especificando o caminho de cada módulo usado pelo projeto. Bem cansativo isso, né?

E a solução?

Antes, entenda a peça chave disso tudo.

O módulo site é automaticamente importado durante a inicialização do Python. Esse módulo serve apenas para adicionar caminhos específicos para a lista de pesquisa de módulos, estou falando especificamente do sys.path.

Este módulo possui alguns métodos que são uma mão na roda. E um deles é método addsitedir, que adiciona o próprio diretório (passado como argumento) na variável path e processa os arquivos com extensão pth.

Recomendo que leia a documentação do módulo site para mais informações.

Veja a solução do problema.

Aug 24, 2010


Desabafo sobre o Django

Ultimamente tenho usado bastante o Django, framework para desenvolvimento de aplicações web que utiliza a linguagem Python.

O problema é que existe algumas funcionalidades do Rails muito importantes que não são nativas do Django, como as migrações e a possibilidade de customizar elementos criados por funções do engine de template. Sem contar o suporte RESTful precário, ou quase nenhum.

O Rails também tem suas desvantagens, principalmente relacionado aos aspectos comuns de uma aplicação web, por exemplo, autenticação e permissões. O Django possue suporte nativo dessas funcionalidades, que são disponibilizados em módulos separados, ficando ao critério do desenvolvedor em usá-las ou não.

A verdade é que eu ainda estou em cima do muro em relação a esta decisão.

Rails ou Django? Eis a questão (a não ser que eu encontre uma solução para os problemas citados sobre o Django).

Jul 12, 2010

Jun 24, 2010


Introdução ao Shell Script

Shell Script é uma linguagem de programação interpretada, com diferente dialetos dependendo do interpretador de comandos utilizados.

O interpretador de comandos mais popular é o bash, usado na maioria das distribuições GNU/Linux.

Ou seja, um script é um conjunto de comandos que são executados pelo interpretador. 

Essa linguagem é bastante utilizada para automatizar tarefas que serão executadas mais de uma vez.

O Shell Script possui algumas características que são comuns em outras linguagens como:

  • Estruturas de decisão
  • Estruturas de repetição 
  • Funções e argumentos
  • Definições de variáveis

Excelente referência para estudos: http://aurelio.net/shell/

Jun 7, 2010


Questions to ask your team

  • Why are we doing this?
  • What problem are we solving?
  • Is this actually useful?
  • Are we adding value?
  • Will this change behaviour?
  • Is there an easier way?

Mar 28, 2010

Do something, now.
Mar 27, 2010


jQTouch, breve introdução

Estive experimentando o jQTouch, plugin para desenvolvimento de aplicações para iPhone ou navegadores baseados no WebKit, e posso dizer que é excelente.

O jQTouch permite que meros desenvolvedores web como eu, criem aplicações mobile usando tecnologias tradicionais como HTML, CSS e JavaScript.

Já existem aplicações sendo vendidas na App Store que usam o jQTouch, mas existe um porém.

Há uma regra em que a Apple somente aceita aplicações que foram desenvolvidas usando o iPhone SDK, mas existe uma ferramenta chamada PhoneGap que permite você distribuir sua aplicação em um formato aceitável pela Apple.

O PhoneGap não é apenas uma ferramenta para distribuir aplicações que usam tecnologias tradicionais da web, é também uma ponte que traz algumas funcionalidades nativas do iPhone para o JavaScript. Além disso, o PhoneGap possui suporte para o Android, Palm, Symbian e BlackBerry.

Eu realmente estou convencido que para desenvolver aplicações nativas para o iPhone (ou outros aparelhos modernos) precisa ser algo muito específico, e que realmente faça uso das funcionalidades que o dispositivo proporciona.

Existem grandes oportunidades no mercado móvel, basta olharmos com atenção.

Navigate
About