Pages

Saturday, April 29, 2006

Envie e-mails do Firefox com o KMail

Esse é um problema para o qual eu buscava uma solução a muito tempo.
Ao clicar links de e-mail ( mailto: ) o Firefox nunca abre o aplicativo que eu uso: o KMail. Assim como o "Send Link" não abre o KMail para enviar o e-mail com o link da página atual. Aliás, no meu computador ele não faz nada já que não tenho o Thunderbird instalado.

Para mudar isso, localize o diretório de configuração do usuário, alguma coisa como:
/home/[$USER]/.mozilla/firefox/[letras-numeros-aleatorios]/

Dentro deste diretório, crie ou edite o arquivo user.js e acrescente as linhas:

// Usando o KMail para links de e-mail
user_pref("network.protocol-handler.app.mailto","kmailservice");

A primeira linha é apenas um comentário, a segunda implementa a modificação. Salve e feche o arquivo user.js e reinicie o Firefox.

Agora basta testar... todos os serviços de e-mail estão configurados para usar o KMail.

Eu obtive essa dica do post: Send email from Firefox with KMail

Technorati Tags:

Melhorando as buscas com o apt-cache

Para quem não conhece, o apt-cache é um pequeno utilitário que permite, entre outras funções, fazer buscas por determinados aplicativos em repositórios (seja Debian, Ubuntu ou outros).

Dessa forma, para realizar uma busca por um pacote, exemplo, firefox, usamos:

apt-cache search firefox

Receberá como resultado todos os pacotes cuja a palavra firefox esteja relacionada com o nome do pacote ou com a descrição. É possível limitar a busca aos nomes do pacotes apenas, mas nesse caso, pacotes como mozilla-acroread, que não possue a palavra firefox no nome ficam de fora da busca. Muitas vezes esse pacotes excluídos são exatamente o que estamos procurando.

Como melhorar a busca sem restringir ela aos nomes dos aplicativos ?

Bem, pode ser que exista várias formas de fazer isso, eu uso o sed e/ou o grep
Voltando ao exemplo, quero fazer uma busca aos pacotes relacionados com o firefox, mas não quero as definições de locale.

Nesse caso, usaríamos:

apt-cache search firefox|sed "/locale/d"

Observe que o resultado oculta todos os pacotes que possuem o termo locale na descrição ou nome de pacote.

Se ao contrário, quisermos exibir apenas os pacote de locale do firefox podemos usar:

apt-cache search firefox|grep -i "locale"

onde a opção -i é para o grep não diferenciar maiúsculas de minúsculas. Observe que o resultado dessa busca retorna apenas os pacotes com locale no nome ou na descrição (Nesse exemplo, apenas no nome).

Esse exemplo é bem simples e ilustrativo, mas você pode dispensar o uso de filtros na busca. Tente localizar todos os pacotes relacionados com uma determinada função, por exemplo, plot.

Verá que existe uma diferença muito grande em utilizar :
apt-cache search plot

E utilizar :
apt-cache search plot|sed "/^lib/d"

Aliás, usar sed "/^lib/d" é uma boa idéia na maior parte das buscas, pois dificilmente um pacote que inicie o nome com lib ajuda alguma coisa para descobrir um aplicativo qualquer - lembre-se que dificilmente não é impossível.


Technorati Tags:

Thursday, April 27, 2006

Baixando todos os arquivos de um tipo de uma URL

O Davidson publicou uma dica muito interessante sobre como baixar todos os arquivos .tgz de um dos mirros do FreeRock GNOME, essa dica você lê aqui.

A minha dica é mais lenta, usa mais comandos, depende de mais softwares, é mais complicada, mas é muito fácil de adaptar para qualquer link. A dica do Davidson também pode ser adaptada a qualquer link, mas deve ser "percebido" qual a expressão deve entrar no comando sed. Se você consegue gerar a expressão para o sed (pode tentar, não deverá ser difícil!), use a dica dele. Do contrário, você terá duas opções: aprende a usar expressões regulares ou procurar outra solução. Foi exatamente nesse ponto que gerei esse post.

