Debianのパッケージとして登場したアドベンチャーゲーム。ScummVMが必要。 海外では有名なゲームらしい。 私は普段はゲームをしない人なのだが、ちょっとためしに。
しかし、溶鉱炉から脱出した時点で、なにをしてよいかわからず早々に挫折してしまった。 そういえば、南青山アドベンチャー(古い...)も挫折していたような気がする。
えー、しかたがないので、googleして攻略情報を入手。ぜんぜん謎解きになってない。 こんな謎解けないよ。やっぱりゲームには向いてないらしい。
先日完了したプロジェクトの打ち上げに参加。
先方の会社の技術者の中には会ったことのない人もいたので、自己紹介。
まつもとといいます。 このプロジェクトでは... うまくいってる?、と声をかけたり、 後から暖かく見守ったり、 プロジェクトをネタに雑誌にXPの記事を書いたり、 宴会に参加したりしてました
結局、なんにもしてないじゃん。
みなさん、お疲れさまでした。次もあるそうですので、引き続き。
WebでX31にLinuxをインストールする手順についていろいろ調べる。
ああ、面倒だ。もっともACPIしかないマシンに比べればマシか。
最近、目標管理などのlifehack系に関心が出てきたわけだが、 それって歳取ったってことなのかな。
前からhowmなどは使ってるわけだが、
などが欲しいのだ。http://www.checkpad.jp/も良さそうではあるのだが、もうちょっと時系列管理が欲しい気がする。 時系列といえばKikoもインパクトがあるが、 じゃあ使い易いかといえばそうでもなさそう。
たぶん、メール、メモ、ToDoエントリ、画像などなどを全部時系列で突っ込めて、 あとタグづけと全文検索ができるようなツールがあればいいんだろうなあ。 共有など見せ方の管理も必要そうだ。
でも、自分で作るのはしんどいなあ。
私のThinkpadはHDDが40Gしかない*1ので、そろそろディスク容量がきつくなってきた。
で、せっかく秋葉原にいるんだからということで、パーツショップに寄って 日立Travelstar 160GB HTS541616J9AT0を購入。ついでに2.5" HDDケースも。
*1 HDD 40G「しかない」とは時代も変わったものだ。320KB(!)が無限に広く感じられたのに
講習会終了後、打ち合わせ。しばらく顔を見ていなかった人に再会。 意外な形で頑張っておられた。知らなかった。
RFC2822はメールのフォーマット、RFC3339はISO 8601 形式の RFC 版。 どちらも日付・時刻表現のフォーマットを含む。
Rubyが現在のTime#to_sで用いているフォーマットはdate(1)のものだが、 タイムゾーンの表現など考えるといろいろ悩ましい。 RFC2822のものも、RFC3339のものもイマイチ気に入らない。
私が欲しいのはごく普通の
2006-09-05 01:12:35 +0900
というものなんだが、このような形式の規格はないようだ。 まあ、規格なんてどうでもいいから押し切っちゃうってのも手だな。
そうしようかなあ。
Rubyロゴコンテストについて。
笑っちゃうのはこのロゴ。
まあ、実際。世間的にはRailsあってのRubyとみなされていることが多いと思うので、 そうでないことを明示的に示すメッセージを発信することにはなると思う。
我々としてもRailsの知名度を利用していないとは言えないので、 あんまり突き放すのも誠実な態度ではないか。悩ましいところである。
ま、とはいえ、だからといってこのロゴを採用したりはしないけど(エントリされてないし)。
Cを誉め称える記事、のように見えるが、 実際には言ってることと実際が全然違う、という記事。
ほめごろし?
まあ、こういう抽象化が必要なケースでは Lispにかなう言語はなかなかないよなあ。
Cのアンチ・イディオム4つ。
mallocの戻り値をチェックする
failmallocの件とは正反対だが、たしかに多くのプログラムでは どうしようもないというのも事実だ。でも、例外が使えるなら raiseした方が良いと思う。
void*をキャストする
キャストを強制されるC++と違ってCのvoid*はそのまま代入できる。 こっちの方が良い(と著者は思っている)。
小さな構造体を参照渡しする
もうオーバーヘッドは問題ない。どんどん使おう。
mallocのsize指定
sizeofの引数に型を指定すると変更箇所が増える。 式そのものを書くと型が変わっても対応できる。
賛成できるようなできないような。
マイクロベンチマークの使い方。
マイクロベンチマークっていうのは 実際のアプリでないベンチマーク向けのプログラムによって 性能を測定すること。
言語処理系(インタプリタとかバーチャルマシンとか)の性能を測定すること になるが、実際のアプリケーションではむしろライブラリの性能の影響の方が大きい。 ので、大抵の場合、マイクロベンチマークは不適切に用いられている。
まあ、世間の誤解ってのはなかなか解けないよね。
なら、それを逆に利用してしまおう。
今回、YARVでマイクロベンチマーク性能を改善することで 実は世間の「マイクロベンチマーク信仰」を逆手にとって マーケティング効果があがることを 期待している。
PythonのORMである、SQLAlchemyとElixirではSQLAlchemyを使うべきだ、という話
SQLAlchemyの例:
from sqlalchemy import Column, ForeignKey, MetaData, Table, types from sqlalchemy.orm import mapper, relation metadata = MetaData() person_table = Table('person', metadata, Column('id', types.Integer, primary_key=True), Column('name', types.String, nullable=False), Column('age', types.String) ) group_table = Table('group', metadata, Column('id', types.Integer, primary_key=True), Column('name', types.String, nullable=False) ) persongroups_table = Table('person_groups', metadata, Column('person_id', types.Integer, ForeignKey('person.id', ondelete='CASCADE'), primary_key=True), Column('group_id', types.Integer, ForeignKey('group.id', ondelete='RESTRICT'), primary_key=True), ) class Person(object): pass class Group(object): pass mapper(Person, person_table, properties=dict( groups=relation(Group, backref='people', lazy=False) )) mapper(Group, group_table)
Elixirの例:
from elixir import * class Person(Entity): has_field('name', String) has_and_belongs_to_many('groups', of_kind='Group') class Group(Entity): has_field('name', String) has_and_belongs_to_many('people', of_kind='Person')
Elixirの方がだいぶActiveRecordっぽい。ひとめ見ると誰の目にも Elixirの方が魅力的に見えるが
というようなことを考えると(うへー、またExplicit Better Than Implicitだよ)、 やはりSQLAlchemyの方が良い(と著者は考える)。
Leaky Abstractionの弊害については理解できないでもないけど、 ここまで表現の優劣が出るのに採用しないってのは、 それがPython的ってもんなのかねぇ。
RubyConf 2007の暫定プログラムが決まった。
今年からはマルチトラックということだ。 RubyConfの成長曲線を考えるとある意味必然なんだが、 今までのRubyConfらしさを失ってしまいそうで、 少し残念な気がする。いや、変化も当然なので、文句を言っているわけではないけど、さ。
2日目の午前中のセッションがIronRuby, JRuby, Rubiniusと来てるんで、 YARVもなにか言うべきではないのだろうか。
同じ日に予定されている私のキーノートの時間をあげようか? > ささだくん
ChangeLogエントリの時間がおかしい。
今はUTC-0500にいるのだが、UTCが現在時刻から10時間先になっている。 どうやら正しく動作しているformat-time-stringに、apelに含まれるpoe.elが さらにadviceを追加しているのでUTC補正が二重に効いているらしい。
ソースを読むと
;; Emacs 19.29-19.34/XEmacs: `format-time-string' neither supports the ;; format string "%z" nor the third argument `universal'. (unless (string-match "\\`[\\-\\+][0-9]+\\'" (format-time-string "%z" (current-time)))
と書いてある。が、今、私が使っているのは22.2.1だから この補正は不要のはずだ。なぜ追加されているかいろいろと調べると、 結局は正規表現が
"\\`[\\-\\+][0-9]+\\'"
になっているが、実際には
"\\`[-+][0-9]+\\'"
で十分であった、ということのようだ。ということで、手作業で修正した。
この正規表現は、 UTCよりも早いタイムゾーン(+0900とか)ではちゃんとマッチするので(+は認識する)、 日本にいる限り気がつかないという、かなりたちの悪いバグであった。
このバグレポートはどこに出せばいいのかな。
どうもどこかで見た覚えがあると思ったら!
これ(右側、いや違う。左側)は『ダーククリスタル』という1982年公開の映画に出てくる「キーラ」という 人物(生物)である。高校生の時(歳がばれる)、なにげなく映画館に見に行った映画だったが、 予想外にすばらしい作品でぶっ飛んだ覚えがある。いろいろと思い出深い映画だ。
今調べたら、中川翔子は1985年生まれだから、「ダーククリスタル」公開時には まだ生まれてなかったのか。
もうひとつ驚いたのは、来年続編の公開予定があることだ。これは楽しみだなあ。
追記
画像消えたらしい、残念
通常の意味での「カンファレンス」は今日から。
内容はプログラムを 見ていただきたいが、どれもすばらしい。これでリージョナルカンファレンスとは信じがたい感じ。
見どころ
私のキーノート。スライド100枚用意したのに40分くらいしか話せない。 なんという消費ペース。今回は逐語的なメモは用意しなかったのだが、 やっぱ難しいわ。こう、言葉は拙いがその場の勢いを重視するのと、 言葉は拙いがメモを読むのとで、どっちがいいかって話だよな。 結局、拙いんだけど。
全部終わったら10時すぎてた。
帰る前に立ち話してたのだが、どうして言語コミュニティにはときどき「謎の人物」が 登場するんだろうか、と。
たとえば、Chunky Baconで有名な Why the lucky stiff(誰も本名も所属も知らない)とか。フランス人超絶ハッカーのGuy Decoux(誰も会ったことがない)とか。
PythonでもTim Petersっていう誰も会ったことがない人がいるよね。