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

2012年1月30日月曜日

#mikutter 0.0.4, 0.1 rev.658


  • 0.0.4
    • Twitpicの仕様変更に対応。画像が開けるようになった
  • 0.1
    • openimgプラグインで画像を開く時にクラッシュすることがあった
    • 既存のTwitter APIライブラリを削除。mikutter用に作成した新しいライブラリを採用
    • Deferred.rb
    • Twitter APIリクエストキャッシュのとり方の変更
    • バグレポートの報告方法の変更。今後はクラッシュした時にしかレポートを送信しません
とりあえず0.1でやりたいことはあとはアクティビティ機能だけになったか…。ついにmikutterのバージョンが1桁上がる時が来るわけです

今回は、まだ新Twitter APIライブラリの実装中です。未実装の機能を使用するような操作をするとクラッシュします。フォロー・リムーブ、リスト追加・削除・変更、検索の保存・削除など、頻繁に使われない様なPOST系APIは軒並み未実装です。trunkをstableだと思ってる情弱がフッフゥします。

最近まともなドキュメントを書いたお陰なのか、mikutterプラグインを書いてくれる人が増えた、ような…。俺もいろいろ書きたくなってるけど、mikutter wikiを先に準備します。基本的な内容は
  • インストール方法
  • 使いかた(一応)
  • mikutter plugin
で、言うまでもなく3つ目がメインです。プラグインを作ったら必ず作者がここに自分のプラグインについて書くみたいなふうにすれば、みんなが幸せになるんじゃないかな。とりあえず適当にwiki置いてあれするのでまたその時に詳しいことを。

2012年1月17日火曜日

mikutter の薄い本

先日15日にインテックス大阪で開催されたこみトレ19で、「mikutterの薄い本 vol.1」を頒布しました。今回のプロジェクトを企画(だけしてておくれた)し無事成功まで導いてくれた @brsywe、記事を書いてくれた@katsyoshi、サポートしてくれた方々、当日来てくださった皆さん、ありがとうございました!
宣伝もほとんどしていなかったので、どれくらい捌けるかなぁと心配していましたが、まぁまぁ消化できました。

以下、@toshi_aの個人的なまとめです。

発端

最初は、たかがTwitterクライアント、しかもこんなに小規模なもので同人誌を出すなんてまた下手くそな冗談を…と思ってましたが、恐ろしいことにマジで応募していたらしく、当日用事を早く切り上げて会場にかけつけたらまじでブースがあって肝が冷えました。

参加した魂胆

つまり俺の知らない所で勝手に始まっててあとから乗っかりました。とはいってもmikutterと言われたから乗っかるほど尻軽じゃないです。
少しこのブログにも書いた覚えがあるけど、ぼちぼちプラグインチュートリアルみたいなものが必要なんじゃないかと思ってました。ただ書く機会がない。そんなところに、丁度同人誌を作っているという話を聞きつけて、ならばこれにプラグインチュートリアルを寄稿して、それを叩き台に正式なオンラインマニュアルを作ってはどうか、と思って参加したわけです。
結果、「Writing mikutter plugin」が出来上がり、本の1コーナーを飾ることもできて、プラグインを書きたいという人に差し出せるドキュメントも一応できました(もちろん、これからもっと内容を充実させていく必要があるので、リンク先はちょくちょく更新する予定です)。
このチュートリアルは、各セクションごとに実用的な例から少しづつ新しいことを学べるように作られています。逆引きリファレンスみたいに使うこともできるようにしたつもりです。mikutterプラグインを作りたい人にも、既にmikutterプラグインを作ってる人にも役に立つ内容になっていると思います。
こんなこと書いて欲しいとかあったらどんどん@toshi_aに教えてください。割とやると思います。



本やWriting mikutter pluginについて、見かけた疑問と回答を書いておきます。


  • 内容がておくれてない
    →ディレクターがておくれていました。内容自体は真面目です。一部を除いて。
  • 下線を引くところがおかしい
    →なんでこの疑問が俺からしか上がってないのかが不思議です。
  • mikutterの薄い本とかこわい
    →まじでやられた俺の気持ちがわかるのか
  • フォロイー(followee)ってなに
    →自分がフォローしている人のことです。対義語は自分をフォローしている人を差すフォロワー(follower)。
  • 意外と真面目だった
    →誤解があったようだね
  • ○○はどうして載ってないの?こういうのがあればよかったのに。
    →ツイートは削除できても、うちのマシンのテキストファイルは消せないよ


