Escrito por Helio Loureiro
Categoria:

Na minha última viagem ao exterior, mais de 1 ano atrás, bem antes de qualquer palavra parecida com "crise" surgir na mídia, adquiri um Wireless router WGR614 v7 da Netgear.

Funciona a contento, como a grande maioria dos produtos desse tipo, mas tem um grande ponto negativo: a falta de interfaces telnet e snmp para comandos e monitoramento.

Como precisava ter uma idéia do meu tráfego de rede, resolvi fazer um script para ser usando com o MRTG. Escrito em perl, precisa do navegador via texto "lynx" para buscar os dados:

#! /usr/bin/perl
# WGR614v7_traffic.pl
# by Helio Loureiro
### Variables
$login = "admin";
$password = "admin";
$netgear = "192.168.1.1";
$option = $ARGV[0];
###
if ($option !~ m/WAN|LAN|WLAN/) {
print "Use: $0 [WAN|LAN|WLAN]\n";
exit 1;
}
### Using a command at this moment
$location = "http://".$netgear."/RST_stattbl.htm";
$cmd = "lynx -source -auth ".$login.":".$password." ".$location. " 2> /dev/null";
open(CMD, "$cmd|") or die "Impossible to connect in $netgear: $!\n";
$check = 0;
$idx = 0;
@NETGEAR ;
$description;
while ($line = ) {
if ($line =~ m/description/) {
$description = $line;
$description =~ s/.*=//;
$description =~ s/\"|>//g;
chomp $description;
}
# to ignore lines not related
if ($line =~ m/$option/) {
$check++;
}
next if (! $check);
last if ( $line =~ m/<\/tr>/ );
chomp($line);
# removing html tags
$line =~ s/<\/.*//;
$line =~ s/.*>//;
# removing blank lines
next if ($line !~ m/\w|\d/);
$NETGEAR[$idx] = $line;
$idx++;
}
$description .= " ".$NETGEAR[0]."/".$NETGEAR[1];
print $NETGEAR[2]."\n";
print $NETGEAR[3]."\n";
print $NETGEAR[-1]."\n";
print $description."\n";

O programa, chamado "WGR614v7_traffic.pl", exige como argumento as opções WAN, LAN ou WLAN.

Para o MRTG, adicione uma entrada como:

Target[wan]: `/home/helio/bin/WGR614v7_traffic.pl WAN`
 MaxBytes[wan]: 1000000
 Title[wan]: WAN packets traffic at WGR614v7
 PageTop[wan]:

<h1>WAN packets traffic at WGR614v7</h1>
<table>
<tbody>
<tr>
<td>System:</td>
<td>WGR614v7</td>
</tr>
<tr>
<td>Maintainer:</td>
<td>Helio Loureiro</td>
</tr>
<tr>
<td>Interface:</td>
<td>wan traffic</td>
</tr>
<tr>
<td>IP:</td>
<td>none</td>
</tr>
<tr>
<td>Max wan traffic:</td>
<td>2 Mbps</td>
</tr>
</tbody>
</table>

 YLegend[wan]: Packets/sec 
 ShortLegend[wan]: Pkts

Infelizmente o dados fornecido está em packets/second. Como não tenho a mínima idéia de qual packet size está sendo usado... fica um dado meio perdido. Também notei, via MRTG, que os dados não são tão precisos assim: as entrada e saída tem quase os mesmos valores, o que não dever ser verdade. Mas ao menos tenho alguma idéia do meu tráfego.

Escrito por Helio Loureiro
Categoria:

FreeBSD laptop Essa foi a mensagem que recebi tentando acessar meu disco externo. Retrocedendo um pouco e adicionando a explicação.

No meu HD externo, de 160 GB (já falei dele anteriormente), tenho instalado Ubuntu. Ou tinha. Instalei via Qemu num host FreeBSD. Mas funcionava perfeitamente utilizando boot via USB. Estava testando uns aplicativos quando notei que a versão era 7.4, da época de quando instalei (e comprei o HD), e que por isso os aplicativos não funcionavam. Seguindo um passo-a-passo moroso, atualizei para o o 7.10 e depois para o 8.10. Ao terminar o upgrade para 8.10, nem testei com boot via USB, já voltei ao FreeBSD, com a pretensão de utilizar o mesmo via qemu. Ao acessar o disco... falha... utilizei o fsck.ext2 do FreeBSD, mas acho que foi a pior coisa que fiz: perdi a partição raiz (/) e alguns dados do /home. Tentei recuperar, mas... no fim reinstalei o Ubuntu 8.10.

