学会のために東大本郷キャンパスに行ったついでに総合図書館で調べ物をしていたら、外で応援団が大騒ぎをしているのが聞こえてきました。今日は合格発表の日だったようです。東大のチアリーディングを見たのは久しぶりです。

2年後に本郷に来るあなたが、キャンパス内に生協以外の商業施設があることにあまり驚かない、そのことに私はちょっと驚きます。10年くらい前に松本楼ができたときは、かなり驚いたものなのに。独立行政法人になってからは、何でもありという感じですね。商業施設の誘致では、私立大学が先を行くのが当然だと思っているかもしれませんが、1社にサービスを独占させて、「競争がないとダメだ」ということを学生が身をもって体験できるようにしている私立大学もあるのです。友人の大学に遊びに行って、世の中いろいろだということを知るのはこの頃です。

2年後に本郷に来るあなたは、本郷がカレー激戦区だということを知ります。

プティフでは、「東大生はマニュアル通りにやるのが得意」だなんてイヤミを言われたときのことを思い出すでしょう。「TVチャンピオンカレー選手権で優勝したお店」に行くなんていかにもマニュアル通りな感じですが、もっと根本的な原因は、基本をおろそかにしないその性格にあることをそろそろわかってくるはずです。

喫茶ルオーは深刻な会合が行われる可能性が最も高い店です。あなたも例外ではありませんが、カレーを楽しむくらいの余裕はあります。カレーの後のコーヒーを楽しむ余裕がないことの原因が、その後しばらくあなたを悩ませる原因でもあるわけですが、さらに時間が経つと、ルオーにまつわるネタとして、ブログに書けるようになるのです。

慣れてしまえば当たり前のことでも、誰かが教えてくれるということはまずないので、実体験を通じて学ばなければなりません。(例えばまだあまり親しくない相手と)ランチをゆっくり楽しみたい時にアルルカンには行かない。お昼時はとても込んでいるので、ゆっくりするのは無理なのです。一度失敗したあなたは、アルルカンには変な時間に行くようになります。

妙な名前に身構えて行くにも拘わらず、万定フルーツパーラーは、カレーの概念を揺さぶられる場所になります。学生の間はあってあたりまえの万定ですが、あのカレーの味、店の雰囲気は、本郷を離れた後であなたの学生生活の象徴の一つになるのです。

2/28から3/2にかけて開催されたDEIM2010で発表してきました。

ワークショップの様子

「データベースの授業で使いたい」というコメントを多くの方からいただいたので、そのためのマテリアルを公開します。

論文の最終版は後で公開します。

ならないものでしょうか。

1985年に最初のバージョンが発売されたA列車で行こう、25年経ってバージョン9になりました(参照:Wikipedia)。1986年に最初のバージョンが発売されたドラゴンクエストが、23年経ってバージョン9(というかIX)になったのと並んで、歴史の重みを感じさせられます。

最初の2バージョン(初代とII)は、ホワイトハウスと大統領別邸を列車で結ぶというゴールを目指して「線路を引く・街を発展させる・運賃収入を得る」を繰り返すゲームでした。列車が衝突すると実質的なゲームオーバー、入門用のマップでも資金が厳しいという、今の感覚からすると、ずいぶん厳しい仕様のゲームだったと思います。明確なゴールがあるなら親切だと思う方もいるかもしれませんが、ものわかりの悪かった私は、せっかく手に入れた初代A列車で行こうに、かなりの戸惑いを覚えたものです。

初代A列車の最初のマップはこんな感じです。上に大統領別邸、下がホワイトハウスがあり、★のついた大統領専用列車が別邸に着いていることから、クリアした後の様子だということがわかります(最後のほうはチートですね)。最初のマップなので入門用のはずですが、ものわかりの悪い子供には、ちょっと難しかったんじゃないかと思います。

a1.png

実は、プレーヤーは上のようにマップ全体を見ることはできませんでした。一度に見渡せるのはこの1/5くらいで、しかも線路から遠いところにはスクロールできませんでした。このこともゲームを難しくする一因になっていました。今日の大画面ディスプレイなら、このマップを一度にすべて表示することができますが、そういうことをすると難易度は少し下がるでしょう。

売り上げという観点から言えば、A列車で行こうIIIで建物が立体的にきれいに表示されるようになったことが、このシリーズの最も大きな転換点だったと思います。ゲームシステム自体もバージョンIIIで大きく変わったと言われていますが、よくあるように、大事なことは最初のバージョンにすべて含まれているように思います(SimCityなんかもそうでしょう。水道管を引けることを喜んだプレーヤーっているんですかね)。そのA列車のアイデンティティは、復刻版で簡単に試せるので、興味のある人はやってみることをすすめます。

おそらく最も有名な都市シミュレーションゲームであろうSimCityの最初のバージョンの発売は1989年なので、A列車で行こう(1985)のほうがかなり先を行っていました。難易度がもう少し低ければ、SimCityのように大ヒットしていたことでしょう。

そのSimCityは、2008年にフリーソフトウェアになりました。文字通り自由に使うことができるので、今でも、さまざまな場所でさまざまな人に刺激を与えていることでしょう。

SimCityよりも先を行っていたはずの初代A列車は、フリーあるいはオープンという点ではずいぶん後れを取ってしまいました。たとえば、都市シミュレーションについて学生に考えさせようというときに、SimCityが素材になることはあっても、A列車がそうなることはほどんとないでしょう。

せっかくすばらしいアイディアを詰め込んだゲームだったのに、ちょっともったいないことだと思います。

上で紹介した復刻版のように、初代A列車は今でも売り物になっています。しかしそれは、A列車の感覚で言えば、人の余り住んでいないところで列車を走らせているようなものです。古いバージョンをフリーソフトウェアにして影響力を高めておいて最新バージョンを売る、なんてことがもし実現したら、「大事なことは初代に全部入っている」なんてことを大きな声で言うのはやめて、最新版を宣伝しますよ。

4140814047

コーンウェル『スカーペッタ』の登場人物がこだわっていたHelveticaとArialの違いについては前にも書いたことがありました

標準では、MacにはHelveticaが、WindowsにはArialが入っているわけで、あまり気にせずにあるものを使うのがいいと思います。

ただ、読者の中に「フォーマルな文書でArialなんか使いやがって」というタイプの人がいる可能性があって、そういう人の機嫌を損ねる危険を冒したくないというのなら、Arialは避けた方がいいでしょう。フォーマルな場面で丸ゴシックを使うなどとは違う次元の微妙な話だと思いますが。

私は気にしません。

フォントの正統性のようなものが気になると、HelveticaのパクリであるArialは避けたくなるのですが、そうなると、MS明朝と本明朝Lとか、ほかにもいろいろ気になることが出てきてしまって、結局、「Macを買えば救われる」ということになってしまいます。(Windows用にHelveticaと高品位の日本語フォントを導入するなら、Mac Miniを買った方が安そうです。)

気になることもあります。

panasonic.png

Arialの発音がアリアルなのかアライアルなのかはいつも気になるのですが、Helvetica DVDでは、アリアルと言っていた人がいたと思います。「arial pronounciation」で調べるといろいろでてきます。たとえば、howjsay.comではこんな感じ

4062765306ミステリーはあまり読まないのだけれど、「こわい」という評を聞いたから見てみた。

パトリシア・コーンウェル『スカーペッタ』

テリーの質問にはフランクリンゴシックの太字が使われている。おばさんのための偽の回答には、サイズを落としたアリアル

つまり、シンボリズムという観点から見ると、重要度ではケイよりテリーのほうが上とされているということね

それだけならいいわ。ワープロの世界の純粋主義者のあいだでは、アリアルはさんざんな言われようをしてるの(中略)地味だとか、平凡だとか、個性がないとか。それに厚顔無恥な模倣者だと思われてる。(中略)アリアルはヘルベチカの亜流だって認識されてるってこと。(中略)素人の目には、ヘルベチカとアリアルの区別はつかない。でも純粋主義者の目、プロの印刷職人や印刷デザイナーの間には、アリアルは寄生虫と映るわけ。(下巻p.49)

4062765314これはこわい。Arialがだめだということは、あえてHelveticaを買うような少数派を除けば、気づかぬところで、地味だとか、平凡だとか、個性がないとか言われているかもしれないということだ。(標準では、MacにはHelveticaが、WindowsにはArialが搭載されている。)

同じことは日本語フォントにも言える。ワープロの世界の純粋主義者のあいだでは、MS明朝はさんざんな言われようをしてるの(中略)地味だとか、平凡だとか、個性がないとか。それに厚顔無恥な模倣者だと思われてる。(中略)MS明朝本明朝Lの亜流だって認識されてるってこと。(中略)素人の目には、本明朝LMS明朝の区別はつかない。でも純粋主義者の目、プロの印刷職人や印刷デザイナーの間には、MS明朝は寄生虫と映るわけ。

フォントの話は実はこれで終わりなんじゃないかと、びくびくしながら先を見る。

