Novo Blog

Novo endereço

https://blog.nilo.pro.br

sábado, 5 de dezembro de 2009

Configurando BIND para utilizar o servidor DNS Público do Google

O Google lançou esta semana o Google Public DNS, visando aumentar a velocidade de resolução de nomes de Internet.

A resolução de DNS (Serviço de Resolução de Nomes) é responsável por converter o nome de um site em endereço IP (www.google.com --> 64.233.163.163). Esse serviço é utilizado sempre que seu computador precisa de um endereço de Internet. Cada vez que um novo nome é convertidio em endereço IP, o resultado desta conversão é guardado em uma tabela de acesso rápido em seu computador para agilizar acessos futuros, ou seja, uma tabela cache ou simplesmente cache.

Um exemplo simples é resolver www.google.com. A primeira vez que você acessar o domínio, o serviço de DNS de seu computador vai verificar o cache local e retornar o endereço IP, mas como é a primeira vez que você tenta acessar o Google hoje, não vai encontrar este nome de domínio em sua tabela cache. Quando isso acontece, uma requisição será feita ao seu servidor de DNS.

Um servidor de DNS também faz um cache dos últimos domínios pesquisados, porém vai recorrer aos Root Servers da Internet caso também não tenha o domínio cadastrado. E assim funciona o DNS e toda a Internet como a conhecemos hoje. A grande questão é entender o problema que o Google Public DNS Resolve.

O primeiro problema é que o tempo de acesso entre computadores na Internet pode ser medido em milisegundos (uma eternidade em termos de transmissão de dados :-) ). O tempo de resposta (Round Trip Time - RTT) é simplesmente o tempo que um computador demora para enviar um pacote e receber a resposta de outro computador. Ou seja, o tempo que o computador A leva para receber a resposta do computador B. Um caso prático é o tempo exibido pelo comando ping. O comando ping envia um pacote usando o protocolo ICMP e espera a resposta do outro sistema, imprimindo o tempo entre a requisição e o recebimento da resposta. Quanto mais distantes os computadores, maior o tempo de acesso. Este efeito é causado pelos meios de transmissão (fibra, satélite, cabos, etc) e pelo roteamento da Internet.

Quando um servidor de DNS não encontra um nome de domínio/host em sua tabela cache, este precisa realizar uma nova pesquisa. No caso de www.google.com, a primeira pesquisa será ao servidor responsável pelos domínios .com sobre o endereço dos servidores do Google. Só então seu servidor fará outra pesquisa, desta vez perguntando o endereço de www ao servidor de google.com. A coisa piora quando você tem nomes com vários níveis, mas o servidor faz um cache destas requisições de forma a evitar todo esse trabalho a cada acesso. O tempo de resposta de cada uma destas pesquisas é igual ao tempo de resposta entre os servidores mais o tempo para processar a resposta propriemente dita.

O problema que o Google Public DNS resolve é centralizar de forma Googleludiana toda essa informação. Isso significa poder utilizar a rede global da Google para armazenar e atualizar estas tabelas de conversão. Outro ponto é responder as requisições de forma muito rápida, coisa que o Google é campeão em fazer. Vários provedores de acesso tem mega-caches de domínios, porém a atualização deste cache é um outro problema. O Google pretende resolver o problema dos grandes caches e ainda aumentar o nível de segurança do serviço de resolução de nomes (DNS).

Um exemplo: imagine que o tempo de resposta entre seu servidor de DNS é igual a T. Para responder o endereço IP de www.google.com, teríamos algo como 3T ou 4T. Considere que no caso do Brasil, com redes lentas, esse T é bem grande (>100ms). Pense também que uma simples página web pode ter dezenas de nomes a resolver. Isso causa um atraso enorme ao tempo total de carga da página. Usando o serviço do Google, o tempo de resposta se aproxima de T (uma vez que as tabelas cache do Google tendem a ser maiores e mais rápidas que a do seu pobre ou rico servidor).

Uma descrição completa do problema e da solução pode ser encontrada neste link.

Agora, como usar isso. A tentação pode ser de simplesmente trocar o IP do seu servidor de DNS para 8.8.8.8 e 8.8.4.4. Esta solução é muito interessante e é descrita nas páginas do serviço, mas o melhor mesmo é configurar seu servidor local de DNS para utilizar este serviço. Isto minimiza o tempo de acesso de todas as máquinas da rede e como o tempo de acesso ao servidor local é muito menor que acessar o servidor do Google, o tempo de resolução de domínios ficará bem baixo.