Disco externo Dessa vez aguardei o final da instalação (fiz via qemu) e dei um boot via USB para verificar. O sistema rodou perfeitamente ajustado (melhor até que o FreeBSD), o que me fez voltar a pensar em voltar a usar Linux no meu laptop. Ao reiniciar no FreeBSD, tive uma surpresa tentando montar a partição ext3 que foi formatada durante a instalação, justamente a raiz (/). O erro foi o descrito acima: ls: /mnt/ext2: Bad file descriptor

Verifiquei as outras partições ext3 e... todas funcionando perfeitamente no FreeBSD (por funcionando, entenda como fsck.ext3 e mount_ext2 na partição). Uma busca no google não mostrou muitos resultados úteis, mas dentro do site do FreeBSD, encontrei alguns usuários com o mesmo problema:

Aparentemente um problema relacionado ao "inode size", que era anteriormente formatado como 128, mas passou a utilizar 256 e até 128.

Felizmente esse último link, além de apresentar uma solução, mostrou uma dica para buscar no sistemas de bug do FreeBSD (PR kern/124621). Encontrei o referido problema, ainda como "open", e a mesma solução do último link, via patch. Tentei a sugestão do responsável pelo ticket, que era atualizar a e2fsprogs. Depois apelei para o patch. E inclui minha contribuição. Pequena, irrisória, até mesmo ridícula, mas foi minha primeira contribuição ao projeto... Developers do kernel, aguardem que aqui vou eu :-)

O link do registro de minha proeza:

http://www.freebsd.org/cgi/query-pr.cgi?pr=124621&cat=
Escrito por Helio Loureiro
Categoria:
{mosimage} Estava buscando atualizações para meu Palm Tungsten E quando encontrei o link abaixo, que mostra o mesmo rodando Linux.

Muito legal, mas pouco informativo, pois somente mostra em funcionamento, mas não traz muita informação de como fazer isso. Uma rápida busca no google forneceu outro link interessante: Palm Tungsten E rodando Linux, no Guia do Hardware. Infelizmente também muito desatualizado, uma vez que o link onde o a imagem bootável está não se encontra mais lá (a imagem, não o link).

Ainda seguindo o tutorial do Guia do Hardware, baixei a versão do Familia-PDA para HP6300. Agora falta acertar o garux para boot. Eu já tinha testado anteriormente, mas só consegui apagar meus arquivos do Palm, seguido de um kernel panic. Vamos ver se consigo mais sucesso dessa vez...

Escrito por Helio Loureiro
Categoria:

Agora vou poder verificar quem visitou minha página a partir de seu local de origem. Não acredito que seja muito preciso, uma vez que deve ser baseado na região de origem do range de IP, que não tem necessariamente relação com localização, mas ao menos é divertido e dá pra fazer a gente refletir sobre a possível origem dos visitantes.

Ainda falta editar o rodapé do mamboserver para incluar o tag abaixo:

Locations of visitors to this page
Escrito por Helio Loureiro
Categoria:

{mosimage} Recebi um mensagem sobre o novo a versão 7.1 estar finalmente pronta na lista da FUGBR (FreeBSD User Group)nesse fim de semana. Meu cvsup não mostrou nada de novo.

Após uma olhada mais detalhada, vi que faltava alterar o arquivo de configuração para:

 *default release=cvs tag=RELENG_7_1 

Isso foi suficiente para baixar a versão 7.1 completa (eu estava com a versão 7 STABLE anteriormente). Já no UPDATES, pude verificar:

 20090106: FreeBSD 7.1-RELEASE 

O engraçado foi que atualizei via cvsup no dia 03. Mas enfim... fiz um make world e...

Copyright (c) 1992-2009 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988,
1989, 1991, 1992, 1993, 1994 
The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. 
FreeBSD 7.1-RELEASE #23: Sat Jan 3 23:41:26 BRST 2009 

Hoje, dia 5, recebi a mensagem de release da versão 7.1:

Date: Sun, 4 Jan 2009 23:29:51 -0500 
From: Ken Smith <Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.> 
To: Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo. 
Subject: [FreeBSD-Announce] FreeBSD 7.1-RELEASE Available 