MACアドレスはどうなってる?

(中略)

ここにあるノートパソコンとは一致しない。でも、そのことが証明しているのは、(中略)この二台のどっちかを*****に持って行って、*****のネットワークからメールを送信したわけじゃなさそうってことだけね。(下巻p.183)

これはこわい。証明できるということは、インターネットに接続できる任意のPCに対して、それに最も近い(つまりお家の中にある)ルーターまで侵入できる技術があるということだ。PCを使ってする行為はすべて、気づかぬところで監視されているかもしれないのだ。補足:IPアドレスは住所、MACアドレスはDNAのような個人識別子だと考えてほしい(一卵性双生児は除く)。住所がわかればDNAもわかる技術だといえば、こわさがわかるでしょう。

足に合う靴を探すのって、人生の大難問の一つよ(下巻p.190)

これはこわい。人生の大難問ということは、Handmade Shoes for Menを読んだくらいでは解決しないということだ。それとも靴はなにかのメタファーなのか。

じゃ、あなたのコンピューターは、メタファーをどうやって認識するわけ?

不整合な名詞と動詞を含む、独立した情報の塊を探すの。(下巻p.344)

これはこわい。メタファーを認識するエージェントがあるということは、それに仕事を奪われる人がたくさん出るということだ。新たな難問を作り出さなければ、というプレッシャーに押しつぶされる人も出てくるだろう。

フォントがどう効いてくるかは、実際に読め(れ)ばわかるか。

Hadoop (大型本)スタンドアローンモードでの動作ビルド方法を確認したら、次は疑似分散モードです。

スタンドアローンモードではローカルのファイルシステムを使っていたのに対し、疑似分散モードでは分散ファイルシステム(HDFS)を使います。もちろん、マシンが1台なので、HDFSのコンテンツは本当はローカルにあるわけですが、見た目はそうではなくなります。

利用方法は、Quick Start日本語訳)のとおりです(前に作成した入力データinputがあるとして)。

  1. 設定用のXMLファイル(core-site.xmlとhdfs-site.xml, mapred-site.xml)を書き換える
  2. パスフレーズなしでlocalhostにssh接続できるようにする
  3. HDFSのフォーマット
    bin/hadoop namenode -format
    
  4. Hadoopデーモンの起動
    bin/start-all.sh
    
  5. 入力ファイルをHDFSにコピー(3番目の引数はローカル、4番目の引数はHDFSのファイル名)
    bin/hadoop fs -put input input
    
  6. プログラムの実行(WordCountの場合)
    bin/hadoop fs -rmr output
    bin/hadoop jar hadoop-0.20.1-examples.jar wordcount input output
    
  7. HDFS上の結果を読む
    bin/hadoop fs -cat "output/*"
    a       3
    b       3
    c       2
    
  8. Hadoopデーモンの停止
    bin/stop-all.sh
    

HDFSの様子はhttp://localhost:50070/で、MapReduceの様子はhttp://localhost:50030/でわかります。(外部からでも見えますが、その場合にはファイアウォールを正しく設定しておく必要があります。)

ヒント

  • デーモンを起動する前にフォーマットする
  • うまくいかないときは、デーモンを停止させてから/tmp/hadoop*を削除し、やり直す

つづく

  • Eclipseプラグイン
  • 完全分散モード
  • Cloudera's Distribution for Hadoop

Googleの全貌 (単行本(ソフトカバー))日経コンピュータ『Googleの全貌』(日経BP社, 2009)

情報系の学生には、「Googleに先を越された」という苦い経験を持つ人がかなりいる。そういう苦い経験は必ずしも悪いものではないのだけれど、「できれば避けたい」という場合に取り得る戦略ですぐに思いつくのは次の2つ。

  • 先を越されないようにがんばる
  • Googleとかぶりそうなことはしない

後者の戦略を採用するなら、まず最初に、Googleが何をしているのかをよく調べなければならない。

4774134325この本は、そういうときに最適な1冊。西田圭介『Googleを支える技術』(技術評論社, 2008)のテーマがGoogleの「技術」だったのに対し、本書のテーマはGoogleの「技術戦略」である。

『Googleを支える技術』もかなりいい本で、輪講に使ったりもしたのだが、Googleの社員が発表した論文を解説するという形式ゆえに、お世辞にも「一般向け」と言えるものではなかった(それでも書店で平積みなっていたのには笑ったが)。

