2011年10月28日金曜日

理研・一般公開2011(その4)

事業仕分けの荒波を越えて、ついに世界一になったスパコン「京」。

京自体は兵庫県に設置されているので、横浜研究所の一般公開では実物を見ることはかなわない。しかし、兵庫のスタッフらしき人が小さな展示コーナーを設けて立ち寄った客の質問に答えていた。

配布されていたパンフやらグッズやらをもらって満足、とするのはまだ早い。隣接する横浜市大ではスパコンの実物が展示されていた。

日本製ではなく、スパコンの老舗クレイ社製。36.2TFLOPSということは京の1/280くらい?


背面ではケーブルが蛇のように絡み合っている。3Dトーラス構造とある。京では確か6次元と言ってたはず。ラヴクラフトの小説に出て来そうな超タコ足配線が想像される。

写真を撮るのは忘れてしまったが、メモリは(少なくとも見た目は)一般に普及しているものと変わらないっぽい。CPUも高級品ではあるが購入可能な品。むしろキモになっているのは上の写真のケーブルに繋がるネットワーク・モジュールとのことで、それはクレイ社謹製だった。



一般公開であちこち歩き回っては研究者の中の人から、携わっている仕事の話やら、研究所の「中」での生活に近いところとか、ちょっとずつ話を聞いてくることができた。その上での感想。


研究者はアスリートに似ているかもしれない。特定の競技に特化するように自分を鍛えていくのだ。

京が世界一をとった時の記者会見で、テレビに映った研究者(偉い人)の笑顔に私が抱いた印象は無邪気さだった。

自分たちは不当な評価を受けたが、こうして結果を出すことができた。見返してやった、と。

実際には(当時の議事録を読んだ時の記憶によれば)、仕分け人は世界一を取ること自体は織り込んでいて、「で、それで?」「でもお高いんでしょう?」と聞いていたのだが、それに対する答えは(少なくとも私が見たニュース映像には)ないままだった。

彼らは、結局、仕分け人なり、彼らによって代表される素人から、自分達がどう見えているかということを問うことをしたのだろうか。


単に世界一を取らせたいだけなら、スポーツ選手に金を出した方がたぶん安上がりだろう。実際、世界一を取ったスポーツ選手が今まで持ち出しでスポーツを続けてきていた、その例を私は最近知った。

開発している現場の人はまさに選手なのだから世界一を目指していい。そうすべきだ。でも、彼らをマネージメントする層と文科省が同じ気持ちで予算請求の場に出て来てはダメだ。彼らの立場なら、選手に世界一を取らせるのはスポーツ振興の手段ないし通過点であって、目的ではないはずだ。


世界一の研究をするには世界一のスパコンがっていうのが無茶、雑な理屈だ。

ある研究を行うのに必要なパワーが膨大になるというのはある。しかし、それはその研究に大変なパワーがいるというだけで、その研究が世界一の研究かどうかとは関係ない。

そもそも何をもって世界一の研究というのか、計算量でそれが測れると主張するつもりだったのか。

(あの場に出て来た人は、ジャンケンで負けたとかの理由で選ばれたのではないかと、当時は本気で疑っていた)

相手が素人であると舐め切っていたのか。見学時の感触が良かったので実質OKと思っていたのか。それとも「世界一」という言葉で相手が恐れいると思っていたのか。

これまでスパコンがどのように研究に役立ってきたのであるとか。スパコンの能力の不足が研究の進捗上でボトルネックになっているのであるとか。研究者の活動を支援していく上で、彼らにどのようにスパコンを使わせようと考えているのであるとか。

小さいスパコンたくさんじゃイヤ、大きなスパコンが欲しいというのであれば、せめて、利用者側への希望調査くらいのことはして欲しかった。

スパコン自体の技術開発が目的なら、開発している技術がこれからどういうブレークスルーをもたらすのか語るべきだった。「今、世界一になる」じゃなくて。(この辺の話はむしろ世界一を取ってから、ちょくちょく出て来た)


あのスパコンの開発費で一体何人の研究者が食っていけるだろう。とある独立行政法人の文系学部の研究者たちが金がなくてロクに本も買えないと嘆いているのを聞いてきた身としては、そういうことも考えてしまう。

