Catalystでamazonアフィリエイト

blosxomでいうところのawsxomみたいなのが欲しいんだけど、コントローラーからNet::Amazonを使ってASIN:XXXXXXっていう部分を直接書き換えるようにするのがいいのか、それともCatalyst::Model::Net::AmazonのModelと適当なクラス名を用意して、Javascript+JSONで扱ったほうがよいのだろうかと考えていた。

後者だとMochikitでいろいろやれそうな感じになってよさげな気がするが、後で試してみよう。

ブラッスリームギでカレー

三島のヤオハンのつぶれた跡地(ネクステージっていうの?知らんけど)に立った高層マンションの隣にあるみずほ銀行の細い通りにひっそりと、ムギは在る。

ブラッスリームギ ブラッスリームギのブラックベリー

ディナーは何度がいっているが、今回初ランチ。というのも、子育て優待カードが使えるということをU隊長が発見したからだ。子育て優待カードというのはここらへんの市町村が発行している、子供連れだと色々特典がつくというものだそうだ。ムギだと子供にオレンジジュースがもらえる。

普通にランチセットを頼もうと思っていたのに、メニュー見て何故かカレーを注文。

サラダ カレー

カレーはシーフードカレーで、温泉玉子がのってた。突き崩しながら食べていくとまろやかでうまい。

ジェラート

ジェラートはさっぱりな感じで重くなくていい。うちの子どもにも一個おまけしてくれた。ナイスっていうかかなりうまそうに食べてた。

はてなスターつけたヨ

個別のエントリのページでタイトルがエントリータイトルでなくDrkcoreとなっている部分を修正。あと、新規投稿をCtrl-.に変更。ちなみにDrkcoreはDrum'n'Bassのダークコアからとったわけですなこれが。

今回さらに、ピコピコ押す感がちょっと楽しげなはてなスター付けてみた。

はてなスター日記みながら、

Hatena.Star.headerTagAndClassName = ['h2','entry-title'];

で上書きかませばいいらしいんだけど、なんか上書きされてナイっぽい。

ので、Hatena.Star.EntryLoader.loadEntriesを上書きしたらOK。というより、サンプルちょこちょこといじって済ませた。かなりやっつけ。

Hatena.Star.Entry.Drkcore = new Ten.Class({
    initialize: function(doc) {
        this.doc = doc;
        var h2 = doc.getElementsByTagName('h2','title')[0];
        this.title = Ten.DOM.scrapeText(h2);
        var widget = \ 
        Ten.DOM.getElementsByTagAndClassName('div','widget_bottom',doc)[0];
        this.uri = widget.getElementsByTagName('a')[0].href;
        this.comment_container = \
        Hatena.Star.EntryLoader.createCommentContainer();
        h2.appendChild(this.comment_container);
        this.star_container = Hatena.Star.EntryLoader.createStarContainer();
        h2.appendChild(this.star_container);
    }
});

ただ、comment_conteinarとstar_conteinarをDOMの好きなところにぶら下げれば別にタイトルの隣じゃないところに持っていくことができるな(コメント欄とか)。

drkcore

個別のエントリのタイトルのとこが変だ。

あとで直す。

あと、Ctrl-cで新規入力はコピペがしにくくなるので駄目だった。キーの割り当てを変える。

かど乃やで黒びしおラーメン

御殿場線岩波駅から歩いて15分くらい。店はちょっとわかりにくいところにあるが矢崎の近く。店の前の駐車場はやたら狭いうえに停めにくそう。他にも駐車場あるのかな、わからん。

かど乃や

黒びしおラーメンというものを注文。醤油トンコツらしい。

黒びしおラーメン

麺は縮れ麺のややパサパサ目。腰があるというよりは噛み切って食べる感じの麺。トンコツスープは和歌山っぽいと言われればそんな感じ。

卓次郎商店でつけ麺

台風のせいで今週末は特にやることもないので、みんなでラーメンでも食べに行くことにした。沼津の千本浜のあたりに新しくできたという卓次郎商店。

卓次郎商店

店内には座敷が3つ程あり、子連れにもやさしい。ちびっこ椅子も完備でナイスだ。 で、つけ麺注文。昼と夜ではつけ麺のタイプが変わるらしい。

つけ麺

麺はかなり太め。海苔の上にのってるのは、削り節というか削り粉。混ぜ混ぜしながら食べるとうまい。スープはちょっと甘さを感つつも、頑張れば飲める感じの濃さ。

つけ麺 つけ麺

卓郎商店、卓次郎商店は、スープ割り必須。スープ割りでしめる。

pythonで単語の頻度をカウントするには

perlだと

for my $word (@word_list) {
  $count{$word}++;
}

とかできるのだけど、pythonだとループの内部で

if count.has_key(word):
    count[word] = count[word] + 1
else:
    count[word] = 1

とかやって、キーがあるのかないのか調べないといけないようだ。

もっとスマートなやり方あるような気もするんだが。

Caverってよさげ

Caverってのがなんかヨサゲですヨ。こういった空間にあてはまるような体積をもつ化合物を設計することと、ドッキングシミュレーションは等価なんだろうか?とか思った。

All Blue

Drum & Bass Arenaで一位になってたAll Blueがなかなかよい。

はてなブックマークでつけられたコメントをMochikitでインクルード

はてなブックマークでつけられたコメントをblosxomにインクルード はprototype.jsが必要なのだけれども、今作ってるやつがMochikitなのでモチキなはてブ。

MochiKit で JSONP の利用のライブラリを使えばさくっと。

var ker = '/Computer/W2K/meadow061111.html';
var url = 'http://b.hatena.ne.jp/entry/json/?url=' + encodeURIComponent(ker);
var d = sendJSONPRequest(url, 'callback');

d.addCallback(function(json) {
replaceChildNodes($('comments'),
          DIV(null,
              map(function(data) {
                  return DIV({class:'hateb'},
                     IMG({class:'hateb',
                          src:'http://www.hatena.ne.jp/users/' + data.user.slice(0,2) + '/'+ data.user + '/profile_s.gif'}),
                     ' ' + data.user + ' @ ',
                     data.timestamp,BR(),
                     data.comment,
                     A({href: 'http://b.hatena.ne.jp/' + data.user})
                     );
              }, 
              filter(function (b){if (b.comment.length > 0 ){return b;}},json.bookmarks))));
});

Mochikitだと関数型言語っぽくリストを扱えるのとDOMの関数がわかりやすかったりするので、JSONPで返ってきたJSONを処理するのにはよい気がする。