Migrei para o Blogger

April 21st, 2009

Meu novo blog, desde o início de 2009, está aqui:

http://blog.ramgarlic.com/

Este aqui do ramalho.org está abandonado, algo quebrou sistema de comentários do Wordpress aqui e eu ando sem tempo para ver o que é.

Um dia eu vou migrar estes posts para outro blog no Blogger também… por enquanto, aprecie o http://blog.ramgarlic.com/  que tem um perfil mais técnico e menos político que este aqui.

A aposta dos bilionários desconfiados

December 7th, 2008

Imagine que três bilionários, Bill, Larry e Sergey estão tomando uísque Macallan 1926 e resolvem apostar quem é o mais rico.

OK, existe a lista da Forbes mas ela não leva em conta o caixa 2.

Eles também não se confiam para revelar suas verdadeiras fortunas, mas Sergey estudou computação, domina Python, e apresenta uma solução para o problema: VIFF.

Com o VIFF eles podem usar criptografia assimétrica para determinar colaborativamente qual é a maior fortuna, sem que os dados fornecidos por cada um sejam revelados para os demais, apenas o resultado.

É um exemplo de Secure Multiparty Computation.

Dá para bolar muitos jogos com isso…

Ganhamos do MySpace

December 4th, 2008

E perdemos do Google, como já imaginávamos. Estive ontem no coquetel do Prêmio Info 2008 e o resultado na categoria “Personalidade do Ano” ficou assim: 61% para Bruno Diniz do Google, 23% para Luciano Ramalho do Python Brasil e 16% para Edson Calegaretti do MySpace.

Quero agradeçer muito a todos os que votaram no meu nome e fizeram campanha. Não levamos o troféu mas fizemos bonito, porque o Google é realmente uma marca quase imbatível hoje.

Nenhuma marca foi nomeada em tantas categorias, e o Google levou 10 das 13 que disputou. O poder da marca fez até o Picasa ganhar do Flickr. Só o IPhone e o Firefox bateram concorrentes do Google (o Firefox em duas categorias).

O Django, produto da comunidade Python, ficou em terceiro na categoria “Desenvolvimento”, atrás do Rails e do Adobe AIR. [resultados completos]

O mais importante é que a gente teve as nomeações, então estamos de novo na revista (pags. 90 e 92 da edição de dezembro), e vamos entrando no radar de mais leitores. E a nomeação me deu a oportunidade de estar lá ontem à noite, em nome da Associação Python Brasil, trocando cartões de visita com empresas que podem patrocinar ou ajudar de outra forma em nossas ações. Tentamos aproveitar ao máximo a oportunidade, porque tava claro que ganhar seria muito difícil.

Para a nossa comunidade, a melhor notícia da noite foi que a Sandra Carvalho, publisher da Info, quer abrir um fórum permanente sobre Python no site da revista.

Valeu pessoal, muito muito grato pela força!

O mistério do teclado sem “?”

November 26th, 2008

Outro dia eu li na Info que um modelo de notebook Vaio lançado no Brasil não tem o ponto de interrogação no teclado. Achei bizarro e fui conferir na Fnac. Fiquei abismado ao constatar que os notebooks novos da Sony, STI e outros fabricantes estão saindo com teclados supostamente “padrão ABNT-2″ que têm o “Ç” mas não têm a tecla com os caracteres “?” e “/”. Curiosamente, a tecla do “\” e do “|” foi mantida. Veja a foto de um teclado deste tipo.

Nesses notebooks, para digitar um ponto de interrogação ou uma barra normal é preciso usar uma combinação com a tecla AltGr. Por exemplo, “?” é AltGr+W. Mas a contrabarra está lá, com sua própria tecla, e basta um Shift para produzir o pipe, símbolo que só interessa para programadores. Pena que como programador eu faço mais divisões que disjunções de bits.

Este teclado não é para mim. Pensando bem, acho que minha mãe também usa mais a barra e a interrogação que a contrabarra e o pipe. Para quem será que este padrão de teclado foi feito?