Eu gostaria de fazer uma coisa semelhante a ele, gostaria de pegar todos os arquivos .pdf de uma página que não tinha acesso ao servidor X (Eu não tinha lido a dica dele ainda).

A primeira solução a esse problema é uma simples extensão do Firefox: DownThemAll!

Todos os seus problemas se resolvem em dois cliques. A versão atual dessa extensão está muito desenvolvida. Mas existe dois contras: deve usar o Firefox. Eu uso o firefox e a extensão e não tenho nenhum problema com esse item, mas o deve no começo da frase deve fazer muita gente torcer o nariz. E deve ter acesso ao modo gráfico, ou seja, não é possível fazer isso por linha de comando. É nesse ponto que eu torço o nariz, como disse anteriormente, eu estava sem acesso ao terminal X (para ser exato, estava por ssh, eu até poderia usar o firefox, mas digamos que isso é meio lento). Além disso, nada se compara com a leveza e a velocidade da linha de comando.

Bem, como fazer em linha de comando o que o DownThemAll! faz em modo gráfico ?

Você pode usar a dica do Davidson e modifica-lá adequadamente. Como disse, se tiver alguma prática com expressões regulares isso não deve ser problema, mas para quem está começando agora com o linux e/ou não tem tempo para (ou não quer) aprender a usar expressões regulares, essa dica fica um pouco difícil.

O que apresentarei aqui é uma forma diferente de gerar a lista de urls existentes em uma página web, ou seja, vamos gerar um arquivo .txt com todos os links que desejamos baixar e usar com wget para baixar os arquivos.

Uma vez gerada o arquivo de urls lista_de_urls.txt, vamos baixar o arquivo usando:

wget -i lista_de_urls.txt

Não é preciso usar nenhuma outra opção, porque o arquivo lista_de_urls.txt possuí a url inteira de cada arquivo.

Para essa tarefa vamos usar: lynx, cut, grep, além do wget para baixar os arquivos.
Observe que a dica do Davidson usa apenas o sed, além do wget.

Sendo o URL um endereço qualquer.
Usamos o comando:

lynx -dump URL|grep "http://"|cut -b 7-|grep "pdf$" > lista_de_urls.txt

Explicando: -dump faz o lynx converter um arquivo html em formato de texto padrão, nesse processo ele gera uma lista com todos os links existentes na página no final do arquivo, para filtrar apenas esses links redirecionamos a saída do lynx para o comando grep filtrando exatamente o que é http://. Na lista gerada pelo lynx existe alguns caracteres inicias reservados para numeração dos links, na versão do lynx que eu uso, até o 7 caracter de forma reservada a numeração. O comando cut -b 7- está cortando e "exibindo" apenas as urls, ou seja, se desfazendo da numeração.
Por fim, vamos filtar de todos os endereços existentes aqueles que tem o que nós queremos baixar. No meu caso, os arquivos "pdf", daí o grep "pdf$", poderia ser os arquivos tgz ou qualquer outra extensão. O caracter $ serve para dizer que a linha deve terminar com a expressão pdf (ou a desejada), sem essa linha filtra-se todos os arquivos que possuam a expressão pdf no link, como um arquivo html com o nome: arquivos-pdf.html. Por fim geramos um arquivo .txt com todos os links para usar com o wget.

Observe que o comando é longo mas é quase imutável. Modifica-se apenas a URL e a extensão desejada. Dessa forma é muito fácil gerar uma lista para qualquer url.
Deve ter ficado claro o porque da dica do Davidson ser muito mais rápida (eu comparei usando o exemplo que ele forneceu), além de baixar e decodificar a url, ainda temos que "varrer" o arquivo três vezes, no mínimo. No outro caso, temos apenas que baixar o arquivo e "varrer" ele apenas uma vez, ou seja, muito mais rápido. Essa diferença é perceptível até em listas pequenas e pode ser sensível em listas grandes.

Eu esqueci de dizer: como é impressionante que duas pessoas tenha trabalhado no mesmo assunto com tão pouco tempo de diferença, estava para publicar esse tópico quando vi a dica dele, aí eu reescrevi para ficar mais consistente com as informações anteriores existentes.


