Archive for January, 2008

MacBookAir

Posted by on Wednesday, 16 January, 2008

最初にまとめると、 Engadget Japanese

>

持ち歩くための薄さというよりはやはりアップルらしく「薄いと格好いいから」の薄さなのかもしれません。

と書いてあったけど全体的にそんな感じがするよね。

ぼく個人の用途を考えると、ぼくは家には UNIX (FreeBSD)マシンをルータとして置いといて、主な日常作業はワイヤレスで繋いだ MacBook でやっている。でまあ UNIX 機にログインして作業したりしなかったりと。そういう、つまり「日常的に家で使っていて」「たまに持ち出す」という用途にはいいかもねーという気がするのだな。

アップルの意図としても、家には「母艦」として Mac mini だか何だかがあり、日常触れるものとしてのノートPCという観点でこういう製品を持ち出してきたのだろうし、つまり想定ケースにぼくはわりと当て嵌っているのかもしれないと思う。

んだがどうだろうねぇ。

にしても 1.3kg ってどうなのよという気もするが、ittousai 曰く「軽い」。薄いわりに大きいからかなあ? 重さについては Jaiku で「1kgより重いのはどうなんだ」とつぶやいたら速攻で見知らぬ人から「0.36kgくらい重くても大したことないよ」という返事が。ったくマカーってやつぁ(苦笑)。


コンピュータプログラミングに関する101の名言

Posted by on Sunday, 13 January, 2008

http://www.kt.rim.or.jp/%7ekbk/zakkicho/08/zakkicho0801b.html#D20080112-2

66、83、84はコンピュータジョークで訳出されています。ところで、足を撃つ云々は、この種のいっぱいある定番ジョークなんですね。


Ruby の特異クラスについて(補足)

Posted by on Saturday, 12 January, 2008

昨日のやつですが、やっぱり誤りがありました。エラソーなことを言ってましたが特異クラスは詳しくないし大して活用したことがなかったので、抜けがあった。

そのまえに、特異クラスについて記述にちょっと誤解をまねく表現がまずあります。 Ruby には特異クラスのための構文というのがあるのです。

s = "some string" class << s def is_some_string? true end end

は、

s = "some string" def s.is_some_string? true end

と同じです。この「class << s」から「end」までを特異クラス(の宣言)といいます。でもこの話は昨日のやつには混ぜると話がややこしくなりそうだったので省略しました。実際、前者はいっぱいメソッドを定義するときに「s.」がいちいち必要ない、といった程度のことだと思ってて、クラスっぽい構文でも書けるよ、という程度の認識だったんですね。それにまあ、特異クラス構文になったところで、たとえば String クラスのオブジェクトを String という識別子で取り出せるように特異クラスをRubyレベルで指定することはできないことには変わりはない、と気軽に考えていました。

でも、べつに前者は単なる構文糖ではないので(というか後者は前者に書き直せるが前者からは後者に直せない表現が存在する)、その不一致を突けば特異クラスは取り出せるじゃん、と気付きました。そういえばそうだった。 Yugui さんご指摘ありがとうございます

$s = "abc" $singleton = nil class << $s def f1(); true; end def f2(); false; end $singleton = self end

こんなスクリプトを load しまして、

irb(main):001:0> $singleton => #<Class:#<String:0x53a9f8>> irb(main):002:0> $s.is_a?($singleton) => true irb(main):003:0> $s.class == $singleton => false irb(main):004:0> $singleton == String => false irb(main):005:0> $singleton.superclass => String irb(main):006:0> $singleton.ancestors => [String, Comparable, Object, Kernel, BasicObject] irb(main):007:0> String.ancestors => [String, Comparable, Object, Kernel, BasicObject] irb(main):008:0> $singleton.instance_methods => [:f1, :f2, ...]

こんな風に「f1とf2が定義されている」「$sは$singletonのインスタンス」「でも$sのクラスではない」「基底クラスはString」「ancestorsに自分がいない」という愉快なクラスが取り出せます。こいつは特異クラスです。

