ソフトウェア公開とライセンス

ソフトウェアの公開とライセンスに関して議論をする場があったので、気づいたことや感じたことを書いておきます。

例えば Linux 用の一般的な(glibcを動的にリンクしている=LGPLが適用される)実行バイナリを、登録者だけが利用できるように、ダウンロードサイトにパスワード保護をかけたり、ZIPファイルにパスワード暗号化をかけたりすることは、LGPLに違反する恐れがあるそうです。
だとすると過去にGalatea Toolkitを配付した際にも不適切な状況があったかも知れません。。
“ソフトウェア公開とライセンス” の続きを読む

「情報大公開」時代

この1年(2009年)を通じて「情報大公開」時代のはじまりを強く感じました。
世の中の変化に、大学の教育や研究の場も無縁ではなさそうです。
学会・研究会も、これまでとは違った形のものになっていく、そんな予感がします。
グラスノスチがペレストロイカを加速してソビエト連邦が崩壊する。。私が高校生のころに起きたことが、いま日本で、世界で、起こっていくのかも知れない、そんなふうに感じます。
“「情報大公開」時代” の続きを読む

ソフトウェア構成管理

むかしバージョン管理システムの本を書いたことがある私に「ソフトウェア構成管理」について教えて欲しい、という相談がありました。

私は基本的にソフトウェア開発で生計を立てているわけではなく、手段としてのソフトウェア開発における、技術と人の問題に興味を持ってきました。
直接のきっかけは「バグのないソフトウェアを目指して」というテーマで読みあさった一連の書籍です。
そしていまの私も、ソフトウェア構成管理については、昔の読書の知識からあまり進歩していません。

“ソフトウェア構成管理” の続きを読む

Winny裁判の影響

金子さんが二審で無罪になった。

彼の逮捕の日、マスコミから私にも電話がかかってきた。確かに同じ研究科の所属で職位も年齢も同じだったが、彼がどういう人なのか教えて欲しい、という質問に答えられるような個人的な接触はなかった。ただ学生は「戦略ソフトウェア」という学内の活動を通じて、プログラミングの指導などで彼のお世話になっていた。マルチスレッドの使い方など。。

その日も私は、警察が入った建物と別の場所が居室であったため、ニュースで見るまで何が起こったのかわからなくて戸惑った。

事件の経緯は佐々木俊尚氏の書籍(「ネットvs.リアルの衝突―誰がウェブ2.0を制するか」 (文春新書) )や記事などに詳しく報じられている。私も佐々木氏の本を読むまで知らないことがたくさんあった。学内の対応については、実は私も詳しいことは知らないのだが、大学側(教授会?)も彼を罪に問えるかどうかについて疑問を感じていたはずで、大学として彼を免職にしたという話は聞いていない。

「匿名性の高いファイル共有ソフトが普及すると著作権法は時代遅れになる」という指摘は、前々からいろいろなインターネット技術の研究者によって(積極的な悪意ではなく客観的な予測、あるいはDRMなどの積極的な推進を訴える立場として)語られていた、と思う。二審判決直前に行きすぎた取材があったと報じられたが、そういった文脈での発言を期待したのかも知れない。

しかしながら当時の風潮が「大容量のコンテンツを効率よく配信したいというニーズは不法な目的しかあり得ない」と決めつけていたとしたら、間違っていたと思う。

自由な再配付を保障するソフトウェアのライセンスの普及、個人が音楽や映像をどんどん発信することが一般化してそれが重要なメディアになってきたこど、などなど。。

逮捕後に出版された金子氏の著書「Winnyの技術」は読ませていただいた。私自身は Winny を使ったことがないが、技術書として興味深く読むことができた。こんなすごい人なら逮捕される前にもっといろいろお話しておけば良かったと残念に思った。

私の職場である「大学院情報理工学系研究科」で、金子氏の逮捕後に起きたことは、「プライベートアドレスでネットワークに接続することを禁止」「ノートPCからP2Pアプリケーションを使用することを禁止」「その他の場合もP2Pアプリの利用は事前の届け出が必要」という規則の導入である。世の中の大学や企業でこのルールがどのくらい一般的なのだろうか。。

