sábado, 13 de novembro de 2010

Compartilhar 3G com reteador wireless e Ubuntu

Sou assinante de uma internet 3G. No entanto, tenho que dividir minha internet com meu pai. Eu tenho um notebook com Ubuntu e ele um com Windows e por isso queremos mobilidade dentro de casa. Dessa forma o ideal seria comprar um roteador com entrada usb, mas não quis gastar grana =)
Assim, a primeira coisa que pensei foi ligar o modem 3G em meu computador e usar minha placa wireless para criar uma rede Ad-Hoc. Contudo não estava conseguindo fazer funcionar, estava ficando puto, e resolvi partir para outra abordagem.

Obs.: Depois que resolvi o problema achei esse link que acredito que irá funcionar, mas como estava tudo funcionando fiquei com preguiça de testar =P

Como já tinha um roteador comum, resolvi usá-lo em conjunto com meu notebook para criar a rede e compartilhar a internet.
Nesse esquema, quando não estou usando a internet, meu pai se conecta direto com o modem no note dele. Quando estou usando, ligo o modem no meu note, ligo o note com o cabo no roteador e meu pai conecta no roteador via wireless.

Como fazer isso então?


Configurações do roteador


Obs.: No meu caso com firmware AProuter 6.1

Configure a placa de rede do Ubuntu dessa forma:


IP: 192.168.2.10
    Máscara de rede: 255.255.255.0
    Geteway: 0.0.0.0

Com o roteador ligado o conecte pela porta LAN1 ao Ubuntu.

No navegador entre no endereço 192.168.2.1

Vá no link Assistente e preencha de acordo com o descrito abaixo:
  • Primeira tela (Modo de Operação): Selecione Geteway
  • Segunda tela (Configuração da Interface LAN):
  • Endereço IP: 192.168.2.1
        Subnet Mask: 255.255.255.0
    
  • Terceira tela (Configuração da Interface WAN):
  • Tipo de Acesso WAN: IP Estático
        Endereço IP: 172.1.1.1
        Subnet Mask: 255.255.255.0
        Gateway Padrão: 172.1.1.254
        DNS: 8.8.8.8
    
  • Quarta tela (Wireless Configuração Básica):
  • Banda: 2.4 GHz (B+G)
        Modo: AP
        SSID: ESCOLHA_O_SEU
        Canal: 11
    
  • Quarta tela (Wireless Configuração de Segurança):
  • Obs.: WEP é a mais fraca. Configure como quiser.
    Criptografia: WEP
        Tamanho da Chave: 64-bit
        Formato da Chave: Hex (10 characters)
        Chave Tx Padrão: Chave 1
        Chave 1: SENHA_DE_10_CARACTERES_HEXADECIMAIS_A_SUA_ESCOLHA
    
  • Vá em Gerenciamento > Senha e coloque um usuário e senha para acesso a essa interface de administração do roteador.

Configurações do Ubuntu


Agora mude o IP da placa de rede do Ubuntu para 172.1.1.254.

O ip forward deve estar ativado, ou seja, o conteúdo do arquivo /proc/sys/net/ipv4/ip_forward deve ser 1. Para isso, abra o terminal e digite:

$ sudo su -
# echo '1' > /proc/sys/net/ipv4/ip_forward

Em seguida adicione a regra de roteamento no iptables:

$ sudo iptables -A POSTROUTING -t nat -s 172.1.1.254/24 -o ppp0 -j MASQUERADE
Pronto. Agora seu Ubuntu vai estar acessando a internet 3G, bem como qualquer dispositivo que tenha interface wireless.

Como os comandos anteriores devem ser executados toda vez que o computador reiniciar, adicione as linhas abaixo no arquivo /etc/rc.local acima da linha exit 0:

# Compartilhar internet 3G.
iptables -A POSTROUTING -t nat -s 172.1.1.254/24 -o ppp0 -j MASQUERADE
echo '1' > /proc/sys/net/ipv4/ip_forward

Agora, toda vez que iniciar o computador, o comando será executado automaticamente.

Esse post foi mais para eu lembrar caso precise refazer isso, mas quem sabe pode ajudar alguém? =)

[ ]'s

quarta-feira, 25 de agosto de 2010

Highlighting de código no seu site

