terça-feira, 17 de abril de 2007

Livros do O'Reilly online

O post de hoje será bem breve, porém bastante útil.
Um grande amigo do trabalho me mostrou esses dias um link direto prum site contendo alguns títulos do O'Reilly sobre Unix. Me senti quase na obrigação de compartilhar esse link com a vocês. Que aliás coloquei no meu del.icio.us também. Você, geek aficcionado por informação, have fun! :-)

domingo, 15 de abril de 2007

Which Superhero are you?

Espantosamente eu sou parecido com meu super-herói favorito. With great power, comes great responsability... :-)

--

Your results:
You are Spider-Man
Spider-Man
80%
Superman
70%
The Flash
70%
Catwoman
65%
Green Lantern
65%
Iron Man
65%
Robin
55%
Supergirl
50%
Batman
35%
Wonder Woman
30%
Hulk
20%
You are intelligent, witty,
a bit geeky and have great
power and responsibility.
Click here to take the "Which Superhero are you?" quiz...

Smart Keywords: Agilize suas buscas no firefox

Smart Keywords no Firefox. Taí uma funcionalidade que eu vejo pouca gente usando. Um monte de gente sempre sabe dos ctrl+k ou do ctrl+l, mas smart keywords é díficil eu ver alguém usar. Eu mesmo passei a usar a pouco tempo. E já digo, facilita pacas a vida.

O que é?
Smart Keywords são bookmarks que você cria no seu Firefox e associa à uma palavra chave. Para acessar a URL basta digitar a palavra chave associada e pronto. Nada de http://z3r00.blogspot.com/, apenas z3r00 já bastaria. E não apenas isso, o mais fantástico é poder criar um bookmark com uma busca pré definida, assim ao chamar a palavra chave passando um parâmetro a URL é traduzida e a busca é realizada! Confuso? Vamos direto ao ponto:

Como funciona?
Vá ao seu Firefox e crie um bookmark manualmente. Isso significa ir ao menu Favoritos -> Organizar. Clique em Novo Favorito e preencha como no exemplo:

Nome:BtJunkie Search
Endereço:http://btjunkie.org/search?q=%s
Palavra-chave:bt

Explicando:
Veja que no endereço eu coloquei a URL do site como se estivesse fazendo uma pesquisa pela string %s. Esse é o ponto chave da jogada. Você simplesmente coloca um %s onde haveria a string de consulta e na hora de chamar a palavra chave na barra de endereços você simplesmente digita:

bt linux

e a URL será automaticamente traduzida para:

http://btjunkie.org/search?q=linux

Simples, fácil e rápido.
Enjoy!


sábado, 24 de março de 2007

Dicas legais de programação usando vim: Vim-tips parte 1!

No meu trabalho, temos uma comunidade bastante grande que usa Vim e por isso acumulamos várias dicas úteis. Vou tentar escrever por aqui (dividindo em alguns capítulos) algumas features que usamos e achamos bastante produtivas e úteis.

Lembra daquelas IDEs de desenvolvimento cheias de features para debug que você já usou? Nenhuma fica atrás do Vim. O Vim possui algumas features não muito famosas porém que são extremamente úteis na hora de debugar ou seguir declarações de funções. Vou listar aqui algumas coisas interessantes que achamos.


Ctags, rastreando declarações de funções e identificadores.

Por vezes você estará em um ambiente de código fonte que você não conhecerá exatamente todas as funções ou variáveis. Um projeto que veio de outra pessoa ou até mesmo um computeiro de software livre contribuindo com a comunidade não tem obrigação de conhecer todo o sistema.

Instalando ctags em seu sistema Linux: Será fácil. Algo como um "./configure && make && sudo make install" não resolva. Ou então "apt-get install ctags" e até mesmo "emerge ctags" deve ser bastante útil dependendo da sua distro :-)

Direto ao ponto: Vá ao diretório raiz de seu projeto e digite:

$ ctags *.[ch] -R # no caso de ser um projeto desenvolvido em C

Você estará criando um arquivo de tags lendo palavras-chave percorrendo seus arquivos .c e .h recursivamente (-R). Isso irá criar um arquivo "tags".

Para usar ctags dentro do Vim, entre em modo de comando e coloque seu cursor sobre uma função ou uma variável e aperte:

Control+]

