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

2012年12月17日月曜日

Display Requirements

TwitterがAPIを使うにあたって、ツイートの表示方法を制限してきたので、対応しないといけない。もうDisplay Requirementsはさんざん叩かれていて、どういうものかは皆わかっていると思う。この記事を書いた目的は、私がどのように解釈してどのような対応をするかという説明をすることなので、Display Requirementsの良し悪しについてはあまり言及しない。他のTwitterクライアントを作っているなら俺は悪くないということを強調する羽目になるが、mikutterのユーザは賢い方が多いと信じている。

その前に前提の確認

実はさんざん叩かれているDRだけど、mikutterはそんなには変わらない。2009年のTwitter Webを参考にして今のUIデザインがあるので、当然と言えば当然。実はDRはつい最近制定されたものではなく、もともとあったのが義務化されただけ(それに際して変更はされたが)。
とはいえDRとmikutterのUIは完璧に同じではない。具体的に言えば、私がTwitterのUIで不満に思っていたところを「改善」したのがおおよそmikutterのUIなわけだけど、そういうアレンジを全て取り払わなければいけない。
それによってユーザがどれくらい迷惑を被るかは、0.2.1のリリース後にわかるだろう。

must always

多くのTwitterクライアントがやってる、設定で変更できるというのは、個人的にはグレーじゃないかと思った。「しんどいとかあったら相談して!」みたいなことはちらっと書いてあるけど、やだって言って通用するならこんな規約そもそもないだろう。
あと、フォーラムのスレッドとか全部追っかけてるわけじゃないので、実は知らないだけで設定で無効にできるのは構わん、みたいな結論が実は出てて、相当恥ずかしいことを書いてるかもしれない。だったらそのことをDRに書き足しておけよっていう話だけど。
尚、設定で戻せるようにしてはならない、という明確な記述は見当たらなかった。いずれにせよ、後述する理由により(=めんどい)、そのような設定は付けないと思う。

ぶっちゃけどうでもいいのでは

多くのクライアントが違反してるのでは、と言いたいわけではない。検問やって得するのはTwitterだけだ。DR みんなで破れば こわくない。
守らなくてもいいじゃんと言いたいわけではなく、バカ正直にやると文字通りバカを見るので、ある程度ユーザビリティを維持しながら、うまい落とし所を探っていく必要がある(多くのTwitterクライアントは、設定で戻せるというのを落とし所としたのだろう。悪いやり方だとは思わない)。

とはいっても決まりなので

インターネットは怖いところなので、決まりを守らないとユーザレベルでリンチされることがままある。たまにmikutterインストールしてしこたまハッシュタグ付きでdisったあと去っていくモヒカンがいるけど、こういう人たちの生態はまだ解明されていないので、急所は隠しておかないと不安で夜も眠れない。私の安眠のためにもやっぱり避けては通れない。
インターネットでは規約にとらわれないといけないのですね!

サドンデス

3/5まで実装しなきゃいいじゃん、というのはナシ。API 1.0、3/5までというバッファをもたせた順次移行というよりは、いつ使えなくなるかわからないサドンデスシステムが採用されていると思ったほうが事実に近い。API 1.0の不具合の修正がめちゃくちゃ遅いのだ。mikutter 0.2.0.1089で一応それっぽく動くようになったけど、明日TLを取得できなくなっていても不思議ではない。ユーザは以前のmikutterを使い続けられるけど、3/5までではなく、最大3/5までと考えたほうが、いざというときに寿命が縮まらなくて良いと思う。
v1.1への対応は急務であり、できるだけ同じタイミングでDR対応もしたいです。

ノーガード戦法

mikutterはどうするかというと、Twitterとの化かし合いの土俵には上がらず、あえてこれらに従い、ユーザビリティの低下を見過ごします。mikutterユーザはDRに準拠したUIを否が応でも強いられます。must always、設定で戻すことはできません。でも私は決められたことをしたに過ぎないのだし、Twitter社もユーザも、私を責めることはできません。残念でした。

見つからなきゃなにやってもバレない

多くの人気のTwitterクライアントとmikutterには、ソースが公開されているかどうかという大きな違いがあります。つまり皆さんが勝手に書き換えて、その結果DRに違反することになるのは何ら問題がありません。というか、それがどんな表示をしているかは確認できないしね。絶望するのはまだ早い。DRの実装の全てはそこに置いてきた。

プラグイン

mikutterのコアにはGUIは含まれません。つまりDisplay Requirementsの対応と言っても、標準プラグインの書き換えに過ぎないのです。プラグインは取り外し可能です。この意味がわかるな…?

display_requirementsプラグイン

いっけねー、コード同士の連携を粗にして見通しがよいコード書こうと思ってたら、display_requirementsプラグインになっちゃったー!これ外したらDisplay Requirementsに違反した使いやすいUIがもどってきちゃうわー。アップデートする度に削除するだけでもどってきちゃうわー。

あやしいプラグイン

あれれー? https://github.com/toshia/display_requirements をインストールしたら、プラグイン削除してないのにDR非準拠な洗練されたUIを取り戻せたよー?
これじゃあ、各種ディストリが用意しているパッケージなどを用いてインストールしている等の理由で削除が難しい人も、手軽に無効化できちゃうわー

茶番乙

0.2.1でDRに対応する予定。開発中のコードはtrunkにあります。
API v1.1についても同時に対応中なので、まだ不具合が残ってます。DRに対応するとゆるふわ清楚系mikutterちゃんがどうなっちゃうのか早く知りたいなら止めないけど、trunkを試す時は設定などのバックアップは忘れずにね。とはいえまだDR対応も途中なので、工事現場が見れるというだけの話です。


雑感

私がmikutterにかけた時間は決して短くないし、Twitterに愛着もある。ならば当然この件について思うところはあるんだけど、開発を打ち切るという選択はしなかった。
もちろんここに思いの丈を書き散らしてもいいんだけど、2つのdisplay-requirementsプラグイン(標準プラグインと上記github上のもの)で私の思いを表現することにした。私の表現の場としては、これが一番ふさわしいのだ。

まとめ


  • mikutter 0.2.1からはDRに対応します
  • 設定で戻すことは不可能
  • それプラグインでできるよ

これでよかったのかな。Twitterがこれの違反を根拠にシメあげてくることもないだろうから、多分死ぬまでそれはわからないね。

疲れた。これ25日までに間に合うのかな。