Migrando discos virtuais do VMware para o VirtualBox

Neste fim de ano conheci o Contiki, um sistema operacional aberto voltado para dispositivos embarcados.

Uma das coisas legais dele é que é possível baixar o ambiente de desenvolvimento que nada mais é que uma VM do Ubuntu com ferramentas e um simulador muito interessante, o Cooja.

O problema é que essa VM foi criada com o VMware e por razões diversas eu queria utilizá-la no VirtualBox.

Pesquisando pela internet, encontrei vários textos falando que o VirtualBox reconhece os discos virtuais do VMware, bem como várias receitas para converter de um formato para outro.

Como não sou nenhum expert no assunto, acabei utilizando a solução que pareceu mais lógica pra mim, mas não quer dizer que seja a mais simples. Basicamente eu segui os passos descritos aqui e aqui que consistem em:

  1. Utilizar o vmware-vdiskmanager para converter os múltiplos arquivos do disco virtual da VM original para um único arquivo vmdk;
  2. Utilizar o qemu-img para converter o arquivo vmdk para o formato raw;
  3. Finalmente utilizar o VBoxManage para converter do formato raw para um disco virtual vdi.
[user@host]$ vmware-vdiskmanager -r /path/to/vmdk_files/myfile.vmdk -t 2 mysinglefile.vmdk
 
...
 
[user@host]$ qemu-img convert -O raw myfile.vmdk myfile.bin
 
...
 
[user@host]$ VBoxManage convertfromraw myfile.bin myfile.vdi –variant standard
 
...

Extras:

  • Eu demorei pra achar o vmware-vdiskmanager. Ele vem junto com o VMware Workstation e possivelmente em algum outro pacote, mas eu não fui conferir;
  • qemu images;
  • Depois do disco virtual convertido, ainda achei mais duas formas de fazer a mesma coisa. Não testei nenhuma delas.

E você? Já usou alguma abordagem mais simples? Compartilhe na área de comentários!

Pacific Rim, melhor filme do ano

Ontem estive no cinema para ver Pacific Rim, que se não fosse pela Lu, provavelmente tera passado batido, confesso.

Depois que eu fiquei sabendo que ele existia, li os reviews dos excelentíssimos críticos do Terra e da Folha, que metem o pau no filme. Oras, conhecendo críticos de cinema como conheço, fiquei ainda mais curioso.

Bem, o filme é sobre robôs gigantes combatendo monstros alienígenas e isso não é pra qualquer um.

Se você não teve infância na década de 80, vá ler outro post. Se você não passava as manhãs e/ou tardes na TV Manchete, vá ler outro post.

Agora, se você sempre quis pilotar um Mecha como em Evangelion ou Escaflowne, este filme é pra nós.

Esqueça tudo que você ouviu falar sobre ele. É o melhor filme do ano até aqui. Eu nunca tinha visto um filme tão bem executado, tão bem encaixado e nunca tinha saído de uma sala de cinema tão empolgado. Vou ver outra vez.

Pra começar ele não é uma adaptação, então não tem essa de Lex Luthor com ideias idiotas ou Wolverine sem roupa amarela.

O roteiro é bem amarrado, com começo, meio e fim. Não tenta explicar demais, nem de menos. Se você não entendeu de onde os monstros saem, a culpa é sua, cabeção, procure no nome do filme.

A trilha sonora é simples, mas na medida certa pra te colocar no clima. Você sai com aquela música de batalha na cabeça.

Ao contrário do que se critica, os personagens são sim consistentes. Não é um tratado sobre a psicologia dos relacionamentos humanos. É um filme de robôs gigantes salvando a humanidade de alienígenas invasores.

Os monstros vem de outra dimensão e pos isso você acha que faltou realismo? Qual parte do É um filme de robôs gigantes salvando a humanidade de alienígenas invasores você não entendeu?

Eu sinceramente nunca tinha visto um diretor acertar tão na mosca em um filme. Em algumas cenas, eu percebi que eu até me movia, como se tivesse, por reflexo, pilotando o mecha. Isso é arrepiante. Era com estar dentro do filme e isso, pra mim, o torna o melhor filme do ano.

Se você sempre quis um bom filme de robôs gigantes salvando a humanidade de alienígenas invasores, pare tudo o que você estiver fazendo agora e vá ver o filme. Não é um filme pra qualquer um, é pra nós.

