Tutoriais, Dicas

Como extrair o arquivo PDF original de arquivos .pdb gerados para o Palm

Uma das coisas chatas do computador de mão da Palm (o famoso Palm Pilots ou handheld) era que pra poder ler arquivos PDF nele era necessário rodar uma versão especial do Adobe Acrobat para que o arquivo original fosse convertido para um formato reconhecido pelo dispositivo. Esse arquivo ganhava a extensão genérica de documentos do Palm (.pdb) e, aparentemente, não poderia ser "revertida" para o arquivo PDF original. Eu nunca consegui entender muito bem a necessidade dessa conversão, especialmente porque existe uma versão do Xpdf feita exatamente para abrir esse formato de arquivo no Palm (chamada de PDFmob), sem a necessidade de nenhuma conversão. Coisas da Palm e da Adobe...

Pois eu me deparei justamente com o problema de ter que recuperar um arquivo PDF que estava encapsulado em um .pdb. Depois de alguma pesquisa, descobri que alguns programas poderiam fazer isso, mas nenhum deles era para GNU/Linux. Então eu encontrei, nesta publicação de fórum, uma forma simples e fácil de fazer o trabalho. Uma vez que o arquivo .pdb é o PDF encapsulado com algumas informações extras, basta abrir o arquivo em um editor hexadecimal e extrair somente a "parte PDF" dele, ignorando todo o resto.

Para fazer isso, você vai precisar de um editor hexadecimal (eu usei, no KDE, o Okteta). Abra o arquivo .pdb nesse editor e procure pela seguinte sequência (em hexadecimal): 25 50 44 46 2D. Essa é a sinalização de início do arquivo, que, traduzida para caracteres, significa "%PDF-" (no Okteta é possível procurar tanto pela sequência hexadecimal quanto pelo seu correspondente em caracteres). Feito isso, localize a sequência de finalização do arquivo: 25 25 45 4F 46 (que, traduzido, é "%%EOF"). Agora marque todo o conteúdo da sequência inicial à final (incluindo ambas), copie-o e cole-o em um novo documento. E, pra fechar, salve-o com a extensão .pdf. Pronto! O seu PDF acaba de ser recuperado.  Smile

Só tem um porém (claro, sempre tem um). Isso só funciona 100% com documentos que sejam somente texto ou tenham imagens pequenas. Isso porque, quando se tem documentos com formatação mais complexa ou imagens grandes, o conversor para Palm diminui a resolução das imagens para caber na tela do aparelho e pode, também, mudar alguns detalhes na diagramação do documento. Mas sempre vale a pena testar e ver se não atende ao que desejamos recuperar, ok?

O cadastro

Para se cadastrar no identi.ca, em primeiro lugar, clique no link Register. Você será levado para uma tela com as seguintes opções:

Nickname: é o seu nome de usuário. Escolha esse nome com cuidado, pois ele será a sua referência no identi.ca. É esse nome que as pessoas colocarão após o @ para citá-lo ou respondê-lo. Por isso, é interessante que ele seja curto, para não ocupar muitos dos 140 caracteres de limite das mensagens. Podem ser utilizados apenas número e letras minúsculas. O tamanho máximo é de 64 caracteres.

Password: é a sua senha. Escolha uma senha segura, para evitar problemas de segurança. A senha deve ter no mínimo 6 caracteres e podem ser utilizados letras (maiúsculas e minúsculas), números e sinais gráficos. Uma senha segura mistura todos esses elementos.

Confirm: repita a senha digitada anteriormente.

Email: digite o seu endereço de e-mail. Ele será utilizado para lhe informar sobre atualizações e anúncios do identi.ca e para a recuperação da senha. Além disso, caso você configure suas preferências para recebe qualquer tipo de mensagem de e-mail, elas serão enviadas para esse endereço.

Full name: o seu nome completo (ou como você quer ser conhecido). Usar o nome real ajuda caso você deseje ser encontrado na busca por pessoas do sítio.

Homepage: caso você tenha um sítio web, blog, perfil ou qualquer outra referência online, coloque o endereço aqui.

Bio: coloque aqui sua descrição. Como você tem somente 140 caracteres, deve ser bastante sucinto e direto.

