「… + 未知成分 10%」セミナー
http://d.hatena.ne.jp/m-hiyama/20081225/1230191000
に参加させていただきました。 Erlang は思ってたより面白そうなものなんだなぁとわかりました。来年なんか言語勉強するとすれば Erlang とかそのへんかなぁ。
あと JSONP をわかってなかったことがわかりました。
あと檜山さんはとても話がうまくてステキだった。
言語雑談会
例年のごとく。しらいしさん主催ありがとうございましたささださん会場提供ありがとうございました。
今回の目標は Cryolite さんに C++ について色々聞くということだったんだけど、あんま時間が無くて予習がほとんどできなかった。でもなんか6時に起きたのでいそいそと予習…したら華麗に遅刻。朝は二日酔いもキツい感じだった。
しらいしさんの Haskell プレゼン。
「本物のプログラマは Haskell を使う」はタイトルが偉そうなので良くない。「本物のプログラマは Haskell を使う(笑)」とかにしてはどうか、など暴言を。愛ゆえです。
がんばって遅い言い訳をしていた。最近の GHC は -fvia-C つけないと C を経由しないらしい。あとまぁだんだん色々速くなってるらしい。特に下記の話が面白かった。
http://research.microsoft.com/en-us/um/people/simonpj/papers/ptr-tag/
thunk は今まで常に indirect jump していた。評価が終わってない時は thunk が呼ばれて、評価してあった場合は評価後の関数の実体に飛ぶ…というような。でも関数の実体は静的に決まってるから、 thunk 入れるところを tagged pointer にして、評価終わってたら静的 jump にするーとかしたら速くなったとかいう話。つっても自分でぱっと読んでもよくわからんかったから教えてもらったわけだけど。いやあ賢い人がいるといいなぁと思った瞬間でした。
Replace Rule はまぁ普通に便利かもなぁとか思った。
この視覚化ツールはおもろい: http://www.cs.kent.ac.uk/people/staff/cr3/toolbox/haskell/GHood/
あと lambda cube とかいうのを教えてもらった。
- type->type 総称型 (template
class C {};) - type->val 依存型 (template
class C {};)) - val->type 多相型 (template
void f(T t)) - type と val がごっちゃになると3つ同時に満たされた世界になって、ある意味では型が無いようなあるようなとかいうほげほげ。 Coq とかがそれらしい。
C++0x
なんか予習の時も思ったけど、読む提案は Boehm 先生のものばかりで、なんというか興味が変わってるなぁ…とか思った。 atomic operation とかのところはわかったようなわかってないような部分がやはり多いなぁと感じた。今度 mutex とか自分で実装してみようと思う。
Cryolite さんと激しく同意した話なのだけど、 C++0x 関係の論文集は、読み物としてとても面白いし勉強になる。 C++ の良いところとして普及しているというのがあって、普及していて重要性が高いために、各分野の一流の人間がよって集まって議論してくれる、と。しかもその議論の内容は論文の形でわかりやすく並べてくれてるし。論文つーても C++0x の N???? はなんか単なるグチとか、ほげほげ機能が有用な例の紹介とかも入っていて、あんま格式ばらずにポンポン投稿されてる感じで、非常に良い。
後は pair がいかに嫌いかとかいう話をしたりとか。 map::insert に make_pair 忘れることがあまりに多くてうざい…とかいう話をしたのだけど、それはなんか解決する提案が出てるっぽい。
Proposed Wording for Placement Insert: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2680.pdf
TODO: 来年あるなら herumi さんをお誘いする。 http://homepage1.nifty.com/herumi/diary/0812.html#28
拉致、移動
なぜか IM 飲み会というものに参加させていただくことになっていて、 Cryolite さんも行くことになっていたので、汚ない家に来ていただいて、家でまた C++0x の提案とか読みつつ色々と聞く。
N2668 - Concurrency Modifications to Basic String
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2668.htm
なんかぱっと見よくわからんなと思ってたんだけど、要は CoW をやめるとかいう話だと聞いた。
N2709 - Packaging Tasks for Asynchronous Executionm
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2709.html
Future と何が違うのか今一つぱっとわからんかったけど、まぁなんかタスクキューとかにつっこみそうな物体らしい。
N2778 Working for Range-based for-loop (revision 4)
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2778.htm
begin-end 書かなくて良いすばらしい話。 C の配列はどうすんのやろねーとかいう話をした。 concept map 書きゃできなかないが…とかいう話。
Timed_mutex in C++0x
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2528.html
とりあえず timed_mutex 保留で良くね? という話。かくして組み合わせ爆発問題は回避された! timed_recursive_mutex って名前は const_reverse_iterator 並にひどいよねえ。
IM 飲み会
なぜか呼んでいただいた。感謝。
難しくてわからない話(というか数字とかがぱっと頭に入らない)もあったけど、面白い話が多かった。個人的に印象に残ったのは森先生の研究の概略的な話でした。あの速度で話して門外漢でもそれなりに雰囲気がわかる気にさせてくれて、かつ話が面白くてすごいなぁとか。
tri-gram がデータ量多くなりすぎちゃう場合は、 skip-bigram っていうのを作るとかいうアイデアがあるんだなぁとかいうのは、マラソンで使えそうだなぁと思ったとか。
そうそう全体的に話を聞いてて思ったのは、この人達が topcoder の marathon マッチやったらすごいことになるんじゃないかなぁとか。なんかしょっちゅう 2gram とか作ってる気がするし、あとこのへんとかは機械学習的なアプローチもできそうだし(まぁヒューリスティックスの方が強そうだけど)
http://www.topcoder.com/longcontest/?module=ViewProblemStatement&rd=12203&pm=8737
あと Agda の話を聞いたのだけど、前日に lambda cube の話を聞いていたおかげでだいぶわかる感じだったように思った。
あと oxyさん に PRIC の方法を聞けたのはとても良かった。説明聞いてからまだ勘違いしてるようなアホっぷりでしたけど、なるほどなぁという感じでした。
で、飲み会。 oxy さんに計算量の話を色々聞いた。 PCP というのがあるらしい。計算量理論にしては役に立ちそうな話だなぁと興味深く思いました。
http://ja.wikipedia.org/wiki/PCP_(%E8%A8%88%E7%AE%97%E8%A4%87%E9%9B%91%E6%80%A7%E7%90%86%E8%AB%96)
あとは計算量理論は自然言語と違う意味で終わりなき戦いなイメージがあるけどどうすかとか聞いたりとか。 oxy さんいわく P!=NP はいずれ証明されるらしいとか。 NP よりデカいクラスよりは小さいクラスの研究の方が盛んらしいとか。
あと naoya さんにサインをもらった。ありがとうございます。
なんだかんだとやってるうちに酒飲みすぎてああこれまずいなーという感じでまずいなーという感じで路頭に迷って野宿して帰宅。バカは死ななきゃなおらんね。