#include <ebf.h>

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

Archive for the ‘aedsol.com’ Category

And we are back…

without comments

Antiga marca Maximus

Antiga marca Maximus

Depois de alguns meses ausente (7 para ser exato), voltei ao meu blog. Estive mais atuante no Twitter ultimamente, mas acho que agora passou :)

Nos últimos meses estive completamente imerso nas novidades que a A&D (ex-Soluções, agora Tecnologia) lançou na Exposec 2009. O Maximus 4.0 está sendo um grande marco para a empresa e simboliza uma mudança tecnológica que vai ecoar por um bom tempo no futuro da A&D.

A primeira grande mudança da linha Maximus é sua marca. Antigamente representado pela “estrela”, agora ela é representada pelo “escudo”:

A nova marca nasceu do desejo de revigorar o nome e a identidade da linha Maximus, trazendo visualmente, a nova direção que estamos traçando. Antigamente, algo voltado apenas a segurança eletrônica e detecção, a linha agora seguirá novos direcionamentos. E o que mostramos na Exposec é só o primeiro passo.

Nova Marca Maximus

Nova Marca Maximus

Outra grande diferenças da versão 4.0 para a série 3.X foi o revamp do Maximus Client. A primeira vista tem-se a impressão de uma mudança cosmética, mas é puro engano. Todo o Maximus Client foi redesenvolvido utilizando novas técnicas e frameworks, não sendo aproveitado nenhum código da versão antiga. Some isso com uma interface matadora criada por um dos maiores especialistas em GUI design do mundo, o meu grande amigo Everaldo Coelho e teremos um software não só mais robusto, como mais fácil de usar e extremamente agradável aos olhos:

Interface Mx4 (Mac)

Interface Mx4 (Mac)

E as novidades não param por aí. Pretendo continuar mostrando mais nos próximos dias. Qualquer coisa, estou a disposição.

Abraço!

Eduardo.

Written by Eduardo

May 18th, 2009 at 1:26 pm

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

Novo Recorde

without comments

Nossa, faz tempo que não escrevo. Bem, o trabalho está incrível e novas possibilidades saindo o tempo todo. Em suma:

  • Estamos finalmente terminando a nova Intranet. Está muito legal. Estou completamente orgulhoso do trabalho que a A&D fez nisso. Ficou show.
  • Começamos a trabalhar no Projeto Cruzeiro do Sul. Mais detalhes em breve.
  • Quem me conhece lembra do Sight. Estamos ressussitando o bixo! ;)
  • Vamos pra Feira!
  • Estou com um celular Qtek A9100 rodando Windows Mobile. Pois é. Windows. ARGH.
  • Virei membro do Ubuntu. No launchpad, mas virei!

Mais detalhes em breve. Eu prometo que vou atualizar isso aqui mais frequentemente.

Abraço,

Eduardo.

Powered by ScribeFire.

Written by Eduardo

April 19th, 2007 at 11:57 am

A magia do código nativo

without comments

Eu amo o que eu faço. Sério. Sério. Muita gente que me conhece sabe que eu reclamo muito, mas eu fico pensando… Acho que se eu fosse um advogado nunca iria ter o prazer de ver um código em Python ter um aumento de 750% de performance, só por reescrever uma função sort em C .

Sério.

Estamos implementando os novos relatórios na nova Intranet do Maximus. Eles vão ser gerados em HTML (como antes, mas com um tema único agora) e em PDF. Pois é. Tem cliente perguntando se eu to usando o OpenOffice.org e exportando o PDF por de trás de tudo… hehehe… :)

De volta ao assunto, estou pegando informações de várias tabelas diferentes, formatando tudo num dicionário e usando o sort do Python para organizar tudo em sequência. O sort do Python é ótimo, mas a performance vai degradando de acordo com o aumento das informações… ou seja, O(2^n). Refiz um sort antigo que já uso no Maximus Server em C e com a ajuda do grande SWIG fiz um módulo Python rapidinho. Pronto! 750% de aumento de performance. Graças a um ajuste no gerenciamento da memória… quem sabe um dia chego no O(1)… Mas o O(n) já está muito bom.

