Thursday, June 24, 2010

Comentário sobre processadores de 6-cores

Ouvi de um engenheiro que trabalha com HPC que um muitas aplicações os processadores de 6-cores tem contenção de performance no acesso à memória.

Nada como um sistema paralelo para transformar um problema limitado por processamento em um problema limitado por bandwidth.

Thursday, January 15, 2009

Copy and paste no Emacs

Para que o copy-and-paste do emacs se comporte como todo mundo espera que ele se comporte, adicione a seguinte linha no arquivo .emacs:


(setq x-select-enable-clipboard t)
(setq interprogram-paste-function 'x-cut-buffer-or-selection-value)


Origem: http://www.emacswiki.org/cgi-bin/wiki/CopyAndPaste

Sunday, January 11, 2009

Dicas para programar em java


  • Crie o um projeto do Eclipse.
  • Configure o classpath utilizando user libraries, assim você pode aproveitar a configuração de uma library em mais de um projeto.
  • Para gerar programas CLI, export o projeto como ANT file, o eclipse irá configurar o classpath para você, além de gerar as tarefas para compilação e execução das classes que você executou alguma vez como Java Application
  • Para log utilize a Simple Log Facade for Java (http://www.slf4j.org/) com o logback (http://logback.qos.ch/).

Wednesday, December 31, 2008

Perigos de cada linguagem

Cada linguagem de programação induz um tipo de comportamento no programador, por exemplo perl induz à gambiarras, já java induz over-engineered e Lisp induz a reescrita de código (Porque usar X se eu posso reimplementar isso em Y dias).

Não que esses comportamentos sejam obrigatórios nessas linguagens, mas existe uma cultura e uma facilidade de se agir segundo o esteriótipo de cada linguagem. Por exemplo, o perl permite programação OOP, mas não é fácil nem tão pouco elegante e esse é um motivo para que a maioria dos programadores em perl não use OOP. Porém o principal motivo é cultural, programadores em perl valorizam resolver o problema rapidamente, mesmo que para isso tenham que fazer um copy-and-paste do código, já programadores em Java criam soluções genéricas e complexas que precisam de 3 arquivos XML para serem configuradas porque eles ficariam com vergonha do código se fizessem de outra maneira.

Por isso é importante dominar mais de uma linguagem, para poder saber quando é necessário programar em Java como se fosse perl ou Lisp. Dizem que um programador em Fortran pode programar Fortran em qualquer linguagem, um bom programador também pode programar em Fortran em qualquer linguagem, a diferença é que ele sabe quando fazer isso.

Tuesday, November 25, 2008

MySQL Anoyances

Descobri mais uma amolação do MySQL, o nome das tabelas é case sensitive. Até ai, nada de muito grave, muitas linguagens de programação são case sentives e as pessoas se habituam a utilizar convenções, porém, o MySQL só é case sensitive se o filesystem o for (lembrem-se que no MyISAM cada tabela é um arquivo), ou seja, o programa idiota passa para a o fopen o nome da tabela como o usuário digita no SQL.

Tive que implantar um sistema que foi desenvolvido em que uma tabela é referenciada com diferentes convencões de case em diferentes partes do sistema. Como o sistema provavelmente foi desenvolvido no windows, esse problema passou despercebido.

Por sorte o script que criava o banco não especificava o Engine a ser utilizado, por isso eu pude editar o my.cnf para que o InnoDB fosse o engine default, e neste caso a lower_case_table_names=1 faz com que o MySQL seja case insentitive [1].

Aproveitei para corrigir outra chateação, o MySQL vem configurado como latin1 (até ai tudo bem) e ordencão de palavras em Sueco (??????). Para um configuracão razoável é preciso adicionar as seguintes linhas no my.cnf:

character-set-server=utf8
collation-server=utf8_general_ci


[1] http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html

Monday, November 10, 2008

Aprendendo ruby

O Akita passou hoje na minha mesa e me disse que publicou um micro tutorial pra iniciantes em ruby como eu. É um micro-tutorial-não-tão-micro em três partes.

Thursday, November 06, 2008

Ioke

Acabou de sair na InfoQ, uma entrevista com o Ola Bini sobre o ioke, uma nova linguagem dinâmica que roda sobre a JVM. A entrevista da InfoQ é muito boa, vale dar uma olhada.

Uma passada rápida pelos meus feeds antes de ir pro trabalho ...