Yahoo! Pipes
Yahoo! Pipes(パイプス)は、ウェブ中のコンテンツを収集し、処理し、マッシュアップするパワフルな合成ツールである。
Unix pipesと同様に、単純な命令を組み合わせてニーズに合った出力を作り出すことができる。
- 多くのフィードを結合させ、それから整理し、フィルターして、翻訳する。
- 好きなフィードをジオコード化して、インタラクティブ・マップに項目を表示させる。
- ウェブサイト上にウィジェット/バッジを置く。
- どのようなPipesの出力も、RSS、JSON、KMLその他の形式で得られる。
以下、pipes.yahoo.comの英文解説の全訳である(2008年5月8日現在の内容に基づく)。
★注意
- Pipesの閲覧はどのブラウザでも可能だが、パイプのソースを見る・クローンする・編集する場合は、IE7、Firefox、Safariが必要。IE6(またはIE6ベースのSleipnir)では編集作業ができないので注意。
- Pipesで作業するには、yahoo.comのアカウントを作成する必要がある。yahoo.co.jpのアカウントとは別なので注意。
目次
- 1 概要
- 2 Pipesエディターの使い方
- 3 Pipesバッジ
- 4 トラブルシューティング
- 4.1 他のモジュールにつなげないモジュールがあるのはなぜ?
- 4.2 ForEachコンテナーの中に置けないモジュールがあるのはなぜ?
- 4.3 パイプが壊れている。どうしたらいい?
- 4.4 使っているパイプが突然違った挙動を示すことがあるのはなぜ?
- 4.5 Pipesが私のRSSフィードをあまりにも頻繁にダウンロードしている!
- 4.6 私のフィードをPipesから使えないようにするには?
- 4.7 Pipesがサポートしているブラウザーは?
- 4.8 Pipesの私のアカウントにサインイン、サインアウトする方法は?
- 4.9 不正使用を報告するには?
- 4.10 Pipesに携わっているビジネス開発チームと連絡を取るには?
- 4.11 pipes.yahoo.comから「999 Errors」が出るのはなぜ?
- 5 関連項目
- 6 外部リンク
概要
Pipesとは何か?
Pipesとは、一般的なタイプのフィードを再編し、視覚的なエディターを使ってデータのマッシュアップを作ることのできるフリー・オンライン・サービスである。
Pipesを使えば、コードを1行も書くことなしに、独自のウェブプロジェクトを作ったり、独自のウェブサービスを公開・共有することができる。
パイプを作る
事前設定されたモジュールをカンバスにドラッグし、そのモジュールをPipesエディターでつないで、パイプを作る。
それぞれのパイプは、2つ以上のモジュールからできており、それぞれのモジュールは一つの特定の仕事を行なう。たとえば、Fetch(フェッチ=取り出し)モジュールで一つのフィードURLを引き出して、Sort(ソート=並べ替え)モジュールで指定した基準に基づいたフィードに並べ替える(利用可能なモジュール一覧参照)。
それぞれのモジュールは1つ以上の端子を持っており、それはインターフェースにおいては小さな円で表わされる。1つのモジュールの出力端子をクリックして、別のモジュールの入力端子への線をドラッグすると、モジュールをつなぎ合わせることができる。端子がつなぎ合わされた時点で、1つめのモジュールからの出力は、2つめのモジュールへの入力として使われることになる。
データ・フィード以外に、Pipesではユーザー入力フィールドもパイプに加えることができる。入力フィールドは、実行時にはフォームフィールドとして表示され、ユーザーがパイプに記入できるようになる。
Pipesを理解するのに最も手っ取り早い方法は、自分で1つ作ってみることである――早く始めるには、サンプルパイプをどれか編集してみよう。
パイプを共有する
パイプを作ったならば、Pipesのサーバー上にセーブしてから他のフィードと同じように呼び出すことができるようになる。Pipesでは、最大限融通がきくように、RSS 2.0、RSS 1.0 (RDF)、JSON、Atomフォーマットの出力を提供している。また、パイプを世界中に公開して共有することもできる。そうすれば、他のユーザーがクローンしたり、独自の改良を加えたり、独自の作品におけるサブコンポーネントとして使ったりすることができるようになる。
ホスティングされたパイプ
ホスティングされたパイプは、Pipesが提供するウェブ上のインターフェースであり、あなたでも他の誰かでもいいが、誰かが作って公開したパイプを実行できるようになっている。あるパイプの出力したコンテンツがどのようなタイプかを素早く決定するために、これは有用なメカニズムである。これはまた、あなたの好きなフィードリーダー(RSSリーダー等)にパイプを登録したり、パイプがどのように作られているかを見たり、自分でもっといじってみることができるようにクローンするための第一歩でもある。
私が作るパイプは非公開にできますか?
ユニークURLを知っているパイプにはすべてアクセスできる。そのため、特別な設定をせずにメッセンジャーやメールで知らせたり、公開することなく自分自身のパイプの中のサブパイプとして使うことができる。
あなただけが、自分のパイプのリスト("My Pipes")とそのURLを知ることができる。そのため、URLを誰にも知らせなければ、あなたのパイプは非公開のままになる。
パイプを「Publishing(公開)」とはどういうことですか?
パイプをPublishing(公開)すると、そのパイプはpipes.yahoo.com上で他の人から検索・閲覧できるようになる。それはサイト上のすべての人に対して、閲覧ページ、あなたのPipesページにおいて、また検索結果として表示される。
ウェブクローラーは私のパイプを取得することができますか?
このサイトは、クローラーが取得できるようになっている。 デフォルトでは、パイプはpipes.yahoo.com内のどんな公開ページにもリンクされていないので、クロールされない。しかし、パイプが「Publish(公開)」されたならば、クローラーはアクセスでき、検索結果にも表われるようになるだろう。
Pipesエディターの使い方
Pipesエディターは、JavaScriptオーサリングツールであり、直感的・視覚的なインターフェースでパイプを作成・編集できる。エディターは以下の3つの区画から構成されている。
- Library(ライブラリー)区画(左側)は、利用可能なモジュールと保存されたパイプを一覧している
- Canvas(カンバス)区画(中央)は、パイプを組み立てるためのメインの作業エリアである
- Debugger(デバッガー)区画(下部のサイズ変更な部分)は、あなたのパイプの様々な段階でのパイプ出力を点検できるところである
パイプを構築・編集するには、Library区画からCanvasへモジュールを移動させ、それをマウスでつなぎ合わせる。
Library(ライブラリー)
ライブラリー区画は、利用可能なモジュールの全リストを示す(これと同じリストは、Yahoo! Pipesモジュール一覧でそれぞれの解説つきで読むことができる)。モジュールは機能別にグループ分けされている。
- Sources(ソース)は、RSSフィードを返すデータソース(Yahoo Searchなど)である
- User Inputs(ユーザー入力)は、動作時にあなたのパイプのユーザーが記入する入力フィールドである
- Operators(オペレーター)は、foreach、ソート(並べ替え)、カウント、フィルターなどの基本機能である*URLには、URLを構築・操作するためのモジュールが含まれる
- String(文字列)は、文字列を扱うためのモジュールが含まれる
- Date(日付)は、日付を操作するためのモジュールが含まれる
ライブラリーには、他のユーザーの作ったパイプの中のお気に入りや、あなたが保存したパイプのリストも含まれる。これらのサブパイプは、ちょうどモジュールを使うときと同じように、新しいパイプの中のブロックを構築するために使うことができる。こうして、多数の制作物を通して再利用できる有用・複雑な構成要素を構築することができる。
あなたのパイプにモジュールやサブパイプを追加するには、それをカンバス上にドラッグするか、モジュール名の右端の「+」をクリックして、カンバス上の編集位置に置く。
Canvas(カンバス)
カンバスは、パイプを組み立てて試すためのメインの作業エリアである。モジュールをドラッグして、見やすいように好きなように配置したり、Layout(レイアウト)ボタンをクリックしてすべてをエディター任せで自動配置させることもできる。
どのモジュールでも、タイトルバーをダブルクリックすると、そのパラメーターがすべて隠れる。もう一度ダブルクリックする(または隅の最大化ボタンをクリックする)と、そのモジュールは最大サイズに戻る。構成要素の多いパイプを扱うときには、これは有用である。
パイプを働かせるためには、モジュールをつなぎ合わせる必要がある。これは、どのモジュールでも、出力端子をクリックし、そのデータを配信したいモジュールの入力端子をクリックすることによってできる。エディターでは、どの接続が認められるかを示すために、使える端子をオレンジ色に光らせる。どのモジュールでも、端子の上にマウスを動かせば、その端子がどのような種類のデータを出力・入力するかを見ることができる。
モジュール間の接続を切断するためには、接続の終端となっているどちらかの端子をクリックする(小さいはさみのアイコンが表われるだろう)。
多くのモジュールは、設定可能なパラメーターと入力フィールドを持っている。これは、普通のフォーム・フィールドのように記入することもできるし、他のモジュールからの適切な形式の入力接続で埋めることもできる。動作中にパイプにユーザーが各自入力できるようにするには、ユーザーインプットモジュールを使う。
サブパイプは、保存されたパイプリストからカンバスにドラッグされたパイプである。サブパイプは、通常のモジュールと同様にふるまうが、「open(オープン)」リンクが追加されている。このリンクをクリックすると、エディターに新しいタブが開いて、その場でサブパイプを編集できる。メインのパイプとサブパイプを編集しているときに、タグを切り替えるには、ツールバーのタイトルタブをクリックする。
Debugger(デバッガー)
デバッガー区画は、今選択されているモジュール(オレンジ色で表示)の段階で出力されるパイプの内容を表示する。パイプの最終出力を見るには、そのoutput(出力)モジュールを選択する。ときどき「Refresh(更新)」をクリックして、デバッガーが表示しているパイプからのデータを最新のものにするひつようがあるかもしれない。
デバッガーを使えば、パイプが期待通りのふるまいをしているかどうか確認するために、パイプの各部分を点検できる。デバッガーは、フィードにおけるそれぞれのアイテムのタイトルを表示する。それぞれのアイテム・タイトルの左側の小さな三角形をクリックすれば、そのコンテンツの詳細を調べることができる。
パイプの保存・実行
パイプを編集し終わったら、カンバス区画の右上端にあるボタンを使って保存しておこう。パイプに名前を付けるプロンプトウィンドウが表示される。また、パイプを公開するかどうか選択できる。Publishing(公開)すれば、パイプは誰にでも見えるようになり、みんなが各自で使うためのコピーをクローンすることができるようになる。
パイプが保存されれば、リンクには「Run Pipe...(パイプを実行する)」リンクが表われる。あなたのパイプリストページ("My Pipes")に戻って、それをリストから選んでも実行できる。
Pipesモジュール一覧
Pipesバッジ
Yahoo! Pipesバッジは、あなたのブログ、ウェブサイト、SNS上にPipesで生成されたコンテンツを置くためのものである。
トラブルシューティング
他のモジュールにつなげないモジュールがあるのはなぜ?
モジュールの端子は、特定のデータ形式を発したり、活用したりするようになっている。モジュールをつなぎ合わせるためには、これらの形式に互換性がなければならない。たとえば、 Fetch(取り出し)モジュールは、入力がURLでなければならない。だから、テキスト入力モジュールをそこにつなぐことはできない(これは文字列を与えるからである)。エディターでは、互換性のないモジュールをつなぎ合わせることはできなくなっている。
ForEachコンテナーの中に置けないモジュールがあるのはなぜ?
すべてのモジュールが ForEach繰り返しと互換性があるわけではない。フィード内のすべての項目に対して働くモジュールもある(Babelfishモジュールなど)。繰り返しの中にはめ込まれると不正な解釈になるものもある(ユーザー入力モジュールなど)。エディターは、ForEachコンテナーの中に互換性のないモジュールが置けないようになっている。
パイプが壊れている。どうしたらいい?
熟練した配管工のように、腕をまくり上げ、流し台の下に潜り込むことをおすすめする。つまり、この場合、Pipesエディターに戻って、何がまずいのかを確かめるのだ。
第一歩として、求めているデータがアクティブになっているかどうかを確かめよう。言い換えれば、あなたのパイプの最初の入力がフィードであるならば、そのフィードが内容を返していることを確認するのである。ブラウザーかRSSリーダーにフィードURLをコピーペーストして、何が表示されるか見てみよう。
あなたのパイプのフィードがアクティブであることが確認できたならば、デバッガーを使ってどこに間違いがあるのかを探ることができる。パイプのてっぺんから始めて、問題が発見されるまですべての段階に沿って出力を調べよう。
可能ならば、つなぐモジュールをできるだけ少なくすることによって、パイプを簡素化しよう。基本的なパイプから始めて、次第にくみ上げていき、それぞれの段階がうまく行っているかどうか確認しよう。
何をやってもうまくいかないならば、フィードバックシステムを使おう。我々は聞き、返答し、あなたのパイプが流れてほしいと思っている。最終的に何かまずいところがあれば、我々はそれをすぐに伝える。
使っているパイプが突然違った挙動を示すことがあるのはなぜ?
パイプが変化したか、パイプに流れるデータが変わったかである。誰か別の人のパイプを使っているのなら、その制作者は告知なしにパイプを変更・停止・削除できることを忘れないでほしい。何かをするためにほかの誰かの公開したパイプに頼っているのであれば、そのパイプをクローンして、予期せぬ変更があった場合でも自分の版を使えるようにするというのは、よい考えだ。
パイプは動的なものなので、パイプの中を流れる内容が変わるとその振る舞いも変化する。上流のフィードが、以前使っていたのと同じ種類のデータを配信しているかどうか確かめよう。
Pipesが私のRSSフィードをあまりにも頻繁にダウンロードしている!
Pipesは、訪れたフィードすべてのキャッシュを持っており、あまりにも頻繁に同じサイトからフィードをダウンロードしないで済むようにしている。Pipesを助けるために、あなたのフィードのLast-Modified、ETag、Expiresフィールドが適切に設定されているか確かめてほしい。Pipesはこれらの標準的HTTPヘッダーのいずれも尊重する。
私のフィードをPipesから使えないようにするには?
Yahoo! パイプの中であなたのフィード内容を使われないようにするには、3つの方法がある。
- ウェブサーバーが、ユーザー・エージェント"Yahoo Pipes"をブロックするように設定する。たとえば、ApacheでPipesをブロックするには、httpd.confのバーチャルホストブロックにこれを加える。
SetEnvIfNoCase User-Agent "Yahoo Pipes" noPipes <Limit GET POST> Order Allow,Deny Allow from all Deny from env=noPipes </Limit>
- 作られたフィードに以下のメタタグを加える。
<meta xmlns="http://pipes.yahoo.com" name="pipes" content="noprocess" />
- Pipesは、このタグを含むいかなるフィードの内容も無視するが、それでもあなたのサーバーからフィードを取得しなければならないと考えるだろう(タグを見るためには、フィードを読まなければならないからである)。
- ブロックしたいフィードURLリストをpipes-optout@yahoo-inc.comにメールで送る。あなたがこれらのフィードの持ち主であることを確認できるように、連絡先情報を付記すること。あなたのフィードをブロックするには数日かかる。
Pipesはウェブクローラーではない(このサービスは、パイプの作者かユーザーがリクエストしたときだけURLを検索する)。そのため、Pipesはロボット排除プロトコルには従わず、あなたのrobots.txtファイルをチェックすることもない。
Pipesがサポートしているブラウザーは?
おすすめの優先順にいえば、Firefox, IE7, Webkit, Safari。
PipesはOperaでは動作しないことがわかっている。Safariには少し問題がある。IE6は現在問題がある。
Pipesの私のアカウントにサインイン、サインアウトする方法は?
Pipesは無料のYahoo!サービスである。自分のパイプを作りたければ、Yahoo! ID(※yahoo.comのもの。yahoo.co.jpのIDは使えない)が必要である。もしまだ持っていないなら、ここから作成。
あなたのPipesアカウントにサインインするには、http://pipes.yahoo.com/ に行く。それから右上端の「Sign In」リンクをクリックする。
エディター以外のどのページからでも、Pipesアカウントからサインアウトすることができる。右上端のユーザーネームの横にある「Logout」リンクをクリックするだけでよい。
不正使用を報告するには?
事件について報告したければ、こちらまで連絡をとってほしい。pipes-abuse [at] yahoo-inc.com
Pipesに携わっているビジネス開発チームと連絡を取るには?
Pipesとパートナーになりたければ、ビジネス開発チームに連絡を取ってほしい。pipes-bd [at] yahoo-inc.com
pipes.yahoo.comから「999 Errors」が出るのはなぜ?
Pipesをヘビーに使うサービスを提供している場合、pipes.yahoo.comから「999 Errors」を受け取るようになるかもしれない。簡単な対処法がある。ビジネス開発チームに連絡をとってほしい。pipes-bd [at] yahoo-inc.com
関連項目
外部リンク
- モジュールを繋げてマッシュアップ!「Yahoo! Pipes」の使い方 - WebOS Goodies
- Yahoo!Pipesの使い方(全モジュール解説)福井プログラマー生活向上委員会
- ケーススタディで学ぶYahoo! Pipes入門福井プログラマー生活向上委員会