Archive for the ‘Nerdocracia’ Category

Private GIT repositories (on DreamHost)

Monday, November 8th, 2010

This is yet another guide describing how to setup private HTTP-accessible Git repositories on Dreamhost using Git’s git-http-backend (a.k.a git’s Smart HTTP protocol). While similar guides can easily be found by the thousands in the Web (I’ve listed some of them in the Refereces section), I’ve found that some guides have outdated information or that the setup described in them could be improved. Thus, this guide tries to update, improve and consolidate the information dispersed in such sources.

(more…)

Copiando tudo de uma partição WBFS pra outra

Monday, October 25th, 2010

Usando o WIT, Wiims ISO Tools, copiar todas as ISOs de uma partição WBFS para outra é um comando simples como:

./wwt  --update --progress --part  /dev/rdisk1s1 ADD /dev/rdisk2s1

Primeira partição (/dev/rdisk1s1) é a partição WBFS de destino, a segunda a partição (/dev/rdisk2s1) WBFS onde os jogos se encontram.

Homebrews ou jogos já existentes não são sobrescritos, ou seja: ele só copia o que você ainda não possui.

Para descobrir qual partição tem seus jogos, conecte apenas o seu HD e rode o wwt com aopção LIST-M:

./wwt LM
ScanDevForPartitions(sd)
- part found: /dev/sdt
ScanDevForPartitions(rdisk)
- part found: /dev/rdisk0
- part found: /dev/rdisk0s2
- part found: /dev/rdisk0s1
- part found: /dev/rdisk1
- part found: /dev/rdisk1s0
- part found: /dev/rdisk1s0s1
- part found: /dev/rdisk1s0s2
- part found: /dev/rdisk2
- part found: /dev/rdisk2s1
- part found: /dev/rdisk2s2
- part found: /dev/rdisk2s3
WI  WBFS file
-------------------
1  /dev/rdisk2s1
-------------------
ID6     MiB Reg.  WI  40 discs (105 GiB)
--------------------------------------------------------------------
<lista de jogos homebrew aqui...>
--------------------------------------------------------------------
Total: 40 discs, 107092 MiB ~ 105 GiB used, 36432 MiB ~ 36 GiB free.

Pronto.

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…

Massacre virtual

Friday, June 5th, 2009

Tirar a poeira desse blog com as estatísticas do último massacre que eu cometi. Deixei de seguir 21 feeds RSS e de 2 twitters — um deles o do @buscadesconto, que mesmo útil, não tem a utilidade que eu esperava). Os feeds que eu deixei de seguir foram:

É uma miscelânia de blogs de amigos que foram desativados, blogs de programas que eu não uso mais e de coisas que, apesar de interessante, simplesmente tomam tempo demais :-) Os canais de video do google, por exemplo: tem muita coisa bacana, mas não tenho 1h para gastar vendo-os e cansei de me enganar que marcar para “ver depois” vai resolver já quem na prática, nunca vejo.

E é isso. Namastê, much love, peace out.

DIY: Base para Lava Lamp

Saturday, February 7th, 2009

Na falta de coisa melhor para postar, vamos tirar a poeira disso com um “antigo” vídeo de minha autoria, sobre como fazer uma base (tosca) para uma Lava Lamp.

Enquanto que uma garrafa de lava lamp custa uns R$ 25 no mercado, a base custa aprox. R$ 100. Isso é um absurdo, visto que a base nao passa de um suporte para a garrafa e uma lâmpada de 40W. Sendo assim, resolvi fazer uma para mim usando uma lata de Nescau 2.0 — e funcionou :-) Custo total inferior a R$ 30, incluíndo a garrafa de lava. A lampada que eu usei no final das contas foi uma dicróica de 50W.

E sim, eu sabia o que estava fazendo quando eu usei a furadeira :-)

Handbrake novo

Thursday, November 27th, 2008

Só para tirar a poeira do blog — e iniciar uma nova seção do mesmo. Saiu uma nova versão do Handbrake, um probrama para Mac (com versões para Linux e Windows) que converte seus DVDs para vários formatos interessantes, entre eles os formatos suportados pelos iPod (5G), iPhone, Apple TV, PSP e muitos outros.

De especial a nova versão permite agora a conversão a partir de vídeos em qualquer formato, não somente em DVD. Sim! Agora você aquele seu amigo pode converter os vídeos .AVI do Family Guy que ele baixou da internet para o iPhone ou para o PSP dele :-) Bom lembrar que esse programa pode ser útil também para aqueles que querem diminuir o tamanho dos seus vídeos pois ele suporta a codec H.264, que consegue taxas de compressão muito boas — melhores do que as que se obtem com Divx e similares.

E é isso.

Via Wired Blog: Handbrake Still the Best DVD Converter, Now Handles Any Video Format.

Vida nova a um velho PDA

Thursday, October 16th, 2008

Bacana a proposta de dar vida nova a um velho PDF e transformá-lo em um capenga mas usável notebook ou em um eReader.

MAKE @ Digital Nomads – Things to do and make with old Palm Pilots e Giving old PDAs a new life…

In plain English (except the post)

Friday, September 12th, 2008

Como faz tempo que eu não escrevo aqui, eu provavelmente deveria voltar com alguma coisa grande, bacana, para marcar o início de uma nova era (que provavelmente será sucedida por outro intervalo sem “posts” por um bom tempo). Devia, mas não vou.

Esse post é tão e simplesmente para apontar para um canal do YouTube que eu achei particularmente interessante: “Explanations in Plain English“. Não é um blog sobre inglês. Na verdade parece mais um “How Stuff works” animado — e em inglês ;-) . Os tópicos são bem interessantes: como as eleições nos EUA funcionam, o que é RSS, como funciona, para que serve e como você pode usá-lo e por aí vai. Tem videos sobre zumbis (?!), wikis, twiiter, social bookmarking e mais. Todos distribuídos em uma licença Creative Commons.

A temática dos vídeos, como pode-se ver pela pequena lista acima, é mais voltada para tópicos relacionados à Internet. O mais bacanas dele é a forma com que abordam seus assuntos: sem tecnicalidades, de maneira direta, clara e acessível — do jeito que seus familiares gostam ;-)

C++ blues

Thursday, May 31st, 2007

C++ é uma linguagem fantástica, até a hora em que ela começa a lhe mostrar seus espinhos. Infelizmente, isso acontece com muita freqüência, o que torna programar nessa linguágem um trabalho de corno. E não são coisas complicadas (criar em tempo de execução classes usando apenas uma string com seu nome), mas as coisas simples as que mais irritam:

  • Você deve explicitamente chamar os construtores das classes pai.

    Isso é obvio mas… por quê? Se eu não estou acrescentando nenhum atributo à classe e quero preservar na classe derivada as mesmas assinaturas dos construtores da classe-pai para que re-escrever tudo? Talvez eu tenha passado tempo demais em python, onde todos os métodos (incluindo construtores) são virtuais.

  • Não se deve chamar métodos virtuais em construtores

    Novamente, depois que você adestrou seu cérebro para pensar na lógica de C++, isso também deveria parecer óbvio. Mas não parece. Isso é tão verdade que o Scott Myers tem uma entrada especificamente para isso no seu Effective C++, 3ª edição.

Fim da BrasNet

Tuesday, May 22nd, 2007

Quando comentaram comigo “A BrasNet fechou” eu pensei, “Bom, estava demorando para o inevitável acontecer”. Quase todo mundo usa MSN e Google Talk hoje em dia. Dentre as pessoas mais novas, quase nenhuma sequer conhece o IRC. Eu faço doutorado em computação e mesmo assim poucos dos meus colegas de laboratório (muitos deles da minha idade, diga-se de passagem) nem mais sabem o que é isso. E mesmo entre os que sabem, alguns não farão idéia do que eu estou falando a menos que eu chame IRC de “mirc“.

O fato é que, ao ler o relato do mantenedor da Brasnet sobre seu fechameto, me bateu uma grande nostalgia.

Eu também usei gopher, usei o Veronica, quando na época não existia mais nada similar. Adorava fazer consultas sobre células de combustível. Ainda me lembro do meu meu primeiro contato com o IRC, que também foi pela jacaré BBS, através de um terminal ligado à RNP no CEFET-CE, em meados de 1995. No dia, a conversa que rolava no #brasil era sobre a arte de enrolar um baseado — na época, eu mal tinha 14 anos. Eu estava lá quando os canais de estados brasileiros começaram a pipocar na EFNET, estava lá quando do surgimento da BrasNET e da BrasIRC. Conheci muitos amigos meus por lá e muitos dos que hoje são meus amigos são conhecidos de amigos meus do IRC.

Uma lástima a BrasNet fechar. Como diria Regina, com ela vão memórias de “um tempo que não volta nunca mais”.

Lidando com falta de espaço em disco

Thursday, June 15th, 2006

A C9, onde o blog fica hospedado, vez por outra sofre com problemas de falta de espaço em disco. Quando isso ocorre, não é incomum uma ou várias das tabelas do banco de dados desse blog ficarem corrompidas. Como isso estava ocorrendo com uma certa freqüência, resolvi arregaçar as mangas e tomar uma providência nada convencional para esse problema. (more…)

