Planeta Perl-Br

July 09, 2008

Frederico

Mudando as cores do yast ncurses (modo texto)

Essa foi uma descoberta legal dessa semana, na lista factory do opensuse, alguem postou sobre isso e ainda fez um pequeno texto na wiki do opensuse. O suporte existe desde o 10.3 e agora foi colocado na wiki.

O grande objetivo na verdade dessa função é acessibilidade para os usuarios. As vezes é necessario um contraste maior, ou é necessario mudar as cores por razão de limitação visual do usuario. Ainda o suporte a monocolorido ajuda no uso de terminais seriais.

O que temos é um conjunto de "temas" para o yast em modo texto. Para mudar as cores do yast edite como root o arquivo:  /etc/sysconfig/yast2 .  Então na variavel Y2NCURSES_COLOR_THEME edite o valor para sua opção, as opções estão listadas como comentario logo acima da variavel. Eu atualmente estou usando o yast no tema do rxvt. Laranjão da velha escola :). As opções remetem a nome de terminais, sendo o padrão vazio. Uma que eu fiquei com vontade de ver e testar foi braille, não que eu saiba ler braille mas fiquei bastante curioso de ver o yast em um terminal braile. .

Ainda segundo a wiki é possivel fazer mais temas recompilando o yast (cada tema é um header (.h)). Esse processo é meio.. não user friendly mas não duvido que mais para frente seja editavel como opção do yast.

yast1.png

by Frederico at July 09, 2008 04:56 AM

Cpan local para o usuario

As vezes por algum motivo você quer instalar um modulo cpan fora da base do sistema, por questões de permissão ou para "não poluir"  a instalação original. Uma das maneiras é criar um diretorio para colocar os modulos no seu diretorio home ou algum que você tenha pleno acesso e avise isso na variavel de ambiente PERL5LIB.

Uma maneira de se fazer isso é adicionar ao seu .bashrc (ou o arquivo seu shell favorito) a variavel:

PERL5LIB=${PERL5LIB:+$PERL5LIB:}/diretorio/suaescolha
Isso inclui o diretorio que voce escolhe na busca por modulos declarados.

Para o cpan funcionar localmente, instalando os modulos nesse diretorio, voce deve configurar as flags PREFIX, SITELIBEXP, LIB, INSTALLMAN1DIR, INSTALLMAN3DIR, INSTALLSITEMAN1DIR, INSTALLSITEMAN3DIR no seu $HOME/.cpan/CPAN/Myconfig.pm.

No meu caso, estou usado o diretorio:  ~/.perl para instalar os modulos do cpan e etc. Inclusive fiz um script pequeno para fazer isso de forma automatica nas maquinas que eu uso.

configurecpan

Apesar de estar definido "hardcoded" no script, e só alterar o valor das variaveis citadas para instalar em outro diretorio, e ele ainda por cima ja arruma o .bashrc.  Quanto eu tiver tempo faco uma versao menos hardcoded :).

Depois disso o cpan passa a utilizar o diretorio como base para instalar novos scripts :). hooray. Só para constar meu diretorio ~/.perl já ta com 20Mb :).

by Frederico at July 09, 2008 02:33 AM

June 13, 2008

Frederico

UTF-8 em perl (problemas com acentos)

Eu estava tendo problemas com a codificação de caracteres num site de quotes que eu mantenho para registrar as "perolas" dos meus colegas de trabalho.  O que acontecia é que a acentuação saia com caracteres estranhos no browser quando o CGI preenchia o template.
A solução que eu achei foi bem simples, tem uma pragma em perl chamada utf-8. Basicamente ela diz que meu arquivo fonte perl foi escrito em utf-8 e para processa-lo como tal.

use utf8;

Praticamente todas as distros hoje usam utf-8 como encoding padrão, e como eu não sei qual o encoding do servidor, avisar a Perl parece ser a melhor opção.

by Frederico at June 13, 2008 10:51 AM

June 06, 2008

Frederico

Instalando mais softwares no eee pc

Não to afim (por enquanto) de tirar o Xandros do eee pc, mas hoje eu precisei do nmap, e não tem quase nada no repositorio do Xandros, (que por sinal fica no site da asus). Depois de procurar um pouco na internet, vi que o Xandros que vem no asus eee pc não passa de um filhote de debian stable:). Logo para instalar o nmap ou qualquer outro programa no asus eee pc é só editar o /etc/apt/sources.list e adicionar o repositorio do debian stable.