Fiquei muito interessado em descobrir como é que vários fabricantes de notebooks foram levados a tomar esta decisão. Será que foi uma norma técnica publicada no primeiro de abril?

Se você sabe alguma coisa sobre os bastidores desta história, por gentileza, deixe o seu comentário contando. Ou, se você acha muito mais útil a tecla “\|” do que a “/?”, então me conte o que você faz com o seu computador.

Vou continuar investigando e quando tiver novidades, colocarei aqui. Conto com você para esclarecer este mistério!

Campanha Prêmio INFO para LR / Python Brasil

October 19th, 2008

Atualização 2: Parece que quem foi premiado já sabe que foi premiado, e o suspense é só para quem não levou. Pelo menos é o que andei lendo num blog, e faz sentido porque a Info quer assegurar que os premiados estejam lá para receber o troféu. Então tudo indica que não foi dessa vez… Mas estarei lá trocando cartões de visita com muita gente que pode contribuir de alguma forma com a comunidade Python no Brasil.


Atualização: O suspense continua… A Abril me convidou para a cerimônia de entrega do prêmio INFO no dia 3 de dezembro, e o resultado da votação só é revelado durante a festa. Muito grato a todos que ajudaram votando ou fazendo campanha!


A revista INFO de outubro me indicou na categoria “Personalidade INFO do Ano” pelas atividades da Associação Python Brasil, entidade que eu ajudei a criar e hoje tenho a honra de dirigir, junto com grandes amigos que conheci divulgando a linguagem Python.

Read the rest of this entry »

Python no ano do rato

February 7th, 2008

Hoje começou o ano do rato no calendário chinês.

O Tiobe Index escolheu Python como a linguagem do ano em 2007. Foi a que ganhou mais popularidade entre as 10 mais importantes. Subiu da 8a para a 6a posição. Acima de Python agora só existem linguagens muito famosas: Java, C, Visual BasicTM, PHP, C++.

Mas a melhor parte dessa notícia foi a análise no Tiobe: “There is no clear reason why Python made this huge jump in 2007″. Porque 2006 foi o ano da linguagem Ruby, mas havia um motivo bem claro: o reflexo da fama do Ruby on Rails, um framework Web inovador. No caso de Python, foram vários fatores ao mesmo tempo.

Do celular ao YouTube

O salto de 2007 foi fruto de um crescimento orgânico, no embalo de muitos anos comendo pelas bordas. Python passou Perl pela primeira vez, e Perl era a linguagem favorita dos administradores de sistemas. Hoje sysadmins de mega-instalações, da Rackspace ao Google dependem de Python como nunca antes. Python roda em celulares Nokia e nas plataformas Java e .Net. E não dá mais para instalar uma distribuição GNU/Linux moderna sem Python: ela está na infra-estrutura do sistema.

No desenvolvimento web, a maturação do Django trouxe ao Python uma alternativa tão sólida e ágil quanto o Rails, sem ser um clone dele. E além de Django temos Plone, TurboGears, Zope, Grok, Pylons. Frameworks web para todo tipo de projeto. Para quem não gosta de se enquadrar, tem até um “anti-framework”: web.py, o “segredo” por trás do site reddit.com, site que acabou comprado pela Wired.

O YouTube virou o segundo maior caso de uso de Python na Web (depois do Google, que desde o início fez propaganda de sua preferência). O YouTube já era feito em Python antes de ser adquirido pelo Google.

Pixels, vetores e curvas

Em 2007 Python foi adotada como linguagem de scripting oficial em aplicativos importantes como o Gimp e o Maya. Na lista Python-Brasil a gente nota uma migração de pessoas que foram abandonadas pelo fim do Kylix (o Delphi para Linux), e que optaram pelo Python com PyGTK para fazer suas aplicações desktop. Em aplicações científicas a linguagem também vem crescendo, e desde 2007 temos até um livro sobre isto em português, do biólogo Flávio Codeço Coelho. Meu amigo Tony de Marco, font-designer premiado, está estudando Python porque é a linguagem do FontLab, a mais avançada ferramenta de tipografia digital.

