Script absurdamente simples para gerar thumbnails

Para os preguiçosos, como eu, que por algum motivo não querem instalar um programa tipo Picasa, Album ou coisa do tipo para gerenciar suas fotos, mas precisam gerar thumbnails delas. A dica, abaixo, mostra um script extremamente simples (e essa é a intenção: KISS) para fazer o serviço.

Continue reading “Script absurdamente simples para gerar thumbnails”

CMake – Parte 1: introdução

O CMake, desenvolvido pela Kitware, é um sistema de controle de compilação, multi-plataforma e código-aberto. O CMake oferece uma alternativa mais fácil e produtiva as “auto-tools (autoconf, automake, autoheader). Além disso, é interessante notar que o CMake foi escolhido como a ferramenta de build oficial para a nova versão do projeto KDE. Este é o primeiro de uma série de artigos detalhando desde as opções mais básicas até as mais avançadas do CMake.

Continue reading “CMake – Parte 1: introdução”

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.