オンライン版

@brsyweが、以下のURLでPDFを公開しています。興味がある方はどうぞ。
http://home1.tigers-net.com/brsywe/mikutter.html

まとめ

冒頭で、mikutterごときがと書きましたが、そもそも本を出していいソフトウェアの最小規模なんてものは存在していなくて、イベントに行けば規模にかかわらず割と居るものです。反省点もいろいろありましたが、今回はそのお陰でマニュアルもかけたわけで、やってよかったです。こういった機会を与えてもらえてとても感謝しています。

早速三年目のはじめから新しいことができました。今年一年もいろいろやっていきたいですね。

2012年1月15日日曜日

#mikutter 0.0.4, 0.1 rev.642


  • 0.0.4
    • Twitter APIのレスポンスコードが401だった場合の挙動の変更
  • 0.1
    • 画像プレビュー機能でクラッシュする場合があった
そういえば、trunkのほう(0.1)を使ってる人は、アイコンのキャッシュの置き場が ~/.mikutter/icon から、 ~/.mikutter/cache/icon に変更されました。前者のディレクトリは今のところ自動削除されないので(削除するようにしようかなぁどうしようかなぁ)、気になる人は消しましょうこんなこと言わなければ気にならなかっただろうけどな

RubyGtk 1.1 がリリースされましたね。バグとメモリリークの修正がメインということで、確かにmikutterでも長い間計測すれば効果があるように見受けられます。よかったですね。今は個人的にはダークマターをあれするのがあれなのであれですねどね

2012年1月10日火曜日

#mikutter 0.0.4, 0.1 rev.638


  • 0.0.4
    • メモリリーク改善
  • 0.1
    • アイコン関連・画像プレビュー関連でクラッシュする問題を幾つか修正
年末にポチった加湿器とミクのフィギュアが届きました。
かわいいですね(訳:特に言うことがない)

2012年1月3日火曜日

#mikutter 0.1 rev.628


  • アイコンのキャッシュの持ち方を変更
    あんまりTLに出てこない人はファイルにキャッシュしないようにしました。また、前回のスナップショットにあったいくつかのバグが修正されています。
    • コネクション数を削減
      この変更で、低速回線・不安定な回線での動作が改善されます。
    • 画像プレビュー機能の画像サイズがうまく変更されないバグ
  • あけましておめでとうございます
あまり変更がないのは正月だからだと思った?残念!いままでどおりでした!

ヾ(@⌒ー⌒@)ノ

年末は実はずっとダークマターと戦ってました。6割くらいHP削りました。でもあと変身を何回残しているかはわかりません。年始は酒を飲んでました。今も飲んでます。
もうご挨拶は元日にしたけど、ことよろおねがいします。

2012年1月1日日曜日

mikutter 二年目

あけましておめがいします。

(以下、2011年の年末に書いていた文章なので、ここでいう「今年」は2011年のことで す。)

一昨年の12月25日にmikutterが書き始められました。去年もいろ いろ振り返っていたので、今年も振り返ってみましょう。

1 Twitterに起こったこと

1.1 機能追加

Twitterには今年もいろいろな機能が追加されました。今年追加変更された 機能の中で、特にmikutterにとって重要だったのは、だいたいこんなところ かな(mikutterにとって割りとどうでもいいことは書いてません。あと忘れ てるのありそう、わりとどうでもいいこととか)。

1.1.1 エンティティ

ツイートにscreen_name、ハッシュタグ、URLが入っていると、その情報が JSONオブジェクトで返ってくるようになりました。内部的な話なんだけど、 これが今思えば短縮URLやマルチメディア投稿機能の伏線だったわけか。

1.1.2 短縮URL

