mikutterの最新の情報は、mikutter blogに引っ越しました。

2012年4月21日土曜日

0.1.1実装予定機能

今やってることの途中経過とかだよ

アクティビティ
イベントのタイムライン
「アクティビティ」
mikutterのUIは、「メッセージ(=ツイート)」をいろいろな抽出条件で表示するタイムラインを中心に構成されてるわけですが、mikutter開発開始当初と違い、今ではお気に入りを初め、様々なツイート以外の「イベント」が飛び交うようになりました。TwitterのWebやTweetDeckも、Facebookをパク意識してそういったユーザの行動(=アクティビティ)を追うことができる機能をつけました(それと憑依機能とkおっと誰か来たようだ)。

API自体は提供されていませんが、UserStreamから受け取れる情報である程度それっぽいことができるようになります。また、こうやって行動の実態を定義してやることで、タイムラインに抽出したり、通知を設定することができるようになるでしょう。

任意のイベントをタイムラインに

また、プラグインからアクティビティタイムラインにイベントを表示するためのAPIも用意していますし、全ては表示する前にフィルタで書き換えたり削除したりできるようになっているので、この機能を使ったプラグインもそのうち出てくると思われます。

フィルタによる表示の自由な書き換え

タイムラインを黒くしてみた。
全ての色が変えられるので、実用できる
今までmikutterのデザインって、結構決め打ちのところが多かったんですが、フィルタのパフォーマンスが上がったので、色とかをフィルタでいじれるようにしました。

主に色についての変更が見た目には大きいと思います。実はいままでメッセージのヘッダ(名前とか日付とか表示されてる部分)の文字色は黒固定だったので、黒背景で使いたい人はヘッダが見えなくなってしまっていたんですが、ヘッダは左右で色を設定できるようにしました。

設定が細かくなった
何より、ここの色がフィルタで自由にいじれるようになったことが今回最大の変更点です。

例えば、以下のように実行すれば、Twitterユーザ@toshi_aのツイートだけ文字色が赤になります。




こんなふうに、MiraclePainterを受け取ってそこから適当な条件で任意の色をつけるプラグインを簡単に開発することができるようになります。この他にも、スレッド(会話)プラグインの拡張、ツイートを投稿前に加工するフィルタ等で、表示に影響を与えるプラグインを作成する上で表現の幅を拡げるような内部的な変更を複数取り入れる予定です。

先送りになったの

タブのDSL化

タブをGtkオブジェクトではなくGUIプラグインの提供するDSLで定義・管理させることで、他のプラグインが関係ないタブに干渉できるようになる機能です。つまり、左右のタブにフォーカスを切り換えるmikutterコマンドとか、タブごとの新着通知なんかがプラグインで実現できるようになります。
このためには、半ば手探りで実装したGUIプラグインを再設計しないと難しいと判断しました。思ったよりGUIプラグインが大きいし、設定画面の作成など、ついでにやってしまいたいこともいろいろあったので、あえて0.1.1では対応せず、次回に回すことにしました。

いつになるの

5月中頃くらいで蹴りをつけたいですね。ubuntu 12.04には間に合いません。

#mikutter 0.1.0.749

  • UserStreamが止まることがあった問題を改善
  • フィルタやフックを独自に定義する一部のプラグインが動かなかった
  • ツイートの右クリックメニューが出ないことがあった
  • ロケールがUTF8になっていない環境で起動できなかった

パッチをもらうなどした。

割と忙しかったのでバグの修正も疎かに ふへへ
一ヶ月ぶりくらいにmikutter使えるような状態になってきたので、新機能とかをついかしていきたい
ってか前回のバージョンアップが24日だし

0.1.1の実装予定機能を書く書く詐欺してるのでぼちぼち書いておきたいな。リポジトリ追いかけてくれてる人はいろいろと新機能が入ってるのに気づいてくれていると思うけれど

2012年4月4日水曜日

約束の日

! 注意 !
この記事は4/1に書いた記事ではありませんが、私@toshi_aにとっては毎日がエイプリルフールです。


