Heaven's Kitchen

○ 第5版

JavaScript 第5版

なんで第4版は訳さなかったくせに,第5版は訳が出るんだ…orz

第4版英語で一生懸命読んだのに。英語の勉強にはなったといいたいところだけど,プログラミング系の洋書って,コードで理解してるからあんまり英語の勉強にはならんよね。

○ [LLSpirit]LL魂行ってきました

Lightweight Language Spirit

この手のイベントは行ってみたいなぁと思いつつ,YAPCスルーしたりとかしてたんですが,思い切ってチケット購入して行ってきました。

なんつーか,やっぱamachangかっこいいなぁ。あれぐらい有名になってサイボウズラボ入りた(ry

和田先生の基調講演は,積分器とかが出たあたりでついていけなくなってましたが,大学の講義で目の前にいた人が,何百人に騒がれているのを見るとまた違った感動が(なんか違う

Postscriptを勉強するのはちょっと敷居が高いけど,あんな大人になりたいねぇ。

一番印象に残ったのはやっぱamachangのプレゼンツールのプレゼン。JavaScriptの可能性を見せつけられたというか,完全になめてましたごめんなさい。だってSlidyをイメージして,あれが出てきたらやっぱりインパクトあるよ。ていうかあのプレゼンツールほしい。公開されたら絶対使います。あとはTeX記法で数式が書ければ完璧(他力本願

LuaとかCleanとかxtalとかも面白そうなんで,夏休みの間に一通り触ってみたいとかいいつつErlangの本を買うそんな一日。

いろいろ刺激を受けた良いイベントでした。生Danさんも見れたし。生Matzも見れたし。

○ 音楽の聴き方

LPの時代 (MORILOG)

音楽作品というのは、つまりアルバムであって、10曲ほどのセットで1つの作品だと認識している。聴くときも、曲をばらして、別々に聴くことは絶対にない。必ず、そのアルバムをその順番で、最初から最後まで聴く。

だそうです。これは僕も一緒で,aikoや大塚愛のシングルが出てもアルバムとしてリリースされるまでは我慢します(違

iPodのshuffle機能は使ってるという人を結構見かけますが,自分にはどうもなじみません。

○ 帰省してました

その間更新してなかったのは,ネットがなかったからではなくただのさぼりですけど。

ケンジに連れて行ってもらったライブで大塚愛を拝めなかったので,近所のスタジアムでやる野外ライブの音だけ聴きに行こうと画策中。あ,でもケンジありがとう。

今回の帰省は新幹線だったので,行き帰りともじっくり本が読めて有意義な時間をすごせました。いや,やっぱバスはきつい。

と,いうわけで帰省中に読んでいた本

入門OCaml ~プログラミング基礎と実践理解~ アスペクト指向入門 -Java ・ オブジェクト指向から AspectJプログラミングへ Rubyを256倍使うための本 無道編 x86アセンブラ入門―PC/ATなどで使われている80x86のアセンブラを習得 (TECHI―Processor)

とりあえずOCamlはなんでもありすぎな感じで,いまのところちょっと距離を置きそうな感じ。てかこれは関数型なんだろうか。多相ヴァリアントのあたりから,あんまり理解できてないんで時間があったらまた別の本で勉強しよう。

青木峰郎さんのraccの話はとっかかりやすくてよかった。まあでもまじめな言語作りたければちゃんとドラゴンブック読めってことでいいんでしょうか。

x86のアーキテクチャは前の研究室でやっていたDSPよりわかりやすいと思ったけど気のせいな気もする。

アスペクト指向はまだ最初の方しか読んでないけど,要するにEmacs-Lispのdefadviceってことなのかなぁ。

あぁ研究がすすまない…。

>>追記

Kornの新譜が出ている…。

○ Hash

QDBMの次が出るとは,全然知らなかった。

Inside Tokyo Cabinet その壱 by 平林幹雄さん

このエントリ,初回だからか懇切丁寧に解説されていて勉強になります。続きが楽しみ。

中盤あたりに出てくるハッシュ関数だけど,こんな単純でいいんだねぇ。実用Perlプログラミングの初版によれば,Perl5の初期のころの実装ではハッシュ関数は

int i=klen;
unsigned int hash = 0;
char *s = key;
while (i--)
    hash = hash * 33 + *s++;

のように実装されていると書いてある。平林さんの記事では31, 37あたりがいいんじゃないかと書いてあるけど,33(笑

結局なんでもいいってことか。

で,最近のPerlはどうなってるかと覗いてみると

#define PERL_HASH(hash,str,len) \     
    STMT_START { \        
        register const char *s_PeRlHaSh_tmp = str; \
        register const unsigned char *s_PeRlHaSh = (const unsigned char *)s_PeRlHaSh_tmp; \
        register I32 i_PeRlHaSh = len; \
        register U32 hash_PeRlHaSh = PERL_HASH_SEED; \
        while (i_PeRlHaSh--) { \
            hash_PeRlHaSh += *s_PeRlHaSh++; \
            hash_PeRlHaSh += (hash_PeRlHaSh << 10); \
            hash_PeRlHaSh ^= (hash_PeRlHaSh >> 6); \               
        } \ 
        hash_PeRlHaSh += (hash_PeRlHaSh << 3);\
        hash_PeRlHaSh ^= (hash_PeRlHaSh >> 11); \
        (hash) = (hash_PeRlHaSh + (hash_PeRlHaSh << 15)); \
    } STMT_END

hv.hの76行目。(stable.tar.gz perl-5.8.8)

全然ちゃうし。でも平林さんも言っている,シフトを使って高速にを実践した感じなのかな。XORの意図が全く読めん。

Kornの新譜買いました。

Valid XHTML 1.0! Valid CSS!