Alfa

Praticamente funciona...

Não é algo que dê pra atender a qualquer expectativa, mas pelo menos eu consigo usar. Mais ou menos.

Ok, tá uma droga... Mas é alfa mesmo...

Nota Mental: Acertar as regexp do .gitignore e do MANIFEST.SKIP...

Magic Survey

Olá queridos fãs de Magic: The Gathering, MTG para os íntimos :)

A Lulu Eller está fazendo seu Projeto de Graduação e a temática aborda o nosso amado e idolatrado card game.

Para isso ela está colhendo informações através de uma pesquisa web rápida e indolor. Se puderem tirar uns minutinhos para responder eu ficaria muito agradecido.

Caso conheçam algum parente, amigo, vizinho ou cunhado chato que tenha contato com o jogo, ou não, podem passar o link adiante :)

A pesquisa pode ser respondida seguindo o link:

http://bit.ly/MTGsurvey

O Caos, a Moda e o Hacker

O Caos

Nesta sexta feira aconteceu a última aula do curso de férias de 20hs que eu e alguns amigos ministramos na FEI sobre introdução ao Linux. Gostaria de registrar mais uma vez nosso agradecimento por todo o apoio que recebemos da instituição, representada pelo Professor Plínio.

O curso foi carinhosamente redefinido durante a semana como "Uma caótica e divertida introdução ao mundo Linux", pois ao invés de nos focarmos em memorização de comandinhos, tentamos mostrar aos alunos como se virar sozinhos, habituando-os a usar o manual e deixando-os confortáveis o suficiente para experimentar.

A temática foi mais ou menos no estilo de "O que acontece se eu apertar esse botão vermelho?", onde até mesmo os instrutores faziam coisas erradas para utilizar isso como gancho para o tópico seguinte.

No primeiro dia falamos para os alunos que eles não precisavam de um curso com especialistas para que pudessem explorar o sistema, então a frase mais usada foi "Não sei. Vamos procurar no man?", seguida de uma ajudinha sobre como localizar e entender o manual corretamente.

Nesse formato, interagimos sobre manuais, comandos básicos, organização do sistema de arquivos, permissões, pipes, descritores de arquivos, redirecionamento de E/S, particioamento entre outros tópicos, sempre focando nas dúvidas dos alunos, ao invés de no programa do curso, mostrando que eles poderiam destrinchar um determinado assunto tão profundamente quanto quisessem.

Naturalmente, acabamos não tendo tempo de entrar em vários assuntos, mas os tópicos que não abordamos, ou os termos mais específicos eram deixados no quadro para que eles anotassem e pesquisassem por conta própria, sempre tomando o cuidado de dar uma direção, de forma que eles não ficassem perdidos ou com tudo mastigado.

Na quata feira, abordamos a instalação do Linux, tomando como exemplo o Ubuntu. Até mesmo um pendrive que corrompeu algumas ISOs serviu de gancho para falarmos de checksum. Em pouco tempo eles já estavam configurando o sistema sozinhos, atualizando e instalando pacotes sem que precisássemos interferir muito.

A quinta feira foi o dia mais audacioso para um curso introdutório. Focando nas necessidades dos alunos, abordamos ferramentas de desenvolvimento e debug. Demos uma visão geral das etapas de compilação, mostramos como as macros são pre-processadas, como é gerado código objeto e como os objetos são linkados. Falamos brevemente sobre cpp, gcc, ld, gdb, nm, objdump, e sobre como as bibliotecas são criadas, sem assustar com os comandos, focando nos conceitos por trás de tudo.

Embora esse seja um tópico razoavelmente avançado, mostramos para os alunos que eles tinham plenas condições de entender o que estava acontecendo e se aprofundarem no assunto caso quisessem. Mostramos que existe e deixamos por conta da curiosidade de cada um.

A moda

Na sexta feira trouxemos um questionamento sobre a humanidade das pessoas que operam as máquinas e sobre como a tecnologia pode ser prejudicial para elas. Tentamos fazer os alunos questionarem-se sobre o porquê de terem escolhido essa carreira.

A esse bate papo seguiu-se uma sessão de perguntas sobre mercado onde foi perguntado quais tecnologias deveriam ser aprendidas para se destacar no mercado. Foi levantada a questão do conhecimento motivado pelo produto, sendo que a visão do mercado é que devemos buscar o conhecimento somente se motivados por um problema ou criação de produtos.

