過去の日記

2008-03-19

ハチミツとクローバー イラストレーションズ [book][comic]

届いたー。

ハチミツとクローバーイラストレーションズ (愛蔵版コミックス)

  • 作者: 羽海野 チカ
  • 出版社/メーカー: 集英社
  • 発売: 2008-03-01
  • ASIN: 4087821706
  • メディア: コミック
  • amazon.co.jp詳細へ

在庫があるからリンクがでてきたけど、この間は買えなかったんだよなー。


あぁ、至福……。

川井憲次 [music]

K-PLEASURES~Kawai Kenji BEST OF MOVIES~CD-BOX

  • 出版社/メーカー: PONYCANYON INC.(PC)(M)
  • 発売: 2008-03-19
  • ASIN: B000XQFZLA
  • メディア: CD
  • amazon.co.jp詳細へ

届いたー。
でも、箱にDVD1個分のスペーサーが……。
と、いうことは?

Kenji Kawai Concert 2007 Cinema Symphony [DVD]

  • 出演: 川井憲次
  • 出版社/メーカー: ポニーキャニオン
  • ASIN: B0012ZN60S
  • 発売: 2008-03-19
  • amazon.co.jp詳細へ

これか! 買う!


2008-03-18

Photoshopの災厄 ありえない修正がされた画像たち [etc]

そんな画像や、何かの間違いが混じり込んだ画像を見つけて紹介しているblog。
分かりにくいものは英語を読まないといけないんですが、写真だけで分かるものもあるので、フィードリーダに入れておくと時々吹き出してしまったり。

http://photoshopdisasters.blogspot.com


例えば、

http://photoshopdisasters.blogspot.com/2008/03/victorias-secret-classic-severed-hand.html

心霊写真か? みたいなのとか。



http://photoshopdisasters.blogspot.com/2008/03/bebe-eva-longoria-is-made-of-rubber.html

あなたの体はゴムで出きてるんですか? みたいな無茶な修正とか。



http://photoshopdisasters.blogspot.com/2008/03/imagine-babyz-whats-watermark.html

素材無料使用した時に入り込む透かしマークが、なぜかゲームのパッケージに……、とか。



http://photoshopdisasters.blogspot.com/2008/03/diario-sportivo-as-i-wasnt-expecting.html

スペインにはソックリさんがたくさんいるようで……。

エンジニアマインド出たんだ あと Gauche [気になる本]

エンジニアマインド Vol.9

  • 出版社/メーカー: 技術評論社
  • 発売: 2008-03-14
  • ASIN: 4774134112
  • メディア: 大型本
  • amazon.co.jp詳細へ

出たんだ。目で見てから買うか決める。


プログラミングGauche

  • 作者: Kahuaプロジェクト
  • 出版社/メーカー: オライリージャパン
  • 発売: 2008-03-14
  • ASIN: 4873113482
  • メディア: 大型本
  • amazon.co.jp詳細へ

気になる……。

ファシリテーターの道具箱 [気になる本]

「図でわかる!すぐに役立つ!」と一番上に書いてある。
こういう本は、机の脇に置いておいて隙間時間に眺めるものじゃないかな、と思う。

ファシリテーターの道具箱―組織の問題解決に使えるパワーツール49

  • 作者: 森 時彦/ファシリテーターの道具研究会
  • 出版社/メーカー: ダイヤモンド社
  • 発売: 2008-03-14
  • ASIN: 4478003963
  • メディア: ペーパーバック
  • amazon.co.jp詳細へ

買ってみようか……。

ガロア理論 [気になる本]

明解ガロア理論 [原著第3版] (KS理工学専門書)

  • 作者: スチュアート,I.
  • 出版社/メーカー: 講談社
  • 発売: 2008-03-15
  • ASIN: 406155770X
  • メディア: 単行本
  • amazon.co.jp詳細へ

読みたいけど値段的に手が出ない……。図書館に入るか待つか。


関連エントリ

なぜこの方程式は解けないか?

クリスマス緊急指令 読了 [novel]

この本の最大のトリックはミステリではないことである。

クリスマス緊急指令~きよしこの夜、事件は起こる!~ (講談社ノベルス)

  • 作者: 高田 崇史
  • 出版社/メーカー: 講談社
  • 発売: 2007-11-07
  • ASIN: 4061825666
  • メディア: 新書
  • amazon.co.jp詳細へ

"ハートフルミステリ"と帯には書かれているけど、ハートフルの部分は合ってる(全体的には)。
心地よく読めた。

日本の伝統的な強みって を受けて [etc]

「技術が形式知化されずに*1人から人へ伝承できること」だったのかなぁ、と私は思いました。

人材だよね。技術じゃないよね。とかふと思った。

日本の伝統的な強みって - lethevert is a programmer

今は何でも"形式知化"で(ISO9000シリーズとか)、"人から人へ伝承できなく"なっているんじゃなかろうか、と。