Inteligência coletiva

 

Um dos livros mais comentados neste final de ano foi o Programming Collective Intelligence, sobre aplicações práticas de machine-learning na Web. Não tem Python no título, mas essa foi a linguagem escolhida pelo autor para ilustrar suas técnicas. Python é uma linguagem tão expressiva e fácil de ler que é ideal quando se deseja enfatizar os algoritmos, em vez dos detalhes de implementação. Outro livro 5 estrelas na Amazon, que usa Python como veículo: Game Programming: The Express Line to Learning. Por sinal, os games são uma outra área onde Python ganhou muita importância recentemente, e já existe uma boa bibliografia a respeito. Também em 2007 saiu o Aprendendo Python no Brasil. Parece que todo mundo está descobrindo Python ao mesmo tempo.

E em 2008…

A onda do Django está apenas começando, e trará muita gente nova para o Python. Nosso amigo, o professor Marco André conta que esta foi a linguagem adotada na série Use a Cabeça da O’Reilly para seu novo livro de introdução à programação: Head First Programming. E até na disciplina MAC-110, onde os calouros do bacharelado em computação da USP aprendem a programar direito, este semestre a primeira linguagem não será C nem Java, mas Python. Pela primeira vez o FISL (Fórum Internacional do Software Livre) terá uma trilha exclusiva de palestras sobre Python.

Python pode não ter o marketing e o hype de outras linguagens, mas com sua versatilidade, elegância e confiabilidade, vem ganhando uma base sólida de usuários leais, através do boca-a-boca entre programadores. Tem sido assim nos últimos 15 anos, e a aceleração é notável à medida que ganhamos massa crítica. No ano do rato, a cobra vai se dar muito bem.

Novo exemplo de Grok: LoginDemo

December 29th, 2007

Inspirado pelo fantástico Useless Account eu resolvi montar uma aplicação exemplo em Grok para mostrar como criar contas de usuários, fazer logins e usar uma permissão: LoginDemo.

A maioria do código deste exemplo eu tirei do Kirbi (meu projeto no Google Summer of Code 2007 - svn), mas um par de linhas eu peguei no ótimo Permissions Tutorial do Luis, Uli e JW.

Fiquei com a impressão que isto tudo ainda está um pouco complicado demais no Grok. Talvez um PrincipalFolder com SessionCredentials- Plugin pudesse vir pré-instalado ao criarmos uma instância de grok.Application.

Principais recursos demonstrados:

  • barra no topo da tela mostra dados do usuário e estado do login
  • links na barra do topo mudam de acordo com o estado do login
  • usuário pode criar sua própria conta
  • uma listagem de contas criadas pode ser vista
  • a listagem de contas é protegida por uma permissão, exigindo log in
  • boa cobertura de testes funcionais (veja por exemplo join.txt em src/logindemo/ftests)

Há algumas tarefas ainda por fazer. Veja o README.txt.

Para experimentar o código, faça:

$ svn co svn://svn.zope.org/repos/main/grokapps/LoginDemo
$ cd LoginDemo/
$ python2.4 bootstrap/boostrap.py
$ bin/buildout

Neste ponto, um monte de eggs do Grok e do Zope 3 serão baixados e instalados. Para rodar os testes:

$ bin/test

Para subir a aplicação:

$ bin/zopectl fg

Daí acesse http://localhost:8080, usuário grok, senha grok, e crie uma instância da aplicação LoginDemo para experimentar.

Como manter seu site em pé sobre uma plataforma que não pára no lugar

May 21st, 2007

Está acontecendo uma longa discussão na lista Zope-pt sobre as dores evolutivas da platforma Zope/Plone. Vários depoimentos na lista ralatam muita dor de cabeça na hora de migrar sites antigos para versões recentes do Plone, e alguns até já se resignam em dar manutenção para sites que nunca sairão da versão do Plone em que foram criados originalmente.

Tenho pensado muito sobre esta questão porque uma parte importante do nosso discurso para promover o Zope/Plone é dizer que servem para construir sites duradouros. Então o que se passa, e como melhorar a situação?