『Googleの全貌』が扱う内容は『Googleを支える技術』より広い。MapReduceのような、共通して扱われるトピックの技術的な詳しさにおいては『Googleを支える技術』が上だが、『Googleの全貌』では論文にはなっていないような技術も数多く取り上げられており、しかもそれらの記述がすべて、「戦略」をとらえるために必要なレベルにとどめられている点でバランスがいい。

本書のかなりの部分は、ITProの「グーグルが描くテクノロジの未来」で読めるのだが、こうして改めてまとめられたものを読み返すと、断片的に読んでいたときには立てなかった視点に立てる。

本書に書かれていることが「Googleの全貌」なのかといえば、そういうわけではないと思う。たとえば、最近の中国での事件で見られた、世界を変えるもう一つの方法などは、本書では見えない。とはいえ、情報系の学生のためのよい本であることに変わりはない。

このブログの読者で、下に出てくる本の中で読んだことのあるものが一冊もないという人はいないと思う。(反例を見つけたら、読者を把握できていないと笑ってください。読んでも損はないと思いますが。)

2010年2月14日 享年79歳

SFを愛する者として、こういうときに祈るべきは「冥福」なのだろうか。

4777915301田中長徳さん曰く、

レンズのぼけを語る人はすでにご自身がぼけている証拠なのです。(p.105)

Hadoop (大型本)Hadoopの導入とサンプルによる動作確認が終わったら、コードをビルド・実行してみたくなります。

例として、Map/Reduce Tutorial日本語訳)で紹介されている単語を数えるプログラムWordCount v1.0をビルドしてみましょう。

パッケージ構成通りにディレクトリを作成し、コードを記述します。

mkdir -p org/myorg
touch org/myorg/WordCount.java
WordCount.javaを編集

Classファイルを格納するディレクトリを作ります。

mkdir wordcount_classes

コンパイルします(環境変数はどこかで1回設定すればいいです)。

export HADOOP_HOME=/home/yabuki/hadoop-0.20.1
export HADOOP_VERSION=0.20.1
javac -classpath ${HADOOP_HOME}/hadoop-${HADOOP_VERSION}-core.jar -d wordcount_classes org/myorg/WordCount.java

Classファイルをjarにまとめます。

jar -cvf wordcount.jar -C wordcount_classes/ .

入力データを作ります。

mkdir input
echo 'a b c' > input/a
echo 'a c b b a' > input/b

実行します。

rm -rf output
${HADOOP_HOME}/bin/hadoop jar wordcount.jar org.myorg.WordCount input output

結果を確認します。

