blogに引っ越しました。2013(http://www.adventar.org/calendars/120)三日目です。今年ももうこんな時期ですか。今年を振り返るのはもう一月先にするとして、今回のネタは、mikutterマルチサービスの話です。0.2.2ではご存知の通り1アカウントしかサポートされてません。!0.3ではなんと、複数のサービス・複数のアカウントを同時に扱えるのです!複数のサービスとは複数アカウントはわかると思うんですが、複数サービスとはなんでしょうか。ここでいうサービスというのは、例えばTwitterのようなものです。SNSのほかに、メールやIRCも、ここでいう「サービス」の範疇です。!遂にmikutterは、Twitterクライアントから、「SNSクライアント」いや、「コミュニケーション・プラットフォーム・クライアント」になったと言っても過言ではありません!これは革命です。イマドキのSNSとはいえですよ、何に対応するかが肝心です(例えばmikutterがWassrクライアントだったらどうなっていたか)。0.3では、任意のサービスをプラグインで提供できます!フゥフゥ!というわけで、今回は、今年リリースされて既に100万人のユーザが居るSNS、「艦隊これくしょん」のアカウントをmikutterに登録して使ってみましょう!艦これとは?さて、私は艦これを遊んだことがないのですが、仮にもIT系エンジニアとして活動しているので、そこら辺の艦これプレイヤーより艦これには詳しいです(同業者との飲み会でこれを知らないと仕事が取れません)。私も艦これ博士ではありますが未プレイには変わりないので、知らないみんなも安心してください。艦これはあくまで「マルチサービス」のための例として出すだけなので、あんまり深く説明しません。興味を持ったら遊んでみましょう。艦これは厳密にはソーシャルゲームという類のサービスです。ソーシャルゲームとはゲームのなかでも「ガチャ」という機能ないしそれに類する機能でモンスター(艦これの場合は船)が手に入るゲームのことで、一応名前にソーシャルと入っているから後付けでSNSみたいな要素も入っています。艦これの場合は、Twitterでみんながわいわいしているのがそれだと言う人もいますが、どうなんでしょう?...つまりmikutterに要求されるのは、Twitterで艦これワイワイしやすくするための機能です。艦これは多くのソーシャルゲームと違って、サーフェイスと呼ばれる専用のゲーム機でプレイしますが、FLASH版はLinuxでも遊べます※。FLASHが再生できたら艦これはプレイできるということになります。※サーフェイスでも内部的にはFLASHを使用しているみたいです作ってみるでは実際に作ってみましょう。テンプレートはお決まりですね。webkit-gtk2で、ブラウザを埋め込めばいいんだ!えいや!簡単にWebkitでブラウザが表示できました。RubyGTK最高!まさに、早きこと島風のごとし、ですね!ああ、早きこと島風のごとしというのは艦これ用語でしてね、とりあえず速い!という意味です。うおーこの船はやきこと島風のごとしー!みたいな感じで使います。以後、艦これ用語をいくつか使いますが、いちいち説明はしません。皆さんも一緒に勉強しましょう。...と、話は逸れましたが、もうここまでくれば実質暁の水平線に勝利を刻んだも同然ですね。細かい作りこみをやりましょう。見た目を良くするLinux界隈のプログラマの悪い癖は、見た目とUXをわきまえず、UIを質素にしてしまいがちなところです。質素なUIは、マシンにかける負荷が低い傾向にあるとか、深く考えなくても一定のユーザビリティを担保できるとかメリットもあるのですが、GUI面倒だとか、そういうネガティブな理由で手抜きをするのは良くないです。いうプラグインのアイコンはしっかりきめておきましょう。アイコンは文字と違って読めばわかるというものではありません。ここでは難しいUIの理論までは言及しませんが、一般的には誰でも経験的に知ってるものにしておくと混乱が無いです(フロッピーとかぐるぐる矢印など)。艦これプラグインの場合、艦隊のアイドルと言われている那珂ちゃんをアイコンにしました。那珂ちゃんは車の展示会みたいなところにいる女と同じようなもので、通には嫌われており「解体」されるのですが、大抵の人は船より女のほうが好きですから人気です。艦これプレイヤーには、艦これTLがあると便利だと思います。プラグインはUIがいろいろといじれてとてもいいですね。いうのもイベントやフィルタを使って島風のごとしですから、も〜っとmikutterに頼っていいですよ。今、世界が「艦隊これくしょん」を必要としています。mikutterも転換期を迎えたと感じます。mikutterフレームワークは、自然にこの変化を受け入れることができました。最初からそう設計されていたかのように。人々はTwitterと艦これの自然な融合を望んでいます。13.10を島風のごとくリリースしました。calendarの記事)。WindowsかMacか、という時代は既に轟沈しつつあり、サーフェイスかmikutterか、という時代はもうそこまで来ている!すでのなしかし、冷静にmikutterの現状を見ると、そのようなベンダーの期待は過分であると言わざるを得ないのが現状です。最初のスクリーンショットを見てください。艦これの表示域があまりにも細いです。「ペイン」を全て同じ大きさで扱うことが原因です。mikutterで本当に快適な艦これライフを送るには、mikutterがウィンドウマネージャになる必要があることを示唆しています。使ってみるgithubで公開しています。艦これのアカウントはなくてもいいですが(俺は持ってない)、あったほうがいいと思います。0.2.2.1430で動作確認しています。https://github.com/toshia/mikutter-kancolleまとめ明日から年末までまた忙しいからこんなことをしている場合ではない。0.2.2.1430UserStreamに於いて、ツイートや通知が一部または全て欠落する問題UserStreamで受信するツイートが極端に遅れる問題ちょっとTwitter側の挙動が変わったのでちゃちゃっと対応です。何も問題起きてないと思ってる人でも、気づいてないだけで遅延や部分欠落が発生している可能性が有ります。UserStreamがつながらない(ツイート受信が遅い)とツイートしている人がいましたが、このアップデートで改善します。@penguin2716)会話スレッドに、過去のツイートを遡れないことがある問題リスト操作時にまれにクラッシュする問題ピコーン!実績解除!「一ヶ月mikutterのリリースを提供しない」!!!今月はいろいろありましたね。Ubuntuに正式に取り込まれたのでaptで入るとか。特定のディストリひいきしたくないので黙ってようと思ったんですが、最近のUbuntuはやっぱり無視できないです。Debianのおかげなのですが。他のディストリでもかなりアップデートこまめにやってもらってるので有難いです。Twitter側の不具合とかでクライアントが仕様変更とか最近は減ったけど、あるし。先日会社の掃除をしていたら、階段で足を思いっきりぶつけましてね。尋常じゃなく痛かったけどそのまま仕事してたら結構内出血してて歩けないほど痛くなってきたんです。慌てて翌朝病院に行ったら骨とかは大丈夫だったんだけど、レントゲンの映像とか見せてくれたりするソフトがとてもかっこよかったです。足の骨の写真とか表示しておいたらUX上がると思いました。mikutterの薄い本製作委員会がコミックマーケット85に当選したようです。http://home1.tigers-net.com/brsywe/mikutter/C85.html今回は夏に比べたら仕事と金に余裕があるので、是非行きたいですね。この値段でこのブログに書いてあるような秀逸な文章を読むことができるのはすごいと思います。皆さんもコミケに行って、年末年始は恋人と二人でmikutterの薄い本を読みながら過ごすんでしょうか。俺はポケモンやってると思います。requirementsに従っているから、アイコン上にボタンなんて表示されませんよ?Activityタブで取得できるツイートのパーマリンクのリンク先を変更Activityのアイコンを作った生存報告です。Ruby思い出してきました。監禁されてiPhoneアプリ作っていたせいで、文字列連結するのに「"foo".stringByAppendingString:"bar"」みたいなコード書いてRubyインタプリタに怒られていたのも今月頭までの話です。一文字だけだと補完働くまでもないです。公式サイトではクッキー焼いてます。投下時間ミスってあまりPV稼げませんでしたが。それはいいんですが、報酬として絵師にフルHDの画面買ってやったら、mikutter横に表示して作業効率めっちゃ落ちてたようです。mikutter、やめたほうがよさそうですね。いやしかし、仕事はこのままでは来年3月までこの状態っぽいので、いろいろと厳しいですね。あなたの恋愛事情よりはマシなだけよかったと思いましょうか。一方で、0.3のほうの進捗はまあまあです。あなたのレポートよりは進んでいると思います。developと、某闇のブランチがpushしてありますね。個人的にはさっさとリリースしてしまいたいんですけれどね。タブの順序の問題とかも、設計を変えて対応することになったので、0.3からの提供になってしまいますし。0.2.2.1328リストをmikutter以外から削除した時に、リストのタブが消せずに残り続けてしまう問題0.2.2.1318から、とある大人気サードパーティプラグインが無い環境で(失笑)確実にクラッシュコミケお疲れ様です!俺は仕事をしていたおかげで熱中症になることもないかと思ったら、会社が暑くて軽く熱中症になり、コミケ気分を味わうことが出来ました。@eagletmt)いくつか安定性に関係する不具合を修正しました。あと、実績のヒントが表示されてなかったので、鳥が画面を占領してしまっていたようですね。アクティビティはあんまりみんな見ないからこれは痛かった。バルスベンチマーク先日ラピュタが放映されたのでバグを残したままさっさと帰ってラピュタを見ていました。Twitterのトラフィックは前回より圧倒的に増えたようですね。手元のmikutterも一応耐えましたが、数が増えたこと、ふぁぼに最適化しすぎたことが原因で、去年よりも危なっかしい感じでした。今年はラピュタ放送中のUserStreamのデータをすべて取っていたので、高速化のためのベンチマークに利用できるといいですね。デーモンモード便利です。0.3からは、プラグインを別の自然言語に対応することができるようになりました(以下、このエントリでは自然言語を「言語」と略します)。あるテキストのある言語訳を用意しておけば、日本語がわからない人でも設定が見やすくなったりします。mikutterの設定は、英語圏の人とかには私達が韓国語とか群馬語を見た時のような絶望感を与えているのでしょうから、思いやりがあるならやったら徳が上がるとおもいます。メソッドで囲ってください。これはプラグインのメソッドです。RubyのKernelにはエクスポートしてないので気をつけてください。メソッドを使いたい場合は、「Plugin[:slug]._」とかしたらいいんじゃないでしょうか。これにはRuby-Gettextというパッケージを使っています。他のメソッドについて知りたい場合は、以下のWebページを参考にするか、先生に聞きましょう。いうプラグインが担当しています。入れておかなければいけません。gtkプラグインのspecファイルは以下のようになっています。次に翻訳ファイルのテンプレートを生成します。以下のようなコマンドを実行しましょう。いうディレクトリが生成され、「プラグインスラッグ.pot」というファイルが生成されます。ファイルを生成します。ここでは英語にしてみましょう。翻訳したいプラグインのルートに移動して、以下のコマンドを実行します。po/en/プラグインスラッグ.po英語の言語ファイルが出来ました。ファイルは専用のエディタがたくさん有ります。編集方法はここでは省きます。ファイルは、そのプラグインにのみ影響を及ぼします。同じ文字列に対して別のプラグインで別々の訳を設定していても問題ありませんし、お互いが干渉することはありません。うまいかんじに翻訳されていたら成功です。以下を参考にしてみましょう。くだらないサンプルが入っています。あとは、poをコミットしておけば、その言語の話者がpullしたあとはいい感じに翻訳されるでしょう。potは入れる必要は無いでしょう。poファイルがここのmoファイルより新しいか存在しない場合に自動生成されるので、配布するプラグインに添付する必要はありません。標準プラグインも全く同じ方法で翻訳します。もとの言語ソースコードに書く翻訳元のキーは、通常は英語ですが、標準プラグインでは日本語を採用しています。理由は私が日本人だからです。あなたの母語が日本語でないなら、配布するプラグインが日本語をベースにしないことを私は止めません。あらゆるドキュメントを難読化し、10年以上に渡って私を苦しめ続けている英語を私が許す日は来ないでしょう。彼らも私達と同じ人間なのですから、同じ苦しみを共有したいんです。やってみんなで一緒に苦しみましょう。