これは具体的には「NAT使用不可」が前提である。研究科内のネットワーク管理者がファイアーウォール側でトラフィックを監視していて、P2P のプロトコルの通信が検出されると、「何月何日に IP アドレスどこどこが、P2P 利用していたので事実関係を確認せよ」という連絡がそのアドレスの管理者(例えば私)に届く。NAT だとルーターのアドレスまでしかさかのぼれないので、誰が何というソフトを使っていたか、を答えられない、だから NAT 不可、というわけだ。

アジア系の外国人留学生が使っているWebブラウザやファイルダウンロードソフトには、わりと P2P 技術を使っているものが多いらしく、何度か原因究明をさせられたものの、聞いたことのないソフトや、なんと書いてあるのかわからないドキュメントなど、いろいろ苦労している。結局「使わせてはいけないソフトの一覧」をちゃんと作ることができない状態だ。

NAT不可なので、お客さんにネットワークを一時的に使わせて欲しいと言われた場合にもグローバルアドレスをお貸しすることになる。なのでDHCPで簡単に対応できない。

次の Ubuntu Linux Japanese Remix は BitTorrent での配付を予定している、などと聞くが、それを職場からダウンロードするのに「こういう目的でこのアドレスのマシンで何月何日にBitTorrentを使わせてください」という届け出が必要になりそうだ。

そういえばこの手の技術を応用したと言われるSkype はすっかり「なくてはならないもの」になってしまった。Skype で警告を受けたことはないのでこれは許可されているらしい。

そしてこの事件も影響を与えつつ、もっと大きな時代の変化、技術の変化を踏まえて、著作権法の改正が行われ、来年1月の施行が迫っている。アクセシビリティ関連でも多くの影響が(一般的には良い方向に)出ているのだが、もっと勉強しなくては、と思う。

CEATECにて

来年度の福祉情報工学研究会(WIT)をCEATEC展示会の中で開催する案が出ているので、下見をかねて、幕張メッセの CEATEC に行ってきました。

企業の新製品発表など、いろいろ報道もされていますが、大学やNICTさんの展示ブースもありました。もし来年この場所での研究会が実現したら、研究会の関係者の皆様にいろいろ回っていただけるので、よいことだと思います。

WIT 関連でいえば、たまたま「アクセシビリティ PLAZA 」というブースが目に入ったのでお話を伺ってきました。(社)ビジネス機械・情報システム産業協会(JBMIA) の方が、JIS X-8341-5(高齢者・障害者等配慮設計指針:事務機器)の説明やバリアフリーコピー機の実演などをしておられました。

毎年展示しているが、レポートの課題を課せられた大学生などがよく来てくれる、会議場を取るためにお金がかかるので展示のみで講演などはやっていない、というお話でした(対応してくださったのは(株)リコーの方でした)。

こういった展示をされている方を研究会にお招きしてお話をしていただいたり、見学に来る大学生を積極的に研究会に誘導したり、いろいろ工夫できるのではないかと思いました。

受付はWebで名前を事前に登録してコンファレンス予約などを行い、会場でバーコードリーダーまたはEdyリーダーを使うセルフサービス方式でした。研究会の入場者にもこういったことをお願いすることになるのでしょうか。うまく情報を共有できれば研究会としてもメリットがあるかも知れません。。

あまり時間がなく、限られたブースしか見ることができませんでしたが、個人的に興味があって、並んで触ったのはSONYのVAIO Wでした。左手で持ちながら右手で操作してみましたが、紙のように軽く、Windows 7も軽快でした。初めて Let’s Note T1 の実機を触ったときの、あの衝撃に近いものを感じました。あの頃の Panasonic の立ち位置にいま SONY がいるような気がします。。

Panasonic と Vine

2008年1月に Panasonic Let’s Note でひどい目にあった。