The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 7.1-RELEASE. This is 
the second release from the 7-STABLE branch which improves on the functionality of FreeBSD 7.0 and introduces
some new features.

Some of the highlights:

- The ULE scheduler is now the default in GENERIC kernels for amd64 and i386 architectures. The ULE scheduler
significantly improves performance on multicore systems for many workloads.
- Support for using DTrace inside the kernel has been imported from OpenSolaris. DTrace is a comprehensive
dynamic tracing framework.
- A new and much-improved NFS Lock Manager (NLM) client.
- Boot loader changes allow, among other things, booting from USB devices and booting from GPT-labeled devices
- The cpuset(2) system call and cpuset(1) command have been added, providing an API for thread to CPU binding
and CPU resource grouping and assignment.
- KDE updated to 3.5.10, GNOME updated to 2.22.3.
- DVD-sized media for the amd64 and i386 architectures

For a complete list of new features and known problems, please see the online release notes and errata list, available at:
http://www.FreeBSD.org/releases/7.1R/relnotes.html
http://www.FreeBSD.org/releases/7.1R/errata.html
[...]

Eu até agora não notei muita diferença, uma vez que já tinha alterado o escalonador pra ULE desde a instalação do 7.0, mas aparentemente os travamentos no boot, ao iniciar o dual-core via ACPI, pararam.

Escrito por Helio Loureiro
Categoria:
Ano novo, vida nova. Mudanças no trabalho (de área) e um pouco de férias. Até dia 18, estarei aproveitando meus dias em ócio, um pouco produtivo, espero eu, uma vez que vendi minha prancha de surf e estou esperando uma outra (maior)ficar pronta.

Durante o natal e ano novo, recebi vários SMSs desejando felicidades, etc. Com meu ócio criativo à 1000, resolvi voltar um pouco aos velhos códigos de Python, com Tkinter. Criei uma interface para envio de SMSs em massa, tipo SPAM.

{mosimage}

Terrível tentação aos SPAMMERs e melancólico sofrimento para nossos celulares. Mas felizmente utilizei uma interface interna da Ericsson para isso, então somente funcionários poderão utilizar. Fora isso, não pretendo liberar o código externamente. Talvez dentro da empresa, onde já ganhei um relógio com frequencímetro cardíaco devido às minhas contribuições em 2008.

Falando do código, muito simples, utilizando Entry(), Text(), Label() e Button(). Na verdade a facilidade é graças ao Tk mesmo. As fontes das letras anteriormente eram bem *toscas*, assim como o widget, que era todo cinza. Consegui melhorar a aparência do mesmo com o código abaixo:

{CODE} root = Tk() root.option_add("*Font", "arial") root.option_add("*Label.Font", "helvetica 9 bold") root.option_add("*Background", "gray") root.option_add("*selectBackground", "light gray") root.option_add("*selectForeground", "black") root.config(background="gray") {/CODE}

Estou tentando melhorar o código adicionando um splash screen no início, e outra tela durante o envio, uma vez que ao apertar o botão para enviar, a tela "congela" e só volta ao final. Infelizmente já notei que o Tk é limitado nesse ponto... vamos ver onde chego.

Também depois de *lançamento*, descobri que somente 154 caractéres são enviados. Preciso ver se coloco algum contador pra evitar cortes. Se você recebeu uma mensagem truncada, já sabe: fui eu :-)

E feliz 2009!

Escrito por Helio Loureiro
Categoria:
{mosimage}
Escrito por Helio Loureiro
Categoria:
Depois de ter escrito que "Infelizmente o Gaim, ou como é atualmente chamada, Pidgin, não tem uma forma para bloquear isso (não que eu saiba)", encontrei a solução.

Basta clicar no menu "Tools" e na opção "Privacy". Tentei procurar isso na documentação, FAQ, mas não encontrei. Achei por acaso. Apliquei a opção como mostrada abaixo e... no more SPAMs. Aparentemente também não recebo mais pedido de invitation para novos amigos, mas...

{mosimage}

Escrito por Helio Loureiro
Categoria:
{mosimage}

Recentemente tenho recebido diariamente várias mensagens como essa. Infelizmente o Gaim, ou como é atualmente chamada, Pidgin, não tem uma forma para bloquear isso (não que eu saiba).

