Derive Your Dreams

14:52 06/08/31

竜本

ドラゴンブック第2版 ("21st Century Compilers" とアナウンスされてたもの)がいよいよ今日 発売という噂を何カ所かで見かけたんですけど、本当ですかね。日本時間だと明日になるのかな。 Amazonだとこのページですが目次が旧版のまんま。とりあえずチェックしておこうと思います。 改めて目次を比べてみた感じでの改訂内容は

辺り。JITコンパイルの話ってどこだろう。

9/1 12:23 追記

でてないですねー。また誤報か。 ついでに出版社のページ

9/11 00:24 追記

出版社のサイトも米Amazonも日本AmazonもIn-stock/在庫ありになってますね! ちゃんと出荷されてる模様。私も早速注文を…

22:42 06/08/27

いろいろ

今月はcodeタグを書かないようにと思ってたのすっかり忘れてた。

VOCALIST2 / 徳永英明』、 全曲試聴できるようになってるではないか! 今聴いた感じでは "なごり雪" のカバーが一番好きです。 しかしそろそろオリジナルアルバムの新しいのも聴きたいかな…。

IN4K っていうサイトが面白いです。 4kデモ(ご存じない方は google://4k-intro で幾つか実物をご覧になると早いかと)を作るにあたっての、 シーン管理・グラフィック・サウンド・環境別傾向&対策などなど各方面からの アプローチ方法の解説集。自分のような素人目には64Kならともかく4Kは常人には とても不可能な領域に見えるのですが、解説されているテクニックは、特に小手先の 超絶技に走るわけでもなく、むしろ系統だった綺麗なアルゴリズムを適切に使えば "行ける" という印象です。面白い。

昨日Python本を買いに秋葉原に行ったときに一緒に買ってきた 『あしあとリズム / 霜月はるか』 をずーっと流してました。1年近く前に出てたらしいのだけど全然チェックしてなかった…。 2曲目に入ってる"夏の羽音"で好きになった歌い手さんです。あとタイトルチューンの "あしあとリズム" もいいですね。ジャケ絵の可愛らしさとぴったりあってる感じ。 Amazonのレビューを見てみると、レビューアの推してる曲が完全にバラバラなのがなんか凄い。

23:03 06/08/26

Python

LL Ring の日らしいのでLLっぽい知識でも仕入れるかと、 『みんなのPython』 を買って読んでいました。『プログラミングRuby』の第2版と『まるごとPerl!』も合わせて "ひとりLL Ring" を開催しようという案は脳内会議の末に惜しくも却下されております。

自分のこれまでの Python 経験は letsboost::python のページを書くときにちょろっと 覗いたのと、イテレータ/ジェネレータについて前に教えていただいたときにいくつか コードを動かしてみたくらいでした。Python 製アプリは結構使ってるんですが。 なのでかなり新鮮です。本とは関係ないのですが、とりあえず

>>> exit()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: 'str' object is not callable

へ?終了しないのはいいとして、str?文字列?

>>> exit
'Use Ctrl-Z plus Return to exit.'

なるほどそう来るか。…とかやってるくらい新鮮です。

で感想ですが、サクサク読み終われてしまって、こんだけでいいの?と心配になって しまうくらい。でも リファレンス を見ると、__metaclass__ と @decorator といういかにもアレっぽいの 以外は言語の全容に触れられているようですね。たしかに簡潔で素晴らしいです。 これなら覚えられる気がする、というか覚えられた。とりあえず今日から電卓代わりに 使う言語はPythonにしてみよう。

そんなこんな。

23:40 06/08/23

True Closures

D言語の関数内関数は、外側の関数のローカル変数には触れるけれど、それら外側の変数の 寿命は伸ばせない…つまり↓これはOKだけど

void repeat(int n, void delegate() dg) { while(n-->=0) dg(); }
void print10times(int x) { repeat( 10, {writef(x);} ); }

print10times(123);

↓これはダメ

void delegate() printer(int x) { return {writef(x);} }

repeat( 10, printer(123) );

という使えるような使えないような代物で。作者のWalterさんは「外を触る関数内関数全部を クロージャにするのは非効率的で嫌だから、そのうちエスケープ解析実装してから 本物のクロージャを言語仕様にいれるよそのうち」とおっしゃってますが、まあ、 欲しいという声 は頻繁にあがっています。

個人的にはマジメに>>617派ですが、それはさておき Dirty Programming のお時間です。

T closure(T)(T x) {
    static assert( is(T == delegate) );
    auto dg = cast(byte**) &x;
    auto sp = cast(byte*)  &x;

    *dg = sp[0 .. (*dg-sp+24)].dup.ptr + (*dg-sp);
    return x;
}

関連する文献。使い方。

int delegate(int) adder(int x) {
    return closure( (int y){return x+y;} );
}

int delegate(int) f = adder(1), g = adder(10);
dout.writef( f(11), " ", g(11), " ", f(22), " ", g(22) ); // 12 21 23 32

保守的GCなこと他色々に思いっきり依存。コピーしちゃってるので外の変数を書き換えられない。 closure (int y){return x+y;}closure~(int y){return x+y;} くらいの構文に したかったんですが巧い手を思いつかず。24とか凄い適当。 あと、shinichiro.h さん辺りが遙か昔にやってそうな気が…。

追記

Great!!! なるほど。

22:15 06/08/20

コメント率

はてぶがドンドン馬鹿になっていく という記事を見かけました。そして、 これに対する意見として比較的よく見かける気がするのが「良いと感じるクリップをする人を 見つけてお気に入りに入れといてそっちをチェックすべし」やら「レーティング機能を 導入して…」辺り、という印象。

多分それらで正解なんだろうとは思うんですが、しかし、そういう明示的な 人手をかけてフィルタするのは、個人的には、何か面白みが足りない気がするのです。 不特定多数の無名の叡智を求めるならば、各ユーザーがてんでバラバラ好き勝手に ブックマークする行動の中から情報をすくい上げたい。

そういう観点から個人的に採用している方法としては… はてなブックマークに限らず1470.netとか他のSBSでもそうなんですが、 自分にとって興味がある記事は大抵「コメント付きブクマ率が高い」ので、

コメント率表示

力業のGreaseMonkeyスクリプトで↑表示するようにしてます。 (一応晒して みますがTurnaboutでしか動かしてないのでFirefoxやTrixieで動くかどうか不明。 あと1個%を表示するたびに1回hatenaにアクセスしてるので凄い負荷ってたらごめんなさい… ) んで、パーセントが高い記事を優先的に読む。

まとめサイトや実務系tipsのようなのは、クリップしてタグつけて終わりの 人がほとんどなので、せいぜい10%止まり。一方で 読んだあとに何か考えさせられるような、思わず自分の意見を披露してしまいたく なるような記事(新しいこと画期的な概念、難解な議論は比較的こっちに 属しやすいと思う)は、30%~60%くらいまで行ったりする。(数値は俺主観調べによる)

どちらが良いとかではなく、個人的には後者の記事が集まる場としてSBSを利用したいと 考えているので、パーセンテージが高い方を優先しています。逆に、 tips系の情報を集めたいのであって喧々囂々の不毛な議論は好かぬという場合は低い方を取ればそれなりに有効なのではないかと。

id:sshiさん

どっちのURLが正解なんだろう

"64.html#_2215060820" が正解のつもりです。 "#ハッシュ値ぽいもの" はなんでもRSSが自動でつけるIDじゃないでしょうか。

改良版

AUSGANG SOFTさんによる記事。Firefoxで動く&しなもんが並ぶ版。 これいいですね!

01:15 06/08/17

小URL

皆さんご存じかと思いますが、TinyURL という、長~いURLを縮めてくれますよサービスがあります。 http://tinyurl.com/nyywa みたいな感じに tinyurl.com/ + 5文字くらいにまとめてくれます。

これを逆に、ブラウザのURL欄に「tinyurl.com/ + 適当な5文字」を打ち込んで飛ぶと、 どこかの誰かが登録したページが無作為に読めてなかなか楽しい。ということで15分くらい 遊んでからGoogleってみたら当然のごとく 思いっきり既出で Random tinyurl.com link というのがありました。いいですね。 (悪意のあるページがTinyURLに登録されててそこに飛ぶ、という可能性も あるんじゃないかと思うので、ご利用は計画的に。previewをonにしてURL確認するようにすると多少は良いかも。)

あとは、未登録の「tinyurl/+適当な5文字」のURLをtinyurlに登録して得られた 「tinyurl/+5文字」のURLをtinyurlに登録(以下略……なんてことをサイクルができるまで 続けたりしたら、さぞかし迷惑だろうなあ、などとどうでもいいことを考えて一人反省。

23:16 06/08/14

実家に

帰らせていただいています。

それはそうと、 ICFP の Accepted Papers が出てるというニュースvia ぱきらぽんさん。おお、読まないと。同じく直感の赴くままにタイトルだけで 面白そうと思った論文を選ぶと "Transactional Events" と "Equality of Streams is a Pi_2^0-Complete Problem" となりました。最近Transactionがマイブームなのと、Equailityの 計算量が云々と言われると今ちょっと考えてる研究ネタが連想されたのでとかいう一過性の 理由につき、来月選ぶとたぶん全然違ったりします。

あとGPCEのが2ヶ月近く前に出てるのを今ごろチェックしたんですが、 "Debugging C++ Template Metaprograms" が気になる。すごく気になる。

21:01 06/08/10

つれづれ

近所にTSUTAYA が できてました。便利かも。品揃え的には本は明正堂、CD/DVDはHMVで足りるんですけど、 突然深夜に本屋にさまよい込みたくなったときの行き場があるのはいいですね。

あと2票! ここを見たこがわみさきファンは今すぐ投票だ! …ってあと20票くらいの時にも 同じことを書いた気がする。ファンでない人は今すぐ 『魅惑のビーム』を。

ゆえあってWindowsのクリーンインストールし直すはめになっています。で、消す前に Visual Studio 2005 のディスクイメージを退避させておくのを忘れました。theSpokeから落とそうとしたら 2回目以降は事情を説明するメールを送れって書いてある。めんどい。

05:21 06/08/07

勉強法

についての結城さんのコメント記事を読んで。プラスαとして述べられている 「自分が学んだことを他の人に伝えてみる(文書または口頭で)」 は本当に重要だと私も思っています。ほとんど本質ではないかとすら。 一度も他人に説明したことのない知識は、身に付いていると言わない ……って、言い過ぎかなあ。

「他の人に伝える」ときに注意しているのは、ドキュメントや紹介文のコピペ/受け売りは しないようにすること。ブラウザも本もいったん閉じて、自分の頭で一から文章を考える。 これって言及先の記事で「イメージモデル」って呼ばれているものがないと絶対できません。たとえイメージモデルが あっても、それを実際に試して検証する前に人に伝える文章を考えはじめちゃうと、自分で 考えてて「それホントかよ?」って激しく突っ込みたくなります。突っ込みたくなったら ソースを読んだり実際に動かしてみたりして確認せざるをえない。その繰り返し。

というわけで、みんなブログとかでガンガン自分の勉強したことを説明するとよいと思う!

まんが

待ち合わせまでの時間つぶしに新宿のジュンク堂によったら、オノナツメの新刊フェアを やってました。素晴らしい。持ってなかった 『LA QUINTA CAMERA~5番目の部屋』 と 『さらい屋五葉』 をすかさず購入しました。

前者はデビュー作の復刊なのですが、これまで読んだことがなかったのでした。5部屋の アパートに暮らしてる4人の男どもがおりまして、最後の1部屋は下宿として貸し出してて そこにいろんな人が入れ替わり入ってくるわけですが…というお話です。 こんな明るい…とは違うか、優しい話も書く人なんだー、という感想。なごんだ。

presented by k.inaba (kiki .a.t. kmonos.net) under CC0