Helio Loureiro

Bem-vindo ao código fonte

  • Increase font size
  • Default font size
  • Decrease font size

Procurando receitas exóticas? O que acompanha melhor um bom vinho do porto? O melhor da comida lusitana? Pois você está completamente perdido, pois quem cobre esse assunto é outro Hélio Loureiro, um famoso cozinheiro português. Por aqui, nem receita de ovo frito tem.

Welcome to the Frontpage

BSD is Dying (é, tá morrendo)

E-mail Print PDF
Image A alegria do homem é realmente fugaz. Só o fato de olhar meu site e ver que não foi hackeado (SIC) novamente já me deixa feliz.

Assistindo alguns vídeos de umas palestras, encontrei por acaso o vídeo abaixo. Desconsiderando o título (BSD está morrendo), é uma palestra muito legal e engraçada. Infelizmente totalmente em inglês e sem legendas. Mas não se acanhe: eu também não entendi boa parte do que foi dito! Mas dá pra acompanhar bem a idéia pelos slides.

Last Updated on Tuesday, 21 April 2009 19:35
 
Bookmark and Share

Itrade

E-mail Print PDF
Image Nunca postei sobre o assunto aqui, mas já faz algum tempo que tenho estudado investimentos em bolsa de valores. Ou trading, como também é conhecido.

Com o carrossel dos mercados atualmente, alguns devem achar loucura investir em algo como ações. Realmente é. E exige estudo, paciência e disciplina. Essa última a mais difícil para mim (e a grande maioria dos investidores). E tenho gostado de estar investindo em bolsa mais pela parte do esforço intelectual que pelos ganhos recebidos, tanto que até agora não recebi nada que vale-se o tempo dedicado. Mas é um bom hobbie intelectual.

Como fiel usuário de Linux/FreeBSD e outras alternativas não-windows, é difícil encontrar um aplicativo bom para análise de mercado. Na mundo Windows, existe o "MetaStock". Realmente um software profissional, mas totalmente pra Windows (sem versões em Java). Existem alguns relatos de sucesso utilizando o MetaStock através do Wine, mas isso está longe de ser o que eu busco: um software nativo para Linux/FreeBSD.

Estava então utilizando o Aiotrade , um software escrito em Java. Atende muito das necessidades de um trader, como buscar as informações dos valores de ações via Yahoo (onde é possível buscar os índices do Bovespa), gráficos diário, semanal e mensal, indicadores como bandas de Bollinger, SAR, média, etc. Infelizmente alguns gráficos não são legíveis e o uso de Java acaba com toda a memória do sistema depois de algum tempo de uso. Fora isso, seu desenvolvimento parou em 2006.

Dando uma procurada na Internet nesse fim de semana, encontrei um Blog interessante:

http://www.wcardia.com.br/2007/10/10/aplicativos-para-acompanhamento-e-analise-de-acoes-da-bovespa-no-linux/

Além das ferramentas que já conhecia, algumas em modo texto (Venice) ou quase isso, encontrei algumas novas. A que mais chamou minha atenção foi o Itrade.

Image Itrade é um programa escrito em Python, utilizando wxPython (ou wxWindows) para melhorar o visual da interface. Enquanto o Aiotrade está fora do meu alcançe para melhorar ou manter, o Itrade já acena com mais simpatia. No momento baixei os fontes (ou executável, uma vez que é escrito em Python) e estou brigando pra fazer funcionar:

