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”

Modelagem UML Genérica

Recebi do meu amigo Bruno, lá de Chapecó, essa excelente modelagem UML genérica que se aplica a qualquer aplicação. Agora você não precisa mais perder tempo fazendo a análise e design. É só seguir os diagramas abaixo e tudo ficará bem.

Diagrama de Classes

Diagrama de Classes

Diagrama de Sequência

Diagrama de Sequência

Diagrama de Casos de Uso

Diagrama de Casos de Uso

Dica: Corrigindo erro da user32.lib no CMake com NMake Makefiles

No CMake, quando se usa o gerador NMake Makefiles ele costuma dar o erro:

LINK : fatal error LNK1104: cannot open file 'user32.lib'
LINK Pass 1 failed.  with 2
NMAKE : fatal error U1077: '"C:\Arquivos de programas\CMake
2.6\bin\cmake.exe"' : return code '0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Arquivos de programas\Microsoft Visual
Studio 8\VC\BIN\nmake.exe"' : return code '0x2'
Stop.

Mesmo que você tenha o Microsoft Platform SDK, isso ocorre porque o linker não consegue encontrar a user32.lib. Para projetos que usam o gerador do Visual Studio você pode configurar isso seguindo as recomendações da configuração do SDK, mas para resolver este problema em projetos que usam a NMake, você precisa adicionar o path da user32.lib na variável de ambiente LIB. Você pode fazer isso na mão, após iniciar o prompt de comando do Visual Studio:

set LIB=%LIB%;"C:\Arquivos de programas\Microsoft Platform SDK\Lib"

Ou então adicionar o path nas variáveis de ambiente do sistema através da aba “Avançado” nas propriedades do sistema.

5 valiosos programas pra Windows

Eu sou um adepto confesso do Mac OS X e do Linux. Estes dois são, disparadamente, meus sistemas preferidos. Nutro, também uma grande estima pelo FreeBSDs, o qual usei por bastante tempo.

No meu dia a dia eu preciso usar diversos sistemas operacionais, variando desde o Linux, passando pelos caríssimos Unixes, até o mais comum deles: o Microsoft Windows. De todos estes eu considero o Windows um caso a parte, não por ele ser “melhor” ou “pior” que sistema A ou B, já que isto por si só tende a ser muito subjetivo, mas sim pelo grau de esforço necessário até que ele esteja pronto para o meu uso.  Não se engane, entretanto, pensando que eu me irrito ou me frusto com isso, muito pelo contrário: ruim seria se ele não me permitisse configura-lo. Então, este post é sobre dicas de alguns programas para Windows que eu gosto e que eu acho que vale a pena compartilhar:

Console: este aplicativo open source é uma versão melhorada do prompt de comando do Windows. Suporta tabs, transparência, inicializações em shells diferentes (ex: cygwin). De todos os programas listados aqui, este é o meu favorito.

Console alternativo para Windows

Notepad++: é um poderoso editor de textos, também com suporte a tabs, realce de sintaxe, regex, plugins e tudo mais que se espera de um bom editor de textos. E, o melhor de tudo: é open source.

WinSCP: é um cliente de FTP, SFTP e SCP, tem a possibilidade de salvar sessões, configurar editores para edição remota de arquivos (incluindo o Notepad++), configuração de bookmarks e muito mais. Ah, e também é software livre 🙂

TortoiseSVN: uma extensão gráfica ao explorer/shell que permite trabalhar com o subversion. É software livre assim como os outros citados acima.

ProxySwitcher: se você precisa ficar trocando de servidores proxy com frequência, este freeware vai ajudar a gerenciar isso. Ela troca a configuração de proxy de todo o sistema, deste jeito, quando você muda de uma rede para outra, não precisa re-configurar na mão.

Teria muitos outros pra citar, como o Cygwin, Mozilla Firefox, Putty e o Freemind. Mas de todos, os 5 acima são indispensáveis.

IDE online

Meu amigo Diego me passou a dica sobre o CodeIDE. Segundo ele, é um site onde pode executar códigos, suporta várias linguagens como Pascal, C++, Perl, JavaScript, HTML, e outras. Você digita o código, e mandar executar, já ve o resultado na página mesmo. O site também oferece suporte a chat e grupos, o que possibilita vc explicar o código para alguém, discutir sobre um código, etc, etc. Aqui tem um artigo sobre o site
http://blog.cidandrade.pro.br/technology/interface-online-para-ensino-de-programacao-codeide/

Eu achei o site uma grande mão na roda pra quando você quer mostrar alguma técnica ou explicar algo para alguém. Além disso, ele tem um recurso de realce de sintaxe (syntax highlight) que melhora a percepção do código.

Dica: sobre a conversão de vídeos pro Nokia 5310

Conforme eu falei no tópico abaixo da sugestão de programa para Mac OS X, o MPEG StreamClip permite converter arquivos de vídeo para o Nokia 5310 Xpress Music. Note porém que este celular tem requisitos específicos para o formato de vídeo, conforme específicado aqui. Em todo caso, para o MPEG StreamClip e para evitar experimentações eu recomendo usar H.264 com tamanho de vídeo 174×144 a 15fps confome mostra a imagem abaixo.

Configuração do mpeg stream clip

Um Desktop para rivalizar com o Mac?

Hoje eu instalei o tão esperado KDE 4, que já está por ai a algum tempo, e devo dizer que fiquei incrivelmente surpreso com ele. Os desenvolvedores conseguiram fazer um desktop polido, bonito e prático que não tem precedentes na história das GUIs open source.

De maneira geral o que me impressionou foi a forma como o deskop ficou confortável em resoluções grandes (aquelas utilizadas por monitores com 19 ou mais polegadas). Ao contrário do Gnome que parecia desajeitado na minha resolução (1680×1050), o KDE se ajustou de maneira mais homogênea dando a impressão de utilizar melhor o espaço do desktop.

Continue reading “Um Desktop para rivalizar com o Mac?”