それを科学立国なのだから黙って金を出せというのでは、命が大事だから放射能0でなきゃ食べ物と認められないという議論とたいして変わらない。ギークvsスーツ的な対立構図から、私はそろそろ卒業したい。

2011年10月17日月曜日

理研・一般公開2011(その3)

組織上は生物学なんだけど、コンピュータ絡みの仕事をしているスタッフもいて、それに即した展示内容もある。商売柄ここの活動は気になる。今年のテーマはソーシャルとゲーミフィケーション(ゲーム化)だった。


研究者が交流というか、研究のための情報交換のためにSNSを使うことが一般的になっているという話。Facebookがやはり人気なんだけど、専用というか独自のSNS(理研サイネス)を構築したりもしてるよ~。という話を聞いてきた。

人間向けのSNSだけでなく、研究データそのものを国際的にやりとりするためのオープンなデータベース、BioLOD(Facebookページ)もあって、研究者(夏休み中の小学生も含む)が、公開されているデータ(クリエイティブ・コモンズorパブリックドメイン)と、手持ちのデータとを自由に組み合わせて分析することもできるようにしているとのこと。


以前に公開を見学した時は、セマンティックWebの展示が中心だった。その後の話を、あまりニュースで聞かないな、どうなったんだろうなと思っていた。

あくまで「示されている場所」に飛ぶだけの現在のハイパーリンクを越えて、「このページに対して、飛び先のページは何にあたるのか」という情報を重視するセマンティックWeb。例えばテレビ番組の情報なら、その出演者である、放送局である、ファンの私設サイトである、といったように文書の内容に即してリンクしていく。(他方、HTML5のrel属性は、目次である、本文の一番最初のページである、といったように文書の構成に沿っている。)

アニメ・特撮ファンがwikipediaでやってるみたいに、趣味のデータベース作る人が重宝するかも…と思ったけど、意味づけの作業は人間がやらなければならないので誤りも入りやすいだろうし、RDFやXMLって結構大変だよね。

…ということは皆思っていたようで、より軽量なフォーマットが開発されているという話を聞いた。後で調べたところ、こういうものが見つかった。また、人間にとってなじみのある表形式(Excelとか)と、より情報の実際の構造に即していて、コンピュータ処理にも向いた形式との相互変換を仲立ちをするセマンティック・テーブルなんてものもあった。


「整理するな、検索させよ」という言葉の通り、一般の人が適当に思いついた言葉で検索するならGoogle民主主義とマシンパワーでごり押しするのがいいんだろう。もっとキッチリと、例えば関係のない情報をきちんと除外するようなことも望まれるなら、書き散らかされず、より自動的に情報が整理されていくような仕掛けを指向して発展していくんだろうね。


ゲーミフィケーションの例として挙げられていたのは、タンパク質折りたたみゲーム「Foldit」。最近、その成果が発表されて、ニュースになったものだ。実際に遊べるよう、ゲームがインストールされたPCも用意されていて、外国人のグループや小学生が熱心に取り組んでいた。

クラウドソーシング(「お前ら、俺の代わりにこの問題解いてくれよ」方式)は、当事者が気づきにくいヒントを得るための手段として、一般的にではないにせよ、使われ続けていくだろう。実際、Folditの攻略ページには一般プレイヤーが書いたと思われる攻略記事やゲームを解く過程を自動化したスクリプト等が投稿されていた。これらの記事やアルゴリズムの一般化と検証から、今まで「コンピュータには解かせにくい」と思われてきた問題を解かせることができるようになったら面白いと思うし、それがゲーム作成者の目的であるとゲームの公式サイトには書かれていた。

2011年10月15日土曜日

GoogleAppEngineからBoxcar

これの続き。


オンラインのタスク管理のwebアプリ、toodledo上の残タスクを定時にBoxcar通知してくるアプリを作りたかったんだけど、定番のBoxcarプロバイダtowbarが依存しているパッケージがAppEngine上で動くかどうか分らなかった(というか、うまくいかなかった)ので、Boxcar謹製のPHP版の単純移植版を作ってみた。

BoxcarのAPIを叩くのにAppEngineのurlフェッチを使うので、AppEngine上でしか動きません。(AppEngineでなければtowbar使えるし)


http://github.com/morinatsu/Boxcar-GAE-Python-Provider