Sites podres

Antes de mais nada, quero deixar claro que eu realmente acredito que usar um framework para fazer um site vale a pena porque estou fazendo sites dinâmicos desde 1995, e a experiência mostra que quando construímos sites na base de milhares de scripts improvisados e bancos de dados idem, o custo de manutenção é muito alto, tanto em dinheiro quanto em pessoal. Os melhores programadores não aguentam muito tempo as tarefas repetitivas de manter um site podre rodando, e acabam indo embora, levando consigo as esperanças de um dia construir uma solução mais racional; no serviço público eles não vão embora, mas “se aposentam” sem deixar o cargo. Acho que todos já viram isso acontecer.

Mas o pior é que, mesmo pagando caro pela manutenção destes espaguetes lógicos a gente se vê obrigado, periodicamente, a jogar fora um monte de código e começar de novo porque chega um ponto que simplesmente não dá mais para consertar.

Porque usar um framework

O grande Fred Brooks já disse: não existe a bala de prata. Não adianta procurar uma solução mágica para os problemas intrinsecamente difíceis de desenvolvimento de software. Mas usar um framework é uma maneira de aumentar a vida útil dos sistemas. Como?

Através da transformação da vivência de desenvolvedores experientes em requisitos ou casos de uso, e depois em uma visão geral, uma arquitetura, e finalmente em componentes de software que outros desenvolvedores podem usar para resolver problemas de uma certa natureza.

Por exemplo, o Plone+CMF+Zope2 formam um framework que nos ajuda a resolver problemas de publicação e gerenciamento de conteúdos em sites. Se multiplicarmos o número de desenvolvedores que contribuiram para este framework com os anos de experiência em desenvolvimento web de cada um deles, teremos milhares de anos de experiência acumulada. E esta experiência, através de muita discussão, trabalho, testes, e mais experiência, foi consolidada em um framework que hoje pode não ser a coisa mais pura e consistente, mas funciona como um framework e não como um monte de peças desconexas.

Mas eu usei um framework e meu site apodreceu mesmo assim

Posso falar por experiência própria. Em 1999 a Hiperlógica desenvolveu a primeira versão do Página-1, um CMS para sites de notícias. Na época, o framework era Zope 2.1 e só. O Página-1 chegou a ser usado em mega-sites, como o BOL e a AOL Brasil, portais que chegavam a publicar mais de mil páginas novas diariamente, principalmente graças a coletores automáticos de notícias, mas no caso da AOL havia também uma equipe de 40 jornalistas só para alimentar o portal.

Fazíamos todo o desenvolvimento via ZMI. Nosso código era organizado em ZClasses, primeiro usando apenas DTML, depois Scripts (Python), porque inicialmente estes não existiam. Quando pintou o ZPT, arrastei toda a equipe para esta nova tecnologia, muitos resmungando e arrastando os pés. Outras mudanças mais profundas a gente não incorporou. Uma delas foi o CMF. Vivíamos falando que era preciso reescrever o Página-1 sobre o CMF, mas infelizmente a empresa fechou as portas antes que isso fosse feito.

Assim como o Página-1, existem outros produtos rodando por aí, baseados em versões antigas do Zope, do CMF ou até do Plone, e com as mudanças mais profundas causadas pela chegada do Zope 3, muitos destes produtos vão ter que ser refeitos, ou vão desaparecer. Como chegamos nisso?

A grande vantagem e o problema maior do software livre

O software livre avança mais rápido que o software proprietário, e de maneira mais constante. Para produtos considerados estáveis, versões novas a cada três meses são comuns. Quem quer usar o que há de mais moderno no CVS tem que se atualizar todo dia, ou no máximo semanalmente. Ao mesmo tempo, não existe no software livre todo aquele marketing alardeando a necessidade de ter sempre a versão mais nova. É fácil se acomodar numa versão que funciona, ficar com ela e dedicar seu tempo a aprofundar suas customizações e extensões, em vez de ficar atualizando a infra-estrutura o tempo todo.

Mas é um erro que custa caro. Porque se você mantém seu site sempre rodando na versão mais atual, as migrações são menos doloridas. É como cuidar de um jardim: se existe uma manutenção constante, o trabalho cotidiano não é tão grande, e o jardim está sempre bonito e as plantas saudáveis. Se a gente abandona, as ervas daninhas se multiplicam, as larvas tomam conta, e logo é preciso arrancar tudo para recomeçar.

No caso do Plone, o que é realmente difícil é migrar algo feito há dois ou três anos para uma versão que acabou de sair do forno. E quando mais tempo a gente adia uma migração como esta, mais difícil ela fica. Até que a gente se desespera e começa a questionar a própria plataforma. Nesta hora é tentador pensar “já que eu vou ter que refazer tudo, então vou refazer usando este outro framework que está na moda”. Mas eu garanto: se você não mudar a forma de se relacionar com o framework, seja ele qual for, daqui a três anos você vai estar administrando outro site podre, e talvez pensando em adotar o J9EEE, o Erlang-on-Rockets ou o Plone 7 sobre Zope 5.

Reveja suas prioridades, e seja mais feliz

Outro dia um cliente me consultou porque queria colocar uma sofisticada camada AJAX sobre o Plone 2.5 de sua intranet. Eu lhe disse para esperar pelo Plone 3, que está saindo com toda uma infra-estrutura avançada para integrar AJAX. E se a demanda de AJAX não puder esperar? Então quase todo o trabalho que for feito agora será perdido quando chegar o Plone 3. É melhor alocar o programador que estava pronto para fazer AJAX para começar já a migrar a intranet atual para o Plone 3 beta 3, para ver o que vai quebrar e resolver logo o que precisa ser resolvido.

Este pequeno exemplo ilustra um ponto muito importante. É claro que existe um custo de acompanhar de perto a evolução de um framework, fazendo atualizações sempre que muda a última casa decimal na versão. Mas existem também enormes benefícios. Um deles é evitar que o seu site apodreça. Outro é que, no caso do Plone, os aperfeiçoamentos costumam ser muito visíveis, atraentes e benéficos para os usuários finais.

Tempo emprestado a juros altos

Kent Beck, o guru de Extreme Programming, escreveu em algum de seus livros que quando a gente resolve um problema de maneira precária para ganhar tempo, estamos na verdade fazendo um empréstimo no Banco do Tempo. Mais tarde teremos que pagar por este tempo emprestado, e com juros. E quanto mais demorarmos para pagar, maior serão os juros. A visão dele não é moralista: ele aceita que fazer empréstimos às vezes é uma boa estratégia para aproveitar oportunidades. Mas se uma empresa faz empréstimos demais acaba quebrando. É preciso ter sempre consciência do seu grau de endividamento.

Na prática, muitas equipes que usam Plone hoje precisam rever a alocação dos desenvolvedores, para garantir que sempre tenha gente empenhada em fazer os produtos, customizações e extensões locais funcionar na versão mais nova do framework. “Mas na minha equipe ninguém tem mais tempo para nada”, já sei. Então explique a situação para o seu chefe. Mostre para ele que não tem alternativa melhor, que não é viável construir um site Web 2.0 sofisticado sem um framework, mas que para usar um framework é preciso acompanhar sua evolução, e que é melhor reduzir o ritmo de customizações para manter a infra-estrutura sincronizada do que customizar adoidado um sistema que vai apodrecer e ser jogado fora em três anos. E faça esta recomendação por escrito, num relatório. Porque se a decisão for continuar como está, vai ser bom para sua auto-estima encontrar este relatório na sua gaveta.

No caso da Hiperlógica, deixamos o Página-1 falir. Porque mesmo sabendo dos benefícios, não tivemos oportunidade de fazer as mudanças, algumas bem profundas, necessárias para acompanhar o framework. Talvez alguns sites fortemente customizados rodando Plone 2.0 ou 2.1 hoje se encontrem na mesma situação: sai mais barato recomeçar do que tentar refazer. Mas antes de jogar no lixo seu conhecimento acumulado em uma plataforma, assegure-se de aprender algo com esta triste experiência. E como consolo, considere isto: quem produz código costuma dar pouco valor à especificação, requisitos, casos de uso, arquitetura da informação, ícones, folhas de estilo etc. O seu software atual, mesmo podre, é um rico repositório destas coisas. E na hora de refazer você poderá aproveitar tudo isso que não é código-fonte.

Resumindo, o problema não está neste ou naquele framework, e sim em como a gente estima os custos de usar um framework e se manter atualizado nele, seja ele qual for. E se tem algo que a maioria dos desenvolvedores que eu conheço faz mal, e os adeptos do software livre fazem ainda pior, é estimar custos.

Dá para ter uma vinda longa, próspera e saudável usando um framework. Basta estar preparado para pagar os custos de usá-lo. No caso do Plone, continuo apostando que o custo é bem menor, e os benefícios para o usuário final muito maiores, do que qualquer amontoado de scripts, larvas, tabelas e ervas daninhas que alguns chamam de site.

“O Americano Tranquilo”

February 2nd, 2007

O título original é “The Quiet American”. Será que “O Americano Calado” seria uma tradução melhor?

Faz tempo eu queria ver este filme, pelo tema de política internacional e pelo Michael Caine. Ontem Marta e eu vimos, e achamos um filme muito atual, pelo paralelo entre a desastrosa intervenção americana no Vietnã e o que se passa hoje no Iraque. O roteiro é muito acima da média, para começar porque não é maniqueísta, coisa rara em produções de Hollywood. É baseado em um livro do Graham Greene, e isso explica a qualidade literária da trama, dos diálogos e das falas do narrador. Grande filme.

Um de seus temas é o que eu chamo de positivismo americano. Talvez por ter vencido a 2a Guerra e chegado à lua, o povo ianque tem uma confiança exagerada em planos, esquemas, fórmulas, simulações, enfim, qualquer coisa que reduza a realidade a termos mais fáceis de entender. O que eles não percebem é que sua realidade pasteurizada só faz sentido para eles mesmos. E pior: logo esquecem que a realidade não é aquela reduzida para caber em seus planos, mas sim aquela outra, suja e incontrolável.

Uma vez eu vi o lendário e culto programador Larry Wall, numa conversa informal durante um FISL, fazer uma autocrítica sobre a política externa americana: “Nosso problema é achar que os outros países são tão multi-culturais quanto o nosso”.

Eu queria rolar no chão às gargalhadas, mas consegui me conter e dizer-lhe que, com todo respeito, permita-me discordar mas me parece ser uma opinião geral entre latino-americanos e europeus que os americanos são o povo menos multi-cultural do ocidente, e que multi-culturalismo não se limita a ter restaurantes de todas as partes do mundo, mas inclui também falar outras línguas, ouvir música e assistir filmes de outros países, fazer turismo no exterior, enfim, um monte de coisas que a grande maioria dos americanos não tem o menor interesse em fazer.

Você já notou que a esmagadora maioria dos gringos que vêm para o Brasil vêm a trabalho? Sou capaz de apostar que a maioria das viagens de americanos para o exterior, independente do destino, são a negócios. Nas melhores praias do Brasil é muito mais fácil encontrar um alemão, um francês ou mesmo um inglês que um americano. E quando estão aqui em serviço, os gringos em geral não fazem a menor questão de sair do hotel entre um compromisso comercial e outro. Porque se não puderem ficar no quarto vendo o mundo pela CNN eles têm medo de ficar desinformados!

Existem as exceções, é claro. Tenho grandes amigos americanos, mas eles são genuinamente multi-culturais e interessados no que se passa em outros países. São também unânimes em discordar do jeito Bush de ver o mundo.

