More info...

2010-09-29

恵比寿にあるLinux会社の熱いギークたちに会ってきた話。

先日、友人の紹介でRed Hat社に勤めるエンジニアの方たちと食事をした。Red Hat社のエンジニアの方々とはあんまり交流が無かったのだが、やはりLinuxに、そしてフリーソフトウェアに魂を燃やす漢たちの発想は一味違う!!興味深い話を聴き、とても良い刺激を受けることができたので皆さんにも紹介したいと思う。

再会

参加者の面子を事前に聞いていなかったので驚いたのだが、なんとそこには古い知り合いの顔があった。KVM徹底入門の共著者である森若和雄氏である。彼とは大学院時代、同じ研究室の先輩後輩の間柄(自分の方が一年先輩)なのだが、当時自分は落ちこぼれであり、森若氏は自分より遥かに高いスキルを持ち合わせていたのをよく覚えている。卒業後お互い別々の道を歩いた末に、同じフリーソフトウェア支持者として再会出来たのは大変喜ばしい。

学生時代の森若氏の口ぐせは「Perl最高!Perlがあれば何でもできる!ヒャッハーッ!」(ヒャッハー!は筆者による脚色)であり、Kansai.pmなどで活動していた。(筆者と森若氏の出身校は関西方面にある。)森若氏は当時と比べると少し恰幅がよくなってはいたが(あ、俺もかw)、醸し出す雰囲気は当時とほとんど変わらず・・・というかさらにパワーアップしてさらにギーク度が増していたように思う。

向こうは俺が来ることが分かっているはずなのに俺を見てびっくりしていたのだが、「実物を見るまで名前と顔が結びつかなかった」そうである。まあ、当時の俺はスキルも大したこと無かったし、驚くのは無理もないと思った。(俺は社会人になってから頑張ったクチである。)

何にせよ、再会を機に仲良く付き合っていきたいと思う。現在森若氏はLinuxのブート関連の記事を執筆中とのことなので公開を楽しみにしている。

「ソースコードを読むために一番必要なものは、実はソースコードなんです!」

まるで禅問答のような考えを披露してくれたのは大和正武氏だ。フリーソフトウェアであればソースコードは確かに公開されているのだが、大和氏によると実は目的のソースコードにたどり着くというのは容易なことではないというのだ。何か問題が起きてソースコードを読まなければ行けない状況が生じたとしよう。まずはエラーメッセージを見てソースコードを検索し、そのエラーメッセージがどこから出力されているのかを特定するだろう。そしてその周辺のソースコードを読み、分岐条件などを吟味して問題の原因を探ることになる。

だが、そのような作業はソースコードが手元になければ一切出来ないのである。

問題の原因を探るためには、問題が起きた環境とまったく同じバージョンのソースコードを調査する必要がある。実はそれが厄介な作業で、Linuxのように大規模かつ歴史のあるプロジェクトのソースコードの場合、目的のバージョンのソースコードが常に手元にあるとは限らないのだ。ソースコードはだいたいの場合はFTPサーバー上存在する。(今は滅多に無いが郵送で取り寄せる必要があるかも知れない。)従って、ソースコードを閲覧可能な状態にするには、まずFTPサイトからソースコードをダウンロードし、展開する(src.rpmをインストールしてソースコードを復元する)とう一連の作業が必要なのである。これは単純な作業だが実に時間が掛かる。特に回線が遅い環境ではなおのことであろう。「システムがクラッシュした!今直ぐ原因を調べたい!!」というような時にチンタラとダウンロードをしているようではいけないのである。

「だったらすべてのソースコードを事前に展開して何時でも好きなバージョンのものを閲覧できるようにすればいい!」

という発想に至るだろうが、これは言うは易し行うは難しなのだ。すべてのバージョンのソースコードを手元に置いておくとなると膨大なデータ量になるし、そもそも環境のための手間も非常に掛かってしまうだろう。だが、大和氏は手間を惜しまず、いつでもソースコードを好きなだけ参照出来るように環境を整えているそうだ。まさに悟りの境地である。

