«前の日(09-04) 最新 次の日(09-06)» 追記

Matzにっき


2003年09月05日

_ [Game]Beneath the Steel Sky

Debianのパッケージとして登場したアドベンチャーゲーム。ScummVMが必要。 海外では有名なゲームらしい。 私は普段はゲームをしない人なのだが、ちょっとためしに。

しかし、溶鉱炉から脱出した時点で、なにをしてよいかわからず早々に挫折してしまった。 そういえば、南青山アドベンチャー(古い...)も挫折していたような気がする。

えー、しかたがないので、googleして攻略情報を入手。ぜんぜん謎解きになってない。 こんな謎解けないよ。やっぱりゲームには向いてないらしい。

_ [会社]打ち上げ

先日完了したプロジェクトの打ち上げに参加。

先方の会社の技術者の中には会ったことのない人もいたので、自己紹介。

まつもとといいます。

このプロジェクトでは...
うまくいってる?、と声をかけたり、
後から暖かく見守ったり、
プロジェクトをネタに雑誌にXPの記事を書いたり、
宴会に参加したりしてました

結局、なんにもしてないじゃん。

みなさん、お疲れさまでした。次もあるそうですので、引き続き。


2004年09月05日

_ [教会]松江

もう日曜日か。1週間が経つのが速い。第一日曜日なので松江に。 ちょっと疲れてるかも。

今日は子供たちのきげんがよく、一日快適な気分で入られたのはありがたい。

_ [X31]情報収集

WebでX31にLinuxをインストールする手順についていろいろ調べる。

  • APMが普通に使えるらしい
  • D2D領域(通称「復活の呪文」)は、大変複雑な手順を踏むと別のディスクにコピーできるらしい。
  • 無線LANはndiswrapperかmadwifiで使えるらしい

ああ、面倒だ。もっともACPIしかないマシンに比べればマシか。


2005年09月05日

_ 目標管理

最近、目標管理などのlifehack系に関心が出てきたわけだが、 それって歳取ったってことなのかな。

前からhowmなどは使ってるわけだが、

  • もうちょっとマシなtodo管理
  • 他人と共有できる
  • 時系列で管理できる

などが欲しいのだ。http://www.checkpad.jp/も良さそうではあるのだが、もうちょっと時系列管理が欲しい気がする。 時系列といえばKikoもインパクトがあるが、 じゃあ使い易いかといえばそうでもなさそう。

たぶん、メール、メモ、ToDoエントリ、画像などなどを全部時系列で突っ込めて、 あとタグづけと全文検索ができるようなツールがあればいいんだろうなあ。 共有など見せ方の管理も必要そうだ。

でも、自分で作るのはしんどいなあ。


2006年09月05日

_ 2.5" HDD 160GB

私のThinkpadはHDDが40Gしかない*1ので、そろそろディスク容量がきつくなってきた。

で、せっかく秋葉原にいるんだからということで、パーツショップに寄って 日立Travelstar 160GB HTS541616J9AT0を購入。ついでに2.5" HDDケースも。

*1  HDD 40G「しかない」とは時代も変わったものだ。320KB(!)が無限に広く感じられたのに

_ 打ち合わせ

講習会終了後、打ち合わせ。しばらく顔を見ていなかった人に再会。 意外な形で頑張っておられた。知らなかった。

_ RFC2822, RFC3339

RFC2822はメールのフォーマット、RFC3339はISO 8601 形式の RFC 版。 どちらも日付・時刻表現のフォーマットを含む。

Rubyが現在のTime#to_sで用いているフォーマットはdate(1)のものだが、 タイムゾーンの表現など考えるといろいろ悩ましい。 RFC2822のものも、RFC3339のものもイマイチ気に入らない。

私が欲しいのはごく普通の

2006-09-05 01:12:35 +0900

というものなんだが、このような形式の規格はないようだ。 まあ、規格なんてどうでもいいから押し切っちゃうってのも手だな。

そうしようかなあ。

_ [Ruby] Joel on Ruby

Austineによる「Language War」へのリアクション。

私の反応よりも面白い。

DHHによるFUDであるとの指摘も見逃せない。


2007年09月05日

_ 取材

昨日に引き続き取材。なんでも中国地方ローカルのNHKニュースのコーナーで 取り扱ってもらえるのだそうだ。 どういう扱いになるんだか。

恥ずかしい。撮影はもうちょっと先。

_ [Ruby] Ruby needs a facelift - Blogs - Byte Club - Builder AU

Rubyロゴコンテストについて。

笑っちゃうのはこのロゴ。

まあ、実際。世間的にはRailsあってのRubyとみなされていることが多いと思うので、 そうでないことを明示的に示すメッセージを発信することにはなると思う。

我々としてもRailsの知名度を利用していないとは言えないので、 あんまり突き放すのも誠実な態度ではないか。悩ましいところである。

ま、とはいえ、だからといってこのロゴを採用したりはしないけど(エントリされてないし)。

_ [言語] Why is X not written in Lisp? or C, man, C!

Cを誉め称える記事、のように見えるが、 実際には言ってることと実際が全然違う、という記事。