Technorati Tags:

Wednesday, April 26, 2006

Quantos blogues você ficou conhecendo nas últimas semanas?

Peço licensa ao Marcelo para pegar emprestado o título do post dele. A pergunta que ele fez, hoje, eu refaço a aqui neste post. Quantos blogues você ficou conhecendo essa semana ?

Tudo começou em algum lugar (teria sido aqui ?) e se alastrou. Duvido que alguém que leia blogs que certa freqüência ainda não tenha encontrado pelo menos um post mencionando a "blogosfera Brasileira" é uma "senhora" discussão de muitas mensagens de todos os tipos em muitos lugares.

Até o momento me mantive calado, mas isso devido a falta de tempo, não falta de opinião. Bem, eu resolvi responder essa pergunta do Marcelo de um jeito diferente.

No Blogroll foi criada uma nova categoria, logo a primeira da lista: "Blogs da Semana"

Justamente para responder a pergunta do Marcelo para a semana futura e enquanto este blog estiver no ar, ou seja, essa categoria será uma espécie de "sala de apresentação" dos blogs novos. Pretendo manter nesse item apenas os blogs pessoais - excluindo planetas e sites de notícias.

Não fiquem pensando que eu esquecerei dessa categoria, caso ela fique parada é por que eu não conheci blogs novos (algo possível) e não por que abri mão de usá-la.

Vale lembrar que eu costumo tratar blogs internacionais da mesma forma que tratos os nacionais, pelo conteúdo, apenas pelo conteúdo. A pergunta, apesar de não ser excludente, certamente apontava para uma pergunta do tipo: Quantos blogs Brasileiros você conheceu essa semana ?

Minha idéia é dividir os Blogs em duas categorias: Nacionais e Internacionais (o que incluiria os Portugueses), quando isso acontecer - e vai, em muito breve - os Blogs da Semana serão subdivididos em algo do tipo "Blogs Nacionais da Semana" e "Blogs Internacionais da Semana".

Espero que essa nova categoria possa facilitar a vida de quem não consegue perceber os novos links no meio de uma lista de blogs tão longa - eu só não tenho essa dificuldade por que a lista é minha, mas outros dificilmente saberiam me dizer quantos blogs novos estão nessa lista de blogs ao lado, não importando o tempo que acompanhe a mesma.

O lado ruim desse método é que ele não destacará os resultados no meio de um post, como fez o Marcelo ao fazer a pergunta dele, mas estou pensado em uma solução para esse problema acoplando tags do del.icio.us ao blog.

Technorati Tags:

Thursday, April 20, 2006

Por que eu uso um Anti-Vírus no linux ?

Durante as últimas semanas uma dezena - para não dizer uma centena - de posts sobre vírus e linux surgiram na blogesfera, tanto na nacional quanto na internacional. Tudo por causa do vírus que não era vírus. Mas eu não vou falar sobre isso.

Vi muitos comentários nos blogs dizendo que a possibilidade de criar vírus para um usuário linux existe e nem é tão pequena assim. Não sei se é verdade, mas eu não acredito em vírus contaminando um computador com o linux em larga escala. Agora, não há dúvidas de que pelos nossos computadores linux passam uma centena de e-mails com vírus anexados que nós não executamos, nem mesmo repassamos automaticamente por que usamos o linux.

Bem, por que eu uso um Anti-Vírus ?
Simples, por que vírus existem.

Mas eu uso linux! Por que se preocupar com isso ?
Mas simples ainda. Eu uso linux. Não uso o linux como root. Não tenho o sudo ativado. Mas eu me comunico por e-mail e quem recebe meus e-mails não necessariamente usam linux.

Eu não quero responder perguntas polêmicas do por que alguém usa o "Windows", ou pior, por alguém ainda usa o "Outlook Express" e não usa um bom anti-vírus no computador ou por que alguém faz tudo isso de livre e espontânea vontade. (Eu realmente não entendo por que alguém ainda usa o "Outlook Express").