あぁ、そのことを指して漠然と"人材"という言葉で言い表しているんだろうなぁ、と想像してはいますが。そこをあえてくどい表現にしてみました、ということです。

*1 されないままでも、の方が良かったか。


2008-03-17

「牛の首」 ネタバレ注意!! [hatena][novel]

聞いたらあまりの怖さで死ぬとかおかしくなるとかいう「牛の首」と言う話が知りたいのですが
http://q.hatena.ne.jp/1069654969

小松左京の短編小説に同名のものがある。

物語の魔の物語―異形ミュージアム〈2〉メタ怪談傑作選 (徳間文庫)

  • 出版社/メーカー: 徳間書店
  • 発売: 2001-05
  • ASIN: 4198914974
  • メディア: 文庫
  • amazon.co.jp詳細へ

巻頭に収録されている。


他には、

夜が明けたら (ハルキ文庫)

  • 作者: 小松 左京
  • 出版社/メーカー: 角川春樹事務所
  • 発売: 1999-11
  • ASIN: 4894565900
  • メディア: 文庫
  • amazon.co.jp詳細へ

にも収録されているようだ。


では、ネタバレをこれから書きます。
























一人称小説。

「こわい話もずいぶんきいたけど……」とS氏は、急にあらたまった口調で言った。「やっぱり一番すごいのは……」

という書き出しで始まる。
そして「私」は"牛の首"という"本当にこわい話"の存在を聞きつける。
が、誰もその中身については口をつぐんで話そうとしない。

「もう、あの話だけはよそう」

「それがなかなか――」(略)「いえないし――、実をいうと、思い出す*1のもいやなんで……」

という感じ。







































最後に「私」は気付く。
それは題名と、非常に恐ろしい話だということだけわかっていて、その内容は誰も知らないのだということに。
あんなものすごい話はきいたことがないと誰もが言っていたことに。
誰もどんな話か知らないのに、その恐怖だけが生きている怪談だということに。

そして結末。
「私」がある人に、"牛の首"という怪談があるそうですね、と尋ねられ、そして応える。

「ああ……」私は顔が青ざめるのを意識しながら、低くつぶやいた。「知っているとも――あんな、恐ろしい話は、きいたことがない……」

と幕引き。














































という内容のショートショートなのである。


このショートショートの何が「怖い」かというと。
物語世界の「私」と同じ情況に、読者も陥るからなのだ。

聞いたらあまりの怖さで死ぬとかおかしくなるとかいう「牛の首」と言う話が知りたいのですが

というはてなの質問に、なんと回答すればいいのだろう?
小松左京に「牛の首」というショートショートがある。

それは実は、題名だけが伝えられていて、その中身については誰も知らない、という物語なのです。

と答えたとしよう。
……そう。答えになっていない。
これが答えだと認識する人はいないだろう。

物語の中の「私」の状況が、物語を超えて現実の自分にも降りかかる。
「小松左京の"牛の首"という題名のショートショート」であるはずの作品が、その内容を説明しようとしたとたん、物語の中に自分が組み込まれてしまったことに気がつくという恐怖なのである。


以下余談。というか完全に蛇足だな。
それとは別に都市伝説として語られている"牛の首"という話もあるようなのだけど――。
それが小松左京の"牛の首"が発端であって、つまり、題名だけで中身の無い話に誰かが中身を与えようとした結果なのかどうか? という疑問が出てくる。
出てくるのだけどそれを確認できないあたりもまた、この話の怖いところ。

*1 引用者註:本文では傍点での強調。


2008-03-16

Set が Ruby にはないという話 [java][Ruby]

Rails' Wiki - Rails勉強会@東北第9回

に参加してでてきた話。


Ruby使いの人
「Java の Set って何?」
「Java の Set にあたるものって Ruby では何? と聞かれて分からなかった*1


Java使いの人
「あぁ、Set って確かにあまり使わないなぁ」
「っていうか Map つまり連想配列のキーの部分と変わらないし」



「Set には実装として HashSet と TreeSet があるから、Set は抽象レベルの話で、Java では実装が選べるから……」


Java使いの人
「やっぱり結局ハッシュのキーの部分ってことでいいんじゃ?」



「いや、連想配列のことを俗にハッシュって言っているけど、それはイコールじゃないし。あぁ、説明できない〜。っていうか忘れてる〜」


となったのでその話。


import java.util.*;

public class Test {

    public static void main(String[] args) {
        Set s = new HashSet();
        s.add("a");
        s.add("b");
        s.add("c");
        s.add("b");
        s.add("c");
        s.add("d");

        System.out.println(s.size());

        Iterator iter = s.iterator();

        while (iter.hasNext()) {
            System.out.println(iter.next());
        }

    }
}

実行すると、

4
d
b
c
a

こんな感じ。
s の中身は4つ。"b"を2回、"c"を2回 add しているけど、Set の性質である"重複を許さない"ためにそうなる。