Location: a sua localização. O formato recomendável é "Cidade, Estado, País", mas como é um campo livre, você pode preenchê-lo do jeito que quiser. Mais uma vez, é uma opção interessante para ser localizado pela busca do identi.ca.

Remember me: se você deixar essa opção marcada, será salvo um cookie com sua identificação no computador que estiver utilizando. Assim, caso você saia da página do identi.ca (sem clicar no link Logout) e volte novamente, não precisará autenticar-se. Não marque essa opção se estiver utilizando um computador acessível a outras pessoas (como uma máquina compartilhada em casa ou em uma lan house), pois elas poderão entrar no seu perfil sem precisar digitar a sua senha.

My text and files are available under Creative Commons Attribution 3.0 except this private data: password, email address, IM address, and phone number: Esse é um aviso indicando que tudo o que você publicar no identi.ca (com exceção da sua senha, endereços de e-mail e de comunicador instantâneo e número de telefone) estarão disponíveis sob a licença Creative Commons Attribution 3.0. Você só poderá utilizar o identi.ca se concordar com esse termo.

Preenchidos os campos, clique no botão Register e seu cadastro será concluído. Caso não seja encontrado nenhum erro, aparecerá uma nova tela, indicando algumas das opções disponíveis pra você. A partir desse momento você já está autenticado(a) e já pode começar a usar o identi.ca.

Outra forma de se autenticar é através do OpenID. Caso você tenha uma identificação dessas, clique no link OpenID. Preencha o campo OpenID URL com o endereço do seu autenticador e clique em Login. Você será levado à página do autenticador e, após preencher as suas credenciais, voltará para a o identi.ca. A partir daí, você tem duas opções:

  • Criar um novo usuário: preencha o campo New nickname da mesma forma como foi descrito acima o preenchimento do campo Nickname, no cadastro, e marque a opção que você concorda com a liberação das suas mensagens sob Creative Commons (também descrito acima). Assim, um novo usuário será criado para você. Os outros campos devem ficar em branco.
  • Associar o OpenID a um usuário já existente: caso você já tenha criado o seu usuário e deseja adicionar a opção de autenticar-se via OpenID, deixe o campo New nickname em branco e preencha os campos Existing nickname e Password com, respectivamente, seu nome de usuário e senha previamente cadastrados. A partir de agora, você pode usar tanto seu nome de usuário/senha quando seu OpenID para entrar no identi.ca. Um detalhe, caso você tenha mais de um OpenID, você pode associar todos eles à sua conta.

Pequeno manual prático do identi.ca

identi.ca é um serviço de microblogagem gratuito disponível na Internet. Ele diferencia-se de outros serviços de microblogagem (como o Twitter) por ser baseado em um software livre chamado StatusNet (anteriormente conhecido como Laconica). Além disso, todas as mensagens publicadas no identi.ca estão sob a licença Creative Commons Attribution 3.0, o que faz com que o serviço também seja livre. Mais informações sobre o identi.ca podem ser encontradas nessa publicação da teia.

Uma vez que esse serviço não é tão popular quanto o onipresente Twitter, existe pouca referência sobre ele em português. Isso, somado à pressão sugestão do Sérgio Lima (que às vezes funciona como meu superego) me motivaram a escrever esse "Pequeno manual prático do identi.ca", que ganhou esse nome porque a proposta é que ele seja: 1-pequeno e 2-prático.  

Claro que, como tudo o que publico aqui na teia, esse projeto está aberto a críticas, sugestões e colaborações. Então pode ser que ele cresça e fique forte, mas isso é algo que só o tempo dirá.

Além disso, seguindo a máxima do software livre: "libere logo, libere sempre", não vou escrever tudo para publicar de uma "vezada" só. Quem quiser, vai poder acompanhar a proposta sendo estruturada aqui em tempo real (em uma frequência de produção bem aleatória). É quase como se fosse um big brother, só que mais intrutivo e sem ninguém posando pra Playboy no final... 

Portanto, chega de papo e vamos ao manual.

Como atualizar o KDE para a versão 4.3 no Debian Squeeze

