What you learn, when you read works like Novum Organum by Sir Francis Bacon, is that science is about being a blind man with a stick, and he who most persistently pokes blindly ahead of him, contributes the most to our understanding of the Universe, though only if he is willing to accept what the poking tells him that he does not want to be true.
Archive for the ‘Nerdocracia’ Category
Science is about being a blind man with a stick
Tuesday, September 13th, 2005Security Link Fest
Thursday, September 1st, 2005- E você achando que não tinha mais com o que se preocupar…
- Nem WEP nem WPA: o lance é usar IPSec para protejer links sem-fio
- Apresentação do Ian Clark sobre o Small-World Networks, roteamento nessas redes e coisas similares.
Revisitando Velhos Problemas
Tuesday, August 23rd, 2005Há um tempo atrás eu comentei sobre algumas ferramentas escritas em python para fazer network sniffing. Precisei construir uma ferramenta dia desses e me dei conta de que aquelas listadas não bastariam. Acabei tendo que recorrer à pcapy e à dpkt. A primeira é um binding da libpcap para python, um dos poucos que permite ler um trace-file em off-line. A segunda é uma ferramenta que facilita a leitura e a decodificação de pacotes lidos diretamente da rede. Por exemplo, com a dpkt é muito fácil extrair o payload de um pacote UDP contido dentro de um pacote IP, por sua vez contido dentro de um pacote Ethernet.
E vamos ao linkfest:
- Why’s (poignant) Guide to Ruby
- Fiquei curioso para ver como ruby é e acabei caindo no guia introdutório de uma linguagem de programação mais louco que eu já vi.
- Really getting started with Rails
- Mais outro tutorial sobre rails
- Hugos House of Weblog Horror – Archiv der Kategorie ‘Python’
- Um bom weblog sobre python em alemão.
- Ian Bicking – A Conservative Metaclass
- Ótima referência sobre o que fazer e o que não fazer quando estiveres fazendo uma metaclasse em python…
- MIT OpenCourseWare – Applied Statistics, Spring 2003
- Da série “relembrar é viver”
- HP Technical Reports – Peer to Peer computing
- Para os interessados, uma visão geral da área de P2P pelo pessoal da HP.
Comparações entre Web Frameworks
Wednesday, August 17th, 2005Dia agitado na blogsphere das linguages dinâmicas mais hypes do momento: ruby e python
E, novamente, tudo por causa do Ruby on Rails.
A menos que você esteja escondido em uma caverna (porque o RoR já apareceu até na slashdot), a proposta do Rails (bem como da maioria das web frameworks que estão aparecendo) é facilitar ao máximo a vida do programador de “webapps”, geralmente adotando uma filosofia DRY e organizando a aplicação segundo um modelo MVC. Nada de escrever código para fazer CRUD: a arquitetura faz isso por você. Nada de escrever código SQL: usa-se algum tipo de ORM para transformar acesso a objetos em acessos ao banco de dados.
Desta vez a agitação ocorreu não devido a outra language-war entre o pessoal do Ruby e do Python, mas devido a uma comparação entre o Rails e o Django, a proposta do mundo pyhton para o Rails. Essa comparação, entitulada A comparison of Django with Rails, gerou uma boa seqüência de artigos e comentários.
Enquanto alguns artigos concentraram-se em fazer comentários sobre essa comparação ou de explicar como migrar de um web framework para o outro, outros voltaram para as comparações. entre as linguagens.
Para quem quiser entrar mais no mérito das language-wars, uma boa pedida é o artigo Ruby, Python, “Power” ou uma entrevista com o BDFL do mundo Ruby, onde ele comenta sobre closures e coisas do gênero.
Vale a pena dar uma lida nos comentários de todos os posts “linkados”: muita coisa boa pode ser peneirada de lá. Além disso, vale a pena dar uma olhada no seaside, uma web framework para – pasmem – smalltalk.
Kamaelia
Tuesday, July 12th, 2005Direto do sítio do Kamaelia:
Kamaelia is designed as a testbed for network experimentation using a component architecture designed to simplify creation and testing of new protocols for large scale media delivery systems.
But what is it?
A collection of python generators running concurrently linked via communications channels.
Idéias começaram a pipocar na minha menta na hora que eu li isso. Eles até fazem uma comparação entre esse projeto e o Twisted no blog deles. Detalhe: esse projeto é do pessoal da BBC opensource.
Esse cara faz uns desenhos bacanas.
A pergunta
Tuesday, June 7th, 2005A resposta não é 42, mas “logo”.
Prolixo, agora eu sou prolixo. Vamos ver qual será o comentário que eu receberei com o próximo capítulo…
– Qual é a desses pontinhos afinal? Você poderia me perguntar. Ah, eles me ajudam a não ser prolixo.
Para não pasar batido, o python-link do dia é:Python webcam fun – motion detection.
Doublecast
Monday, May 23rd, 2005Fazia um bom tempo que eu não aparecia por aqui. Resolvi vir e fazer um post mais para fins de bookmarking do que para qualquer outra coisa. É, outras coisas têm ocupado a minha mente e me envolvido numa áurea de culpa da qual está cada vez mais complicado me despir.
De qualquer forma, eu ainda não esqueci esse blog. Acreditem. CSS Style for you WordPress RSS Feed.
Toda vez que eu volto de Fortaleza uma gripe se prende às minhas pernas e eu tenho que carregá-la por pelo menos uma semana a tira-colo para poder livrar-me dela.
Dessa vez peguei uma amidalite, com direito a antibiótico e tudo mais. Pelo visto a amidalite já deu uma trégua, mas deixou uma saudosa (?!) gripe no lugar. Realmente, foi uma ótima semana em Fortaleza.
Eu deveria ter me afastado deles por mais tempo, mas uma tarde de domingo morosa sempre é uma boa desculpa para retomar a antigos vícios.
O chato é que parece que, logo agora que eu finalmente consegui fazer o Titus e a Yuna se agarrarem, terei que me afastar deles mais uma vez. Por mais uma semana, quem sabe? Quem sabe eu consigo pegar o doublecast da próxima vez?!
Sim, falando em vícios, o python-link do dia é esse: The Python Chalange. Descubra o quando você realmente sabe usar a sua linguagem preferida. Mas não vale “trapacear”.
Sniffing network traffic in python
Thursday, April 21st, 2005E os links dos dias são:
- Sniffing network traffic in python
- Sem comentários: o link salvou o dia! Esse lance de fazer tudo em C estava enchendo o saco!
- TcpIpPowerTools
- Deus salve o Google: estava procurando pelo pycap, o binding de python para a pcap e caí nisso. Perfeito: milhares de brinquedinhos e referências para a minha filha
Test-Driven Development in Python
Tuesday, April 19th, 2005Existe um projeto no qual eu me meti e com o qual eu tenho perdido um bom tempo. Venho cozinhando-o há um bom tempo, e já quase o deixei em um estado onde ele pode ser servido — quase.
O problema é que eu comecei a ler sobre UnitTesting e fiquei curioso se isso funcionaria nesse projeto em particular e por isso venho perdendo quase todo o (pouco) tempo que eu gasto com esse projeto escrevendo UnitTests e refatorando o código.
Confesso que ainda não presenciei nenhum momento onde escrever um teste tivesse me salvado algum tempo ou tivesse me ajudado a definir melhor as interfaces do sistema mas estou confiante de que, de alguma forma isso vai mudar — espero. O que me faz pensar assim? Fé.
Nagios, Request-Tracker e scrips
Tuesday, April 5th, 2005Direto do Departamento de Engenharia “BOFH”-ística.
O pessoal daqui do laboratório usa uma combinação de Request-Tracker e nagios para gerência de problemas e monitoração de máquinas. Sempre que algum problema é detectado, o nagios abre uma requisição no Request-Tracker. Sempre que o problema é solucionado, outra requisição é aberta. O problema é que, com os experimentos que estão rodando no laboratório, a carga e o uso de swap das máquinas estão variando muito, indo de picos a vales e questão de minutos. OU seja: a cada hora era necessário ir para o Request-Tracker apenas para fechar todos esses tickets – e são vários. Não mais. o Scrip abaixo soluciona o problema. Mais informações aqui.
Description: Merge Into Existing Ticket on match
Condition: OnCreate
Action: User Defined Custom action preparation code:
1;
Custom action cleanup code:
# If the subject of the ticket matches a pattern suggesting
# that this is a Nagios RECOVERY message AND there is
# an existing ticket (open or new) in the "General" queue with a matching
# "problem description", (that is not this ticket)
# merge this ticket into that ticket
#
# Based on http://marc.free.net.ph/message/20040319.180325.27528377.en.html
my $problem_desc = undef;
my $Transaction = $self->TransactionObj;
my $subject = $Transaction->Attachments->First->GetHeader('Subject');
if ($subject =~ /\*\* RECOVERY (\w+) - (.*) OK \*\*/) {
# This looks like a nagios recovery message
$problem_desc = $2;
$RT::Logger->debug("Found a recovery msg: $problem_desc");
} else {
return 1;
}
# Ok, now let's merge this ticket with it's PROBLEM msg.
my $search = RT::Tickets->new($RT::SystemUser);
$search->LimitQueue(VALUE => 'General');
$search->LimitStatus(VALUE => 'new', OPERATOR => '=', ENTRYAGGREGATOR => 'or');
$search->LimitStatus(VALUE => 'open', OPERATOR => '=');
if ($search->Count == 0) { return 1; }
my $id = undef;
while (my $ticket = $search->Next) {
# Ignore the ticket that opened this transation (the recovery one...)
next if $self->TicketObj->Id == $ticket->Id;
# Look for nagios PROBLEM warning messages...
if ( $ticket->Subject =~ /\*\* PROBLEM (\w+) - (.*) (\w+) \*\*/ ) {
if ($2 eq $problem_desc){
# Aha! Found the Problem TICKET corresponding to this RECOVERY
# ticket
$id = $ticket->Id;
# Nagios may send more then one PROBLEM message, right?
$RT::Logger->debug("Merging ticket " . $self->TicketObj->Id . " into $id because of OA number match.");
$self->TicketObj->MergeInto($id);
# Keep looking for more PROBLEM tickets...
}
}
}
$id || return 1;
# Auto-close/resolve this whole thing
$self->TicketObj->SetStatus( "resolved" );
1;
Vá com Deus
Monday, April 4th, 2005UFMG, 15:15, escrevendo a dissertação… voz ativa, voz passiva, nota de rodapé, identa, reorganiza. Inicio de seção. Tocador de músicas no modo aleatório. Roberta Mirando começa a cantar. É, pelo visto essa dissertação vai demorar para sair…
Que que você esperava? Mais um post sobre a morte do Papa?
Two Is An Impossible Number
Thursday, March 31st, 2005É. A wiki-mania voltou. É simplesmente fascinante como eu consigo me perder na selva da de um wiki, e olhe que nem era no MeatBall.
Tudo começou com um post do Guido van Rossun sobre multi-methods e decorators… Depois, fui no google, cai no WikiWikiWeb (o original) e, depois de descobrir que overloading a overriding não são a mesma coisa de multimethods, acabei descobrindo que dois é um número ímpossível, até porque só existe o zero, o um, e o infinito.
O que isso tem a ver com a escrita da minha dissertação ainda permanece um mistério.
IE was ‘unsafe’ for 98% of 2004, Mozilla safest
Thursday, March 24th, 2005Da próxima vez que o seu colega pró-MS vier, com um sorriso no rosto, lhe contar do último furo de segurança do Firefox, do Linux, do xchat (?!), mostre-o o segiunte: IE was ‘unsafe’ for 98% of 2004, Mozilla safest..
A melhor passagem do texto: “This means fully patched IE was known to be unsafe for an incredible 98 per cent of 2004,”
“How to never miss one episode with BitTorrent and RSS”
Wednesday, March 16th, 2005Simplesmente sensacional! [via Ned Batchel]
Ajax: A New Approach to Web Applications
Friday, February 25th, 2005There are several articles poping up on how the duo JavaScript and XMLHttpRequest are changing the web. First of all I’d recomend reading Ajax: A New Approach to Web Applications. Then, for further reading, one article on XMLHttpRequest and other on how GMail uses this duo.
Nature versus Nurture
Monday, February 21st, 2005I knew Zope has some deep black magic inside it but this is just mind blowing. [Link origin]
In the same spirit of how the environment or how changes to it modify the individual’s perception of it, here comes a link to a nice flame war on Ian Bicking’s blog.
AuthImage
Wednesday, February 16th, 2005Desisti. Tava aparecendo spam demais no meu blog. Nem aquela proteção besta q eu criei estava adiantando. Fiz como Sellaro e instalei o AuthImage. Uma versão antiga, diga-se de passagem, por aque a mais nova está dando problemas que eu não estou com saco de depurar.
Claro que nem tudo vem de graça, e agora, para poder fazer comentários no meu blog, será necessário digitar o conteúdo que aparece numa pequena imagem e habilitar cookies. Paciência….
Novo ano, novo link
Tuesday, January 25th, 2005O Pordeus reclamou e, para alegria geral da nação, vamos para um novo post. Por falta de vontade de falar sobre os problemas do meu nariz, vamos a uma “carrada” de links:
CleverCS posts a cute article about combatting Web spam with TrustRank. Reminds me of Advogato’s trust
(Fonte: Advogato’s Diary for Titus)
metric…- No Rails for Python?
- Getting started with Twisted
- Really Getting Started with Rails
Cortesia Daily Python-URL.
Persecution, terror, war
Sunday, December 12th, 2004In a more general sense, whether you are religious or not, there is no denying that the people inspired (for good or ill) by the Bible have left a remarkable impact on human history…
Persecution, terror, war …
And things just keep getting better and better…
Momentos nerd durante um feriado na UFMG
Wednesday, December 8th, 2004Não pude resistir:
- Which File Extension are You?

- Beautiful Soup
- How to post about Nazis and get away with it – the Godwin’s Law FAQ
- Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems. e outras pérolas como “To me perl is the triumph of utalitarianism. — So are cockroaches. So is ‘sendmail’”.