Para abrir o console use crtl+alt+t .  e sudo su.  Nisso o console muda de cor e você já  é root, então é só abrir com o vi o /etc/apt/sources.list, adicionar o repositorio do debian stable (no meu caso usei :  http://ftp.br.debian.org/debian). Ficou assim:

deb http://ftp.br.debian.org/debian/ stable main contrib non-free

Depois disso foi salvar :), apt-get update e apt-get install nmap.

Alias a tendencia é que com o tempo ele vire um debian stable só com a interface original do Xandros.

by Frederico at June 06, 2008 09:43 PM

June 01, 2008

Frederico

Terminal no Asus eee pc

Comprei um Asus eee PC surf 4G. Nome pomposo para um notebook pequeninho.

Vou fazer uma analise detalhada mais tarde, mas a principio o Xandros instalando nele ta tão bem configurado que vai ficar ele mesmo. Outro detalhe é que eu demorei pacas para achar um terminal e tudo o que eu precisava era a combinação:

ctrl + alt + t   : Abre o xterm no asus eee pc

Nessas 12 horas de uso só teve supresa positiva. Parabens para a Asus. Outra dica é que o aparente botão unico do mouse na verdade são dois, correspondendo aos do mouse normal. Eu falo isso porque meu instinto foi ficar apertantando no meio do botão :P.

by Frederico at June 01, 2008 04:29 AM

May 11, 2008

Donato

Systems Identification - Frequency response method

I am improving a matlab script I wrote to identify non linear systems using the frequency response method. I wrote a simple script but I think it is using way too much resources for something that isn't that complicated.

I need to learn more about the FFT. from what ive learned so far, when FFTing a signal, the higher the sample rate, the better the resolution in frequency (makes sense, given the shanon/nyquist theorem) and the greater the number of periods the more accurate is the result.

The system I am trying to identify, supposably, has two complex poles at 0.25 +/- 0.9 so I need good frequency resolution between 10^(-1) and 1 rad/s

I used a 1kHz sample rate and this is the result I get:



When I change the sample rate to 10kHz this is what I get:

by Donato Azevedo (noreply@blogger.com) at May 11, 2008 08:50 PM

May 09, 2008

Frederico

comando tr se comportando estranho no busybox

Ando usando o busybox no trabalho a algum tempo, desde o kdump para cell e agora com um projeto ligado a x86. O busybox realmente é legal, mas tem alguns detalhes chatos e um deles é que os comandos as vezes se comportam diferente do esperado.
Tudo bem que por definição o busybox é limitado (em tamanho e por consequencia em recursos) porém de certa forma inocente eu espero o mesmo comportamento de um tr do coreutils e do busybox.

O que acontece com o tr é que ele tem entrada limitada a alfanumericos e apenas poucos caracteres especiais "escapados". Então isso aqui:

tr [:blank:] \\n

Quase gera um comportamento aleatorio na saida. Na real a dica é olhar na documentação do busybox o que é possivel e se guiar direto por lá e não simplesmente usar o que funcionava no ambiente completo.

by Frederico at May 09, 2008 04:20 AM

April 25, 2008

Frederico

links para perl

As vezes durante o dia eu fico procurando links de listas de discussão, da propria documentação do perl ou de outras coisas relacionadas, então resolvi juntar tudo e colocar aqui para uso proprio e de quem mais vier a precisar.

Tudo começo quando eu consultava a perldoc, ultimamente eu só consulto a perldoc online, o assunto de hoje era relembrar sobre o BEGIN, de qualquer jeito toda a documentação atualizada com os releases da linguagem está aqui:
http://perldoc.perl.org/

Ah! mas eu quero em portugues! Então temos isso parcialmente traduzido aqui:
http://perldoc.perl.org.br/

Depois disso outra pagina que eu consulto bastante são os perl monks, que se assemelha a um grande forum. Esse infelizmente nào tem uma versão em portugues.
http://www.perlmonks.org/

Procurando por modulos e bibliotecas em perl, um bom começo é uma busca no cpan!
http://search.cpan.org

Os arquivos da listas de perl que eu frequento aqui no Brasil, também estão aqui:

http://mail.pm.org/pipermail/saopaulo-pm/
http://mail.pm.org/pipermail/cascavel-pm/
http://mail.pm.org/pipermail/rio-pm/

Catalyst, framework para perl para web do qual um dia eu vou dominiar (...)
http://dev.catalyst.perl.org/

by Frederico at April 25, 2008 08:10 PM

Mitos sobre Perl

Essa excelente apresentação, do Tim bounce fala sobre três classicos mitos sobre perl e que as pessoas vivem me falando:

Perl está morrendo

Perl é dificil de testar, ler e manter.

Perl 6 está matando o Perl 5.
Na real ele caça um por usando exemplos internos do perl ou referencias faceis de achar na internet. Ao final todos os mitos são derrubados.

Uma das frases mais legais é que Hyppe != Empregos.

Os slides estão aqui.

[]'s

by Frederico at April 25, 2008 07:31 PM

April 14, 2008

Frederico

Comentarios anonimos no movable type

Eis que faz um tempo já que eu to procurando como deixar comentarios anonimos aqui no blog com movable type. Depois de muito fuçar achei como, e por sinal é um erro de interface (na minha opinião).
Você precisa ir na aba registration das configurações globais do blog (blog settings) e ticar a caixinha "Anonymous Comments", republicar o blog e sair para o abraço.

Para o captcha funcionar precisa do image magick, e eu to sem ele no servidor agora, assim que instalar eu habilito o captcha e vejo como funciona.

by Frederico at April 14, 2008 04:33 AM

April 06, 2008

Frederico

Perl e Chroot

Tenho um programa que precisa mudar o root (chroot), executar algumas operações e voltar para o antigo root. Em perl, o chroot não tem exit como em shell, no processo se eu mudo o root, eu só posso mudar de novo para um root dentro desse novo root. (Em outras palavras eu não consigo voltar para o antigo.).

A solução, com ajuda dos monges do perlmonks.org é simples, forkar o programa para a operação necessaria. No caso de fork, usando ipc eu passo a informação para o script pai. No meu caso eu estava apenas executando o ldd num outro root, então usando qx/ chroot \/dir ldd arquivo/ funcionou.

Então fica a dica, para usar chroot sendo necessario voltar ao root antigo depois, o melhor caminho é criar um novo processo para executar o chroot.




by Frederico at April 06, 2008 04:09 AM

March 24, 2008

Frederico

Tim Web no Linux

Eis que eu tenho finalmente uma segunda conexão à minha principal. Faz quase 3 meses que eu assinei o tim web, na configuração de 1gb de dados (os planos são divididos pela transferencia maxima). A velocidade de conexão pode ser EDGE (aprox 250k) e GPRS (aprox  56k).

Quando eu assinei o tim web veio com o modem Huawei E220. Foi simples configurar ele no linux, pois apartir do kernel 2.6.20 ele já tem o suporte no kernel. Basta plugar e configurar o discador e sair usando.
No meu caso houve um pequeno porém, dentro do modem existe um pequeno disco usb também que contem os drivers e o programa da tim para windows. Isso fez com que meu opensuse 10.3 reconhecesse somente o usb storage do modem e ignorasse o modem em si.  A correção para isso é criar uma regra no udev para reconhecer o modem corretamente.
Depois de procurar na internet sobre o assunto cheguei a esse site que contem informações diversas sobre o modem e sua configuração no linux. No caso do opensuse basta fazer o download do tar.gz disponivel no site, descompactar e copiar a regra 99-huawei.rules o diretorio /etc/udev/rules.d/.
Ainda dentro do tar.gz temos um exemplo de configuração para o wvdial. Eu estou usando o wvdial para conectar pois é facil, so abrir um terminal como root e digitar wvdial. No caso do arquivo é só trocar o nome do usuario e senha de ppp/ppp para tim/tim.

Vnstat

Por ultimo preciso controlar minha cota, 1gb passa rapido mesmo numa conexão devagar, apesar de eu segurar, os 0,25 centavos excedentes por mega podem se acumular e me levar a falencia. Assim instalei o vnstat, e inicializei ele para contar meus bytes :).

vnstat -u -i ppp0

Onde ppp0 é minha interface criada. Para se obter a informação de consumo utilizamos:

vnstat -i ppp0

Erro 619:

Depois de um tempo o modem não conectava mais, ele me dava erros de autenticação no wvdial. Depois de pesquisar vi na internet sobre o erro 619, (que é o erro que o cliente tim para windows dava na autenticação). A huawei disponibilizou uma correção para o erro em seu site, por é um arquivo exe para windows. Eu nem tentei rodar no wine dado que um update de firmware não deve nunca dar errado :). Fiz o download da correção no site da huawei neste link: http://www.huawei.com/pt/catalog.do?id=943, no site da tim na parte de aparelhos também tem um link que fala sobre o erro e aponta este mesmo link.

O programinha pede para conectar o modem, faz o update do firmware e pede para desconectar e conectar o modem. Após o procedimento o modem voltou a vida normalmente autenticando na rede tim.