DepoKonqui, o mascote do KDEis de me cansar de ver inúmeros comentários maravilhosos sobre o novo KDE no identi.ca, resolvi experimentá-lo em minha máquina. O problema é que uso a versão testing da Debian (atualmente chamada "Squeeze") e os pacotes da versão 4.3 do KDE só estão disponíveis no repositório do unstable. Assim, munido de muita coragem (e ansiedade por experimentar a nova versão) resolvi atualizar o KDE a partir desse repositório. Apresento abaixo uma descrição do que eu fiz para colocá-lo em minha máquina. Atenção!!! Esse processo é bem artesanal e irá acrescentar pacotes do repositório unstable na sua máquina. Isso significa que o seu ambiente gráfico pode se tornar instável após a instalação (tudo bem que isso pode ser revertido voltando à versão anterior do KDE). Funcionou bem comigo, mas isso não significa que irá funcionar bem com você, ok? Além disso, esse não é exatamente um "guia para iniciantes". Quem for executá-lo deve ter um conhecimento mínimo de edição de arquivos do sistema e de funcionamento do aptitude. Bom, feito o meu alerta terrorista, vamos ao que interessa. 

Todos os passos descritos de aqui em diante devem ser realizados como usuário root ou utilizando o comando "sudo" antes dos comandos descritos. Em primeiro lugar, se você instalou o KDE a partir do metapacote kde-full, a primeira coisa a fazer é desinstalá-lo, com o tradicional aptitude:

aptitude purge kde-full --purge-unused

(o parâmetro "--purge-unused" serve para excluir os arquivos de configuração de todas as dependências que serão desinstaladas)

Agora acrescente um repositório unstable ao seu arquivo  /etc/apt/sources.list. Eu gosto do repositório do Instituto de Física da USP, mas você pode usar o que lhe convir. Repare que você não vai substituir o seu repositório testing, mas sim acrescentar o unstable. Veja abaixo de como ficaria um sources.list simples, apenas com as referências aos dois repositórios padrão da Debian.

## Debian Testing
deb http://sft.if.usp.br/debian/ testing main

## Debian Unstable
deb http://sft.if.usp.br/debian/ unstable main

para instalar estritamente pacotes livres. Ou então:

## Debian Testing
deb http://sft.if.usp.br/debian/ testing main contrib non-free

## Debian Unstable
deb http://sft.if.usp.br/debian/ unstable main contrib non-free

caso você não se importe em usar pacotes não livres. Se você é como eu, deverá também ter vários outros repositórios além dos citados acima, mas é importante que pelo menos os citados acima estejam presentes na sua máquina.

Entretanto, se você fizer somente isso, o seu sistema inteiro será atualizado para unstable. E você não vai querer isso, não é? Para evitar esse problema, basta acrescentar algumas linhas no seu arquivo /etc/apt/preferences. É comum que esse arquivo não exista no seu computador. Nesse caso, basta criá-lo. O conteúdo a ser inserido no arquivo é o seguinte:

Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release a=unstable
Pin-Priority: 800

Explicando grosseiramente, o que as linhas acima fazem é informar ao seu sistema que os pacotes do repositório testing tem prioridade sobre os do unstable. Isso garante que ele não irá substituir nenhum dos seus pacotes por um instável. Repare em um detalhe. Os parâmetros "a=testing" e "a=unstable" fazem referência direta ao nome dos repositórios. Assim, se ao invés desses nomes você usou "squeeze" e/ou "sid" no seu sources.list (ou seja, se o seu arquivo não está igual ao exemplo que dei lá no início do artigo), então deve substituir também o "a=" com o valor correspondente, ok?

Após o acréscimo, atualize a base de dados:

aptitude update

Agora vem a pegadinha. Pelo menos até a hora que eu instalei o KDE não existia nenhum metapacote do tipo kde ou kde-full no unstable. Por isso é necessário especificar os pacotes manualmente. A lista de pacotes que eu precisei de instalar/atualizar foi a seguinte:

kdeadmin kdebase kdebase-runtime kdebase-runtime-bin-kde4 kdebase-workspace-kgreet-plugins kdebase-workspace-libs4+5 kdeedu kdegames kdegraphics kdelibs5 kdelibs5-dev kdemultimedia kdenetwork kdenlive kdepim kdepimlibs5 kdetoys kdeutils kde-icons-oxygen kde-l10n-ptbr kde-window-manager kdm klipper kscreensaver ksysguard libkephal4 libkfontinst4 libkdecorations4 libkholidays4 libkscreensaver5 libksgrd4 libkworkspace4 libmaildir4 libnepomukquery4 libnepomukqueryclient4 libortp8 libplasma3 libplasmaclock4 libplasma-applet-system-monitor4 libplasma-geolocation-interface4 libprocesscore4 libprocessui4 libsolidcontrol4 libsolidcontrolifaces4 libsoprano4 libsoprano-dev libtaskmanager4 libweather-ion4 libzip1 plasma-widgets-addons plasma-widget-lancelot systemsettings

