sexta-feira, 20 de maio de 2011

Uma viagem por tiling WMs (gerenciadores de janelas de tijolinhos)


Post rápido!

Essas últimas semanas decidi dar uma renovada no meu laptop/desktop. A culpa foi da atualização do Ubuntu, que passou a usar o unity como ambiente gráfico padrão. Nesse ponto eu disse chega e decidi instalar o Archlinux.

Com o Archlinux instalado, me lembrei do tempo que usava o Debian Sid e instalava do zero. Colocava enlightenment pra sofrer um pouco mais e aprender Linux e essas coisas que todo mundo podia fazer.

Logo depois decidi encarar a tarefa de utilizar gerenciadores de janelas "tiling" (tem tradução?), bueno, chamemos de gerenciador de janelas de tijolinhos.

Pra começar o wiki do ArchLinux ajudou muito na tarefa de escolha, tem até um quadro comparativo de gerenciadores de janelas de tijolinhos aqui.

Eu não gosto muito de perder muuuuuuuuuuuito tempo configurando gerenciador de janelas. Por isso, fiquei um tempão usando o bendito GNOME. Mas pensei que usar tijolos seria mais construtivo. E foi.

Comecei usando o musca. Zero configuração. Até tem, mas o que vem nele já está ótimo. O problema é que quando fui ver Big Bang Theory com a Maria, minha namorada (programa clássico, quem nunca fez?), o tal do musca me envergonhou, o gerenciamento de qualquer aplicativo de visualização de vídeos não funciona e abrir mão da dupla vlc, mplayer. Acabamos vendo o vídeo no terminal (ALT+CTRL+F1 salvou).

Fui buscar mais no wiki do Archlinux e achei o xmonad. É legal ter que aprender Haskell pra configurar um gerenciador de janelas (?). Mas mesmo assim não fiquei muito satisfeito porque sempre acabava com a 9 telas divididas com um + no meio. Estou brincando bastante.

Agora, estou usando paralelamente o subtle, parece bem legal e eu gerencio as janelas do teclado numérico. E para os moderninhos do ruby, o arquivo de configuração dele é um simples script em ruby. Bem bom.

Bueno, deixa eu ir lá, porque a saga ainda não acabou.

domingo, 3 de abril de 2011

Criando um ambiente com testes em CLisp (clisp + quicklisp + lisp-unit)

Opa.


Cheguei em um dojo na Cinelândia em uma semana dessas aí às 20:30. Bueno, o dojo começava às 19:00, mas ninguém tinha começado a programar. O pessoal estava discutindo o editor de text Emacs (um clássico). Essa discussão vinha de uma outra sobre Lisp e outras coisas.  Entre um papo e outro o pessoal até tentou inciar o dojo com Lisp, mas faltava tudo: gerenciador de pacotes, ferramenta de teste, e afinal, qual Lisp íamos usar? Elisp, Clisp, Scheme, etc...


Na verdade a cabeça da galera estava um turbilhão de idéias [1].


Daí veio a idéia de escrever sobre as ferramentas que para testarmos o nosso código em Clisp. Não que eu domine Lisp, longe disso, mas nada que uma boa pesquisa não faça já que Clisp tem uma quieta porém ativíssima comunidade [2] .


Então, vamos ao resultado...



  • O Gerenciador de pacotes

Bueno, o pessoal do Dojo está bastante acostumado com as linguagens modernosas como Python, Ruby, Perl ou até Lua, onde se tem um gerenciador de pacotes que a gente roda direto da linha de comando do sistema (Linux : shell, Windows : cmd).


Em Clisp não achei nada parecido. Só achei sistemas (são vários) que rodam  dentro do prompt do Clisp. São eles o lispy, quicklisp e ASDF. Cada um tem suas peculiaridades, o ASDF é como um setuptools do Python e já está embutido no Clisp, enquanto os outros fazem todo o trabalho de baixar a biblioteca e instalar, mas não estão embutidos no prompt do 'siminino'. Porém, eles têm algo em comum, aliás com todas as ferramentas do Clisp: fazem questão de se apresentar claramente como bibliotecas de funções da linguagem e simplesmente são isso. Bati um pouco de cabeça com o lispy, nem lembro a razão de ter batido tanta cabeça. Fui logo para o quicklisp que tem uma interface melhor [3].


Vamos ao caso, instalá-lo e configurá-lo: Primeiro baixa o menino:

curl -O http://beta.quicklisp.org/quicklisp.lisp

Pode baixar apontando o navegador para o endereço acima, mas eu preferi o curl por uma questão de já baixá-lo e carregá-lo direto na chamada do interpretador Clisp, com:

clisp -i quicklisp.lisp

Depois disso haverão instruções para instalar o quicklisp. Divirta-se.


O quicklisp irá instalar todos os pacotes na sua pasta de trabalho. O melhor caso seria criar uma pasta para trabalhar ou até mesmo um usuário para brincar com o clisp. O projeto GNU deu seu tempo inclusive pra ensiná-lo a usar o clisp como seu prompt de comando padrão em sistemas UNIX[4] .




  • A ferramenta de testes


A ferramenta de testes que decidi usar foi o lisp-unit, é baseado no junit e todas as ferramentas de teste unitário comuns das linguagens mais usadas nas sessões de dojo. Existem diversas formas de chamar a ferramenta de testes e essas formas seriam bem legais de ser testadas em uma sessão de dojo. Eu fiz de vários jeitos, mas não cheguei a uma conclusão de qual é a melhor maneira de rodar os testes.

Para rodar os testes usamos a função define-test e os nomes utilizados para as funções são aquelas de asserção: assert-equals, assert-error, etc... Fácil não?!




Agora podemos começar a brincar com o Clisp nos dojos e colocar em prática o que aprendermos nessa aula aqui ó[5].


[1] Conversamos sobre tudo nesse dia. Até chegarmos à conclusão de que precisamos de um espaço com mais tempo para fazermos o que quisermos como katas, e alguns hackings.  Rumo ao hackerspace no Rio.
[2] http://www.cliki.net
[3] Vamos entender interface como algo para interagir. Aos novos, interface não é só interface gráfica.
[4] http://www.gnu.org/software/clisp/clash.html
[5] http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/

sábado, 27 de novembro de 2010

Celebrando a cultura alternativa e a liberdade. (Libertinagem)


Segundo post. Só pra falar sobre um momento que mudou minha vida. Na verdade um momento, um disco dentro de uma caixa e papelão bem grande escrito Libertinagem. E mudou minha vida de novo, um arquivo chamado Libertinagem.tar.gz.
Eu tinha uns 15 anos, vivia dentro de uma loja de discos chamada Navena Muzik, no bairro do Flamengo, no Rio de janeiro e essa caixa de papelão chegou à minha mão. O disco começa com uns barulhos de manivela e o áudio do início do filme 1984. Não entendi muito bem…. Mas nas primeiras guitarradas e gritos dos vocalistas vi que era algo que ia bater e não ia voltar nunca, impregnou. Tomou conta da minha mente.
As canções falando sobre sexo, liberdade, roubo, amor; tudo isso como me dissesse: “Bem vindo ao mundo!”
A caixa de papelão inclui ainda toda a ideologia da banda, quebrando todas as barreiras do punk rock e mostrando que era possível pensar e se desapegar de todo o pensamento proto-fascista de todas as “tribos” dos anos 90, início dos anos 2000. Foram o disco e a caixa de peplão que me fizeram passar por tudo que eu passei e passo: as passeatas na rua, a militância, a liberdade de software e a convivência entre olo-fi e a tenologia.
Na verdade, não preciso fazer um grande post o disco, apenas baixem o CD no link acima e sejam felizes. Se quiserem ver a caixa de papelão, apareçam na CASA e comprem o disco por um preço bem barato.
Ouçam com seus próprios ouvidos, sintam com seus próprios dedos, vejam com seus próprios olhos: sintam com suas próprias mentes.