Pages

Friday, January 11, 2008

Idéias de uso para o Pipes

A foi perguntado no "Garota Sem Fio" se seria possível filtrar o conteúdo de um determinado feed. No caso, eu entendi que ela queria filtrar todos os posts que falavam sobre coisas que ela não tinha interesse em feeds que ela lê diariamente. Um xará respondeu Yahoo Pipes. Eu também ia responder isso, mas como completei, ele é um sistema muito, mas muito chato de gerenciar múltiplas fontes.

Além disso, eu não considero o sistema trivial. Quer dizer: se quiser colocar um feed entrando e saindo sem fazer nada é fácil, mas vai entender certos conceitos de edição do conteúdo. Vai criar um feed para uma página que não tem um. As ferramentas estão lá, mas não estão tão claras assim.

E já houve uma época que eu tive a brilhante idéia de agregar todos os feeds (ou pelo menos a grande maioria) que eu leio pelo Pipes criando verdadeiros "planetas" com filtro de conteúdo e de entradas duplicadas. Mas acontece que eu esbarrei em um problema grotesco, como transferir todos os feeds que assino para dentro do Pipes? Não existe um "import OPML" (que eu tenha descoberto), a única forma de transferir os meus feeds para lá seria manualmente (existe algumas coisas que poderiam ser feitas no caso de eu criar uma página e colocar nela todos os links dos meus feeds, mas isso seria quase tão trabalhoso quanto!), então eu desisti. Mas existem outras coisas que podem ser feitas como o Pipes. Talvez não tão cansativas ou demoradas como transferir 200 feeds manualmente para dentro de um sistema.

Primeiro, eu preciso que você conheça um pouco do que é o Pipes. A melhor forma de aprender é vendo o vídeo de demonstração do sistema. Ok, ele está em inglês. Eu sei. Mas acredito que isso não seja uma barreira (não me refiro a língua, me refiro ao fato de que não é preciso ouvir para entender tudo, para entender o principal basta acompanhar o visual). A documentação do Pipes não é tão clara, nem tão boa quanto eu gostaria que fosse, mas serve (afinal, não tem outra mesmo!. Você pode ler essa introdução básica em português. E vou logo avisando que certas dúvidas só vão ser respondidas depois de demorada pesquisa na documentação oficial. Mas certas coisas nem em inglês, nem na documentação oficial, eu encontrei respostas. A sorte é que quase toda a documentação possuí um exemplo (e isso ajuda muito, então sugiro que realmente rode, consulte e abra os exemplos).

Depois de ter feito sua inscrição no Pipes (caso não tenha uma conta Yahoo) e de preferência ter tentado repetir um exemplo básico (esse é um bom começo). Verifique "todas" (eu não espero que veja todas, apenas as mais interessantes para você) as idéias já publicadas por terceiros. Observe que alguns são muito simples e outros são extremamente complexos (existe muita coisas duplicada em termos de idéia, isso porque muita gente segue essa dica que eu passei, de estudar o trabalho alheio antes de começa com o seu). Pode, por exemplo, começar com os Pipes mais populares ou ir direto ao sistema de tags ou ao motor de busca que facilita a localização de idéias específicas. Verifique que você pode "clonar" um Pipe. Isto é, copiar ele para dentro dos seus Pipes, onde poderá editar adicionar e remover elementos.

Esse é o maior ganho que o Pipes obteve com o tempo, os exemplos de terceiros. Exemplos de pessoas, que sabe-se Deus como, entenderam como o sistema funcionava e teve a brilhante e agradável idéia de compartilhar essa informação conosco através de exemplos.

Agora que você já sabe como usar os Pipes melhor do que eu, talvez esbarre em um problema: usar ele para fazer o que ? A idéia mais trivial é a que mencionei no começo do tópico. Filtrar conteúdo de feeds, mas esbarra também no problema que mencionei, é preciso levar os feeds manualmente até o Pipes (a menos que alguém saiba uma forma de contornar isso).

Depois da pergunta da Bia eu reabri o meu Pipes e vi lá o único que ainda estava na lista (que é o exemplo do Meio Bit) e comecei a pensar o que eu poderia fazer hoje. Eis que me lembrei de uma coisa que eu deixei de fazer: acompanhar links marcados com certas tags no del.icio.us. O problema de acompanhar tags, e não usuários, é que quando um link é adicionado ele é adicionado em pelo menos duas tags (com raras excessões, são muitas tags), exemplo, a home page do firefox cabe: "firefox, software, linux, windows, opensource, web, internet, navegador". Se você acompanha as tags: "firefox, software, linux, opensource, web". Você vai ver o mesmo link 5 vezes em 5 listas diferentes. Quer algo mais improdutivo ? Têm ! Haverá mais de um usuário adicionando aquele link, em tantas outras tags (quando não as mesmas e mais alguma).

Então, que tal acompanhar o del.icio.us através do Pipes ? Porque ? Simples. Entre outras coisas ele permite remover conteúdo repetido. Assim, quando o mesmo link for adicionado em 5 tags que você acompanha, você só verá o link 1 vez no seu leitor de feeds. Se mais de um usuário adicionar o feed em um intervalo menor que o "check" do Pipes você nem mesmo perceberá. Isso é muito, mas muito mais produtivo que acompanhar diretamente as tags do del.icio.us.

Como uma imagem vale mais do que mil palavras, veja a imagem abaixo que trás o esquema desse pipe (Clique na imagem para ampliar).


Ele consiste em usar três módulos. Um para capturar os feed (Fetch Feed), pode-se adicionar quantos quiser, e dois para filtrar elementos repetidos. O primeiro filtra os elementos que referenciam o mesmo link e o segundo que possuem o mesmo título. Há perdas ? Sim. Se existirem dois links com o título: "Qual é a melhor Pasta ?" forem publicados no mesmo intervalo, vai acontecer de um ser ignorado, mesmo que o conteúdo seja diferente. Da mesma forma existe ineficiência. Pequenas modificações no título unido a pequenas modificações na url (tipo ter ou não uma / no final) vai acabar passando por esses módulos. Mas a taxa de ineficiência é muito pequena (muito mesmo). E não existe ineficiência no caso de ver o mesmo link publicado em duas, três tags que você acompanha.

E para não dizer que fiquei em apenaseem uma idéia, eu sugiro voltar a idéia do filtro de conteúdo. Ele pode ser muito improdutivo se tiver que copiar todos os seus feeds atuais e passar por eles, mas e se ao invés disso você passasse todos os sites "digg-like" que você teima em acompanhar mesmo trazendo muito material repetido (entre dois serviços) e certa quantidade de links que não te interessam ?

No exemplo abaixo eu mostro como eu filtro a informação vinda do digg, do eu curti e do rec6 passando por um filtro de conteúdo do tipo mais simples (que avalia apenas o título).



O "segredo" do uso do módulo "filter" está onde você lê "any" no filtro acima. Por que ? Simples, o default é "all". Quando usando "all" é preciso que todas as regras estabelecidas abaixo sejam obedecidas para o filtro agir permitindo ou bloqueando o conteúdo referente (no caso eu escolhi "permit"). Quando se escolhe "any" apenas uma das regras listadas precisa ser satisfeita para um resultado "positivo". No exemplo acima eu monitoro das tais fontes apenas os itens cujo os títulos concordam com pelo menos uma das palavras chaves que selecionei. Um outro cuidado que se deve ter é que nem todos os feeds possuem os mesmos elementos. Ou seja, eu estou ali usando o elemento "title" comum a todos os feeds que estão em uso, mas o feed do digg tem elementos que só existem nele.

Você poderia passar por um filtro de conteúdo, depois por um filtro que elimine conteúdo repetido (cuidado apenas com esse último, pois o título tende a ter pequenas variações de um serviço para outro e seria preciso utilizar expressões regulares para uniformizar os títulos, por isso mesmo eu nem me preocupei com isso).

O Yahoo Pipes é um sistema que promete muito, mas ainda tem um longo caminho a correr para encontrar a comodidade e a popularidade que ele deseja para si. Eu ainda vejo esse sistema como um grande elefante branco. Por exemplo, pode ser muito mais fácil usar scripts comuns na internet (normalmente feitos em php ou shellscript) para coletar e filtrar o conteúdo de forma muito mais simples e privada. Claro que o Pipes economiza sua banda de rede e tem suas vantagens, mas não é tão grande quanto parece. Eu tenho esperança de que um dia eles melhorem a divulgação de como construir feeds de páginas que não possuem feeds.

No comments:

Post a Comment