Pode ser que isso mude de acordo com a máquina do usuário, devido a forma como o seu Debian foi instalado. Eu também posso ter deixado passar algum pacote que ainda não dei falta. Eu gerei essa lista através de tentativa e erro, ou seja, fui tentando instalar os pacotes até não ter mais nenhum problema insolúvel de conflito. Portanto, mais uma vez, pode ser que funcione na sua máquina, pode ser que não. Comentários sobre isso são bem vindos, especialmente se você detectar algum pacote ausente. Dando continuidade, então, instale os pacotes com o comando:

sudo aptitude -t unstable install kdm kdeadmin kdebase kdebase-runtime kdebase-runtime-bin-kde4 kdebase-workspace-kgreet-plugins kdebase-workspace-libs4+5 kdeedu kdegames kdegraphics kdelibs5 kdelibs5-dev kdemultimedia kdenetwork kdenlive kdepim kdepimlibs5 kdetoys kdeutils kde-icons-oxygen kde-l10n-ptbr kde-window-manager klipper kscreensaver ksysguard libkephal4 libkfontinst4 libkdecorations4 libkholidays4 libkscreensaver5 libksgrd4 libkworkspace4 libmaildir4 libnepomukquery4 libnepomukqueryclient4 libortp8 libplasma3 libplasmaclock4 libplasma-applet-system-monitor4 libplasma-geolocation-interface4 libprocesscore4 libprocessui4 libsolidcontrol4 libsolidcontrolifaces4 libsoprano4 libsoprano-dev libtaskmanager4 libweather-ion4 libzip1 plasma-widgets-addons plasma-widget-lancelot systemsettings

Sim, tudo isso aí em cima é uma única linha de comando. Cuidado na hora de copiar e colar para que você não insira nenhum espaço extra ao final das linhas. E se você for observador(a), irá reparar que existe um parâmetro diferente no aptitude acima: "-t unstable". Lembram que acrescentamos umas linhas no arquivo preferences, pra impedir que o aptitude instale pacotes do unstable inadvertidamente? Pois bem, o parâmetro "-t" informa ao programa que ele tem que instalar os pacotes seguintes (e suas dependências) a partir do repositório especificado. Nesse caso, o unstable.

Ao executar o comando acima, o aptitude irá lhe informar que existem dependências a serem resolvidas. Não se assuste com isso. Aceite as sugestões propostas por ele. Serão exibidas então as informações de instalação. Mais uma vez autorize e o processo de download/instalação será iniciado. Ao final de tudo, seu novo KDE estará instalado e configurado e você poderá aproveitar todas as novas opções legais dele. Divirtam-se! Ah, e comentem se a explicação funcionou ou não pra vocês. 

Como jogar Yoshi's Island no ZSNES

Eu adoro emuladores de videogames. Especialmente o ZSNES, que, como o nome já indica, é um excelente emulador do SNES. Aí, por causa de uma "twitada" do Karlisson (o "pai" do genial Nerdson), bateu uma nostalgia de jogar Yoshi's Island, um dos jogos mais legais desse console. Mas então eu me lembrei que esse jogo deixou de funcionar na versão mais recente do ZSNES. Resolvi deixar a preguiça de lado e ver se tinha alguma solução pro problema. E claro que tinha... 

Cheguei inicialmente nessa página do fórum do ZSNES, que me indicou essa outra. Juntas elas tinham toda a informação que eu precisava. Resumidamente, o problema é que essa ROM utiliza a tecnologia gráfica Super FX com intercalagem (interleave). E o desenvolvedor do ZSNES retirou o suporte à intercalagem do Super FX na última versão porque esse recurso era mal implementado e estava causando muitos problemas no código. As páginas do fórum, citadas acima, contam essa história com mais detalhes.

