tech
ハッカーの遺言状──竹内郁雄の徒然苔
第20回:こだわりにこだわる
元祖ハッカー、竹内郁雄先生による書き下ろし連載の第20回。今回のお題は「こだわりにこだわる」。
ハッカーは、今際の際(いまわのきわ)に何を思うのか──。ハッカーが、ハッカー人生を振り返って思うことは、これからハッカーに少しでも近づこうとする人にとって、貴重な「道しるべ」になるはずです(これまでの連載一覧)。
文:竹内 郁雄
カバー写真: Goto Aki
どんな人にも、何かのこだわりがあるはずだ。もしなければ、単に自分が気づいていないか、こだわりを持たないことにこだわりを持っている超人か、どちらかだろう。
もちろん、「漉し餡撲滅、つぶ餡命」という大義正義に満ちたこだわりもあれば、「ミルクを先に入れてから熱い紅茶を注ぐべきだ」というわりとどーでもいいこだわりもある。何はともあれ、こだわりは議論のネタにもなるし、人生を楽しくするネタにもなる。さらに、こだわりを究めれば、いわゆる「名人」と称讚されるまでに至る。
2015年2月2日にNHK「プロフェッショナル 仕事の流儀」で放送された日本一の称号を持つビル清掃のプロ・新津春子さん。彼女の掃除へのこだわりによって、羽田空港が2年連続で「世界一清潔な空港」として選ばれた。たまさかこの放送を見たのだが、なるほど掃除の世界はここまで深いのかと感銘させられた。自分でやるかどうか別として……。
ここまでいかなくても趣味の領域はこだわりの宝庫だ。私も皆さんと同様、ある程度はカバンにこだわる。ほかの例でもそうだろうが、こだわりには評価軸というものがあり、それ自体が多様だ。私の場合、カバンは軽さ、機能性、デザインの順に評価軸の重みが並ぶ。機能性といってもそれ自体が多様で、持ち運ぶものに過不足のないポケット、分類性と容量、さらに開けやすさ、取り出しやすさ、閉めやすさ、持ち運びやすさ、置きやすさ、保護性、……、きりがない。すべてに満足できるものなどあり得ないから、カバンを買うときはどこかで妥協する。
どこかで妥協? それを許さないのが、桂米朝やマツコロイド、さらには自分自身のアンドロイドで有名な石黒浩先生だ(写真1)。今年の年頭に大阪大学でご一緒したとき、その驚くべきカバンへのこだわりを教えてもらった。これがスゴイ。市販品では妥協が必須だ。だったら自分で作ればよい!
というわけで、石黒先生は皮素材のカッティングから始めてすべて自分でお作りになる。中でもすごいのがキーケース。市販品は、皮を折り曲げたホックつきのケースにキーをぶら下げる金具がいくつかついているのが標準だ。ところが石黒式キーケースは、鍵の厚さと形状に合わせたピッタリのポケットがいくつもある皮の積層である。鍵が入る部分をくり抜く皮は鍵の厚さと同じ皮素材を選ぶ。数々の自作石黒グッズのうち3つを撮ったのが写真2である。一番右側がくだんのキーケースだ。積層皮の周辺をちゃんと強い糸で縫い合わせてあり、金具も市販品の仕上りである。ほかのケースも皮の曲げ加工が見事だ。どこにそんな時間があるのだろう?
ただ、これの最大の欠点は鍵が変わったり、鍵が増えたりすると作り直さないといけないこと。これには石黒先生も頭を抱えていた。妥協拒否は頭痛のタネでもある。
このほか2泊専用のリュック、3泊専用のリュックなど、説明を聞いているだけで唖然となる。そのリュックにピタリと入る、こまごましたもの(筆記具、レーザポインタ、ケーブル類、携帯HDDなどのもろもろ)を収納するプラスティックケース。さすがにこれは自作ではなかったが、内部の仕切りを完全調整したうえで、それに合わせて小物を買い揃えているのではないかと思うくらいの最密充填。ほとんどパズルの世界だ。中でもご自慢はそのケースに納まる携帯外部記憶装置。この大きさでないとダメだったので、既製品HDDのケースを利用し、中のディスクを巨大容量のSSDに替えてしまった。まさに、「そこまでやるか!」だ。
こういう、真似をしようにも真似できない領域のこだわりもあるが、そこまでのこだわりではないところに話題を移そう。
職業柄、私は文章をよく書く。大昔はもちろん原稿用紙に万年筆とかシャープペンシンルで書いていたが、不思議と大きな書き直しはなかった。目次にもならないくらいの構想を頭において、あとは勢いで書けば、それで大体OKだった。昔のヒト(って自分のことか?)はエラかったとつい思ってしまう。
ワープロ(ってもう死語?)になってからはもっと安直な書き方(打ち方?)でもOKになったが、ワープロではどうしてもこだわりが頭をもたげてくる。こだわりは2つに分かれる。ひとつはキーボード、もうひとつはかな漢字変換だ。キーボードについてここで書き出すと日が暮れるので、かな漢字変換周りの話題に限定しよう。
つい最近まで、私は句読点をASCIIのピリオドとコンマのあとにASCIIのスペース(いわゆる半角スペース)を打つ流儀で入力していた。これも職業柄、英語や数字・数式が入ることがよくあり、そこで使うピリオド、コンマと、日本語の句読点が異なる字形になるのがいやだったのである。TeXで清書・印刷しても、私にはJISとASCIIの句読点の違いがすぐ目について、その不統一が気になった。プロの校正者には当り前かもしれないが、やはり異常なこだわりと言えよう(※1)。
今思うに、これはUnicodeの思想を先取りしていたことになる? Unicodeが出てきたころ、「何だそれ?」と思っていた昔のヒトは変だった。首尾一貫してない。
それにしても句読点だけ(実は記号のほとんど)をASCIIで打つのは面倒なのではないかと思った人は鋭い。実はこういったことも含めて、かな漢字変換を自分流にするために新しい方式を作ってしまったのである。
そのきっかけは、「そうだなぁ、やはりもう手書き原稿の時代ではないな。ワープロを使わなくては」と思った1980年代半ばのこと、NECのPC-9801系の、プラズマディスプレイと専用キャリングケースも入れて重さ10kg(!)のポータブルパソコン「PC-9801U2」(※2)を買い、当時の「一太郎」を使い始めたことである。研究では米国DEC社のコンピュータを使っていたので、キーボード+モノクロディスプレイは今でも知る人ぞ知る「VT-100」。つまり、ASCII配列のキーボードである。ところが買ったのはPC-9801系なので、キーボードはJIS配列。キーボードの入力コードを変換する「キーコン」という製品を買ってそこはごまかした(※3)。
そんなかんだの苦労をしたあと、ずっと不義理していた出版社のために約200枚の原稿を打ったのだが、2カ月ほどでほとほと疲れてしまった。研究で使っていたEmacsとの編集の使い勝手のギャップも大きかった。「やはり、Emacsコンパティブルで使いやすい日本語入力方式を作らなくては……」と決意したのである。超重たいポータブルのPC-9801U2の最後のお仕事はその仕様書を入力することであった。
その仕様に基づいてプログラミングの達人である同僚の天海良治君があっという間に実装してくれたのが「Kanzen」である(※4)。KanzenはEmacsで使えるかな漢字変換システムとして生き残っており、今でも私はX Window Systemを経由したFreeBSD上で使っている(※5)。メール等はWindows上のIMEを使っているが、本気で原稿や論文を書くときは今でもKanzenを使っている。この原稿もそうである。少なくとも私はイライラしなくてすむ。
KanzenはEmacsコマンドとほぼ完全に両立しているので、Emacs使いにはかなり快適である。英語綴りで打つとカタカナ文字に変換する、たとえば、「Cおmぷてr」(つまり、ローマ字入力で、Computer)と打つと「コンピュータ」になるといった変な辞書機能もある。手作りのかな漢字変換システムなので、ローマ字かな変換も自在である。だから、句読点の処理も容易である(※6)。
ところが、上に述べたように、最近、ASCIIで「, 」と(半角コンマと半角スペースを続けて)打つと、JISの「,」に変換するように40年ぶりぐらいに設定変更をした。年取ってだんだん「マァいいか」になってきたのかもしれない。というのも今使っているTeXの標準設定が、英語部分のベースラインと日本語部分のベースラインが同じで(※7)、句読点がさらに見分けにくくなったからでもある。そんなの自分で設定すればいいのだが、もう面倒になってきた。
年取るとこだわりも薄まってくるのであろうか。
否! 2014年に88歳で亡くなられたが、東京女子大の水谷静夫先生は、仮名遣いに関するこだわりが最後まですごかった。なんと、学生に使わせる「小朱唇」(構文解析に向いた文字列処理言語)の教科書を全面旧仮名遣いで執筆した。先生の説では、旧仮名遣いは現代仮名遣いに比べて圧倒的に合理的である。古いほうが合理的というのは一見面妖だが、要するに現代語が乱れているということなのだろう。
そういえば、私の高校のときの教頭先生は、たとえば、漢字の音の「クヮン」と「カン」を完全に使い分けて話されていた(※8)。もし、こういう発音が正しく生き残っていれば、かな漢字変換の精度は一挙に上がっていたに違いない。実際、旧仮名遣いは効率のいい日本語入力法になると、水谷先生がおっしゃっていた記憶がある。私のKanzenの辞書では、「ゐって」と入れると「言って」に、「いって」と入れると「行って」に優先変換するようになっている。つまり「ゐう」というワ行五段活用動詞が登録されている。こういう頻出単語が入力段階で確実に区別されるとストレスが減る。
プログラミングに関するこだわりもたくさんある。プログラミング言語の選択、インデンテーション(字下げ)や名前の付け方の流儀などがすぐ思いつく。プログラミングをするときの作法のこだわりでは、故島内剛一先生(立教大学)の流儀が断トツである。ご本人から聞いた鮮烈な記憶がある。プログラムをキーボードから打ち始めるなどもってのほか。特注仕様の方眼紙を机に置き、先を完全に尖らした鉛筆20本を傍に置く。こだわりの真空管アンプでタンノイの大型スピーカーを大きな音で鳴らす。冷房をガンガンに入れる。そして、書斎の窓を開け放つのだ!
島内先生からその話を聞いて数年経ったころだと思うが、ご本人から「私はなんという馬鹿だったのだ!」という発言があった。聞くと、そのこだわりの真空管アンプが故障してしまったので、やむなく、つなぎの気分で大して高くないトランジスタアンプを買った。すると、音の激変にショックを受けた。なんと、良くなる方向への激変だった。「くだらないこだわりのために人生のかなりの時間を浪費してしまった」と嘆かれていた。
たしかに、こだわりにはそのような負の効果もある。
ほかにもプログラミングに関するこだわりの実例はたくさんあるだろう。今年9月上旬に下呂温泉で開かれるプログラミングシンポジウムではその種の話がいろいろ聞けそうだ。というか、そういう話のネタを持っている人はぜひ参加してほしい(※9)。
この6月になってから、サイボウズ・ラボの川合秀実君から面白い話を聞いた。未踏IT人材発掘・育成事業が若い人を対象とした「未踏ユース」を2002年に始めたとき、私がそのプロジェクトマネージャを務めた。その第1期生の一人が川合君である。当時はOSASKというOSを開発しており、そのあとも輪を広げる活動を行い、この種の本としては珍しいベストセラーになった「OS自作入門」を書いた人である。
わりと久々に会い、帰りの地下鉄のホームで「今ラボでは何をしているの?」と訊いたら、さらりと「高速化です」という答え。一瞬意味が分からなかったのでさらに訊いたら「開発されたソフトを外部仕様を一切変えずに高速化する」という仕事をしているという。聞いたことがない仕事で、ほかを探してもそんな仕事をしている人はいないんじゃないかなぁ、と言ったら、川合君自身が驚いていた。
そのときはゆっくり話している時間がなかったので、次回にもっと詳しいことを訊いたら、すっ飛んだ話だった。社内では語り草になっているらしいが、外ではほとんど知られていないとのこと。本人の了解のもと、簡単に紹介したい。
私「高速化といっても、どこかの重要なサブプログラムを改良するってこと?」
川合「いや、ユーザ目線で見てびっくりするような高速化に成功したこともあります」
私「どれくらい?」
川合「8,000倍、つまり応答に8秒かかっていたのが、1ミリ秒になったということ」
私「え? まじ?」
もう前世紀に聞いた話だが、NTTの研究所の中で新聞記事検索システムを試作発注したら、どうも遅い。担当者が調べたら肝腎の部分で検索を、いわゆる「馬鹿サーチ」でやっていた(※10)。そこをちゃんと直したら、システムの速度が一挙に200倍になった。私にはこの話が記憶に残っていたので、「それをさらに40倍も上回る改良とは!」と心底驚いてしまった。
高速化するにしても、あまり多くの行を修正すると、それはそれで、保守性が悪くなるなどの理由で嫌われる。だから、なるべく少ない行数で、という条件も加わる。この場合、データベースの検索に関わるソフトだったが、問い合わせ言語の特質をうまくついて改良したとのこと。
そういえば、サイボウスの主力サービスのひとつであるkintoneの処理時間を1/2以下にしたという公式発表が昨年7月にあった。きっと、どこかで川合君による大幅な高速化があったに違いない。
川合君は、未踏ユース修了後もOBとして、そのあとに続く未踏ユースの内部会議や成果報告会によく招待されていた。そのとき、川合君が用意してくれたのが「川合賞」である(写真3)。未踏にはいろんなプロジェクトがあるが、彼が表彰対象にしたのは「ケチ・貧乏の精神に徹して、システムの性能を上げることに邁進しているプロジェクト」である(※11)。最近そのようなプロジェクトが減ってきたのは、時代背景とはいえ残念だが、まさに川合君がずっとこだわってきたことである。そのこだわりが生きて、今サイボウズ・ラボで活躍しているというわけだ。ターミネータならぬ、オプティマイザとでもいうのだろうか。ただ、これ以上意味のある高速化はできませんという判定を下すのも仕事なので、ターミネータ的なところもあるらしい。それにしても、こんな職種があるとは……。
こんな調子で書いていたら日が暮れる(実際、暮れ始めている)。最後に、もともと、人と違うことをすることに喜びを感じる天の邪鬼こだわりのあった私の成果物をひとつ紹介して締めよう。
NTT研究所にいたころは、天の邪鬼こだわりを反映して、サッカー部の飲み会でもいろいろ変なものを創作した。そのひとつが「にほんにほん締め」、漢字で書くと「日本二本締め」である(※12)。これは「関東一本締め」を凌駕すべきものである。「関東などという狭い地域で、一本締めだと? そんなケチな了見ではあかん。これからは日本全体を思って、二本で締めるのが正しい!」という発想だ。最近はあちこちでこれをやっているので、聞いたことがある、いや、やったことがあるという方もいらっしゃるかもしれない。
では、そのやり方を紹介する。写真4のように腹の前のほうで手を伸ばして掌を合わせ、大きく息を吸う。そのまま両手をゆっくり上のほうにあげ、顔の前あたりで、両手を離して写真5のように、これまたゆっくりと大きなハートを描くように動かす。そして、写真6のように再び腹の前のほうに戻って手をパンと叩いて息を吐く。すると、写真4の状態に戻るので、そこからまた同じことを繰り返す。これで2回目のパンが鳴ったらおしまい。日本を思って、大きなハートを2回も描き、そして二本の手拍子。しかも、大きな深呼吸もできる。うーむ、昔のヒトはエラかった。
というわけで、こだわりとはそもそも人のアイデンティティであり、ひょっとすると創造の源ではなかろうか、というのが今回のかなり飛躍した結論。ただし、こんな結論の出し方では卒論は通りません。(つづく)
※1:ちなみにこの連載ではサイボウズ式の表記基準により、和式の句読点になっている。
※2:ケースも含めたら50万円台半ばというびっくりする値段。そう、白状すると私はケースフェチである。中身よりもそれの専用ケースが気に入って買い物することがよくある。
※3:実は当時MS-DOSのどこかをいじればそんな変換器が不要だということを知らなかった。現在、ノートPCの英語配列をハッピーハッキング配列に近づけるために、Windowsのレジストリを編集するのが私の最初の作業である。
※4:Kanzenの設計思想はSKKに影響を与えた。創始者の一人佐藤雅彦さんにこの話をしたのがきっかけである。雅彦さんは遺言状18回にも登場している。
※5:KanzenはWindowsやMacでも、単独で動作可能である。天海君に知財権関係の問題はなさそうなので、もう公開したほうがいいんじゃないの?と言っているので、そのうち読者も試してみることができるかもしれない。
※6:ちなみに私の設定では全角の数字や記号を打つには「@!」を前に打つ必要がある。たとえば全角の1は「@!1」だ。
※7:NTTで日本語が扱えるTeXを開発した同僚の斉藤康己君は、英語のベースラインを日本語のベースラインより少し上にしていた。だから、日本語英語混じりの文章がとてもきれいに見えた。
※8:ほかにもこの種の、今は同音になっている漢字発音はたくさんある。たとえば、「ガウ(剛)」、「グヮウ(轟)」、「ガフ(号)」はどれも今は「ゴウ」だ。
※9:情報処理学会2015年夏のプログラミングシンポジウム「プログラム詠み会」については、「プログラミング・シンポジウム」にて近日公開予定です。情報がまだ少し欠けた暫定版は「http://prosym.github.io/sprosym2015/」にあります。公開次第、改訂します。
※10:通常、検索は検索対象を検索しやすいようにうまく構造化する。しかし発注先のプログラマは何も考えずに、データを頭から順番に検索したということ。sageという言葉を探すのに、辞書をaのページから順番に探していくようなもの。
※11:彼のケチ・貧乏の本音がしっかり吐露されているのが、
「やってよかったOS作り」「旧式PC利用のススメ」だ。
※12:実は少し記憶が曖昧で、電通大に移ってからの研究室コンパが発祥かしれない。いずれにせよ前世紀の作品。
竹内先生への質問や相談を広く受け付けますので、編集部、または担当編集の風穴まで、お気軽にお寄せください。(編集部)
変更履歴:
2015年7月1日:「JISの『、』に変換するように」の「、」は、正しくは「,」(全角コンマ)でした。お詫びして訂正いたします。
2015年7月1日:水谷静夫先生に関するエピソードで触れた「『少朱唇』(なんとこれはLispのこと)」は、正しくは「『小朱唇』(構文
解析に向いた文字列処理言語)」でした。大変申し訳ありませんでした。お詫びして訂正いたします。
SNSシェア