helio@musashi:itrade$ python itrade.py
iTrade(alpha) - 0.4.6 Nausicaa2 - (official) (r836)
Psyco is not running (library not found)
User Configuration : usrdata/usrconfig.txt
XLRD package (http://www.lexicon.net/sjmachin/xlrd.htm) not installed.
wxPython Selected  : 2.8-gtk2-unicode
/usr/local/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py:14240: UserWarning: wxPython/wxWidgets release number mismatch
  warnings.warn("wxPython/wxWidgets release number mismatch")
Traceback (most recent call last):
  File "itrade.py", line 221, in 
    main()
  File "itrade.py", line 202, in main
    import itrade_wxmain
  File "/tmp/itrade/itrade_wxmain.py", line 57, in 
    from itrade_wxbook import iTradeMainWindow
  File "/tmp/itrade/itrade_wxbook.py", line 59, in 
    from itrade_wxquote import open_iTradeQuote,addInMatrix_iTradeQuote,removeFromMatrix_iTradeQuote
  File "/tmp/itrade/itrade_wxquote.py", line 63, in 
    from myfinance import candlestick, plot_day_summary2, candlestick2, index_bar, volume_overlay2, plot_day_summary3
  File "/usr/local/lib/python2.5/site-packages/wxaddons/__init__.py", line 180, in import_hook
    return builtin_import(name, globals, locals, fromlist)
  File "/tmp/itrade/myfinance.py", line 24, in 
    from matplotlib.transforms import Value, zero, one, \
ImportError: cannot import name Value

Infelizmente descobri que uma das dependências, Matplotlib, teve uma atualização de API, o que está fazendo gerar o erro acima. Estou vendo o que é possível fazer, mas mesmo assim esse projeto mostra-se como promissor. E com as frequentes quedas da bolsa, acho que os problemas de biblioteca e dependências não afetarão minha performance tanto assim.

Last Updated on Sunday, 12 April 2009 10:18
 
Bookmark and Share

Solaris 9 para download

E-mail Print PDF
Image Como parte de minhas tarefas numa empresa de telecomunicações, tenho alguns projetos de desenvolvimento de software. Em geral as plataformas são Solaris em Sparc: Ultra 10, V210, V240, V420, V440, V450, V480, E2900 e por aí vai.

Preciso compilar um aplicativo para correção de datas dos assinantes de pré-pago, em Solaris 9. Consegui encontrar o sistema disponível para download em:

http://www.sun.com/software/solaris/9/index.xml

Foi uma grata surpresa para mim, que vou instalar em um ambiente com qemu para facilitar o desenvolvimento. Mas eu não esperava encontrar o sistema para download, achei isso tinha sido efetivado somente a partir do Solaris 10.

E aqui fica a dica para quem deseja trabalhar na área de telecomunicações: começe com o download do Solaris 9.

Last Updated on Sunday, 22 March 2009 13:03
 
Bookmark and Share

Hacked!

E-mail Print PDF
Vírus, spammers, cavalos de tróia, etc. Os caminhos da Internet são cheios de bestas mitológicas, tão devastadores quanto os das epopéias gregas. Arrasando tudo a sua frente, sem dó, sem misericórdia.

E finalmente chegou meu dia de saborear tal destino. Conseguiram invadir esse site e fazer um "defacement", ou em bom português, desfigurar o site.

Image

Como já dizia o dito popular: "em casa de ferreiro, o espeto é de pau". O site é baseado no CMS Mambo Server, de onde o Joomla surgiu. Como uso o Mambo desde 2005 (o primeiro post tem data de "Apr 27, 2005 at 12:06 PM"), por sugestão do meu caro amigo Eduardo Maçan que também o utilizava na época, nunca me incomodei em atualizar muito ou migrar pra outra plataforma. Começei com a versão 4.5.0, mas tinha atualizado para 4.5.1, quando fiz a "cara" verdinha do site. A mudança foi justamente por motivo de segurança.

E agora, finalmente, fui atacado com sucesso. O ataque foi através do uso de um script chamado Fx29PHPBot. Não achei muita informação sobre o mesmo, mas deve estar baseado em algum sql injection ou coisa do tipo. Isso deixou alguns arquivos extras no servidor:

fx29id2.txt
fx29bot.txt
fx.php

além do próprio index.php, que foi sobrescrito.

Como o sistema é hospedado e não tenho acesso aos logs... só me restou buscar um backup do site, e carregar em read-only, até descobrir como o ataque ocorreu e, o mais importante, como impedir. Agora posso voltar a postar, utilizando a última versão do Mambo server, 4.6.2. O upgrade foi meio traumático, mas aparentemente com sucesso.

Last Updated on Sunday, 22 March 2009 12:00
 
Bookmark and Share

Estatística de tráfego no Netgear WGR614 v7

E-mail Print PDF
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;

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]: 

WAN packets traffic at WGR614v7

System:WGR614v7
Maintainer:Helio Loureiro
Interface:wan traffic
IP:none
Max wan traffic: 2 Mbps
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.

Image
Last Updated on Saturday, 07 February 2009 13:56
 
Bookmark and Share

ls: /mnt/ext2: Bad file descriptor

E-mail Print PDF
Image 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.

Image 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=
Last Updated on Friday, 16 January 2009 00:09
 
Bookmark and Share

Linux em Palm Tungsten E

E-mail Print PDF
Image 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...

Last Updated on Wednesday, 14 January 2009 14:06
 
Bookmark and Share

Adicionando localização geográfica dos visitantes

E-mail Print PDF
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
 
Bookmark and Share


Page 5 of 16

Polls

Você encontrou o que procurava nesse site?
 

Syndication

feed-image Feed Entries

Visitors Counter

Hoje40
Ontem48
Semana40
Mês223
Visitantes96390
38.107.191.81

Statistics

Content View Hits : 68720

Random Image

fingers.fullsize.jpg