Para quem usa o Bind no Linux sem ter o mesmo configurado como servidor de domínios local ou principal, simplesmente como cache de DNS, basta adicionar as seguintes linhas no /etc/bind/named.conf (o endereço pode mudar de acordo com a sua distribuição Linux).

Adicione as linhas com os servidores do Google (em negrito) logo depois de directory, dentro de options:

options {
directory "/var/bind";


forwarders { 8.8.8.8; 8.8.4.4; };
forward only;


Depois disso, recarrege a configuração do Bind (/etc/init.d/named reload) e tudo feito. Agora você conta com seu cache local e com o serviço público do Google. A diferença é bem perceptível.

Você também pode obter um bom desempenho configurando os servidores do Google em seu roteador de acesso sem fio, mas isso vai depender da velocidade de resposta do mesmo. Vale experimentar!

quinta-feira, 29 de outubro de 2009

Windows 7 64 bits no iMac com Snow Leopard - BootCamp 3.0


A vida não é facil para quem tem um iMac e quer instalar o Windows 7 64 bits. A Apple decidiu que os drivers de 64 bits não poderiam ser instalados nos iMacs, só nos MacPros, mas tudo tem jeito :-D. Neste outro post, eu descrevi como instalar a versão 32 bits do Windows 7 RC, mas com o Boot Camp 2.1 do velho Leopard.

O problema é que eu gostei do novo brinquedo e comprei o Windows 7 Edição Familiar Premium. Eu já sabia que o RC seria destruído, então comecei preparado. A caixa chegou na segunda-feira, comprei por 56€ numa super-promoção ainda em Julho na PixMania.be! Por 56€ é uma opção muito interessante, não sei se teria feito o mesmo se tivesse que pagar os 99 que a Microsoft pede hoje. Backup feito, começa a aventura!

Usando a mesma partição do meu Windows 7 RC, eu apenas pedi ao BootCamp 3.0 do Snow Leopard para iniciar o CD de instalação Windows. Fiz o boot e instalei normalmente, usando o setup do Windows. O Windows 7 vem com dois DVDs, um com a versão 32 bits e outro com a versão 64. É bom olhar antes de dar o boot, porque não lembro de nenhum indicador visual de qual dos dois estava instalando (salvo no próprio DVD!).

Instalei o Windows 7 64 bits na mesma partição do Windows 7 32 bits RC, mas para minha surpresa o instalador disse que estaria movendo tudo para uma pasta Windows.OLD. Eu já estava preparado para começar do zero, aguardando a formatação do disco, coisa que não aconteceu. Tudo do Windows 7 RC antigo foi movido para a Windows.Old, inclusive o Program Files e outros diretórios.

Terminada a instalação, não tive qualquer problema no Mac, até precisar instalar o boot camp. A mensagem que apareceu é que a versão 64 bits dos drivers não é suportada na minha máquina: Boot Camp x64 is unsupported on this computer model.

Uma rápida visita no site da Apple, revela que os iMacs não estão na lista dos equipamentos suportados para os drivers de 64 bits do Windows Vista ! Uma rápida busca no Google, revela este artigo. Eu já havia lido outros, mas poucos sobre o problema da restrição do iMac. Meu iMac é modelo 2008. Antes disso, nem adianta tentar. Nao precisa baixar nada de sites estranhos, tudo que você precisa está no DVD do Snow Leopard. Um dos comentários do artigo diz que conseguiu instalar o BootCamp pelo arquivo .msi. Aparentemente é o setup.exe que verifica a restrição aos iMacs. O problema é que clicando no Boot Camp\Drivers\Apple\BootCamp64.msi no Windows Explorer ele não instala. O comentário também diz para executar em linha de comando privilegiada. Aí a coisa ficou esquisita, pois eu já era administrador do sistema. Lembrei que o Windows 7 é um primo próximo do Vista, chato mesmo.

O que precisa fazer:

  • A partir do menu iniciar, abra a pasta de acessórios e clique com o botão direito no Command Prompt. Escolha a opção de executar em modo privilegiado.
  • Na janela de comandos que abriu, vá para o diretório do BootCamp64, no meu caso o drive D: é o DVD-ROM:
d:
cd "\Boot Camp\Drivers\Apple"
msiexec /i BootCamp64.msi

Depois é só prender o fôlego e ter fé. A instalação do Boot Camp é assustadora. Telas pretas e piscadas alucinantes aconteceram no meu caso, mas é coisa rápida, bips também acontecem. Nada que não assuste durante a instalação de um novo Windows, principalmente instalando drivers do Vista 64 no Windows 7... mas já da para aguardar até os drivers nativos do Windows 7 serem lançados.

Um boa é que mesmo antes do Boot Camp ser instalado eu já tinha rede. Rede com cabo e sem fio funcionaram de primeira após a instalação. O som, o eject e a camera só funcionaram depois de instalar o BootCamp. Alias, o som não está tão bom assim. Uma dica é que o eject funciona pelo Windows Explorer, mesmo antes de instalar o Boot Camp. É só clicar no drive de DVD com o botão direito e selecionar ejetar.

A melhor surpresa foi poder acessar a partição do Mac pelo Windows Explorer. Isso é muito legal, principalmente quando você procura um arquivo que está no outro sistema.

Em relação a utilização de memória, aqui eu perdi uns 200 MB de cara, só trocando de 32 para 64 bits. O Windows 32 pedia uns 400 MB para mostrar o Desktop :-)... o 64 ja começa com 600MB. Era a desculpa que eu precisava para colocar mais 2G :-D