Estava fazendo o CSS do blog e lembrei de uma coisa que já estava querendo fazer e nunca lembrava: colocar um highlighting de código.

Pesquisei e vi que o mais utilizado pela galera é o Syntax Highlighter. Comecei a utilizar ele, porém uma característica dele não me agradou: Ele só pode ser utilizado com a tag <pre>. O problema da tag <pre> é que quando seu código contém uma linha grande, dependendo do seu layout, ele simplesmente não mostra a linha inteira (o Google Chrome adiciona uma barra horizontal de rolagem, mas mesmo assim fica aparecendo um ícone ? no meio do código) ou mostra a linha passando por cima do que estiver na reta. Por isso eu gosto de usar a tag <code>, o que o Syntax Highlighter não permite. Dessa forma fui buscar outra ferramenta e achei o google-code-prettify.

O google-code-prettify além de me permitir usar a tag <code>, me permite customizar o estilo facilmente via CSS (coisa que o Syntax Highlighter não permite). Olha como é simples usar o google-code-prettify:

Passo 1: Adicione esse código na sua página, entre as tags <head> e </head>:

<link href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js"></script>

Passo 2: Adicione na tag <body> um onload='prettyPrint()', ficando assim:

...
<body onload='prettyPrint()'>
...

Pronto! Agora quando você quiser fazer o highlighting de algum código é só colocar a classe prettyprint na tag <code>, dessa forma:

<code class="prettyprint">
Seu código entra aqui
</code>

Só isso?!?! Não preciso falar qual é a linguagem do meu código não?! Não! O google-code-prettify descobre qual é a linguagem e faz o highlighting! =)
Mas se você quiser, pode indicar qual é a linguagem adicionando a classe lang-x onde x é a sigla da linguagem. Você pode ver quais linguagens ele faz o highlighting no README do projeto.

Quer colocar o número das linhas? Simples: adicione a também a classe linenums. Ainda assim não está aparecendo? Isso acontece porque por padrão o google-code-prettify coloca o número da linha apenas para múltiplos de cinco (5, 10, 15, ...). Para colocar o número da linha em todas as linhas, basta adicionar isso no seu CSS:

code ol li {
list-style: decimal !important;
}

Dica para que usa o Blogger/Blogspot: Para usar no seu blog, basta adicionar tudo da mesma forma como foi descrito. Lembrando que os passos 1 e 2 devem ser feitos no seu layout, que pode ser editado indo na aba Design e depois em Editar HTML.

Dica para que usa o Gedit: Como esse post tinha alguns códigos em HTML para fazer o highlighting e como para isso tem que escapar as tags HTML substituindo os caracteres < e > pelas suas respectivas sequencias especiais em HTML, adicionei ao Batraquio o snippet Scape HTML tags. Com ele você seleciona um código, aperta Ctrl+Shift+H e ele substitui tudo para você. Assim, você pode escrever seu código normalmente, e quando for fazer o highlighting, usa o snippet =)

Lembrando que diferentemente da tag <pre> com tag <code> você precisa adicionar uma tag <br /> ao final de cada linha (no Blogger isso é feito automaticamente).

Lembrando também que você pode usar a tag <pre> se preferir.

É isso ai! Se quiser mudar o estilo, é só adicionar um CSS com uma borda, uma cor de fundo e o que mais achar que fica legal.

Referências:
[ ]'s

segunda-feira, 19 de julho de 2010

Paródia ágil

Em um post anterior publiquei a letra da paródia "Quem não usa ágil dá um tiro no escuro" e foi prometido que gravaríamos uma versão.
Sendo assim, aí está!



Quem não usa ágil dá um tiro no escuro


(Quem não usa ágil dá um tiro no escuro)
Kent Beck já dizia o requisito vai mudar
(Quem não usa ágil dá um tiro no escuro)
Mas o escopo é fechado e não dá mais para alterar
(Quem não usa ágil dá um tiro no escuro)
A qualidade cai por terra, não dá tempo pra testar
(Quem não usa ágil dá um tiro no escuro)
O analista documenta pois não sabe implementar¹

Quem não usa ágil dá um tiro no escuro
E como a maré, os requisitos sempre mudam
E o cliente então, bate a cara contra o muro