Ultimamente estou brincando muito com XUL e XPCOM. É estranho desenvolver uma aplicação nativa em XML/Javascript. Mas fica muito bom. E o XPCOM deixa eu fazer o que quiser, nativamente, com velocidade plena. Posso brincar com as classes maravilhosas do Boost ou do wxWidgets, enquanto monto a lógica da minha aplicação em JavaScript e a internacionalização em DTDs… caramba!!!

Por melhor que seja a linguagem ou o ambiente que você trabalha (.Net, Java, Python, Perl, Lua, o que for…), se você quer performance, vá pro código nativo. É difícil, mas vale a pena. Pena que no nosso país a grande maioria dos “desenvolvedores” só sabem brincar com Delphi e Visual Basic (e seus amigos)….

Até!

Eduardo.

Technorati Tags: , , , , , , , , , , , , , ,

powered by performancing firefox

Written by Eduardo

February 6th, 2007 at 10:13 am

Feliz 2007!

without comments

De volta ao trabalho. Ao pessoal que está esperando a Intranet Nova…

file:///home/ebf/Desktop/dr_evil.jpg

Calma. Já tá chegando. Falta pouco! Mais que amanhã e menos que ontem. ;)

Tenho muito o que falar. Mas o que posso adiantar é que estamos mudando de hosting denovo. Aguardem novidades.

- E

powered by performancing firefox

Written by Eduardo

January 10th, 2007 at 10:45 am

Final de ano

without comments

2006 tá no fim. Que ano, minha gente! :)

Muito trabalho e graças ao bom Deus, muito resultado. Alguns dados da A&D:

  • A A&D cresceu muito esse ano. Estamos 10x maiores do que em 2005.
  • Começamos 2006 com 1 distribuidor. Fechamos 2006 com 5.
  • Final de 2005, Maximus versão 3.0. Final de 2006, Maximus versão 3.1. Acha pouco? tivemos 93 atualizações, 38 atualizações por bugs e 28 novas funcionalidades no sistema.
  • 2005: Primeira versão da nova Intranet. 2006: Terceira e última versão da nova Intranet :)
  • A carteira de clientes aumentou 20x.
  • Nosso corpo técnico triplicou.
  • Estamos mais interoperáveis do que nunca: Suportamos GPRS PPA, Tecnatel, Redecamp, Elite, Teldat e em breve CAF. Suportamos novas receptoras como PKR, CAF SP2015, Micron, FBII, Surgard System II (TCP/IP) e KP. Protocolos… são tantos… :)

Minhas viagens esse ano:

  • 2 vezes para Fortaleza (Ceará)
  • 1 vez para Porto Alegre (Rio Grande do Sul)
  • 2 vezes para o Rio de Janeiro (RJ)
  • 4 (ou 5) vezes para Foz do Iguaçu (todas de carro)
  • Mais de 10 vezes pra São Paulo (todas de avião)
  • (Acho que estou me esquecendo de algo…)

É isso aí. 2006 foi um grande ano. Que venha 2007! :)

Abraço a todos!

Technorati Tags: , , , , , , , ,

powered by performancing firefox

Written by Eduardo

December 8th, 2006 at 11:06 am

Posted in Pessoal, aedsol.com

Meu primeiro Keynote!

without comments

Fui para Porto Alegre na semana passada participar de um evento que o grande amigo e parceiro Aírton organizou para várias empresas de segurança em Novo Hamburgo e região. Foi muito legal.

Decidí montar a apresentação seguindo a linha de design que um tal de Steve gosta de fazer por aí.

Resultado: Muito bom. Uma apresentação leve, sem sono… Mas aterrorizante pro palestrante (eu). Normalmente, quando você faz uma apresentação “a la PowerPoint” você tem a vantagem de poder se esconder por trás dos Bullets (ou pontos). Dessa forma, não tem jeito…

Mesmo não tendo um Mac (ainda) nem o Keynote (ainda), montei no OpenOffice mesmo. E ficou muito legal.

Pena que ainda não tenho as fotos comigo. Mas assim que tiver, vou atualizar esse post :)

Boa semana a todos!

Technorati Tags: , , , , , , , ,

powered by performancing firefox

Written by Eduardo