by Frederico at March 24, 2008 06:03 AM

March 22, 2008

Frederico

Editando o layout do Movable Type

Primeiro que o que eu chamava de theme no wordpress aqui se chama style, e de certa forma tem o conceito diferente. Quando eu quis alterar o sidebar no wordpress, tive que editar o sidebar.php, que vinha junto com o theme. Aqui a parte de desing (vamos chamar assim) é separada do template, (MVC). Assim para eu editar o que vai no meu sidebar, é independente do style, eu edito o template da sidebar. No momento estou usando o sidebar padrão, editada no editor de widget para colocar os links das paginas mais em cima. Se eu trocar o style o sidebar é o mesmo.

Depois de entender todo o esquema, para criar um theme, ou style no jargão mt, basta editar o css. Você pode escolher um dos temas padrões (como eu to fazendo aqui e alterando aos poucos) e ir apenas adicionando. No editor de templates é possivel editar um arquivo que é concatenado com o css padrão. Assim o que voce quer mudar ( header por exemplo) , voce redeclara no css e pronto. Uma das caracateristicas do css é que declaração dupla de atributos vale a ultima. Assim é possivel incluir css's e fazer a alteraçao num arquivo concatenado ao final.

by Frederico at March 22, 2008 06:41 AM

Novo Site

Bem vindos ao post inicial do meu novo site, agora com movable type. A decisão do movable type foi explicada no meu ultimo post do blog no wordpress (que será mantido como blog pessoal).
Já que isso é uma grande mudança, vou explicar o que me atraiu no Movable Type;

  • Feito em Perl , fica mais facil eu modificar se necessario
  • Melhor suporte a templates e sua edição no proprio dashboard do CMS
  • Multiplos blogs, paginas, templates num mesmo site
  • No geral ele tem n mais recursos
Mas nem tudo são flores, existe uma lista de coisas que deve ser levada em consideração:

  • Dificuldade Inicial: Putz, foi um parto até eu pegar o jeito, o wordpress é bem mais simples, e portanto bem mais facil de iniciar, modificar, etc...
  • Poucos plugins: Na verdade não são poucos, mas comparados com o WordPress.. bem, são poucos.
  • Interface: Obviamente é mais completa mas é mais complexa, bem mais que comparada ao do WordPress.
Ao final temos a conclusão obvia que o nicho é diferente, e não cabe comparação do WordPress com o Movable Type. Alias o WordPress para um blog de um site ou etc é o estado da arte, simples, funcional e com uma boa comunidade. Já o Mt é visivelmente voltado para um publico que busca algo mais profissional e gerenciavel, com suporte pago disponivel se necessario. Eu busquei a maior complexidade e recursos.

A documentação em portugues é nula, obviamente o Wordpress tem muita coisa em portugues pois é bastante popular aqui.

Bom, o movable type vai me permitir tem um blog de informatica e etc, com adsense e tudo, um blog pessoal, e junto o site do museu de arte sacra. No mesmo server, no mesmo db, no mesmo CMS. Sem dor de cabeça para adicionar suporte a tudo isso. 

Espero que seja o começo de uma grande parceria :) .

by Frederico at March 22, 2008 04:09 AM

March 19, 2008

Fernando Oliveira

Como conquistar hackers

Durante uma noite de estudo do meu pai para o doutorado, ele me chama e lê isso p/ mim:   Há um paradoxo no âmago da organização da Era da Informação: enquanto os empregadores enfraqueceram os laços da segurança no emprego e da lealdade, mais eles dependiam do capital humano; por outro lado, como [...]

by admin at March 19, 2008 09:53 PM

March 13, 2008

Donato

Mudança de planos

Após ser qualificado em uma seleção, consegui uma oportunidade de realizar meu PFC junto ao professor Fábio Jota

O projeto consiste em realizar uma manutenção no sistema de refrigeração de água do Departamento de Física da UFMG. O sistema resfria os equipamentos críticos dos laboratórios, como o Lab. de Criogenia, ou Epitaxia ou efeito Mossbauer.

O sistema possui 40 variáveis discretas (com uma lógica de intertravamento descrita num documento de especificação) e uma malha de controle de uma variável contínua: a pressão na saída da bomba de alimentação do sistema de tubos.

Estou em busca de um Cliente OPC gratuito para logar os dados da planta. Eu estou a configurar o servidor OPC do PLC da Moeller, o Ps4-201.

by Donato Azevedo (noreply@blogger.com) at March 13, 2008 08:51 PM