Traga mais Readability para o seu blog

Meu amigo Rodrigo Ghedin conseguiu, sem querer, me deixar preocupado com a aparência: Não a minha, é verdade — já que neste caso nem as versões mais avançadas e recentes de Photoshop dariam jeito —, mas com a do meu blog. Tudo isso porquê, há alguns dias atrás, ele falou, em mais um de seus excelentes posts, sobre o conceito de readability.

Para quem não sabe o que readability significa, eu vou simplificar: Trata-se, basicamente, de tornar o processo de leitura mais fácil.

Ao encontrarem condições que lhes permitam ler mais facilmente, os seres humanos têm melhoradas suas capacidades de compreensão, retenção e velocidade de leitura. E para quem estiver se perguntando o que isso pode ter — ainda que de longe — a ver com os blogs que lemos no dia-a-adia, eu explico, mais uma vez. Só que desta vez vou usar um trecho do post onde o Ghedin menciona leituras realizadas na web:

(…) mesmo nas leituras mais rápidas, essenciais ao trabalho que desempenho e muito útil para ler muita coisa boa que aparece em blogs, sites e outros locais, às vezes me sinto incomodado. Não pelo monitor, mas sim pelo layout. Tem gente que publica um texto com fonte branca em fundo preto! A mim, o efeito é o mesmo que ficar meia hora olhando diretamente para uma lâmpada acesa. Meus olhos sentem essa agressão.

E esse problema de contraste é apenas um dos vários que existem. Tipografia mal escolhida, espaçamento inadequado, excesso de anúncios inseridos dentro do texto. Eu costumava pregar a máxima de que não importa aonde você escreva, o que importa, mesmo, é a mensagem. Bobagem! Já deixei de ler muita coisa boa porque a apresentação não colaborava.

Notem que um site mal cuidado, com qualquer um dos deslizes mencionados acima, pode estar prejudicando a facilidade de leitura de seus visitantes. Na prática, isso pode, inclusive, acabar se traduzindo em falta de fidelização dos leitores, ou seja: Eles podem nunca mais querer voltar ao seu site, pois se lembrarão, por exemplo, que precisaram de óculos escuros para proteger os olhos na última vez em que ali estiveram.

Felizmente, visando auxiliar a leitura de informações por milhões de internautas, um pessoal muito bacana desenvolveu um projeto — também, obviamente, chamado de Readability —, onde se encontra disponível um bookmarklet configurável para tornar qualquer página mais agradável de ler. O Rodrigo, muito oportunamente, ensina como fazer a configuração, passo-a-passo.

Com a existência de plugins prontamente disponíveis para a implantação de readability no Firefox e Google Chrome, o lado dos internautas está ainda mais garantido.

Mas acontece que eu fiquei pensando em como garantir que qualquer um que me visitasse pudesse ter acesso aos recursos de readability sem necessariamente contar com bookmarklets, extensões ou plugins. Esse conceito é tão interessante que deveria ficar ao lado de botões como os de compartilhamento de links no del.icio.us, ou de retweet, que hoje são amplamente vistos nos blogs por aí. E felizmente, não é nada complicado deixar o seu blog readability-ready.

O primeiro passo para isso é dar uma olhada no código fonte do bookmarklet que o Rodrigo ensina a configurar. No Firefox, basta clicar o botão direito sobre ele e selecionar a opção Propriedades. Você logo se deparará com algo assim no campo endereço:

[javascript] javascript:(function(){readConvertLinksToFootnotes=false;readStyle=’style-novel’;readSize=’size-medium’;readMargin=’margin-medium’;_readability_script=document.createElement(‘script’);_readability_script.type=’text/javascript’;_readability_script.src=’http://lab.arc90.com/experiments/readability/js/readability.js?x=’+(Math.random());document.documentElement.appendChild(_readability_script);_readability_css=document.createElement(‘link’);_readability_css.rel=’stylesheet’;_readability_css.href=’http://lab.arc90.com/experiments/readability/css/readability.css’;_readability_css.type=’text/css’;_readability_css.media=’all’;document.documentElement.appendChild(_readability_css);_readability_print_css=document.createElement(‘link’);_readability_print_css.rel=’stylesheet’;_readability_print_css.href=’http://lab.arc90.com/experiments/readability/css/readability-print.css’;_readability_print_css.media=’print’;_readability_print_css.type=’text/css’;document.getElementsByTagName(‘head’)[0].appendChild(_readability_print_css);})();
[/javascript]

Assustador, não é mesmo?

No entanto, não é necessário se preocupar com o que o código acima faz — que, na verdade, é somente aplicar readability à página que você está lendo. O importante é saber que é este o código que você precisará para permitir que qualquer um que visite seu site aplique readability nele. Na verdade, a coisa é tão simples que você precisará apenas criar um link em qualquer lugar da página onde escreveu um texto para que a pessoa possa clicar sobre ele. Vejamos a seguir como isso funciona no WordPress.

Acessando seu editor de temas, você precisará criar um link com o código acima no arquivo single.php — uma vez que o bookmarklet original é idealizado para transformar páginas com artigos individuais, e não sites inteiros, embora isso também possa ser feito. No meu caso, isso se traduziu da seguinte maneira:

[javascript wraplines="false"] <span class="readability">
<a title="Torne este texto mais agradável de ler!" href="javascript:(function(){readConvertLinksToFootnotes=false;readStyle=’style-novel’;readSize=’size-medium’;readMargin=’margin-medium’; _readability_script=document.createElement(‘script’);_readability_script.type=’text/javascript’;_readability_script.src=’http://lab.arc90.com/experiments/readability/js/readability.js?x=’+(Math.random());document.documentElement.appendChild(_readability_script)_readability_css=document.createElement(‘link’);_readability_css.rel=’stylesheet’; _readability_css.href=’http://lab.arc90.com/experiments/readability/css/readability.css’;_readability_css.type=’text/css’; _readability_css.media=’all’;document.documentElement.appendChild(_readability_css); _readability_print_css=document.createElement(‘link’); _readability_print_css.rel=’stylesheet’; _readability_print_css.href=’http://lab.arc90.com/experiments/readability/css/readability-print.css’; _readability_print_css.media=’print’; _readability_print_css.type=’text/css’; document.getElementsByTagName(‘head’)[0].appendChild(_readability_print_css);})();">Readability</a>
</span>
[/javascript]

O único retoque que eu fiz foi acrescentar uma classe CSS para deixar a coisa um pouco mais bonita de se ver. Não sabia exatamente qual ícone utilizar, então optei por capturar o favicon do próprio projeto Readability:

[css] .readability{
display:line;
background: transparent url(images/readability_16.png) no-repeat;
margin-left: 5px;
padding-left:26px;
padding-bottom:5px;
min-width:8px;
}
[/css]

O resultado já pode ser visto nas páginas individuais dos artigos aqui do blog. Espero, sinceramente, que desta maneira, eu esteja contribuindo para que as pessoas encontrem por aqui uma experiência de leitura um pouco mais agradável.

PS: Depois, com mais calma, pensarei em um jeito de tornar essa coisa um plugin para o WordPress.

Protegendo melhor o meu WordPress

Depois de ter sido recentemente atacado por uma script injection que surgiu do nada, fiquei mais cauteloso no que diz respeito ao blog, quando se trata de segurança.

No começo deste mês acabei encontrando um artigo da Smashing Magazine, com 10 dicas para reforçar a proteção de sites que, como o meu, utilizam o WordPress. Embora seja verdade que reforçar a segurança de um site por conta própria requeira um conhecimento mínimo de Apache — e não se sentir intimidado com alterações no arquivo .htaccess —, não há nada realmente muito cabeludo a se fazer.

Assim sendo, quero compartilhar com vocês duas das alterações que fiz:

Primeira coisa: Proteger o blog de injeções de script

Os ataques de injeção de scripts acontecem quando um hacker introduz algumas linhas de código malicioso em um site através de um de seus formulários — o de comentários, por exemplo — e então envia tais dados através deste formulário. Isso é feito, geralmente, para que se possa enganar os sistemas em uso nos sites, de maneira que eles pensem que se trata de conteúdo enviado por um usuário válido, e assim acabem permitindo, sem querer, que dados sejam acessados, editados excluídos, ou que scripts mal intencionados sejam acessados e instalem vírus nas máquinas dos internautas desavisados.

Uma das técnicas básicas para um script injection é que uma máquina cliente submeta informações que contem tags, como a tag <script>. Isso nos leva às diretivas abaixo, sugerida no artigo que li:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

Ao serem adicionadas ao arquivo .htaccess, tais diretivas fazem com que qualquer requisição de acesso à uma página no blog seja verificada. Caso ela contenha referências à uma tag <script> ou, mais ainda, tenha tentado modificar o valor das variáveis GLOBALS ou _REQUEST do PHP, a requisição será bloqueada com um erro 403 (“Forbidden“) do Apache, ou seja, quem quer que esteja tentando realizar o acesso — neste caso, provavelmente alguém muito mal intencionado — será impedido de fazê-lo. Você pode até criar um documento personalizado para recepcionar alguém que tenha recebido o erro em questão:

ErrorDocument 403 /forbidden.php

Uma última palavra sobre as diretivas acima, é que estas podem ser facilmente modificadas para que incluam também as tags  <object>, <applet> e <embed>, também utilizadas em script injections. Desta maneira, reforça-se ainda mais a segurança.

Segunda coisa: Proteger o arquivo wp-config.php

Quando li o artigo da Smashing Magazine, vi que eles recomendam a proteção do arquivo wp-config.php — onde residem todas as configurações principais do WordPress, inclusive nomes de usuário e senha do banco de dados, que permitem a qualquer um com más intenções acesse todo o conteúdo do seu blog e faça com ele o que bem entender —, o que, afinal de contas, é uma excelente ideia.

O único problema é que eles, mais uma vez, se valem de alterações no arquivo .htaccess, da seguinte maneira:

<files wp-config.php>
order allow,deny
deny from all
</files>

Acredito, no entanto, que uma solução muito mais efetiva para impedir o acesso ao conteúdo do arquivo seja movê-lo para um lugar inacessível publicamente. Na prática, normalmente, isso significa movê-lo para antes da pasta public_html — onde fica tudo o que é visível para o mundo lá fora — em sua conta de usuário. Felizmente, desde a versão 2.6 do WordPress, isso é possível. Dessa maneira, basta que você utilize um programa de FTP de sua confiança e mova o arquivo em questão um nível acima.

De qualquer maneira, a dica dada pela Smashing Magazine ainda é válida se adaptarmos um pouco as coisas: Por exemplo, podemos aproveitar para proteger não o arquivo wp-config.php, mas sim o próprio arquivo .htaccess, da seguinte maneira:

<files .htaccess>
order allow,deny
deny from all
</files>

Conclusão

É óbvio que a proteção de um site contra ataques envolve uma série de outros passos e medidas de segurança, e muito mais leitura e estudo. Ainda assim, minha decisão de dividir estas duas simples alterações se deu porquê acredito serem realmente de grande valia para alguém que está pensando em proteger melhor seu conteúdo, e espero que, desta maneira, esteja prestando um serviço a quem se encontrar em uma situação difícil.

Para maiores informações, recomendo também a leitura do excelente artigo Hardening WordPress, disponível no próprio Codex da ferramenta.

Quer um vídeo do YouTube rápido? 3outube nele!!

Ontem me lembrei de uma propaganda de chocolate estrangeira muito engraçada que eu havia assistido há muitos anos atrás, e que poderia ser útil para ilustrar um dos trechos de um treinamento que um amigo dará em breve na nossa empresa. Sabendo que seria muito fácil encontrá-la no YouTube, lá fui eu fazer a busca, que, depois de alguns minutos, resultou em sucesso. Mas havia um problema.

Quando eu preciso de um vídeo do YouTube, normalmente recorro a uma entre duas alternativas: Se estou usando o Firefox, nada melhor do que o Download Helper para me ajudar. Já se estiver usando o Chrome, o jeito é atacar com um bookmarklet que alguma alma bondosa disponibilizou. Seja qual for o caso, o resultado é ter, em mãos, um arquivo FLV ou MP4 que pode depois ser convertido a contento.

Basta trocar "http://www.y" por "http://3". Simples, não?

Acontece  que no momento em que me lembrei do tal vídeo, eu não tinha nenhuma das opções à mão: A empresa tem apenas computadores com o péssimo Internet Explorer. Assim sendo, tive que me conter, esperar chegar em casa, e só depois fazer o procedimento de download. E justamente um dia depois de ter feito isso, acabei conhecendo uma alternativa muito interessante para baixar os vídeos. Trata-se do site 3outube.

O nome, que é impronunciável, é simples de explicar: Para baixar um vídeo através do site, basta que você substitua o início da URL que contém o vídeo por http://3. Uma vez pressionando ENTER, aparecerá uma nova página, de onde estarão disponíveis os links para baixar tanto o arquivo MP4 quanto o FLV. Daí por diante, é só fazer como em qualquer outro download, e salvar o arquivo. Uma mão na roda.

Ah, e quanto à propaganda, ela está aqui embaixo, para que quem ficou curioso possa se satisfazer. Aliás, eu só conhecia o primeiro segmento, e descobrir que existem outros dois foi uma surpresa muito interessante e divertida, prova de que o YouTube pode ser uma caixinha de surpresas

Não se assuste (mais) com URL rewriting

Você já ouviu falar, algum dia, em URL rewriting?

O conceito é simples: Através do uso de um software apropriado, pode-se facilmente modificar a aparência de uma URL — ou, para ser o mais inteligível possível, pode-se fazer com que um endereço de internet digitado no navegador faça muito mais sentido para quem o está digitando do que normalmente poderia ser.

Vejamos: Qualquer site da web que seja dinâmico — este meu blog, por exemplo, utiliza uma ferramenta dinâmica de gerenciamento chamada WordPress — depende de que as URLs digitadas pelo usuário lhe digam o que deverá ser exibido. Considere por exemplo, uma das páginas de um site de loja de animais, cujo endereço é o seguinte:

http://www.pets.com/show_a_product.php?product_id=7

Há algumas coisas que se pode deduzir do endereço acima, como, por exemplo, o fato de que as informações de um determinado produto deverão ser exibidas — no caso, o produto 7. Mas o que mais podemos dizer sobre o produto? Trata-se de ração? Trata-se de um brinquedo para animais? Embora seja fácil chegar a conclusão de que é impossível afirmar qualquer coisa sobre o produto, é realmente impressionante a quantidade de pessoas que passam para seus amigos e familiares endereços neste formato, que são impossíveis de memorizar.

A função do URL rewriting é justamente transformar endereços de web como o do exemplo acima em algo deste tipo:

http://www.pets.com/parrots/norwegian-blue/

Muito mais inteligível.  Note que agora, antes de acessar o endereço, o usuário saberá que estamos falando de papagaios (“parrots”), e, mais especificamente, do papagaio norueguês azul. Além disso, adicionalmente à vantagem de ser um endereço mais fácil de memorizar e passar para quem quisermos, ao utilizarem-se de URL rewriting, os donos de sites na internet poderão ter suas páginas indexadas pelos sites de busca, como o Google, já que eles entendem os hífens como espaços, e os underscores ( _ ) do exemplo anterior são ignorados.

Há, no entanto, uma questão muito interessante sobre esta técnica: Ao mesmo tempo em que ela pode ser empregada para aumentar a usabilidade de um site na internet, a edição de um arquivo .htaccess — empregado no processo — pode também significar, de uma hora para a outra, o início de horas e horas de puro sofrimento. Assim sendo, é importante saber onde procurar exemplos e referências antes de tentar se aventurar neste mundo.

Recentemente, em meio a minhas idas e vindas entre o WordPress e o Posterous, precisei realizar algumas edições em um arquivo .htaccess. Como não é lá muito habitual de minha parte ficar mexendo com isso, recorri a uma famosa referência que existe bem à mão, para que a coisa fosse a mais indolor possível. Trata-se do Apache URL Rewriting Guide, que já me livrou de poucas e boas anteriormente.

Acontece que o guia em questão não está lá em uma linguagem das mais acessíveis, e pode assustar alguém que esteja desavisado. Ocorre que acabei encontrando, meio que sem querer, admito, uma outra referência, o URL Rewriting for Beginners, escrito já há alguns anos por uma caridosa alma, mas recheado de exemplos como os da loja de animais, que adaptei para este texto, e com dois grandes bonus: O primeiro um guia de consulta rápida sobre mod_rewrite, e o segundo, um guia sobre expressões regulares, sobre as quais é muito desejável que se tenha ao menos noções, antes de resolver se aventurar por aí.

Com as referências que encontrei — e que estou compartilhando aqui para que outras pessoas necessitadas possam encontrar um caminho — eu me sentirei muito mais tranquilo na hora em que precisar me arriscar por aí, e assim não terei que temer — tanto — os famigerados erros 500 do protocolo HTTP, que costumam aparecer quando fazemos uma curva errada no trajeto. Espero que a dica seja bastante útil.

Transformando AVI em RMVB

Descobri um programa gratuito, chamado Easy RealMedia Producer, que vem a calhar quando se deseja converter um arquivo para o formato RMVB.

Interface principal do programa

Sua utilização é tão simples que impressiona: Uma vez feito o download e instalado o software, basta selecionar um ou mais arquivos de origem a serem processados. Todos os formatos mais populares, como AVI, MPEG, MOV ou WMV, são suportados, além de uma infinidade de outros. Caso sejam selecionados múltiplos arquivos, é claro, um processamento em lote será executado.

O passo seguinte é opcional: Selecionando qualquer arquivo da lista e clicando em settings, uma série de configurações avançadas pode ser efetuada, como determinar a qualidade do áudio do arquivo a ser gerado, sua resolução, ou até mesmo se será aplicado algum tipo de filtro ao resultado. Além disso, graças a um programa adicional chamado DirectVobSub, que é instalado juntamente com o Easy RealMedia Producer, é possível, se assim desejado, acrescentar legendas definitivas aos arquivos a serem criados. Para tanto, basta que arquivos de legendas com os mesmos nomes dos arquivos de vídeo estejam localizados na pasta de origem, durante o processo de conversão.

Aliás, quando se opta por incluir tais legendas, pode-se configurar como elas deverão aparecer. Afinal de contas, o padrão — legendas brancas, escritas com fonte Arial, em tamanho 10 — pode não agradar a todo mundo. Neste caso, existe um painel de controle oculto para o DirectVobSub, que pode ser acessado uma vez que se execute o seguinte comando:

C:\WINDOWS\system32\rundll32.exe “D:\Install\Easy RealMedia Tools\common\vsfilter.dll”, DirectVobSub

Isso fará com que uma janela de propriedades seja exibida — tal como na figura a seguir — e que, a partir dela, se torne possível alterar configurações como cor, posicionamento, tamanho e tipo da fonte. Uma vez alteradas, estas configurações servirão para todas as conversões a serem realizadas.

Configurações "ocultas" do DirectVobSub

Mas uma questão pode surgir: Porquê exatamente converter arquivos para RMVB?

No meu caso, nos últimos tempos, venho acompanhando muitas de minhas séries favoritas através da chamada Torrent TV : Após baixar cada novo episódio e suas legendas, eu o assisto no formato AVI, e então surge uma necessidade: armazenamento. Isso porquê eventualmente eu acabo assistindo alguns episódios novamente, e também porquê não sou exatamente uma pessoa que gosta de jogar as coisas fora.

Neste aspecto, os arquivos RMVB tem uma vantagem: Ocupam, efetivamente, quase 50% menos espaço em disco. Apenas para efeitos ilustrativos, basta dizer que o espaço necessário para manter no HD um episódio de 42 minutos gravado em AVI é, em média, 350MB, enquanto que o mesmo episódio em formato RMVB consumirá entre 140 e 160MB. É certo que algumas discussões podem se originar desta afirmação, como, por exemplo, que a qualidade dos arquivos AVI é superior, o que, em última instância, pode até ser verdade. No entanto, vejamos as duas imagens abaixo, extraídas do season finale da quinta temporada de Lost:

Lost em AVI

Lost em RMVB

A primeira imagem foi capturada do episódio em formato AVI. A segunda, daquele que está em formato RMVB. Na minha opinião, praticamente não há diferença de qualidade.

Mas antes que alguém me condene pelo comentário, quero deixar claro que, para mim, que não faço uso de um aparelho de DVD para assistir aos últimos episódios de Lost, Heroes, e por ai afora — já que meu gosto por séries não é compartilhado por ninguém aqui em casa — a resolução de exibição de um arquivo RMVB  na tela do computador não chega a apresentar, sinceramente, diferenças que possam ser consideradas tão gritantes assim. E é por isso, que, no final das contas, armazenar os episódios desta maneira me atende plenamente.

Finalmente um TinyMCE ligeiro no meu WordPress 2.7

Desde o começo de dezembro do ano passado eu vinha enfrentando severos problemas ao tentar digitar meus artigos para publicação aqui no blog: Carregar o TinyMCE, editor WYSIWYG padrão que acompanha o WordPress, levava mais de 10 segundos na raposa de fogo, e, em seguida, digitar cada mera letra parecia uma tortura interminável, só perdendo para o tempo gasto ao ter que apagar alguma coisa usando o backspace ou formatando os textos.

Tentei, antes de qualquer coisa, usar uma versão recente do Opera para acessar o painel de edição de artigos, o que funcionou maravilhosamente bem, já que a lentidão desapareceu por completo na digitação. No entanto, não dava pra ficar usando um navegador diferente só pra criar artigos no blog e, assim sendo, cogitei a possibilidade de que pudesse se tratar de um problema qualquer com uma das inúmeras extensões que eu possuo instaladas no Firefox.

Infelizmente, após desabilitar todos os plugins e realizar um fresh setup, o problema não se resolveu: Cada caracter ainda levava uma eternidade para aparecer na tela ao digitá-lo. O próximo suspeito da minha lista foi o próprio WordPress. Pensei se tratar de algum bug da nova versão do WordPress, já que, afobado por testar novas funcionalidades, naquele momento eu vinha usando algumas versões beta.

Quando a versão 2.7 saiu oficialmente e eu reparei que o problema de lentidão ainda não dava o braço a torcer, comecei uma busca um pouco mais dedicada atrás de uma solução. Se na primeira quinzena de 2009 fiquei sem publicar uma palavra que fosse por aqui, foi por conta de estar ocupado atrás de cada pequena referência que pudesse representar uma luz no final do túnel.

No começo dessa semana encontrei essa luz, lendo um artigo do Andrew Ozz, chamado Troubleshooting TinyMCE in WordPress 2.7. Nele, Andrew lista alguns pontos que podem ser tentados por qualquer pessoa se seu editor resolve não aparecer ou funcionar corretamente. Alguns pontos eu já havia tentado, mas foi no sexto que eu parei, pois, recentemente havia encontrado diversos erros provenientes da página em que o TinyMCE é carregado no WordPress, examinando-a pelo console de errors do Firefox:

Delete both wp-admin and wp-includes directories and upload fresh copies from the WordPress installation package.

Precisei esperar até o final da semana para ter tempo de ver se a coisa funcionava, mas valeu cada segundo de espera: Eis que abri meu programa de FTP favorito e mandei bala na orientação. Após alguns minutos de upload, BINGO! O editor estava novamente lépido e veloz.

Ah, é claro, a explicação: Ao renovar sobretudo o conteúdo da pasta wp-includes, pude me certificar de que os diversos arquivos em javascript ali existentes estivessem em sua versão mais recente: Após o procedimento, não houve qualquer problema no console de erros da raposa, o que me fez pensar que alguma falha acidental deve ter ocorrido entre a migração da última versão beta do 2.7 para a oficial. Mea culpa.

Esteganografia para as massas

Lembra quando você era criança e brincava de esconder mensagens secretas em folhas de papel escritas com suco de limão e um cotonete? A diversão era, na seqüência, aproximar a folha de uma vela ou de uma lâmpada, que era pro calor revelar o que estava escrito, como num passe de mágica

Bons tempos, não é mesmo?

Acontece que esse tipo de coisa pode muito bem acontecer nos dias de hoje, em pleno mundo digital! Isso graças a uma técnica chamada esteganografia. Essa palavra meio esquisita vem do grego, e significa “escrita escondida”.

Diferente da famosa criptografia, em que alguém mal intencionado que intercepte uma mensagem sabe bem que há algo de sigiloso escondido ali, esperando para ser descoberto após a eventual quebra de uma chave – seja ela mais forte ou mais fraca – a esteganografia é algo mais anônimo, em que praticamente não dá pra descobrir que há alguma coisa escondida no meio de uma mensagem, a menos que você seja o remetente ou o destinatário.

Justamente por causa disso, a esteganografia é causadora de boatos e lendas: Há notícias falsas e verdadeiras de seu emprego por contrabandistas, traficantes e até mesmo terroristas, que a utilizam para passar em paz – ou com um pouco mais de privacidade – suas próprias mensagens.

As mensagens, aliás, podem ser de texto puro, mas também podem ser compostas de um ou mais arquivos que se deseja manter ou transmitir em sigilo. Para transportá-las podem ser usadas fotos ou arquivos MP3. Também podem ser usadas páginas em HTML ou documentos PDF, que passam a carregar um algo a mais de maneira não declarada.

Se um bandido invade nossa casa, procura dentro de nossos guarda-roupas ou atrás de quadros, até encontrar um cofre ou algo de valor. Ele nunca pensaria, no entanto, que seu dinheiro está guardado naquela caixa de sucrilhos vazia que você deixa na última prateleira do armário da cozinha, não é? Eis aí a vantagem principal da esteganografia: Nenhum curioso, ao invadir seu computador, procuraria por suas senhas bancárias dentro daquela foto em que você e sua família estão sorrindo logo depois da ceia de Natal, percebem? Misture a foto em meio a outras centenas, e bingo: Só você — e quem mais você quiser — poderão recuperar a informação oculta.

Para fazer a mágica de embutir conteúdo em arquivos comuns existem dezenas de softwares disponíveis, sendo que muitos deles são gratuitos. Um artigo recente do site Lifehacker — que foi, aliás, o causador do meu interesse pelo tema — menciona o Hide in Picture, que, como o próprio nome diz, oculta arquivos em imagens nos formatos bitmap ou GIF.

Como exemplo, suponham que eu queira pegar um inocente arquivo com uma paisagem bem bonita e ocultar nele uma mensagem de Natal super legal para os meus amigos, embora totalmente secreta. Basta que eu acesse o Hide in Picture e selecione a opção Hide file in picture, tal como na figura abaixo.

Interface do Hide in Picture

Em seguida, só é preciso informar uma senha e, opcionalmente, o algoritmo a ser utilizado pelo programa para criptografar o arquivo que está sendo anexado à nossa imagem, e pronto: A mensagem secreta já fará parte da paisagem, e o melhor: Ninguém suspeitará disso, porquê visualmente tudo continuará como antes!

Protegendo a mensagem com uma senha

A vantagem destes programas é que na maioria das vezes eles procuram manter o tamanho original do arquivo hospedeiro, utilizando algoritmos de compressão que cumprem bem sua tarefa. É claro que fica óbvio que, nestes casos, você simplesmente não consegue esconder um arquivo maior dentro de um arquivo menor, mas essa aparente limitação não deve intimidar ninguém disposto a proteger seus dados para uma eventual transferência a partir da Internet.

Inspirado pelo princípio da esteganografia, no entanto, está um procedimento muito mais simples e direto, ideal para quem não precisa transferir conteúdos muito grandes e está interessado apenas em ocultar pequenos arquivos – talvez aqueles em que estão gravadas suas senhas de serviços da internet ou dos bancos, e até mesmo uma ou outra planilha ou foto. No pequeno screencast que acompanha este meu inspirado artigo, fiz a descrição de um método que só precisa do Windows e de um velho compactador de arquivos, sucesso e bastante conhecido entre muita gente: Trata-se do 7-Zip, que é gratuito.

[flv:cast_estego_281208.flv 560 352]

O ponto positivo é que a técnica é muito simples, e pode ser usada pra esconder arquivos não apenas em fotos, mas também em documentos PDF — como no exemplo que eu dou — e músicas.

A advertência, no entanto, fica para o tamanho do arquivo a ser gerado: Ninguém acharia normal, por exemplo, uma imagem JPEG de 30 megabytes, não é mesmo? Assim, cuidado para esconder apenas pequenos arquivos, e no mais… divirta-se!

[ratings]

Ubuntu: Firefox em pt-br

É fato que, no momento em que é instalado em seu computador, o Ubuntu já apresenta diversos aplicativos totalmente traduzidos para o português, dentre os quais, o próprio GNOME, sua interface padrão com o usuário. No entanto, também é fato que alguns aplicativos que o acompanham — como o indispensável Firefox 2.0 — são instalados em inglês.

Para tornar a experiência de navegação pela internet mais agradável, não é nada complicado fazer com que a velha raposa de fogo seja exibida totalmente em português. Para isso, abra uma janela do terminal e digite o seguinte comando:

sudo apt-get install mozilla-firefox-locale-pt-br

Aguarde a instalação do novo pacote de idiomas e, assim que estiver concluída, reinicie o Firefox e abra-o novamente logo em seguida, para que as alterações surtam o efeito desejado. Pronto!

Resuma seus feeds… ou não!

Bia Kunze, além de ser a odontologista mais linda da internet (tive que concordar com meu amigo Neto Cury), também veio mostrar o outro lado da moeda com relação à campanha de Feeds Completos iniciada pelo Rafael Arcanjo.

Ela cita — sem deixar de ter razão — um argumento irrefutável, em seu comentário em meu post:

Para quem lê feeds em dispositivos portáteis, vale lembrar que textos muito longos exigem maior tráfego de dados. E na internet móvel, se paga pelo tráfego, e não pelo tempo de conexão. Mesmo quem tem tráfego ilimitado ou usa o wi-fi, muitas vezes se depara com a pouca memória do aparelho

Às vezes há posts que não interessa você ler, e aí já é tarde, seus preciosos KB já foram consumidos.

Só posso afirmar, após conhecer o outro lado da moeda, que a blogosfera também deve ser um lugar democrático. E como eu sou uma pessoa que adora democracia, me vi logo à frente de um impasse.

Como fazer, afinal, para disponibilizar ambos os feeds, sendo um completo — para quem está com conexões de banda larga e/ou quer ler os assuntos sem precisar necessariamente visitar meu blog — e outro, resumido, para atender à leitores e leitoras especiais como a Bia, que têm nos PDA’s e similares não apenas instrumentos de lazer, mas também de trabalho?

Felizmente, para mim, a resposta veio rápido.

Faça uma “cirurgia” em seu feed RSS 2.0

Vou propôr a vocês uma “cirurgia”: E prometo que, ao final do procedimento cirúrgico, teremos tanto o feed completo quanto o resumido. Para isso, tudo o que vamos precisar é do próprio WordPress, além de um pouquinho de conhecimento — bem pouco, mesmo — de PHP.

Pra começo de conversa, escolhi o feed RSS 2.0 de meu site. Não foi por nenhuma razão em especial, já que poderia ter sido qualquer outro feed: O WordPress disponibiliza os formatos Atom, RSS 0.92 e RDF, além da minha própria escolha.

De qualquer forma, para seguirmos adiante, vamos primeiro entender um pouco sobre a forma como o WordPress trata dos feeds. Quem acompanha o BlogAjuda sabe que o Rodrigo está trabalhando em uma série de artigos para criar um tema para esta ferramenta de edição de blogs. Pois bem. Criar temas envolve mexer com templates, que nada mais são do que modelos para o conteúdo do blog.

Além dos templates para o blog, que controlam a forma como aparecem a página principal, os comentários e as páginas para artigos individuais, entre outros, o WordPress também possui modelos para os feeds. Estes modelos, embora não tão amigáveis quando os dos temas, são exatamente o ponto onde precisamos mexer. Então, vamos em frente.

No diretório de instalação do WordPress — o mesmo onde está o arquivo wp-config.php — existem quatro arquivos padrão, chamados wp-rss2.php, wp-rss.php, wp-rdf.php, wp-atom.php e wp-commentsrss2.php. Todos eles controlam a forma como o sistema irá trabalhar com os feeds RSS — o último deles, inclusive, trata do feed de comentários. Vamos dar especial atenção ao arquivo wp-rss2.php.

Para continuar, faça o download do arquivo wp-rss2.php que está no seu blog para o seu computador e abra com um bom editor de texto, de preferência com numeração de linhas Se você quer uma sugestão pessoal, tente o PSPad, ultra-poderoso e freeware..

Uma vez tendo aberto o arquivo, procure o trecho de código abaixo. No caso da versão de WordPress que eu estou usando, ele começa exatamente na linha de número 40:


		]]>

		]]>
	post_content ) > 0 ) : ?>
		]]>
	
		]]>
	


Para quem leu meu post anterior
, este é o bloco que, “nos bastidores do sistema” faz com que a escolha pessoal do usuário em disponibilizar um feed completo ou resumido ocorra. Notem, sobretudo, esta linha:


Ela contém uma tag Uma tag é a representação de qualquer função do WordPress, para se obter funcionalidades, sejam elas básicas ou avançadas que obtém das configurações de seu blog a informação sobre o seu feed. Caso rss_use_excerpt retorne um valor verdadeiro, isso significará que você está disponibilizando um feed resumido. Caso contrário, você está jogando no time das pessoas que têm feeds completos disponibilizados.

Pois bem, é hora de realizar a “intervenção cirúrgica” que mencionei anteriormente. Basicamente, deixaremos de verificar se o usuário deseja um feed completo ou não, e passaremos a forçar a geração de um feed resumido. Para isso, ainda tendo em mente o primeiro dos blocos de código acima, elimine as linhas de números 40 e de 42 a 49 do arquivo. Para facilitar a explicação, a figura abaixo destaca as linhas que iremos apagar:

highlighted_rss2php.jpg

A exclusão das linhas destacadas na figura acima fará com que este bloco, após a edição, fique com apenas uma linha, como a seguir:

]]>

Salve o arquivo com um nome diferente do original. No meu caso, usei o nome wp-rss2-sumario.php. Em seguida, faça o upload deste novo arquivo para o mesmo diretório onde estava o original. Em seguida, será hora de testarmos o novo feed resumido que acabamos de criar.

O teste será prático, simples e indolor: Consistirá em testarmos nosso novo feed com um leitor de nossa preferência. Para esta demonstração, continuarei um fiel adepto do novo Google Reader.

add_reader_sumario.jpg

Uma vez adicionado o endereço do novo arquivo do qual acabamos de fazer o upload, voilá! Um feed resumido instantâneo é produzido, tal como podemos observar pela ilustração abaixo, em que o indicador [...] está ativo.

resultado_feed_resumo.jpg

Pronto! Com este resultado, basta criar uma referência ao novo feed na barra lateral de seu blog (tal como eu mesmo já fiz, depois deste tutorial) para que todas as pessoas possam usufruir de feeds completos ou resumidos a seu bel-prazer. O que posso garantir é que todos os seus leitores estarão plenamente satisfeitos depois desta.

[ratings]

Eu e feeds completos

Quem me lê com freqüência já sabe: Troquei o Bloglines pelo Google Reader. Mas embora eu esteja adorando a mudança, devo dizer que pelo menos uma característica da antiga ferramenta faz uma falta enorme na nova: A exibição do número de usuários que assinam meu feed RSS.

Acho fantástico poder saber quantas pessoas assinam meu site (e, às vezes, até quem). Afinal de contas, são elas — dentre as milhares que provavelmente passam mensalmente pelo meu endereço mas que permanecem pouquíssimo tempo nele — as que preciso tratar com maior cuidado e respeito: Elas gostam do que escrevo, acham interessantes as minhas idéias e pensamentos e voltam com freqüência para ler as novidades.

Ofereça seu Feed CompletoÉ por isso que, ao me atualizar a respeito do que anda acontecendo na blogosfera hoje, só posso dizer que recebo de braços abertos a campanha que o Rafael Arcanjo resolveu começar: Trata-se da disponibilização de nossos feeds completos para todos os nossos leitores. Assim eles não deixarão de nos acompanhar e poderão fazer isso através de seus agregadores de preferência, sejam eles quais forem.

Quer mais argumentos?

Um argumento basta

Meu argumento pessoal mais forte para a disponibilização de um feed completo reside no fato de que, assim como alguns leitores possuem o meu site entre seus favoritos, eles também lêem dezenas, centenas ou milhares de outros sites da grande rede, pois acham seu conteúdo tão ou mais interessante que o meu próprio.

Assim sendo, não é correto que eu obrigue cada um de meus leitores a fazer uma visitinha forçada. Se você disponibiliza apenas o resumo de seus artigos, me acredite: As visitas ao seu blog continuarão ocorrendo sem que seja preciso utilizar-se deste artifício, e elas também serão de seus fiéis leitores. Uma dica simples é manter o que você escreve o mais interessante possível. Afinal de contas, comentários, por exemplo, exigem visitas aos blogs.

Adsense em risco?

Sua preocupação está nos cliques e ganhos que você deixará de obter com programas como o Google Adsense? No blog do Rafael esta pergunta está devidamente respondida, e eu recomendo a leitura.

Mas, de qualquer forma, aqui também cabe dizer o que eu, particularmente, penso sobre anúncios publicitários em blogs, e é muito simples: Acho que eles se destinam mais aos visitantes aleatórios do que àqueles que lêem meu site com freqüência. Não sou nenhum expert nessa questão, mas a impressão que tenho é de que provavelmente seja mais raro que alguém que me lê com freqüência clique em um anúncio de minha página do que aquelas pessoas que são leitoras de títulos ou que vieram parar aqui acidentalmente — através do Google, por exemplo.

Com isso, não estou querendo dizer que seja impossível que algum leitor freqüente clique em um anúncio — eu mesmo faço isso, às vezes. Só digo que é mais difícil. Leitores aleatórios, ao contrário, provavelmente o façam mais facilmente: Eles chegam procurando alguma coisa, lêem apenas aquilo, julgam se é ou não relevante e, para continuarem com sua navegação, podem, entre outras coisas, se sentirem atraídos pelos anúncios.

Como saber se meu feed é completo?

Muitas pessoas que se utilizam do WordPress para a confecção de seus blogs pessoais podem estar achando a idéia de disponibilização dos feeds completos uma coisa excelente, ao mesmo tempo em que já se perguntam sobre como fazer para que isso ocorra facilmente.

Assim sendo, vou contribuir aqui com — mais — dois centavos sobre o assunto. A mudança que fará com que você disponibilize artigos completos ao invés de resumos do que escreve aos seus leitores pode ser feita diretamente através do Painel de Controle do WordPress.

feeds_completos.jpg

Uma vez logado, basta que você clique em Opções » Ler. Na seção Alimentação para assinaturas, selecione a opção Texto completo ao responder à pergunta sobre o que mostrar para cada artigo, tal como ilustro acima.

Pronto. Sua adesão à campanha Feeds Completos estará automaticamente feita e você passará a estar na vanguarda da informação, assim como não apenas eu já faço, mas também Neto Cury, Bruno Alves e, é claro, o BlogAjuda, entre muitos outros! Aproveite e escolha uma das imagens disponíveis por lá para que você mostre seu apoio.