着想

「3! 2! 1!ぴゃあああああああああwwwwwwwwww」
角のテーブルの若者がにわかに騒ぎ始める。2012年になった。
@toshi_a は去年、家族が身長156cmの男のライブに行ってしまい※1、あやうく一人で2011年を迎えるところだったので今年は早々に @brsywe 主催の年越しオフ会に参加することにしていた。
しかし実際に蓋を開けてみると、彼はついさっきコミケから新幹線で帰ってきたところで眠そうだし、@toshi_aの他には誰も来なかったのである。
オフ会というよりはただのサシ飲みだ。誰も来なかったらどうするつもりだったのか。


※1 余談だが、161cmであると正式に発表があり、有識者の中でも意見が別れ問題になっている。今後の動向次第ではmikutterも対応するかも知れない



二人は1月15日のこみトレに本を持っていく計画について話しており、新年になったことにもあまり興味を示しておらず、当然 @toshi_a も自分のiPhoneに普段来ないgoogle calendarからのリマインダが来たことにも気がついていなかった。
その日は深夜2時くらいに別れて、 @toshi_a は京阪の地下で普段ならとっくに終電が終わっている2:30発の電車の案内板を眺めながら、いよいよ2012年の始まりか、と気を引き締めた。
ておくれることを強いられているんだ
思えば、2011年は本当に悲惨な一年だった。以前より数百倍ふぁぼられるようになったり、ておくれなどと不名誉なあだ名をつけられてしまい、初めて合う人にも「ておくれさんですか?」などと言われ、今でもせんべいのような概念になってしまうのではないかと警戒することを強いられているんだ

@toshi_a は、どうせ来月には忘れる一年の目標でも考えてみようかとiPhoneを取り出し、目に飛び込んできた「約束の日」という奇妙なリマインダに一瞬戸惑った。しかし4月1日という日付を見るやいなや、今年の目標のことなんかすっかり忘れ、今年のネタを考えるのであった。


歴史

@toshi_aはエイプリルフールには嘘はつかない。どうせ普段からふざけたようなことばかり言っているし、今更何を言ってもエイプリルフールらしくならない。巷では彼女ができたとか、内定が出たとか、卒業できたとか嘘を言う人がたくさんいるが、どれも大概やったし、嘘をついてもつかれてもたいしておもしろくない。そんなわけでエイプリルフールには全く興味がなかった。
なんで今年のエイプリルフールは
Webページいじらなかったのにアクセスが伸びたのか
その考え方を変えたのは、近年のWebサイトの参入からだ。
彼らは年度末の一番忙しい中で、我々の宿敵であるユーモア欠落症患者に罵られるような内容のページを作る。それらはすべてくだらなく、取るに足らないどうでもいいもので、笑い以外に何も与えない。だが繁忙期にもかかわらずそんなことに身を裂く彼らの遊び心に感動したのだ。

ただ彼らのやりかたに心を打たれた所で簡単に真似できるものではない。普通の人間がコンスタントに不特定多数からのアクセスのあるサイトを作るのはなかなか厳しいのだ。ブログではアルファブロガーでもない限り友達にジョークを言うのと大して変わらないし、Webサイトなら尚更だ。誰も見てないWebサイトが調子に乗ってエイプリルフールネタをやったところで2日にはGoogleのbotのアクセスログたくさん入ったApacheログと一緒に削除することになるのは確定的に明らか
結局このモデルは一見魅力的だが現実的ではなく、彼は結局、毎年彼女ができたと死ぬまで報告しつづけるしかない運命を呪うしか無かったのだ。