Um americano que resolveu se redimir contando umas verdades é o Robert McNamara, que foi secretário de defesa dos EUA no tempo da guerra do Vietnã. No imperdível documentário The Fog of War (”Sob a névoa da guerra”) ele conta que foi a um jantar comemorativo do estabelecimento de relações diplomáticas entre o Vietnã e os EUA. Na ocasião, figuras importantes dos dois lados do conflito puderam trocar idéias cara a cara, pela primeira vez. Um general vietnamita explicou ao McNamara porquê os EUA não tinham a menor chance de vencer a guerra, dizendo mais ou menos assim: “Estamos há mais de dois mil anos sustentando nossa independência em relação os chineses, que estão aqui do lado. Vocês achavam que podiam vir do outro lado do mundo e tirar a nossa soberania?”

Agora todos PhD’s que assessoram o Sr. Bush, MBA, acreditam que com um bom plano e 120.000 soldados é possível implantar uma democracia à sua moda numa terra que aprendeu a escrever leis há mais de 5.000 anos, antes de todo mundo. Ou será que eles não sabem que a Babilônia é o berço da civilização?

PS. Na real, os Chenneys e Condies da vida são mais cínicos que ignorantes. Estão fazendo o jogo de seus verdadeiros patrões nas indústrias bélica e petrolífera, e estufando suas contas secretas com o dinheiro dos contribuintes intranquilos.

Morro v.1.0

January 26th, 2007

O Morro dos Ventos Uivantes, da Lotus Honda Corp., é um novo sistema integral. Enriquecido de vitamina e ferro, o MVU substitui com vantagens o ferro de passar convencional.

O sistema é dividido em três módulos: depilador, maquiador e milton. Milton e o maquiador trabalham juntos, exercendo mutuamente uma crítica implacável, porém construtivista. Um é piagetiano, e o outro é discípulo de Papert™. Os dois trabalham bem bom.

A principal novidade trazida pelo MVU, no entanto, é seu depilador incremental interativo. O gafanhoto (como é chamado pelos técnicos da Lotus), opera na faixa de 80 MHz$, com 40.000 watts de potência. O segredo de sua performance extraordinária nas dobrinhas e partes moles está na disposição oblíqua de suas três escovas.

Ainda não tive tempo de realmente usar o MVU. No próximo número, traremos um teste completo do sistema. Por enquanto, basta dizer que Mary Shelley, principal autora do Morro, me garantiu que não ficaremos decepcionados. De fato, Mary nunca me decepcionou.


  • find cheap viagra
  • discount acomplia
  • best price viagra
  • cheapest synthroid prices
  • buy cheap clomid online
  • cheap viagra in uk
  • price of cialis
  • order levitra online
  • synthroid generic
  • cialis us
  • viagra prescription
  • buy cheap cialis online
  • buy discount viagra
  • order viagra no rx
  • buy cheap soma
  • find cheap viagra online
  • lowest price viagra
  • buy generic lasix
  • viagra vendors
  • cheap levitra online
  • buy cheap viagra online
  • approved viagra pharmacy
  • cheap lasix tablets
  • cialis price
  • order acomplia
  • cheap zithromax online
  • synthroid no prescription
  • buy cialis
  • clomid sale
  • buy cialis online
  • cheapest clomid
  • synthroid prices
  • purchase viagra no rx
  • cheap viagra no prescription
  • accutane online
  • cheap zithromax tablets
  • cheap generic acomplia
  • viagra discount
  • generic zithromax
  • soma online stores
  • buy viagra no rx
  • buy cheap levitra online
  • order synthroid online
  • discount cialis overnight delivery
  • best price cialis
  • cialis without rx
  • lasix sale
  • purchase accutane online
  • price of accutane
  • order viagra no prescription
  • viagra price
  • cheap viagra tablets
  • buy accutane cheap
  • cheapest viagra
  • buy cheap levitra
  • generic accutane
  • buy acomplia cheap
  • buy cialis in us
  • viagra cheap
  • buy zithromax online
  • buy no rx cialis
  • viagra online pharmacy
  • lasix online
  • buy generic viagra online
  • purchase cialis online
  • accutane online stores
  • zithromax online
  • order cialis overnight delivery
  • order generic cialis
  • soma for sale
  • purchase cialis without prescription
  • cheapest accutane prices
  • levitra discount
  • buy cheap zithromax