O fato é: existem pessoas que usam Windows com o Internet Explorer, o Outlook Express ou até mesmo o Microsoft Outlook.

Bem, onde eu entro nessa história ?
Certo dia baixei um arquivo .doc da internet - era um artigo disponibilizado no site dos autores. Abri o .doc e vi que o assunto era realmente interessante e resolvi que mandaria o arquivo para outras pessoas, passei o anti-vírus e para minha surpresa o arquivo estava contaminado.
Agora, imagina a minha cara quando tivesse que pedir desculpas por ter enviado o arquivo com vírus? Dificilmente alguém seria infectado com aquele vírus, era um vírus de macro desses que qualquer anti-vírus pega, mas ainda assim seria humilhante ter repassado aquele arquivo para dezenas de pessoas e com um vírus.

Esquecendo a parte do "humilhante", pensa apenas no drama. Se o vírus contaminasse algum computador de alguém desprevenido as coisas teriam outras conseqüências, como perda de arquivos e outras coisas - tá ele merece, usa o Windows, o Outlook Express e ainda assim não usa um anti-vírus, mas isso não muda a tragédia, muito menos o prejuízo.

Voltando a pergunta: Por que eu uso um Anti-Vírus ?
Porque vírus existem e eu não quero que eles prejudiquem quem quer que seja.
Uso um anti-vírus por respeito a pessoas com quem convivo e me comunico eletronicamente todos os dias. Algumas dessas pessoas eu nem conheço pessoalmente e nem sei se usam Windows ou Linux.
Não uso um anti-vírus porque tenho medo de ser contaminado ou porque quero preservar o meu linux, mas por causa desse simples respeito as demais pessoas.

Minha solução : Eu uso o ClamAV atualizado - recomendo pegar a versão mais atual no site e compilar - no meu desktop pessoal com o Ubuntu instalado e tenho o KMail configurado para verificar cada e-mail que recebo com o anti-vírus.

Technorati Tags:

Wednesday, April 19, 2006

Arquivo ~/.colourrc

Não é difícil descobrir pessoas interessadas em mudar as cores da saída do comando "ls --color=auto". Bem, eu também procurei por isso. Particularmente o Ubuntu (recém instalado no meu computador) não estava destacando em vermelho os arquivos compactados. Como eu gosto dessa configuração, eu fui procurar na rede como personalizar as cores.

Achei um link definitivo. Um HowTo da ibiblio.org, efim, quem quiser pode ir ler a informação original, possui muitos detalhes interessantes que eu não usei e não explico aqui, mas resumidamente o processo constitui em declarar uma variável no sistema: a LS_COLORS.

A forma mais fácil de fazer isso é criando um arquivo ~/.colourrc.
Antes de qualquer coisa precisamos de um arquivo básico (para não criar toda a configuração do zero) e obtemos esse arquivo básico com o comando:

dircolors -p >~/.colourrc

Para me ajudar na explicação, eu reproduzo uma parte do arquivo abaixo

# Configuration file for dircolors, a utility to help you set
# the LS_COLORS environment variable used by GNU
# ls with the --color option.

# The keywords COLOR, OPTIONS, and EIGHTBIT
# (honored by the slackware version of dircolors) are
# recognized but ignored.

# Aqui vem declarado todos os terminais na qual as cores
# funcionam é claro que são mais de dois... eu é que
# cortei o resto desse exemplo
TERM linux
TERM xterm

# Abaixo está algumas dicas de como personalizar as cores
# e estilos.
# Mudar as cores significa modificar os códigos numéricos

# Attribute codes:

# 00=none 01=bold 04=underscore 05=blink
# 07=reverse 08=concealed

# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue
# 35=magenta 36=cyan 37=white

# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue
# 45=magenta 46=cyan 47=white


NORMAL 00
FILE 00

DIR 01;34 # destaque para os diretórios
LINK 01;36 # Link simbólico
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
EXEC 01;32 # com permissão de execução

# Abaixo está um dos itens mais interessantes
# permite personalizar as cores de links inválidos
# abaixo está:
# fundo preto (40) com letras vermelhas (31)
# e em negrito (01)
# eu modifico a cor do fundo para amarelo,
# (43) no lugar de (40)
ORPHAN 40;31;01


