Criando conteúdo a partir do Tomboy

June 14th, 2009


Muitos já devem ter ouvido falar do Tomboy. É um simples e simpático utilitário de notas pessoais, no estilo Post-It, mas que utiliza o mesmo conceito de links de um Wiki para ligar idéias/notas.

Já havia começado a utilizá-lo há um bom tempo atrás, mas, por algum motivo que não me vem a mente no momento, simplesmente deixei de utilizá-lo e acabei esquecendo de sua existência.

Nos últimos dias, estava procurando uma solução para me auxiliar a anotar pensamentos e idéias rápidas, de forma simples, sem muita frescura, somente para que as mesmas não se percam. Com o tempo, de pois, as mesmas podem ser mais bem trabalhadas. O importante é, como em fotografia, capturar o momento.

O Tomboy é útil exatamente para isso. Você está lendo, ouvindo, escrevendo ou vendo algo e uma idéia interessante surge. Ao invés de se iludir tentando guardá-la na cabeça e correr o risco de perdê-la posteriormente, você simplesmente a anota em uma nota no Tomboy.

Durante os dois ou três dias em que recomecei a utilizá-lo, o Tomboy já me auxiliou a organizar idéias pessoais e profissionais e já consegui finalizar algumas tarefas que sempre ficavam pendentes por eu acreditar que eram muito simples para serem anotadas.

Ledo engano, visto que sempre acaba me esquecendo das mesmas e, no final das contas, nunca as realizava, já que nunca lembrava das mesmas ao emaranhado de idéias em ebulição que pintam em minha mente a todo momento.

Um do recursos que eu procuro em qualquer software que seleciono para incluir em minha rotina de uso é a capacidade de, além de ser simples, não atrapalhar. Ou seja, o software precisa fazer o que se propõe a fazer e não criar empecilhos e/ou dificuldades para que seu uso seja efetivo.

O Tomboy fornece isso, ficando lá, estacionado quietinho no painel do GNOME como todo applet bem comportado deveria fazer, sendo facilmente alcançado com um clique ou uma única combinação de teclas, aparecendo somente quando chamado e desaparecendo o mais rápido possível para não interferir no fluxo de trabalho.

Além dessas características, outra coisa que o Tomboy oferece é uma arquitetura de plugins. Ele já é fornecido com inúmeros plugins e possui diversos outros desenvolvidos por terceiros, os quais acrescentam funcionalidades interessantes.

Um exemplo são os plugins de sincronização de notas. Enquanto a sincronização de notas online não se estabelece como um recurso carimbado como estável e o serviço Snowy (o qual utilizará a nova Tomboy Web REST API para colocar suas notas na nuvem) não é oficialmente lançado, podemos fazer uso dos plugins de sincronização de notas em diretórios locais ou remotamente via WebDAV ou SSH, usando sshfs/FUSE.

Venho usando a sincronização de notas através do plugin de sincronização SSH, que utiliza a tecnologia FUSE para “montar” um espaço em um servidor remoto, via SSH, e armazenar as notas do Tomboy lá, remotamente.

Dessa forma, é possível ter acesso a suas notas a partir de qualquer computador que tenha o Tomboy instalado. Não possuo Microsoft Windows instalado, mas já testei o Tomboy em GNU/Linux e MacOS e existem versões para Windows. Suas notas em qualquer lugar, a partir de qualquer plataforma.

Por ser de fácil uso, o Tomboy lhe incita a escrever notas sobre os mais simples e, aparentemente, mais inofensivos pensamentos possíveis. Isso é ótimo, pois invariavelmente você acaba sempre se lamentando de ter esquecido uma boa idéia que lhe passou pela cabeça e acabou sendo esquecida.

Idéias boas são raras. Não devemos tentar ficar exercitando o cérebro tentando armazená-las indefinidamente. Além de ser quase impossível, existem outros usos mais nobres para nossas mentes do que ficar guardando cada pequeno pensamento. Deixe uma ferramenta como o Tomboy fazer o trabalho sujo para você.

Um outro exemplo de plugin que comecei a utilizar agora e que, acredito, passarei a utilizar com uma frequência muito maior daqui em diante é o TomboyBlogposter, um plugin para postar suas nota do Tomboy como posts em seu blog.

Este, senhoras e senhores, é o primeiro post que vos ofereço, diretamente do meu novo “bloco de notas” pessoal virtual, o Tomboy.

DebianBR, Portuguese, personal , , ,

Geeks, nerds e a difícil fuga da depressão

June 13th, 2009


Vem se tornando uma tendência. Diariamente, recebo pequenas provas de que, apesar da tecnologia nos trazer a possibilidade de termos contato com cada vez mais pessoas, a mesma também traz problemas que anteriormente seriam impensáveis e acaba nos afastando de muitas pessoas.

Tudo pode ser feito instantaneamente. E se existe essa possibilidade, então o lema agora é que assim deve ser. Afinal, por quê não aproveitar em sua totalidade tudo o que a tecnologia tem a nos oferecer ? O grande problema nisso é que, no meio do caminho, nos esquecemos que, para lidar com a tecnologia, ainda precisamos de pessoas.

E pessoas, ao contrário da tecnologia, não costumam ser instantâneas, imediatas, tão perfeitas ao ponto de lhes exigirmos que tudo esteja pronto para ontem. Por mais que tenhamos visto isso há décadas em filmes, pessoas ainda não aprenderam o dom da telepatia e, por isso, ainda não aprenderam a interpretar nossos pensamentos, atendendo nossos desejos antes mesmo de nos pronunciarmos verbalmente sobre os mesmos.

Acostumados com a rapidez da tecnologia, assumimos que as coisas devem ser feitas de forma instantânea. Não aceitamos esperar em filas de bancos se podemos resolver tudo pelo serviço de atendimento online. Não queremos conversar com atendentes se um sistema de menus e alguns toques nas teclas certas nos levam ao o que queremos.

Cada vez mais, nos distanciamos do contato com o ser humano, exatamente por estarmos acostumados a lidar com máquinas, geralmente perfeitas e rápidas, que não nos fazem perguntas indesejadas e somente realizam o que lhes comandamos. Em nossa visão, ao lidar diretamente com o ser humano, temos que retroceder em relação a nossas expectativas, a nosso desejo imediatista, porquê o ser humano, obviamente, (ainda?) não é uma máquina.

Algo interessante, que particularmente não imaginava que ocorreria tão cedo, é o fato das pessoas que lidam conosco, não necessariamente pessoas geeks, nerds e ou amantes da tecnologia, estarem começando a, elas também, ficarem dependentes da tecnologia e a perceber que o contato com sistemas automatizados trazem alguns benefícios ao seu dia-a-dia.