November 27th, 2006 at 5:05 am

Semana corrida!

without comments

Caramba, que semana corrida. Não sei se já aconteceu com vocês de alguns probleminhas pequenos virarem um monte de problemas grandes – ao mesmo tempo!!

Pois é. Estou integrando 3 novas receptoras ao Maximus, sendo 2 delas muito antigas… as receptoras atuais usam protocolos texto, fáceis de se entender só vendo o protocolo na tela. Essas receptoras são baseadas em eletrônica, digamos, tradicional. Você literalmente tem que consultar cada registrador dela para conseguir buscar os eventos. Incrível… como isso é ineficiente.

E o pior… ninguém sabe ao certo como elas funcionam. Um de nossos clientes nos passou o protocolo “oficial” e nada batia… Aí abre o analisador de protocolos, vê o que tá passando, analisa packing de bits… argh! Eu e o Douglas sofremos essa semana.

Em paralelo, implementamos o Modo Teste no Maximus. Esse modo permite deixar uma conta sem gerar ocorrências pelo período que o cliente estiver em manutenção. Muito legal. Estamos melhorando um pouco a implementação e a interface no client, por isso aguardem novidades!

Sobre a nova Intranet (que todo mundo me pergunta o tempo todo), o progresso está vindo. A interface está mais ou menos redefinida e o código que escrevemos até agora vai ser bastante aproveitado. Estamos parecendo a Apple com o Copland… mas a mudança para a nova base vai valer a pena. Aguardem!

Um forte abraço e obrigado aos clientes pela preferência!

powered by performancing firefox

Written by Eduardo

November 11th, 2006 at 5:16 am

Muito Trabalho…

without comments

Nem deu tempo de falar da viagem a Fortaleza. Deu tudo certo, muitos negócios. Mais um grande cliente :)
A Aline se machucou :(. Mais tarde dou mais detalhes.

Quanto ao Maximus, grandes novidades em breve…

powered by performancing firefox

Written by Eduardo

October 9th, 2006 at 8:23 am

Posted in Pessoal, aedsol.com

Mono

without comments

Pois é. (Quase) Dois anos depois da primeira análise volto a analizar essa tecnologia tão controversa.

Atenção: Vou me contradizer abaixo. Atenção!

Voltei a analisar o Mono, principalmente para integração do runtime com o Maximus. E o pior… funciona! :)

O Maximus SVN já conta com possibilidade de scripts em LUA e .Net (ou seja, C#, VB.NET, IronPython, Nemerle, Boo, entre outras…), agilizando e muito o desenvolvimento de novas características ao software.

Todas as classes internas estão exportadas. Ficou muito legal e interessante. Só de teste, implementei um handler de eventos em VB.NET… argh, funciona! :-D

hehehehe… o mundo voltas…

Technorati Tags: , , ,

powered by performancing firefox

Written by Eduardo

September 29th, 2006 at 11:26 am

PostgreSQL 8.1

without comments

Com as novidades que estamos trazendo para a nova Intranet, estamos também migrando tecnologias. Como já falei em posts passados, estamos migrando tudo para Unicode, atualizando novas funcionalidades no sistema e novas bibliotecas. Nessa leva, estamos também migrando nossa base de dados.

O PostgreSQL é umas das bases mais completas com que já trabalhei. E agora, na versão 8.x, está trazendo ainda mais novidades e otimizações. Em nossos testes, a nova intranet já está rodando sobre o PostgreSQL 8.x – e rodando muito bem. Já, inclusive, testamos nosso sistema que vai converter as bases de dados para Unicode – :)

E já que estamos falando da Intranet, vários de nossos clientes que já andaram vendo a nova Intranet reclamaram muito da falta de usabilidade do novo visual. Ouvindo essas críticas, estamos refazendo todo o layout visual da mesma – como estamos usando o Cheetah, não teremos problema algum com as alterações ;).

E no mais, já iniciamos o desenvolvimento de novas características também no Maximus Client – essas, entretanto, só virão depois da nova Intranet. Posso adiantar que teremos um visual melhorado com novos ícones e novo layout também, seguindo as novidades da Intranet.

E por hoje é só ;)

