Archive for the ‘DIY’ Category

Exporting a git repository to subversion

Tuesday, October 6th, 2009

Yeah, you read that right. That is probably the inverse of what most people want. But, anyway, let’s say you have a project originally hosted on a git repository and you need to export it to a subversion repository for some reason. Now what?

The nice folks of Google Code have put a really good step-by-step guide explaining how to do it. This guide was originally posted on Google Open Source Blog. In case you need another view on the process, you can follow the “git export to svn” discussion on nabble — which just get good at the very end.

There is a little gotcha on the guide — not an error, but something they should have stressed. The Subversion repository you will use must be non-empty. Again: the Subversion repository must be non-empty. Notice that by non-empty all they mean is that the subversion repository should have at least one revision commited to it, and not that it ought to have files in it. Got it? Good. Now move on.

Reparo no Time Machine

Friday, October 2nd, 2009

Então, como eu falei antes, enviei o meu Macbook para o reparo, onde trocaram a placa lógica dele. Depois disso o Time Machine parou de reconhecer o disco de backup antigo que eu usava. Na verdade, ele passa a ignorar todos os backups anteriores e resolve criar um backup novo, do zero. Desnecessário dizer que isso tira metade da graça em usar o Time Machine (backups temporais), sem comentar os desperdício em espaço em disco — vou praticamente ter duas cópias dos mesmos dados do disco de backup.

E aí, Bial, como fazer para resolver isso?

Existem bons guias em inglês dizendo como resolver; coloquei links para eles ao final desse post. Mas, para aqueles que têm algum problema com o inglês, vamos ao passo-a-passo de como resolver isso na velha língua de Camões. Como alguns comandos requerem o uso da linha de comando, vou assumir certa familiaridade com a mesma.

Entendendo o Problema

Antes de mais nada, uma rápida explicação. O Time Machine usa um identificador que fica atrelado à sua placa de rede (o seu “endereço MAC“) para reconhecer o backup de um micro. Isso permite inclusive que um mesmo disco de backup seja compartilhado por vários micros: cada um terá seu backup identificado unicamente pelo endereço MAC do seu respectivo micro.

Todavia, se a placa lógica de um micro muda, o endereço MAC dela também muda. Por isso, quando o Time Machine for procurar por backups anteriores do seu micro, ele procurará backups associados ao identificar atual do micro — ou seja, ao seu novo endereço MAC. E é por isso que ele não encontrará seus backups anteriores: todos os seus backups ainda estão atrelados ao antigo identificador do seu micro e não ao novo. Para corrigir esse problema temos que “informar” o Time Machine sobre essa mudança de identificador. Na prática, apenas atualizaremos o endereço MAC nos backups antigos com o novo endereço MAC. Assim, o Time Machine identificará seus backups anteriores como backups do micro atual e nada do seu histórico será perdido.

Coletando algumas informações

Antes de prosseguir, você terá de cololetar algumas informações

  • Mount-point do Time Machine
    Provavelmente será dentro do /Volumes, alguma coisa como '/Volumes/Time Machine' ou, no meu caso, '/Volumes/Backups do Time Machine/'.
  • Diretório onde o Time Machine guarda os backups antigos do seu micro
    Dentro do volume/mount-point do Time Machine haverá uma pasta chamada Backups.backupdb e, dentro dessa pasta, haverá uma (provavelmente) com o nome do seu micro. Essa é a pasta que contém os seus backups antigos. No meu caso, o path completo para ele era /Volumes/Backups do Time Machine/Backups.backupdb/notebook
  • O antigo endereço MAC do seu micro
    Sim! Você vai precisar dessa informação. Se você não tinha anotado o seu antigo endereço MAC em algum lugar o que lhe resta é extrair essa informação direto do Time Machine. O comando abaixo deve resolver esse problema. Adapte as nomes dos diretórios de acordo com as suas configurações

    $ cd /Volumes/Backups\ do\ Time\ Machine/Backups.backupdb/
    $ xattr -p com.apple.backupd.BackupMachineAddress notebook

    A saída desse comando deve ser algo como 00:1e:c2:1e:1e:ca. Esse é o valor do seu antigo endereço MAC.
  • O novo endereço MAC do seu micro
    O comando abaixo deve dar conta de lhe fornecer essa informação

    $ LC_ALL=C ifconfig en0 | awk '/ether/{print $2}'

    O resultado deve ser um identificador como 00:22:41:22:16:f3. Esse é o endereço MAC atual do seu micro.

Passo-a-Passo

De posse de todas as informações necessárias, vamos agora ao passo-a-passo para resolver esse problema.

  1. Se o disco de backup estiver conectado, desconecte-o.
  2. Em seguida, desligue o Time Machine. Você não vai querer ele interagindo com você enquanto os ajustes são feitos. Vá lá no “Preferências do Sistema”, vá na área do Time Machine e desligue-o.
  3. Reconecte seu disco de backup.
  4. Desabilite temporariamente as ACLs no volume da Time Machine. Não precisa ficar com cara de Amélia se você não entendeu. Apenas digite os comandos abaixo:

    $ sudo fsaclctl -p '/Volumes/Backups do Time Machine/' -d
  5. Dentro do raiz do volume do Time Machine existe um arquivo invisível cujo nome corresponde ao identificador MAC antigo do seu micro precedido por ponto e sem os “:”, ou seja “.001ec21e1eca“. Esse arquivo terá de ser renomeado para refletir o valor do novo MAC. Aplique o mesmo processo ao novo MAC e você terá o novo nome para esse arquivo.

    $ cd /Volumes/Backups do Time Machine/
    $ mv .001ec21e1eca .0022412216f3
  6. O diretório com seus backups antigos possui um atributo extendido com o valor do MAC antigo. Atualize-o com o valor do MAC novo.

    $ cd /Volumes/Backups do Time Machine/
    $ sudo xattr -w com.apple.backupd.BackupMachineAddress 00:22:41:22:16:f3 Backups.backupdb/notebook
  7. Reabilite as ACLs no volume da Time Machine.

    $ sudo fsaclctl -p '/Volumes/Backups do Time Machine/' -e
  8. Desconecte/Ejete o seu disco de backup
  9. Re-habilite o Time Machine
  10. Reconecte o seu disco de backup