重複要素のないコレクションです。すなわち、セットは、e1.equals(e2) である e1 と e2 の要素ペアは持たず、null 要素を最大 1 つしか持ちません。その名前が示すように、このインタフェースは、数学で言う集合の抽象化をモデル化します。

Java 2 Platform SE 1.3: インタフェース Set

ということ。


さて、上のソースでは interface Set の具象クラスとして HashSet を利用したのだけど、これを TreeSet にしてみる。

        Set s = new TreeSet();

に変更するだけ。
実行結果はこう。

4
a
b
c
d

つまりソートされた状態を保持するわけだ。
iterator で中身を全部吐き出す時や、first, last メソッドがその様に振る舞う。


Set を実装するにあたって"重複を許さない"という性質をどのようにするか? 逆に言うと"重複があるかどうかを調べる"にはどうするか? ということ。
単純に頭から重複があるか探していったら O(n) のオーダになってしまいます*2

で、Java で最初から用意されている方法がハッシュを使う方法と、ツリーを使う方法。ってそのままカタカナに直しただけに見えますな。
後者は、赤黒木を使って、ソートされた状態を保った平衡二分木でデータを保持します。

前者は……全くややこしいことですが、ハッシュ=連想配列と考えている人が多いので困ります。


初期のJavaの実装では、まず11個の配列を用意しています。
add するオブジェクトの hashCode() メソッドを呼び、その11の剰余でそれぞれの配列に分配していきます。
なぜ11かというと、

  1. あまり配列が小さくて大きくても効率が悪い
  2. Object#hashCode はメモリアドレスを返す仕様になっているので、4や8の倍数になると予想される。その倍数や約数の配列を用意すると、全部の配列にうまくまんべんなく入ってくれない*3ので都合が悪い。

という感じで、適当に小さくも大きくもない素数として選ばれたんではなかろうか、と私は思う(きっと情報工学の初期にこういうことを研究した人がいて、ちゃんと論文もあるんだろうなぁ、とは思う。いや数論の分野かな?)


Javaでもあとのバージョンになると単純な剰余ではなくなり(計算時間を気にした? とも思えないけど、効率がよくなかったんだろうなぁ)、上の様な簡単な話にはならない。
でも、ある数の配列を用意して、それにうまく分散して格納していくことで、重複のチェックにかかる時間を 1/(配列の数) あたりまで減らすことができる、という考えは一緒。


本題はここから。 < おい

Ruby になんで Set にあたるものが無いかというと、連想配列(Ruby でいうと Hash クラス)のキーの部分だけ見ると同じ機構を持っているからなんだろう。

s = {}

s['a']=nil
s['b']=nil
s['c']=nil
s['b']=nil
s['c']=nil
s['d']=nil

p s.size #=>4
p s.has_key?('a') #=>true
s.each_key {|key|
  p key
}

でいいわけで。


で、オチなんだけど、実はJavaも、古いバージョンの TreeSet の実装って中に TreeMap を持っているだけだったと記憶しているんだよね(今確かめる気はないけど)。
なんだよ、じゃ Set なんて要らないじゃん? とか思わなくもない。
けど、きっと Collection という一連のユーティリティとして、あった方が"完璧"つまり"キズが無い"ってことを重視したのではないかと。

そしてもちろん、抽象概念としての Set とその実装を分離することで、アルゴリズムやデータ構造に対して意識を向けさせられる。
私としてはそっちの方に大きな意味を感じるのだけど、開発の現場では結局あまり意識されない、というのもきっと事実。


(で、連想配列=ハッシュ という勘違いが広がるんだよ)
(最近でこそハッシュに、"大きなデータストリームの同一性のチェック"という利用価値が出て来たけどな。それを除けば、ハッシュといえば連想配列に使われる、ってことでいいんじゃね?)


関連

目で見るRed/Black Tree

Boolean型のhashCode()はなぜ1231と1237か?

3月のライオン [comic]

あぁ、はぐちゃんとは正反対なのね。

3月のライオン (1) (ヤングアニマルコミックス)

  • 作者: 羽海野 チカ
  • 出版社/メーカー: 白泉社
  • 発売: 2008-02-22
  • ASIN: 4592145119
  • メディア: コミック
  • amazon.co.jp詳細へ

正反対の、神様との契約。

モノローグは、苦しくなる様。
でも、今の彼を取り巻く人々のあたたかいまなざしは、ハチクロと同じで、心地よい。

*1 本当にそういうシチュエーションだったのかはよく分からなかったけど。

*2 Set の大きさを明示しない場合の領域の確保とかも考えないといけないけどここではパス。

*3 と書いたが、本当は偏り無く散らばる方がまれのはず。


2008-03-15

帰ってきた [etc]

楽しかったし、勉強にもなった。
昨日上手く寝つけなくてもう眠いのでもう寝ようっと。