White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

頼まれていないのに勝手にソースを読む

実はjavascriptの書き方をよく知らない。1ミリくらいはわかるけど、ほとんど知らない。
だけどここのソースを見たら読んでみたくなったので勝手に本人無許可で解説してみる。
http://subtech.g.hatena.ne.jp/mala/20080715/1216091204

new function(){
 // disable reload
 feed_unsubscribe = function(sid, callback){
  var api = new API("/api/feed/unsubscribe");
  callback = callback || Function.empty;
  api.post({subscribe_id:sid},function(res){
   message("購読停止しました");
   callback(res);
  });
 }

購読停止をAPI経由でpostする関数。これって後ろで呼ばれてるのかな?

 var seen={};
 list=[];
 subs.model.list.forEach(function(feed){
  if(feed.link&&seen[feed.link]&&feed.feedlink.indexOf("?")==-1){
   list.push([seen[feed.link],feed])
  };
  seen[feed.link]=feed
 });

 console.log(list.length+"件の重複があります");

subs.modelの中にあるfeedを一件一件見に行って、既に見に行ったのがあればlistに入れる。あろうがなかろうがseenにつっこむ。

 buf=[];
 var tmpl = function(f){
  feedlink2id[f.feedlink] = f.subscribe_id;
  return f.feedlink +"("+f.subscribers_count+" users)" + ': <a class="unsub_button" rel="unsubscribe" href="' + f.feedlink + '">解除</a>'
 };
 list.forEach(function(pair){
  buf.push("<dl><dt>"+pair[0].title+"</dt><dd><ul>");
  buf.push("<li>" + tmpl(pair[0]) + "</li>");
  buf.push("<li>" + tmpl(pair[1]) + "</li>");
  buf.push('</ul><dd></dl><br>');
 });
 $("right_body").innerHTML=buf.join("");
}

結果をhtml形式で表示している。$("right_body")って専用の変数かしら。