さよなら、XiuMai

2006年から Perl で動作するWebサイト制作ツールの XiuMai を個人で開発していました。当時はまだ日本で働いていて、その職場で新規商品企画プロジェクトがあり、分散型の社内SNSを作りたいなと思って提案したのが発端です。

その当時、私は社内ベンチャー的に自由に商品開発できる立場にあり、メーリングリストベースの分散SNSを商品化*1したのですが、折りしもBlog時代になり「今さらメーリングリストでもねーだろ」ということで、その開発をWebシステムに移そうとした訳です。単体でWikiやBlogの機能を持ち、OpenIDサーバとして動作させることでシングルサインオンで組織ごとのサーバを相互運用できるシステムを構想していました。

残念ながら開発にGoサインは出なかったので、プロトタイプとして書いた PukiWiki の記法*2を解釈するプログラムを発展させ個人用のCMSを作ることにしました。

そうして誕生したのが XiuMai です。

f:id:xlc:20211231194333p:plain

私はWikiで採用されているページベースの仕組みに興味がなく、Webサイトを作成する仕組みを作りたかったので、任意にディレクトリを作成し、好きな場所にファイルを置けるようにしました。開発自体はあっという間に完了し、おそらく2006年12月の1か月でほぼ形になったと記憶しています。

その後は記法を少しずつ拡張したり*3、レスポンシブ対応したり、自動バックアップの仕組みを追加したり、細々と開発を続けていました。もともとの構想にあったOpenIDサーバとしての機能は、協調作業に興味を失ったこともあり打ち捨てられたままですが*4

私自身はこの15年間 XiuMai を日々利用してきました。中国語学習がメインだったころからBlogの下書きは XiuMai で書いています。麻雀関連の話題が増えてからはさらに活躍し、Blogにある複雑な表は XiuMai が出力したHTMLを貼り付けて記述しています。

ですが、XiuMai は即席で書いたために CPAN に登録するようなモジュールとしての体裁を持っていませんでした。2014年ごろに一度リライトを図ったのですが、直後に麻雀アプリ開発をはじめたのですぐに興味を失ってしまいました。けれど開発に使用する言語が Perl 主体から JavaScript 主体に変わったことで転機が訪れます。Node.js であれば npm モジュールは簡単に作れる、さらには JavaScript なら Windows でも動作するので会社のPCにも「こそっと」インストールできる、ということで Node.js でのリライトを試みました。

そうして LiuLian が誕生しました。

f:id:xlc:20211231194419p:plain

LiuLian に少しずつ XiuMai にある機能を追加していき、先日ついに同等の能力を得るに至りました。いまやBlogの下書きも LiuLian で書いています*5。というわけで XiuMai には引退していただき、今後は LiuLian を使っていくことにしました。XiuMai では実現できなかった「カスタムモジュールの追加*6」なども実現することを構想しています。

今後は LiuLian をよろしくお願いいたします。

*1:見た目はWebで動作するスレッド型掲示板なのだが投稿はすべてメールで行われており、メーリングリストとしても動作する上に、他のメーリングリストを転送先に入れておけば組織のファイアウォールを超えて情報共有できるという優れものだった(ハズ)

*2:はてな記法もこれに似てる

*3:テーブルの記法は相当優れモノだと自負しています

*4:よほど時間があれば再度チャレンジするかも。でも今は麻雀アプリの開発がしたい

*5:会社でも書けるしね。そうこの下書きも……

*6:機能別にモジュールを追加する機能。PukiWikiのプラグイン相当