Em Linux é possível fazer um "bypass" utilizando as regras de "string match" do iptables. Utilizando algo como:

{CODE} iptables -A INPUT -j DROP -s 0/0 -d 0/0 -m string --algo kmp --string "My cam still is not working. Message me on" {/CODE}

é suficiente. O uso do --dport PORT poderia ajudar a regras ser mais eficiente, mas isso infelizmente pode ser burlado pelo protocolo do MSN, dependendo da forma que é usado, então a forma mais genérica funcionará (mas irá verificar todos os pacotes chegando à sua máquina).


FREEBSD

E quanto ao FreeBSD? Foi a mesmo pergunta que me fiz. Não existe suporte para "string matching" tanto no ipfw quanto no pf (ou mesmo no ipfilter). Existem soluções utilizando os logs de firewall para decodificar, mas não achei que algum desses fossem eficiente o suficiente para aplicar. Continuo recebendo meus SPAMs diários... uns 15 por dia...

Escrito por Helio Loureiro
Categoria:
Uma forma de identificar se as pessoas a sua volta estão fazendo "porra nenhuma" é através da quantidade de links do Youtube que se recebe. Felizmente alguns deles são realmente interessantes, como esse que mostra um PSP sendo carregado com uma banana. Isso reforça o jargão "banana é energia". Vou tentar fazer isso e também armazenar alguns jogos na banana. Quem sabe não descubro uma nova aplicação?
Escrito por Helio Loureiro
Categoria:
Vídeo antigo. Achei no meu trash-hd-externo, mas como era muito grande, não fiz upload pra lugar nenhum. Em compensação, encontrei o mesmo já publicado (e em partes):

Escrito por Helio Loureiro
Categoria:

 Esse é realmente um fim de semana produtivo para mim. Acho que desde que criei o meu domínio (e conseqüentemente a página web), nunca postei tanta coisa como agora. Não, não estou desempregado (ao menos não ainda).

Como algumas da pessoas mais próximas de mim já sabe, sou um feliz proprietário de um console da Nitendo: o Wii. Já fiz críticas anteriores ao mesmo devido à baixa qualidade dos gráficos, poucos jogos, etc, mas acabei comprando o mesmo por uma oportunidade que surgiu (o que inclui até um Guitar Hero 3 completo). E não estou arrependido. Os gráficos são realmente mais pobres que seus primos ricos, PS3 e X-Box 360, assim como a falta de títulos também é gritante. Mesmo assim foi uma feliz surpresa adquirir o brinquedo, que não me exigiu mais um gasto adicional: uma TV LCD (PS3 que o diga).

A primeira boa surpresa foi o gasto para "destravar" o mesmo: R$ 180,00. Quase o mesmo custo de um jogo (por volta de USD 50,00). Essa economia foi vital pois dos mais de 50 jogos que peguei com os amigos, a grande maioria não passa de porcaria. Inclusive jogos recém-lançados como "The Mummy - The Dragon Emperor". Mas alguns jogos são muito mais divertidos de jogar, como Resident Evil, Scarface e Godfather. O fato da mira ser feita através do controle todo torna a jogabilidade muito melhor se comparado ao controle do PS2 que tenho. Jogos como Medal of Honor on-line então... verdadeira guerra (sem bem que a molecada a partir de 8 anos me mata tão rápido que mal consigo mirar).

Uma coisa que falta ao Wii é o suporte à DVDs e DIVX (filmes no format AVI). Devido a um problema de custos, o suporte a DVD de filmes não foi inserido no produto. Não que isso seja realmente um problema já que adquiri uma plataforma de jogo, não um produto para assistir filmes, mas não seria nada mal se isso fosse incluido.

Buscando na rede alguma alternativa para isso, encontrei soluções bem interessantes. A primeira foi o FreeVO , uma solução baseada em Linux (atualmente um live cd) para transformar seu PC em uma estação multimídia. A idéia é criar uma plataforma em termos de interface com o usuário, mas que rode em qualquer tipo de hardware suportado por Linux: de Xbox a PS2 e... Wii!!!

 

A segunda solução é Projeto WiiLi , que nada mais do que o desenvolvimento do Linux para Wii.

Ambos são projetos interessantes, mas nenhum está funcionando efetivamente no Wii infelizmente. Enfim... esperança é a última que morre e mais dia, menos dia, isso irá acontecer. E quando acontecer, eu estarei lá...