デザインパターンとJAVA

perlでモジュール作るときに、グダグダになってくることが多いので、いっちょデザインパターンの勉強を!

というわけで、購入したオライリーの本は言語がjavaだけど面白い。

ProductName Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本
Eric Freeman
オライリージャパン / 4830円 ( 2005-12-02 )


買うときは4.6Kは費用対効果が、、、なんて思っていたが、コード自体は感覚的に理解できるのでなかなかためになる。

とはいえ実際にperlではどう書くんじゃとなったときに困るので、

ProductName Web+DB press (特別総集編)

技術評論社 / ?円 ( 2005-03 )


のデザインパターン特集を見ながら一緒に勉強した。

が、ちゃんとjavaを理解していないとオライリーの本がきちんと理解できんので、

近所の本屋で結城浩の本を買って、年始に読破。

ProductName 改訂第2版 Java言語プログラミングレッスン (上)
結城 浩
ソフトバンククリエイティブ / 2520円 ( 2005-10-26 )


ProductName 改訂第2版 Java言語プログラミングレッスン (下)
結城 浩
ソフトバンククリエイティブ / 2520円 ( 2005-10-26 )


上下巻ともに、すらすら読めてすごくわかりやすかった。特にインターフェースとかスレッドの部分はperlにはなかったような部分なのできちっと理解するように何度か読み返した(スレッドは5.8ではわからんけど)。上巻は基本的な部分でもともとある程度は理解していたのでほとんど斜め読みだったが、下巻はperlでoopを少しは理解していたという面もあるが、流れがスムーズでさらさら読み進めた。そして言語体系としてのjavaもちょっとは理解した(気がする)。

特に予約語とか慣習とかは知らないとオライリーの本はきつい部分があるので、これからオライリーのデザインパターン本は2週目読みますゾ。

taggingプラグインをTagCloudに対応させたヨ

昨日、コメントスパム対策でblosxomを久々にいじったので、なんとなくその勢いでtaggingプラグインをTagCloudに対応させてみた。

といっても、HTML::TagCloudまかせっきりだったりしますが、、、とりあえずCSSまでまかせちゃってます。

tagging - TagCloud対応版

5,6行クラウド用のコードを埋め込んだだけなのでtagging::listで従来のリストが出ますし、tagging::tagcloudでタグクラウドが出力されるようになってます。

ほんとはこんな感じに関連性を視覚化するようなとこまでやりたいナァと思っているんだけど、そうすっと関連性の情報をどこかに保持しておかないといけないので、ちょっと今回は時間の都合上見送りダ。

関連性自体は、距離とか色の類似度で表したり、ネットワークな表現にのせてもいいかなとか思っているヨ。せっかくゆるい関連性の情報があるので、それを(なんとなくゆるく)可視化する表現方法でなんかいいやつあってもよさそうなもんだが。

GOなんか、わりとガチガチに階層構造に埋め込むから、pubmedのアブストなんかをタグでゆるく結びつける試みは面白いと思っている。だけど、それをマイニングする仕組みはまだついてきてないのかなぁとかは思っているヨ。

点群モジュール

CPANに点群のモジュールがたくさん登録されてますね。

一体何に利用するのだろうか?

教えてgooで答えているように、僕の周りのケミストでも点群って言って

あー点群ね

っていったやつ見たことないぞ。

謎モジュールじゃ。誰か使いかた教えてグー。やっぱIRとかラマンで使うのかナァ

コメントスパムを拒否ってみる

最近ちょっとコメントスパムが多くてウザイし、無駄にCPUリソースを消費したり、ダイナミックキャッシュがリキャッシュされちゃってアレなのでhail2u を参考に対策してみた。

いい感じ

斑鳩

一度は行かねばと思う、九段下の斑鳩に足を運んでみたヨ。11時30分に着いたら、もうすでに行列になってたヨ。

斑鳩

煮玉子らー麺は煮玉子の切り方がカーブを描いていて、口当たりがよかった。コンニャクを手でちぎると口当たりが変化してうまく感じるのと一緒かな。

煮玉子らー麺

詳しいことは「九段斑鳩」名店への道などを読めばよろしいのではないかな。

斑鳩みたいな味な店を何件か食べた後で斑鳩に行ったので斑鳩みたいな味の店よりは、やっぱ旨いよなぁ

ってことだけど、本当にオイシイデス。

でもどっちかというとはやしのほうが好みかナァ

蕎麦宗

メイリン日記というブログを見て

ほう、こんな蕎麦屋できてたのね

というわけで、いってみた。たたずまいは煩い通りから少し入ったところでなかなかいい感じのロケーション、外装も内装もなかなかお洒落だ。

蕎麦宗

天ぷらお願いしようか悩んだけど、(初めてなので)盛り一枚注文。

もり

うーん、細い!。朴念仁以来の細さか?よくこんなに細く切れるもんだと関心するぞ。

でも、細いせいかもしれんが、喉越しの余韻が足りないかな。うーん細さのせいというよりは、長さがまちまちになってしまっていて、そのせいでだまっぽく感じるのかな?その点、ちょっと惜しいかも。

あとは、4人のテーブル席が幾つかあるので、夜にお邪魔して、蕎麦和尚蕎麦湯割りで適当につまみつつ、最後に盛りで締めて帰るのがいい感じかも。さらに飯嶋とのハシゴとか加えると、蕎麦三昧っぷりが堪能できるかな。

