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

2013年5月12日日曜日

0.3の予定

次のバージョンは0.3です。簡単に予定している変更を上げておきます。

i18n
mikutterは、開発リソースの少なさによる開発速度の遅さを補うためにできるだけ実装する機能をカットしていました。そのため、流暢な日本語で「英語対応してください」などと言われても、「日本語お上手ですね」と返答していました。しかしこの間ついに英語圏の人から英語のメールが来てしまったのです。もう逃げられないので、一応多言語化の仕組みだけ作る予定です。

コア機能の分割
mikutterのコアが肥大化してきたため、一部機能はRubyGemで配布します。この準備のために、0.2.2ではbundlerを使えるようにしました。勿論ビルドプロセスで、tar ballを作る時にこれらをbundlerなしで使えるようにするので、通常の使用においては何の影響もありません。
ライブラリを切り離すことで、mikutterのバージョンアップとは違うリリースサイクルを持てること、mikutter以外でもそのライブラリを使用できること、それによって品質の向上が期待できる等のメリットがあります。

ライセンス変更
現在のmikutterのライセンスはGPL3ですが、今となってはmikutterにこのライセンスは適切ではありません。GPL3は、mikutterから派生したコードに同じライセンスを適用することを要求しますが、私はそれを要求するつもりがありません。そのため、mikutterプラグインにGPL3以外のライセンスを適用することが可能なのかどうかが不透明になるという問題がありました。
そこで、mikutter 0.3からは、MITライセンスを適用することを検討しています。理由は主に、mikutterはTwitterクライアントではなくTwitterに特化したBotフレームワークであり、フレームワークのような再利用されることを目的としたコードには、上記のような理由から緩いライセンスのほうが良いだろうということです。似たようなソフトウェアとしては、Ruby on RailsやSinatraが同じライセンスのもとで配布されています。

ただし、mikutterは既に多くの人のパッチをいただいており、この変更にはその人たちの承諾を受ける必要があります。幸い、ある程度貢献度の高い人たちには直接話をして、既に意見を頂いています。そのうち、Redmineのニュースで開発者全員に正式にこのことについて説明をして、最終的な決定を下します。

タイムラインのレンダリング方法の変更
Twitterのタイムラインという非常に特殊な情報を表示するため、多くのTwitterクライアントは様々な工夫をしており、mikutterも例外ではありません。二年前に抜本的な再設計を行いましたが、更に効率的にする余地があります。うまくいく目処が立ったら、紹介するかもしれません。

みっくストアの標準プラグイン採用
これは0.3では厳しいかもしれない。
みっくストアは、githubにアップされているプラグインをgitを使用してクリックでインストールできるコンセプトプラグインです。これを洗練させて標準プラグインにして、標準プラグインをこの管理下に置けば、mikutterのリリースサイクルに囚われること無くプラグインを個別にバージョンアップできます。例えば、twitpicの仕様が変わって画像が開けなくなった時、mikutterのバージョンを上げなくても画像プレビュープラグインだけをバージョンアップできます。

方向性の確認
mikutterはプラグインホストです。その拡張性故にmikutterはTwitterクライアントさえも実装することができました。最近、「mikutterはどこに向かっているんだ」という励ましの言葉をいただきます。その認識は全くの誤りで、最初からそういうスタンスで開発してきたが、最近になって漸く皆さんがそのことに気がつき始めたのです。

その意味で、これからはTwitterクライアントとしての機能追加ではなく、より根本的な変更がメインになっていくと以前どっかに書いた気がします。0.3は、さらにmikutterエコシステムの発展に貢献する変更を加えることが根本的な目的です。

スケジュール
8月までは、多忙のためmikutterにはコミットできないと思います。0.3の開発は8月から本格的に開始するため、寒くなるころには出せたら良いかなといったところでしょうか。0.2.2の不具合修正もできないですが、報告は早いほうがいいと思うので、バグ報告はおねがいします。

#mikutter 0.2.2.1230


mikutter 0.2.2を正式リリースします。pre3と全く同じ内容です。

  • 機能追加・仕様変更
    • 実績機能
    • ショートカットキー設定のUIの改善
    • デーモンモードを試験的に実装
    • bundlerを使って使用しているライブラリをインストールできるようにしてみた
    • プラグインのGemfileに対応
    • ふぁぼ・リツイート数をAPIから取得するように変更。
  • 内部変更
    • プラグイン・イベント周りの処理を大幅に変更。依存関係を満たしておらずロードできない場合は警告を表示するようにした
    • サウンドを鳴らす方法を拡張できるようにした
    • 高速化

サウンド関連プラグイン以外は0.2.1と互換性がありますが、そんなのあんまりなかったので関係ないと思います。今回はアップデートが大幅に遅れましたが、いろんな機能が追加できてよかったです。新機能についての詳細は、3月のエントリ「mikutter 0.2.2の新機能」をご覧ください。

2013年5月8日水曜日

#mikutter 0.2.2.1230 pre3


  • 人をリムーブするとクラッシュすることがある (thanks @moguno)
  • アクティビティに種類「ratelimit」を追加。他の多くのTwitterクライアント同様、規制されても通知を出さないようにした。あたかも規制されていないように見えて気分が良い。


細かいバグ修正です。もうこれでいけるやろって言うといけないということが改めて分かったので、言いません。でももし土曜日になっても新しい不具合が見つからなければ、これを以てリリースとします。

ここからは数カ月間忙しくなるので更新が停滞すると思います。不具合の対応も極めて遅くなると思われるので、運用でカバーしましょう。生きているって素晴らしい。

2013年5月3日金曜日

#mikutter 0.2.1.1142 and 0.2.2.1225 pre2


0.2.1.1142
  • 未知の形式のエンティティを受信するとクラッシュする問題
  • openimg: yfrogの仕様変更対応と、instagramの一部の画像の仕様に対応(thanks @negi_s)
  • extract: Twitterクライアントで抽出するとクラッシュする問題の対策を0.2.2からバックポート
  • directmessage: 自分自身にDMを送った時に適切なイベントが発火していなかった (thanks @nullpo_head)
0.2.2.1225 pre2
  • 0.2.1.1142を取り込んだ
  • TLのレンダリング中にエラーが発生した時にクラッシュしないようにした
  • プラグインロード関連処理の修正
0.2.1のバグフィックスです。特定のツイートを受信するとクラッシュする問題がありました。TLにツイートが表示される間はクラッシュし続けるので良くないです。アップデートしましょう。
0.2.2ではそういう時はクラッシュする代わりにへんな画像を表示してお茶を濁そうとします。ことなかれ主義っぽくて日本的で良いと思います。

0.2.2のバグ修正殆ど無いですね。特に問題がなければこの土日で0.2.2を正式にリリースします。ていうかまだやってなかったのかよっていう。幾つかすごい細かいことが気になっている部分があるので、リリースまでに直すかもしれません。次期バージョン(0.2.3 or 0.3)についてもそのうち書きます。