domingo, 25 de outubro de 2009

Capturando a saída interativa do interpretador Python em Python

Tudo tem que ser automatizado. Como estou escrevendo um pequeno livro sobre Python já há muito tempo, tenho que atualizar a versão da linguagem todo ano :-D. Com o Python 3.1 o problema ficou mais sério, pois agora tenho que testar os exemplos do livro com essa nova versão que não é totalmente compatível. O livro está sendo escrito em Latex, usando o TextMate e o Skim no Mac OS X. Eu fiz a besteira de inserir manualmente o código fonte Python no texto Latex, agora tenho que revisar os scripts um a um. Como vou revisar, aproveito para consertar e desta vez gravar os programas Python em arquivos separados.

Resolvi então utilizar o SCONS para ajudar na tarefa. Para isso, um builder customizado precisa ser criado. No SConstruct:
PYTHON_BIN="/opt/local/bin/python2.6"

python_output=Builder(action= '$PYTHON_BIN capture.py $SOURCE $TARGET',
                  suffix     = '.pyt',
                  src_suffix = '.py')

env = Environment(BUILDERS = {'python_output': python_output})
env["PYTHON_BIN"]=PYTHON_BIN

env.python_output("p1")

e depois o programa em Python que faz a captura, capture.py:
import pexpect
import sys

PYTHON_BIN="/opt/local/bin/python3.1"

interacao = file(sys.argv[1], "r").readlines()

python = pexpect.spawn(PYTHON_BIN)
python.logfile_read = file(sys.argv[2], "w")

for l in interacao:
   python.expect([">>> ", "... "])
   python.send(l)

python.sendline("exit()")
python.expect(pexpect.EOF)

O script capture.py recebe dois parâmetros: o nome do arquivo Python e o nome do arquivo de saida.
Para testar, crie um arquivo p1.py:
a=5
b=10
print(a+b)
c = a + b
d = c * a / 100
print(c,d)
for x in range(3):
    print ("Oi")

#Erro:
=d=d
rrrrr

Deve produzir a seguinte saída em p1.pyt:
Python 3.1.1 (r311:74480, Oct 24 2009, 17:11:04) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a=5
>>> b=10
>>> print(a+b)
15
>>> c = a + b
>>> d = c * a / 100
>>> print(c,d)
15 0.75
>>> for x in range(3):
...     print ("Oi")
... 
Oi
Oi
Oi
>>> #Erro:
... =d=d
  File "", line 2
    =d=d
    ^
SyntaxError: invalid syntax
>>> rrrrr
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'rrrrr' is not defined
>>> 
>>> exit()

Se você utilizar este arquivo, não esqueça de modificar as variaveis PYTHON_PATH. Eu uso MacPorts e devo especificar o caminho completo da versão de Python que quero utilizar. Isso evita problemas com outras versões instaladas no sistema, como o Python da Apple. Eu utilizei o Python 3.1 nos exemplos do livro, mas ainda uso o 2.6 para instalar meus módulos no Mac Ports.