さらにWebからも参照可能な状態にすることで、何時でもどこでも好きなソースコードが見れるという。これにより、大和氏は所有するAndroid携帯(Desire)から会社へVPNを張って、電車の中などの空いた時間にもソースコードが読むことが出来る。実際にAndroid携帯の画面でデモを見せてもらったのだが、「どれほど何時でもどこでもソースコードが読めるということが幸せか」ということを熱心に語る大和氏の眼は、まるで少年のように輝いていたのが印象的であった。

Grepability

大和氏は、ソースコードを格納したファイルシステムをNFSでexportておくことで、社内からのアクセスを可能にしているという。それにより同僚の仕事も捗るというわけだが、既に「展開済みのソースコードがなくては仕事にならない」ほど依存している人も居るとか。(恐らく大和氏自身もその一人だろう。)すべてのソースコードが展開されているため、バージョン間の差異を調べる際も極めて便利なのだそうだ。

そんな同僚の間で使われているローカル専門用語にGrepabilityというものがあるそうだ。如何にgrepでソースコードを検索しやすい状態か(もしくは検索が可能か)というような意味の造語らしい。そう言われれば俺も日々grepでMySQLのソースコードを調べている。grepは原始的なプログラムかも知れないが、古き良き万能ツールなのである。

なお、大和氏による「ソースコードを読むために一番必要なものは、実はソースコードなんです!」という話については、ThinkITに記事を投稿されているので興味のある人はぜひご覧頂きたい。

第1回 RHELを題材にソースが見える環境を作る
http://thinkit.co.jp/article/863/1

「ないなら自分で書け!」

この言葉を発したのは佐藤暁氏。集まった中でRed Hat社歴が一番長いベテランである。

エンジニアをやっていると、現場ではこのような言葉(檄?)が交わされる場面をしばしば目撃することだろう。エンジニアには親しみ深い言葉だが、フリーソフトウェアな人がその言葉を用いると重みが違う。

フリーソフトウェアならばソースコードがある。そして何が無いのかが分かっているということは、何を書くべきかを分かっているということだ。さらに公開する方法も知っている。即ち自分で書くためのお膳立ては出来ているっ!!ならば自分でコードを書くしかないというわけだ。誰かが書くのを待っていてはいけない。自らが足りないものを埋めていくしかないのだ。

彼らはリチャード・ストールマンが如何に偉大な人物であるか、そしてGNUプロジェクトが如何に大変なプロジェクトであるかということを理解している。GNUプロジェクトはソフトウェアの自由のために、リチャード・ストールマンがたった一人で始めた「誰もが自由に使える実用的なオペレーティングシステムを作る!」という挑戦であり、リチャード・ストールマンは見事それを成し遂げたのだ!!その偉業は、リチャード・ストールマンの提唱するフリーソフトウェアの大切さを理解し、そしてフリーソフトウェアを愛する多くの人々が「無いから作った」結果生み出されたものである。従って、「ないなら自分で書く」ことは、彼らにとってまるで空気を吸うが如く自然な行為なのだ!

「世界を変えるのは言葉ではなくソースコードだ!」

Red Hatには凄いエンジニアが(Linuxカーネルハッカーが!)揃っている。私見ではあるが、その割にはRed Hatの中の人が書いた記事はあまり目立っていないように思う。正直その技術力をアピールしないのはもったいないんじゃないかと思ってしまうので、「ブログは書かないんですか?」と聞いてみたところ、クチを揃えて帰ってきた答えが

「世界を変えるのは言葉ではなくソースコードだ!」

というものだ。確かに言葉を発信することで世界へメッセージを伝えられるし、それにより世の中が少し動くこともある。しかし、世界を劇的に変える可能性を秘めているのは、言葉や文章ではなくソースコードしかない!!という。

反論の余地がなかった。

みんな大好きGNU!!

フリーソフトウェアを愛するRed Hatのエンジニアたちとの食事会は非常に楽しくかつ有意義な時間であった。また、同じく現場で頑張っている人間として、とても良い刺激を受けることが出来た。同じくGNUを愛し、フリーソフトウェアに人生を捧げる者同士、これからも刺激を与えあって頑張って行けたら素晴らしいと思う。

0 件のコメント:

コメントを投稿