Arquivo mensais:julho 2008

Active Record e PHP

Active Record é um padrão de projeto bem freqüente nas aplicações que guardam seus dados em bancos de dados (BD). Tão usual e freqüente que na maior parte das vezes este padrão é utilizado sem que seu nome seja conhecido.

Este padrão consiste na ligação existente entre a modelagem da aplicação e a do BD. Uma classe corresponde à uma tabela, um objeto corresponde à uma linha da tabela. Um relacionamento entre tabelas é traduzido como uma associação entre objetos.

Ao programar uma loja virtual em PHP, tentei implementar este padrão. A maior dificuldade que tive foi no momento em que os objetos estavam inter-relacionados e um update deveria se propagar em cascata. De duas uma: ou você resolve isto via Stored Procedures – ou algo equivalente do lado do BD, ou por meio de transações dentro da aplicação – usualmente com a ajuda do PEAR::MDB2.

Bom, depois desta experiência, passei a utilizar o padrão DAO e arquitetura em camadas no PHP (e Ajax+Web Services, mas isto é outra história).  Mas agora tô morrendo de vontade de conhecer o Ruby on Rails

Microsoft: Projeto Mojave

Parece que a Microsoft anda preocupada com a imagem do Windows Vista, que anda tão ruim quanto a de Paulo Maluf em São Paulo. Isto se deve muito a alguns fatores:

  • à própria MS, pelo sucesso alcançado com o XP;
  • à Apple, que soube capitalizar muito bem com a insatisfação dos antigos usuários de Windows;
  • às distribuições Linux, que com sua qualidade e estabilidade acabaram “descobertas”;
  • e, por fim, ao próprio Windows Vista, que, visando quebrar um paradigma nos SOs da MS, acabou levando seus próprios usuários a aproveitar esta quebra para testar outras marcas.

Tentando levantar a imagem do Vista a MS criou o projeto Mojave. Infelizmente a imagem da própria MS, construída durante anos de monopólio, grana e mão de ferro (e algumas trapalhadas), pode acabar atrapalhando este novo “projeto”: The Mojave Experiment.

Campo DateField em um formulário ExtJS

Estou usando o ExtJS em alguns projetos, e estou muito satisfeito com ele. No início, como em todo framework,  é meio complicado de entender. Mas basta ler e testar os vários exemplos que vem junto do código.

Só fiquei decepcionado ao me deparar com um problema na hora de editar um campo DateField. Mesmo após ter corretamente configurado os objetos Record, ColumnModel (para colocar no meu grid) etc e tal, eu consigo visualizar a data, eu consigo editá-lo, mas ao salvar o ExtJS cria uma data quase, mas nem tanto, completamente diferente da que eu inseri.

Como todo bom programador, achei que a culpa era minha e fiquei remoendo o código e fazendo testes sem resultado. E como todo bom programador fiz várias consultas ao oráculo. Até encontrar isto.

Procurei pelo SVN e encontrei. Infelizmente a versão que está no Google Code não é a mais atual, é a versão de lançamento que data de abril deste ano (2008).

Olhando no site do ExtJS vi que é preciso pagar para acessar os repositórios de desenvolvimento. Bom, agora preciso de US$ 299 para ter acesso ao servidor de versionamento do ExtJS…

C’est la vie

Organizador que realmente organiza

Cansado de seu PDA? Tentando utilizar seu novíssimo celular para ajudá-lo a gerenciar suas tarefas, mas tudo o que conseguiu foi mais uma tarefa?

Seus problemas acabaram! Chegou o PocketMod, uma agenda DIY, fácil de fazer, fácil de usar.

Não quer usar flash? Gosta de linha de comando? Então use o ótimo hipmod.

Só um aviso: utilize papel reciclado, e use o preview antes de imprimir!

Ubuntu 8.04.1 lançado hoje

Lançaram a primeira versão de manutenção do Hardy. Pensem nele como um service pack.
Quem for instalar o Ubuntu em alguma máquina, sugiro baixar esta nova versão, para evitar um longo e demorado update logo após a instalação…

The Ubuntu team is proud to announce the release of Ubuntu 8.04.1 LTS, the
first maintenance update to Ubuntu’s 8.04 LTS release.

In all, over 200 updates have been integrated, and updated installation
media has been provided so that fewer updates will need to be downloaded
after installation. These include security updates and corrections for
other high-impact bugs, with a focus on maintaining stability and
compatibility with Ubuntu 8.04 LTS.

http://www.ubuntu.com/getubuntu/download

Rotateme no N95

O rotateMe é um software bem legal para o Nokia N95. Ele possibilita você finalmente utilizar o acelerômetro de seu aparelho, algo que muita gente nem sabe que existe (eu inclusive, há algum tempo atrás). Muitas câmeras fotográficas possuem um sensor deste tipo, geralmente para determinar se a foto tirada é em estilo retrato ou paisagem.

Mas, ao menos no N95, muitas possibilidades podem ser imaginadas para utilizar este sensor.

Para instalá-lo basta baixar o aplicativo e assiná-lo através do Open Signed.

Mais informações em meu Wiki. Qualquer dia eu migro as informações de lá para o WP! =)

Ruby – Why’s (poinant) guide to ruby

Se existe uma única razão, e uma razão bem forte, para alguém aprender Ruby, é ler e seguir o Why’s (poignant) guide to ruby. Parece com aqueles livros da série Head First, misturado com tiras de quadrinhos de jornal, acrescido de insights e uma grande pitada de Lewis Carrol.

Qualquer livro que tenha isto na introdução vale a pena ser lido:

So you’re like, “Wow, this book comes with an onion!” (Even if you don’t particularly like onions, I’m sure you can appreciate the logistics of shipping any sort of produce discreetly inside of an alleged programming manual.)

Then you ask yourself, “Wait a minute. I thought this was a book on Ruby, the incredible new programming language from Japan. And although I can appreciate the logistics of shipping any sort of produce discreetly inside of an alleged programming manual: Why an onion? What am I supposed to do with it?”

No. Please don’t puzzle over it. You don’t need to do anything with the onion. Set the onion aside and let it do something with you.

Bom, agora só preciso de um servidor com Ruby on Rails para a diversão ser completa.