VidaGeek.net

Linux, Open-source, Programação e Produtividade

Archive for July, 2009

Trocando chaves rsa rapidamente

Não sei se muitas pessoas tem esse problema, mas eu tenho mais de um par de chaves (no caso, tenho a minha para a conta jonasabreu do github e a da conta vidageek, também no github). Como era muito chato troca-las manualmente, fiz um pequeno script em bash para fazer isso para mim.
O script assume que as chaves atuais tem o nome de “id_rsa” e “id_rsa.pub” e as outras estão com um sufixo qualquer, como “id_rsa.vidageek” e “id_rsa.pub.vidageek”. O script deve estar na pasta .ssh .


#! /bin/bash

OLD_KEY=$1;
NEW_KEY=$2;

if [[ ! -f "id_rsa.$NEW_KEY" ]]; then
	echo "could not find id_rsa.$NEW_KEY";
	exit 1;
fi;

if [[ -f "id_rsa.$OLD_KEY" ]]; then
	echo "$OLD_KEY already exists";
	exit 2;
fi;

if [[ -f "id_rsa.pub.$OLD_KEY" ]]; then
	echo "$OLD_KEY already exists";
	exit 3;
fi;

mv id_rsa id_rsa.$OLD_KEY;
mv id_rsa.pub id_rsa.pub.$OLD_KEY;

mv id_rsa.$NEW_KEY id_rsa;
mv id_rsa.pub.$NEW_KEY id_rsa.pub;

Como chaves rsa são algo meio ruim de se perder, o script faz algumas checagens básicas, mas use-o por sua conta e risco :D

Usage:

./switch_keys.sh nome_das_atuais nome_da_que_vai_ser_ativada

Exemplo:

./switch_keys.sh jonas vidageek

Troca as chaves atuais jonas pelas que estão com a terminação vidageek .