よし、今度やろう。

蕎麦宗

changelog形式でメモをとる

僕のデフォルトエディタはMeadowなので、セミナーとか学会のメモはMeadowを使って取ろうとclmemoを使い始めて数ヶ月経つ。紙にメモるよりはいろいろな面で便利に使えてます。

  • C-x M で日付とタイトルとか入れられてセクション毎に分けられるので、見やすい書式になる

  • ノートにメモとっていたときは配布資料を見返したりして、話の流れが途切れちゃうことがあったけど、目の前のスライドに集中してブラインドタッチで要点をまとめていくことが出来るので、思考の流れが後から追いやすいのと、その場でわからないところは?でもマークしておくと後からよく考えることが出来て、上書きできる

  • 最終的にはwordで報告書出したりするときの雛形としてそのまま使える。大概肉付けするだけで、リッパな報告書に。

  • 僕は字が汚れている(みみず系)なので、たまに自分のメモが理解できないことがあるが、そういうしょうもないエラーの撲滅。

changelog形式をword文書に変換するコンバータが欲しい今日この頃

神龍

久々に神龍いってみた。

神龍

いつもいつもワンタンメンを注文してしまう。というわけで、今回も。

ワンタンメン

麺はやや平べったくて、歯ごたえ少なめの麺。もうちょっと硬くてもいいかと思うが。スープはあっさりしてて好き。ワンタンのチュルチュルッっぷりも喉越しよいです。

中華鍋を振るう音が気持ちよく、

ああ、街の中華料理屋だなぁ

って思う。

神龍

Adaptor ( デザパタPerl )

結城さんの本には、委譲と継承の二通りの方法が記載されていたが、その二つの違い(メリット、デメリット)がイマイチ理解できなかったので、ググって見ると、YukiWikiに。

委譲 - Delegation

継承はそのインスタンスのなかの変数を使用するのに対し、委譲では委譲先のインスタンスの中の変数を使用する。(この説明は単に動作の違いを言っているだけかな。) 継承はインスタンスの振る舞い方を規定し、委譲はインスタンスの実装となる。 インスタンスの振る舞い方が変わると、そのインスタンスを利用するほうにも影響が出る。 インスタンスの実装は、使われ方で変わるが、利用するほうには影響が出にくい。

なんとなくわかったような、わからないような。

継承はそのインスタンスのなかの変数を使用するのに対し、委譲では委譲先のインスタンスの中の変数を使用する

というあたりをよく考えてみるといいのだろう。

perlで確認してみると、 サンプルは委譲を使っているので、僕はちょっと継承を用いたperlサンプルを書いてみた。

main.plとBanner.pmはサンプルのものをそのまま使用。interfaceにあたるprinter.pmは使わなかった。

package PrintBanner;
use strict;
use base qw(Banner);

sub new {
    my $class = shift;
    my $string = shift;
    my $self = $class->SUPER::new($string);
    bless $self, $class;
}

sub printweak {
    my $self = shift;
    $self->show_with_paren;
}

sub printstrong {
    my $self = shift;
    $self->show_with_aster;
}

1;

結局AdapteeとTargetの違いの大きさで使い分ければいいのかな?このサンプルだとメソッド名しか変わってないから、委譲を使ったほうがすっきりするのだろうか?

このエントリは結城浩さんの本と、それに載っているサンプルをPerlで書いた例をみながら考えたことをメモってます。あとは、はてなの伊藤さんのjavascriptでの例も参考にしてます。 間違いの指摘とか、もっといいやり方教授してくれたらとても嬉しいゾ。

ProductName 増補改訂版Java言語で学ぶデザインパターン入門
結城 浩
ソフトバンククリエイティブ / 3990円 ( 2004-06-19 )


デジカメ購入した

山歩きとか朝の犬の散歩とかしていると、色々撮りたいものが増えてくる。そんなわけで、久々に自分用のデジカメをゲットすることにしたヨ。

ターゲットは、携帯性のよいものというよりは、もうチョイ高級路線で、写真撮ってる気がするもの、でもあんまり高すぎないやつという条件で。いくつかの候補の中から二つに絞り込んだ。

光学3倍+800万画素(S80)か光学12倍ズーム+500万画素(S2IS)で、どちらもキャノン製品だが。

実物みないとわからんというわけで、近くの家電で実際に触ってみたけど、S80は手軽に持ち歩くようなコンパクトじゃなかった。これだったらEXILIMのほうが、、、

ってことで、S80の魅力が薄まったので、一度家に帰ってゆっくり考えてみることに。

やっぱ光学3倍ズームじゃ、ほんの近くしか取れないからなぁ

どうせ、持ち歩く気で携帯するんだから多少でかくても気にならんし、大口径レンズの12倍ズームのほうが面白いよナァ。あと手ぶれ補正もついてるし。

というわけで、Amazonでポチッとな。

Power Shot S2ISを購入です。

ProductName Canon PowerShot S2 IS PSS2IS

キヤノン / ?円 ( 2005-06-02 )


まだ到着してから二日もいじってないが、ズームも速いしマクロも綺麗に撮れるし、おおむね満足。

ただし、電池が単三電池四本ってのがどーもねぇ。ずっとEXILIM S1使ってたからクレードル式の充電+画像取り込みに慣れちゃってて、わざわざUSBケーブル挿したり抜いたりはとても面倒に感じる。

はなを撮ってみた。

はな