A solução do problema, é bem simples: basta remover a intercalagem da ROM. E, para isso, usa-se um software desenvolvido pelos mesmos criadores do ZSNES, chamado NSRT. Essa aplicação permite realizar uma série de alterações de compatibilidade nas ROMS. Uma delas é a "desintercalagem" (se é que essa palavra existe).   E o bom é que existem versões do software para GNU/Linux, DOS (que funciona no Windows), Solaris, FreeBSD e Mac OSX.

Feito o download do NSRT (que vem na forma de um arquivo compactado adequado a cada sistema operacional), basta descompactá-lo em um diretório qualquer e executar o comando:

nsrt -deint nome_da_rom

No meu caso, ficou:

nsrt -deint yoshisisland.zip

Aparecerá uma tela com detalhes da ROM e da execução. E o processo todo é tão rápido que até parece que não aconteceu nada. Feito isso, é só partir para o abraço. O jogo já está pronto para funcionar no ZSNES. A prova está abaixo:

Agora vem a parte difícil. Arrumar tempo para poder me dedicar ao bebê Mário e ao dinossauro Yoshi

Como recuperar a senha de root do MySQL

Você achou que nunca ia passar por isso, mas aconteceu: esqueceu a senha de root do seu servidor de banco de dados MySQL. Após um leve momento de pânico, você se lembra que a Internet pode ter a solução pra isso (afinal, não tem tudo lá?).    Bom, se você está lendo esse artigo então saiba que "seus problemas se acabaram"®.

Eu também passei por isso e descobri uma página em que o sujeito descreve de maneira tão didática que nem tive que pensar pra resolver o problema, foi só seguir a receita de bolo. A página maravilhosa é o artigo Recover MySQL root password (quer um título mais direto do que esse?) do sítio nixCraft. Abaixo segue a tradução (com algumas modificações) do que a página recomenda. Importante, todos os passos descritos devem ser realizados como superusuário (root) ou usando as permissões de superusuário (através do comando sudo). Além disso, os comandos apresentados funcionaram no MySQL versão 5.0.51a-21, na distribuição Debian Lenny. Eles podem funcionar do mesmo jeito em outras distribuições, ou precisar de pequenas alterações.

  1. Pare o servidor MySQL.
    Comando:
    /etc/init.d/mysql stop
    Resultado:
    Stopping MySQL database server: mysqld
  2. Reinicie o servidor MySQL usando o parâmetro --skip-grant-tables. Ao fazer isso, ele não irá pedir a senha de acesso ao servidor.
    Comando:
    mysqld_safe --skip-grant-tables &
    Resultado:
    Starting mysqld daemon with databases from /var/lib/mysql
    mysqld_safe[15118]: started
  3. Conecte-se ao MySQL como superusuário.
    Comando:
    mysql -u root
    Resultado:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 5.0.51a-21 (Debian)

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql>

  4. Defina a nova senha de superusuário (digite as linhas abaixo, apertando Enter ao final de cada uma).
    Comandos:
    use mysql;
    update user set password=PASSWORD("nova-senha-de-root") where User='root';
    flush privileges;
    quit
  5. Pare novamente o servidor MySQL.
    Comando:
    /etc/init.d/mysql stop
    Resultado:
    Stopping MySQL database server: mysqldSTOPPING server from pid file /var/run/mysqld/mysqld.pid
    mysqld_safe[15198]: ended
    .
    [1]+  Done                    sudo mysqld_safe --skip-grant-tables
  6. Reinicie mais uma vez o servidor MySQL.
    Comando:
    /etc/init.d/mysql start
    Resultado:
    Starting MySQL database server: mysqld.

Pronto! Seu servidor de banco de dados já está com a nova senha de superusuário ativa. Faça o teste não se esqueça dela novamente!!! 

Executando aplicações AIR sem instalar o Adobe AIR no GNU/Linux

A Adobe lançou, há algum tempo, uma nova tecnologia chamada Adobe AIR. Explicando rapidamente, é um ambiente de execução que permite o desenvolvimento de aplicações web, mas independentes do navegador. Ele funciona mais ou menos como o Java, da Sun. Ou seja, você desenvolve uma aplicação AIR e precisa da máquina virtual pra ela poder funcionar.