Posts Relacionados:

  • Textos Clássicos
  • Permissões do .ssh
  • Truques do Bash
  • Substituindo valores de um Hash em Ruby
  • Deixando seu Ubuntu mais rápido
  • Extensões do Firefox
  • Awk & Sed
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 3 Comments
  • Filed under: Dicas, Programacao
  • Em outubro de 2008 quando inaugurou sua loja própria na Oscar Freire, dividindo espaços com grifes como Diesel, Mont Blanc, Lacoste e até mesmo com uma sorveteria da Häagen-daaz, a Nokia promoveu um concurso na cidade de São Paulo para escolher um presente. Ganhou o ConnectUSP, um projeto que iria proporcionar rede sem fio de alta velocidade nos espaços abertos do Campus da USP na Cidade Universitária.

    É verdade que algumas vezes quando procuro por uma rede aqui na faculdade, eu acho as redes da Nokia, mas sempre conecta e não navega. O Jornal do Campus fez uma matéria a respeito de um estudo em 33 pontos da universidade, 19 internos e 14 externos e constatou que apenas 2 deles funcionam. Uma das razões que ouvi recentemente é a de que o sistema tem amplificadores que permitem que o sinal alcance todo o campus, mas os notebooks tem antenas fracas demais para que o sinal retorne aos aparelhos instalados pela Nokia, e por isso o sistema não funciona.

    Em resposta ao Jornal do Campus, a Nokia culpou a vegetação da universidade e disse que providências estão sendo tomadas. Veremos.

    Para quem quer saber mais, existe uma comunidade no Orkut sobre esse serviço da Nokia. Há também o resultado do teste completo.

    Posts Relacionados:

  • Presente da Nokia para SP
  • Suporte ao Nokia 5200 no iSync
  • Ubuntu planeja versão móvel
  • Revistas Wiki
  • INC - Isso Não Compila!!!
  • Retrospectiva 2008
  • Por que filtrar ips não deu certo
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 0 Comments
  • Filed under: usp
  • Gnome Do

    Interface do Gnome Do
    Ta aí um utilitário que deveria estar instalado por padrão no Gnome. Esse achado eu devo ao Pedro Matiello, colega meu de faculdade e de trabalho.

    O Gnome Do é um acelerador de tarefas muito poderoso. Basta apenas pressionar o atalho configurado para ele e digitar uma ou duas teclas e pronto, você já fez o que precisava fazer: abrir o navegador (já com o site que você quer, se for o caso), o terminal, o gerenciador de pacotes, o seu jogo preferido, deslogar, tocar uma música, etc. É bastante extensível e customizável e ainda pode funcionar como um dock de aplicações. Você pode alterar o atalho que lança o aplicativo, ativar e configurar plugins. Dentre os plugins que eu uso estão o de indexação de arquivos, o de busca na Internet (OpenSearch, que te permite buscar em diversos serviços), o do Remember The Milk (ele até fica te alertando que você tem tarefas atrasadas!) e o de controle de sessão de usuário.

    Em cada etapa do comando que você quer fazer, o Gnome Do faz busca em qualquer parte do nome dos itens pelas teclas que você digita. Por exemplo, se você digitar “t”, ele mostrar “Terminal” e, se você apertar a seta para baixo, vai ver uma lista com mais itens que contenham a letra “t”. Ao selecionar o item desejado, você pode escolher a ação apertando “Tab”. Nesse segundo passo, você também pode fazer busca digitando apenas algumas letras. Alguns itens também têm subitens, que podem ser acessados apertando a seta para a direita. Quando escolher a ação desejada, basta apertar “Enter”.

    Esse utilitário é inspirado em utilitários semelhantes para o Mac OS X (Spotlight e Quicksilver, que eu saiba). Foi bom eu ter descoberto isso porque já estava ficando tentado a comprar um Mac quando vi as pessoas usando. Pena que ele ainda não é tão poderoso quanto os similares do Mac, mas já é de grande ajuda.

    Imagem via valeriovalerio.org

    Posts Relacionados:

  • Construção de interfaces com o Glade
  • Wicd: Um gerenciador de redes alternativo
  • Palmas para o Windows
  • Guia Linux - Parte II: Sistema Básico
  • Proteção de Tela como Papel de Parede no Linux
  • Caracteres bizarros direto do seu teclado
  • Lançamento do Gentoo 2007.0
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

    Git Workflow

    Recentemente passei a utlizar git em todos os meus projetos (depois de sofrer muito com a lentidão do sourceforge e outros repositórios svn).

    Me atrapalhei um pouco no começo por não entender os conceitos por trás de repositórios distribuídos, mas no fim das contas o que realmente era importante é que o meu fluxo de trabalho tinha mudado e eu não estava entendendo isso direito até eu pedir para o Fábio Kung sentar do meu lado e me explicar o workflow com o git. Como muitos não tem a chance de fazer isso, aqui fica o que eu aprendi (e estou usando com frequência agora).

    1. Clonar um repositório: Antes de mais nada você precisa ter um repositório para trabalhar. Com git, você faz isso clonando um repositório já existente (semelhante ao checkout do svn)

      git clone URL_REPOSITORIO PASTA_LOCAL_PARA_ARQUIVOS
      

      Com isso foi criado o seu branch principal, chamado master.

    2. Criar um branch de trabalho: Uma das maiores vantagens do git é a facilidade com que você pode trocar de branch a fazer merge. Se você não usar branch, perde muito do que o git te proporciona.

      git checkout -b work
      

      checkout é o comando para você trocar de branch. Se você acrescentar um “-b”, ele também cria o branch pra você. Chamei meu branch de work, mas ele poderia ter qualquer outro nome.

    3. Programe e faça commits pequenos: Como os commits feitos em git são sempre locais, você pode fazer commits bem pequenos, que são bem mais fáceis de fazer merge caso ocorra um conflito.

      git commit -a -m "mensagem de commit"
      

      Lembrem-se sempre de que mensagens de commit são importantes. Escreva mensagens que esclarecem o que foi feito.
      Além disso, a flag “-a” que eu coloquei ali indica para o git commitar todas as modificações que foram feitas. Se você quiser algo mais granular, pode usar:

      git add NOME_DO_ARQUIVO
      

      ou

      git add -i
      

      No qual você pode escolher os arquivos a commitar. Bem interessante.
      Não esqueça de fazer o commit sem o “-a” depois se for fazer assim.

    4. Download de alterações que outras pessoas com acesso ao repositório tenham feito: Você não trabalha sozinho em geral e sempre que você for enviar algo para o repositório alguém já terá enviado antes. O que vamos fazer agora é trazer essas atualizações.

      git checkout master
      git pull origin master
      

      Na primeira vez que você tentar dar pull você tem que informar de onde (origin) e para onde (master). Depois você pode apenas usar git pull, porque o git é espertinho e lembra o que você quer.

    5. Rebase do work: Como todas as suas modificações estão no work, você conseguiu trazer as modificações para a máquina, mas agora seu branch work está desatualizado com relação ao master. Essa é a maior maravilha do git. Você vai temporariamente remover as modificações do work, aplicar os commits que estão no master e reaplicar seus commits.

      git checkout work
      git rebase master
      
    6. Resolvendo os conflitos: Pode acontecer do git não conseguir resolver algum dos conflitos de modificação. Quando isso ocorre ele para o rebase para que você resolva os conflitos, commit a commit e não tudo de uma vez como o svn.

      git mergetool
      git rebase --continue
      

      O git mergetool abre uma ferramenta visual para merging (facilita muito a vida). O git rebase –continue fala para continuar o rebase.

    7. Enviando modificações para o servidor remoto: Quando você termina o rebase, seu repositório está novamente compatível com o do servidor remoto. Basta agora aplicar essas modificações no master e enviar para o remoto.

      git checkout master
      git merge work
      git push origin master
      

      O comando git merge work aplica seus commits no master. O git push envia para o servidor remoto. Novamente, na primeira vez que você tentar isso, o git ainda não sabe o que nem para onde você quer mandar. Por isso você precisa informar.

    É um pouco mais trabalhoso que o svn, mas os ganhos são significativos. Vale a pena usar git direito. Eu não volto mais pro svn.

    Posts Relacionados:

  • Como desfazer commits na branch errada no Git
  • Como migrar de SVN para GIT
  • Como descobrir todos que commitaram em um repositório SVN
  • Ambiente aberto de Xadrez Online
  • Como exibir branch atual do git
  • Auto refresh no eclipse
  • Groupware
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 6 Comments
  • Filed under: Dicas, Programacao