2008-01-01から1年間の記事一覧

仕事収め

はー、今日から一週間弱休みです。って、今日も新年二日も容赦なく NY も HK も AU も市場は開いてますから、有給を取っただけなんですが。だらだらっと下書きだったブログエントリを仕上げてます。 ウチの会社のウェブページの内容を鵜呑みにすれば、幸いに…

OCamlSpotter を使う

インストールについてはこちらを参照してください。 まずパスを設定して動作確認 PREFIX/bin をパスに入れてください。設定方法はシェルによって違うので書きません。 設定を変えてから、 $ ocaml Objective Caml version 3.11.0+ocamlspotter # となってい…

これからのOCamlについての噂 #2: 判りきったモジュール名を省く

OCaml では名前(変数、モジュールや、ヴァリアント、コンストラクタ名)はモジュールの名前空間によって管理されている。別モジュールで定義されている名前を使ってヴァリアントやレコードを作成したり、参照したりする時にはそのモジュール名を介してアクセ…

誰か教えて module typing

次のコードがなぜエラーになるのかよくわからない。 module type RESULT = sig type result val v : result list end module Make (P : sig type t end) : RESULT (* with type result = P.t *) = struct type result = P.t let v : result list = [] end mo…

日本OCamlユーザー会?

とかいう物がいつの間にやら設立されたらしい。 http://d.hatena.ne.jp/mkouhei/20081221#1229791257 http://d.hatena.ne.jp/jitsu102/20081221/1229809932 こんな物が出来るということは、だんだんとOCamlもメジャーになりつつあるということで、嬉しいこと…

引越しが決まりました

来年早々、谷中から池ノ端に引越しします。 四年間、買い物交通至便+ご近所の方々のよさもあって、夫婦二人にしては狭い所に住んでいましたが、さすがに狭すぎということで、引越しです。ようやくお客様をご招待しても恥ずかしくない広さになります。

OCamlSpotter 1.0 をリリース

年内に出すと決めていたので、完成度100%ではないんですけど、ようやくリリースできました。 http://jun.furuse.info/hacks/ocamlspotter/OCamlSpotter は、モジュールのコンパイル時にソースの定義位置情報を記録*1することで、モジュールソースコード中の…

これからのOCamlについての噂 #1: local module open

OCaml では、モジュール M で定義されている型や値にアクセスするには M.hoge という記法を使う。M 中の型や値を頻繁に使う場合、一々 M.fuga, M.Poge と書いていると面倒になってくる。こういう時に、 open M と唱えると、それ以降、 M. を付けなくても、 f…

inherit の文法

class_fields INHERIT class_expr parent_binderというパースルールなので、 class c0 x = object val x = x end class c = object inherit let x = 1 in c0 x endと書けることに気が付いた。わからんではないがキモイ。

CamlSpotter for OCaml 3.11

明らかな未実装部分を除いてテストに全て成功した、、、長かった、、、 ク、クリスマスには出せると思うんだ。これがないと生きていけなくなるから、覚悟してください。

携帯 L704i: 目覚しを設定しても毎朝鳴らない! => 起きれない!! => 遅刻!!! => バグでした!!!!

海外でもそのまま電話がかけられるという携帯、今では当たり前ですが、その当時はほとんどこれしか選択肢がなかった L704i という LG電子の携帯電話を持っているのです。こいつを買ったその日に、 オリジナルマナーモードの音量設定が正確に反映されないため…

ビッグスリー救済法案協議決裂