というわけでした。


Ruby のクラスとインスタンスの関係(あるいはモジュールと特異メソッドについて)

Posted by on Saturday, 12 January, 2008
>
  • http://d.hatena.ne.jp/m-hiyama/20080109/1199863428 >
  • http://d.hatena.ne.jp/sumim/20080109/p2
  • うーん、タイトルでスルーしてたけどさすが面白い。誰か Rubyist が既に書いているかな?という気がしますけど。まあいいか。以下は少しだけ調べながら書きましたが、カンチガイなどにより嘘や不正確な情報が混じっている可能性があります。

    まず Ruby は Smalltalk に影響を受けた(とされる)オブジェクトシステムを使っています。ということで、 Object という識別子はクラスという概念を指すと同時に「Objectクラスオブジェクト」も指します。ややこしいことに Ruby にも Object.class という表現は存在するのですが、それは「Objectクラスオブジェクト」ではありません。「Object クラスオブジェクト」に対して class メソッドを呼び出しているので、「Object クラスオブジェクト」のクラス、つまり Class が返されます。

    また、 Ruby は実にミもフタもない構造を取っています。

    >

    どうでしょう、納得できましたか? 僕は納得できないですね(オイオイ)。Class.classというクラスオブジェクトの扱いが不徹底で気持ち悪いんです。 >

    クラスオブジェクトClass.classは、クラス・プレーンにあるクラスClassのレイフィケーション・イメージでした。が、Classというクラスがクラス・プレーンに在るのはおかしいのですよ。

    それを「おかしくない」と強弁してしまう(笑)のが Ruby です。 Class オブジェクトのクラスは Class 自身になっています。違和感の残る人もいるかもしれませんが、図としてはすっきりしている……と、ぼくは思います。

    ところで、 Ruby では Object クラスの基底クラスって何でしょうか? じつは 1.9.0 からは BasicObject という新しいオブジェクトができました。 Object じたいはけっこう多機能なので、そういう余計なものを削ぎ落とした「空っぽにちかいオブジェクト」が BasicObject です。また BasicObject の基底クラスは定義されません(BasicOjbect.superclass は nil が返されます)。ということで、以上をまとめて図に書くと、次のような感じ。なお、 1.8.x を使ってる常識的な皆さんには BasicObject は存在しないのでその辺を削除してください。

    さて、 Ruby で面白いのは「モジュール(Module)」です。 Ruby のモジュールは、乱暴な言い方をすると Java のインタフェースのようなものです(詳しい説明は逆引きRubyとかを読んでください……)。 Java ではインタフェースを実装する(implements)という宣言がありますが、 Ruby にも include という似たような表現があります。

    class String include Comparable end

    こんな風に書くと、 String のインスタンスではモジュールの提供するメソッドが使えたりします。

    面白いのは Ruby では個々のモジュールもまたオブジェクトだということです。つまり上で書いた Comparable というのは「モジュールオブジェクト」なのです。そしてモジュールオブジェクトは「Moduleクラス」のインスタンスとなっています。誤解しないでほしいのですが「Moduleクラスオブジェクト」じたいはモジュールではありません。あくまでも「Module」は「モジュールオブジェクトのためのテンプレート」となるクラスだからです。

    ところでモジュールはクラスとすごくよく似た概念で、メソッドなんかがふつうに定義できます。実際、 Ruby レベルではモジュールとクラスではほとんど同じことができます。ただしモジュールはインスタンスを作ることができず、上のように特定のクラスに差し込まれることで定義したメソッドを使うのが普通です。ようするにモジュールとは「クラスからインスタンスを作る機能を取り除いたもの」だと考えることができます。

    そこで、 Ruby では発想を逆にして「ClassはModuleを拡張してインスタンスを作る機能を付け加えたものだ」と考えます。すると、 Class は Module を派生させてできたものだ、と考えられそうですね。実際、 Ruby ではそうなっています。ちょっとややこしいですが、

    >
  • Class クラスオブジェクトは Class クラスのインスタンス >
  • Module クラスオブジェクトも、ほかのクラスオブジェクトと同じく Class クラスのインスタンス >
  • Class クラスの基底クラスはModuleクラス
  • ……ということです。また(おそらく便宜上)、 Module クラスの基底クラスは Object とされています。図にかくとこんな感じでしょうか。

    さあこんがらがってきました。なお、個々のモジュールは(クラスではないので)基底クラスという概念がありません。したがって基底クラスの矢印もありません。

    さて、「Stringクラスに Comparable モジュールを差し込む」というのはどういうことでしょうか。これは「モジュールオブジェクトがクラス継承に割り込む」という意味に解釈できます。以上をまとめて図に描いてみると、こんな感じでしょうか。

    String のオブジェクトである s1 に f というメソッドを呼びたいとします。 s1 は String のインスタンスですから String のメソッドをまず調べますよね。なければその基底クラスに……という風に辿っていく。でも、 String から Object へ辿る途中にモジュールが割り込むので、その段階でモジュールにあるメソッドも探され、発見されたらそっちのメソッドが呼ばれます。ということで、「モジュールに定義されているメソッドが String でも使える」ということになります。

    また、モジュールそれ自体は Module とインスタンス関係しかないので、個々の s1 からすれば Module クラスのメソッドを呼ぶことはできません。あくまでも辿るのは継承関係だけ、ですよね。

    ただ、本当に Comparable がこの位置にくるわけじゃありません(そういうわけで点線で囲まれるノードになっています)。複数のクラスが同じモジュールを include したときに、 Comparable から先に辿るのが何物かわからなっちゃいますよね。たとえば Person もまた Comparable だとすると、次のようになります。

    このふたつの Comparable は実際には同じものです。2つあるように見えるのは、複数の継承関係に割り込んでいるからです。

    以上をまとめて Ruby スクリプトに書き起こしてみましょう。こうなります。よく見比べてください。

    require "test/unit" class Person attr_reader :name def initialize(name) @name = name end end class RubyClassModuleTest < Test::Unit::TestCase def test_classes_modules s1 = "Hello" s2 = "Bye-Bye" p = Person.new("tonkichi") " 1"; assert_equal(String.superclass, Object) " 2"; assert_equal(Person.superclass, Object) " 3"; assert_equal(Class.superclass, Module) " 4"; assert_equal(Module.superclass, Object) " 5"; assert_equal(Object.superclass, BasicObject) # ruby 1.8 ではエラー " 6"; assert_equal(s1.class, String) " 7"; assert_equal(s2.class, String) " 8"; assert_equal(p.class, Person) " 9"; assert_equal(String.class, Class) "10"; assert_equal(Person.class, Class) "11"; assert_equal(Object.class, Class) "12"; assert_equal(BasicObject.class, Class) "13"; assert_equal(Class.class, Class) "14"; assert_equal(Comparable.class, Module) "15"; assert_equal(Module.class, Class) end end

    なお、モジュールは superclass の関係にはあらわれてきませんが、 ancestors メソッドを使うと見ることができます。 ancestors はレシーバのクラスから基底クラスをずっと辿ってクラスオブジェクトの配列を返すメソッドですが、途中にモジュールが入るばあいはそのモジュールも配列に含まれるようになります。実際にはメソッド探索の順番を確認したいときに使われます。

    irb(main):001:0> String.ancestors => [String, Comparable, Object, Kernel, BasicObject]

    String の基底クラスは Object ですが、 String と Object のあいだに Comparable モジュールが差し込まれていますね。ちなみに、この結果はわたしが Ruby 1.9.0 を使っていることを示しており、 Ruby 1.8 系では次のようになります。

    irb(main):001:0> String.ancestors => [String, Enumerable, Comparable, Object, Kernel]

     

    さて、さらに話をややこしくしますと Ruby で特徴的なのは「特異メソッド」という怪しげな仕組みです。これをつかうと、特定のオブジェクトが個別にメソッドを持つことができます。次の例を見てください。

    irb(main):001:0> s1 = "some string" =>"some string" irb(main):002:0> def s1.is_some_string?; true; end => nil irb(main):003:0> s1.is_some_string? => true irb(main):004:0>"other string".is_some_string? NoMethodError: undefined method `is_some_string?' for "other string":String irb(main):005:0>"some string".is_some_string? NoMethodError: undefined method `is_some_string?' for "some string":String irb(main):006:0> s3 = s1 =>"some string" irb(main):007:0> s3.is_some_string? => true

    ここでは「s1という文字列オブジェクト」に is_some_string? というメソッドを定義しています。このメソッドをほかのオブジェクトである "other string" に対して呼び出すとエラーになります。また "some string" と内容が同じでも、実態が異なればやっぱりエラーになります。しかし実態が同じ s3 に対してはメソッドを呼び出すことができますね。

    これ、実際にはどうなっているかというと、新しく特異クラスという怪しげなクラスをつくり、そのクラスに is_some_string? メソッドを定義して、「s1のクラス」を String から特異クラスに差し替えることで実現しています。ただし、特異クラスというのは実装上の概念で Ruby レベルでは出てきません。つまり、s1 のクラスを得るために s1.class を呼び出しても String が返されるのですね。「Rubyのプログラムで使える関係」を実線であらわし、こんな風に実装上使える関係を点線であらわしましょう。そうするとモジュールも同じように考えることができます……ただし、必ずしも実装がこうなっているというわけではありません。また便宜上は SingletonString_s1 と名付けた s1 の特異クラスですが、 Ruby レベルでこのクラスに直接にさわることはできませんし、こんな風な名前もつけられていません。(追記この辺は翌日の補足も参照してください)。

    Ruby でメソッドを探索するときは点線と実線の両方をたどります。ただし一度見たものを見直すことはしません。ちょっと矢印を辿って調査してみてください。ただし、実線の矢印は最初の「インスタンス→クラス」のときだけ辿りますから注意。

     

    ところで、後半に「実装上」云々という話を書いたことから明らかなように、ここでの話は概念上の話と実装上の話がけっこう混ざっています(半ば意図的に混ぜました)。もとの檜山さんの話が非常に概念的な話に終始していたのに比べると、ちょっと混乱があると多います。でも Ruby でプログラムを書く上では理解していると嬉しいことだと思うので、かこつけて説明してみました。ちなみに『Rubyソースコード完全解説』の序盤には、このあたりの情報がくわしく (Cによる実装の説明つきで)書いてあって楽しいのでした。

    なお、ここでの図の作成には Graphviz を使いました。 dot ファイルは図の URL の拡張子を dot にかえたものとして置いてありますから、みなさん御自由にお持ちください。テストスクリプトまでまとめた tarball も作っておきましたので、そっちもよければどうぞ。

    [追記] そういえば Ruby で基底クラスを指定してクラスを定義するときに<の記号をつかう件ですけど、わたしはこれ、不等号っていうよりは矢印みたいなイメージで見てますね。

    class MyClass < OtherClass ... end

    は、「MyClassにOtherClassを注入するぞ」みたいなイメージ。そういうわけで << とよく間違えます(笑)。


    最近のスラドって

    Posted by on Thursday, 10 January, 2008

    なんかストーリー選択が ja.reddit と似たりよったりになって来てる気がするなあ。つまり、ちょっと話題になってそうなブログ記事を持ってくるというタイプの。新システムになってユーザの意見が強く反映されるようになったからだろうか。でもそれだったらオレは reddit のほうがいいと思うんだな。なんていっても reddit はまだスラドと違って(検閲削除)がいないからね。

    ジョークはさておき、スラドはやっぱりインタビューとか本家の翻訳とかがある方が独自の地位を保てる気がするにゃー。今の方向性にもメリットはあるけど(たとえば Zed Shaw の記事をいちはやく取り上げて耳目を集めたりとか)、スラドの独自性を捨てることになる気がしていて、なんか「どうしちゃったの」という感じ。


    チャールズ・ストロス “Halting State”

    Posted by on Wednesday, 9 January, 2008

    Halting State

    というわけで、昨年中に持ってきた日本語の小説はみんな読んでしまったので、日本では『残虐行為記録保管所』が邦訳されてるストロスの最新長編 “Halting State” をこっちで買って読んでいた。それにしても英語で読むのは随分と速くなった(いいかげんに読みとばすこともできるようになったということでもある)。

    で、 "Halting State" だが、ストーリーの骨格はハイテクスリラーになっている。ストロスは『シンギュラリティ・スカイ』やその続編『アイアン・サンライズ』、部分的に訳されてる『アッチェレランド』なんかが日本で紹介されているが、上掲の『残虐行為記録保管所』(これはクトゥルーもの+スパイスリラー)のように、べつに遠未来やシンギュラリティテーマばっかりの作家というわけではないのだ。ファンタジイや歴史改変ものも書いてたし(そっちは未読なので詳細は知りませんが)。

    舞台は21世紀初頭のスコットランド。この世界では、2012年にイギリス(グレートブリテンおよび北部アイルランド連合王国)から分離独立しているのだが、そのスコットランドにあるハイテク企業でトラブルが発生する。この時代、オンラインゲームがブームで、特に個々の携帯端末を計算資源にした大規模超並列のオンラインゲーム向けプラットフォームがある。データが勝手にあちこちを行き来する関係上、資源は暗号化されて他人の情報は勝手に奪えないのだが、その上で、ゲーム内経済を受け持っている仮想銀行のデータが奪われる。誰が、どうやって?

    というのが発端になって国際的な謀略なんかも絡みつつスケールを広げていくわけだが、警官、保険屋、ゲームプログラマがそれぞれの立場でこの事件に巻き込まれていく、といった粗筋。

    ただ、なんといっても目について特徴的なのは語り口だ。本書は二人称による語りを採用している。つまり主人公は You になっている。でも主人公は上に挙げたように三人いるわけで、章ごとに You の指し示す対象が変わってくるという、なんだかややこしい構造を取っている。ただ、章のタイトルには誰の視点で(というかえーとなんだ誰が You になって)語られるかが書いてあるから、ややこしすぎることにはなっていない。

    また、舞台がスコットランドなのでスコットランド訛りは頻出する。とくに主人公の警官はかなりスコットランド語(?)をしゃべるのでちょっとわかりづらい。けど、それで雰囲気を出してるんだろう。こういうのってどう訳すのかなあ……。

    ともあれ、ハイテクスリラーとしてはふつうに良い出来。上に挙げたような描写とかも含めてハイテク描写はきちんとしているし、現実のサービスなんかをベースにしたいかにもありそうな表現(ようするにgoogleしろとかIMしたとかそういう表現)が使われている(ま、それは一瞬で古びる危険性があるので諸刃の剣だが……)。その上でちゃんと大ネタも用意している。一方、ギーク向けのコネタもそこかしこに散りばめられてる。何気なく「web 3.1415」とかいう用語が出てきたりとか、そういうくすぐりもありつつ手堅くエンターテイメントしている。しかし何なんだ web 3.1415。 TeX か。ティム・オライリーの死後にweb πになって進化しなくなるのか。いやそこはどうでもいいが、そんなところにピンとこなくても楽しめるようにしつつコネタはコネタで用意していて楽しめた。

    よくできた佳作。


    ジョーゼフ・ヘラー『キャッチ=22』

    Posted by on Wednesday, 9 January, 2008

    キャッチ=22 上 | キャッチ=22 下

    昨年はぜんぜん本を読めなかったが、今年はもう少しは本を読みたいと思う。まあ、今はアメリカにいるのでなかなか難しいところだけど、とりあえず気になる新刊はひとまず amazon のカートに放り込んで、帰国してからまとめて買うつもり。こっちにもいくつか本を持ってきていたのだけど、昨年末に読みつくしてしまった。大した冊数ではないから、もう少しは読みたいというのを抱負にしたい。

    で、最後に読んでいたのが掲題の『キャッチ=22』。しかしまあ、なんというか、あまりにも古典的名作なので言及するのもどうにもなあという感じなのだが、読んでみたら確かに面白かったので感想を書こう。

    面白いというのはべつに文学的見地からしてということではまったくない(というか、わたしにはそんな文学的センスなんてありません)。『キャッチ=22』は簡単にいうと不条理コメディなんであり、その意味でめちゃくちゃおかしくて笑える。登場人物はほとんどみんな狂っており、状況もデタラメで、規則や推論は互いに矛盾し、言葉には逆説や否定疑問がうまく混ざって奇妙さを与え、会話はほとんどまったく成り立っていない。それに合わせるように、物語の進行や時間の流れもデタラメに遷移する。

    たとえば、序盤にはこんな会話がなされる。

    >

    「なにをしているんだ」と、ヨッサリアンはテントに入るとき用心深くたずねた。なにをしているかはすぐにわかったのだが。 >

    「ここが漏るんでね」とオアが答えた。「修繕してるところなんだ」 >

    「たのむからやめてくれ」とヨッサリアンは言った。「いらいらしてくる」 >

    「おれは子供のころ」とオアが返事がわりに言った、「一日じゅう両方のほっぺたに野生りんごを入れて歩きまわっていたものさ。片方のほっぺたにひとつずつ」 >

    ヨッサリアンは雑嚢から洗面用具をとり出していたが、それを脇によけ、いぶかしげに腕組みした。一分たった。「なぜ」と彼はとうとう質問せずにはおれなかった。 >

    オアは得意げにクスクス笑った。「なぜって、そのほうが橡(とち)の実よりましだったからさ」 >

    (中略) >

    「野生りんごが見つからないときは」とオアは話をつづけた、「橡の実を使ったものさ。橡の実は野生りんごとだいたい同じ大きさだし、形ときたら野生りんご以上だ。といっても形は問題にならないんだが」 >

    「なぜ野生りんごなんかほおばって歩いたんだ」とヨッサリアンはまたたずねた。「それを聞いていたんだぞ」 >

    「なぜって、橡の実より形がいいからさ」とオアが答えた、「いまそう言ったばかりじゃないか」 >

    (『キャッチ=22』(上) pp.38-40)

    作中の会話は、おおむねこんな感じで噛み合わないまま続いていく。

    けれども、いかにバカバカしく笑えるとしても作品の空気はむしろ暗くて重い。戦場が舞台で、死と隣りあわせの環境なので、登場人物たちは時に狂騒的に騒ぐけど全体の雰囲気はつねに重苦しい。その重苦しさがあるので作中の狂気はむしろ絶望につながっている。

    ちなみにタイトルの「キャッチ=22」は軍規の第22項のことで、これが陥穽 (キャッチ)となって縛りつける。たとえば、狂った兵士は本人が申請すれば飛行勤務が免除される。ヨッサリアンは「おれはきちがいだぜ」と主張して、飛行勤務を免除されようとするが、「戦闘任務と免れようと欲する者はすべて真の狂人にはあらず」という理由から却下される。これがキャッチ=22の一例というわけ。ただ、肝心の「キャッチ=22」自体は作中にはあんまり出てこないし、そこに気を取られなくても良いだろうという気がするが。

    本書はアメリカで1961年代に発表され、やがてベトナム戦争のころに爆発的に売れたのだそうだ。確かに本書は(舞台が第二次大戦だけあって)戦争の不条理を描いたという見方をするのがふつうだし、ベトナム戦争を背景とすればこの不条理も入って来やすい。上にも書いたように雰囲気の重苦しさも、そのような物語……つまり戦争小説として読むことを後押しする。でもべつに、現代の僕らは「戦争文学」とか「ベトナム戦争が云々」みたいな難しい顔をして読まなくてもいい。『キャッチ=22』は戦争というよりは、不条理な世界の閉塞感を描いているからだ。不条理な世界も閉塞感を感じる世界も、戦争にかぎらずそこら中に転がっている。

    話はループするけど、いかに重苦しいとしても、現代社会の不条理を連想させるとしても(いやだからこそ?)『キャッチ=22』の不条理はやっぱり可笑しく、笑い飛ばせる。それがいい。


    リリースエンジニアリング

    Posted by on Tuesday, 8 January, 2008

    Open Tech Press で Scribus を紹介している記事。 http://opentechpress.jp/developer/08/01/07/0046207.shtml を ja.reddit 経由で読みました。使ったことないので内容もそこそこ興味深かったですが、次のパラグラフがなかなか面白いと思いましたね。

    >

    かく言う私であるがLinux.comに掲載されたバージョン1.3.4のリリース記事を目にしなければ、おそらくその存在に気づきはしなかったであろう。実のところバージョン1.3.4は開発リリースという位置付けにされているのだが、安定版と開発版リリースの相違点など、オープンソースの開発サイクルに詳しくない人間にとっては些細な違いでしかない。

    んー、やっぱそうだよなー。

    >

    実のところバージョン1.9.0は開発リリースという位置付けにされているのだが、安定版と開発版リリースの相違点など、オープンソースの開発サイクルに詳しくない人間にとっては些細な違いでしかない。


    人名を使うということ

    Posted by on Friday, 4 January, 2008

    どこかで誰かが書いていたが、ナントカの法則とかナントカの方程式とかいう場合に東洋は人名を出さないが西洋では名前を出して、その人物の栄誉を称える傾向があるんだとかどうだか。本当かどうかはわからないし東洋発でナントカの法則とかそういうのってそもそも何があるのかな、とかつつきたい重箱の隅がいっぱいありそうな話だけど、感覚的にはわかるような気もする。

    それはそれとして、そういう話を聞いて思い出すのは、概念としてあまりにも基本的すぎるために、元は人名だったものが既に一般名詞なんだかわからないような状態にまで至るようなことがある、ということだ。

    具体的にはベイズ方程式、マルコフ過程、カリー化のようなことを考えている。「マルコフ性」なんて言葉は文脈がわからなければ「マルコフさんらしさ」という意味だとしか思えないし、カリー化にいたっては英語では currying と動詞と化しているし、世の中に氾濫しているベイジアン云々なんてもはや何が何やらという感じだが、ここまで基礎的な概念に人名がついているというのは驚異であるし、その実に基礎的な概念が実は広く有用であることを見出して定式化できてしまた彼らも驚異である。そんなわけで、こういう言葉に言及するたびにぼくは、この人たちの人生について思いを馳せてしまう。こんなのは皆さんの専門分野にもいっぱいあると思うので、各自で思いを馳せてほしい。

    ところでアロンゾ・チャージはともかくロッサーの方はどういう人?


    喪中

    Posted by on Wednesday, 2 January, 2008

    昨年は祖母が逝去した。そういう次第で新年の挨拶は省略させていただきます。

    ところで、「喪中」というのはいつごろから存在している文化なのだろうか。江戸時代にも「あけましておめでとうございます」とは言わなかったろうか。そもそも江戸時代にもそのような新年の挨拶というやつがあったのかすら、ぼくは知らない。

    年賀状が新しい文化だということはよく知られているが、喪中は年賀状といっしょに生まれた文化なのだろうか。また、いつごろから年賀状に付随するようになったのだろうか。

    そもそも喪中であってもたとえば初詣などをはじめとして、正月に関連する祭事を全く行なわない、参加しない、ということはないだろう。喪中は基本的には年賀状とセットの概念である。基本的には、年賀状を送る直前に身内の不幸があった場合など、まさしく喪に服しているときには年賀状は送れなかったはずであり、そういうところから次第に形作られてきた慣習なのではないかという気がするが、ある一年のあいだに身内の不幸があると翌年の年賀の挨拶を行なわない、というのはほかの慣習(四十九日とかのように日数で数えるもの)とは微妙に一致しないようにも思えるのだが。