しかし2010年に変化が起こる。Twitterクライアントを作り始めたことだ。Twitterクライアントは常に使うアプリケーションなので、ここにネタを仕込めば不特定多数にネタをブロードキャストできる。彼は普段から「初音ミクに全く関係ないじゃないか」という、聞く人が聞けばTwitterをやっていいのは中学生からですよと思わずマジレスをしてしまうような呟きが何か気にかかっており、エイプリルフールに彼らのユーモアを試すとともに、俺が本気を出してしまったらいったいどんなひどいことになってしまうのか思い知らせ、二度と同じ口を叩けないようにしてやろうと思ったのである。
mikutterにとってユーザはお客様ではないのだ。いつからmikutterを「使っている」と錯覚していた?お前たちは常に試されているのだ。mikutterではTwitterクライアントがユーザを選ぶ。

2010年3月、彼は16種類のアイコンを自分のサーバに設置し、それをエイプリルフール当日に取得させ、ユーザのアイコンのURLを一定のルールでいずれかの画像に置き換えた。当然これらはすべて初音ミクのアイコンで、ユーザのタイムラインはすべてみっくみくにされた。
当時10人ほどいたユーザには突然のことに恐れおののくもの、最高にクールだと賞賛するもの等いろいろいたが、中には好ましく思わない人の声もあった。
彼は、最初はそういったつまらない人間もいるだろうと考えていたが、翌年のエイプリルフールにはmikutterに触れることにより「これだからmikutterはやめられない」と言うまでに変貌を遂げているのを見て、実は彼らは私達と同じ「ユーモア」を持って生まれたのにもかかわらず、殺伐とした現代社会に心を破壊され、いつしか人の心を閉ざしてしまっただけなのではないか、と悟ったのである。

彼らも私達と同じ人間なのだ
彼は絶望に打ちひしがれた。俺達と常に争ってきたあいつらにも心があったのだ。
なのになぜ私たちは同じ人間同士争わなければならないのだろうか。きのこ派とたけのこ派は分かり合えないのだろうか。なぜどう見てもチョコが少ないきのこの山を選ぶ過ちを犯す人間がいるのだろう?ご自分の息子が皮を被ってるのがそんなに気になるのだろうかwww
しかし、mikutterで変われる人がいるのならば、創り続けたい。毎年この日のために。

その日から彼はもう一度mikutterの機能目標を練り直し、翌年までにTwitterクライアントとして最低条件を満たし、ユーザをあわよくば増加させることを決めた。餌がなければ、獲物はかからないからだ。
一年後には無事に実装を終えて、その顛末はこのブログにも書いた。

新年になったと同時に彼に届いたアラートは、「約束の日」まであと3ヶ月しかないことを報せるために、いつだったか自分で設定したものだったのだ。
とはいえ、今年に入る寸前にどう考えてもデスマです本当にryみたいな案件の話を聞かされて最悪の気分で新年を迎えた彼は、あまり時間が無いことはわかっていたし、一発勝負なので複雑なことをしてバグを作り込むよりは、単純なことに留めておいたことがいいということもよくよくわかっていた。

「今年は順当にアイコンを増やすか…。」

この決断は決して安易なものではなかった。今年はすでに去年の128種類があり、ここから更に増やすのは非常に困難である。
ミクの写真はいくらでもあるが、一緒にデートに行った時に撮影したものなどが殆どで、童貞の巣窟であるTwitterで晒せばフォロワー全員にリムられることは想像に難くなかった。できるだけ早く手を打たなければならない。


準備

同じ事をするにしても全く繰り返す訳にはいかない。去年の反省点がある。
まずアクセス数だ。昨年は3月からプリフェッチするようにしておき、できるだけ当日のサーバの負荷を減らした。この判断は非常に良かったのだが、この対策を講じても結局トラフィックが当日に集中したのだ。
理由は簡単で、mikutterのエイプリルフールネタを聞きつけた人たちがこぞって導入したのだ。これをキッカケに使い始めてくれた人もいたのだ。正直なところ想定外で、ユーザの増加が見込まれる今回は、何も考えなしにコネクションを貼りまくるのではなく、同時アクセス数を制限しなければならない。
もうひとつは、この機能はコアに完全に組み込まれていたためにテストがしづらく、当日不安すぎて死にそうになったということだ。これは、プラグイン化することで回避できる。取り外しができてしまうという欠点があったが、今回は目をつぶることにした。
これらの問題を解決するために、アイコンを取得するためのロジックを大幅に書き換え、表向きにはキャッシュの効率化を測ったことにしておいて、実際にはアイコンをオーバライドするフィルタを実装したのだ。