powered by performancing firefox

Written by Eduardo

September 17th, 2006 at 6:13 am

Nova Intranet: Update

without comments

Passando rápido por aqui (tá chegando o feriado e meu aniversário) a versão 3.0-beta1 da nova Intranet tá quase pronta. Toda a parte de cadastros está 100% e a base estão prontas.

É incrível como a gente aprende. Comparando os códigos fontes da Intranet nova com a antiga, a nova chega a ser 60% mais compacta e otimizada. Isso usando a mesma linguagem!!!

Os novos relatórios estão ficando prontos, bem como o novo módulo estatístico. Estou muito orgulhoso deste último. Temos tantas estatísticas que tivemos de otimizar a base de dados para que o data-mining rode tranquilo.

Show de bola!! :)

Technorati Tags: , , ,

powered by performancing firefox

Written by Eduardo

September 6th, 2006 at 6:48 am

Posted in Tecnologia, aedsol.com

Maximus Intranet

without comments

Bem, tava na hora de falar um pouco da minha nova cria: a nova Intranet do Maximus Security, conhecida aqui na A&D como Intranet-NG.

Estamos num trabalho intenso… como já disse antes, decidimos reescrever a Intranet. A intranet antiga foi escrita como um típico script CGI antigo: sem preocupação nenhuma com objetos (apesar de ter sido escrita em Python), sem gerenciamento de erros, sem suporte automático a internacionalização… ou seja, uma bagunça. Até pra gente manter é complicado.

Recriamos a nova Intranet nos mesmos preceitos que criamos o atual kernel do Maximus: Code Complete. Eu já falei deste livro antes, e a lista abaixo é uma influência direta do que aprendemos com ele:

  • Tudo orientado a objetos. Herança, polimorfismo, RTTI, todo o pacote.
  • Modelo MVC. Ou seja, Model, View, Controller. Ou seja, separar o código dos templates HTML. Ou seja, uma coisa é uma coisa, outra coisa é outra coisa. Ou seja… ahhhh, deixa pra lá…
  • Unicode. O Maximus Client já está 100% Unicode (No Linux). O servidor está no final da conversão. Quanto a Intranet, o quanto antes já decidirmos isso, melhor – principalmente por causa da internacionalização do sistema.
  • Padronização dos Relatórios. Hoje nossos relatórios têm algumas diferenças entre sí. Queremos deixar tudo num visual único, limpo.
  • Gráficos. Estatísticas. Vamos encher a Intranet de Gráficos.

E é isso aí. Assim que a Intranet estiver pronta, vou postar fotos aqui.

Até!

powered by performancing firefox

Written by Eduardo

August 8th, 2006 at 5:27 pm

De volta!

without comments

Estava hoje navegando pela internet quando derepente…. BAM. Achei meu weblog… abandonado, desatualizado (eu perdí uns 4 posts por causa de uma besteira que eu mesmo fiz) e pensei comigo: ou eu o atualizo ou derrubo de vez.

Levando em conta tudo o que eu tenho de (besteira) escrita aqui, decidi. Vou atualizar. Portanto aí vai:

  • O Maximus Security Server já está na versão 3.1.
  • A nova Maximus Intranet está ficando incrível.
  • Não uso mais Gentoo. Estou usando o Ubuntu e finalmente sei o que é ter um computador que funciona.
  • XGL é 10 :-D
  • Batí meu carro denovo. Ou melhor, bateram em mim. Um motoqueiro atravessou a preferencial e me ralou a lateral. Deus abençoe o seguro! (na verdade a Aline, pois eu nem queria seguro…) :)
  • Estamos com um novo escritório e um link de 2 MEGAS. Uau. Como é rápido isso aqui.
  • Trocamos de telefone 3 vezes nos últimos 4 meses.
  • Estamos implantando VoIP no escritório. Na casa do ferreiro, finalmente teremos espeto!
  • Já estou morando na minha casa.
  • Aprendí a fazer churrasco (não pergunte).
  • Vou virar titio.

Basicamente é isso aí. Vamos ver se consigo manter esse blog atualizado dessa vez ;)

Written by Eduardo

July 27th, 2006 at 1:18 pm