Pronto você pulará diretamente para a declaração da função! Amazing! :-P Para voltar a ver o arquivo que você estava editando, aperte:

Control+T

Ah! Mas você não quer deixar de ver o arquivo que você está editando enquanto navega pelas tags?

Control+W_Control+]

Isso splittará a janela em duas horizontalmente.


Identificando funções e variáveis sem instalar nada a mais no seu Vim.

Em algumas situações, esta feature é bem mais interessante e útil do que ctags. Mas apenas em algumas situações. Entre em modo de comando e posicione o cursor sobre uma função ou variável que deseja descobrir a declaração e aperte:

Control+W_

Você splittará a janela em duas horizontalmente e pulará para a declaração. Se for uma função, irá para o header (.h). A vantagem de usar Control+W_ é que você poderá ver declarações mesmo em funções da glibc: malloc, printf e afins.

Espero que sejam úteis as dicas. Aguardem que ainda tem mais!

sexta-feira, 16 de março de 2007

Consultando bases científicas no conforto de seu lar com OpenSSH

Fontes de pesquisa científicas como os Periódicos da Capes, Web of Science e IEEE são normalmente pagos (e muito bem pagos) pelas universidades para manter o acesso livre aos seus alunos. Entretanto esse acesso é restrito apenas para o range de IPs dos computadores de dentro da faculdade. Logo, se você mora longe, está com preguiça ou simplesmente não pode ir à faculdade para fazer suas pesquisas, você está é fod...

Já faz um tempo que venho pensando nisso. Levantar um proxy no servidor da faculdade seria uma boa, mas para isso tinha que ter permissões de root, blá blá blá, não ia rolar. Heis que hoje, ao contar minha idéia a um grande amigo meu, tivemos uma idéia bastante interessante e simples. E depois de alguns minutos googleando e fazendo alguns testes, we just made it!

Ok, chega de suspense e vamos direto ao assunto. Abra uma conexão com um servidor Linux da sua faculdade fazendo um bind na porta 9999:

$ ssh -D 9999 user@server

O que você fez foi apenas dizer ao cliente SSH que fique escutando por conexões na máquina local na porta 9999. Quando alguma aplicação estabelece essa conexão na máquina local e nessa porta, o cliente SSH encaminha os pacotes aravés da conexão segura até o servidor onde você fez login, e de lá ele sai. Atualmente o bind (-D) suporta os protocolos SOCKS4 e SOCKS5, se portanto irá atuar como um servidor SOCKS.

Depois configure no seu navegador predileto o servidor Socks v5 para localhost e a porta para 9999. Voalá! Você pode navegar pelos melhores acervos de pesquisa (pagos) no conforto de seu lar.


terça-feira, 27 de fevereiro de 2007

Vim e diffsplit: Diversão garantida programando!

Acredito que muitos de vocês conhecem o comando diff. Ele mostra a diferença entre dois arquivos em uma forma não muito fácil de se ler. Seu formalismo as vezes pode confundir e dificultar naquela hora de pegar um bug chato. Eu mesmo não entendo muito bem como diff funciona :-\ , pensei então em fazer algo mais visual e legível. Você, leitor computeiro, já vai pensar: Mas tem o tkdiff! O gtkdiff! O kdiff! O insira_aqui_sua_lib_predileta_diff... Muitos deles! Mas, já que estamos com o vim aberto, vamos aproveitar e fazer algo de útil por aqui mesmo, nada de mouses! :-P Just screen!

Primeiro vejamos as diferenças entre os arquivos exemplo manualmente:

otubo@lisa /tmp/example $ cat helloworld.c
#include
int main(){
printf("Hello World!!!\n");
return 0;
}

otubo@lisa /tmp/example $ cat helloworld2.c
#include

int main(){
printf("Hello Vimmers!!!\n");

return 0;
}
Agora, vamos editar helloworld.c. Uma vez dentro do ambiente vim, entre em modo de comando e digite:

:vert diffsplit helloworld2.c

Você deve ver algo assim:
Como você pode ver, as diferenças entre os arquivos são completamente gráficas e fáceis de vizualizar :-) Obviamente, nosso exemplo não mostra todo o poder real que essa ferramenta possui, mas quando estiver trabalhando com projetos grandes, complexos e cheios de bugs malas a serem rastreados, verá que será um grande amigo.