E é isso. Após tudo isso o Time Machine deverá iniciar um outro processo de backup — e esse deve demorar um pouco mais já que provavelmente seu micro estava há um bom tempo sem fazer backup.

Referências

Reparo no Macbook Pro

Monday, September 28th, 2009

Meu Macbook Pro estava com um problema estranho: desligava espontaneamente quando passava um tempo apenas na bateria, mesmo essa tendo carga. Bastava um “while true; do echo 1 > /dev/null; done” rodando em dois terminais para, em questão de minutos, o mac apagar. Mas apagar mesmo, de não voltar até que fosse ligado no cabo de força. E repetindo: a bateria ainda tinha (muita) carga.

Depois de muito adiar levei ele na assistência para ver se resolvia o problema. Antes de mais nada, tenho que dizer três coisas:

  1. Primeiro, Deus salve o momento em que fiz meu plano AppleCare — valeu cada centavo!
  2. Pela primeira vez na vida não me senti enganado por uma assistência técnica. Gostei muito do serviço lá da TecMania, aqui em Belo Horizonte mesmo. Recomendo mesmo. :-)
  3. Finalmente, PQP!, Time Machine!

O que ocorreu foi que depois de descartarem que o problema fosse a bateria, que parecia estar normal nos testes, resolveram trocar a placa lógica (logic board) do coitado. Trocaram e o problema persistiu. Pegaram uma bateria zerada que havia chegado a pouco por lá e tentaram reproduzir o problema. Como não conseguiram, deduziram que foi a bateria, e que a minha estava claramente defeituosa. Menos mal, fiquei com uma bateria nova e uma placa lógica nova sem pagar nada. Digo, tudo pago pelo AppleCare.

Tudo foi bem rápido. Mais rápido do que o esperava e quase tão rápido quanto eu gostaria. Todavia, depois de ter a placa lógica trocada, o MBP se comportou um pouco estranho:

  • O iTunes disse que não podia mais tocar as músicas da minha coleção porque não tinha permissão.
  • O Time Machine não reconhecia os backups antigos que eu tinha.
  • O VMWare Fusion passou a perguntar se eu tinha movido ou copiado minhas máquinas virtuais.

O que ocorreu foi que com a mudança da placa lógica, muitos programas acharam que eu tinha mudado de micro, o que não foi de fato o que ocorreu. No caso do iTunes foi só autorizar esse “novo” computador. O VMWare funcionou sem problemas depois que eu disse que “copiei” as máquinas virtuais. Com o Time Machine não foi bem assim…

Gambiarra Sound System

Wednesday, April 5th, 2006

Há mais de 3 semanas que eu sou um feliz proprietário de um Gambiarra Sound System.

A idéia já era antiga: usar como aparelho de som do carro um MP3 player, ipod ou discman e ligá-lo direto num módulo amplificador. Seria mais econômico do que comprar outro som bom para o carro — que seria inevitavelmente roubado. Também acabaria sendo melhor do que comprar (ou continuar usando) um toca-fitas vagabundo com sintonia manual para rádio.

O problema é que em toda auto-elétrica que eu ia sempre me faziam uma cara feia quando eu comentava sobre essa idéia. Sempre. Até o dia que eu achei o link do Gambiarra Sound System. Nessa página o cara descreve exatamente aquilo que eu queria fazer, dava os macetes, detalhes, tudo! Por sorte eu até já tinha um módulo praticamente igual ao do cara. O mais trabalhoso foi ir no centro da cidade e comprar os cabos necessários (R$ 14). A instalação propriamente dita foi feita numa auto-elétrica (R$ 30). Por sorte o cara que instalou já sabia mais ou menos do que se tratava e até a ligação dos cabos e do resto foi tranquila. Por garantia, levei meu MP3 player com dois arquivos de testes (um harmônico qualquer apenas no canal direito e outro apenas no canal esquerdo) tanto para garantir que os canais ficariam instalados corretamente como para ver o volume.

Foto das ligações entre os cabos e o módulo

A minha configuração ficou um pouco diferente da do cara: ao invés de um plug P2 “Y” e dois cabos P2-RCA eu usei um cabo P2-RCA e dois cabos “Y” RCA fêmea-2 RCA machos, como dá para ver pela foto acima. Outras fotos da instalação podem ser vistas no Flickr. Usei o mesmo esquema de ligar o “remote” do módulo no “pós-chave” — mais prático do que instalar um interruptor.

O fato é que já e sensação. ;-) Funciona perfeitamente tanto com o ipod como com o player da sandisk. Controlo o volume pelo player que estiver usando e, quando saio do carro, levo-o escondido sem maiores problemas no bolso. O módulo mesmo fica bem escondido no carro. Perfeito. Pelo que eu vi varias outras pessoas já viram essa página e também tiveram bons resultados. Até aperfeiçoaram a idéia. :-P

Updated @ 2007-12-11: Adicionei um link para os dois arquivos mp3 de teste de canal.

Updated @ 2009-02-02: O primeiro link foi movido para http://www.gebh.net/oprimo/2007/06/gambiarra-sound-system