Bugs que me deixaram ocupado este mês

Atualmente estou lendo 2 livros, desenvolvendo um “projeto de estimação”, e estudando algumas coisas menores em paralelo. Mas não é só isso que tem roubado meu tempo, e minhas noites de sono. Encontrei alguns bugs em tarefas que deveriam ser triviais. Estou compartilhando na esperança de ajudar outras pessoas a economizar o tempo que gastei.

1- Eclipse Ganymede + PDT 2 + Linux 64 bits
O eclipse não é o auge da produtividade, mas é minha ferramenta preferida para fazer código. A grande vantagem do eclipse é sua extensibilidade. É possível encontrar plugins para TUDO, embora eu ache que muitos plugins comprometem muito sua estabilidade (assim como acontece com o firefox).

Apesar de ser muito fácil de instalar os plugins, não consegui de jeito nenhum instalar o PDT 2 no meu eclipse ganymede que está instalado no meu notebook com kubuntu 9.04 x86_64. Muito google depois, encontrei a salvação neste post

2 – mod_rewrite no WordPress MU
Apesar da instalação no servidor de desenvolvimento (meu computador) estar funcionado perfeitamente, minha instalação do WPMU no servidor de produção não estava exibindo as imagens corretamente, encaminhando a requisição para um erro 404. Recorri ao google e descobri que isto aconteceu com um usuário do forum do WPMU. O problema é que este usuário decidiu simplesmente trocar de servidor!! Google de novo, leitura da seção do mod_rewrite no manual do apache, e finalmente encontrei uma solução que coloquei no forum (em resposta ao usuário que trocou de servidor).

Ainda estou monitorando esta resolução, não sei se pode causar outros bugs no futuro. Até o final desta edição (sempre quis dizer isto) não tive nenhum problema. Ainda assim, publico aqui, se ocorrer algo.

A parte boa de tudo isso é que estudei algumas coisas que, com certeza, serão usadas no futuro. Só espero não ter outra sessão de aprendizado forçado tão cedo, afinal, preciso produzir alguma coisa!

Atualização: A correção que eu coloquei no forum do WPMU funcionou apenas para o site principal, nos sub-domínios o erro persistiu. Uma nova correção, com explicação, está neste link.

Múltiplos blogs no seu servidor com WordPress MU

Nas últimas semanas estive trabalhando no wordpress, wordpress MU para ser mais específico. WordPress é o popular gerenciador de conteúdo para blogs. WordPress MU é um projeto, de código aberto também, feito para possibilitar o gerenciamento de diversos blogs utilizando wordpress, a partir de apenas uma intalação (com resultado similar ao wordpress.com).

Se você não conhece o MU, faça uma visita ao site oficial. Segundo o próprio site, 95-99% do código do projeto é o próprio código do wordpress. Além disso, suporta a maioria dos temas, plugins, traduções e é usado em grandes projetos como os Blogs do Le Monde, o Edublogs e até o Blig (Hospedagem de blogs do IG).

O desenvolvimento para o MU possui o mesmo nível de dificuldade do WordPress. Isto é, se você já está acostumado a desenvolver plugins ou temas para o wordpress, tem muito pouco o que aprender. Apesar da menor quantidade, o MU possui o mesmo bom padrão de documentação.

Colocar o MU pra funcionar não é tão fácil quanto colocar o WordPress. Ele possibilita a instalação criando blogs como subdomínios ou subdiretórios. Se você não tem conhecimento ou acesso às configurações do seu servidor, recomendo que você use os subdiretórios.

Se você ficou com vontade de colocar a mão na massa com o MU, considere duas outras boas fontes de informações a respeito. A primeira delas é o WPMU Dev, que além de temas, plugins e informações, vende suporte, hospedagem e personalização. A segunda é o blog WPMU Tutorials, que fornece informações sobre plugins, configurações e o estágio de desenvolvimento do projeto. Inclusive, neste último, existe um e-book para te ajudar a fazer a instalação no seu servidor.

Estou desenvolvendo alguns plugins para o MU, se ficarem bons o suficiente para poderem ser usados por outrem, publico aqui no blog. A versão 2.7 acabou de ser lançada. É uma boa oportunidade para experimentar o MU, na minha opinião, este projeto tem futuro.

Pare! Você está reinventando a roda

Um dos conselhos que eu mais ouço, talvez por ser um o mais difíceis de seguir, é: “Não reinvente a roda”. Ou seja, não tente refazer aquilo que já existe e funciona bem. Eu imaginava que já havia superado completamente minhas tendências de reinventar a roda, mas não é tão fácil assim.

Nesta última semana estive desenvolvendo um site simples. Como me passaram o layout pronto, só precisava fazer o CSS, separar as imagens, montar o HTML, etc. Não era um layout com uma estrutura convencional (cabeçalho, rodapé e uma ou duas colunas no corpo). Pra minha surpresa, comecei a apanhar um pouco do CSS, o que me deixou um tanto frustrado.

Quem já montou algum layout em CSS sabe que ter algumas estruturas básicas já montadas ajuda muito, e era exatamente o que eu precisava. Me lembrei do YUI e de um projeto no meu computador que fazia uso dele. Após estudar um pouco o código e a Y!DN consegui escrever a folha de estilo utilizando 25% do tempo que havia dedicado até então.

Depois desta história, concluo 3 coisas:

1 – Temos sempre que ficar de olho na nossa “caixa de ferramentas”
Quando eu trabalhava mais frequentemente com CSS, era mais fácil criar estas folhas de estilo. Ainda assim, dificilmente começava uma delas do zero, sempre tinha à disposição referências e ajuda dos colegas de trabalho. Já sabia da existência de YUI antes de começar este projeto, mas ignorei porque pensava que poderia fazer o projeto com as minhas próprias ferramentas.

2 – Não tenha medo de testar novas ferramentas (mesmo que seja pra falar que ela não funciona)
Já contei a história de como demorei pra aprender Python no post anterior, aquela história demonstra como deixar de conhecer uma ferramenta nova pode ser ruim. A pouco tempo atrás aconteceu a mesma coisa. Comecei a aprender CakePHP porque não queria aprender Ruby on Rails, hoje percebo que isto não faz sentido. Ruby on Rails é um framework que está ficando cada vez mais famoso pela sua produtividade, não faz sentido deixar de experimentar. Se você realmente pensa que Ruby on Rails é somente um hype que vai passar, aprenda e depois fale o que quiser! Não estou falando mal do CakePHP, é um excelente Framework, foi ótimo ter aprendido. A questão é que me interessei por ele pelos motivos errados.

3 – Aprenda como as coisas funcionam. Na hora certa.
Outro motivo para que as pessoas não utilizarem certas ferramentas e fazerem as suas próprias do zero, é querer aprender como funciona. O mais interessante disso, é que quando você fica tentando fazer a sua própria ferramenta do zero, na maioria das vezes, aprende como as coisas NÃO funcionam. Se você quiser aprender como as coisas funcionam, comece a utilizar as ferramentas prontas, depois leia documentações, livros, códigos-fonte, blogs e o máximo de material do pessoal que fez. Imagine que eu quero aprender sobre sistemas operacionais modernos e apenas sei programar em C, se eu começar um sistema operacional do zero sem ajuda e sem ler o material que existe sobre o assunto vou fazer um SO melhor do que os que existem no mercado?

Vou tentar, daqui pra frente, fazer uma rápida pesquisa a respeito das tecnologias que pretendo utilizar, talvez isto faça com que eu reinvente menos. Ainda assim, a maioria das tecnologias que realmente valeram a pena para mim, fiquei sabendo através de referências de outros profissionais. Confie nos seus amigos, desconfie de você mesmo.

Livros para ler em 2009

Ao ler o post no blog empirical empire com as dicas para ler mais livros por ano, comecei a aplicar alguns dos conselhos listados. Graças a aquele post, e ao meu gosto pela leitura, passei a me organizar melhor e tirar mais proveito dos estudos. Sendo assim, já listei alguns livros que pretendo ler em 2009. São eles os seguintes:

Programming Collective Inteligence: Building Smart Web 2.0 Applications

Li alguns capítulos deste livro, em 2008, porque fazia parte da bibliografia do curso de Inteligência Artificial na faculdade. Fiquei impressionado de ver que aplicações que parecem simples (folksonomia, por exemplo) são completamente baseadas em inteligência artificial.

Programming Python
Em 2006 alguns colegas de serviço começaram a falar para mim sobre Python, não dei muita importância. Hoje estou correndo atrás do tempo perdido. Programming Python é um livro com bastante conteúdo escrito por quem realmente entende do assunto. O livro tem mais de 1200 páginas, ou seja, dá pra se divertir bastante!

Building Scalable Web Sites: Building, scaling, and optimizing the next generation of web applications
Trabalhei em um portal que recebe milhões de visitantes únicos por mês. Neste período, aprendi que o ideal é que o software seja planejado para ser escalável desde o início. Embora eu nunca tenha folheado o livro, tomando por base as avaliações da amazon, parece ser uma leitura excelente.

O Restaurante no Fim do Universo
Nem só de TI vive um homem. Em 2008 li o fantástico O guia do mochileiro das galáxias e agora preciso dar continuidade na série. Aliás, o guia do mochileiro das galáxias e Os mercadores da noite foram os melhores livros que li em 2008.

Com certeza não vou me limitar a ler apenas os livros descritos acima, mas com certeza estarei com eles em mãos em 2009. De qualquer forma, indicações de boas leituras são sempre bem vindas, até porque, nunca se sabe o qual a novidade que pode surgir no decorrer do ano.