26 de fevereiro de 2010

Notícias do Fronte de ZODB

Alguns vislumbres de ZODB:

.Me admira que ele receba tão pouca atenção
.Me admira que, além do Zeo, ele não venha empacotado com Zcatalog (indexador)
.Me admira que ninguém fale dele
.Me admira que ainda usemos Python com BDs relacionais

19 de fevereiro de 2010

Estudando ZODB

Resolvi estudar ZODB (sem Zope). O próprio wiki de ZODB diz que ZODB trabalha independente de Zope, vamos ver.

Nosso foco por enquanto é Desktop (e não Web), mas nunca vi ninguém comentar algum projeto baseado em ZODB sem Zope para Desktop. Será que seria uma boa idéia?

Do jeito que costumo ser meio radical, se der certo vou abandonar a minha então preciosa fórmula Storm-Postgres, mudando para pure-python-zodb.

PS. Por enquanto só não gostei do nome "zodb" porque nunca saberemos como realmente pronunciar isso, parece aquele nome transcendental "GNU" cuja a pronúncia, segunda as más línguas, só pode ser feita corretamente por Richard Stallman.

15 de fevereiro de 2010

Caso Arruda: Um Bom Indicativo Nacional?

O memorável acontecimento que ocupou os últimos assuntos nacionais, "Arruda na Prisão no Carnaval", que por tão importante nos faz um pouco mais alegres com o país, infelizmente talvez não seja um símbolo de qualquer avanço.

A decisão de Marco Aurélio (que resultou na permanência de Arruda na prisão) tomada isoladamente não quer dizer muita coisa, claro. Mas, seria acaso que representaria que o país avançou significativamente no combate à corrupção? Não nos parece. Contudo, já deu pra nos deixar um pouco mais feliz, o que será ainda melhor.

O STF tem duas facetas distinguíveis. Quem se liga um pouco na política deve ter muito ódio daquele STF que profere decisões como a do caso Daniel Dantas, deplorável. Todavia, há outro lado do STF que em geral não é objeto de análise dos críticos de economia e de política, somente acompanhada por estudiosos de Direito: a de um justiça de escol que invoca as mais sofisticadas teorias do universo jurídico euro-continental.

Digo-vos que nosso órgão julgador maior não raramente profere decisões dignas de um tribunal da sua importância. Entretanto, tratam-se de processos cujo objeto não envolve ao mesmo tempo muito dinheiro e gente muito poderosa.

E Roberto Arruda também não é poderoso e não tem muito dinheiro? Dinheiro talvez tenha, contudo por uma reviravolta do destino ficou desprovido de poder.

A começar, o vídeo era inequívoco e dava muito na cara ele recebendo um calhamaço enorme de dinheiro -- e me sai afirmando que era para os pobres. O esquema dele era pequeno, envolvia gente pequena, ele não possuía grandes tentáculos. Por essa razão (e para o azar dele) o DEM preferiu execrá-lo. Sem apoio do DEM, do PSDB e nem do PT, ficou isolado.

Não contando com quase nenhuma proteção política, Arruda se tornou desinteressante para que alguém quisesse gastar capital político com ele, fato que permitiu à grande mídia ecoar o descontentamento dos calangos com seu governador.

Ato contínuo, o processo subiu rapidamente ao STF como normalmente ocorre em casos malhados na imprensa. E nesse exato ponto em que Mendes poderia usurpar seus poderes e mandar soltá-lo, nada fez. Sem grande força Arruda não conseguiu interpelação suficiente junto a Mendes, que então deixou passar.

Marco Aurélio que historicamente concedia Habeas Corpus a grandes criminosos por achar que faltavam evidências (ou sabe-se lá por que), encontrou evidências aos montes. O destino dera o nó final, Arruda teve de permanecer na cadeia.

Fim? Acabou a carreira de Roberto? Duvido. Duvido até que fique na prisão por muito tempo; não nesse país, não na nossa época; não creio que haja chegado os tempos em que a impunidade cessará.

Me alegro com muitas coisas que tenho visto nessa nação. Todavia estou ainda cético quanto ao caso Arruda, e ainda mais cético quanto às boas intenções de Marco Aurélio (ele nunca foi disso).

10 de fevereiro de 2010

O Tal Banco de Dados Relacional

Acreditem eu só entendi o que deveras era um BD relacional quando tentei montar um BD orientado a objetos.

Em algumas horas livres rascunhei na mente o projeto de BD orientado a objetos. Um dia sentei e fiz a modelagem de dados começando por Python, usando Storm. Até aí perfeito: a classe pai ia dando o rumo aos filhos que além de necessariamente herdar os atributos do pai criavam outros filhos ou se relacionavam com outros filhos numa hierarquia angelical.

Legal. Passei para o Postgres. Daí o primeiro problema: as tabelas-filho estranhamente herdavam fisicamente as colunas da tabela-pai. Beleza, esqueci que tem esse detalhe. Mas não muda muito as coisas. Em seguida as "tabelas-filhas-netas" (herdavam da tabela pai e filho) se relacionavam com a segunda geração e tudo mais.

Tudo sincronizado em python-storm. Vamos para os testes e... saltam resultados estranhíssimos.

..:|:.. A chave primária da classe pai fora francamente violada sem que o Postgres reclamasse. Hmm... Teria feito alguma coisa errada? Reviso as restrições. Tudo certo. Como os Postgres havia aceitado aquilo?

..:|:.. Dados inconsistentes, as restrições haviam sido sumariamente ignoradas.

..:|:.. O próprio BD obrigava os dados a serem inconsistentes. Se tentasse consertar manualmente os problemas das chaves primárias e estrangeiras, o BD impunha novos dados inconsistentes. Que loucura era aquela?

O que estaria errado então? Fui ao Google e finalmente encontrei a chave-primária da questão: o Postgres é relacional e tentar fazê-lo orientado a objetos é amplamente desencorajado.

O neǵocio é que o que eu considerava inconsistente não era assim tão inconsistente, apenas que havia uma meia lógica objeto-relacional que justificava aqueles dados.

Final das contas: Usando um BD relacional seja apenas relacional, que funciona muito bem. A propósito, a idéia de OO é ótima, mas não é tudo.