バージョンアップしたと言ったな?あれはウソだ
また、昨年は3月19日にそのコミットをしており、バージョンアップにておくれる人がちらほらいた。やはり、0:00に全員がミクアイコンに浄化される悦びを皆に感じて欲しい。そのためには華やかなバージョンアップで釣ることが必要で、3月第一週のうちに大量のバグを修正し、高速化したことにして0.1をリリースしたが、実際には上記の機能を入れたかっただけだ。

ちなみに一か月前という数字の根拠は、先にリリースしておいた0.0.4がそれくらいの日数あれば十分浸透するということがわかったからだ。つまり0.0.4は最新版がどのくらいの速度で行き渡るかを実験していたに過ぎなかったのである。
手早く行動することで、来るデスマーチで私が動けなくても、エイプリルフールは滞り無く遂行される。すべては最初から計画されていたのだよ。

新たな問題も出てきた。昨年と違い、プラグインを書くため、ハックするためにmikutter自体のソースを読む人がでてきたということだ。これは彼にとって非常に嬉しいことだったが、これでは約束の日機能をつけたら即座にバレるのである。そこで今回は、当初aprilfool.rbという名前だったプラグインを、頭文字が同じRubyGTKのクラスから名前をとってaspectframe.rbという名前にした。当然そのクラスとはなんの関係もない。