cat output/*
a       3
b       3
c       2

AntやMavenのようなビルドツールを使うのが正統なのですが、あとでEclipseを使う方法を紹介するので、どうでもいいでしょう。

つづく

Googleを支える技術 ~巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ) (単行本(ソフトカバー))

コンピュータのパーツで故障しやすいものの代表格はハードディスクとファンだろう。特にハードディスクはファンに比べて壊れたときに失うものが多いため、なるべく壊れにくいものがほしい(もっとも、ファンが壊れて火事になるほうが、失うものは多いかもしれないが)。

買ってきたPCに搭載されているハードディスクを使っている限りにおいて、そういうことを気にする人はほとんどいないだろう。しかし、ハードディスクを追加するような場合には、故障率が低いと言われているメーカのものを使いたいという人は多いはずだ。

残念なことに、メーカごとの故障率のデータが、衆目を集めるということはあまりない。たとえそういうデータを持っていたとしても、その影響力に尻込みして発表を控えるということは理解できる。たとえば、膨大な数のハードディスクを利用しているGoogleは当然、メーカごとの故障率のデータを持っているはずだが、それは慎重に隠されている。Googleが発表しているのは、次のようなことだけだ(詳細は、論文:Failure Trends in a Large Disk Drive Populationや、この論文についての解説を収録した西田圭介『Googleを支える技術』(技術評論社, 2008)を参照)。

  • 長く使うと壊れやすくなるわけではない
  • よく使うと壊れやすくなるとも限らない
  • 温度が高いほど壊れやすいということもない
  • いくつかのSMART値は故障率に大きく影響する
  • 故障率に影響しないSMART値も多い
  • SMART値だけではいつ故障するかはわからない

これらの事実が有用であることは認めるが、メーカごとの故障率に比べれば、当たり障りのないことだとも言える。

だから、「データ復旧業者がHDD復旧統計データの2009年版を公開」などと言われると、「本当にそんなデータを出してしまっていいの?」と思ってしまうわけだ。注目した人も多いだろう。

タイトル はてな コメント トラックバック
どのハードディスクが危険なのか、データ復旧業者がHDD復旧統計データの2009年版を公開 (GIGAZINE) ×
どのハードディスクが危険なのか、データ復旧業者がHDD復旧統計データの2009年版を公開(livedoor ニュース) ×
2008年製はハズレ? HDDのデータ復旧、依頼が多いメーカーは(Biz.ID) ×
日本データテクノロジー、2009年に復旧依頼をうけたHDD約4万台の統計調査(マイコミ) × ×
日本データテクノロジー、データ復旧対象のHDDメーカー比率を公開 (PC Watch) × ×

この話についての結論:よくわからなかった

期待して読んでみたが、メーカごとの故障率が発表されたわけではないことがわかった。そういう意味で、Biz.IDのタイトルは若干不誠実だと思う。どの記事も、プレスリリースをそのまま記事にしただけの感じ。そもそも何を意図した発表だったのかがわかるような書き方にはなっていなかった。(PC系のニュースサイトなら、メーカごとのシェアのデータと合わせるくらいの工夫はしてもいいのに。)

マスメディアの新人教育では「裏を取る」ことの重要性が強調されるらしいが、個々のネットメディアにそれを求めるつもりは私にはない。ネットには、いろんな意見を集約する機能があり、それによって、はじめは不完全だった情報が、少しずつ豊かなものになっていくことが期待できるからだ。そういう意味で、コメントもトラックバックも受け付けていないネットメディアは、もう少し工夫して欲しい。

Hadoop (大型本)Googleが2004年に提唱した分散処理技術MapReduceがあると、手続きをmapとreduceという2つの形式に分けて記述しさえすれば、データを複数の計算機で分散処理できるようになります。

Googleが利用しているMapReduceの実装は公開されていませんが、Hadoopというオープンソースの実装を利用することで、MapReduceを簡単に試すことができます。具体的な方法は以下の通りです(GNU/Linuxの場合)。詳細はQuick Start日本語訳)を参照。

  1. SunのJDKをインストールする
  2. Hadoopをダウンロード・展開する
    wget http://ftp.kddilabs.jp/infosystems/apache/hadoop/core/hadoop-0.20.1/hadoop-0.20.1.tar.gz
    tar zxf hadoop-0.20.1.tar.gz
    cd hadoop-0.20.1
    
  3. conf/hadoop-env.shに、「JAVA_HOME=/usr/java/latest」のようにしてJDKの場所を記述する。

Hadoopには、スタンドアロンモードと疑似分散モード、完全分散モードという3つの動作モードがあります。運用時には完全分散モードにしなければなりませんが、ここではもっとも簡単なスタンドアロンモードで動作を、Hadoopに付属するサンプルで確認します(付属サンプルは「bin/hadoop jar hadoop-*-examples.jar」として確認できます)。

まず、入力データを用意します。

mkdir input
echo 'a b c' > input/a
echo 'a c b b a' > input/b

ディレクトリinputにあるファイルの中身の単語数は、サンプルのwordcountを使って次のようにして数えられます。

rm -rf output
bin/hadoop jar hadoop-*-examples.jar wordcount input output
cat output/*
a       3
b       3
c       2

サンプルをもう一つ試します。

cat > problem.dat <<'EOF'
1 ? ? ? ? 7 ? 9 ?
? 3 ? ? 2 ? ? ? 8
? ? 9 6 ? ? 5 ? ?
? ? 5 3 ? ? 9 ? ?
? 1 ? ? 8 ? ? ? 2
6 ? ? ? ? 4 ? ? ?
3 ? ? ? ? ? ? 1 ?
? 4 ? ? ? ? ? ? 7
? ? 7 ? ? ? 3 ? ?
EOF

この数独(Al Escargot)は、サンプルのsudokuを使って次のように解けます(ファイルの形式はsrc/examples/org/apache/hadoop/examples/dancing/puzzle1.dtaを参照)。

bin/hadoop jar hadoop-*-examples.jar sudoku problem.dat
1 6 2 8 5 7 4 9 3 
5 3 4 1 2 9 6 7 8 
7 8 9 6 4 3 5 2 1 
4 7 5 3 1 2 9 8 6 
9 1 3 5 8 6 7 4 2 
6 2 8 7 9 4 1 3 5 
3 5 6 4 7 8 2 1 9 
2 4 1 9 3 5 8 6 7 
8 9 7 2 6 1 3 5 4 

Found 1 solutions

つづく

portrait

 

Translation

著書

schedule

 

2010年3月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

関連商品(Amazon)

関連サイト(Google)

アーカイブ

twitter

  •