楽しくOCamlプログラムを書いているうちにドルが90円を切っていた、、、 なんだかトレーダーの人たちは忙しかったらしいんですが、自分の仕事に集中していたので、終わるまでビッグスリーの話、知らぬが仏状態… これから数時間後、NY本社の人たちも(いい意味…

OMake を使ってダラダラと仕事してたら簡単すぎるということで時給を下げられた!!

そんなわけない。なんだか流行るのか流行らないのか判らない OMake(http://omake.metaprl.org/index.html)。その影の部分にちょいと光を。総ソースコードが数十万行ぐらいになると OMakefile の依存解析に数十秒かかる。なので、persistent mode*1が便利とい…

悪戯

Job

ロンドンオフィスと iChat でお話。彼はいつもカメラの前の、正にこの位置に座っている。そこで王冠を進呈した。こちら側では、彼は今や敬意をこめて King と呼ばれているのだが、時々誰かが「奴を退位させろ!」とか叫んでいる。本人は知っているらしく、時…

英語で面接をする

英語で面接しました。といっても面接される方ではなく、*する*方です。それも電話で。 そもそも外国語で電話すること自体、相手の表情が判らないので不安なのですが、その上相手を評価せねばなりません。 仕事仲間との英語電話は全然気にならずに滅茶苦茶に…

Gc.finalise について(続き)

じゃ、ここでパズルです。値 v とその finaliser f があります。v に対して GC が起こった場合 f v を呼び出します。プログラム終了時までに v が GC されなかった場合は、at_exit を使ってやはり f v を呼び出したい。そんな関数 finalise_or_at_exit が定…

Gc.finalise について

OCaml には、 Gc.finalise という関数があります。これはガーベージコレクター(GC)に関連のある関数で、 ある値が必要なくなってガーベージコレクトされる直前に、その値に対して何かするためのコールバックを登録する ために使われます。 Gc.finalise f vと…

3.11 リリース目前

OCaml version 3.11 がリリース目前であるとの情報を手に入れました。 私の勘では、彼奴らはクリスマス休暇直前にリリース、でクリスマス休暇中は放置、年明けにバグレポートを読む、という筋書きだろうと読んでいたのですが、おおはずれ。OCamlSpotter もコ…

ocamlc の極めて極めて内部的なこと

ほとんど個人的メモです。Identifier について。 型も値も structure 中では pos >= 0 の固有 id を持つ。このため、type t と let t = が存在しても混乱しない。 型は structure 中に同名の物は出現できない。リンク時にも値を作らない。よって、structure …

仕事の後は銀ブラ

Job

仕事は新橋である。仕事が終われば運動とかこつけて銀座を徘徊している。家に帰れば晩飯が待っているし、何か腹に入れるとそれこそ運動どころではないから、何をするというわけでもなく、歩いてから有楽町か東京から帰る。だいたい19時前なので、ギャラリー…

ヘッジファンドマネージャ、議会で証言する

ウォールストリート日記: ヘッジファンドと金融危機(議会証言より)http://wallstny.exblog.jp/8979519/ が大変参考になりました。と言っても金融業界参入半年のプログラマーには、彼らが言っていることが正しいのか、どうか、さっぱりです。「判ったつもり…

OMake のための emacs mode: omake-mode.el

OCaml とは直接関係ないんだけど、 OMake のためのコンパイルモードを書いてみた。

与党、「定額給付金」決定へ 1人1万2000円

http://www.47news.jp/CN/200811/CN2008111201000077.html 「高額所得」の目安としては「年間1800万円以上」を提示する方向だ。 1000万とか、2000万とか、1500万とか、今度は1800万。もう解析するのも面倒になってきた。 「定額給付金」の名称については…

給付金のインセンティブ: 独り者はやっぱり馬鹿を見る

与党によれば、金持ちは奥ゆかしいので給付金を辞退するそうだが、どうだろうか。高収入のある人が、給付金を貰うためのインセンティブを考えてみた。まあ、要するに、役所に並ぶか、その時間仕事するか、どっちが得か計算してみましょうということだ。一部…

OCamlSpotter beta2 : リリース

変数から、その変数が定義されている場所の情報を探し出すツール、OCamlSpotter 1.0beta2 ができました。Module や functor を多用した大きな OCaml プロジェクトでは、知らない関数や変数の定義を探す時に非常に苦労します。grep で探しても同名の定義がい…

How to remove hygiene violations from your custom OCaml compiler

add your cool changes to OCaml! fix myocamlbuild.ml and _tags make core make coreboot make world ===> hygiene violations!!! cp boot/myocamlbuild boot/myocamlbuild.boot make world ===> no more hygiene violations!!!

Private abbreviation type

3.11 で導入された、Private abbreviation type を使って自然数を実装してみましょう: module M : sig type nat = private int val nat_of_int : int -> nat val int_of_nat : nat -> int end = struct type nat = int let nat_of_int n = (assert (n >= 0))…

首相の計算能力

パスタが値段据え置きで 1kg から 700g に量が減っていたと聞いて、麻生首相: じゃあ三割くらい(値段が)上がったんだな しっかりしてほしい。 1kg から 100g になったら、「九割くらい上がったんだな」とか言いそう。さすがにそれはないか。しかし、 1000 =>…

仕事に美を感じる時

Job

うちのレポジトリのリビジョン関係をグラフにして表示してみた。美しい。 ○ひとつがリビジョンひとつ。コミットした人により色分け。これは当然ごくごくごく一部。

World of Goo

いつも下手ながらも first person shooter しかやらない私ですが、これは全然違うゲーム: World of Goo: http://2dboy.com/games.php これは面白い。グラフィック、音楽もセンスがある。昔 xspringies という質量点とバネを使っていろいろ遊ぶゲームというか…