Filesystem Hierarchy Standard

Essa semana, para facilitar o trabalho de alguns colegas, tive que escrever alguns documentos a respeito do Filesystem Hierarchy Standard. Entre eles criei um “navegador interativo” pela árvore de diretórios proposta pelo FHS e que, embora não seja seguido à risca pelas distribuições, dá uma idéia de como a árvore de diretórios do Linux/*BSD é organizada. Útil para aquele seu amigo recém convertido que ainda se perde pelos diretórios do seu novo sistema. Você pode conferir o navegador aqui e baixar um resumo da FHS aqui.

Obs.: algumas partes ainda estão em construção, então a descrição de algumas ainda está simplificada.

Tour visual pelos novos recursos do Vim 7.0

O site Br-Linux.org e o Slashdot publicaram um link para um tour visual dos novos recursos do Vim 7.0. Ainda que eu não use o Vim para editar código, já que considero o KDevelop mais prático, uso o Vim para editar praticamente todos os outros documentos que edito. Minha “feature”, nova, favorita é a inclusão do suporte a tabs.

Fontes para Programação IV

Finalizando o assunto das fontes para programação posto aqui algum dos resultados obtidos após a re-configuração da FreeType. A fonte Consolas ainda é a minha preferida, entretanto, outras fontes que eu sequer considerava adequadas para programar, como a Andale Mono e a Anonymous ficaram muito mais legíveis.
Fontes: Andale Mono, Anonymous, Consolas, Courier, Monaco, Proggy Clean, Proggy Clean (Bold Ponctuation), Square SZ.

Fontes para Programação III

Prosseguindo com o assunto das fontes, aproveito para mostrar como permitir que fontes “pixel-based” trabalhem bem com o FreeType. Essas fontes não trabalham bem com o hinting da BCI ou com o auto-hinting e não suportam anti-aliasing, ficando completamente borradas e/ou ilegíveis.
Neste caso, é preciso desabilitar o hinting e o anti-aliasing especificamente para essas fontes, sem desabilitar essas funcionalidades para as outras fontes. Um exemplo usando a fonte ProggyCleanTTSZ:

<match target=”font”>
<test name=”family” qual=”any”>
<string>ProggyCleanTTSZ</string>
</test>
<edit mode=”assign” name=”hinting”>
<bool>false</bool>
</edit>
<edit mode=”assign” name=”antialias” >
<bool>false</bool>
</edit>
</match>

O meu arquivo ~/.fonts.conf com algumas fontes já adicionadas pode ser encontrado aqui.

Fontes para Programação II

Continuando o assunto do post anterior, hoje eu consegui fazer alguns ajustes na configuração do FreeType que tornaram possível utilizar não apenas a fonte Consolas, mas também uma série de fontes “pixel-based” (como as ProggyFonts). Para isso é preciso ter uma versão recente do FreeType2 compilado com suporte a BCI, Byte Code Interpreter. No caso do Gentoo basta habilitar a USE Flag “bindist” e recompilar o pacote freetype.

Fontes como Consolas ou ProggyFonts não ficam bem com auto-hinter embutido na FreeType, sendo necessário desabilita-lo para que a BCI seja utilizada. É possível fazer isso editando o arquivo /etc/fonts/local.conf ou ~/.fonts.conf e desabilitando o auto-hinting e deixando o hinting habilitado:

<edit mode="assign" name="hinting" >
<bool>true</bool>
</edit>
<edit mode="assign" name="autohint" >
<bool>false</bool>
</edit>

Isso, por si só, já torna possível usar fontes com a Consolas sem que elas fiquem borradas ou escuras demais. Aqueles que quiserem explorar um pouco mais as configurações de fontes do FreeType, podem começar por aqui.

Fontes para Programação

Depois que a fonte Consolas se tornou ilegível no meu KDE – provavelmente devido a algum problema após a última atualização da freetype – eu tive o trabalho de procurar uma fonte decente para substituí-la. Durante a procura achei algumas coisas interessantes:

Monospaced/Fixed Width Programming Fonts

Programming Fonts

Triskweline

ProggyFonts

Programando como uma garota (Programação Metrosexual)

Hoje eu descobri que programadores que, assim como eu, tem senso estético em relação a código e se importam em deixa-lo claro, organizado e identado de modo que seja agradável para outros programadores lerem/trabalharem, são adeptos da “Programação Metrosexual” ou então “Programam como garotas“.

Artigos (atualizado)

A partir de hoje tentarei colocar alguns dos artigos, trabalhos, monografias, etc que escrevi. Alguns eu escrevi para os cursos de graduação e pós-graduação. Outros para sites, revistas, etc. Os artigos poderão ser baixados aqui.

Atualização: mais alguns artigos e tutoriais antigos foram disponibilizados.

O dia em que eu perdi 2 horas por causa de 1 byte

Não raro, essa vida de programador nos leva a enfrentar algumas peleias bravas. Hoje durante testes de um software desenvolvido pela empresa aonde trabalho o aplicativo começou a apresentar um comportamento estranho (entenda-se SIGSEGV). Obviamente, a primeira reação foi abrir o gdb, rodar o aplicativo e analisar o backtrace. Este, entretanto, mostrava-se incapaz de localizar o problema tornando o problema particularmente interessante. Resumindo, depois de alguns bons minutos quebrando a cabeça, foi possível identificar que o problema era *muito* mais simples do que parecia ser: numa determinada parte do código existia 1 mísero byte sendo escrito a mais.