全部のURLがt.coで短縮されてしまうようになったのは記憶に新しいです ね。最近では短縮URLでも多重に短縮してしまうので余計に話がややこし くなっています。
mikutterは、bit.lyだと字数が長すぎて多重短縮されてしまうからj.mpに 対応しましたが、すぐさま字数が関係なくなったので、現在長さの計算式 をいじる方向で考えています。

1.1.3 アクティビティ

8月くらいにアナウンスがあったかと思いますが、ようやく解禁されまし た。mikutterは現在、アクティビティ情報がリアルタイムに取得できる Streaming APIが出たらぜひ対応したいと思っていて、準備を進めていま す。

1.1.4 マルチバイト文字ハッシュタグ(日本語ハッシュタグ)

いつかあったけど誰にも使われなくて消えていったような…?と思ったん ですが、大喜利とかに利用されていて、今では毎日見かけますね。アニメ 実況とかにも使われているのを見ると、時代が変わったんだなぁと思いま す。
唐突に実装された機能ではありますが、mikutterは先にエンティティに対 応していたため、アップデートしなくても日本語ハッシュタグを識別する ことができていました。他のTwitterクライアントは日本語ハッシュタグ 対応のために緊急アップデートをしていたので、mikutterくらいしかエン ティティを使っていなかったことがわかりましたね。Twitter信用されて なさ杉ワロタ

1.1.5 マルチメディア投稿機能

ついにTwitterが画像を投稿する機能を自前で提供するようになりました。 いままではサードパーティのサービスにマルチメディアファイルをアップ ロードして、それに対するパーマリンクをツイートすることで、擬似的に 投稿していましたが、ツイートに画像を含めることができるようになった わけです。
これ、実はかなり画期的なことじゃないかと思うんですが、ユーザの使い 勝手的には特に変わってないし、未だにみんなTwitpicとか使ってるしで なんだかぱっとしませんね。ただ、Twitterを使うとアップロードが速い とか、自然に一個のサービスにまとめられるとか、利点はありますね。
iOSから気軽にアップできることも人気を後押ししていて、現在Twitter上 では一番使われている画像アップロードサービスにまでなったようです。

1.2 まわりのこと

Twitterの周りで起こったことを、Twitter視点、またmikutter視点で見て いきます。

1.2.1 震災

今年の3月11日にあった震災では、災害時の通信手段としてTwitterが見直 されました。マルチバイト文字ハッシュタグは、災害時の情報交換を円滑 にする意味も込めて実装したそうですまったくそんなつかいかたされてな いがなpgr。現在でも、震災に関連することを議論するのにTwitterが使われ ていることがあるようですね。
実はこのあたりの時期は、私はデスマ中で、家には全然いなかったので、 mikutterがどの程度役に立てたかはよくわかっていません。ただ、 UserStreamの流速が尋常じゃないことになっていたのは記憶しています。 東京電力の電力使用量をmikutter_botに喋らせるプラグインとか書いたの をなんとなく覚えています。使った人いたんだろうか。

1.2.2 UserStream

昨年末に実装されたUserStreamが漸くこの1年で当たり前のものになって 来ました。ツイート数も平均して増加傾向にあるようで、チャット的に使 う人が増えた印象です。またイベントが通知されるようになったから、 いままでよりもイベントが頻繁に発生するようになりました。個人的には、 いままでは毎年1600favづつくらいされていて、2011年のはじめには 4000favedくらいあったのですが、現在は28万favedくらいあって、今年は平年より17250%くらいfavedイベントが多く発生していたことがわかりました。
200倍くらいの情報をさばくTwitter本当にすごいですね。

2 mikutterに起こったこと

mikutterにも様々な機能が追加されました。といいたいところですが、今年 は去年適当にやりすぎた尻拭いをやっていた感が大きいですね。しかし、全 部ではありませんが、コードの掃除はかなり進んで、メンテナンスしやすく なったので良かったです。多分自分がもっと暇だったら1から書きなおすと か言ってたんじゃないでしょうか。

2.1 本体

実はmikutter本体がどれくらい進化したかというと、項目数はそれほど多 くないですね。最低限の機能は揃ったので華やかなコミットはそうそうな くなってきたということでもありますね。また、今年は個人的に割りと忙 しい一年だったので、単純にアクティビティが下がったということもあり ました。

2.1.1 タイムラインのレンダリング方法の変更

最初、mikutterを作成したときは、UIに妥協したくない(リストビューカッ コ悪いプークス)と思っていて、とりあえずこんなかんじだよね、とツイー トごとに適当にウィジェットをパッキングするプロトタイプを書きました。
悪いことに、これがずっと使い続けられることになってしまったのです。 それがボトルネックになっているのは火を見るより明らかで、レンダリン グを妥協せずにどうやったら十分高速に動くのか、模索していました。
紆余曲折を経て、5月にリストビューとcairoを使って、リストビューの高 速性とcairoの自由度両方を兼ね備えたレンダリング方法を採用し、20倍 程度の高速化を実現することが出来ました。非効率なプロトタイプからで 20倍なのに最近のブラウザさんとかどうやったら毎回あんなに早くなった というベンチマークを出せるんですかね(
ともあれ、この変更のおかげで、それまでのmikutterは大体100人もフォ ローしていると実用できませんでしたが、もっと増えても全く問題なく使 えるようになりました。
最近ではこの実装に関する深刻なバグはほぼ取れており、漸く普段使いが 出来るレベルになったと思います。

2.1.2 カスタマイズ性

拡張が更に自由になりました。例えば新しく実装された「mikutterコマン ド」は、プラグインが提供する機能を、コンテキストメニューやショート カットキーなどにユーザがマッピングすることができる機能です。 他にも、イベントフィルタの積極的な利用、タイムラインの中に任意の描 画領域を持つことが出来る機能など、カスタマイズ性はこの一年間で飛躍 的に上がりました。

2.2 ユーザ/コミュニティ

2.2.1 開発の協力者

パッチを送ってくれるとか、mikutterコアをハックしてくれる人がでてき ました。 また、プラグインもたくさんの人が書いてくれるようになりました。プラ グインをmikutter上から探してインストールできるmiku storeも計画中 で(止まってま)す。

2.2.2 いろんなディストリのパッケージになった

まだ開発版にも関わらず、様々なディストリビューションで、公式・非公 式のリポジトリにパッケージが用意されています。正直把握しきれていな いのですが、どれもmikutterを気に入ってくれた人がやってくれているこ とです。

2.2.3 ユーザがとても増えた

最近は、Windowsを使っている人でもmikutterを使用したいと言ってくれ ていることがあります。すべてを自分で用意すれば可能なんですけどね。 もともと、Linuxに良いTwitterクライアントがないことを理由に作り始め たmikutterです。実際にはアラばかり目立ちますが、Twitterクライアン トが飽和状態なWindowsのユーザが羨んでくれるというのは、なかなか嬉 しいことではないでしょうか。

3 今後

2012年はこうなる、みたいな。保証はしません

3.1 Twitter

アクティビティ機能は、一部でストーカー機能とか言われていますが、じ きに当たり前のものになってくるでしょう。mikutterにもこれは取り込ま れるでしょう。mikutterは、アクティビティ機能をフルに活用できるTLを 持った数少ないTwitterクライアントの一つではないかと思っています。も ちろんmikutterのUI自身にも手を入れる必要はあるでしょうが、、かつて 無いTwitter体験でもう一度私たちをごにょごにょしてくれることでしょう。

3.2 mikutter

いい加減、1.0ですかね。1.0にするためには、ダークマターをはじめとした 残り幾つかの難解なバグを取る、リリースまでにどうしても書きなおす必要 がある部分があるなど、いろいろと大変です。しかしバージョンなんて言っ た者勝ちなので、どこかいいタイミングでやってしまいます。ただの数字 ですから、上げても何も変わりませんしね。
また、依存しているライブラリのバグの影響を受けていましたが、最近では Ubuntuの環境で新しいRubyが漸く使えるようになり、環境自体にバグがある といったことは減って来ました。mikutter自体もRuby1.8のサポートは取り やめ、安定して動作するようになってきて、いよいよ1.0の時が来たような 気がしています。Ubuntu 12.04が楽しみですね

4 まとめ

2012年も亀進行でぼちぼち適当にやっていきたいです。よろしくお願いします。