Alguns minutos antes de ir pro
FISL 10, eu lancei a segunda versão do
site lujorge.com.br. Esse site, eu fiz pra ajudar a divulgar o trabalho que o meu Tio Luiz Henrique, mais conhecido como Tí Lú, faz... A primeira versão foi uma experiência feita na tarde do Dias da Mães, onde exibia todos os trabalhos como
thumbnails e uma foto grande. Não me preocupei com o tempo que levaria para carregar o
site e nem se os
thumbnails iriam ficar bonitos. Apenas joguei tudo lá pra mostrar pra minha família e pro meu Tio, e esse foi o resultado:

Já essa segunda versão, eu fiz usando:
Django,
jquery e o
galleriffic. E como não sou um
designer, ou melhor um
hippie, aproveitei que o
lincoln fez um menu legal pro
EMSL 2009 e licenciou como
GPL, pra usar no site. Esse é o resultado dessa segunda versão:

Agora é divulgar o trabalho pra tudo que é canto!
Sobre o meu Tio:
"
Sou natural de Belo Horizonte/MG, onde resido atualmente. Tenho 35 anos, desenho desde os 5 anos de idade e me formei na Escola de Belas Artes da UFMG em 2000, me especializando em escultura e pintura. Hoje em dia faço trabalhos de decoração em festas e tenho produzido trabalhos para possíveis exposições."
Eu uso o
ZoneMinder aqui em casa, que é um software para
CFTV (Circuito Fechado de Televisão). Tempos atrás eu bloguei
falando do zoneminder. Hoje, quando atualizei para versão
1.24.1-1 notei a seguinte mensagem:
Warning: Cannot modify header information - headers already sent by
(output started at /usr/share/zoneminder/lang/pt_br.php:751) in
/usr/share/zoneminder/includes/functions.php on line 97
Na hora eu já imaginei o que era. Abri o arquivo "/usr/share/zoneminder/lang/pt_br.php" e lá estava, uma linha em branco aṕos a tag
?>, que é a tag que fecha comandos
PHP. Olhei os outros arquivos de línguas e alguns deles também possuíam a linha em branco. Então, lá vou eu fazer um
patch pra corrigir esse erro. Pensei um pouco, fiz alguns testes e não consegui. Como sou preguiçoso fui logo perguntar pra alguns amigos que também não puderam me dar uma solução na hora. Daí, evitei a fadiga e
encontrei o comando abaixo:
sed '${/^$/d}' arquivo
Esse comando só removia uma única linha, eu tinha casos mais de uma linha... Procurei mais e
achei um exemplo bem legal:
sed -e :a -e '/^\n*$/{$d;N;ba' -e '}' arquivo
Com esse comando, era só eu fazer um loop nos arquivos de línguas, gerar um novo arquivo com as modificações, executar o diff para comparar as mudanças e salvar num arquivo para enviar pros mantenedores do zoneminder. Acabei escrevendo o script abaixo:
#!/bin/bash
files=$( find . -name "*.php" )
# remove as linhas em branco do final do arquivo e cria um arquivo temporário
for file in $files; do
sed -e :a -e '/^\n*$/{$d;N;ba' -e '}' $file > "$file.new"
done
# faz a comparação entre o arquivo antigo e novo e salva
for file in $files; do
diff -burN $file "$file.new" >> patch.metal
done
# remove os arquivos temporários
find . -name "*.new" | xargs rm
Aṕos executar o script acima, abri o arquivo gerado, o "patch.metal" e fui conferir. Aparentemente tudo certo, agora vou abrir o bug e torcer pra ele
não ficar mais de um ano pra ser fechado.
UPDATE:
Bug reportado,
#531910, agora vamo ver...
Na espera pra lançar o
lenny, o
Gnome 2.26 ficou congelado na
experimental um bom tempo. Como eu não aguentei esperar, como vocês podem ver abaixo eu adoro "rodar o
aptitude", acabei instalando o "novo" gnome...
history | awk '{ a[$2]++ } END { for(i in a) { print a[i] " " i }}' | sort -rn | head
111 aptitude
82 aireplay-ng
82 aircrack-ng
42 du
27 vim
23 airodump-ng
18 ls
13 ifconfig
10 dpkg
9 sudo
Só que, esses pacotes da experimental, precisam ser atualizados "na mão", por possuírem uma prioridade menor. Pra quem quiser saber o processo, o
kov fez
um post prático e rápido explicando como fazer isso.
Nas últimas semanas, os pacotes que estavam na experimental começaram a ir pra
unstable e eu até tirei a experimental da minha
lista de repositórios. Hoje, eu percebi que vários dos meus pacotes não estavam sendo atualizados, porque eu não removi os pacotes do "
/etc/apt/preferences", que é o arquivo que guarda as configurações de políticas do
APT e fazem os pacotes da experimental ficarem com a "mesma" prioridade da unstable. Removido o arquivo, tudo voltou ao normal. Portanto, lembrem que esse arquivo existe, hehe.
Pegar textos de um
Wiki, jogar num editor de textos tipo o
Openoffice Writer, editar esses textos e distribuir, é caracterizado obra derivada?!
( comecei a escrever esse post em 02 de setembro 2008; mas só agora publicando, antes tarde do que nunca =P )
Como alterar um commit feito no
Git que esta no meio da árvore?
Fiz essa pergunta pro
kov na mesma época que comecei a escrever e essa foi a resposta dele na época:
Primeiro é preciso criar uma tag para identificar o commit que você quer editar.
Nesse exemplo, estou editando o commit 'a9851296d5eb52161fcb151d58f4aaee3f9ce416' e criando a tag 'bad'
git tag bad a9851296d5eb52161fcb151d58f4aaee3f9ce416
Colocar o commit no topo
git checkout bad
Agora é fazer as modificações nescessárias...
Adicionar os arquivos editados no HEAD
git add 'arquivos alterados'
Refazer o commit
git commit --amend
Reconstruir o histórico
git rebase --onto HEAD bad master
git checkout master
Recentemente ele me mostrou outras maneiras mais elegantes. Mas fica pra quem quiser deixar nos comentários =D

O
Encontro Mineiro de Software Livre acontece anualmente em
Minas Gerais. Depois de ser sediado por 2 anos consecutivos em cidades do interior de Minas Gerais, o evento voltará para a região metropolitana em 2008. O EMSL foi criado com o objetivo de fomentar a aproximação e o intercâmbio entre os vários grupos que utilizam o software livre no estado, assim como incentivar seu uso por novos grupos. Esta edição, com o lema "Liberdade para Aprimorar", visa promover a contribuição e o aperfeiçoamento do software livre de forma consciente e colaborativa.
Este ano o Encontro Mineiro de Sofware Livre será realizado na
UNI-BH, de
26 a 29 de Novembro de 2008.
Hoje eu descobri que mais uma foto minha faz parte da
Wikipedia. Acho que nem foi tanto pela beleza, mas sim pelo licenciamento
CC-by-sa que escolhi para todas as minhas fotos publicadas no
meu pedaço do
Flickr. A
primeira foto é uma de
Palmas/TO e a
segunda foto é de
Brasília/DF, que esta
linkada em várias outras entradas. Preciso visitar outros cantos e fotografar mais =D
14-09-2008:
Acabei de mudar a licença de todas as fotos para
CC-by
Eu não abandonei esse blog! Apesar do silêncio de quase 1 ano, em alguns momentos eu tentei escrever, mas faltava algo (ainda falta)...
Já tem 1 ano e meio que voltei a morar em
BH. Nesse tempo, eu saí do
minC e me dediquei aos estudos que eu tinha abandonado em 2004 quando fui morar em
Brasília. Me formei, agora sou um bacharel em Ciência da Computação (o que mudou?!).
Mas isso nem foi tão marcante, porque no dia 8 de maio desse ano, eu
cortei as tranças. Isso sim foi, como
relatou o dpadua e seus seguidores, muuuuito marcante. Hoje fez 4 meses, depois de quase 12 anos de cabelo grande (e também foi um dia bem estranho...).
No final de julho eu fui convidado a fazer parte da
AlfaiaTI, e aceitei. Trabalhar com o Lincoln,
Kov e
Gabriel (que até então não tinha ido pro Rio de Janeiro) pra mim ia, e tá sendo, muuuuito bom. Sempre gostei de trabalhar com amigos.
Em agosto, aconteceu a
debconf8 e como praticamente a galera toda aqui de BH foi em massa pra Argentina, eu aproveitei pra ir na
formatura da Haina, lá em Brasília. Foi a segunda semana em BSB, já que eu estava lá uns 10 dias antes... Essa semana em BSB foi marcante, aconteceu a
Batalha de Playlists na casa do emerson e
foi perfeito. O
cezinha estava totalmente inspirado quando deu a idéia =D
No mais, o metaldot ainda respira e a vida tá seguindo...
Algum tempo atrás, o laptop da minha mãe não queria dar
boot usando
CDROM, e ainda, para piorar, eu nem sabia a senha da
BIOS. Antes de pesquisar, perguntei pro
Lucius Curado se ele sabia como dar boot pelo
GRUB, ele logo me enviou um link,
Boot CDROM through GRUB, que resolveu o meu problema =D
Pequeno passo-a-passo retirado do link:
Passo 1: baixar o
memdisk.bin através do link ou
wget http://www.lrz-muenchen.de/~bernhard/memdisk.bin
Passo 2: baixar o
sbootmgr.dsk através do link ou
wget http://www.lrz-muenchen.de/~bernhard/sbootmgr.dsk
Passo 3: editar o menu do grub, /boot/grub/menu.lst colocando a seguinte entrada:
title CDROM
root(hd0,0)
kernel /boot/grub/memdisk.bin
initrd /boot/grub/sbootmgr.dsk
Passo 4: enviar os arquivos pro lugar certo e atualizar o GRUB
cp memdisk.bin /boot/grub
cp sbootmgr.dsk /boot/grub
update-grub

Encontrei o
Pyro quando precisei desenvolver um sistema usando chamadas
RPC para matéria de Sistemas Distribuídos.
Pyro (PYthon Remote Objects) é um framework para o desenvolvimento de sistemas distribuídos, escrito em
python. A licença na qual ele é distribuído é a
MIT Software License. O Pyro é uma super alternativa à
RMI,
DCOM, etc.