開発後記 ~聖司との戦いの記録~ 第一章

■ 雑記 Posted by ひぐま (Higmmer) on 2007-02-15 at 00:18:01

◆共有テーマ: 雑記 [日記]

聖司との出会い、そして戦いの始まり

思えば私が聖司の改造に手を染めたのはほんの些細な違和感がきっかけだった。フィードを開く度に現在のタブが上書きされる――以前から気になっていたこの挙動を直したいと思ってWebを巡り、ある方が作られた私製改造版の存在を知った。フィードを新しいタブで開く機能が追加されたそれはとても便利だったが、残念ながらそのON/OFFを切り替えるUIが付いていなかった。無いよりはあった方がいいだろうということでUIを追加し、ついでに小さなバグを直しただけの取るに足らない改造版を「ちょっとした改造」として公開したのが昨年の6月22日のことだ。つまり始まりはただの「改造の改造」に過ぎなかったのだ。

当時はまだインストーラー(XPI)パッケージではなく入れ替え用のjarファイルやパッチファイルのみでのリリースだったので、実際に使用するには多少の知識と面倒な作業が必要だった。従ってユーザーは多かれ少なかれ「改造している」という自覚を持たざるを得ず、そこには自ずからリスク意識と自己責任の原則という共通認識が漂っていたのではないかと思う(私の勝手な思い込みに過ぎないかも知れないが)。

その6日後には少しだけ挙動を変更したバージョンをリリースしたわけだが、この頃には某所で少し話題となるようになり、それに伴ってインストーラーを作って欲しいという声が聞こえ始めていた。元々他人が作ったものであるにも関わらず、さも自分が作ったかのように完成品(XPIパッケージ)として配布することには正直気が引けたのだが、それを必要としてくれる人がいると知って気を良くした私は期間限定という名目でXPIパッケージを提供することにした(結局、最終バージョンが公開停止されるまで数日の例外を除いて配布が途切れることはなかった)。

この「完成品として配布する」ということの重大性にもっと早く気づくべきだった――と今さら何を言っても後の祭りである。

それから暫く時は流れ9月になった。その頃の私はポッドキャストというものに少しずつ興味を持つようになっていた。どうにかしてポッドキャストが聴けるようにならないか――そう思い立った私は、ある目的のために買っていた書籍やWeb上の情報を紐解きながら開発に取り組み、成果物を9月23日にリリースした。ところが、それと前後してその界隈が騒然となるような重大な事態が発生していた。

第一次脆弱性危機(ヴァルネラ・クライシス)の勃発である。

第一次脆弱性危機

この時ばかりはさすがに一度は聖司との決別を考えた。だが、自分が欲しいと思う機能を少しずつ追加していった結果、私にとって彼はもはや手放すことができない存在となっていた。そこに欠陥があるらしいという言葉だけで、それまで私が投入した少なからぬ時間と労力を全て無に帰すのはあまりにも悔し過ぎる。そう思った私は問題の調査と対策方法の検討を開始した。幸い既に国内外の各サイト上にて情報が公開されていたため、その全容を把握するのはそう難しいことではなかった。

問題のひとつはすぐに解決できた。だが、そもそもフィード内のHTMLをほぼノーチェックで通してしまう仕様に根本的な原因があることは明らかだ。対策としては独自にHTMLフィルタを開発するしかない。かといってHTMLパーサをゼロからコーディングするのは骨が折れるし、なにより私にはその能力が無い。色々調べていく中でFxに実装されているDOMパーサが使えるということが分かり、これを採用することに決めた。だがそこからが大変だった。DOMどころかXMLにもろくに触れたことがないだけでなく、Javascriptの知識さえWeb1.0の時代で止まっていた(for~in構文すら知らなかった)私は、何をするにもリファレンス片手に試行錯誤の連続。そうこうしながら三日三晩ほぼ徹夜で作業し、なんとか動くようになった彼を「スクリプトインジェクション対策版」としてリリースしたのは9月26日の早朝のことだった。

当然それから暫くは不具合対応に追われ、ほぼ1~2日に1回の割合で修正版のリリースラッシュとならざるを得なかった。一方その頃、Google Readerがリニューアルされたという話題で巷は持ちきりとなっていた。私も流行に乗り遅れまいとそれを試してみたところ、これは「かなりヤバい」と直感した。一部UIの完成度の低さやレスポンスの悪さは改善の余地ありだが、Expand Viewにおける操作性、一覧性の高さは聖司を軽く凌駕しているように思えた。

聖司との付き合いもこれまでか、と思った。と同時に、このままでは「客」が獲られる――という思いが脳裏をよぎった。自分が誰からも必要とされなくなることに対する不安と焦りにも似たその思いが、新たな機能追加へと私を駆り立てた。

その2日後には更新フィードを自動的にタブで開く機能を追加したバージョンを「究極版」と称してリリースするに至った。今にして思えばなんと烏滸がましいネーミングだろう。この時には既に周りが見えなくなりつつあったのだと、我ながら思う。

そしてその更に2日後、本家から脆弱性対策を施したバージョンがリリースされたのを受けて両者のコードをマージしたものが、今日の聖司(改)の原型である。

(つづく)

トラックバック

この記事について書く(FC2ブログユーザー)
※言及リンクの無いトラックバックは無効です

PageTop▲

コメント

PageTop▲

コメントの投稿

 
 
 
 
 
 (後で編集・削除したいなら必須)
 
  

PageTop▲