Eu espero que isto ajude alguém com o mesmo tipo de problema: capturar a saída interativa de um programa como se fosse um terminal comum.

sábado, 24 de outubro de 2009

Aventuras com FSCK

Back-ups sempre vão bem... essa semana acabei perdendo 2 HDs. Um no PC, consegui retirar todos os dados e transferir para um servidor remoto. O outro, meu Ubuntu, Tambaqui de guerra.

Cheguei de manhã ao trabalho e vi que computador estava desligado. Como o Tambaqui é um pequeno servidor também, eu já o deixo ligado. Liguei o peixe e o boot ocorreu normalmente (eu sempre digo que só dá problema o que antes estava funcionando perfeitamente :-), senão ninguém viria com aquela desculpa-esfarrapada-padrão-de-quem-não-tem-backup: ontem estava bonzinho!).Olhando os arquivos depois do boot, vi que haviam vários arquivos com nomes estranhos com ??? e !!!!... sinal de problemas no sistema de arquivos, mas o fsck jurava que estava tudo bem :-)

Rodei então o init 1 para inicializar em usuário único. E lá rodei o fsck no menu do Ubuntu... que detectou vários problemas. Terminada a análise, fiz o boot e para minha surpresa o disco estava vazio !

Como já havia perdido um HD no dia anterior, disse: de novo! :-( Vi que a raiz tinha ido pro saco. Eu precisava apenas de dois diretórios com meus dados, prática que sigo já há alguns anos. Bom, dei uma olhada rápida no disco e constatei que estava mesmo vazio. Eu só consegui dar o boot com o CD do Ubuntu, mas não tive problemas em montar a tal partição. Começei a me preparar para reinstalar o Ubuntu quando vi que a partição não estava vazia.

Eu nunca acreditei muito no lost+found. Toda vez que tive problemas no Linux, encontrei apenas pedaços dos meus arquivos dentro do lost+found. Mas desta vez a coisa estava diferente. Entre estes pedaços estavam diretórios com nomes como #xxxxxx, milhares deles. Logo descobri aonde meus arquivos haviam ido parar.

Iniciei então o seguinte procedimento para procurar meus arquivos:
ls -laR lost+found > bigls.txt

O fsck havia recortado meus diretórios e deixado tudo em um só nível! A opção de gerar o arquivo bigls.txt era de justamente poder procurar com calma tudo que eu poderia salvar. O arquivo final tinha mais de 40MB ! Mas isso não é nada para o less. Utilizando a / para pesquisar, pude navegar no pequeno ls monstro que havia criado e logo detectar o que precisava ser salvo.

Depois, ficou fácil de mover os diretórios mais importantes para um disco de rede. O nome do arquivo eu pegava no bigls.txt, aberto em outra janela com o less. Simples e prático. Ainda estou recuperando as instalações que havia feito na máquina, pois não consegui quase nada do meu /etc (tomcat com ldap é chato).

Nessa nova instalação vou deixar um rsync rodando para o disco de rede... pelo menos dos dados e do /etc :-)

Quanto ao outro disco, rodando Windows XP... no meu velho notebook (2HDs perdidos em 2 meses e contando !)... também consegui montar o disco que nem boot mais tinha usando também o CD do Ubuntu. Ficou tudo muito simples porque o Ubuntu já identifica o disco Windows e é ultra fácil montá-lo, bastando clicar no volume correspondente no menu. Eu gosto muito de usar a linha de comando, mas confesso que gostei desta vez de utilizar as ferramentas gráficas no Ubuntu. Abri dois navegadores, um com a partição Windows e outro com um disco remoto usando Samba. A cópia foi tranqüila, bastando arrastar e soltar! Quem diria um dia fazer isso no Linux :-)

Um programa que ajuda a ver os problemas de boot no Windows é o testdisk. Ele detecta as partições e ajuda a reconstruir o setor de boot entre outras coisas. Pena que ele não está disponível pelo apt-get do Ubuntu 9.04. Mas no link acima tem uma opção para download. Basta baixar e desempacotar a versão binária. Um executável pronto (linkado estaticamente) já está pronto para ser utilizado.

Outro programa para o cinto de utilidades é o SmartMonTools. Ele acessa as informações do S.M.A.R.T. do seu HD e ajuda a decidir o que aconteceu. Claro que é melhor usar essa ferramenta antes de ter problemas, mas meu Windows XP resolveu morrer sem último suspiro. Cheguei de manhã e ele já estava morto, mas sem perda de dados. Nunca se sabe se é um problema de vírus ou simplesmente um defeito no HD que você não havia percebido. Esses utilitários ajudam a executar os testes mesmo post mortem. Claro, dependendo do estado do seu HD, porque se ele nem liga ou nem mesmo é detectado... esqueça.

segunda-feira, 14 de setembro de 2009

COOnan

Sem muito o que fazer, criei um novo personagem no universo dos bárbaros da programação: COOnan. COOnan é um bárbaro que vive em Java... na Indonésia :-D

Como todo bárbaro, poucas ferramentas são tudo que ele tem. Então OO serve pra tudo e não existe qualquer outra coisa no horizonte. Como uma fé inalienável, nada escapa a OO, salvo criação heréticas com nomes mais engraçados que o nome da ilha em que ele vive.

Tudo se resume em aplicações avançadas de OO. Criar uma interface ? Fácil, 5 arquivos e umas 12 classes já fazem o serviço. É classe por classe, objeto por objeto. Métodos gigantes e classes anônimas? não tem problema !

segunda-feira, 7 de setembro de 2009

Rico país pobre


Faz quase 3 anos que estou morando na Bélgica. Um pequeno país europeu, 3 vezes menor que Portugal, um pouco maior que o Estado de Alagoas. Vindo do Brasil, principalmente do Amazonas onde tudo é grande e longe, demora um pouco para entender as distâncias locais.

São pouco mais de 10 milhões da habitantes vivendo na Bélgica. Pra completar, fala-se 3 línguas: holandês, francês e alemão. Onde moro, fala-se francês. O conflito entre o norte (holandês) e o sul (francês) é crescente. A parte que fala alemão é muito pequena para criar problema, eles simplesmente estão lá.

Assisti um vídeo no The Progress Project, sobre o Nokia Data Gathering. O vídeo mostra uma iniciativa muito interessante de usar telefones celulares para coletar informações sobre dengue. Mas o que me chamou a atenção foi lembrar do estado de pobreza que a maioria dos brasilieiros vive. Como falei, moro agora em um pequeno país. O clima é ruim, recursos naturais quase não existem, hoje vive-se em paz, mas antes era cercado por inimigos por todos os lados. O que será que deu errado no nosso Rico País Pobre?