Como a idéia é ser multiplataforma (será que escrevi isso corretamente? essa alteração do português está me matando... ), eles lançaram versões da máquina virtual para o Windows, Macintosh e GNU/Linux. Até aí tudo bem. As pessoas podem até comemorar isso como um avanço, por uma empresa ter se lembrado do pinguim (essa eu sei que escrevi direito... ). Porém, o instalador do GNU/Linux possui uma peculiaridade: ele precisa de privilégios de root para instalar. Isso mesmo. Você não pode instalá-lo em seu espaço de usuário. Só no sistema como um todo. Incômodo a parte, isso não seria problemático se não tivesse mais um pequeno detalhe. As aplicações AIR também exigem privilégios de root para serem executadas! Ou seja, se você quiser instalar qualquer aplicação, mesmo pra testes, precisar dar a ela privilégios de superusuário. Isso, no GNU/Linux, é algo quase insano. Instalar ou não uma aplicação com privilégio de root deveria ser opcional e não obrigatório. Tal prática pode até ser comum em outros (chamados) sistemas operacionais. Mas aqui na terra do pinguim isso beira a heresia. Uma explicação (com demonstração) desse problema pode ser encontrada nesse artigo (em inglês) no blog splitbrain.org.

Mas aí eu descobri uma publicação no blog do Logan Buesching que ensina como executar aplicações AIR sem ter que instalar nem a máquina virtual nem a aplicação. Ou seja, funciona tudo no seu espaço de usuário, sem problema algum. O restante desse artigo é uma tradução livre do original (que está em inglês).

Segundo o Logan, para que os aplicativos AIR funcionem, basta seguir os seguintes passos:

  1. baixe o AIR SDK;
  2. crie um diretório no lugar que você quiser e descompacte o arquivo dentro desse diretório;
  3. baixe uma aplicação AIR (uma sugestão para testes é o Spaz, um excelente cliente de código aberto para o Twitter);
  4. mais uma vez, crie um diretório no lugar que você quiser e descompacte o arquivo .AIR (isso mesmo, apesar da terminação, esse é na verdade um arquivo zipado);
  5. digite o comando baseado no seguinte modelo:

<caminho_do_air_sdk>/adl -nodebug <caminho_da_aplicação_air>/META-INF/AIR/application.xml <caminho_da_aplicação_air>

(esse comando deverá ficar todo em uma linha só)

Por exemplo, imagine que você descompactou o AIR SDK em um diretório air_sdk, dentro da raiz seu diretório de usuário (home) e o Spaz dentro de um diretório spaz, também dentro do seu diretório de usuário. Dessa forma, o caminho para o AIR SDK será ~/air_sdk e para o Spaz, ~/spaz (~ é um atalho que significa a raiz do diretório de usuário atual). Assim, o comando acima ficaria da seguinte forma:

~/air_sdk/bin/adl -nodebug ~/spaz/META-INF/AIR/application.xml ~/spaz/

Eu fiz uns testes aqui e funcionou. A aplicação rodou meio lenta, mas estou atribuindo isso ao fato da necessidade da máquina virtual (aplicações Java também não são um primor de velocidade aqui). Mas façam o teste e vejam o que acham. Se alguém quiser colococar nos comentários o resultado obtido com essa e outras aplicações, será de grande valia...  

Descompactar vários arquivos com uma linha de comando

Uma coisa que eu costumo fazer no GNU/Linux é descompactar vários arquivos de uma vez, em um mesmo diretório. Um exemplo disso são arquivos de temas ou de módulos de determinado programa ou aplicação web. Como eu gosto de usar a linha de comando, eu preciso abrir arquivo por arquivo, pois os comandos de descompactação não aceitam curingas (por exemplo o *) no nome do arquivo. Quando a quantidade de arquivos compactados é muito grande, essa tarefa torna-se bem maçante.

Tentando resolver o meu problema, dei uma batida na Internet e achei essa dica no sítio do Viva o Linux. Fiz uma pequena alteração para que ele funcione em uma única linha de comando (ao invés de um arquivo de script) e apresento abaixo as três versões para os formatos mais populares de compactação. Obviamente, basta alterar o comando do descompactador para que ele funcione com outros formatos não citados aqui. Além disso, com pequenas modificações é possível gerar um script mais elaborado, onde é possível colocar os diretórios onde estão os arquivos e para onde eles devem ir. Entretanto, esse não é o propósito desse artigo. A idéia aqui é uma solução rápida para a descompactação de vários arquivos. É importante destacar que a descompactação será realizada no diretório onde você está executando a linha de comando. Tome cuidado com isso para evitar efeitos indesejáveis. Em caso de dúvidas, crie um diretório de testes e rode o comando lá.

Arquivos compactados como tar.gz

for x in `ls *.tar.gz`;do tar xzvf $x;done

Arquivos compactados como tar.bz

for x in `ls *.tar.bz`;do tar xzvf $x;done

Arquivos compactados como zip

for x in `ls *.zip`;do unzip $x;done

Como resolver o problema de autenticação do FriendFeed no Firefox

Depois de uma atualização de várias extensões do meu Firefox, comecei a ter problemas com a minha autenticação no FriendFeed. Eu entrava com o meu usuário e senha e o sítio sempre voltava para a tela inicial, ao invés de me levar para a minha área.

Vasculhando as configurações, descobri que estavam faltando alguns cookies do FriendFeed. Como o erro começou depois da atualização das extensões imaginei que o problema fosse com uma delas. Considerando que eu tenho 17 extensões instaladas, vi que teria um bom trabalho pela frente.    Por isso resolvi começar daquelas que seriam mais óbvias. Dei sorte e descobri na minha segunda tentativa que a culpa era do NoScript, uma extensão que me permite controlar quais scripts serão executados em cada página.

Como essa é uma extensão que eu gosto muito, pois tenho um lado paranóico um tanto quanto acentuado aqui na rede, não queria abrir mão dela só pra poder me autenticar no FriendFeed. Por isso resolvi dar uma batida aqui na Internet pra ver se achava alguma coisa...

...e achei, depois de muita insistência...   Nessa publicação do dia 17 de setembro (ou seja, ontem), o Giuseppe Cunsolo, do blog cunsolo.it, dá a solução do problema. E o melhor de tudo, ela é muito simples...

Segundo o autor, a explicação está no FAQ no NoScript, que, traduzido, é mais ou menos assim:

P: Desde que eu habilitei o Gerenciamento Automático de Cookies Seguros [que no programa está ainda no original inglês Enable Automatic Secure Cookies Management] eu não consigo mais autenticar-me em alguns sítios. O que está acontecendo?
R: Alguns sítios dependem de interrelações de domínios bem complicadas e enquanto eles gerenciam o reconhecimento em certos domínios através de um canal seguro HTTPS, eles precisam propagar a autenticação por vários domínios que não suportam HTTPS. [...]

Ainda segundo o Giuseppe, o FAQ descreve a solução de maneira detalhada. Mas como ele é um cara bacana e resumiu a "solução detalhada" em uma linha, resolvi valorizar o trabalho do sujeito e seguir a sua dica aqui. E funcionou lindamente! Basta abrir a janela de opções do NoScript, clicar na aba "Avançado", selecionar a aba interna "HTTPS" e depois a outra aba "Cookies" (céus, três níveis de abas! não é à toa que a primeira se chama "Avançado" ). Acrescente, no espaço abaixo de "Ignore unsafe cookies set over HTTPS by the following sites:", o endereço do FriendFeed (friendfeed.com), clique em OK e pronto! Autenticação reativada.

Ah, e depois de implementar isso, percebi que o Twitter também está com o mesmo problema. E a mesma solução... Wink

Portanto, fica aqui o meu agradecimento ao Giuseppe, ou melhor, já que ele é italiano, grazie Giuseppe...

P.S.: Repararam na piada pronto aqui? O nome do blog (e sobrenome do autor) que resolveu a minha aflição é: cunsolo...

Melhore a nitidez das fontes no GNU/Linux

Quer melhorar a qualidade das fontes exibidas pelo GNU/Linux? Experimente essa dica publicada no blog Viablog. Após fazer as alterações e reiniciar o servidor X (não precisa reiniciar a máquina, somente o X), as fontes ganham um aspecto mais "nítido" e facilitam um pouco a leitura. Testei em duas máquinas e o resultado foi perceptível (apesar de ter gente que comentou no blog que não fez muita diferença).

A dica original foi para o Ubuntu, mas também funciona no Debian. Acredito que funcione também em qualquer outra distro, basta descobrir onde ficam os arquivos de configuração alterados pelo pacote citado na dica. Ah, e os resultados, segundo o blog, são melhores em monitores LCD do que CRT.