Arquivo da categoria ‘Sem categoria’
Brincando com ImageMagick
Ontem recebi um e-mail com um link para um arquivo ZIP gigantesco contendo dezenas de arquivos JPEG. Cada arquivo era um scan de alta resolução de uma página dos originais do Estatuto e da Ata de Fundação do Garoa Hacker Clube. Meu objetivo era gerar um PDF a partir desses arquivos contendo uma imagem em cada página.
Consultando a documentação do convert, um frontend para o ImageMagick, descobre-se facilmente como gerar um PDF:
$ ls -lh
total 12M
-rw-r–r– 1 rodrigo rodrigo 2.5M 2011-09-05 20:49 garoa 0.jpeg
-rw-r–r– 1 rodrigo rodrigo 2.6M 2011-09-05 20:50 garoa 1.jpeg
-rw-r–r– 1 rodrigo rodrigo 2.3M 2011-09-05 20:52 garoa 2.jpeg
-rw-r–r– 1 rodrigo rodrigo 1.8M 2011-09-05 20:53 garoa 3.jpeg
-rw-r–r– 1 rodrigo rodrigo 1.3M 2011-09-05 20:57 garoa 4.jpeg
-rw-r–r– 1 rodrigo rodrigo 1.5M 2011-09-05 20:56 garoa 5.jpeg
$ convert *.jpeg ghc_ata_fundacao_highres.pdf
$ ls -lh *.pdf
-rw-r–r– 1 rodrigo rodrigo 11M 2011-09-09 17:19 ghc_ata_fundacao_highres.pdf
No entanto, já que as imagens originais são grandes, o PDF também ficou enorme. Sendo assim, usei o mesmo convert para reduzir as imagens. Como havia várias imagens, pensei imediatamente em usar um for para não ficar repetindo comandos:
$ for i in *.jpeg; do mogrify -resize 30% $i; done
Como o leitor verá, esse comando não funcionou! Os arquivos tem um espaço no nome e o argumento é interpretado incorretamente na linha de comando pois o espaço não é “escaped“. Achei um workaround para isso usando a opção -exec do comando find. Além disso, usei o mogrify, que faz a mesma coisa que o convert mas sobrescreve o arquivo original:
$ find *.jpeg -exec mogrify -resize 42% {} \;
$ ls -lh
total 13M
-rw-r–r– 1 rodrigo rodrigo 252K 2011-09-09 17:20 garoa 0.jpeg
-rw-r–r– 1 rodrigo rodrigo 272K 2011-09-09 17:20 garoa 1.jpeg
-rw-r–r– 1 rodrigo rodrigo 213K 2011-09-09 17:20 garoa 2.jpeg
-rw-r–r– 1 rodrigo rodrigo 132K 2011-09-09 17:20 garoa 3.jpeg
-rw-r–r– 1 rodrigo rodrigo 107K 2011-09-09 17:20 garoa 4.jpeg
-rw-r–r– 1 rodrigo rodrigo 128K 2011-09-09 17:20 garoa 5.jpeg
E agora é só gerar o pdf com as imagens reduzidas:
$ convert *.jpeg ghc_ata_fundacao_lowres.pdf
$ ls -lh ghc_ata_fundacao_lowres.pdf
-rw-r–r– 1 rodrigo rodrigo 1.2M 2011-09-09 17:36 ghc_ata_fundacao_lowres.pdf
Palestra SoC 2010
Ontem o PoliGNU realizou uma palestra sobre o Google Summer of Code 2010 na Poli. O evento foi um sucesso, com cerca de 60 presentes, com direito a continuar com uma oficina de desenvolvimento de software livre no EP. Segue um link para a apresentação de slides, com algumas informações úteis:
Para registro, fica o cartaz que fiz para o evento:

Pior que naufragar é não partir!
Parafraseio Amyr Klink para começar esse blog de uma vez por todas. Há alguns anos tenho essa ideia tão fixa em minha cabeça quanto o emplasto na de Brás Cubas, mas os posts que mais queria publicar não saem do forno (vulgo preguiça). Enfim, comecemos. Com pensamentos pequenos e às vezes desconexos.
Aproveito para deixar mais um trecho de Mar Sem Fim:
Um homem precisa viajar. por sua conta, não por meio de histórias, livros ou TV. Precisa viajar por si, com seus olhos e pés, para entender o que é seu. Para um dia plantar as suas próprias árvores e dar-lhes valor. Conhecer o frio para conhecer o calor. E o oposto. sentir a distância e o desabrigo para estar bem sob o próprio teto. Um homem precisa viajar para lugares que não conhece para quebrar essa arrogância que nos faz ver o mundo como o imaginamos, e não simplesmente como é ou pode ser; que nos faz professores e doutores do que não vimos, quando deveríamos ser alunos, e simplesmente ir ver. (Amyr Klink)