ほめごろし?

まあ、こういう抽象化が必要なケースでは Lispにかなう言語はなかなかないよなあ。

_ [言語] Matasano Chargen >> Four C Programming Anti-Idioms

Cのアンチ・イディオム4つ。

  1. mallocの戻り値をチェックする

    failmallocの件とは正反対だが、たしかに多くのプログラムでは どうしようもないというのも事実だ。でも、例外が使えるなら raiseした方が良いと思う。

  2. void*をキャストする

    キャストを強制されるC++と違ってCのvoid*はそのまま代入できる。 こっちの方が良い(と著者は思っている)。

  3. 小さな構造体を参照渡しする

    もうオーバーヘッドは問題ない。どんどん使おう。

  4. mallocのsize指定

    sizeofの引数に型を指定すると変更箇所が増える。 式そのものを書くと型が変わっても対応できる。

賛成できるようなできないような。

_ [言語] Recording Artist: Microbenchmarking

マイクロベンチマークの使い方。

マイクロベンチマークっていうのは 実際のアプリでないベンチマーク向けのプログラムによって 性能を測定すること。

言語処理系(インタプリタとかバーチャルマシンとか)の性能を測定すること になるが、実際のアプリケーションではむしろライブラリの性能の影響の方が大きい。 ので、大抵の場合、マイクロベンチマークは不適切に用いられている。

まあ、世間の誤解ってのはなかなか解けないよね。

なら、それを逆に利用してしまおう。

今回、YARVでマイクロベンチマーク性能を改善することで 実は世間の「マイクロベンチマーク信仰」を逆手にとって マーケティング効果があがることを 期待している。

_ [言語] SQLAlchemy, Declarative layers, and the ORM 'Problem'

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の方が魅力的に見えるが

  • How do you add a column to the many to many table to store an additional bit of info for the join?
  • Do they both enforce referential integrity?
  • How do you control whether SA is eager loading the relation? Can you restrict it to just one column of the relation?
  • What are the table names used?
  • How many tables are in your database?
  • Where do you change the id column name?
  • Which one is closer to the Zen of Python?

というようなことを考えると(うへー、またExplicit Better Than Implicitだよ)、 やはりSQLAlchemyの方が良い(と著者は考える)。

Leaky Abstractionの弊害については理解できないでもないけど、 ここまで表現の優劣が出るのに採用しないってのは、 それがPython的ってもんなのかねぇ。

_ [Ruby] RubyConf 2007 Preliminary Agenda

RubyConf 2007の暫定プログラムが決まった。

今年からはマルチトラックということだ。 RubyConfの成長曲線を考えるとある意味必然なんだが、 今までのRubyConfらしさを失ってしまいそうで、 少し残念な気がする。いや、変化も当然なので、文句を言っているわけではないけど、さ。

2日目の午前中のセッションがIronRuby, JRuby, Rubiniusと来てるんで、 YARVもなにか言うべきではないのだろうか。

同じ日に予定されている私のキーノートの時間をあげようか? > ささだくん


2008年09月05日

_ apelのバグ

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年生まれだから、「ダーククリスタル」公開時には まだ生まれてなかったのか。

もうひとつ驚いたのは、来年続編の公開予定があることだ。これは楽しみだなあ。

追記

画像消えたらしい、残念

_ [Ruby] Lone Star RubyConf 2日目

通常の意味での「カンファレンス」は今日から。

内容はプログラムを 見ていただきたいが、どれもすばらしい。これでリージョナルカンファレンスとは信じがたい感じ。

見どころ

  • もっとも遠い人はヨハネスブルグ(南アフリカ!)から来てる
  • 生Bruce Tateみたよ
  • Dave Thomas
  • みんなプレゼンおもしれー。ギャラクティカとかスタートレックとか、誰もが角谷さん級の破壊力。はっ、これが「フェアユース」のパワーかっ
  • 昼食はまたピザ (おいしいけど)
  • 夕食またBBQ (おいしいけど)
  • Rails Envyの彼ら
  • Evanのキーノートはあいかわず面白い (今回は新作)
  • インド人と話して、文字の順が「あいうえお」であることを確認した。もっとも向こうは母音の数が倍あるけど。

私のキーノート。スライド100枚用意したのに40分くらいしか話せない。 なんという消費ペース。今回は逐語的なメモは用意しなかったのだが、 やっぱ難しいわ。こう、言葉は拙いがその場の勢いを重視するのと、 言葉は拙いがメモを読むのとで、どっちがいいかって話だよな。 結局、拙いんだけど。

全部終わったら10時すぎてた。

_ 謎の人物

帰る前に立ち話してたのだが、どうして言語コミュニティにはときどき「謎の人物」が 登場するんだろうか、と。

たとえば、Chunky Baconで有名な Why the lucky stiff(誰も本名も所属も知らない)とか。フランス人超絶ハッカーのGuy Decoux(誰も会ったことがない)とか。

PythonでもTim Petersっていう誰も会ったことがない人がいるよね。


«前の日(09-04) 最新 次の日(09-06)» 追記