2010年12月26日日曜日

mikutterで振り返る一年

CHI

http://hakurei-shain.blogspot.com/2009/12/computer-humanoid-interface.html

2009年12月26日に、computer humanoid interfaceとかいうタイトルの記事をポストしていた。9月くらいから書き始めた監視スクリプトだが、25日にリリースし、翌日にこの記事を書いたもの。どういうものかというと、

  • これをインストールしたサーバ(マシン)のあらゆる状態を監視し
  • 異変があればTwitterにポストする
  • 欲しい機能はプラグインで拡張できる
  • 会話支援機能などが付いていて、Twitter上でリプライを飛ばしあうようなプラグインが簡単に作れる
というもの。現在もメンテナンスはしていて、わがサーバを監視しているlime_toshiaや、監視プラグインを全て外して独自のプラグインを入れて稼働しているkirimaru_botがある。
これをリリースする少し前から、GUIプラグインを入れたらTwitterクライアントになるんじゃないか、と考え始めていた。それが現在のmikutterだ。

一年で起こったこと

理想(最初のUI設計)

現実

これが最古の写真(理想はイラスト)。今には程遠いように見えるけれど、ほとんどこの時に今の原型ができていた。
今にも受け継がれている特徴は

  • できるだけコンパクト
  • リプライ入力欄がつぶやきのすぐ下に現れる
  • どのつぶやきへのリプライかが簡単に分かる
リプライ入力欄をすぐ下に出現させるのは実装し始めてすぐに思いついたアイデアだった。これはたくさんのスレッドがひとつのタイムラインに絡まり合って存在しがちなタイムラインにはなかなか良いUIだと思っている。同じようなTwitterクライアントはいくつかあるが、このような芸当はウィンドウのパーツの制約で難しいことが多いので、ほとんどのクライアントはひとつのつぶやき入力ウィンドウを使っているのが現状だ(尤も、好みの問題もあるのでその限りではない)。
ツールチップで何に対してのリプライかを表示するのは、RubyGnome2のバグにハマって途中でやめてしまった。それがなければずるずるツールチップに表示していたかもしれない。(そんなことはないか)

逆に考えをあらためたこともあった。
  • DM
  • Twitterでできることを全てできるように!という方針
mikutterを開発している間に、りむったーというサービスが終了した。これは、リムーブされたらDMで通知してくれるというサービスだった。これが終了すると、めっきりDMが来なくなった。普段使わない機能を実装する気にはなかなかなれない。
Twitterでできることを全てできるようにしようと思ったが、時間的な制約もあるので、実装を遅らせるのもよしとすることにした。TwitterのAPIに対応するより、それ以上の機能を実装したほうが良い場合もあると考えているからだ。

他のTwitterクライアントにも様々な変化があった(以下、覚えている範囲で書いているのでいろいろ間違っているかも知れない)
  • Twitter Webの刷新。重くなったとも言われているが、画像のプレビューやyoutubeなどに対応、外部サービスをTwitter Web上から使えるようになるというのは前代未聞だった。
  • 多くのTwitter クライアントが返信元やスレッド機能を実装してしまった。mikutterは会話を追うことを得意としているので、差別化は困難になった。
  • 開発をはじめてしばらくしてTwitterクライアントが大量にリリースされた。しかしながら、LinuxでのクライアントはUIや機能がパッとするものが少なく、今のところmikutterが少しリードしている、と思う。
  • TwitterがGoogleなどにつぶやきの情報を提供するようになった。これによってGoogleでリアルタイム検索(つぶやき検索)ができるようになった。favstarの収集がやたらと速いが、たぶんこれだと思う(よく知らない)。
開発は常に絶え間なく行なっていたが、途中様々なTwitterの仕様変更があり、時間を取られたりもした
  • 公式リツイート。これにより、従来のリツイートが「非公式RT」と呼ばれるようになり、恰好の論争のネタになっている。
  • OAuth。8月31日を以てBasic認証でTwitterAPIを叩けなくなった。mikutterは6月末くらいに対応して、この時から投稿クライアントに「from mikutter」と入るようになった。この日を境に多くのメンテナンスされていないTwitterクライアント、BOTが使えなくなった。
  • ジオタグ。つぶやきをどこでしたか、位置情報を含められるようになった。多くのPC用クライアントでは非対応(そりゃそうだ)
  • Streaming API。mikutterは製作開始時点からこれを視野に入れていたが、今ではUser Streamは一般的になっている。クライアントによってはオプションになっているが、mikutterではUser Streamは標準。Twitterの使い方が大きく変わった。
  • ユーザリスト。1ユーザにつき20個のリストを作ることができ、そのリストのTLを見たり、人の公開リストをフォローしたりできる。対応しているクライアントは今でも少ないが、mikutterは不完全ながら最低限の対応はしている。
こう見ると、この一年はTwitterにとっても大きく変わった一年だったことがわかる。とくにReTweet、UserStreamは私たちのTwitterの使い方を大きく変えた。また日本ではメディアに取り上げられたりドラマが放映されたりして大きく認知度が上がり、ユーザ層が大幅に変わって、それに併せて周辺サービスの性格も変わってきた。
Twitter自体の安定性が上がったことは誰もが感じているはず。一週間何もトラブルがなければ不安になっていたものだが、今やTwitterAPIに不具合があるとTwitterクライアントの作者に苦情がいくこともあるそうだ(mikutterはユーザ層的にないけれど・ありがたい)。

それ以外にmikutterを取り巻く環境にも様々な変化があった。
  • RubyGnome2が安定してきた。最初はかなり不安定で採用したことを正直後悔していたが、最近は不具合も減り、mikutterは確実にそのパフォーマンスを上げている。
  • 協力者が出てきた。パッチを送ってもらったことにより様々な機能がついた。またブログ等で紹介してくれる人も何人か出てきて、様々なOSでの動作報告、パッケージ化がなされた。特設サイトにはドメインも提供してもらった。
  • 利用者が思ったより増えた。Linuxでも動く優秀なTwitterクライアントが出現する見立てだったが、今のところ満足できるものはあまりない。AirやJavaを使ったものはLinuxでも動くが、どうしても対応が疎かになっているようだ。その中でmikutterはUbuntu Linuxに主軸を置いており、それを買ってか利用してくれるユーザが確実に増えている。
個人的にも、これほど長期にわたって開発を続けることができたプロジェクトも初めてだし、これだけ多くの人を巻き込んで開発するという貴重な体験をさせてもらえることにとても感謝している。いろんな事を勉強できたので、来年はそれを還元していける一年にしたいとも思っている。ほかに、自分自身にはこんなメリット・デメリットがあった。
  • Rubyの理解が深まった。去年に比べて大幅に理解が進んだ。
  • ソフトウェア開発に対する理解も深まった。
  • Twitterがより楽しくなった。
  • 廃人度が上がった。知らないうちにつぶやいていたり、ふぁぼっていたりする。どうしたものか。
制作開始当初は、Twitte.rbを目標にしていたが、機能的には(一部実装していないものがあるが)超えたと思う(目指している方向が違う気もするが)。
これからは安定化を図りつつ、プラグインとして追加で提供する機能でTweenやTweetDeckに追いつくことを視野に入れて開発していきたいと思っているので、今後とも宜しくお願いします。