乱暴に言えば、Windows Update がパソコンを壊したのだ。日本でしか売れていないマイナー機種は、もはや Microsoft で動作検証されてすらいない、という事実に気づくきっかけになった。

長年使い続けた Let’s Note が、気づいたら「高品質の代表」ではなくなっていたことに愕然とした。「グローバルでない製品を使うのはリスク」という認識を持つようになった。

2008年4月に Lenovo ThinkPad X300 に乗り換えた。(高かったが。。)中国メーカーに事業譲渡されて劣化したという意見もあるが、それを言うなら Apple 製品も製造は中国や台湾だ。本当はトラックポイントがお気に入りだったし、PgUp PgDn のあるキーボードが使いたかったので、乗り換えて満足した。

もちろん高品質と手放しで喜べたわけではなく、まず Windows XP にダウングレードしたあと、Muteボタンがうまく動かなくて苦労した。調べたらウイルスバスターとの互換性問題だった。(ウイルスバスターがガラパゴスだった)試したら Microsoft OneCare がよかったので、ウイルス対策ソフトの乗り換えを行った。(販売終了になってしまったのが残念だが)

今年の夏ごろから、バッテリーの故障とキーボードの故障に相次いで見舞われた。しかし、Lenovo は部品を注文して自分で取り替えればたいていのことはできるので、あまり悩むこともなく、時間は無駄にならなかった。

さすがに Let’s Note より重たいけれど、慣れてしまった。内蔵 DVD ドライブを使う機会がほとんどないので、セカンドバッテリに換装した。

SSD 64GB はちょっと物足りないが、逆に大事なデータをこまめにバックアップする習慣がついたから、必ずしも悪いとは言えない。それでも VMWare で Ubuntu を使うには少し足りないが。。。1440×900 の画面が使えるのはありがたい。

****

私が Let’s Note T1 に飛びついたのは 2003 年ごろで、当時は周りの人はみんなバイオノート派だったので珍しがられた。

いまや Let’s Note でない人を探す方が難しいが、Let’s Note 派の人が「原因不明のトラブル」に見舞われている率が去年くらいから高まっているように感じる。

私の職場でも「異常な温度上昇」「電源トラブル」などなど。

先日は私が座長をしていた学会のセッションで、自分の発表を始めようとしてプロジェクターにつないだ人が、突然 Let’s Note の電源が入らなくなった。おかげで10分くらい時間が無駄になった。けっきょくバッテリーを外して付け直したら復旧したのだが。

Twitter の kazuyo_k さんもデバイスドライバーの相性でそうとうお困りだった様子だが、私が去年1月に経験したトラブルのことを思い出すと、最近の Panasonic にいかにもありそうなトラブル、という気がする。

こうしてグローバルでない商品はいつのまにか腐っていくのだな、という実感を持っている。

****

すこし前に、ある人にGalateaの動作確認を頼まれてVine Linux 5の64bit版を仕方なく入れてみた。

そもそも1年前までGalateaはVine Linuxを動作対象にしていた。自分も日常的にVineを使っていた。Vineは「日本語環境が充実している」のが売りだった。日本語フォント、かな漢字変換システム、日本語の入力がちゃんとできる Emacs エディタや、日本語の論文作成ができるようにチューニングされた LaTeX などなど。

1.x の時代(10年前だ)には Linux はカーネルが 1.0 系だった。そもそも Linux そのものが「枯れていなかった」。NFSサーバを運用してみたらファイルがぶっ壊れて、仕方なく Solaris に戻したこともあった。サーバとして、デスクトップ環境として、まともに使えるようになったのは Vine 2.5 あたりからだった。商用版が発売され、日本ではそれなりに普及していたはずだ。

Vine 2.x, 3.x, 4.x とずっと使い続けた感想として、明らかにこの数年、Vineは「腐って」きた。3.x の時代には「日本語のフォントが間違っている」ことがあった(教授の名前の1文字だったので、とても困った)。開発者グループに連絡をしたがすぐには直してもらえず、仕方なく某商用 TrueType フォントに差し替えて使った。