(Quem não usa ágil dá um tiro no escuro)
Pra erro bobo corrigir, pair programming eu vou fazer
(Quem não usa ágil dá um tiro no escuro)
E vou trocar conhecimentos, todo dia aprender
(Quem não usa ágil dá um tiro no escuro)
CMM é o caramba a parada é XP
(Quem não usa ágil dá um tiro no escuro)
Pra que tanto documento se eu tenho BDD

Quem não usa ágil dá um tiro no escuro
E como a maré, os requisitos sempre mudam
E o cliente então, bate a cara contra o muro

¹ Para a grande maioria, isto é verdade. Porém, existem aqueles que encontram o caminho da luz.

A música está licenciada sob a licença creative commons atribuição

Os componentes da "banda" foram:
  • Thiago Kerzer: guitarra
  • Ciro Corrêa: baixo e guitarra
  • Rodrigo Manhães: programação da bateria (nem na música ele largou a programação!)
  • Carol Maia: backing vocal
  • Erasmo Júnior: backing vocal
  • Renato Arpuador (Criador do lendário Jingle do Happy Dog): backing vocal
  • Hugo Maia Vieira (Eu): vocal e backing vocal
Agradeço ao Renato que cedeu o estúdio para a gravação do vocal e fez a mixagem com a gravação que o Rodrigo, Thiago e Ciro tinham feito nos estúdios Kerzer =)

O Thiago e o Ciro são, respectivamente, guitarrista e baixista da banda Endorama (indie/pop). Os caras lançaram o primeiro CD em maio.
O Rodrigo e o Thiago são, respectivamente, "vocalista" e guitarrista da banda Clássicos Eternos (cabruncometal/lamparãocore).
Para quem não lembra: música e letra original.

Nota: Este post estava no meu blog antigo e não tive como trazer os comentários. Além dos elogios de Eduardo Hertz, Pedro Henrique Linhares, Ramon Durães, Daniel Gonçalves, Mark S. Gonçalves, Alisson Sales, Rafael Carvalho, Rodrigo Branas, Guilherme Chapiewski, Ming e Rodrigo Melo, destaco alguns:
  • Hugo Lopes Tavares
    Amazing :-)

    Só uma coisa, xará: esse finalzinho ficou cortado :| vc podia colocar um fade out aí!

    PS.: Eu vou ficar na casa de um cara que conhece uma das organizadoras do FISL, talvez a gente consiga botar isso pra tocar lá!

    []s
  • Rodrigo Yoshima
    Parabéns! Temos trilha sonora agora em português!
  • Eduardo Fiorezi
    Muito bom, kkk já escutei umas 6 vezes..

    Falta só um videoclip pra ela... Vamos lá designers...

[ ]'s

sexta-feira, 4 de junho de 2010

Qual versão do ruby estou usando?

Você usa o rvm e nunca sabe qual versão do ruby está em uso?

Seus problemas acabaram! =)

Adicione a seguinte linha no seu arquivo ~/.bashrc:

export PS1="\`ruby=\$(which ruby 1> /dev/null && ruby -v 2> /dev/null | grep -oP \"^.+?[0-9]+(\.[0-9]+)+\") && echo \"(\$ruby) \"\`$PS1"
Atualize o terminal:

$ source ~/.bashrc
E você poderá ter o seguinte:

$ ruby --version
O programa 'ruby' não está instalado atualmente. Você pode instalá-lo digitando:
sudo apt-get install ruby
$ rvm 1.8.7
(ruby 1.8.7) $ rvm rbx
(rubinius 1.0.0) $ rvm 1.4.0
(jruby 1.4.0) $ rvm 1.9.1
(ruby 1.9.1) $ rvm system
$

Legal não?!

Atualizado em 21/11/10

Nos comentários, o Rodrigo deu uma contribuição show sobre o gemsets do rvm.
Assim, se você quer também ver qual gemset está usando, adicone esse código no arquivo ~/.bashrc:

gemset(){
_gemset=`rvm gemset name 2> /dev/null | xargs`
[ -n "$_gemset" ] && echo "@$_gemset"
}

export PS1="\`ruby=\$(which ruby 1> /dev/null && ruby -v 2> /dev/null | grep -oP \"^.+?[0-9]+(\.[0-9]+)+\") && echo \"(\$ruby\$(gemset)) \"\`$PS1"

Com isso, você vai ter o seguinte:

$ rvm 1.9.2
(ruby 1.9.2) $ rvm gemset use rails3
Now using gemset 'rails3'
(ruby 1.9.2@rails3) $ rvm gemset clear
gemset cleared.
(ruby 1.9.2) $

Lembre-se apenas que essa linha deve ser a última que manipula a variável $PS1 no seu arquivo ~/.bashrc.

Valeu Rodrigo, pelas dicas de melhoria!

[]'s

quarta-feira, 19 de maio de 2010

afterFormat para Ubuntu 10.04

Ano passado criei o afterFormat para o Ubuntu 9.10. Para quem não sabe, o afterFormat é um script que instala automaticamente diversos softwares básicos (principalmente para desenvolvedores) que sempre são necessários após uma formatação, além de fazer algumas configurações. Para ver tudo o que ele faz, dê uma olhada no projeto no github.

Como foi uma mão na roda para muita gente, atualizei o script para rodar no Ubuntu 10.04 (fiz um branch para a versão do Ubuntu 9.10). Adicionei algumas coisas novas, retirei algumas que ficaram obsoletas e o script ficou bem legal.

A cara dele está assim:

screenshot do afterFormat para Ubuntu 10.04

Para baixar, basta entrar no aqui, clicar no link Download Source e escolher entre zip ou tar.

Qualquer dúvida ou sugestão, é só comentar!

[ ]'s

sábado, 1 de maio de 2010

Visualizando diff no Git com o Meld

A ferramenta de diff do Git pode muitas vezes ser confusa e difícil de entender. Contudo, existe uma maneira de configurar o Git para usar uma ferramenta externa de visualização do diff. Nesse caso eu vou usar o Meld que é uma ferramenta excelente que te permite visualizar o diff desta forma:

Tela do diff no Meld

Em primeiro lugar, você deve instalar o Meld:

$ sudo apt-get install meld
Em seguida, configurar o git para usar o Meld como ferramenta externa para diff:

$ git config --global diff.external meld
Se agora você for em um diretório versionado com git e der um git diff irá ocorrer um erro como este:

$ git diff arquivo_qualquer
external diff died, stopping at arquivo_qualquer

Esse erro ocorre pelo fato do Git mandar 7 parâmetros para a ferramenta externa de diff, enquanto o Meld recebe apenas dois deles (os nomes dos arquivos para comparar).

Uma maneira de contornar isso é escrever um script para formatar os parâmetros antes de manda-los para o Meld. Para isso, crie em qualquer lugar (recomendo em ~/.config) um script em shell com qualquer nome (recomendo git_meld_diff.sh) contendo o seguinte conteúdo:

#!/bin/bash
meld "$5" "$2"

Agora podemos configurar o Git para para fazer o diff usando o script que criamos (lembre-se de mudar o caminho e o nome do arquivo para o seu caso)

$ git config --global diff.external /home/hugo/.config/git_meld_diff.sh
Agora, quando você fizer o diff, o Meld irá abrir corretamente e você terá um diff como o presentado na imagem.

Este post é uma adaptação deste post do Nathan Hoad.

Nota: Este post estava no meu blog antigo e não tive como trazer os comentários. Como os comentários foram relevantes, seguem aqui:
  • Hugo Lopes Tavares

    E aí chará!
    Cara, eu prefiro ver na ordem inversa: a versão modificada e a versão original, acho mais normal.
    Outra coisa que dá pra fazer é não usar o Python, né:

    #!/bin/bash
    meld $5 $2 # a versão atual e depois a original

    Abração!

  • Hugo Lopes Tavares

    Só uma correção:

    #!/bin/bash
    meld "$5" "$2"

    Senão não consegue fazer o meld com arquivos que tenham espaço no nome.

  • Hugo Maia Vieira

    Fala chará!
    Realmente fica melhor ver na ordem: versão modificada - versão original.
    Nem tinha pensado em usar Shell. Muito mais prático.
    Valeu pelas dicas Hugo!

    Abraço!

    Obs.: Como mudei o post, fica aqui a versão anterior sem as modificações que Hugo comentou:

    Antes usava um script em python com o conteúdo:

    #!/usr/bin/python

    import sys
    import os

    os.system('meld "%s" "%s"' % (sys.argv[2], sys.argv[5]))


[ ]'s

segunda-feira, 26 de abril de 2010

Quem não usa ágil dá um tiro no escuro