# Abaixo as personalizações por tipo de arquivo
# cada extensão está seguida por um código
# que é a cor e estilo que o comando retorna para o arquivo
# Podemos, por exemplo, diferenciar o .deb do .rpm
# verá que a lista gerada pelo comando acima é bem
# maior que essa.
.tar 01;31
.deb 01;31
.rpm 01;31
.jar 01;31

# aqui tem outra coisa interessante,
# imagens, vídeos e arquivos de som tem a mesma cor
# e estilo.

# image formats
# Não está errado, ele chama de "image formats"
# tanto as imagens como os vídeos
.jpg 01;35
.avi 01;35

# audio formats
.mp3 01;35
.wav 01;35

Pode pegar o meu ~/.colourrc para servir de exemplo. Esse não muda muita coisa, mas já é diferente do default.

Bem, agora que temos o ~/.colourrc temos que carregar as variáveis de ambiente e fazemos isso através do comando:

eval $(dircolors ~/.colourrc)

Esse comando deve ser executado cada vez que o shell for aberto, nesse caso, eu coloquei no meu ~/.bashrc (a versão do ~/.bashrc disponível no blog ainda não tem isso incluso)

Considerações gerais:
  • É claro que muita coisa pode ser feita com base nessas idéias, a que eu sempre me lembro é que ao invés de usar um ~/.colourrc eu poderia usar um /etc/colourrc, ou seja, definir cores e estilos para todos os usuários programando o /etc/bashrc.
  • Saiba .wav é diferente .WAV ou de .WaV.
  • Só por curiosidade, depois de "instalar" o seu ~/.colourrc digite "echo $LS_COLORS".
  • O nome do arquivo pode ser outro, um .coresrc ou um .cores, o importante é que a chamada de "eval $(dircolors ~/.colourrc)" referencie o arquivo correto no local correto. Eu diria que é interessante que ele seja oculto, essas coisas podem ficar a critério de cada um.
  • Caso exista um ~/.colourrc na sua distro é melhor fazer um backup do arquivo antes.

Technorati Tags:

Saturday, April 08, 2006

Sistema de busca no blog

Acabo de implementar um sistema de busca no blog. Eu estava para fazer isso a muito tempo, desde que precisei de 10 minutos para identificar uma informação no meu próprio Blog.

O sistema foi implementado usando o Google. Ainda não descobri como fazer para postar códigos no blog sem ter que editar todas as tags manualmente (do contrário elas são interpretadas ao invés de publicadas), mas se alguém quiser o código é só me pedir por e-mail.

[update]
Eu não criei o script, apenas copiei do Google (fornecido pelo Google), mas como eu esqueci de onde foi (perdi o link exato, para ser mais preciso), não posso referenciá-lo aqui, mas o código eu ainda tenho, é claro.
[/update]

Technorati Tags:

Tuesday, April 04, 2006

Google Page Creator

Testado e Aprovado !

O Google Page Creator me impressionou! Ok! Ainda é beta! Ainda têm muito que melhorar! Mas é muito bem feito ! Existe 100 MB de espaço. Não tem propaganda (nenhuma!!!) e possui um dos editores on-line mais rápidos que eu já vi até hoje (Tecnologia AJAX com certeza!). Possui uns 20 templates diferentes e vários layouts. Ainda não mechi muito. Mas deu para perceber que é muito fácil gerenciar home pages pessoais.

Agora é esperar para ver o lançamento oficial (ou pelo menos até muita gente poder pegar o seu domínio) para ver o qual será a reação dos concorrentes. Espero que seja tão boa para nós, usuários, como foi a revolução trazida pelo GMail.

Veja minha modesta Home Page (só tem ela mesma, nem adianta procurar por outros links!). Futuramente eu vou incrementar lugar, bookmarks em web pages, diponibilização de arquivos (textos em PDF), currículo... tudo que eu sempre desejei e um blog nunca foi capaz de me dar!

Technorati Tags: