かんたんすぎ かっこよすぎ Yahoo pipes
![]()
yahooがyahooには似合わないくらいにかっこいいサービスを出した。その名も Pipes: Rewire the web とすごいサブタイトルがついています。rewriteはいい過ぎだけど。(よくみたらrewriteじゃなくてrewireだった)
Pipes is a hosted service that lets you remix feeds and create new data mashups in a visual programming environment.
と書いてあって、要するにフィードを混ぜたりするツール。UNIXのようにXMLデータをパイプをつないで処理したりできると便利だよね、というのは IBM dW : XML : XMLの論考: マイクロフォーマットのパイプストリーム – Japan にも書かれていた話。IBM dW の話は一般的なXMLの話で、行を単位にして扱うUNIXのツール群に比べるとXMLは複雑だし、そのツール群も今から整備していくという段階なのかなという印象を受けた。なのだけど、この Yahoo Pipes は扱うXMLをRSSにしぼったことで(しぼってないかも)かんたんに使えるようになっている。
HTML+jsで作られているグラフィカルなUIで、フィードの生成元パーツなんかを配置して、途中にフィルタをかましたりしながらパイプでつないで最終的に出力させるという仕組み。
個人的懸案である、CodeZineのフィードからコーディングの話だけを取り出す、というのをまずやってみました。CodeZineは”開発者のための実装系Webマガジン”と銘打たれていて、マニアックなアルゴリズムを紹介する記事が載ったりするいいウェブマガジンです。RSSもちゃんとあるのですが、これがニュースと広告ばかりが入ってきて、コーディングの話が埋もれて見逃してしまいがちなのです。

生のフィードはこんな内容。[N]がニュースでAd: が広告です。フィードのURLは
http://codezine.jp/rss/new/20/index.xml です。
さっそく yahoo pipes で create a new pipe して、ここから実装系開発者むけ情報だけを残してあとは捨ててみましょう。
特定のフィードを読み込みたいときは Fetcher を使います。左側のSourcesからドラッグしてきて

URLを設定して、丸いところをつなげたいところにドラッグするとつなぐことができます。押したときに、つなげられるところがハイライトされるようになっているので、ハイライトされなければ何かが間違っているというのがわかるようになっています。

Refreshを押して

結果を見てみましょう。

オーケー。生のフィードが出てきました。
で、この中からいらないのをフィルタします。Operationsを開くていろいろな操作をするモジュールが入っています。フィルタリングはFilterモジュールでできます。適当にスペースを空けてあげて、間にフィルタをつめます。

つなぎ変えて、[N]が入ってるやつを捨てるようにしてみました。

出力結果から[N]のつくのがなくなります。すごーい!
ついでに猫プログラミングも捨ててみました。

変化なしです。日本語はうまく扱えないようですね。
Operatorsの一覧を見ると、こんなことがしたいっていうのはだいたい網羅されています。グラフィカルにルールを書くのは簡単なことをしたいときにはすごく楽です。逆に、ヘルプを見るといろいろサンプルコードを見ることができるのですが、複雑なことをしようとするとすぐに見通しが悪くなって使いにくそうですけど。
できあがった pipe は publish して Run this pipe するとRSSフィードのURLが表示されます。今回作ったやつだと
http://pipes.yahoo.com/pipes/qtk7fzu32xGNuINRXqIxGw/run?_render=rss
こんなURLになっています。
というわけで、複数のフィードをまとめて重複を排除しつつ広告も抜く、とかがperlのコードを知らなくても簡単にできちゃいます。できませんでした。
まだ触ったばかりですが、pipesで用意されていなければ、自分で作ったpipeの出力に自分で作ったコードを置いてあるURLを間にかますことで対応できそうです。ほかのpipeをひとつのモジュールとして配置することができるようになっているので、自分で作ったコードを呼び出すだけのpipeをつくって、ほかのpipeにつなげてあげれば、途中で任意の加工をすることができます。
複雑なことがどこまでやりやすいかは疑問ですが、自分のマシンでコードを動かすと自分で面倒を見ないといけませんが pipes で動かせばyahooのひとが面倒を見てくれるというところがplaggerとくらべたときの利点だと思います。自分でカスタムで書いた間にかますコードはningにでも置けば、完全メンテナンスフリー!
deli.cio.us, flickr, webjay と、いいサービスを買収してるばかりかと思われたyahooがかっこいいサービスを出してくると、また日本のヤフーにも期待したくなってきます。
*
訂正
自分で作ったpipeはその出力を取り出せるだけで、そこにデータを流し込むことはできませんでした。なのでpipesでは最後に自分で作ったモジュールをかましてピザを頼むとかして遊ぶことはできません。
Introducing Pipes には
Here are some of the things we’re already got planned for future releases:
* * Programmatic access to the Pipes engine
* * Support for additional data sources (such as KML)
* * More built-in processing modules
* * The ability to extend Pipes with external, user-contributed modules
* * More ways to render output (Badges, Maps, etc…)
とあるので今後に期待。

6 Comments
Jump to comment form | comments rss [?] | trackback uri [?]