Infelizmente, não tivemos tempo suficiente para uma discussão mais abrangente, mas neste ponto, a opinião dos instrutores diverge da opinião do mercado.

Todos sabemos que a necessidade motiva. Não discordamos disto. O que não aceitamos é que a busca pelo conhecimento seja podada pela existência ou não de uma determinada necessidade.

Quando estamos sujeitos às modas do mercado estamos sempre um passo atrás do que está acontecendo. Alguém determinou que a tecnologia X é o estado da arte da computação e só nos resta correr feito loucos para continuar fazendo parte do rebanho. Nós nos tornamos escravos. Seres passivos, reativos.

E sem liberdade de pensamento, sem sentimentos, sem criatividade, nós perdemos aquilo que nos faz humanos. Nós nos tornamos máquinas.

Querem um exemplo?

Na década de 90, a moda do mercado era Delphi. Toda vez que um aluno perguntava o que deveria aprender para entrar no mercado, a resposta era: Delphi. Porque Delphi era utilizado em muitas empresas, porque a maioria das vagas em aberto eram para programadores Delphi, etc. Assim, uma massa enorme de pessoas foi estimulada a aprender uma ferramenta, sem se preocupar com base algorítmica, lógica, estrutura ou estilo. Grande parte tornou-se mão de obra barata e dispensável.

Quando os ventos do mercado sopraram em uma outra direção, quem não estava realmente preparado foi varrido do mapa.

Depois vieram o Java, o .NET, o Ruby, entre outros.

Então você está dizendo que essas linguagens são ruins? Definitivamente não, e esse nem é o foco. A sacada é que mesmo nessas linguagens da moda, poucas pessoas estão realmente preparadas e bem posicionadas, enquanto a maioria é só mão de obra substituível e barata.

O que faz um profissional ser bem sucedido é sua capacidade de resolver problemas, e não quantas ferramentas ele sabe manipular.

É claro que quanto mais ferramentas à sua disposição, mais fácil tende a ser o seu trabalho, mas isso só é verdade se você possuir base o suficiente para escolher qual ferramenta se aplica e qual não se aplica. Essa talvez seja a melhor medida de competência.

Voltando ao questionamento anterior, se você só buscar o conhecimento quando houver uma necessidade, você provavelmente não terá à sua disposição conteúdo suficiente para fazer uma boa escolha quando precisar. Na verdade a escolha já terá sido feita por outra pessoa e só te restará a opção de acatar e seguir, depois é claro de correr atrás para aprender o que outra pessoa decidiu que é melhor para você.

Non Dvcor Dvco

Quando alguém me pergunta o que deve aprender para entrar no mercado de trabalho, em sempre me lembro da frase que está na bandeira da cidade de São Paulo: Não sou conduzido, conduzo.

Então eu digo que a pergunta está invertida. Está tudo errado e essa falácia é vendida com pompa e circunstância. Você não tem que aprender nada para agradar ao mercado, na verdade o que você tem que fazer é deixar o mercado querendo ter você, te desejando.

Se você fica sempre preocupado com o que os outros querem que você faça, você estará sempre um passo atrás, buscando algo que não é o que você deseja, e que assim que o vento mudar pode se tornar inútil.

Pergunte ao invés disso quais as características que você precisa desenvolver para se tornar um profissional desejado. A resposta é simples. Seja excelente. Escolha aquilo que mais lhe dá prazer e dedique-se com afinco. Prepare-se, busque embasamento, não se prenda a ferramentas e comandos, procure conhecer o que está em torno do que você está fazendo. Seja curioso, pergunte. Aprenda a ser um hacker no verdadeiro sentido da palavra.

Quando você parar de se preocupar com o que está na moda você vai perceber que há vagas que não conseguem ser preenchidas por empurradores de rato.

Busque sempre o conhecimento, mesmo que sem uma aplicação óbvia, pois as grandes invenções da humanidade só foram possíveis depois de integrar idéias muitas vezes não relacionadas. Há sempre mais de uma ciência por trás de tudo que você toca.

Explore com paixão o máximo de suas habilidades, que o sucesso será uma mera cosequência.

Apêndice

Especialmente mas não exclusivamente para os alunos do curso, deixo alguns links interessantes: