evolution+bogofilter

Estou a algumas semanas tentando fazer meu evolution filtrar emails "junk". Instalei o bogofilter, o spamassassin, habilitei os plugins no evolution e marquei todas as mensagens que eram junk (~300), torci pela primeira vez pra receber um spam , ele veio e não funcionou. Perguntei pro cascardo e também para ophractal se eles sabiam como habilitar. O phractal falou que no evolution dele funcionava perfeitamente. Verifiquei com ele e as configurações estavam iguais. Apaguei a minha wordlist (~/.bogofilter/wordlist.db) e marquei novamente os spams como "junk". Torci pela segunda vez pra receber um spam, ele veio e também não funcionou.

Hoje, lendo a blogada do Jack Wallen, descobri que eu estava treinando errado o meu filtro. É preciso marcar os emails que não são "junk" como "junk" e depois desmarcá-los. Fiz isso e torci pela terceira vez. O spam veio e foi direto pra minha pasta "junk", yeah!

metalstream

A um 1 atrás eu me formei (mas até hoje não busquei o diploma) e como projeto final, eu fiz um cliente Jabber/XMPP que armazena links de feeds XML (RSS ou Atom) no PubSub, tudo em JavaScript. Que no fundo é um cliente que agrega feeds XML a cada contato. Meu primeiro orientador achou que eu estava pirando muito e podou um tantão o que eu iria implementar. Em apenas dois dias eu fiz o cliente, usando como base um exemplo da jsjac. Fiz uma extensão da jsjac que chamei de pubsub.js e outra para recuperar as fotos dos usuários chamada vcard.js. Usei a jQuery pra fazer algumas coisas no cliente, mas como não pude pirar muito naquela época, tá tudo bem simples. Espero voltar a mexer nesse projeto logo.

Rodei um demo aqui: http://metalstream.alucinados.com/

E quem quiser mandar patch, eu uso git, é só rodar um:
git clone http://git.alucinados.com/git/metalstream.git

Alguns screenshots dele funcionando:
Login:
Login
Cadastrando um Feed:
Cadastrando um Feed
Lendo um Feed:
Lendo um Feed

Jogo dos 7 erros

1) Teste de Memória do Windows:
Teste de Memória do Windows
2) CD de recuperação da HP com Windows:
CD de recuperação da HP com Windows
3) Instalação do MacOSX:
Instalação do MacOSX

lujorge.com.br

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:

lujorge.com.br



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:

lujorge.com.br



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."

patch pro zoneminder

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...

mantendo seus pacotes Debian da unstable e da experimental atualizados

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.

é obra derivada?

Pegar textos de um Wiki, jogar num editor de textos tipo o Openoffice Writer, editar esses textos e distribuir, é caracterizado obra derivada?!

Como alterar um commit feito no Git que esta no meio da árvore?

( 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

Encontro Mineiro de Software Livre 2008

Encontro Mineiro de Software Livre 2008



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.

fotógrafo profissional

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