Se você sempre reclamou do atendente do serviço de telefonia ou de qualquer profissional com o qual você tenha que que lidar para resolver um problema com um serviço sendo prestado de forma indesejável, pare um pouco para imaginar que, você, geek ou nerd que trabalha na área de tecnologia, provavelmente também recebe ou receberá algum nível de hostilidade originada das pessoas com as quais você tem que lidar diariamente em sua profissão.

Seja um superior, um cliente ou um colega de trabalho, é comum perceber que as pessoas, atualmente, por estarem acostumadas a rapidez com que pode se resolver os problemas com a ajuda de máquinas, esperam que um problema, quando depende de você (ser humano) para ser solucionado, receba a mesma atenção e rapidez em sua resolução que normalmente se esperaria de um sistema automatizado.

Ou seja, se é algo que não pode ser resolvido imediatamente, invariavelmente, as pessoas que dependem da solução do problema ficarão de uma forma ou de outra insatisfeitas e, por vezes, vão lhe enxergar como o elo fraco na solução de seus problemas, o ser humano lento e desengonçado que ainda está lá, no meio do caminho, atrapalhando a solução rápida de seu problema que, na visão delas, poderia estar sendo resolvido por um sistema rápido e perfeito, que não faz perguntas e simplesmente resolve problemas.

Asbtraia o fato de que, geralmente, o problema a ser resolvido ainda não é passível de ser solucionado totalmente por uma máquina e/ou sistema e que, felizmente ou infelizmente, ainda é necessário que um humano ainda esteja lá, para ajudar onde as preciosas máquinas ainda não conseguem chegar.

O que as pessoas se esquecem é que, ao contrário do que a ficção científica nos faz acreditar, as máquinas não funcionam sozinhas. Elas precisam ser construídas, programadas e mantidas funcionando. Pode lhe parecer chocante, mas seu e-mail, seu aplicativo de mensagens instantâneas, seu serviço e/ou site preferido de rede social e tudo o mais o que você possa imaginar e que esteja disponível na Internet, depende de seres humanos para existirem e continuarem funcionando.

Os profissionais de tecnologia (porquê “profissionais de TI” e tão semana passada) são essenciais na sociedade moderna. E, mesmo assim, frequentemente nos esquecemos dos mesmos. Quando exigimos suporte via e-mail, mensagens instantâneas, telefone ou qualquer outro meio, nos irritamos quando nossas exigências não são prontamente atendidas. Nesse momento, e somente nesse momento, nos lembramos que existem pessoas por trás dos serviços.

Devemos nos lembrar que empresas são objetos. Paredes, mesas, cadeiras, papéis e outros objetos que, se não existissem, ainda assim, não seriam razões para impedir que uma pessoa conseguisse fazer algo bem feito e atingir um objetivo. A empresa, o local de trabalho, lhe fornece ferramentas, a pessoa é que fornece o trabalho. E as ferramentas não são todas essenciais, mas as pessoas, por outro lado, sempre são essenciais.

Vemos diariamente inúmeros exemplos de pessoas descontentes com seu trabalho. Começo a notar que, dentre outras razões, uma das principais razões para que isso aconteça é o fato de que as pessoas com as quais as mesmas interagem começam a esperar das mesmas ações e perfeição em um nível que os tornaria características inerentes de máquinas, não de seres humanos.

O Google não é legal. As pessoas que trabalham no Google são legais. A sua tecnologia preferida, sem a qual você não pode mais viver, não é perfeita. As pessoas que a criaram e que a mantém funcionando são os culpados por você acreditar que essa tecnologia preenche sua vida e a torna mais interessante. Essas pessoas é que trabalham para que você possa ter uma vida melhor.

Essas pessoas merecem boas condições de trabalho, o que nem sempre significa ter um computador mais novo ou acesso a uma nova tecnologia. Por vezes, oferecer melhores condições de trabalho significa simplesmente ser mais amigável, compreensível, mais humano.

Não cometer erros comuns ao lidar com essas pessoas é essencial, mas a maioria das empresas nas quais essas pessoas trabalham pecam em cometer esses mesmos erros. São coisas simples, óbvias para a maiorias dessas pessoas e, por isso, por vezes as mesmas se encontram em situações difíceis, pensando em como esse tipo de problema, que poderia ser evitado de maneira tão óbvia para as mesmas, ainda assim ocorre e constantemente as vitimam.

Dicas de como tratar bem seus nerds/geeks existem aos montes por aí. Se você não segue essas dicas, que lhe são dadas pelas próprias pessoas que sofreram em ambientes que lhes levaram a criar essas cartilhas de boa convivência, na visão das pessoas que sofrem com esses problemas, você não é um observado muito bom. E, talvez, você esteja prestes a perder essas pessoas.

E, infelizmente, ao contrário do que se imagina, dificilmente será possível conseguir pessoas como a que será perdida, ao contrário de objetos inanimados de escritório, que existem aos montes por aí e, estes sim, podem ser ignorados.

DebianBR, Portuguese , , , ,

Virtualização em Linux hoje e amanhã

February 22nd, 2009


Antes de mais nada, é importante notar que eu estava convencido a postar esta entrada no blog em inglês, até mesmo porque minhas postagens em inglês recebem muito mais leitura do que as postagens em português (bem mais, de 15 a 20 vezes mais, para ser sincero), mas decidi não fazê-lo por achar que seria interessante ter esse conteúdo em português, visto que eu mesmo procurei muito por algo do tipo e não consegui encontrar nada interessante.

Outro ponto importante a ser levando em consideração é que eu não sou um cientista da computação, um físico, um matemático e nem mesmo estudo profissionalmente ou a fundo sistema operacionais em um nível mais baixo. O que eu sou, isso sim, é um entusiasta do software livre que tem muita vontade de aprender sobre novas tecnologias e gosta de estudá-las um pouco mais do que a maioria das pessoas.

Dito isso, obviamente, absorva o conteúdo que irei escrever aqui com isso em mente e, também devido a isso, entenda que, como não sou e nem pretendo ser o dono da verdade, possivelmente muita coisa do que eu disser aqui pode não estar completamente correta. Cabe a você, leitor, pesquisar e tirar suas próprias conclusões com base no conteúdo aqui apresentado e a enorme quantidade de material adicional existente por aí.

Deixando os avisos de lado, é evidente que para quem quer que tenha acompanhando minhas postagens no blog ou no Twiiter/identi.ca que eu me interesso muito pelo assunto virtualização. Mais especificamente, tenho me interessado muito ultimamente pela solução de virtualização KVM. Não somente eu, aliás, visto que a mesma está recebendo colaborações maçiças de inúmeros grandes nomes e empresas do cenário do software livre (Red Hat, IBM, Intel, AMD, etc).

É fácil perceber, porém, que ainda existe muito preconceito em relação a essa solução. E nem todo o preconceito ainda existente é errado pois, na verdade, em relação a performance, outras soluções completamente baseadas no conceito de para-virtualização, como o Xen, por exemplo, ainda são mais interessantes.

Porém, no estágio atualmente de desenvolvimento, o KVM já evoluiu muito e não é mais aquele brinquedo feio relegado aos testes informais de final de semana, que só nos são interessantes para sabermos que os mesmos  existem, mas que, no mundo real, não possuem muita utilidade.

Isso se deve a, em minha opinião, dois motivos : primeiro, devido ao interesse pelas tecnologias de virtualização ser tão alto, isso ter levado os fabricantes de hardware a se concentrarem em oferecer soluções que entregam uma base física muito mais bem preparada para essas tecnologias e, segundo, devido aos desenvolvedores do KVM que, entendendo que esse era o futuro, se concentrarem em resolver problemas mais importantes ao invés de tentar contornar limitações de hardware que eles sabiam que em breve começariam a ser removidas.

Mérito seja dado, o Xen inovou muito e reavivou uma enorme onda de interessados nas vantagens da virtualização, trazendo, de fato, com o conceito de para-virtualização, a virtualização utilizável para o mundo x86 e, com isso, para as massas. Porém, isso teve um custo, já que, por se dedicar muito a explorar as possibilidades desse conceito, o Xen ficou preso a uma base extremamente mais complexa e, por isso, com uma menor probabilidade de ser oficialmente aceita como cidadão de primeiro nível na terra do kernel.

O KVM, por outro lado, tomou uma posição mais radical, decidindo desde o início que, para conseguir um design mais simples e um ritmo de desenvolvimento bem mais rápido, simplesmente deixaria de lado toda essa história de para-virtualização e já iniciaria como um grande usuário das então recém lançadas tecnologias de virtualização assistidas por hardware.

Logicamente, hoje em dia, temos o KVM portado e funcional em plataformas PowerPC e S/390, mas, na época, isso se resumiu a adotar e depender pesadamente das tecnologias VMX da Intel e SVM da AMD, as quais essas empresas tinham acabado de implementar em suas novas linhas de processadores. Por algum tempo, inclusive, foi bastante complicado encontrar sistemas oficialmente suportados pelos grandes integradores de hardware que fornecessem soluções de hardware baseadas nesses novos processadores.

Atualmente, é claro, isso já é passado e a maioria dos sistemas entry-level oferecido pelos integradores de hardware, bem como soluções de desktop corporativos, já incluem processadores que, no mínimo, suportam essas tecnologias (a primeira onde da virtualização recente em hardware x86), inclusive o laptop a partir do qual eu escrevo esse texto e o computador de mesa self-made aqui ao meu lado. Ou seja, já virou objeto comum.

O Xen, por estar focado em virtualização baseada em sua menina dos olhos, a para-virtualização, demorou um pouco mais para tirar proveito dessas novas tecnologias e entrou na briga oferecendo uma solução de virtualização assistida por hardware bem mais tarde, com o lançamento de sua série 3.x, que inclusive teve que receber modificações massivas para se adaptar a esse novo paradigma.

Hoje, o Xen suporta tanto para-virtualização quanto virtualização assistida por hardware, mas ainda sofre de diversos problemas estruturais que o impedem de ser aceito como um cidadão de primeiro nível oficialmente no kernel Linux. Sim, todos os usuários do Xen atualmente ou sujam suas mãos integrando-o manualmente em suas distribuições ou dependem de um trabalho hercúleo das distribuições GNU/Linux para mantê-lo integrado a seus núcleos, dependendo de forward-ports de código baseado no kernel 2.6.18 intermináveis.

Lógico, alguns podem se dar ao luxo de adquirir a versão comercial do Xen diretamente da XenSource/Sun, mas a partir desse ponto eu já considero que saímos do terreno das soluções abertas/livres e entramos no terreno de soluções comerciais, as quais, sinceramente, não me agradam. Não por custo ou por ideologia, mas sim porque, via de regra, simplesmente não tem como alcançar o nível de maturidade das soluções totalmente abertas/livres.

É importante notar que a técnica de para-virtualização só funciona para virtualizar sistemas operacionais hóspedes que possam ser modificados de forma a colaborar com o sistema operacional hospedeiro. Dessa forma, por motivos óbvios, quaisquer sistemas operacionais de código-fonte fechado, como os sistemas operacionais da família Windows da Microsoft, não conseguem obter vantagem dessa técnica.

Ou seja, na prática, o Xen só passou a ser uma plataforma de virtualização realmente multiplataforma (suportando sistemas operacionais de código-fonte fechado e sistemas operacionais de código-fonte aberto) a partir da série 3.x. O KVM, por outro lado, nasceu já com uma natureza multiplataforma nesse sentido, visto que, desde sempre, dependeu da existência das tecnologias de virtualização assistidas por hardware, as quais não demandam a modificação do sistema operacional hóspede.

Exatamente por depender das tecnologias de virtualização assistidas por hardware e não suportar inicialmente o conceito de para-virtualização, o KVM sempre entregou uma performance inferior ao Xen, visto que, em um ambiente que utiliza tecnologias de virtualização assistidas por hardware, o I/O do sistema operacional hospedeiro é interceptado e tratado por drivers no hypervisor, os quais na verdade emulam um driver real, obviamente não fornecendo a mesma performance de um driver real.

Inclusive, ao menos até o momento, o Xen também utiliza, para sua implementação de virtualização assistida por hardware, os drivers emulados fornecidos pelo QEMU, da mesma forma que o KVM. Ou seja, ao menos em relação a performance de I/O (dispositivos de blocos/discos e rede), a implementação de virtualização assistida por hardware do Xen e o KVM eram semelhantes.

Porém, particularmente, eu acredito que a percepção de que a performance inferior das tecnologias de virtualização assistidas por hardware seja uma verdade imutável esteja mudando e, a médio prazo, não mais será uma verdade absoluta.

Já há algum tempo, o KVM vem adotando técnicas de para-virtualização onde a mesma é perceptivelmente necessária (não em toda a sua implementação de virtualização, como é o caso do Xen). Por exemplo, desde a versão 13 (e já estamos na versão 84 atualmente) o KVM começou a incluir suporte rudimentar a alguns conceitos de para-virtualização, sendo que a partir da versão 61 o mesmo acrescentou suporte a pvclock, ou seja, para-virtualização do relógio do sistema operacional, para eliminar problemas de sincronização entre o hospedeiro e o sistema operacional hóspede.

Adicionalmente, a partir da versão 64, foi acrescentado suporte a para-virtualização de MMU (Memory Management Unit, ou Unidade de Gerenciamento de Memória). É interessante notar que, desde 2007, já haviam patches disponíveis (os quais, posteriormente, foram incorporados a árvore oficial de desenvolvimento) para implementar suporte a para-virtualização no KVM.

Na época, Ingo Molnar, da Red Hat, enviou seus patches para acrescentar suporte a para-virtualização no KVM indicando benchmarks bastante interessantes. Basicamente, com os patches aplicados, alguns cenários com testes de mudança de contexto no kernel apresentaram uma melhora de quatro vezes (400%) em relação a execução dos mesmos sem tais patches.

E, nos cenários que os patches em questão acrescentaram o menor ganho de performance em mudanças de contextos, ainda assim o ganho de performance foi da ordem de 30% em relação ao KVM sem tais patches aplicados. Ou seja, claramente, uma melhora significativa. Desde então, esses patches foram melhorados e incluídos oficialmente no KVM e muita coisa foi melhorada, aumentando ainda mais os benefícios trazidos.

Desde a versão 60 do KVM, foi incluído também suporte a VirtIO, ou seja, seguindo a tradição de utilizar para-virtualização somente onde o uso da mesma realmente faz sentido sem causar efeitos colaterais negativos, os desenvolvedores do KVM incluíram drivers (módulo de kernel) para-virtualizados para acesso a dispositivos de blocos (virtio_blk) e dispositivos de rede (virtio_net), efetivamente removendo a dependência dos drivers emulados fornecidos pelo QEMU.

Já há algum tempo atrás, Avi Kivity, líder no desenvolvimento do KVM, postou em seu blog um texto afirmando que a para-virtualização estava morta. Exageros a parte, se analisarmos os argumentos que ele utiliza, podemos ver claramente que o avanço dos fabricantes de processadores irá nos levar rapidamente a um patamar onde realmente se preocupar com para-virtualização não será mais algo tão importante.

Em seu post, Avi comenta que a combinação de paginação de memória implementada em hardware através das tecnologias NPT (Nested Paging Tables) da AMD ou EPT (Extended Page Tables) da Intel, junto com o suporte a páginas de memória grandes (large pages) entrega performnce equivalente ou, em alguns casos, ultrapassa a performance da para-virtualização em muitos cenários.

Segundo Avi, o custo de se comunicar com o hypervisor é simplesmente maior do que deixar que o hardware atual que implementa tais tecnologias gerencie tudo isso de forma transparente, mesmo ainda antes de levar em consideração os custos envolvidos na para-virtualização, como chamados de sistema (syscalls) mais lentas.

Ainda segundo Avi, o KVM, mais uma vez, entendendo essa segunda onda da virtualização suportada pelos processadores mais atuais, refletiu a obsolescência planejada da para-virtualização de MMU em seu design, implementando o suporte a esse recurso de forma que tal suporte pudesse ser habilitado ou desabilitado de forma dinâmica.

Ou seja, expondo esse suporte aos sistemas operacionais hóspedes e fornecendo aos mesmos performance melhorada quando o hardware do hospedeiro suporta tais tecnologias, mas lidando de maneira amigável com hospedeiros que não possuem suporte a essa tecnologia, utilizando para-virtualização de MMU, nesse caso.

Outro ponto interessante em relação as escolhas de design acertadas do KVM em comparação com o Xen é a questão do I/O.  Em outro post em seu blog, Avi comenta sobre a questão da mantenabilidade em contraste com a questão da performance.

Em seu post, Avi cita que I/O no KVM é realizado no contexto do hypervisor, mantendo performance completa.  Como o Xen, o KVM reutiliza a pilha de I/O do kernel Linux, porém, a reutiliza de forma que os usuários possam desfrutar das mais novas melhoras no kernel nesse departamento, bem como dos mais novos drivers para novos dispositivos.

O que é interessante notar, no entanto, é que o Xen, apesar de também realizar I/O no contexto do hypervisor, como Avi nota, possui o problema adicional de não ter resolvido por completo o problema da mantenabilidade, visto que, oficialmente, ainda está preso ao kernel 2.6.18, a última versão para a qual a XenSource (criadora do Xen), antes de ser adquirida pela Sun Microsystems, portou oficialmente os patches do Xen.

Versões dos patches do Xen para núcleos mais novos são na verdade um hack temporário, um forward-port do código-fonte baseado no kernel 2.6.18, adaptado para núcleos mais novos. Pessoalmente, eu somente conheço forward-ports adaptados para o kernel 2.6.26, o mesmo que o Debian, por exemplo, está utilizando, o qual, aparentemente, foi um esforço realizado pelo pessoal da Novell.

O problema é que o Xen, apesar de ter saído na frente do KVM e ter alguns anos de vantagem em relação ao mesmo, agora está perdendo terreno, visto que sua equipe de desenvolvimento está bastante atarefada portando o código para funcionar com base na nova estrutura genérica de para-virtualização do kernel Linux, o paravit_ops.

O paravirt_ops foi criado como uma resposta a crescente demanda de utilização de para-virtualização e como maneira de se ter somente um único framework genérico para essa necessidade, visto que muitas soluções de virtualização estavam tendo seus esforços duplicados, cada qual tendo que implementar seu próprio framework de para-virtualização.

Exatamente por ter escolhido iniciar toda sua implementação de para-virtualização como um projeto isolado do kernel Linux, sem as vantagens de se ter a crítica de diversos desenvolvedores competentes do kernel questionando suas decisões de design, o Xen está agora pagando o preço, tendo um tremendo trabalho para adaptar seu código a esse novo framework genérico introduzido relativamente recentemente ao kernel Linux.

E o KVM, não vai precisar também se adaptar ? Não, pois, como citei, o KVM não utiliza para-virtualização completamente em sua implementação de virtualização, mas sim somente nos pontos específicos onde a mesma faz mais sentido. E, ao contrário do Xen, o KVM foi desenvolvido desde o início dentro da comunidade de desenvolvimento do kernel Linux.

Ou seja, desde o início, por ter a crítica dos desenvolvedores do kernel Linux em todo o seu processo de desenvolvimento, o KVM é uma solução com um design mais do que aprovado pelos desenvolvedores do kernel, tanto que, desde a versão 2.6.20 do kernel Linux, está incluído oficialmente no kernel, sendo a primeira solução de virtualização nativa em Linux que eu acredito que tenha um brilhante futuro.