O que é isso? É um caranguejo estilizado?

Wednesday, June 7th, 2006

Não, não é, mas muito obrigado por perguntar :-)

***

A propósito, aquele meu patch já foi acrescentado ao Moin , na versão 1.5.3.

***

Ah! Pois é, rolou um tempo atrás outra edição do Bordel da Raquel, uma festa semestral da Comunicação Social da UFMG. Sobre ela.. bom… tudo que há para ser dito é que ir de chinelos havaianos para uma festa dessas não é uma boa idéia.

Skype Reverse-Engineered e Freenet 0.7

Wednesday, April 5th, 2006

Só para constar: saiu na zeropaid uma matéria sobre um trabalho de engenharia reversa no software do Skype. Muitíssimo interessante.

Noutro front, a notícia do dia é que o Freenet 0.7 foi lançado.

Vortex Drops

Tuesday, March 21st, 2006

A Internet é uma fonte inesgotável de vortexes de procrastinação. Frequentemente, enquanto procura-se por uma dada coisa você acaba encontrando outra quase completamente desconexa da primeira mas muito, muito mais interessante. Os drops de hoje refletem isso :-)

RestAdmonitionPatch
Tudo começou por aqui. Fui ver a quantas andava a página de um patch (aceito :cool: ) que eu fiz para o MoinMoin. Daqui eu acabei indo para outra página e, via google, para…
FastCGI, SCGI, and Apache: Background and Future
Aqui segue uma boa discussão sobre FastCGI, proxies, mod_{php,python,ruby} e ambientes de execução persistente para aplicações web. Leitura de suma importância para quem anda acompanhando as últimas do mundo python… (e ruby…). O cara que estreveu esse artigo tem um blog muito bacana que apontava para…
ten great subversion tips
Artigo da ONLamp sobre dicas para subversion especialmente feitas para aqueles que recentemente migraram do CVS. E, falando em softwares para controle de versão…
NewVCS e …moving from CVS to git
Vários projetos estão migrando de sistemas de controle de versão centralizados para modelos descentralizados. E, por incrivel que pareça, o git, do Linus, parece estar ganhando momentum. E eu achando a facilidade de criar branches no subversion a melhor coisa dos últimos tempos…

E é isso ai crianças.

Yeah Yeah Yeahs – Tick

Multicast de Feeds RSS/Atom

Wednesday, October 19th, 2005

A cool-thingie do dia é o feedtree: collaborative micronews delivery“. Os caras criaram uma rede P2P para disseminar feeds. Coisa fina: redes DHT, application layler-multicast, autenticação, proxies HTTP para clientes legados… Tudo muito interessante.

Children of lesser python

Tuesday, October 18th, 2005

Para não ficar calado muito tempo, o link do dia é o Children of a Lesser Python. Uma ótima discussão sobre o estado das VMs (ou plataformas atuais ) para python.

The Libertines – Can’t Stand Me Now

HBO attacking BitTorrent

Friday, October 7th, 2005

Estava demorando. Desde a derrubada do suprnova a comunicadade bittorrent não recebia nenhum ataque frontal — até agora. A HBO está atacando o bittorrent e em grande estilo! Além de usar a já batida tática de envenenamento de arquivos ela está inundando os trackers com clientes que só distribuem cópias danificadas, na tentativa de dimunuir o fôlego das transferências de episódios da sua série Roma. Aparentemente o contra-ataque está surgindo na forma de listas negras usadas através de DNS, similares às já existentes para evitar o recebimento de spam de nós conhecidamente maliciosos.

Seria essa hora de aproveitar o protocolo de troca de mensagens do azureus para algo mais? Afinal, como dito na matéria da O’Reilly Radar, com o protocolo do bittorrent, é trivial descobrir se um dado usuário está lhe enviando pedaços danificados do arquivo. Difícil seria compartilhar e dar crédito a notificações de nós máliciosos de forma confiável — ou seja, lidar com o problema de confiança distribuída.

Ian Van Dahl – Castles in the Sky

Guerra dos Clones

Tuesday, September 20th, 2005

O pessoal não cansa de criar clones do Ruby on Rails em python. Primeiro veio o Subway, depois o Django e agora agora apareceu mais um, o TurboGears. O que esse último tem que os outros não tem? Praticamente nada, a única grande diferença é que ele foi construído usando projetos mais antigos para python ao invés de começar tudo do zero. De qualquer forma, isso não vai dar certo…

***

Criptigrafar senhas no lado do cliente com RSA e JavaScript? Tem gente que não só afirma que funciona como também dá dicas de sítios sobre AJAX e JavaScript

Tom Jones & Stereophonics – Mama told me not to come