Meu ambiente de trabalho

Antes tarde do que nunca, vou adicionar mais um elo na “corrente do bem” criada pelo Anderson Casimiro a qual fui convidado pelo Jair Henrique. A brincadeira consiste em descrever as ferramentas do dia-a-dia e as regras são:

  1. Escreva sobre 7 itens de seu ambiente de trabalho – fale sobre qualquer ponto que quiser;
  2. Indique de 3 a 5 pessoas para que possivelmente façam um artigo sobre seu ambiente.

Sendo assim, elas são:

1. Shell

Não consigo me imaginar trabalhando sem a ajuda do terminal. É chover no molhado dizer do que ele é capaz. Mas, para mim, é o básico para qualquer programador, independente de plataforma;

2. Firefox & Chrome

Como programador web, é essencial ter um navegador e ferramentas de debug (como o firebug e chrome developer tools). Apesar de eu preferir o Chrome por sua interface e performance, o Firefox é muito melhor para fazer debug. Não consigo me desfazer de nenhum dos dois, eles sempre estão em dupla no meu computador;

3. (G)Vim

Atualmente, meu editor preferido. O Vim é excelente por ser tão robusto quanto você quiser que ele seja. Apesar de ser complicado no início, o esforço investido se justifica bem rápido;

4. Git

Eu me sentia satisfeito usando o SVN (talvez porque meu primeiro gerenciador de versão foi o Visual SourceSafe). Mas, o Git e o conceito de controle de versão distribuído conseguiram me surpreender e conquistar. Já faz mais de 1 ano que o adotei e ainda estou aprendendo e me aprimorando. Ainda quero experimentar o Mercurial, mas recomendo o Git (e GitHub) para todos;

5. VirtualBox

Não dá para garantir que seu aplicativo web seja funcional (e bonito) em múltiplos browsers sem testar nos navegadores que você pretende suportar. Como, infelizmente, não existem versões para linux de alguns dos browsers mais usados no mercado (IE7+, Safari), a única solução viável é manter um Windows virtualizado. Provavelmente, seus concorrentes (como VMWare) possuem recursos mais atraentes para usuários avançados. Como preciso apenas de uma forma rápida e simples de rodar os SO’s, o VirtualBox cumpre com louvor;

6. Meld

O Git mescla automaticamente as alterações entre branches nos poupando de muita dor de cabeça. Mesmo assim, algumas vezes é necessário um humano decidir o que fica e o que sai. Quando as diferenças são pequenas, é fácil resolver com um editor de texto. Em casos mais complicados, o Meld é um alívio;

7. Música (Não, eu não estou trapaceando)

Música é um elemento que me ajuda muito enquanto estou programando. Não dá para escutar música (sem incomodar todos ao redor) enquanto se faz pair programming, então esta dica só vale para sessões solo. Arranjos instrumentais costumam funcionar melhor comigo. Minha dica é a trilha sonora de The Matrix Revolutions, destaque para Neodämmerung.

Seguindo as regras do jogo, convido a participar:

  1. Daniel Cassiano
  2. Eduardo Maçan
  3. Felipe Plets
Anúncios

Apresentando: Plugin WP Multisite XML-RPC

Já faz um tempo que sou usuário de WordPress e desenvolvo soluções na empresa em que trabalho com ele. Minha imaginação de programador viaja com as possibilidades de plugins possíveis através de sua API. Já tive várias ideias, que até comecei a desenvolver, e depois descobri que já estavam disponíveis no diretório de plugins (que bom!). Este plugin é muito especial para mim. É o primeiro, que envio para o diretório do wordpress.org, e nasceu de uma necessidade real.

O WordPress possibilita que você administre seu blog remotamente através de sua interface XML-RPC. No entanto, esta API cobre apenas as tarefas triviais de um blog (escrever artigos, responder comentários, etc). Com o lançamento do WordPress 3.0, não existe mais WordPress MU. Ou seja, se você tem um blog com a versão 3.0, pode transformá-lo em uma rede.

Com o plugin Multisite XML-RPC você pode fazer remotamente algumas das novas tarefas administrativas de uma rede de blog. Por enquanto, as tarefas são:

Meu objetivo é expandir estas funções assim que forem necessárias (Se você sentiu falta de algo, por favor, escreva nos comentários). Com este plugin, já é possível fazer a integração da administração de sites do WordPress em outros sistemas (Web, desktop e celulares).

Faça o download em: http://wordpress.org/extend/plugins/multisite-xml-rpc/

Este plugin ainda tem muito o que melhorar e pretendo ainda investir tempo o melhorando. Se você quiser ajudar, faça um fork no github ou relate um bug. Feedback de qualquer tipo é sempre bem vindo.

Wildcard DNS no WHM/cPanel [Atualizado]

Wildcard DNS (DNS curinga, tradução livre) é uma forma de poder manipular subdomíos (ou domínios, por que não?) de forma dinâmica.  Ou melhor, segundo a wikipédia, é um registro em uma zona DNS que irá responder por nomes de domínios que não existem. Este é o método usado pelo wordpress-mu para criar novos blogs em subdomínios sem alterar a configuração do apache. Você pode ver isto em ação na página do wordpress.com, blogger ou o antigo site foipreso.com (lembrava deste?).

Se você tem acesso às configurações de um servidor DNS como o BIND, pode adicionar uma entrada wildcard em seu domínio — Como explicado no post do Matt Mullenweg.  Caso contrário, se você utiliza os seviços de uma empresa de hospedagem que disponibiliza o cPanel, acesse o cPanel de sua conta, clique na opção “subdomínios” em seu painel e adicione um novo subdomínio com valor “*”. Ou seja, o endereço completo será: *.seudominio.com.

cPanel-X_1245763031383

O caminho (valor em document root) que você configurar para seu subdomínio irá tratar suas requisições com o wildcard. Para testar, crie um arquivo index.php (se estiver usando PHP no seu servidor) no document root do subdomínio criado, com o seguinte conteúdo:

<?php
print_r($_SERVER);

Digite no seu browser algo como: umnomequalquer.seudominio.com. Dentre os resultados, você verá que a chave SERVER_NAME terá o valor completo do endereço que você digitou. Se tudo deu certo, seu subdomínio está pronto para usar. Com ele você pode apresentar a página do usuário de acordo com a URL, chamar conteúdo do banco de dados, fazer a chamadas a métodos do seu framework , fazer uma página 404 interna, etc. As possibilidades são infinitas.

04/11/2009 – Atualização: Como comentado pelo Victor Teixeira, não é necessário editar as zonas de DNS no WHM. Isto é feito automaticamente quando um novo subdomínio é adicionado. Removi a parte do post referente a isto. Obrigado Victor 🙂

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.