最後にアイコンだ。
2月の終わりごろに、@toshi_a はmikutterのダイレクトメッセージタブをクリックした。彼はDMがないと言われないようにそれっぽい機能をつけたが、実際に使うのは今回が初めてだ。宛先は @penguin2716 になっている。
彼はmikutterプラグインも開発しているが、 @toshi_a のアイコンをいじって100種類以上の派生アイコンを作ってgithubに上げている(https://github.com/penguin2716/teokure-icons)。
@toshi_a は彼に協力して数十種類程度アイコンを調達できれば、収集はかなり楽になると考えて声をかけたのだ。
頼むやいなや、 @penguin2716 はノリノリでアイコンを描きまくり、一気に200種類くらいにしてしまった。これだけあれば、数十種類と言わず128個のアイコンを調達できる。それに去年のを合わせ、256種類のアイコンを用意することにしたのだ。


約束の日

3月31日22時。京都の某社には、年度末の連日の激務で疲弊しきって体で死んだ目でTLを見る @toshi_aの姿があった。
しばらく見ていると、エイプリルフールの文字が目に飛び込んできた。彼はいつの間にか約束の日が目前に迫っていることに気づいた。
うまくいくだろうか。入念にテストをして、概ね思い通りに動いていることを確認したが、それは2月の話。にわかに不安になる。
TLには、去年よりうんと増加したmikutterユーザがツイートしており、エゴサーチの方も結構なペースでmikutterの話題を拾ってくる。
あと2時間で、彼らのTLはすべて彼が夢見た秩序に満たされ、彼は神となるのである。
もう一度サーバの設定などを確認する。自分は今日も会社に泊まる。Twitter越しにYFでツイートを見て確認するしか無い。
ミスったら終わりだ。すぐに修正版を提供するということすら困難なのだ。

36. 37...

だ…駄目だ まだ笑うな…
こらえるんだ…
し…しかし…

59. 0.



にわかにタイムラインが速くなり、多くの人がよるほーを成功させる。思えばTwitterサーバのレスポンスも速くなり、よるほーの難易度も随分と低くなったものだ。
mikutterユーザのツイートがなくなり一瞬戸惑ったが、戸惑っているのはユーザの方である。いや、あまりのことに状況が理解できていないだろう。あるいは、mikutterの見せる秩序で満たされた幻想世界に陶酔し、ツイートすることを忘れているのかもしれない。
一分ほどの間をおいて、一人のユーザが反応し、続いて次々と喜びの声が届いた。…うまくいったのだ。

彼は自分の犯行をユーザのうpする画像でしか見ることが出来なかったが、ユーザにはすべてがミクによって浄化されたユートピアが見えていたはずだ。




--- キリトリ ---



反省

どうだったかな、伝統の「約束の日」は。去年からの人は、待ちわびてくれていたことと思う。最近使い始めた人は、突然のことに驚いたたろう。
今回はまとめを、去年のDQNブログ風に引き続き、携帯小説風に仕上げてみたよ※2。ここ数年小説を読んでないのもあるだろうけど、意外と難しいね。印税生活は諦めよう。

※2 そういえば携帯小説とか読んだこと無い

とはいえこれ、単に冗談だけでやっているわけではない※3
ソフトウェアは、ユーザ数を測ることが難しい。クローズドなものであれば、自分しか配布しないのが基本なのでサーバのログなどからダウンロード数を測ることができるが、それにしたってアクティブユーザを測れるわけじゃない。mikutterは今やさまざまなディストリビューションのパッケージとして入手できるため、計測ができないのだ。
しかし、エイプリルフールの画像はサーバから取ってくるため、サーバログを見れば、今月のアクティブユーザ数がなんとなくわかる。IPアドレスは変わりうるので正確ではないが、おおまかな目安にはなるのだ。集計した結果、最大で821人は居るという結果になった。500人くらいはいるんじゃないかと思っていたので、思ったよりいるのかもしれない。


※3 ウソです



最後にTwitterで見たツイートに適当に紹介、回答しておく。

午後もミクアイコンになったままだけど、エイプリルフールって午前までじゃないの?

2つ勘違いしていますね。

  1. エイプリルフールだからこういうことをしたのではなく、mikutter自体がエイプリルフールみたいなものだということ。
  2. エイプリルフールが午前までというのはエイプリルフールネタです。はやくユーモア欠落症が治るといいですね。


アイコンがかぶってる人がいる

仕様です。
今回で256種類ですが、全ユーザが被らないようにするには、2011年9月にTwitterのアクティブユーザが1億人を突破したので、1億枚以上の画像を用意する必要があります。

通知アイコンが戻らない

4/1に取得されたアイコンが変わる仕様です。通知は一度ファイルに書き出さないとアイコンを表示できないのでいつまでも戻りません。現在はmikutterはこのファイルを削除しないので永遠にそのままになります。よかったですね。ずっとミクかわいいできますよ。
残念ながら今後のアップデートで消すようにする可能性が高いですが、もっと残念なことに以下のように実行してキャッシュファイルを全て削除すると直ちに戻ってしまいます。
$ mikutter --clean

同じ人でもちょくちょくアイコンが変わってる

ユーザのアイコンを変えているのではなく、画像のURLをフックしてアイコンを変えているので、特定のユーザがアイコンを変えると割り当てられるアイコンも変わります。

4/1以降もこのTLがいいwww

みんなミクアイコンにしたらいいのにねぇ。俺も来年は見たいなぁ

誰が誰かわからない

ミクだよぉ☆彡

不便なのでプラグインを探しだして削除した。としぁは死ぬべき

深刻なユーモア欠落症です。こういう人が争いを起こすのだと思います。しかしmikutterは先に述べたとおりこういう人にも寛容です。
まだmikutterを使い続けてくれるなら、来年の約束の日には楽しめるようになっているかもしれません。
ユーモア欠落症は治せる病気です。一緒に克服しましょう!

ちょwwwwなにこれwwwwマジmikutter神すぎるwwwwとしぁふぁぼろwwww

深刻なておくれです。こういう人がふぁぼ爆撃をするのだと思います。しかしmikutterはふぁぼ爆撃にも強い設計です。
mikutterを使い続けるとふぁぼ魔になるという迷信もありますが、そんな事実はありません。
ておくれは治せません。死ぬしか無い!