昨年6月にはサーバの更新で Vine 4.2 を使おうとして、NIS サーバの設定ファイルにバグを見つけた。そのとき気づいた。「もう誰も Vine なんて使ってないんじゃないか」と。

ちょうど Ubuntu Linux が台頭しはじめていた。あちこちで「Ubuntu があれば Windows はいらない」と言われ始めるほど、高い完成度を誇り始めていた。

Ubuntuでは国際化されたバージョンに「日本特有のパッケージを追加して使う」という考え方になっている。コアの部分は世界中で使われ、不具合がないようにグローバルに検証されているのだ。

Linux カーネルの更新に1年に2回追従していた Ubuntu と異なり、Vine は(もともと「保守的」な開発方針であったため)カーネルが古すぎて新しいハードウェアで動かない、ということが当たり前だった。自分で差し替えることはできたが「だれも使っていない使い方」を試行錯誤するのは苦痛だった。

GalateaはターゲットをUbuntuに切り替えた。自分の(職場の)Linux環境も1年前からUbuntuへの移行を進めた。腐ったLinuxと心中することを回避できた。

2年以上かかって先日やっと Vine 5 がリリースされた。頼まれて仕方なくいじってみたが、駄目だ、と思った。Vine で XXX が動かない、と聞かれても、やっぱり「それは Vine が腐っているからだ」と答えるしかない。

ちなみに32bit版も試してみたら、多少まともだった。だが、ダウンロードのデフォルト選択肢が64bit版だったことは理解に苦しむ。

****

私にいろいろ相談してくださった方は、けっきょく Let’s Note で Vine 5 のオーディオデバイスをどうしても認識できない、とのことで、今年は Galatea for Linux の演習を断念されたとのこと。私に言わせれば「最悪の組み合わせ」だ。。

「グローバルでない製品を使うのはリスク」というのはハードウェアにもソフトウェアにも当てはまりそうだ。

  • 追記(2009-10-01): 上記は私の経験に基づく仮説であり、特定の製品の開発プロセスについては推測に過ぎません。特定の製品が頻繁に故障しているように見えるのは、特定の製品のユーザが圧倒的に多いことによるバイアスかも知れません。また、この記事に関してもう一つお伝えしたいことは「評判は頻繁に変化しうる」ということです。ソフトウェアもハードウェアも現在ちょうど新しいバージョンに変わるタイミングですので、いろいろな方の評価を御確認の上、ご自身でご判断ください。本記事の誤りをご指摘いただいた場合は、お詫びして修正をするつもりですが、本記事をお読みになったことで不利益が生じたとしても責任は負いかねます。御了承ください。

Mercurial によるバージョン管理

巷で話題の「分散」バージョン管理システム Mercurial を使ってみました。

遠い昔にCVSの本を書いたときには「オープンソース」という言葉が世の中に広まりはじめたばかりでした。

でも私の興味はオープンソースそのものではなくて「個人が安全にソフトウェアを開発する」あるいは「グループが効率的に共同作業をする」ということでした。CVSよりもSubversion(svn)の方が優れているらしい、とは聞き及びつつも、道具にこだわるよりも、何かを作ることのほうが大事だと思ってきました。

最近やっと Eclipse 経由で(というよりも3rdRail経由で)Subversion を使うようになりましたが、Eclipse からいじっている限り大きな違いはなく、大きな感動もありませんでした。むしろ、日々のコミット作業のインタフェースよりもリポジトリのビューワーの方がよっぽど大事だと思うのに、cvsweb はどうなっちゃったんだろう、などと思いました。

そんなことを思いながら、Mercurial を触りはじめて、逆に cvs/svn が「グループが効率的に共同作業をする」というところに重きを置きすぎて「めんどくさい」ツールになってしまったことに気づきました。ある状況で「CVS よりも RCS の方が適しているのでは?」と思ったこともあるのですが、かつて RCS が適していた場面をカバーしてくれる(そしてそれ以上のことを実現してくれる)のが Mercurial だと思います。

バージョン管理システムを「これはバックアップツールの一種です」と説明している本やサイトも多いのですが、そもそも「バックアップ」と「バージョン管理」は分けて考えた方がいいのではないか、という気もしてきました。(例えば pdumpfs はよいバックアップツールだと思いますが、バージョン管理ツールだと言い張るのは無理ではないかと。。。)

「個人が安全に開発する」というところを重視するなら「作業中のファイルをいったん import して checkout しなおす」という「謎の御点前」が不要なだけでも Mercurial はずいぶん手軽だなあ、と感じました。

とはいえ、Mercurial においても”hg init” して “hg add” して “hg ci” しなくてはいけないので、手間の問題というよりも「安全な場所を決めてリポジトリを作る」という作業そのものの精神的な抵抗がないことのメリットなのかも知れませんが。

もう一つ評価に値するのは、リポジトリのビューワーが内蔵されていることです。”hg serve” を実行して、ウェブブラウザで localhost:8080 を開けば、cvsweb ライクなインタフェースがすでに備わっている、ということがわかりました(ポート番号はオプションで変えられるとのこと)。

そんなわけで、私がいま試している Mercurial 1.0 の Windows 版バイナリはこちらからどうぞ:

Mercurial なのにコマンドが hg なのは「水銀」の元素記号だからだそうです。

そして hg は Python で実装されているとのこと。Python は個人的にコーディングスタイルが好きではない(制御構造を可視化すること=プログラムを読みやすくすること、とは限らないですよね?)のですが、Google に限らずいたるところで重要な言語になってきたなあ、と思います。

ハードディスクエラー

昨年から調子が悪いと嘆き続けてきた Vista マシン(Panasonic CF-R6)ですが、悲しい事態になりました。

スリープから復旧しようとしてブルースクリーンに。その後再起動の際にBIOS画面で

0200: ハードディスクエラーです。

という表示。BIOSセットアップの画面では「ハードディスク: 0MB」という表示になり、ハードディスクを認識しなくなりました。

T1, R3 と使い続けてきた Let’s Note なのですが、昨年春に R6+Vista に初めて触ったときに「漠然とした不安」を感じて、夏まで封印して R3 を使い続けたのです。そして夏休みに苦労して R6+Vista に乗り換えたのですが、不安が現実になってしまいました。

とりあえず予備機の R3 を引っ張り出してきました。次は何を使えばいいのでしょう。。。

Windows Vista

私の経験ではノートPCは使用期間が2年を超えると「いつ壊れてもおかしくない」状態になります。

現在使用中のマシンは Panasonic CF-R3 (Windows XP Professional) なのですが、使用期間が2年数か月となり、かなりくたびれてきたので、新しいマシンへの移行作業を進めています。

新しいマシンはすでに購入済みの CF-R6 (Windows Vista Business) です。すでに設定をいじりまくって、外見や視覚効果などはほとんどWindows XP(というよりもWindows 2000)と同等の状態にしてあります。UACも無効化しました。

しかし、ソフトウェアの開発やデモのために動かしていた Apache, PHP, PostgreSQL のWindows版がVistaでは簡単には動かない模様。

この機会に VMware Player を導入することにしました。

日経Linux 2007年7月号のCD-ROMを使用しつつ、VMware Player 2.0 を入れて、元になる仮想マシンイメージをいじって、Vine Linux 4.1 の ISO イメージからインストールを行いました。

まず旧マシンで仮想マシンを作り、インストールが終わってから新マシンで動かしたのですが、うまく行きました。ただ、VMware Tools はまだ使えない状態です。

デフォルトの RunLevel を 3 にして、個人用 pukiwiki などを仮想マシンで動かすことにしました。

仮想マシンが動いていてもメモリはほとんど食わないように見えるのですが、startx してもvmplayer.exe と vmware-vmx.exe のメモリ使用量が増えたように見えません。

ユーザ権限以外のプロセスがメモリを食っているのかもしれません。。