Wikis vão para a impressão

December 15, 2007, by Antonio Terceiro - No comments yet

Acabei de ler a notícia no site da Wikimedia Foundation. A PediaPress, uma empresa startup da Alemanha desenvolveu uma biblioteca livre chamada mwlib pra fazer parsing de conteúdo do MediaWiki e gerar arquivos para impressão. A Wikimedia Foundation fez uma parceria com a Open Society Institute e a Commonwealth of Learning, que vão financiar o desenvolvimento pela PediaPress.

Aparentemente a mwlib "só" interpresa o conteúdo do MediaWiki, eu não consegui achar o código que eles estão usando pra gerar PDF (demo no site WikiEducator), mas os resultados são só razoáveis. Acho que os resultados poderiam ser melhores se eles estivassem usando LaTeX pra gerar o PDF, mas pelo que eu vi no código da mwlib LaTeX parece estar sendo usado só pra gerar figuras para fórmulas matemáticas.

Outro projeto relacionado interessante é o kiwix, desenvolvido para se distribuir versões offline da Wikipedia, desenvolvido para o Wikipedia on DVD.



atualizando o Planeta PSL-BA

December 4, 2007, by Antonio Terceiro - No comments yet

Acabei de instalar o novo feed de Aurium. Além disso consertei o template do index.html pra gerar corretamente a URL dos feeds ali na barra que lista os blogs todos.

Queria com esse post convidar todos a ajudar na manutenção do planeta. A configuração dele fica num repositório subversion em https://svn.softwarelivre.org/svn/psl-ba/planeta/trunk

Quem quiser fazer alguma mudança de endereço de feed, alterar templates, fazer um design novo, qualquer coisa, usa esse repositório e me manda um patch.

Dica: enquanto a configuração do planeta estiver usando tecnologia obsoleta, vocês podem fazer modificações com commits locais antes de me mandar usando svk ou git-svn. Eles estão disponíveis nos melhores sistemas operacionais, basta digitar apti<Tab> inst<Tab> svk git-svn . wink



bit invertido

December 1, 2007, by Antonio Terceiro - One comment

Sempre me disseram que era possível que um bit se invertesse do nada num banco de memória ou num disco rígido, mas eu nunca tinha visto acontecer. Hoje eu vi.

Eu estava trabalhando no noosfero quando de repente, não mais que de repente, ao rodar um teste de integração o Ruby começou a dar um erro de sintaxe num arquivo do Rails:

terceiro@sede:~/src/noosfero$ rake test:integration
(in /home/terceiro/src/noosfero)
rake aborted!
/home/terceiro/src/noosfero/config/../vendor/rails/actionmailer/lib/action_mailer/vendor/text/format.rb:1456: syntax error, unexpected ',', expecting '\n' or ';'
          def hyphenate_to8word, size, formatter)
                                ^
/home/terceiro/src/noosfero/config/../vendor/rails/actionmailer/lib/action_mailer/vendor/text/format.rb:1456: syntax error, unexpected ')', expecting '='
          def hyphenate_to8word, size, formatter)
                                                 ^
/home/terceiro/src/noosfero/config/../vendor/rails/actionmailer/lib/action_mailer/vendor/text/format.rb:1466: syntax error, unexpected kEND, expecting $end

(See full trace by running task with --trace)

Aquele 8 deveria ser um parêntese, ok, mas o Rails não teria saído com um erro de sintaxe ridículo desse. Fui lá no arquivo e o 8 realmente estava lá, mas não tava dando erro antes, e eu não tinha mudado nada que pudesse disparar a inclusão de um arquivo que não estivesse sendo usado ainda. Fui no repositório subversion e lá o arquivo estava ok.

Diabos, o que é que tinha acontecido? O subversion não reportava o arquivo como alterado, e a última alteração foi exatamente a inclusão do rails no repositório:

terceiro@sede:~/src/noosfero$ svn log /home/terceiro/src/noosfero/config/../vendor/rails/actionmailer/lib/action_mailer/vendor/text/format.rb
------------------------------------------------------------------------
r11 | AntonioTerceiro | 2007-07-02 13:00:11 -0300 (Seg, 02 Jul 2007) | 3 lines

adding Rails version 1.2.3 to the repository

"Ah, preciso ir em frente", eu pensei. Apaguei o arquivo e dei um svn update. Olhei o arquivo e agora o parêntese estava lá de volta. Não podia ser um bug no subversion. Daí eu me lembrei da história da inversão de bit e fui conferir:

terceiro@sede:~/src/noosfero$ irb
>> x = '8('
=> "8("
>> x[0]
=> 56
>> x[1]
=> 40
>> 32 + 16 + 2
=> 50
>> 32 + 16 + *
?> 32 + 16 + 8
SyntaxError: compile error
(irb):5: syntax error, unexpected tSTAR
        from (irb):6
        from :0
>> 32 + 16 + 8
=> 56
>> 32 + 8
=> 40
>> 

o caracter "8" é 56 = 8 + 16 + 32, ou em binário:

00011100

Já o "(" é 40 = 8 + 32, ou em binário:

00010100.

Ou seja: por algum motivo aquele quinto bit inverteu no disco! Tomara que isso não indique que o disco vai abrir o bico ... :-/