Benchmarks do Firefox

Com toda essa discussão sobre benchmarks do Firefox, GCC, ICC, etc. Hoje resolvi fazer uns testes de desempenho do Firefox no Arch Linux versus Firefox no Windows.  No Arch, por não saber ao certo qual seria mais adequado, escolhi dois pacotes da AUR: firefox-optimized e firefox-pgo. Ambos foram compilados com -march=x86_64 -mtune=generic -O2 -fomit-frame-pointer -pipe (todas essas flags estavam por PADRÃO no arquivo makepkg.conf do Arch).

Continue reading “Benchmarks do Firefox”

Frase do mês

Hoje, lendo o Code Complete 2 topei com essa frase do Dijkstra:

“The competent programmer is fully aware of the limited size of his own skull. He therefore approaches his task with full humility, and avoids clever tricks like the plague.”

Traduzindo:

“O programador compentente está ciente do tamanho limitado do seu próprio crânio. Ele, então, aborda sua tarefa com total humildade e evita truques espertos como (evita) a peste”

Sobre benchmarks de linguagens

Hoje, não sei como, topei com mais uma comparação de desempenho entre Java em e C++ que, como de costume, gerou uma discussão sem fim. Não que eu ache essas discussões totalmente inúteis: na verdade, você sempre acaba aprendendo/conhecendo alguma coisa nova. O ponto principal e que todo mundo ignora – para meu espanto – é que, quando um programa qualquer em Java é mais rápido que o seu equivalente em C/C++ isso só prova uma coisa: que um programa C/C++ bem escrito consegue processar qualquer coisa bem rápido, inclusive os bytecodes do Java 😉

Em tempo, dêem uma olhada nesse interessantíssimo conjunto de benchmarks.

MQ Series

O Vinny, do Use Strict.net está fazendo uma série de posts documentando suas aventuras integrando o Perl com o Websphere MQ, uma das tecnlogias que eu gosto de trabalhar. Ele já começou em grande estilo, documentando em detalhes como instalar o módulo CPAN do MQ no Windows.

O Websphere MQ, para quem não conhece, é um produto desenvolvido pela IBM que, entre outras coisas, oferece transmissão de mensagens com alto grau de disponibilidade. Esse tipo de tecnlogia é comumente utilizado em grandes arquiteturas orientadas a serviço, com sistemas específicos atuando cada um na sua área de negócio.

Documentando com Docbook: aprofundando seu conhecimento

Interessado em documentar sua aplicação utilizando o formato DocBook? Aqui vão alguns links, em inglês, para aprofundar seu conhecimento a respeito (por ordem de relevância e facilidade):

Gnome Handbook Of Writing Software Documentation

The KDE Docbook Authors Guide

Introducing DocBook

http://wiki.docbook.org/topic/DocBookTutorials

DocBook Demystification HOWTO

DocBook On Windows Bliss

DocBook XSL: The Complete Guide

MySQL vs. PostreSQL

O site BR-Linux.org postou hoje um link para um artigo comparando as características do PostgreSQL e do MySQL. De modo geral, o artigo confirma a superioridade do PostrgreSQL em termos de funcionalidades, mesmo quando comparado com o MySQL e a engine InnoDB, e escabilidade e afirma que o desempenho do PostreSQL pode ser igual ou superior a do MySQL sob certas condições.

Deixando de lado todos os aspectos técnicos e, no que diz respeito a resolver os meus problemas, eu prefiro o PostgreSQL, porque considero sua documentação mais acessível e organizada e, eu sei que isso é subjetivo, porque o projeto parece ter uma relação mais saudável com a comunidade de usuários e desenvolvedores. Isso é um tanto quanto irônico, já que meu projeto open source atualmente suporta MySQL e não o PostreSQL – pura falta de tempo pra escrever o código.

Blog sobre Perl

Meu colega Vinicius, um grande entusiasta do Perl e um hacker no melhor sentido da palavra, está escrevendo um blog sobre Perl, desmistificando os detalhes da linguagem e quebrando várias concepções erradas desta linguagem (muitas das quais, admito, eu mesmo tinha até pouco tempo atrás). Recomendo seriamente.

Testando o Haiku OS

Hoje, como eu estava com algumas horas livres enquanto esperava que algumas tarefas ficassem prontas, resolvi instalar o Haiku, um clone livre do finado BeOS pra ver como ele estava.

A idéia era instala-lo em uma máquina virtual dentro do VirtualBox, já que o projeto fornece uma imagem VmWare pronta e, sim o VirtualBox trabalha com imagens do VmWare :). Não é minha intenção fazer um review do sistema, já que ele ainda não está pronto e tem coisas para serem finalizadas, apesar disso devo dizer que o resultado me surpreendeu: ele funcionou sem maiores problemas no VirtualBox. A única alteração que eu tive que fazer foi mudar a placa de rede para uma Intel PRO/1000 MT Desktop, pois a PCnet-Fast III que o VirtualBox usa por padrão não foi reconhecida. No Haiku o único problema foi conseguir instalar um navegador, já que ele não vem (???) com um navegador por padrão. Para isso baixei direto pelo linux, criei uma ISO e montei como CD pelo VirtualBox, uma operação que teve sucesso após reiniciar a máquina virtual.

Enfim, como eu disse, me surpreendi muito com o estado do sistema e tive menos problemas com ele do que com várias distribuições Linux que já tive o desprazer de usar. Outro ponto interessante do projeto é que ele é programado em C++, então é um prato cheio pra quem quiser se envolver com um projeto nessa linguagem. Se alguém quiser conferir o resultado da brincadeira, recomendo que dê uma olhada nas screenshots que eu postei aqui. Não deixe de conferir, também, a entrevista de um dos líderes do Projeto, o brasileiro Bruno Albuquerque, feita pelo MeioBit.

Funcionalidades obscuras das linguagens de programação

Recebi um link hoje, num chat via MSN, sobre features escondidas de linguagens de programação.

Ainda não li por completo, mas achei algumas pérolas, como a história de que implementações antigas do GCC tentavam executar um jogo cada vez que encontrava a diretiva #pragma nos fontes e outras já famosas como os métodos de branch prediction (previsão de fluxo??) __builtin_expect() do GCC. Não deixe de conferir.

Provendo informações uteis na linha de comando

Hoje estava conversando com um amigo sobre como prover informações úteis e ajuda decente para programas de linha de comando (aqui, preciso fazer um adendo: embora pareça arcaico pra algumas pessoas, isso é realidade para muita gente, em especial aquelas desenvolvendo pra UNIX e Linux).

Continue reading “Provendo informações uteis na linha de comando”