銀明荘でざるとろろ

赤倉温泉スキーツアーの二日目は午後に移動が入るので、早めにあがってお昼でもと温泉街をぶらつく。なにやらあやしそうな食堂らしきものはいっぱいあって、まぁラーメンでも軽く食べとけばいいかなって感じだったんだけど、手打ち蕎麦の看板を見つけていってみることにした。

銀明荘

銀明荘

普通の民宿が昼にやっている感じで、普通に民宿の入り口からスリッパに履き替え、奥まったところの食堂に通されました。

注文は冷たいのはざる、天ざる、ざるとろろとのことなので、ざるとろろ注文。

ざるとろろ ざるとろろ

蕎麦の香りが気持ちよくなかなかうまかった。でもちょっと切りが気持ち太いというか揃っていると嬉しかった。辛汁は好みのからさでとろろに合ってたので美味しかった。何も考えずに入ったお店にしては満足度が高かったかも。

javascriptの関数のハンドラ化というもの

javascript第3版を読んでから、WEB+DB PRESS Vol.35のAjax特集など読み返していたら、オブジェクトのメソッドをイベントハンドラにするっていうところでちょっと分からないことがあった。

ProductName WEB+DB PRESS Vol.35

技術評論社 / ?円 ( 2006-10-21 )


function Human(name){
    this.name = name;
}

Human.prototype = {
    sayMyName: function(){
        alert('My name is'  + this.name + '.');
    }
};

var kzfm = new Human('kzfmix');
setTimeout(kzfm.sayMyName, 1000);

はだめで、

setTimeout(function(){kzfm.sayMyName()}, 1000);

とする必要があると。一緒に乗ってたコンストラクタでやる例をみても、あー、クロージャなんだなってことで納得したんだけど、クロージャ使わない最初の例だとthisって何を指すんだろうと気になったので調べてみた(googleで)。

くーすーって美味しいよね クロージャとthisスコープ

このコードがなぜいけないかというと、イベントに渡された関数オブジェクトに含まれるthisが参照するのは、インスタンスのメソッドではないからだ。何をさしているかというとこの場合、thisはelementノードをさしている。

ふむー。なるほど。しかしjavascriptの場合ダンプってどうやるのかは分からずじまい。perlのData::Dumperみたいのはないんだろうか。

と思って、debug javascript dumperで検索かけたらビンゴ。はてなでも質問されてた

あとでちょっと使ってみる。

planetにfaviconを表示させてみる

外部リンクにFaviconを表示するjavascript | caramel*vanillaを参考にPlanet Chemoinformaticsで購読しているフィードのfaviconを表示するようにしてみた。

favicon

Image::Identicon面白い

Identicon面白そうと思ってたら、Image::Identiconができてた。

イントラで使っているサービスのユーザープロファイルのデフォルトアイコン(というか画像)を登録時のIPからIdenticonを生成して使うようにしてみた。

視覚化の技法としても面白そうだ。例えば、リファラをハッシュに変換してIdenticonとして並べていくようなblosxomプラグインを書いたらどんな感じになるかな。

麒麟山のブラックボトル

ブラックのボトルに赤文字できりんざんでかなりいい感じのボトル。日本酒のボトルっぽくなくて好きです。

だが、酒に関してはちょっとすっきりしすぎる気が。ひやと燗つけて飲んでみたけど、イマイチコクというかどっしりしたものを感じないというか。

麒麟山

シャープなうまさと言われるとそうかなぁとは思うけど、旨さってかんじではないかな。食事にはあう系。

Win版インタラクティブJavaScript

COMいじりのjavascriptのデバッグめんどくさい。というわけで、win版spidermonkeyはないのか?

ということで、探したらこんなのあること知りました。素晴らしい。早速IE呼び出して試すか?なんて思ったらたつをの ChangeLogにそういうスクリプトありました。をを~

でも、ブラウザが見えるやつも書いておきます(忘れると困るから)。

js> var ie = new ActiveXObject("InternetExplorer.Application"); js> ie.navigate("http://www.google.co.jp/"); js> ie.visible=1

すんげー便利。今までちまちまエディタでhtml書いてたけど、開放された。Excelいじくるスクリプト試してみたり、pythonのwin32comで作ったコネクタのデバッグに使ったり、色々できてイイ。

javascriptの勉強などはじめてみることにした

DBICちょっと覚えて、TTにバカスカデータを送ると見栄えとか操作性がやたらと気になってくるのだけど、javascriptがいまいち分かってないので、なかなか思ったように動いてくれない。過去にもやらなきゃやらなきゃと思ったことは何度かあったのだけど、なかなか集中して勉強する機会が、、、

と言い訳するのは他にも英語とか。

ProductName JavaScript
デイビッド フラナガン
オライリー・ジャパン / ?円 ( 2000-12 )


ProductName JavaScript & DHTMLクックブック―Webエキスパート必携テクニック集
ダニー グッドマン
オライリージャパン / ?円 ( 2004-01 )


さすがにこのままじゃまずいと、これからこいつらを読みながら勉強してみることにした。本当はc++の写経でもしようかと思ってたのだが後回し。

ProductName まるごとJavaScript & Ajax ! Vol.1
天野 仁史
インプレスジャパン / ?円 ( 2007-02-15 )


まるごとJavaScript & Ajax !も予約したけど、、、

到着する頃には内容が分かるようになりたいなぁ。

webからインタラクテイブに蛋白質をいじるつもりだったが

今日は終日、javascript+activeXObjectでWEBからインタラクティブに操作できるビューアーがないか調べていたヨ。開発中が多くていまいちいいのが見つからないというか、javascriptもactiveXもほとんどいじったことがないでよくわからないというのが正直なところ。

pyMOLもcueMOLもスクリプトで制御できるのでWSHとかperlとかでガリガリやればできるとは思うんだがこれだとまぁ、インタラクティブではないよなぁ。

あー、javascriptとかactiveXまじめに取り組もう。

JavaScript

Perlだけじゃなくて、JavascriptとかPythonも覚えナキャってことで、ちゃんと本を買って読んでみました。

ProductName JavaScript
デイビッド フラナガン
オライリー・ジャパン / ?円 ( 2000-12 )


さらっと流しただけだが、なんとなくJavascriptがどういう言語なのかは理解した(つもり) でも、実際にクックブックとか見ながら手動かしてみないといけないなぁ。

DBICのSingleメソッド

というか、findとの違いがいまいち。searchは分かるのでいいとして、

DBIx::Class::ResultSet - Responsible for fetching and creating resultset. - search.cpan.org

Inflates the first result without creating a cursor if the resultset has any records in it; if not returns nothing. Used by "find" as an optimisation.

カーソルを作らずに最初の結果をインフレートする、ただし結果がない場合はなにも返さない。

じゃぁ、findって何?ってことになるわけだが。

findって主キーから探すときにしか使ってなかったけど、ユニーク制約かけてあるとこから探してもいいのね。知らんかった。

DBIx::Class::ResultSet - Responsible for fetching and creating resultset. - search.cpan.org

Finds a row based on its primary key or unique constraint.

singleだと

Return Value: $row_object?

と?がついているのに、findは

Return Value: $row_object

となっているということは、singleはオブジェクトを返すかもしれないし返さないかもしれないのに対し、findの場合は必ずオブジェクトが返ってくるということか。

じゃぁ、ユニーク制約はどこでどうすんの?ってことだけど、 add_unique_constraintにあるようにDBICに制約属性ふっておけばいいらしいので、DBICが制約が張られているのをチェックしてよきに計らってくれるのだろう。(確認してないけど)

というわけで、多対多とか一対多の場合に制約属性ふっておくと検索するときに楽になるのね。