E, por estar ativamente sendo desenvolvido dentro da comunidade de desenvolvimento do kernel, recebendo os olhares e as dicas de todos os que da mesma participam, é uma solução que não lhe obriga utilizar um kernel obsoleto para ter uma estabilidade um pouco mais garantida, como é o caso do Xen.

Inclusive, o Xen foi removido oficialmente do Fedora 9 na época em que o mesmo foi lançado, exatamente por não existir um porte oficial do mesmo para o kernel utilizado por padrão por essa distribuição GNU/Linux e os desenvolvedores da mesma não acreditarem que seria correto perder ainda mais tempo tentando manter viva uma árvore de desenvolvimento (através de novos forward-ports) que está fadada a morrer logo mais, visto que o desenvolvimento da base Xen que será utilizada futuramente está ocorrendo atualmente no ramo que está portando o código Xen para o framework paravirt_ops.

Em contraste, o KVM continua se beneficiando dos numerosos recursos do kernel Linux, tendo ganhado sem precisar fazer esforço algum todas as virtudes do código desse kernel, como gerenciamento de energia avançado, suporte a suspensão/hibernação e diversas outras funcionalidades interessantes.

Resumindo, o KVM está sendo desenvolvido no mesmo ritmo frenético do kernel Linux, até mesmo porque está integrado completamente ao mesmo, enquanto o Xen, ao menos por enquanto, terá que suar bastante a camisa para se adaptar aos padrões que inicialmente optou por não se importar em seguir, para somente depois de todo esse trabalho, começar a pensar em convencer a equipe de desenvolvimento do kernel Linux a aceitar sua integração a árvore oficial de desenvolvimento do kernel.

É compreensível, agora, todo o burburinho que está ocorrendo ao redor do KVM e toda a preocupação e investimento das grandes empresas do software livre em apoiar o desenvolvimento do mesmo ? Particularmente, eu acredito que não há muitas dúvidas sobre o que o futuro da virtualização em Linux nos reserva : a mesma será baseada em KVM.

E você, qual sua opinião sobre esse assunto ? Importa-se de deixar seu comentário aqui e enriquecer esse post com suas observações, complementado as informações aqui expostas ? :-)

DebianBR, KVM ,

Debian : a virtualization friendly platform

February 22nd, 2009


It’s no secret for those who follow me on Twitter/identi.ca that I have been toying with virtualization technologies for some time now.

I have been using Xen in production for some time and, apart from not thinking it’s the way to go for future virtualization, it’s quite usable right now, specially if you are going to use Debian Lenny as the dom0, as it now has a more modern kernel than the dreaded 2.6.18 we Xen users were forced to keep using.

However, I have been keeping my eyes on KVM as well, as I always liked how much simpler and well integrated into the Linux kernel it is. I’m even subscribed to the KVM development mailing list, even not understanding most of the things the developers are talking about there. It’s no problem for me, I just want to know what’s being worked on and what’s on the pipeline.

As a KVM fan, I’m also using it intensively as a tool for prototyping servers. It’s easy enough to set up a new Debian server to test things on and learn new technologies, as well as troubleshoot problems without intefering with production environments.

Althought KVM is not as good as Xen when it comes to performance, it’s quickly improving every single day. And, for those of you who still believes KVM is only about full virtualization, I’m happy to say that it has come a long way and paravirtualization has started to infiltrate KVM land as well.

Today, KVM already sports paravirtualized clock (pvclock), paravirtualized memory management unit (pv MMU) and VirtIO drivers. Actually, it seems that KVM these days is the biggest user of VirtIO, maybe only loosing the leadership to Rusty’s lguest.

By using VirtIO’s disk and network drivers (virtio_blk and virtio_net, respectively, and its associated modules), KVM can deliver a much improved I/O experience than when using QEMU’s emulated drivers. For this reason, it’s always preferable to use VirtIO drivers whenever possible when setting up your KVM guests.

During the Etch lifetime, one will need to do some tricks in order to use VirtIO when using Etch as a guest under KVM. However, when preparing Lenny’s d-i, the developers were smart enough to add to it virtual disk detection support. What it means is that now, starting with Lenny, d-i will recognize that it’s being given a VirtIO block device and automatically load the needed kernel modules to support it.

Also, the disk detection and partition modules (partman et all) were modified to show a detected virtual disk (i.e. /dev/vdX) and let the user partition it, as well as grub-installer was changed to allow GRUB to be installed onto a virtual disk’s MBR,  effectively making d-i a really powerful virtualization aware installer.

Here you can see Lenny’s d-i showing a detected virtual disk, named “vda” :

lenny-vdisk-partitioning-english

lenny-vdisk-partitioning-english

Brazilian Portuguese readers could see the version using brazilian portuguese texts on the screen here. Sure, d-i also received a lot of improvements and special support for installing Lenny as a Xen domU was added as well, but I haven’t played with it yet, so I won’t comment on that right now.

And, hey, one can even use virt-install and virt-manager to deploy KVM guests under Lenny :-) And you know what gives me even more confidence that KVM will be a first class citizen inside Debian ? The fact that Steve Kemp is toying with the idea to change his xen-hosting.org project so it would become a new kvm-hosting.org project.

Maybe I’m praying for the preacher here, but Steve is very well well know for being the author of xen-tools and xen-shell, as well as being the creator of a number of other nice free softwares. And, judging by the comments on his post about the future kvm-hosting.org project, it seems that Steve maybe will need to update xen-tools and xen-shell to account for KVM or create a new set of tools dedicated exclusively to KVM based on his past experience creating the current tools for Xen.

Good times ahead for those of us who are surfing the Debian Virtualization wave, indeed :-)

Debian, DebianBR, English, KVM ,

Sonhos de infância e realidades da vida adulta

February 1st, 2009


Quando criança, eu sempre ficava imaginando o que eu seria quando crescesse. Basicamente, eu sofria da loucura que os candidatos a universitários sofrem quando precisam escolher uma carreira, uma profissão para o resto de suas vidas, mas ainda estão indecisos.

A diferença era que eu sofria disso uns dez anos antes da época normal de uma pessoa sofrer com isso. Nesse sentido, eu fui muito precoce. Somente nesse sentido, visto que, para muitas outras coisas, ainda sou um bebê aprendendo a descobrir o mundo. Talvez seja por essa precocidade em relação a esse assunto que eu bloqueei inconscientemente esse pensamento e consegui sobreviver até hoje sem tomar uma decisão real sobre essa questão.

Sim, senhoras e senhoras, eu, por mais escandoloso que isso possa parecer a vocês, ainda não tenho formação de nível superior. Felizmente, consegui viver relativamente bem até hoje dessa forma. Veja bem, não estou incentivando ninguém a fazer o mesmo, o que funciona para mim pode não funcionar para você e vice-versa.

Inclusive, é importante notar, a falta de uma formação de nível superior me fez perder muitas oportunidades profissionais muito interessantes. Não tenho como afirmar que seria uma melhor pessoa ou teria uma vida melhor (em todos os sentidos, não somente financeiramente)  caso tivesse ido em frente e cursado uma faculdade, mas o fato é que ainda não passo fome. Ainda.

Desde que comecei a trabalhar com tecnologia, eu basicamente deixei a vida ir me levando. Nunca tive muita preocupação em planejar uma carreira e definir metas profissionais. Comecei como fuçador, como muitos de vocês provavelmente também começaram, e continuei. Simples assim.

A vida seguiu seu curso e o universo agiu a favor. Nunca cheguei a me preocupar em me matar de estudar, me formar, escolher uma carreira, ter ascensão profissional e toda a parafernália envolvida. Quando criança, eu não tinha uma resposta pronta e exata para quando me perguntavam o que eu queria ser quando crescesse.

Talvez porque, na época (na saudosa década de 80, com Juba e Lula comendo solto), minha profissão simplesmente ainda não existisse. Eu tinha um lampejo de idéia de querer “lidar com computadores“, mas ainda não sabia o que isso realmente envolveria e o que eu realmente faria com eles (os computadores) alguns anos mais tarde.

Podem me chamar de velho (e eu sou, 3.0 inclusive, chupa modinha 2.0), mas eu sempre tive em minha mente de criança a idéia de uma profissão como sendo um trabalho braçal. Não entrava em minha cabeça uma pessoa poder trabalhar com a mente e ainda poder chamar isso de profissão.

Não me perguntem o porque disso. Talvez Freud explique, mas eu acredito que seja mais devido a minhas aulas (inúteis, reconheço, e não me orgulho disso) de não-me-lembro-mais-o-nome-do-curso (acredito que seja Estudos Sociais), nas quais o meu professor sempre fazia questão de frisar a importância da frase “O trabalho dignifica o homem“.

Trabalho é uma palavra que eu associo diretamente, sem escala alguma, a esforço físico, o bom e velho trabalho braçal de antigamente. O que eu e muitas outras pessoas fazemos atualmente, nessa sociedade da informação, eu prefiro associar a uma ocupação, a qual, vejam vocês, acaba por também ser minha forma de ganhar meu Toddy (sim, porque não sou muito chegado em pão).

Ainda hoje, sinto uma grande estranheza quando ouço pessoas falando sobre “nossos profissionais”, se referindo a equipe da qual faço parte. Eu ainda tenho um preconceito inconsciente (do qual venho tentando me livrar, mas do qual meu cérebro ainda teima relembrar sempre que possível) em relação a qualquer forma de trabalho não braçal.

Eu cheguei a exercer trabalhos braçais antes de entrar nessa loucura que é a àrea de tecnologia, e nessa época não achava que o que eu fazia não era um trabalho. Ao contrário, aquilo sim eu entendia como um trabalho. Manual, do tipo que você soa e fica fisicamente cansado de fazer.

Passei anos do início de minha vida na àrea de tecnologia tentando me adaptar, educando meu cérebro a pensar que o que eu estava fazendo era um trabalho, que eu tinha uma profissão e que aquilo era um trabalho digno como qualquer outro. Só menos fisicamente cansativo e financeiramente mais compensador.

Melhorei bastante e hoje em dia já consigo aceitar muito disso como natural nos outros, mas ainda tenho um resquício de preconceito contra eu mesmo, teimando em achar que eu não sou um profissional no sentido mais literal da palavra. Talvez eu consiga curar isso cursando uma faculdade e obtendo um diploma, para convencer minha mente de que, agora sim, oficialmente, eu sou um profissional.

Ou, talvez, isso se cure somente com terapia. O fato é que, ainda hoje, sinto que não passei, em minha vida pós-infância/quase-adulta, pela experiência de escolher uma profissão da forma tradicional e, provavelmente por isso, ainda não tenha digerido o fato de que, para alguns, sua ocupação atual é algo tão natural que todo esse processo maluco histérico pelo qual passei precocemente ainda na infância simplesmente não é necessário.

Dada o enorme universo de novas profissões criadas nos últimos anos e a quantidade ainda maior delas que são criadas diariamente, é impossível que ninguém no mundo tenha pensando da mesma forma. Por isso esse post, para tentar compartilhar com outras pessoas essas doideiras que eu teima em carregar em meus pensamentos. E você, tem disso também ?

Portuguese, personal, reflexoes

KVMing for fun and profit : how to make your toy become a serious business

February 1st, 2009


Here I’ll try to present you some tips on how one could easily make a playground become a paid fun. And no, I won’t be teaching you how to become rich, although I would like if you would teach me how that could be accomplished as I’m trying to come up with a way to do just that for a couple of years now and failed miserably.

Recently, I’ve been setting up KVM virtual machines in order to do a lot of testing for a project I’m involved with. Letting boring details aside, one could say that a very long, boring and error prone setup was finished after a lot of work and it worked like a charm in the end, as a KVM machine.

As always, laziness is a given and when you are into it you empower yourself to come up with some nice hacks and goes that extra mile to find out how one could not to have to do boring and repetitive things again and again, in the best spirit of “let’s have some work now and save me ten times more work later”.

As I’m becoming more and more into that spirit of laziness, there I went looking for a way which would let me transform my beloved and nice working KVM machine into a fully featured real physical server. After some tips from microblogosphere friends (thanks fike), I had some ideas on how that could be accomplished.

Turned out my ideas weren’t really all that right so there I went again looking for a way to do what I wanted. After some research I found out that the KVM guys already gave some thought about it and even had a ready solution to my problem : it’s called qemu-nbd.

Yes, by now everyone should know that KVM builds on top of the excelent (just not so snappy) QEMU. However, as I’m a Debian user, here I should say that in Debian, most notably Debian sid/unstable, the qemu-nbd binary was renamed to kvm-nbd, just as the KVM binary is called only kvm and not qemu-system-x86_64 or whatever else is called these days upstream.

NBD (short for Network Block Device) is a nice thing. I hadn’t tried it before (I certainly used and am still using in some projects of mine the not-upstreamed-yet-but-so-nice-that-I-couldnt-resist DRBD, which seems to share some ideas which NBD). In short (read NBD link for more info on that), NBD allows the Linux kernel to use a remote server as a block device. Also, its upstream is a fellow Debian developer (hello Wouter). How nice’s it ?

As NBD is an upstreamed kernel feature, you don’t need to go to the external-module-route-hell. You only need the userland tools, which are nicely packaged and integrated into Debian as well. They’re only one aptitude away, so you could use this command to bring it to your KVM host :

aptitude install nbd-client

After that, you will want to export your image file (the file which represents the disk of you virtual machine) as a NBD block device, so you will be able to mount it under your KVM host and do whatever you want to do with it. Here’s how one would do it :

kmv-nbd –conect=/dev/nbd0 myimagefile.img

I tested it using both qcow2 and raw disk images and both worked like a charm so I don’t think you will have any problems here. Next, you need to create a directory structure under your KVM host which temporarily will be used to mount the partitions inside the virtual block device of your KVM machine. You could do this like this :

mkdir /newserver

mkdir /newserver/usr

mkdir /newserver/var

mkdir /newserver/home

In the example above, I’ve created these directories because I want my new server to have separated root, /usr, /var and /home partitions and mount points. Feel free to adapt to any kind of partitioning layout you please.

Next, you will mount yout virtual machine filesystem under a temporary location, so you will be able to copy all of its content later to your final desired destination, i.e. the real partitions inside the real disk you are going to use in your future real server (not a virtual machine anymore).

I did it using :

mkdir -p /mnt/temp

mount /dev/nbd0p1 /mnt/temp

Notice that the /dev/nb0p1 above is my root partition inside my KVM machine, only that it’s represented now in my KVM host in NBD’s device node notation here. I’ve only one partition inside this particular virtual machine (aside from the swap partition).

Next, you want to mount the partitions on the real disk you want to be used in your new real server under the directories created earlier so you will be able to chroot to then later and do any tweaks you may want to, like fixing /etc/fstab, /boot/grub/device.map, /boot/grub/menu.lst and all these places we know makes references to block devices which may differ from the situation you had in your virtual machine running under the KVM.

Here’s what I used :

mount /dev/sdb1 /newserver

mount /dev/sdb3 /newserver/usr

mount /dev/sdb5 /newserver/var

mount /dev/sdb6 /newserver/home

The device nodes above are from your real disk’s partitions, not from any virtualized device block access method like NBD. Also, take care not to mount your primary disk’s partitions (the ones you are using under in your KVM host) as you could destroy them easily. As you can see above, I’m using /dev/sdbX as /dev/sda is my primary disk, the one under which my KVM host is running. Again, adapt to your scenario.

Next, you just copy everything from your virtual machine filesystem (which is now accessible from within your NBD block device) to your real disk. I did it using :

cp -a /mnt/temp/* /newserver/

After that, you can disconnect your KVM virtual machine image file from the exported NDB device block using :

kvm-nbd -d /dev/ndb0

And then chroot to your real disk layout yout just copied to /newserver in order to fix anything which would make reference to block devices while running as a virtual machine under KVM but which now will be a completely different thing as a real server, like your /etc/fstab, /boot/grub/device.map, /boot/grub/menu.lst and so on.

In order to chroot to your new soon-to-be-real filesystem you could use :

chroot /newserver

Then go nuts and start fixing everything you may think needs to be fixed so this filesystem could be used in a real server to boot it up. Im my case, I needed to fix /etc/fstab in order to mount my additional partitions (as under KVM I was using only a root and a swap partition and now, under the real server, I’ll be using separated root, swap, /usr, /var and /home).

Before I went changing more things, I “fixed” my /boot/grub/device.map and my /boot/grub/menu.lst files to point to /dev/sdb and /dev/sdb[1],  respectively, so I could run grub-install from inside the chroot in order to install GRUB into the real new disk’s MBR (master boot record), using :

grub-install /dev/sdb

Then, finally, I “fixed/boot/grub/device.map and /boot/grub/menu.lst again so they would point to /dev/sda and /dev/sda[1], as /dev/sda will be the device node for this new disk when it wil be running under the new real server and not as a disk inside the KVM host machine.

Next, I exited the chroot using :

exit

And umounted the new real disk’s partitions, using (now already out of the chroot) :

umount /newserver/home

umount /newserver/var

umount /newserver/usr

umount /newserver

Now you can take this new disk out of your KVM host machine, put it inside your new real server, physically install it there, turn on your new real server and everything installed while the filesystem in it was being used under the KVM virtual machine will be there, running nicely.

And you’re done. That’s it. Also, it’s important to point out that it’s much easier being done than being said (or written, in this case) so, if it looks scary because of the size of this post, don’t let it disincourage you as this whole thing is a pretty straightforward procedure, much easier than it seems.

And as I know that I will receive lost of complaints from people which will tell me how inefficient this whole thing is and how I could have accomplished the exact same thing in a much easier and faster way (perhaps even with a already existing tool which would automate almost entirely the whole proccess), I would say to these people to please exercise their right to share ideas using the comments. Just be nice on me, please.

After all, it was fun and I learned new things while doing it all, as well as I tried to share what I learned from this experience with my peers. That’s what matters. Peace, love and geekness to all of you :-)

Debian, DebianBR, KVM, tech

Massa demôniaca

January 31st, 2009


Cá estou eu, tentando focar, fazer a coisa certa, estudar, absorver conhecimento, enriquecer meu cérebro e melhorar meus dotes intelectuais para conseguir viver uma vida melhor, mais correta e mais pacífica, em todos os sentidos.

Cansado das briguinhas e dos egos inflados da blogosfera (ô palavrinha feia, quase tanto quanto campuseiro), resolvi sair em busca de conteúdo mais interessante nas Interwebs, já que me recuso (?) a acreditar que o mundo é composto totalmente por exemplares de seres humanos acéfalos.

E não é que, como eu suspeitava (desde o princípio?), realmente existe esperança para a raça humana (em retrospecto, me arrependo de ter dito isso). Encontrei conteúdo bom. Inocente, bem escrito, humano, legível e em português pré-miguxo (uma dávida hoje em dia). Inspirador e que te faz pensar.

Maravilha! Hoje, sábado, como televisão atualmente para mim é tão relevante quanto um show do Wando  (mesmo o conteúdo da TV paga começa a ficar repetitivo demais para o meu gosto) e eu estou em um momento de contenção de gastos (vide crise mundial e o dia-a-dia de 99% de nosso belo povo), separei um tempinho para me aventurar na leitura do conteúdo intelectualmente estimulante recém descoberto.

Porém, mal sabia eu, pobre exemplar da raça humana (e não tenho orgulho disso), que ainda teima em tentar não fazer parte da massa de manobra, que o universo conspira tanto a favor quanto contra e, na maioria das vezes, tentando lhe forçar a desistir de sua idéia de se desgarrar de seu rebanho, o universo pende para o lado da conspiração contra.

Não há prova mais clara de que o cérebro humano, quando não exercitado, prestes a atrofiar (ou já atrofiado?), entra em modo fail e passa a lhe pregar peças (e a lhe fazer passar vergonha) do que essa nova onda (que teima em não sair de moda) de palavrões gritados em volume satânico que é o que chamam de funk.

Neste exato momento, em que tento curtir meu momento de paz e minha leitura, o dono da padaria aqui ao lado (como se já não bastasse o dono do bar), tendo a idéia genial de atrair clientela dando ao povo o que é do povo (pão e circo), resolveu tocar em um volume estoura-tímpanos++, em seu possante envenenado com as portas abertas ao melhor estilo dumbo, as mais belas pérolas do funk carioca.

Sim, sou paulista e moro em São Paulo, mas essa praga (como todas as outras), viaja rápido e se alastra. Sendo assim, eu, pobre pseudo-assalariado que luta para ter uma vida pseudo-digna, sou obrigado a olhar para o teto e me questionar sobre o universo, a vida e tudo mais, sem deixar também de me espantar, me questionando qual seria a razão da espécie humana ainda não ter sido extinta.

Sim, porque se a entidade que dizem controlar a tudo e a todos realmente acredita que manifestações demôniacas devem ser combatidas, o que ela está fazendo que até agora não exterminou uma raça que teve a capacidade de criar uma aberração dessas ?

Portuguese, Rants, personal

Anjos e demônios

January 26th, 2009


A sensação é conhecida : você tenta se conter e não fazer algo que você sabe que seria errado, algo que lá no seu inconsciente, você reconhece como não sendo “o certo” a ser feito.

Porém, gerado lá na mesma fornalha de pensamentos sórdidos e, vez por outra, de algumas idéias geniais, lá no fundo, outro pensamento vem a mente, querendo, de alguma forma, justificar o pensamento contrário ao pensamento anterior, tentando ao máximo lhe convencer de que o que você sabe que não é certo, pode, quem sabe, não ser lá tão errado assim.

Não, não é loucura. É simplesmente seu cérebro funcionando. E isso acontece constantemente e pode ser aplicado as mais diversas situações. Economizar e gastar, por exemplo, é um exemplo clássico e me incluo facilmente como sofredor desse mal psicológico.

Eu sou uma pessoa bastante controlada com dinheiro. Consegui, desde sempre, me conter e não gastar com supérfluos e, por vezes, até mesmo não gastar com não supérfluos, coisas úteis mesmo. Tudo para, quem sabe, conseguir atingir um objetivo maior, algo ainda mais importante, ainda mais do que o não supérfluo de necessidade pseudo-duvidosa imediata.

Porém, por mais que eu entenda a importância desse hábito (sim, virou um hábito, de tão comum), as vezes é complicado justificá-lo a mim mesmo. Um outro cérebro parece tomar conta de tudo e me sinalizar, ardilosamente, que essas idéias tão dificilmente cultivadas e transformadas em hábitos, podem não ser assim lá tão importantes quanto eu imagino que sejam.

É algo complicado, na verdade. Conviver constantemente com um anjinho e um diabinho, duelando constantemente pelo controle de suas idéias. Você sabe que, se não resistir e de deixar se levar por um ou por outro, provavelmente vai ter efeitos colaterias que, de alguma forma, acabam sendo sempre ruins, seja para sua vida pessoal ou para sua vida emocional.

Por isso, as vezes me pergunto : isso é realmente meu cérebro ? Um somente ? Brigando consigo mesmo ? Será que realmente existe somente um brigando furiosamente entre seus dois extremos no intuito de ganhar o poder de controlar meus atos no mundo real ?

Ou será que o cérebro, que segundo dizem é racional e, por vezes, insensível, estaria tentando derrotar a, por vezes, mais “racional” e sensível (e, por isso, mais correta, segundo muitos) alma ?

Portuguese, pensamentos, personal

Craque espartano

January 24th, 2009


Estava lá eu, novamente, degustando da fonte infindável de sabedoria, quando li de relance na capa do UOL a chamada para um post no blog do Juca Kfouri : Uma homenagem a Leônidas, ‘pai’ das bicicletas.

O post eu na verdade não li, mas por um instante me veio a cabeça a imagem de Leônidas, o rei espartano, empurrando o pobre mensageiro persa para a queda fenomenal no poço sombrio com a ajuda de uma bicicleta (não o meio de transporte, mas sim o famoso movimento usado no futebol).

Alguns segundos depois, percebendo que se tratava de um texto do Juca Kfouri, a ficha caiu e a associação com o jogador de futebol Leônidas se deu. Apesar de não entender bolhufas de nada ligado as artes, as vezes eu acredito que teria me dado bem se tivesse optado pela carreira de roteirista.

imaginacaofertil, personal

Anything that can go wrong, will go wrong

January 24th, 2009


As vezes, acredito que Murphy tinha o poder de ver o futuro e, se apreveitando disso, acabou cunhando sua famosa lei com base no que viu em uma de suas muitas olhadelas na comédia de minha vida futura. Ou isso ou ele roubou o DeLorean do Dr. Brown e fez uma parceria com Marty McFly.

Ontem cheguei em casa feliz da vida, esperando encontrar uma passagem aérea relativamente em conta para ir aos USA assistir o início da quinta temporada de Lost e, logicamente, como não poderia deixar de ser, minha querida companhia telefônica novamente me deixou na mão.

Me lembrei então que recentemente fui ludibriado novamente e caí no conto do vigário. Já que estou pagando, por quê não usar, correto ? Correto. Mal sabia eu que, novamente, Murphy resolveu rir de minha desgraça e, logicamente, minha conexão 3G também não funcionou (aliás, quando funcionou mesmo, hein ?).

Consegui, com a ajuda de um vizinho anônimo camarada, uma conexão WiFi mediana que me permitiu ler alguns e-mails e navegar em alguns sites leves para ler notícias. Mas downloads, mesmo de arquivos relativamente pequenos (30MB, por exemplo), demoraram horas para serem finalizados

Considerando que, ultimamente, também estamos enfrentando problemas no trabalho com lentidão fora do comum de nosso link Internet, começo a acreditar que a fada do link realmente não vai com minha cara. Alguma das pedras que eu joguei deve tê-la acertado quando ela ainda fazia um bico como fada do dente.

A ultra-super-megaboga conexão de 10GB do Campus Party provavelmente só está funcionando até agora porque eu não estou lá. Se estivesse, ela cairia, com certeza. Fiquem tranquilos campuseiros, eu prometo que não apareço por aí, até mesmo porque agora, 24 horas depois de eu querer usufruir de minha conexão Internet, Murphy parece ter dado uma trégua e estou embarcando em minha viagem para uma sessão extra de estréia de Lost.

Rants, personal