2009-02-18

Emacs/Makefileを親ディレクトリ方向へ探してcompile

というわけで、リファレンスなどを見ながら書いてみた。

;;; dirから親ディレクトリ方向へ向かってfilenameを探し、最初に見つけたディレクトリ名を返す。見つからなかったらnilを返す。
(defun search-file-for-updir(dir filename)
  (cond
   ((file-exists-p (expand-file-name filename dir))
    dir)
   ((equal (expand-file-name "/") dir)
    nil)
   (t
    (search-file-for-updir (file-name-directory (directory-file-name dir)) filename))))

;;; Makefileがあるディレクトリ上でcompileする。
(defun compile-on-makefile-dir()
  (interactive)
  (let ((dir (search-file-for-updir default-directory "Makefile")))
    (if dir
	(let ((default-directory dir))
	  (command-execute 'compile))
      (message "Makefile is not found."))))
        

なんかものすごーく久しぶりにEmacs Lispを書いた。

search-file-for-updirの未発見終了判定は、(file-name-directory (directory-file-name dir))がdirと同じ物を返したら終了とするのでもいいかどうか迷った。

default-directoryをcdで変えたら、戻せなくなって困るなぁと思ったのだけど、elispは動的スコープだから適当にletで束縛しておけばいいのかなと思った。

2009-02-18

compile.elとMakefile

M-x compileでmakeを走らせることが出来るけど、編集しているファイルがあるディレクトリにMakefileがあるとは限らないんだよね。たいてい、いくつか上のディレクトリにMakefileがある。compileコマンド実行時に、親ディレクトリ方向へMakefileを探して、見つかったディレクトリでmakeを実行して欲しい。どうすればいいんだろう。今まではcd .. && $(MAKE)するようなMakefileを置いてごまかしていたんだけど、さすがに馬鹿らしくなってきた。

compile.elを見ると、default-directoryを見ているんだな。compilation-modeへ移行するのは、そのあとか。うーむ……。

2009-02-17

バックアップとBlu-ray Disc

HDDにバックアップを取ると後から取り出すのが面倒で……という話を同僚としたとき、今ブルーレイディスクってどうなのよ、と思ってamazonで調べてみたらびっくり。BD-R DL 50GBで5枚3880円(=15.52円/GB)。これだと200Gのプロジェクトでも四枚3104円で収まってしまうではないか。なんて世の中だ。1枚25Gのタイプだと20枚5580円(=11.16円/GB)にもなるけど、枚数が増えると面倒だから二層がイイナ。

しかし、ブルーレイディスクがここまで安くなっていたなんて全く知らなかった。ホントと、ぼやぼやしていても時間は経つのだなぁ。

バックアップ用にお一ついかが?

そういや、HDDはどうなのかな、と思ったら、7円/GB!? すげぇ……。でも、HDDは重いし、統一されたPCとのリムーバブルインタフェースが無いしね。

2009-02-16

夕食はのり竜田

19:45。夕食は職場の机でオリジン弁当ののり竜田弁当。竜田がカリッとしててうまい。でも食べたらだーいぶだるーくなってきた。ニュースサイトを見ると中川財務相の話題を見かける。どんなおもしろ会見だったんだろうか。見てみたいものだ。きっと今の私よりずっとだるかったに違いない。よかった、そんな状況じゃなくて。……さて、もう一仕事しますかね。

2009-02-14

散髪

前回切ってからもうそんなに経ったのか……。ぼやぼやしてても時間はあっという間に経つんだなぁ。

2009-02-14

春の臭い

うーん、暖かい。コートで外出すると汗ばむような日和です。風は強めですが、全く冷たくはありません。昨日までとは全然違う。春一番です。

2009-02-14

海腹川背・旬 ~セカンドエディション完全版~ を体験

新宿さくらやの店頭体験会に行ってみた。

  • プレイできるのは一台で、人が並んでいたのであまり長くはプレイできなかった。
  • 白いDS Liteでプレイした。
  • 係の人がタイトル画面に戻して最初からスタートさせると見たことのない面F10から始まった。
  • プレイしたルートは[F10]→F0→F11→F23→F14→F15→[??]→[??]。[]内は新しく追加されたステージ。
  • F10は真っ平らなシンプルなフィールドで、たぶん初心者向けの面として追加されたのではないか。ルアーを投げてみたり、ロケットジャンプをしてみたりしても特に違和感はなかった。扉は左上に一つと、右下に一つ。右下から出るとF0へ続く。
  • F0はスタート地点からロケットジャンプで金魚の上を越えて……と思ったのだが、二回連続失敗。ジャンプボタンを押してるんだけどなぁ……と思いつつ、PS版でもほとんど成功しない腕前なので、諦めて普通に進む。左上の扉から出てF11へ。
  • F11は普通にフィールド右下から左下へ一直線。
  • F23もフィールド下の六角コンベアを使って左下の氷の上にある扉へ。
  • F14は割と苦手なフィールドなので、慎重にコンベアの上の天井を伝って扉へ。
  • F15(氷の坂道にどじょうが歩いているところ)は恥ずかしながら何回も下に落ちてしまった。はしごから飛び降りて天井にフックをかけるところで失敗して、スタート地点まで真っ逆さま。何度も失敗するので、諦めてはしごを登り切ったところからロケットジャンプで進んでゴール。
  • 確かここで見慣れないフィールドに出たような気がする。フィールド番号までは見ていない。スタート地点はフィールド左上で、少し進むと全然先が見えなくて、なんだこりゃと思った。ここで気がついたのだけれど、DSの下画面に全体マップが表示されていた(普通のゲーム画面は上画面)。それを見ると、飛び降りた先に小さな島があるのが分かる。なので思い切って飛び降りて、なんとか小さな凍ってない壁にフックをかける。あとは普通に進んでいけばゴールできた。
  • その後も見慣れないフィールドが出てきたのだけど、詳しくは覚えていない。扉に着いたところで係の人と目があって、なんとなく体験終了となった。
  • ここまでプレイした限り、PS版と比べて違う点は確認できなかった。かなり良く再現されていると思う。なんとなくボタンの反応が悪いかな、と思うようなことも一二回はあったが、PS版でも普通にあることなので、単に私が押せていないだけかもしれない。
  • 係の人に「どうですか」と聞かれたので、「見慣れないフィールドが結構ありますね」みたいなことを言ったら、「欠番だったところに追加してるんですよ」とのこと。これは大いに楽しみだ。

下は頂いた物。チラシとPAR&カードケースとチョコレート。