自分的には結構頑張ったこと

  • unittestを書いてみた
  • minimockを使ってみた
  • PHP版のexampleも併せて移植し実際にAppEngine上で動かしてみてる
    自分用のアプリで不要な部分も実装してる

今後の課題

  • unittest,minimockの使い方はもうちょっと何とかなるはず
  • パッケージとしてセットアップできるようになってない
    いまいちパッケージの構成が分ってない。現状、呼び出し元と同じ階層に置かれる前提

2011年10月12日水曜日

理研・一般公開2011(その2)

続き。


講演とか時間が決まっているところは避けようと思っていたんだけど、たまたま入った部屋で行われていたセミナーがなかなか熱かったので聞き入ってしまった。

国立国際医療研究センター、(理研の組織だと新興・再興感染癒研究ネットワーク推進センター)による、感染症、とくに結核の現状に関するお話。


新興国を中心に広がりつつある結核。単に医療技術の水準が低いのかと思っていた。けど、そんなことじゃなくて、急激な都市化による人口集中とそれに伴う衛生の悪化が背景にあるという話。かつ、その衛生が悪い環境に晒されるのは当然金のない人…ということになる。

彼らは入院、長期通院するだけの経済的な支えを持たないので、病院に行かずに「結核の薬」を薬局で買って済ませようとするか、あるいは通院しても長続きせず、症状が軽くなると勝手に治療を打ち切ってしまう。で、もっと酷い時には薬を売って金に換えてしまう。

金のないのはどうしようもない、しょうがないのかなぁ、で済む話ではなくて。医師の診断なしに中途半端な治療をした、あるいは治療を中断した彼らの中で、まさに今話題の多剤耐性菌が生まれているのだという。生物進化sugeeeeee!な話じゃ全然なくて、貧困という社会問題の副産物だったのだ。今知った。


ヒューマニズム云々とかを持ち出すまでもなく、問題は既に「貧乏人は死んどけ。自己責任」とか言って済むものでは無くなっていて。治療コストを押し上げる多剤耐性菌(あるいは、もはや治療の手段がないチョー多剤耐性菌)から我々自身の、少なくとも仕事の都合で海外に進出する在外邦人の命を守るために、自腹を切ってでもホットな地域に出張らざるを得なくなっている、という状況。

そしてもちろん、研究という側面から見れば、必要なサンプルは日本ではなく向こうにあって、それを直接扱いたいという要求がある。


では、新興国(セミナーで紹介された事例はベトナム)に行って、日本自慢の医療技術で患者をたちまち治していくのかと思えば…そんな場面は全くなく、むしろ淡々と患者と症例をデータベース化して研究と治療の足がかりを作っていくという地味な作業が実際の仕事として紹介されていた。

患者の管理という仕事の泥臭さと重要性は日本におけるその比でなく、患者が服薬をサボったり、薬を売ってしまわないよう、いちいち医師や看護師が患者が服薬するのを直接見届け、いちいち記録を取っていた。薬の数をごまかされないよう、全ての成分を1錠に集めたものが与えられ、それが大きすぎてひどく飲みにくいという、ギャグのようなしかし切迫した話。


事情を知らなかったので、対岸の火事のように思っていたけど、実は連環の計で繋がれた他の船が今燃えているんだよ、逃げ場はないよ、そんな話として聞いてきた。

2011年10月9日日曜日

理研・一般公開2011(その1)

理化学研究所の横浜研究所の一般公開を見てきた。

世界のトップレベルという表現が、それでもまだ控えめと言われる理研が、その科学力の一端を一般に開放するよ。


植物に必要な栄養素、窒素、リン酸、カリウム。これら3つのうち、どれか1つでも足りないと植物は生長できなくなる。しかし、栄養が足りていても小さな試験管に入れられた植物は、試験管にふさわしい大きさまでにしか生長しない。

ああ、そんなもんだろうな、と思う。

彼らは財布の紐を堅く締めて、力の浪費を抑え、じっと時を待つ。その方が生存に有利だからだ。

そうだろうね。俺が彼らでもそうするよ。

―では、どうやって?


植物はどうやって試験管のガラスの壁を、世界の広さを知るのか。視覚?触覚?それとも…超能力?彼らが世界が限られた場所だと知る時、彼らの身体の―細胞の中で一体何が起こっているのか。

我々パンピーが、なんとなく分ったつもりで済ませるところを、いやいや待てよとこだわり続ける、物わかりの悪い人々。そんなイメージだ。


植物科学研究センターではそんな謎の解明に使われている、様々な顕微鏡を子どもたちに使わせていた。子どもたちの撮った写真は、当人が持ち帰るとともに会場に展示される。もちろん試料は専門家が用意したものだろうけど、なかなか見栄えがするじゃない。


「でも、お高いんでしょう?」―電子顕微鏡とか、気軽に持ち運んだり、子供に触らせたりとかできないもんだとばかり。子供の遊び相手になっていた電子顕微鏡は、大きく作りすぎた自作PCくらいの大きさ。


価格はどうなんだろう。スポーツカーくらい?欲しくなった方はメーカーにお問い合わせください。

2011年10月6日木曜日

禿の死(日本語訳)

SNSの知人の発信として、その第一報を聞いた時に最初に思ったのは「また『毛根細胞死滅』ネタか…」だった。重い病気に罹っていると言われ、実際にやせ衰えた写真をネットで目にしていても、現実に起こりうることとしてその死を意識することも無く、それはいつまで経っても「近い将来ありうること」でしかなかった。


彼の会社は、私にとって蛇のような存在である。蛇は私にこの世の不幸について語った。蛇が不幸をもたらしたわけではない。人々―その中の一人である私も含めて―が、とても不幸な境遇にあるのだと指摘したのだ。

蛇はその不幸の名前が「使いにくいコンピュータ・システム」であること、その不幸が知恵によって対処可能であることを教えてくれた。

「なぜ、その不幸に平然と耐えていられるのか」

そう問われるまでもなく、私はその蛇の後に続いて歩いた。生まれ育った場所に未練が無かったこともある。蛇の勧める石を足場に、時には2つ3つ石を飛ばしながら川を渡った。それには困難が伴った。

蛇が指し示した石のいくつかは周りから孤立し、事実上、行き止まりになっていた。

また、川に橋を架けるため、蛇は資材を向こう岸に運ぶための人夫と筏を募ることもあった。自分が応じなくても、結局橋は完成するかもしれない。だが、作業の進みが遅ければ未完成の橋もろとも大水に押し流されてしまうこともありえた。私は迷うことなく応じた。危機感はあったが、それが理由ではない。私自身が一刻も早く完成した橋を渡りたかったのだ。


彼自身は去ってしまったが、彼の蛇―彼の会社は今、彼自身が育てたスタッフのもとにある。蛇の言葉は今までのようには私を魅了しなくなるかもしれない。が、蛇の指し示す方向に希望―幸福ではない―があることは今までと変わりないだろうし、それが私が蛇に求めてきたものだったと今はわかっているからだ。

2011年10月3日月曜日

自分がもし人に「Python使えよ。捗るぞ」って言うなら

http://blog.bagend.info/2011/09/cobolerpython.html)の続き


長い間コピペでプログラム作ってる人間の立場で、オブジェクト指向の本読むと「クラスって何で必要なの?別に作らなくてもいいよね」って感想になる。

思想としてのオブジェクト指向を解説した本(昔はこういう本ばかりだった)はもちろん、プログラミング言語の入門書も「クラスって何だろう?」「それではクラスを作ってみよう!」ってコンボで書かれているので、戸惑いはなおさらだ。

入門書に書かれているコードは、もちろん入門者向けなのでさしたる量もなく、工夫すれば(あるいは、工夫の必要もなく)オブジェクト指向でなくても実現できる程度の難易度しかなく「それってCOBOLでもできるよね!」という結論になりがちだ。金槌を持つ者には全ての問題が釘の頭に見える、という例えがあるが、与えられた仕事は(今まで通り)釘の頭を打つことなのに、なぜ使い慣れた金槌以外の道具を新に工夫せねばならないのか。

かくして、たまたま特定の言語しかサポートしていない、特定の環境を前提としたところだけ、その言語で作ればいいということになる。その言語がたまたまオブジェクト指向プログラミングをサポートしていたとしても、そうでない書き方もできるのであれば…。


自分が面白がって使うだけならともかく、他人に勧めることを視野に入れるなら、オブジェクト指向が解決(せめて軽減)しようとしている問題に対する共感がないと、その人が既に抱えている問題がこれで解決されるかもという期待が無いと厳しい。一般論としてはWikipediaの「オブジェクト指向プログラミング」の背景の説明があるけれど。

コピペで機能追加をやっていくと、機能の増加とともに既存の機能のコピーでしかないところの量もそれ以上に増え、次の案件でメンテすべきコードの量も増えていく。コピペによって倍々ゲームで増えていくコード、そのメンテ時間・費用の増加をユーザやマネージャといった立場の人たちがいつまで「ま、しょうがないよね」「かわりにプログラマの単価下げようよ」と甘受し続けてくれるのか。


そのような問題への打開策としてオブジェクト指向があるのなら、出発点として、まずクラスを作るところから始めるってのが、そもそもよくない。まずは自分で作るって発想だと、時間的金銭的メリットを実感できる、再利用のフェーズに到達するまで時間がかかる(≒メリットを得られないうちに頓挫する or 面白かったねで終わる)。

入門書のコードをそのまま打ち込んでるうちは、なんとなく良さそうに思える新機軸も、自分で設計するとなれば、理解のあやふやなところが一気にのしかかってくる。

しかし本来は、ともすれば何でもかんでも、それこそ標準ライブラリにあるような機能ですら自分で作ろうとする人に「遊んでないで、既にある物使えよ」と言うための発想だったはずではないか。

なので、自分がもし人に「Python使えよ。捗るぞ」って言うなら、まず標準ライブラリであるJSONのエンコード・デコードの実演あたりから始めると思う。もちろん、それだけだと「こういう標準ライブラリがあるよ、便利だね」で終了する。だから、自作のエンコーダを突っ込んで、標準ライブラリそのものを変更しなくても、そのカスタマイズができるんだよってところを中心にやる。自分でイチからロジックを書くのはもちろん、もうソースをコピペする時間すら惜しいのだと。

もっといい例はないかなぁ。その後はどう続くのかなぁ。

同じ機能を、クラスの利用ありとなしで実装して、それぞれのテスト範囲(テストコード)を比較するとか?

2011年10月1日土曜日

ベイビー・ステップ

リアルではスポーツ嫌いで通っている私だけど、最近の週マガのスポーツものは面白いものが多いと思う。

特に『ベイビー・ステップ』が面白くて、電子書籍化を待ち望んでいたのだけど、なかなか出てこないので自分で断裁することにした。現在、5巻まで読了。


特別に運動能力が高いわけでもない、天才的なひらめきがあるわけでもない。秀才タイプの子ってコミックの主人公にはしにくかったと思うし、ましてやスポーツものなんて、と思っていた。だけど、このコミックの主人公のエーちゃんはまさにそういうタイプ。

エーちゃんは、例えるなら、『レンズマン』に登場する超次元的な冷血生物ナドレックのような男である。

  • 彼は試合中の1球1球全てをノートに記録し続ける。
  • 彼は相手選手の一挙手一投足を高い精度で観察し続ける。
  • 彼は記録を分析し、相手選手の考えを読み、自分の調子を把握しつづける。
  • 彼は状況の変化をいち早く察知し、作戦を変更し続ける。(←PDCAサイクル)
  • 彼は相手の球を拾っては返球し、拾っては返球し、拾っては返球し…

かくして、かのナドレックの、ドミノ倒しのような計略で敵基地を自滅に追い込むがごとき方法論をもって、エーちゃんは自分より格上の相手に対して挑み続けるのである。 ちなみに、ヒロインのナツのほうは、むしろキムボール・キニスン的な人物だ。


5巻では、彼と対照的なパワー&スピード型のプレイヤー、荒谷との準決勝戦が描かれる。

身体能力に優れ、テニス経験でも圧倒的に自分を上回る荒谷に、(直感ではなく観察に基づいた)先読みと(反復練習とその記録で体系化した)制球力で挑むエーちゃん。軽きをもって重きを制し、遅きをもって迅きを制し…。((c)虚淵玄)

見所は、野獣とも評されるほどに気性の荒い荒谷が、キレかかる自分自身に耐えながら、エーちゃんを初めて敵として、その強さを認めていく過程であろう。

彼に限らず、エーちゃんを舐めた相手が、油断と驕りから生ずる隙を突かれて敗退していくという(だけの)図式は、この作品にはほとんど現れない。エーちゃんと戦う相手は、彼を通して自分のテニスと向き合って、むしろ彼に挑戦していくのである。