Colorindo o terminal

rainbownize_tela

A maioria das pessoas não se dá conta mas alguns emuladores de terminal em X suportam a exibição de caracteres usando um esquema de cores de 24-bit — o tal do True Color. Existe até existe uma “ferramenta” chamada lolcat que usa este recurso para exibir o conteúdo de um arquivo em belos padrões de arco íris!

Algo tão “útil” que eu resolvi fazer minha própria implementação. 🙂

Continuar lendo

Anúncios

Animação com Perl e SDL

animation-1

Este é um exemplo bem simples de uma rotina de animação utilizando a biblioteca SDL em Perl. Mas por que justamente em Perl? Fácil, já tinha um rascunho pronto e, se um dia tiver paciência, uso este código como referência para fazer em Python ou mesmo em Ruby.

Continuar lendo

Um pouco mais de Ruby

Lembram da orientação a objetos em Perl? Lembram do método AUTOLOAD e de eu ter comentado sobre ser específico desta linguagem? Pois é, não é assim tão específico quanto a documentação me fez acreditar. Assim como acontece com o unless, o Ruby também tem algo parecido. Chama-se method_missing e funciona mais ou menos assim:

Claro que é possível fazer a linguagem construir dinamicamente o método ausente utilizando define_method mas daí já é enveredar muito nos caminhos da meta programação.

A menos que…

Sempre achei que Perl fosse a única linguagem a implementar a instrução unless.

unless ( scalar @ARGV==0 )
{
  ...
}

Que, na minha opinião, deixa o código mais natural e legível que usar:

if ( scalar @ARGV!=0 )
{
  ...
}

Tanto que sem querer até acabei usando no meu gerador de arquivos IPS. Acontece que hoje eu descobri que Ruby também tem uma implementação do unless:

unless «condição»
  ...
else
  ...
end

E assim como em Perl não existe um “elsif” — “elsunless”? — mas até onde sei, isto aqui:

print "Mais de 10 itens!\n" if ($itens>10);

Só tem mesmo em Perl! 🙂