Google Reader がなくなるのは実はよいことかもしれない | Lifehacking.jp
最も多い「RSSは死んだ」議論の勘違いは、データ連携「プロトコル」であるRSS(Atom含むfeed)と、feed集約/閲覧ツールであるfeed reader(Google Reader含む)という「I/F」を混同して話している点です。
Google Reader がなくなるのは実はよいことかもしれない | Lifehacking.jp
最も多い「RSSは死んだ」議論の勘違いは、データ連携「プロトコル」であるRSS(Atom含むfeed)と、feed集約/閲覧ツールであるfeed reader(Google Reader含む)という「I/F」を混同して話している点です。
最近折り紙以外に何もしていないので、お茶を濁すために、このブログのフィードをFeedBurner経由にしてみました。
Google Readerで自分のブログをSubscribesに入れれば、Google Reader内の購読者数は確認できます。
RSSで82、atomで18名の方に登録していただいているので、自分の登録分や重複を除いて100人前後だと思っていたのですが、FeedBurnerの集計で倍の215となっているのに驚きました。
それ以上に、集計内容に驚いたのですが、てっきり"Google Reader"と出るのかと思ったら、"Google Feedfetcher"という名前のフィード用クローラ?なんですね。
フィードではなくページに埋め込んでいるAnalyticsとはまた違った分析内容で面白いです。というか知らないリーダの方が多いのにびっくりしました。
また、たまに購読している人のフィードで"links for del.icio.us"というエントリーが流れてくるのも、どうやっているのかと思っていたんですが、これもFeedburnerの機能だったんですね。
この辺のフィードのミキシング(アグリゲート?)はFriendFeedに集計機能さえあれば代替になる気もするのですが、フィードのインプット・アウトプットの整理、リダイレクト、購読リスト(OPML)自体の同期や変更配信、集計・分析など決定版的なひとつのサービスにまとめたくもあります。
FeedburnerもGoogleに買収された後、割と最近になって動き出したようなので、これから継続的に追いかけていくのが面白いサービスかもしれません。
Google Readerには自分の購読しているフィードを共有する機能があります。エントリー単位でもタグ単位でも公開できますが、公開するためのページが用意されています。
https://www.google.com/reader/shared/user/{user id}/label/{tag name}
http://www.google.com/reader/public/atom/user/{user id}/label/{tag name}
ところが、このような、共有画面→購読ボタン(ブックマークレットやアドオン)→Google Readerの確認画面、という面倒な手順を踏まなくても、一発でGoogle Readerの確認画面にたどり着けます。
自分がGoogle Readerでタグ別のフィードを閲覧する際のURL、例えば下記の様な
https://www.google.com/reader/view/#stream/user/{user id}/label/{tag name}
このURLを他人が踏むと、踏んだ人のGoogle Readerの画面に飛び、購読するかしないか聞かれます。
もちろん踏んだ側がGoogle Readerを利用している前提ですが。
{tag name}のタグが公開に設定されているタグの場合、他人がそのまま購読できます。
{tag name}のタグが非公開設定の場合、「権限がありません」と言われておしまいです。
最近のソーシャルブックマークは大概フィードを生成していると思います。他の人のブックマークのフィードをGoogle Readerなんかで見ていると、最近「Google リーダー」というタイトルのエントリーが流れてきます。このエントリーを開いてみたところ前述の様な仕様に気付きました。
自分の公開フィードをセルフブクマするのが流行っているのかと思ったのですが、単にミスしているだけみたいです。
Google Readerの画面から、各エントリーを直接ブックマークしようとして、間違えてGoogle Reader自体をブックマークしているようです。あとからその人のブックマークページを見に行くと消えています。
Google Readerユーザ間で共有するための処理が1ステップ減るのは便利な反面、もしブックマークは不特定多数に公開しているけど、共有フィードは身内にだけ共有するつもりで公開している場合など気をつけたほうがいいですね。
気のせいか上記の「Google リーダー」が流れてくるブックマークは、はてブのユーザが多い気がするんですが、アドオンなどのショートカットキーが間違えやすいんでしょうか。
多いといっても見掛けたの自体まだ2~3件ですが。
一言で言うとfeed aggregatorです。
OpenIDという点と、自分のfeedを横断的に検索可能という点だけでも利用価値があると思います。過去に書かれた解説記事と比較する限りでは、取り込み可能な対応サービスも1年で倍ぐらい増えています。
Google ReaderのShared itemsはfeedを出すだけ出していても、他人のfeedを検索も出来ないし、ホットエントリーの様な集約もされていないし、と思っていたのですが、この手の外部サービスがあれば、発信元はとりあえず出すだけ出しておけばいいんですね。流行れば買収なり真似なりしてくれるでしょうし。
ラベルリストを表示するウィジェットはデフォルトで用意されていますが、「貼られた回数順」か「あいうえお順」しか選択肢がありません。
しかし、例えば具体的なサービス名や作品名などの固有名詞をラベルにしている場合、ここ半年言及していないのに"A"で始まるからという理由で"Amazon"のタグが一番上に表示されていても大した役に立ちません。流行物を追いかけているブログほどラベルリストが役立たずになってしまいます。
そこでBloggerのサイトフィード機能の一つ、JSONフィード出力機能を使って「直近のエントリーに貼られたラベルリストを抜き出して表示する」というのをやってみました。
1:RecentoryLabels = {
2:"labels" : {},
3: // labelsオブジェクトに未登録のラベルを追加
4:"init" : function(_aJsonData) {
5:
6: // JSONフィードからエントリー配列(root.feed.entory)を取得
7: var entrys = _aJsonData["feed"]["entry"];
8:
9: // 各エントリーのラベル配列(entory.category)を取得
10: for (i in entrys) {
11: var updated = entrys[i]["updated"]["$t"];
12: var categorys = entrys[i]["category"];
13: for (j in categorys) {
14: // JSONフィード自体が更新日の降順でソートされているので、
15: // 既に登録されている=そっちの方が新しい
16: if (!(categorys[j]["term"] in this.labels)) {
17: // 更新時間のマッピングは特に意味なし
18: this.labels[categorys[j]["term"]] = updated;
19: }
20: }
21: }
22: this.disp();
23: },
24:"disp" : function() {
25: // 出力用にlabelsオブジェクトを配列に
26: var s = [];
27: for(i in this.labels) s.push(i);
28:
29: // "recentory_labels"というDIVかなんかを用意しておく。
30: if (out = document.getElementById("recentory_labels")) {
31: // カンマ区切りで表示
32: out.innerHTML = s.join(", ");
33: }
34: }
35:}
1:<body>
2: <div id="recentory_labels"></div>
3: <script src="http://knyijong.blogspot.com/feeds/posts/default?orderby=updated&alt=json-in-script&callback=RecentoryLabels.init"></script>
4:</body>
"RecentoryLabels.init"をコールバック関数に指定してJSONフィードを呼びます。disp中のgetElementByIdがnullを返さないように、JSONフィードの呼び出しは出力する場所より後に書く必要があるみたいです。
実際にはJavaScriptの32行目辺りをいじってラベル名をクリックしたらラベル別ページに飛ぶ、といったAタグを入れる予定ですが、メンドイので導入は気が向いたら。
出来ればクライアント(JavaScript)じゃなくてサーバサイドでやりたいですが、Yahoo Pipesでも使わないと無理でしょうか。
出力イメージです。このエントリー直前までのこのブログのラベルを「最近貼られた順」に240px幅の枠にクラウドっぽく表示した図。
J.S. Mach: Google Reader で Podcastsを聴く
存じませんでした。できたんですね。
というわけで実際にPodcastsで聞いている「聴く日経」のフィードを登録してみました。
フィードURL[http://nikkei.hi-ho.ne.jp/podcast/kiku1.xml]
実際の所「聴く日経」は通勤中に聞いているのでGoogle Readerで置き換えはできませんが、敢えてiPodに入れて聴くこともない類の物と使い分ける選択肢ができました。
URLとコールバック関数名を指定すると、
が返される様です。
ためしに"http://www.google.com"のJSONを取得してみると
http://badges.del.icio.us/feeds/json/url/blogbadge?url=http://www.google.com&callback=NAME
こんな指定で、
NAME(
[
{
"hash":"ff90821feeb2b02a33a6f9fc8e5f3fcd",
"top_tags":{
"google":2485,
"search":3571,
"internet":387,
"tools":342,
"web":561,
"searchengines":301,
"engine":691,
"reference":221,
"portal":101,
"searchengine":1074,
"imported":139
},
"url":"http://www.google.com/",
"total_posts":9445
}
]
)
こんな感じのJSONが返ります。
実際の返却内容は1行です。見やすいように整形してます。
この流れは嬉しいですね。基本的にWebサービスの検索結果は全部RSS,Atom,JSONで取得可能、というのがスタンダードになって欲しいものです(なりつつありますが)
http://{BLOG_NAME}.blogspot.com/feeds/{source}[?{option}[&{option}]]
source : posts/{length}[/[-/[LABEL_NAME]]]|[POST_NUMBER/]comments/{length}[/]
length : default|full|summary
option : alt={format}|callback={FUNCTION_NAME}
format : atom|rss|json|json-in-script
beta.blogger.comやwww.blogger.comドメインのパターンは面倒なので割愛。
manの書式に似せて書きましたが間違えているかもしれません。この書き方の方が見やすいかと思ったのですが、割と複雑になってしまいました。
LABEL_NAMEがpostsの前か、POST_NUMBERの位置がcommentsの後ろなら、もっとわかり易い思うのですが。特定のラベルに付けられたコメント一覧が見たい、とか需要ないですかね。
参考:
clmemo@aka: Blogger Beta の各種フィードのまとめ
クリボウの Blogger Tips: Blogger beta のラベルフィード
?alt=json
をつけるとJSON形式で返ってくるようです。
Firefox(2.0)で表示すると
XML パースエラー: 整形式になっていません。
と表示されますが、[ページのソースを表示]すれば中身はちゃんとJSONのようです。
これはちょっと、いろいろ面白いかも。
昨日の夜、Blog This!から投稿したら、こんな所でまで、さっさと変えろと言われてしまったので衝動的に変えてしまいました。
多分トップページ分のフィードが無駄に再送されたことと思います。
三つあったBlogger用のアカウントをひとつのGmailアカウントに統合するか、など色々悩んでいたのですが、キリがなさそうなので結局分けたままです。ブログの管理アカウントの変更などはこういった機会以外にも常時できると便利だと思うのですが。
また最近betaへの移行とは関係なくBloggerのブログのフィードが急に再送されてきます。すでに移行された方のブログや自分の更新していないブログのフィードまで再送されてくるのはなんなんでしょうか。