sábado, 30 de outubro de 2010

RailsRumble 2010

Já faz um bom tempo que terminou (foi no final de semana dos dias 16 e 17 de Outubro), mas os resultados ainda estão aí. Participei do RailsRumble convidado pelo @juliogreff. A meta: programar alguma coisa usando RoR em 48h. Detalhe: nem eu, nem ele tínhamos feito nada em Rails antes da equipe Nuby on Rails (que contava com o talento do @rafaelmarin e do @herminiotorres).

A aplicação também foi ideia do Júlio: http://choons.fm. É uma rede social para bons ouvintes (de boa música).


A experiência foi incrivelmente única. Eu não acreditava que a gente conseguiria terminar, mas conseguimos. A estratégia não foi das melhores: Extreme Go Horse (extreme). Talvez por isso o código precise ser refeito... e eu disse talvez... haha

Falando sério, passar 48h programando, dormindo pouco e sob pressão pode não parecer muito divertido, mas o aprendizado no processo foi grande. É muito bom colocar em prática o que foi lido no Caindo na Real (ou Getting Real) - que agora tem nova versão chamada Rework. Acaba dando muita energia para discutir nas reuniões e pra querer mudar o rumo das coisas...

E acontece de às vezes querer pedir demissão, né Júlio?!

Ah, só pra constar: ficamos em 3º lugar (atrás do BeerCheckIn e do Owe Me Cash) na classificação geral, de 180 equipes que conseguiram terminar em 48h, de 300 equipes que se inscreveram. Nada mal para marinheiros de primeira viajem, não?! :)


Então: recomendo pra todo mundo participar, mesmo que não saiba nada de RoR. E mesmo que não consiga terminar a app, o que se aprende vai muito além do código-fonte!

domingo, 3 de outubro de 2010

Primeiros passos com RoR

Comecei a ver RoR seguindo o Getting Started. Tive um problema logo no começo. Foi ao usar o console:

rodolfo@rodolfoNote:~/RoR/blog$ rails console/opt/RoR/ruby/lib/ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load -- readline (LoadError)
from /opt/RoR/ruby/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'
from /opt/RoR/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands/console.rb:3:in `require'
from /opt/RoR/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands/console.rb:3:in `<top (required)>'
from /opt/RoR/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands.rb:20:in `require'
from /opt/RoR/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands.rb:20:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

A solução foi encontrada em http://snippets.aktagon.com/snippets/57-Solution-to-require-no-such-file-to-load-readline-LoadError-problem, mas a solução não foi suficiente:

root@rodolfoNote:/opt/RoR/src/ruby-1.9.2-p0/ext/readline# ruby extconf.rb 
checking for tgetnum() in -lncurses... yes
checking for readline/readline.h... no
checking for editline/readline.h... no

O script indica que não encontrou o "readline.h". A solução é instalar o pacote libreadline6-dev via apt e repetir o processo. Essa falha não acontecerá se essa lib estiver instalada no momento de compilar o ruby. :)

Depois, é só tocar ficha:

cd /ruby-1.9.2-p0/ext/readline
ruby extconf.rb
make
make install

Por hoje é só. Logo posto mais resultados... :)

terça-feira, 7 de setembro de 2010

...mas a Dell também acerta!

(essa é a parte 2 - a parte 1 é "A Dell também erra")
Finalmente!

Ontem - segunda-feira, véspera de feriado - 2 semanas depois de reportar o problema para a Dell, um técnico foi até o meu local de trabalho - já que eu estava trabalhando - e trocou a placa-mãe do notebook. Tudo funcionando: agora, depois de 2 notebooks e 5 placas-mãe, tenho um notebook que não aquece (chu*a HP!) e que também desliga!

O atendimento foi feito por uma empresa chamada Unisys e levou 1h e 15min, mais ou menos. O cara desmontou o notebook inteiro! (pena não ter uma câmera pra tirar fotos).

O notebook apresentou defeito, mas não fiquei nem um dia sem ele graças à garantia que a Dell oferece. Realmente muito bom e vale a pena, bem diferente dos notes HP comprados em lojas, que deixam o cliente sem por mais de 2 meses...

O único porém foi o técnico não ter os relatórios de atendimento e precisar usar uma impressora ali. Mas tudo bem, quando eu era técnico fazia dessas também...


Parabéns, Dell. Conseguiu um cliente e várias recomendações.

segunda-feira, 30 de agosto de 2010

A Dell também erra

Faz um tempo que meu notebook Dell tem um problema: ele não desliga. No Windows e no Linux, acontece a mesma coisa: ao desligar, ele faz um "desliguei-na-pegadinha-do-malandro" (créditos pra @vanemaster) e reinicia.

Liguei para a Dell, no 0800, passei todas as informações (incluindo o nro de série, pra não ter problema ao identificar o notebook). Como a garantia é no local (toma HP!), é o técnico da Dell que vem até o notebook, não o contrário. Isso foi na segunda-feira, dia 23. A solução dada pelo atendente: substituição da placa-mãe (de novo?! nããããããão!)

No dia seguinte, me ligam e agendam a visita. Ficou para quinta-feira, dia 26. Até aqui, nota 10 pro atendimento. O ideal seria notebook sem problema, mas o pós-venda está muito bom.

No dia 26 aparece o técnico. E adivinha? Sim, a Dell também erra: mandaram a placa-mãe de outro modelo. O técnico tentou uma atualização de BIOS e mais umas configurações, mas nada feito. Um novo atendimento será realizado.

Hoje, dia 30, uma semana depois do primeiro contato, fui no chat da Dell perguntar pq ainda não entraram em contato. Depois de espera - o atendente precisou pedir ajuda para o coordenador - veio a resposta:

Senhor, infelizmente não temos a peça para o seu equipamento no Brasil
O chamado esta aberto, mas será necessário aguardar a vinda de uma peça do exterior.

Perguntei quanto tempo ia levar... Sem esperanças, mas perguntei. A resposta:

Não tenho como lhe informar senhor.
Pois depende da fabricação.

No fim, mesmo com a espera, estou satisfeito com o atendimento. O notebook funciona e eu não preciso ficar sem ele até conseguirem as peças...

Só 1 coisa a declarar: HP nunca mais!

sábado, 21 de agosto de 2010

Firefox 4.0b5pre - 214 pontos no HTML5

Eu não gosto muito de esperar. Então, resolvi baixar o Firefox direto do repositório da Mozilla e compilar a versão que nem saiu do forno ainda (apressado come cru?):


Para minha grata surpresa, muito do HTML5 já estará implementado na nova versão da nossa raposa (ou panda-vermelho). Os resutados nos testes do site http://www.html5test.com/ chegam a 214 (de um total de 300)!


Para efeito de comparação, a versão atual (3.6.7 enquanto escrevo) fica em 139. E agora já dá pra assistir vídeos no Youtube sem Flash (com o Chrome já dava, é verdade): http://www.youtube.com/html5

Somente baixar e instalar, no entanto, não habilita o webGL. O webGL coloca 3D dentro do navegador. Para funcionar no Linux, é necessário instalar o pacote libosmesa6 e fazer os devidos apontamentos dentro do about:config do navegador:

As mudanças são:

webgl.enabled_for_all_sites = true
webgl.osmesalib = /usr/lib/libOSMesa.so.6


Depois disso, é só testar: http://guciek.net/test/adaptive_webgl


Fonte: http://guciek.net/en/3d/osmesa_webgl

quarta-feira, 18 de agosto de 2010

Como capturar porcos selvagens?

Recebi, ainda em 2007, mas que ainda é atual (transcrevo aqui, mas a autoria não é minha, nem sei de quem é). Não tem nada a ver com informática, mas tem a ver com reflexão e a época...


Havia um professor de química em um grande colégio com alunos de intercâmbio em sua turma. Um dia, enquanto a turma estava no laboratório, o professor notou um jovem do intercâmbio que continuamente coçava as costas e se esticava como se elas doessem.

O professor perguntou ao jovem qual era o problema. O aluno respondeu que tinha uma bala alojada nas costas pois tinha sido alvejado enquanto lutava contra os comunistas de seu país nativo que estavam tentando derrubar seu governo e instalar um novo regime, um "outro mundo possível".

No meio da sua história ele olhou para o professor e fez uma estranha pergunta: "O senhor sabe como se capturam porcos selvagens?"

O professor achou que se tratava de uma piada e esperava uma resposta engraçada. O jovem disse que não era piada.

"Você captura porcos selvagens encontrando um lugar adequado na floresta e colocando algum milho no chão. Os porcos vêm todos os dias comer o milho de gratuito. Quando eles se acostumam a vir todos os dias, você coloca uma cerca mas só em um lado do lugar em que eles se acostumaram a vir. Quando eles se acostumam com a cerca, ele voltam a comer o milho e você coloca um outro lado da cerca. Mais uma vez eles se acostumam e voltam a comer. Você continua desse jeito até colocar os quatro lados da cerca em volta deles com uma porta no último lado. Os porcos que já se acostumaram ao milho fácil e às cercas, começam a vir sozinhos pela entrada. Você então fecha a porteira e captura o grupo todo."

"Assim, em um segundo, os porcos perdem sua liberdade. Eles ficam correndo e dando voltas dentro da cerca, mas já foram pegos. Logo, voltam a comer o milho fácil e gratuito. Eles ficaram tão acostumados a ele que esqueceram como caçar na floresta por si próprios, e por isso aceitam a servidão."

O jovem então disse ao professor que era exatamente isso que ele via acontecer neste país. O governo ficava empurrando-os para o comunismo e o socialismo e espalhando o milho gratuito na forma de programas de auxílio de renda, bolsas isso e aquilo, impostos variados, estatutos de "proteção", cotas para estes e aqueles, subsídio para todo tipo de coisa, pagamentos para não plantar, programas de "bem-estar social",  medicina e medicamentos "gratuitos", sempre e sempre novas leis, etc, tudo ao custo da perda contínua das liberdades, migalha a migalha.

Devemos sempre lembrar que "Não existe esse negócio de almoço grátis" e também que "não é possível alguém prestar um serviço mais barato do que seria se você mesmo o fizesse".



Lembre-se disso (também) na hora de votar...

domingo, 25 de julho de 2010

FISL 2010

Chegou ao fim mais um FISL. Foi o 11º da história do evento e o 2º da minha história pessoal. :)


Valeu pelas palestras, pelas oficinas em pé no meio dos expositores e tudo mais. Pessoal do Tchelinux de parabéns e do Ateliê Livre também, que deixaram com mais vontade ainda de comprar um Arduino.

Muito interessante o que foi demonstrado sobre o Firefox. Nos sentimos (eu e o Júlio Greff, que assistiu comigo) pequenos com a quantidade do que pode/poderá ser feito. Depois do que vi, passei a acreditar que realmente poderemos ter o navegador substituindo boa parte do desktop...

Muita coisa sobre Ruby on Rails. Muito mais sobre filosofia do que sobre código e programação. Mesmo as ditas "metodologias ágeis" hoje já esquecem os 4 princípios do manifesto ágil:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
E antes que pensem mal, não vou abandonar o Python/Django... ;)

sábado, 19 de junho de 2010

Tchelinux 2010

Hoje foi minha primeira participação do Tchelinux na minha cidade. Já havia participado em Porto Alegre, mas nunca aqui. E foi a primeira vez como palestrante também.

Confesso que fiquei meio nervoso, sim, mas acredito que foi por ser minha primeira vez (e a primeira a gente nunca esquece) e acabei apresentando meio rápido. Ainda assim foi muito bom. E quem não foi, participe da próxima: a inscrição custa só a doação de alimentos (já arrecadaram quase 9t de 2009 pra cá).

Minha palestra foi sobre segurança (acredito que de baixo-nível), mostrando como proteger cookies contra "furto" via javascript e captura de pacotes. Deixo abaixo a palestra, já com uns ajustes pra ficar mais completa. Vou atualizando assim que for melhorando ela :)





Gostei bastante também depois de conversar com o pessoal sobre desenvolvimento seguro. E se alguém tiver comentários sobre o assunto, por favor use os comentários... :)

E ficam as referências da comunidade que organiza os eventos:
@tchelinux
http://tchelinux.org/

quarta-feira, 19 de maio de 2010

Ovi Store - primeira "compra"

O que um nerd faz na aula de Teoria da Computação? Fuça no celular, óbvio.

Hoje baixei minha primeira aplicação da ovi-store, da Nokia. Tenho um Nokia 5130 XpressMusic com uma conta vivo controle. Como tinham uns créditos acumulados do mês passado, resolvi arriscar: comecei a procurar uma app para o twitter.

Pelo celular, consegui gastar pouco mais de R$10 só procurando, sem sucesso. Navegar pela tela desse celular não é bom.

A forma mais simples de conseguir uma aplicação é via Ovi Store na Internet. Você se cadastra, precisa confirmar que o celular é seu (via SMS) e depois escolhe alguma aplicação. Ao clicar em "Enviar para cel", vc recebe um SMS com o link da aplicação.

Até aqui, ok. Só que, depois de vários SMSs com links apontando para "http://store*falta algum texto *", vc ainda precisa navegar, logar, etc, etc e, no fim, baixar... Funciona, mas foram mais R$10 de créditos pra conseguir baixar (o aplicativo é free, mas a conexão não)...


No fim, baixei o Twittle, mas como a loja levou todos os meus créditos, só vou poder twittar do celular mês que vem...

Depois de tudo, o complicado é ver que o arquivo baixado é "twittle_s40.nfl", um arquivo ZIP com um SWF dentro. Sim! NFL deve ser Nokia Flash Lite...

Conclusão: ainda é muito caro usar a Internet no celular para qualquer coisa por aqui... =/


EDIT: O complicado é, depois de googlar um pouco, encontrar sites como o http://www.mobicreed.com e o http://mobigun.com/ com um monte de games e aplicações FREE para o celular...

segunda-feira, 17 de maio de 2010

TI - revolução

A tecnologia da informação é uma enorme revolução que ainda está em andamento. Ela é muito maior que a Revolução Industrial e só é comparável à imprensa de Gutemberg. Essa revolução tem mudado até os paradigmas científicos vigentes.

Essa frase é de George Djorgovski, professor de astronomia do Instituto de Tecnologia da Califórnia (Caltech). Saiu no inovação tecnológica.

O que chama a atenção é a responsabilidade colocada em cima da Tecnologia da Informação. Como seres humanos não conseguem dar conta de tanta informação, cabe a nós darmos um jeito nisso...

Grandes poderes trazem grandes responsabilidades...

Fonte:http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=ciencia-seculo-21-realidade-virtual-inteligencia-artificial&id=010150100514

sábado, 10 de abril de 2010

Skype em AMD64

Já escrevi sobre como instalar programas 32 bits em Linux 64 bits. Só que nem tudo são flores: tentei fazer o mesmo com o Skype e quem disse que funciona?!

A solução parece simples: criar um chroot completo 32 bits. E é bem simples mesmo, só é preciso ter cuidado com algumas coisas.

Primeiro, criar um diretório e usar o cdebootstrap pra baixar todos os pacotes básicos nele (se não estiver instalado, apt-get nele!)
mkdir /opt/i386-chroot
cdebootstrap --arch i386 sid /opt/i386-chroot http://ftp.br.debian.org/debian/

O "i386" é a arquitetura. O "br" eu coloquei para usar os servidores nacionais, que devem ser mais rápidos por estarem mais próximos.

Depois, o "pulo do gato": colocar os diretórios de sistema do linux e o seu home nos 2 lugares ao mesmo tempo. Para isso, só é necessário acrescentar no arquivo /etc/fstab:
#i386 chroot
/dev        /opt/i386-chroot/dev    none    bind    0    0
/tmp        /opt/i386-chroot/tmp    none    bind    0    0
/home        /opt/i386-chroot/home    none    bind    0    0
/proc        /opt/i386-chroot/proc    none    bind    0    0
/sys        /opt/i386-chroot/sys    none    bind    0    0
E executar o comando para montar tudo:
mount -a
Com essas confs, quando o micro for reiniciado, tudo já vai estar automaticamente nos lugares certos. Todos eles são importantes, principalmente o "/proc" e o "/sys" para funcionar a webcam e o áudio... O "/tmp" é necessário para a interface gráfica... ;)

ATENÇÃO: quando vc faz isso, seus arquivos estarão nos 2 lugares. Se vc apagar o diretório i386-chroot, todos os arquivos do "/home" também serão excuídos.

Alguns sites colocam outras configurações para o "/proc" ou deixam o "/sys" de fora. Fazendo de outras formas eu não consegui usar o som e a webcam. Fica a dica, então.

Feito isso, é só executar o comando chroot para usar o novo diretório como se fosse um novo linux
chroot /opt/i386-chroot
Adicionar a linha do repositório do Skype (lembre-se que depois de executar o chroot você estará num ambiente completamente novo) :
## Skype
deb http://download.skype.com/linux/repos/debian/ stable non-free
 E instalar usando o apt-get:
apt-get install skype
Para rodar ele sem precisar ser root (vc deve ter percebido que o comand "chroot" só funciona como super usuário), utiliza-se o schroot (de novo, se não estiver, apt-get nele!).

Depois de instalar, é preciso configurá-lo. Adicione no fim do arquivo /etc/schroot/schroot.conf :
[i386]
description=Debian i386 (sid/unstable)
directory=/opt/i386-chroot
priority=3
groups=rodolfo,root
root-groups=root
personality=linux32
Em negrito está o nome do grupo dos usuários que podem usar o schroot. Use o seu (eu usei o meu... hehe). Outras opções e explicação para elas vc encontra no seu próprio linux:
man schroot.conf
Para rodar:

schroot -p -c i386 -- skype
"i386" é o nome entre [ ] no arquivo de configuração.
"skype" é o comando a ser executado em 32 bits.

Vc pode criar um script em shell bem criativo para automatizar essa tarefa (e ainda não precisar lembrar de tudo isso cada vez que instalar alguma coisa). Eu coloquei o meu em /usr/local/bin/i386_chroot.sh. Com permissão de execução (chmod +x i386_chroot.sh), vc pode chamá-lo de qualquer lugar.

O conteúdo:
#!/bin/bash
exec /usr/bin/schroot -p -c i386 -- "`/usr/bin/basename $0`" "$@"
 Pra funcionar, ele vai chamar o nome do arquivo que vc colocar. Então, ainda no /usr/local/bin, faça:
ln -s i386_chroot.sh skype
 Assim, quando vc chamar "skype" na linha de comando, ele vai entrar no chroot e rodar. Para outros programas, é só instalar no chroot e criar o link (não precisa alterar o script, só criar o link simbólico através do ln ali de cima).

Ufa! Está pronto. Só que a webcam não funcionou no skype. O erro é o seguinte:
 X Error, request 132, minor 18, error code 8 BadMatch (invalid parameter attributes)
A solução é simples. Adicione, no script i386_chroot.sh, antes da linha do "exec":

# skype: http://akdwivedi.wordpress.com/2009/05/09/skype-on-64bit-fedora-10/
export XLIB_SKIP_ARGB_VISUALS=1
Deixei o link no comentário, para futuras referências.

É isso. Nem todas as aplicações estão prontas pra usar 64 bits, mas nós usamos mesmo assim (e aproveitamos melhor os 4GB de memória).

Fontes:
http://blog.diovani.com/2008/03/11/usando-um-chroot-para-rodar-aplicacoes-32bit-em-uma-instalacao-amd64/
http://akdwivedi.wordpress.com/2009/05/09/skype-on-64bit-fedora-10/

sábado, 3 de abril de 2010

mplayer e legenda com erro de codificação

Assistindo umas séries no mplayer, algumas legendas perdem os caracteres acentuados por causa da codificação. A solução, para os "brasileiros" , é até bem simples. É só chamar o mplayer com identificação de idioma:

mplayer -slang pt-BR #arquivo#
Acho que não é o ideal, e ainda não encontrei solução na interface gráfica, se alguém tiver a dica, agradeceria... :)

Fonte: http://lists.mplayerhq.hu/pipermail/mplayer-dvb/2004-January/001405.html

Novo hardware encontrado...

O ano finalmente começou e eu entrei num período de "atualização de hardware". Por motivos de força maior, troquei de celular (um Nokia 5130) e de notebook (um Vostro V13). Finalmente eles chegaram...

Uma coisa divertida é que ambos possuem bluetooth. Assim, dá pra fazer algumas brincadeiras. Por enquanto, só estou usando o DVD pra tocar as músicas do celular e do note... (isso me lembra o "because we can" do The Big Bang Theory).

Pra fazer o mplayer acessar o dispositivo de áudio, é preciso instalar o blueman e rodá-lo (com usuário normal, não root)
sudo apt-get install blueman
blueman-manager
O software é bem intuitivo. Clicando na lupa, ele vai procurar os dispositivos. Depois, ele vai fornecer o endereço MAC. Pela interface, faça a sincronização (no meu DVD - da Samsung -, mesmo que ele não coloque a senha de acesso, foi só usar o clássico "0000").

Para usar o áudio, crie o arquivo ~/.asoundrc com o conteúdo:

pcm.bluetooth {
   type bluetooth
   device 00:16:6C:00:00:00
}
Observe que em "device" vai o endereço MAC do seu dispositivo.

Assim, é só chamar o mplayer apontando a saída de áudio para o bluetooth:
mplayer -ao alsa:device=bluetooth -shuffle *.mp3
Logo testo com outros players, mas acho que não vai ser mto diferente... :)

Fonte: http://wiki.bluez.org/wiki/HOWTO/AudioDevices

sexta-feira, 5 de março de 2010

pyflakes - sugerindo melhorias no código Python

Existe uma ferramenta chamada "pyflakes"[1], que pode ser instalada via apt-get (apt-get install pyflakes - desculpem usuários de windows). Ela serve para melhorar algumas coisas nos códigos, por exemplo avisando sobre "import" que não é mais usado ou variáveis que não atribuídas mas nunca usadas.

Para usar, é bem simples:

pyflakes UCSAutenticacao.py

E a saída vai ser algo como:

UCSAutenticacao.py:9: 'get_times_user' imported but unused
UCSAutenticacao.py:33: local variable 'log' is assigned to but never used
UCSAutenticacao.py:46: local variable 'u' is assigned to but never used

Assim, podemos verificar quais variáveis não são usadas e removê-las. O mesmo vale para os includes.

Vamos deixar nossos códigos otimizados? :D

Além do pyflakes, existe o pylint[2], mas eu não experimentei ele ainda.

[1] http://pypi.python.org/pypi/pyflakes
[2] http://pypi.python.org/pypi/pylint



Fonte @petry

sexta-feira, 19 de fevereiro de 2010

art and design (wallpapers)

O link é antigo, mas tem uns wallpapers legais (além de algum significado):




Fica a dica

quinta-feira, 18 de fevereiro de 2010

Trânsito na TV - propaganda vale?

IMHO, as propagandas que fazem para campanha de "paz no trânsito" não atingem o objetivo porque quem assiste não vive nada da realidade mostrada. São coisas do tipo "nunca vai acontecer comigo".

Uma excessão é a que passou nesse verão, do Detran do RS. É simples, mas mais perto da realidade antes de acontecer qualquer coisa. O vídeo:





Eu confesso que mais de uma vez saí atrasado falando no telefone. Só que não atropelei ninguém (e nem corri demais ;))

Gerenciador de Downloads para megaupload - fim do captcha

Quem faz muito download pelo megaupload já deve ter pensado em alguma forma de burlar o captcha e baixar uma lista inteira de links. Pois a solução existe e fala espanhol! :)

É o Tucan Manager. Já tem pacote para o debian, então:
apt-get install tucan
Depois, um bug chato apareceu pra mim, ao iniciar o tucan em modo debug (pq os downloads nunca iniciavam, então algo estava errado):
tucan -d
[...]
HTMLParseError: bad end tag: '', at line 882, column 73
A solução é simples até. É só fazer replace do "+" por vazio e pronto. Postei a solução num tópico do fórum do Tucan. As mudanças:

72c72,73
<             p = CaptchaParser(URLOpen().open(url).read())
---
>             # HTMLParseError: bad end tag: ''
>             p = CaptchaParser(URLOpen().open(url).read().replace('"+"', ''))
81c82,83
<                         self.feed(handle.read())
---
>                         # HTMLParseError: bad end tag: ''
>                         self.feed(handle.read().replace('"+"', ''))


PS.: vi que ele consome um monte de CPU... ainda não sei o motivo, mas isso é ruim, muito ruim...

quarta-feira, 6 de janeiro de 2010

2010 - ano do ARM e do Tablet?!

Ano passado, foi o "Touch Book": http://www.alwaysinnovating.com/

Custa entre US$299 e US$399. Tablet, touch e com processador ARM.

Rumores surgiram sobre um tal tablet da Apple, mas nada concreto. A Microsoft HP parecem estar se puxando para lançar um tb. A ideia parece boa, mas não será ARM, pq Windows não funciona no ARM:

A pouco, vi a notícia do smartbook da Freescale: 7", touch, processador ARM, 10 horas de bateria:


E o preço é o menor desses: US$199. Por enquanto é só promessa, mas já me apaixonei =D

Será 2010 o ano do ARM e do Tablet?

Fontes:
http://www.meiobit.com/meio-bit/ind-stria/smartbook-da-freescale-vai-encarar-apple
http://www.liliputing.com/2010/01/freescale-introduces-sub-200-web-tablet-reference-design.html
http://www.baixaki.com.br/info/3308-microsoft-e-hp-podem-lancar-tablet.htm

domingo, 3 de janeiro de 2010

Acelerando o DNS - Google na parada?!

Bastante estardalhaço no fim de 2009 com o lançamento do Google Public DNS. A algum tempo já temos uma alternativa, o OpenDNS. Além desses, ainda teríamos o "default" da operadora, a GVT no meu caso.

A solução que imagino ser a melhor é ter um cache local para o DNS. E é simples configurar também, além de economizar uns trocos se vc usa um modem 3G.

::: Testes de performance :::

A ideia é simples: testar quanto tempo demora para resolver o nome www.google.com com cada um dos servidores DNS. 3x cada um.

O teste:
for (( i=0 ; i<3 ; i++ ));
do
time nslookup www.google.com [IP do DNS];
done

1. Google: 8.8.8.8

real    0m0.076s
user    0m0.008s
sys    0m0.008s

real    0m0.080s
user    0m0.008s
sys    0m0.008s

real    0m0.093s
user    0m0.016s
sys    0m0.004s


2. OpenDNS: 208.67.222.222

real    0m0.192s
user    0m0.012s
sys    0m0.008s

real    0m0.184s
user    0m0.004s
sys    0m0.008s

real    0m0.188s
user    0m0.008s
sys    0m0.008s


3. GVT (servidor de POA): 200.175.89.139

real    0m0.034s
user    0m0.008s
sys    0m0.004s

real    0m0.031s
user    0m0.004s
sys    0m0.012s

real    0m0.031s
user    0m0.004s
sys    0m0.000s


4. local (dnsmasq): 127.0.0.1

real    0m0.023s
user    0m0.004s
sys    0m0.016s

real    0m0.029s
user    0m0.012s
sys    0m0.008s

real    0m0.035s
user    0m0.012s
sys    0m0.004s


O resultado é o esperado, eu acredito. O OpenDNS é o mais lento, pois provavelmente é o mais distante deles.
O Google surpreende, cortando pela metade o tempo de resposta do OpenDNS.
O da GVT é bem mais rápido, pois está próximo (e por isso precisa passar por menos servidores que os demais). Isso foi testado no ADSL da GVT (1Mbps), por isso a vantagem.
O local é rápido também, mas não com tanta diferença assim para o da própria operadora. Deve mehorar a performance em conexões 3G e discadas.

Pra configurar o dnsmasq, antes é preciso instalá-lo. No debian:

apt-get install dnsmasq
E depois configurar para iniciar o serviço (use o comando sysv-rc-conf, disponível num pacote com o mesmo nome).

Para sempre usar o DNS local, mesmo usando DHCP, apenas altere o arquivo /etc/dhcp3/dhclient.conf, adicionando (ou descomentando) a linha:
prepend domain-name-servers 127.0.0.1;
Para conferir quais são os servidores DNS configurados, olhe o arquivo /etc/resolv.conf

Fontes:
http://www.vivaolinux.com.br/dica/Acelerando-conexao-discada-com-openDNS-e-Dnsmasq/
http://ubuntuforums.org/showthread.php?t=544383

sexta-feira, 1 de janeiro de 2010

Feliz ano novo!!!!

Postando do note (sim, o HP voltou), no primeiro dia de 2010. Postando do "Blogger em rascunho", pra experimentar, e está sendo divertido. Algumas coisas parecem terem vindo do Google Docs...

Mas, vamos compilar e instalar o novo ano que se inicia:
cd ano_2010/
./configure --with-saude --with-paz --without-stress --with-tempo --with-dinheiro
make
make install

E que venha 2010!