Há um tempo atrás, eu estava lendo o livro Extreme Programming do Vinícius Teles e parei um pouco para lanchar. Abri o Rhythmbox, coloquei no shuffle e apertei o play. Começou a tocar Óculos escuros de Raul Seixas. Enquanto ouvia, me veio a cabeça frases sobre XP para substituir as frases da música. Então, resolvi não lanchar aquela hora e fui escrever. O resultado foi esse:

Quem não usa ágil dá um tiro no escuro


(Quem não usa ágil dá um tiro no escuro)
Kent Beck já dizia o requisito vai mudar
(Quem não usa ágil dá um tiro no escuro)
Mas o escopo é fechado e não dá mais para alterar
(Quem não usa ágil dá um tiro no escuro)
A qualidade cai por terra, não dá tempo pra testar
(Quem não usa ágil dá um tiro no escuro)
O analista documenta pois não sabe implementar¹

Quem não usa ágil dá um tiro no escuro
E como a maré, os requisitos sempre mudam
E o cliente então, bate a cara contra o muro

(Quem não usa ágil dá um tiro no escuro)
Pra erro bobo corrigir, pair programming eu vou fazer
(Quem não usa ágil dá um tiro no escuro)
E vou trocar conhecimentos, todo dia aprender
(Quem não usa ágil dá um tiro no escuro)
CMM é o caramba a parada é XP
(Quem não usa ágil dá um tiro no escuro)
Pra que tanto documento se eu tenho BDD

Quem não usa ágil dá um tiro no escuro
E como a maré, os requisitos sempre mudam
E o cliente então, bate a cara contra o muro

¹ Para a grande maioria, isto é verdade. Porém, existem aqueles que encontram o caminho da luz.

Para quem não lembra: música e letra original.

Quem achar que pode melhorar a letra, manda um comentário e a gente vê como fica! =)

Vou ver se gravo uma versão, com a ajuda de alguns amigos, e posto aqui o resultado.

Update (03/08/10): Como prometido acima, aqui está a música! =)