Eu lembro de viver muito bem em Manaus, mas em 2003, meu filho sofreu um "acidente" de carro. Foi levado para um hospital público (João Lúcio) e depois transferido para a Unimed. Uma das coisas que me chamaram atenção é que o hospital público era melhor equipado que a própria Unimed :-( Pior, parecia que o menino era culpado por ter se acidentado e o que a Unimed nos fazia o favor de aceitá-lo, mas isso é coisa passada... O importante é lembrar o estado de necessidades básicas no Brasil: educação, segurança e saúde.

Chegando na Bélgica, minha filha precisou ser hospitalizada. Hospitalizada aqui, porque acho que no Brasil teriam nos mandado para casa. O importante é que o médico decidiu sobre a hospitalização e assim ela foi hospitalizada. Dinheiro veio depois, primeiro a saúde. Considerando que isso aconteceu com um estrangeiro recém chegado e que não falava francês, nem tinha acabado de tirar todos os documentos, um milagre. Mas o caso mais sério estaria por vir, nossa filha Iris, nasceu com lábios leporinos.

Nessa época, já tínhamos todos os documentos, mas não estávamos esperando nada parecido. Ela fez todo os exames pré-natais (detectaram a má formação já no quinto mês de gestação), tivemos acompanhamento psicológico e até apresentaram fotos de bebês com o mesmo problema aos irmãos menores, já prevendo a rejeição que é comum nesses casos. No dia da cirurgia para corrigir os lábios (com 5 dias de vida!), me dirigi ao Hospital e perguntei quanto custaria, porque até então ninguém havia falado nada de dinheiro. A atendente me explicou calmamente: não tenho como dizer antes da cirurgia, o senhor receberá a conta depois de uns 3 meses em sua residência. Eu não sabia se ficava contente ou preocupado com isso. Conta enviada depois de 3 meses?!? Normal aqui, duro para brasileiro acreditar né? Perguntei a ela:
- Quanto custa em média? Eu tenho que me preparar para pagar isso.
Calmamente ela respondeu:
- Não tenho como informar, pois varia com a equipe e com o que acontecer durante a cirurgia. Por que isso é importante para o senhor? Se não puder pagar, o senhor vai deixar de fazer a cirurgia na menina? A questão financeira se discute depois, não se preocupe!
Calei. Já estava me preparando para vender o carro... meu cálculo foi o seguinte: se a visita do encanador custava 65€, imaginei a cirurgia plástica... voltei meu foco para Iris e para minha esposa. Pelo menos a primeira cirurgia estava garantida. Tudo foi realizado com ótimos resultados.
A segunda cirurgia foi realizada 4 meses depois. Essa foi maior e demorou muito mais tempo. Mas os resultados também foram ótimos. Hoje ela é um bebê de quase 2 anos, ainda em tratamento, mas feliz.

O objetivo de relatar esse tipo de experiência é tentar explicar ou entender as enormes diferenças entre nosso país e aqui. Jamais denegrir a imagem do Brasil ou dos médicos brasileiros, mas ressaltar aonde precisamos chegar.

Eu lembro de discussões sobre a riqueza de São Paulo ou de outros Estados brasileiros e me defronto com números de um país gigante, mas ao mesmo tempo pobre e anão. Mesmo São Paulo não é tão rica assim. Em termos de infra-estrutura, a começar pelo metrô, fica fácil de perceber as diferenças entre uma grande cidade rica (Paris) e uma grande cidade pobre (São Paulo). Com menos de 30 milhões de automóveis para quase 200 milhões de habitantes e um sistema de transporte precário, fica óbvio que a coisa não é tão rosa como alguns tentam se convencer. Claro, lendo isso na tela do computador já lhe separa da grande maioria dos brasileiros.

Mas como disse, já estou aqui há quase três anos e não é uma questão de competência pessoal ou resultado de um governo incorruptível (que nem aqui existe). O que será então a grande diferença entre estes dois países?

Minha opinião, humilde uma vez que não realizei um grande estudo, apenas observações do dia a dia; é que a grande diferença é no papel do estado em prover o básico para a formação de uma sociedade sadia. Já falei de saúde, o Brasil tem feito progressos, mas ainda está muito atrasado: os pobres sofrem nas mãos do atendimento público, sub-financiado e os ricos são reféns de planos de saúde, mas que resolvem os problemas mais básicos. Isso impede a melhoria de vida e do atendimento aos pobres, porque ninguém liga pros pobres, eles vivem em outro mundo, não é? Salvo em época de eleição.
Educação é outro ponto. Universidades públicas excelentes, mas escolas primárias e secundárias em tempo parcial. Não que não haja melhorias, mas na educação também temos dois sistemas paralelos: os ricos em escolas particulares e os pobres em escolas públicas. Quem estuda no grupo é o filho da empregada doméstica, então ninguém liga :-(
Segurança nem se fala. Olhando os índices de violência por bairro (fiz isso com os de Manaus em 2005) fica claro que os bairros mais violentos são os mais pobres. Isso fica pior em cidades onde os pobres são verdadeiramente excluídos, vivendo o mais longe melhor. Nos bairros ricos, os crimes também acontecem e são esses os combatidos e mostrados na TV!
Não é questão de ricos contra pobres, mas a existência de realidades paralelas no mesmo país. Se o sistema de saúde fosse realmente único, se todos tivessem que esperar o mesmo para ter uma consulta médica ou estudar nas mesmas escolas, a coisa seria diferente. Aí nos importaríamos realmente no que acontece no outro mundo. Pararíamos de enxergar os ricos como ladrões e os pobres como coitados... ou seria o inverso?
Isso tudo se resume em diminuir a desigualdade social. Na Europa, os ricos são muito ricos, mas também são muito poucos. Um engenheiro ganha de duas a três vezes mais que um operário e dependendo do país essa diferença é ainda menor! Nada como a diferença de 10 ou 20 vezes mais entre o salário de um engenheiro e o valor do salário mínimo. Depois não se entende o por quê da desigualdade !
Rico mora em condomínio fechado com segurança privada e faz compra em shopping centers... o problema de segurança é mais sério no trajeto entre estes pontos e o trabalho, mas é tolerado. Criamos dois mundos no mesmo país, uma fronteira imaginária entre ricos e pobres.

O que fazer? O que é pior, ser rico no país dos pobres ou pobre no país dos ricos? Temos que escolher e pensar no bem de todos. Violência se resolve com renda e emprego, mas as pessoas precisam de saúde, moradia e educação para chegar lá. Eu sempre achei programas como o bolsa família populistas e criado por políticos na época de eleição, mas hoje acredito ser o caminho para obtermos um equilíbrio social durante a formação da nossa sociedade. Hoje o valor do bolsa família ainda é muito baixo, sentiríamos mais resultados se o valor fosse próximo ao do salário mínimo. Não é tão utópico assim, é comum na Europa. Na Bélgica se chama alocação familiar e é pago por filho com idade entre 0 e 24 anos (se continuar estudando). Embora não tenha o nome de bolsa família é bem parecido. Na época de volta às aulas, depositam uns 50€ para ajudar nos gastos (aqui 150€ de material escolar é um escândalo e sai na TV... ai eu pagava muito mais que isso, uns R$1.000 a R$1.500!). Recebe-se 800€ de prêmio pelo nascimento (1200€ pro primeiro filho)... Até sair da faculdade, valores entre 95 e 200€ por mês/filho são depositados na conta da esposa (pro pai não comprar pinga!).

Temos um grande complexo de inferioridade como povo. Coisas como europeus são bons (fazendo referência aos brancos que nascem no Brasil) e todos os outros são vagabundos, corruptos ou simplesmente desajustados. Isso é um forma deslavada de racismo, mas que contamina nossa sociedade. É aceitar o estigma do jeitinho brasilieiro como algo gravado em nosso DNA. Alias, aqui, Brasil é tudo igual. Europeu é quem tem passaporte europeu e não importa a cor da pele.

Sabendo que não são somos predestinados ao fracasso como povo e que nem negros, portugueses ou índios tem qualquer coisa a ver com isso... o que nos falta? Assumir a responsabilidade pelos nossos atos e omissões e continuar a vida como agentes de mudança e não como vítimas da história.

Eu realmente acredito que o Brasil será um grande país num futuro próximo, pensando em 2050. As taxas de crescimento e educação vem melhorando, lentamente, mas continuamente. É preciso acreditar e identificar o que está realmente errado. Iniciativas como a Associação Amada, responsável pela divulgação do implante coclear em Manaus, mostram como chegar lá e o que fazer no caminho. É quando nossa sociedade se organizar para fortalecer suas bases e não apenas fazer carnaval (nada contra a festa, mas imagine um grande mutirão da educação ou barracões de matemática e ciências!). Feliz 7 de Setembro, dia da independência do Brasil.


domingo, 6 de setembro de 2009

Fotos panorâmicas com Hugin


Tô começando a gostar de fotografia de verdade. Esta fotografia foi criada com o software livre Hugin. Juntando-se 4 fotos normais, obtêm-se a vista panorâmica. Muito fácil de usar!

Tamanho original 3733x834


sexta-feira, 28 de agosto de 2009

Snow Leopard na área

Bom, a instalação finalmente terminou e o World of Warcraft continua funcionando. Quase 1 hora de instalação e uns 4 boots depois, tudo terminou bem. A instalação é toda automática, deixei instalando e fui ver televisão. Toda customização de cores, teclado, língua, dashboard etc foi mantida. O bom e velho Mac de sempre.




terça-feira, 25 de agosto de 2009

iTunes - Além da música

Hoje, revisitei o iTunes U. Pra quem ainda não conhece, o iTunes U é uma seção do iTunes Store com aulas de diversas Universidades. A quantidade de cursos vem crescendo e a qualidade é muito boa, embora eu prefira as aulas com vídeo aos podcasts.

Vídeos do MIT e Stanford? Tem lá e de graça. Eu procuro mais vídeos sobre matemática e estatística, séries de Fourier e outras coisas que preciso no trabalho, mas tem muito material sobre história, economia e biotecnologia entre outros. Alguns introdutórios, outros bem avançados, faltando as vezes cursos entre estes dois extremos, mas um ótimo recurso para se ter uma idéia do assunto ou simplesmente outra visão.

Fica a dica para quem estiver procurando o que assistir na televisão.


terça-feira, 14 de julho de 2009

A Era do Console

Leia no novo blog

Ainda lembro dos "mágicos" da época do DOS. Aquele pessoal que criava seus prompts coloridos ou com gráficos inimagináveis para época (caracteres especiais e símbolos perdidos em páginas de código quase esquecidas). Lembro quando um colega comprou o MS DOS 5.0 e passamos uma tarde para configurar a tal página 850. O Manual dizia que os acentos do português só apareceriam corretamente nela. Tudo muito simples, apenas algumas linhas no CONFIG.SYS e outras no AUTOEXEC.BAT. É, o Word era modo texto. Depois disso, descobrimos que o teclado também tinha que ser configurado... mais linhas no AUTOEXEC.BAT. Claro que nada disso resolvia o problema de imprimir os acentos na impressora, isso era outra batalha!

Mas já era uma vitória ter maiúsculas e minúsculas... coisa opcional nos anos 80... acentos era luxo :-)

O livro dos mágicos era o manual do MS DOS. Coisa rara porque naquela época muita gente nem sabia que se vendia isso. Software ainda vinha com manual impresso e poucos liam. Os que liam se tornavam seres míticos, capazes de dominar o DOS e outros dinos da época como o SCO.

Depois disso eu ganhei um mouse, mas achava que só serviria para desenho :-D Mas eu estava enganado. O mouse e as GUI matariam o console em pouco tempo. Eram os anos 90... Windows 3... coisas cabeludas da época. Bom mesmo era usar o Amiga de outro colega com jogos e o poderoso Amiga OS. No PC só DOS e o Windows que rodava no DOS. Consumia tanta memória (RAMs de 1MB, HDs de 10 MB eram comuns) que não sobrava espaço para mais nada, QEMM que o diga. Meu micro não rodava Word for Windows, porque era um AT 286, mas o Windows enrolava nele... com o Windows 3.1 consegui um 486, 4MB de RAM e finalmente pude rodar o Word for Windows ! Antes eu me divertia com a sofisticação do write.exe... acentos impressos em qualquer impressora e documentos com qualidade de carta (essa é velha)! Mas o console continuaria reinando até o Windows 95.

Hoje com aplicativos Web e a tal da Web 2.0, o console perdeu a graça. Console só em sistema velho de farmácia ou posto de gasolina. Fosseis vivos escritos em Clipper. Eu ainda uso todo dia no Linux, no Mac e no Ruindows, gente não muda facilmente. A era do console acabou, mas que o bicho ajuda, ajuda.

Eu tentei escrever scripts com saída colorida em Python. Descobri que existem várias bibliotecas para isso, mas bibliotecas multiplataforma não achei nenhuma. Claro, quem que ainda trabalha com isso?

Curses, WConio e pequenos scripts abundam, mas todos precisam de módulos em C que são bem chatos de distribuir com o script, principalmente pro Ruindows.
Eu acabei por escrever um pequeno módulo para trocar a cor, limpar a tela e configurar o título da janela do console ou xterm. Até agora está funcionando no Linux e no Mac, mas falta unificar a parte Windows. No console do Windows não tem muito o que fazer, senão usar a ctypes para chamar algumas funções da kernel.dll. Apesar de usar a ctypes, dá pra mascarar a inicialização de acordo com o sistema operacional e fazer tudo em Python.

Acabei criando um projeto open source para isso. Pelo menos não vou esquecer o trabalho que deu, nem ter que fazer backup sozinho. Vou colocar os fontes aqui: http://code.google.com/p/colorconsole/

Fuçando essa arte quase esquecida, achei como mudar o prompt padrão do console do Windows XP. É bem simples, como tudo no Windows:
1. Você abre o regedit
2. Procura a chave [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\]
3. Crie uma entrada string com o nome PROMPT
4. Digite seu novo prompt, por exemplo: [%computername%]$S$P$G
5. Log off e log in, claro senão não seria o velho XP :-)
6. Se tudo deu certo, seu prompt padrão do Ruindows foi mudado!

Passo-a-passo aqui

Se você ainda usa o cmd.exe diariamente, vale a pena instalar o "Open Command Window Here" no Windows Explorer. Um power toy da Microsoft que pode ser baixado aqui. Como eles mudam o site deles a cada 4h, melhor procurar no Google.