#include <ebf.h>

Idéias, divagações, e baboseiras. By Eduardo Fonseca.

Archive for June, 2007

Tutorial: Brincando com XUL (Parte I)

without comments

Muitos dos (três) que lêem meu weblog sabem que estamos migrando nossa base de desenvolvimento GUI do wxWidgets para o Mozilla. XUL rocks. Mas um grande problema da Mozilla Platform é a falta de documentação. Tive de quebrar muito a cabeça para entender como tudo funciona.

Para tentar retribuir um pouco a comunidade, decidi começar a escrever alguns tutoriais sobre como usar o XUL e XPCOM, além de também lançar alguns componentes que nós desenvolvemos como Open Source. É, você leu direitinho… ;)

Vamos começar explicando o que é XUL. XUL (se pronuncia zuul, rimando, em inglês, com cool) significa XML User Interface Language e é a linguagem que os desenvolvedores do Mozilla Project criaram para definir interfaces de usuário nativas, multiplataforma e que podem rodar localmente ou remotamente na Internet. Interessante né? Principalmente que sua criação predata, e muito, um tal de XAML…

O mais empolgante é que qualquer desenvolvedor que tenha um pouco de experiência em DHTML (ou seja, HTML, Javascript, DOM e etc) consegue trabalhar sem dificuldades com XUL, criando aplicações com visual nativo. Vamos começar com um exemplo básico, célebre, em XUL:

id=”aedOlaMundo”
title=”Olá Mundo!”
orient=”horizontal”
xmlns=”http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul”>

Esse código é uma definição de uma janela, sem nada dentro. Está janela não vai fazer muito, já que não tem nenhum elemento definido dentro dela.

Para executar esse exemplo, crie um arquivo “olamundo.xul” salve o conteudo e execute o Firefox da seguinte maneira: firefox -chrome olamundo.xul

Pronto! Na segunda parte, como inserir botões na sua janela… :)

Até lá!

Powered by ScribeFire.

Written by Eduardo

June 27th, 2007 at 5:58 pm

Que ódio!

without comments

Vocês sabem o que é perder tempo precioso com besteiras? Pois é, dá uma raiva, não é mesmo?. Na nova Intranet estamos usando todas as possibilidades do PostgreSQL 8.x para gerar nossos relatórios e estatísticas. Um de nossos clientes-teste, que tem mais de 80 milhões de registros na tabela de eventos nos ligou hoje cedo dizendo que os relatórios novos estavam mais lentos que os antigos (!!).

Começamos uma investigação completa sobre o que poderia ser… e não é que as tais funções agregadas do PostgreSQL deixam o sistema mais lento? Pelo que notei, quando você faz, por exemplo:

SELECT COUNT( * ) FROM abcd WHERE data>date_part(‘epoch’::text, now())

O PostgreSQL executa a função agregada em cada registro, mesmo se o conteúdo da mesma for estático, como no exemplo acima. O custo desse SELECT ficou astronômico. Mudei toda a validação de data/hora para dentro da Intranet… pelo menos 10x mais rápido.

Que ódio!!

:)

Written by Eduardo

June 11th, 2007 at 6:02 pm