Nota: Este post estava no meu blog antigo e não tive como trazer os comentários. Além dos elogios de Eduardo Hertz, Rogério Atem, Tarsis Azevedo, Lucas, Lucas Fernandes, Cássio RS, Rodrigo Pinto, Marcos Bernardo, Alisson Sales, Michel Amaral, André Faria Gomes, Eberson Pereira, Bruno Marota, Ahdail Netto e Henrique Bastos, destaco alguns:
  • Hugo Lopes Tavares

    Ficou simplesmente foda :)
    Parabéns!

    Eu tenho um patch:

    --- original 2010-04-26 23:13:50.000000000 -0300
    +++ patch 2010-04-26 23:14:33.000000000 -0300
    @@ -9,7 +9,7 @@
    (Quem não usa ágil dá um tiro no escuro)
    O analista documenta pois não sabe implementar¹
    Quem não usa ágil dá um tiro no escuro
    -E como a maré, muitos requisitos mudam
    +E como a maré, os requisitos sempre mudam
    E o cliente então, bate a cara contra o muro

    (Quem não usa ágil dá um tiro no escuro)
    @@ -22,5 +22,5 @@
    Pra que tanto documento se eu tenho BDD

    Quem não usa ágil dá um tiro no escuro
    -E como a maré, muitos requisitos mudam
    +E como a maré, os requisitos sempre mudam
    E o cliente então, bate a cara contra o muro

  • Vinícius Manhães Teles

    Absolutamente sensacional!!!!

    Parabéns!

    Grande abraço,

    Vinícius Teles.

  • Ricardo

    Parabéns! Muito criativo mesmooooo...

    Sugiro trocar: "Pra erro bobo corrigir, pair programming eu vou fazer"
    Pra: "Pra tempo economizar, pair programming eu vou fazer"

    e

    De: "CMM é o caramba a parada é XP"
    Pra: ???

    Creio que não é bom rivalizar o XP com o CMM.. existe um meio termo entre os dois que não será Agile como o XP e nem tão burocrático quanto a maioria das implementações CMM. E começando assim, mesmo ainda com o CMM, a empresa pode ir melhorando rumo à um Agile mais pleno e maduro.

    Grande Abraço

    Ricardo

  • Hugo Maia Vieira

    Valeu pelos elogios pessoal! =)

    Hugo:

    Feito merge!

    Ricardo:

    Tentei preservar a sonoridade da música original e a forma como você colocou foge um pouco e fica meio estranho para cantar. Veja:

    Original: É tanta coisa no menu que eu não sei o que comer
    Sua: Pra tempo economizar, pair programming eu vou fazer

    Quanto à segunda colocação, a intenção é criar questionamentos e ser divertido e não rivalizar =)

    O pessoal do NSI se mobilizou e vamos gravar uma versão. Assim que estiver terminada postarei aqui no blog.

    Abraço à todos!

  • Marcus Rodrigues

    Caríssimos,

    Interessante a versão... bem bolada! Mas permitam-me um comentário. Mas antes, uma citação:

    “Bem-aventurados os que não viram e creram.” João 20:29b

    Ou trazendo para o nosso tema... Felizes os que enxergam mesmo no escuro ;-)

    Interessados em desenvolver a "arte" de atirar no escuro, convido uma leitura sobre o SCRUMMI: http://www.scrummi.com.br/

    O Scrummi é um processo para gerenciamento ágil de projetos que foi desenvolvido como resultado de projeto de pesquisa do mestrado de Ana Sofia Marçal, visando combinar práticas do método ágil Scrum com práticas das áreas de processo de gestão do CMMI.

    Atirar no escuro é possível, e totalmente viável ;-)

    Forte abraço,

    Marcus Rodrigues, PMP, MSC ;-)

  • Luiz C. Parzianello

    Hugo, realmente ficou bem criativo e engraçado! Parabéns! Mas também vou tomar a liberdade de deixar algumas sugestões de refactoring para sua letra:

    1) Substituir "usa ágil" por "pensa ágil". Fica coerente com a sonoridade e vai mais ao encontro com aquilo que pregamos. O próprio David Hussman tem batido na tecla de parar de dizer que fazemos ou usamos Métodos Ágeis. Isso faz pensar em processo novamente acima das pessoas e interações. O processo que temos que pensar é o do pensamento ágil.

    2) Concordo que inserir CMM na letra gera um desconforto para muita gente. Evite aquilo que não se quer e foque mais naquilo que queremos. Uma sugestão, dado que estás explorando mais XP:

    Substituir: "CMM é o caramba a parada é XP"
    Por: "E com o produto integrado, mais valor nós vamos ver"

    Combina com a frase original do Raul e tira o CMM :-)
    "Só com a praia bem deserta que o sol pode nascer"

    Meus 2 cents!

  • Cristiano Teles

    Pô muito boa a ideia, acabei de ouvir a música e achei muito boa.
    Poderia fazer referência desse post com a música gravada ;)
    Já que pesquisando pelo nome da música cai aqui.

    Valeu

[ ]'s

quinta-feira, 22 de abril de 2010

Vamos instalar e configurar o Git?

Git é um sistema de controle de versão gratuito e opensource. É muito simples de manipular e foi projetado para ser usado desde pequenos projetos individuas até grandes projetos com diversas pessoas, com grande velocidade e eficiência.

Para instalar o git rode no terminal (Ubuntu):

$ sudo apt-get install git
A configuração do git fica guardada no arquivo .gitconfig na home do usuário. Você pode configurar o git editando esse arquivo manualmente, porém, recomento usar o comando git config pelo terminal que editará o arquivo pra você, e irá manter o padrão correto de configuração do arquivo.

Para manter a configuração de todos os seus projetos a mesma, utiliza-se o argumento --global.

Usuário


As configurações do usuário são importantes para identificar quem fez as alterações nos arquivos. Para quem usa o github, o e-mail configurado aqui deve ser o mesmo cadastrado no site, para que ele te identifique e relacione seus commits a você, além de colocar as informações cadastradas no gravatar, como sua foto.

$ git config --global user.name "Hugo Maia Vieira"
$ git config --global user.email "hugomaiavieira@gmail.com"

Cores


O uso de cores facilita bastante quando você vai ver alguma informação. Para facilitar a visualização do branch, diff, grep e status você pode ativar o uso de cores para esses comandos do git.

$ git config --global color.ui auto
Assim, ao rodar o git status, por exemplo, você vai ver os arquivos modificados adicionados e não adicionados ao commit em verde e vermelho respectivamente.

Editor


Ao fazer qualquer interação que precise de alguma entrada de texto, por exemplo um commit, o editor que você configurar aqui será aberto para você escrever, neste caso, a descrição do que foi alterado. No meu caso eu uso o vim.

$ git config --global core.editor vim

Abreviações/Apelidos


Algumas pessoas preferem usar abreviações em vez de digitar o nome do comando inteiro. Eu particularmente acho desnecessário, pois o comandos são curtos e o tab também ajuda bastante, mas para quem gosta ai vai um exemplo no estilo SVN

$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.co checkout
$ git config --global alias.st status

Essas são apenas as configurações mais básicas. Para mais informações sobre outras diversas configurações existentes veja a documentação.

Nota: Este post estava no meu blog antigo e não tive como trazer os comentários. Seguem o bom comentário que lá estava:
  • Hugo Lopes Tavares
    Aprendi um alias muito interessante com uma apresentação que o Gabriel Lima me enviou por e-mail:

    git config --global alias.gl "log --graph --pretty=oneline --abbrev-commit"
    O que isso fará é um log, mostrando um gráfico com contrabarras e pipes de merges, apenas uma linha com as informações do commit (hash e mensagem do commit) e fará uma abreviação do hash. Assim, um no should-dsl eu tive, entre outras mensagens:

    $ git gl
    * e7ce5fe should.thrown added
    * 5044b8b obsolete comments removed
    * 1bee06e matcher added: equal_to_ignoring_case
    * 2674658 updated version

    Abração!
[ ]'s

sexta-feira, 9 de abril de 2010

Deus e Ruby!

Deus e Ruby

Um bom exemplo do poder de ruby e da lentidão de sua versão 1.8 =)

Estou começando a brincar com o Inkscape. Como tinha a ideia dessa tirinha, resolvi cria-la usando o Inkscape para dar uma treinada. Pretendo fazer outras como esta, se surgirem ideias novas =)

[ ]'s

segunda-feira, 5 de abril de 2010

Novo blog em Django!

Com o intuito de começar aprender Django e aprimorar o CSS, além de outros projetos que tenho em mente e que pretendo colocar em prática durante o ano, comprei o domínio hugomaiavieira.com e contratei um serviço de hospedagem para criar meu novo blog.

Tendo como base o blog desenvolvido durante a leitura do ótimo livro Aprendendo Django no Planeta Terra, alterei e incrementei seu código para chegar a esse blog.

Tenho que dizer que é extremamente legal programar em Django, por ser bem definido, simples e mostrar resultados rapidamente! Outra coisa irada do Django é sua documentação que é muito boa!

Com isso, passei os poucos posts do meu antigo blog do wordpress para este novo blog desenvolvido em Django =)

Vou tentar postar mais esse ano. Já têm várias ideias anotadas no Tomboy, agora é achar um tempinho para escrever. =)
  • Juvencio

    Parabens, tb estou tentando estudar o Python django.

    Onde posso encontra umas videos aulas de Django, poderia me ajudar.

    grato

  • Hugo Maia Vieira

    Juvencio,

    A documentação do Django é muito boa e grande parte dela está em português também. Acredito que este seja o melhor material. Tem um Tutorial muito bom.
    Outra boa referência é o livro Aprendendo Django no Planeta Terra.
    Com vídeo aulas eu não posso te ajudar, pois nunca procurei. O google vai ser mais prestativo que eu nesse sentido :)

    Abraço!


[ ]'s

domingo, 4 de abril de 2010

Refactoring script html-characters

Quem desenvolve para web sabe que é um saco ter que ficar colocando &aacutE; ao invés de á, por exemplo, para não ter problemas com a codificação.

Como tive esse problema recentemente, adicionei ao projeto Refactoring scripts o html-characters.sh, que troca caracteres especiais da língua portuguesa por seus respectivos códigos html. O script informa os caracteres encontrados em cada arquivo que foi modificado.

Lembre-se de rodar esse script apenas para os arquivos de, por exemplo, templates (django) ou views (rails), para não modificar arquivos que nada tem a ver com o assunto.

O legal é que você pode escrever a vontade, sem se preocupar com os acentos e rodar o script antes de fazer o deployment (ainda mais se for automatizado).

Informações mais detalhadas:

$ ./html-characters.sh --help
[ ]'s