uim-mozc 周りのインストールで躓いた

Arch Linux での日本語入力には uim-mozc を常用。 さっき久々に yaourt -Syu して再起動したら日本語入力できやんくなっとった。 とりあえず uim-mozc と uim を再インストールしてみることにした。

uimの再インストールは問題なかったけど、yaourt -S uim-mozc で uim-mozc をインストールし直そうとしたら、ビルド段階で

"/etc/profile.d/qt4.sh" が見つかりません

みたいなこと言われた。 別の AUR パッケージのコメントによると、最新バージョン (qt4 4.8.4-16) では qt4.sh が廃止されたらしい(上から2つめのコメント)。

PKGBUILD を編集したら何とかなりそうやけど、よくわからんのでネットから qt4.sh を落としてきた。"qt4.sh" でググった一発目のをそのまま /etc/profile.d/ に突っ込めばOK。slackware やけどキニシナイ。↓

http://mirrors.slackware.com/slackware/slackware_source/l/qt/profile.d/qt4.sh

これでビルドが通る、はず。


はず、というのも上のやり取りの中で mozc-ut モジュールの存在を知ったので、最後はそっちで入れた。

  • yaourt -S mozc-utで、PKGBUILD の _uim-mozc= 行をコメントアウトする。
  • 終わったら画面の指示通り sudo uim-module-manager --register mozc して再起動すれば日本語入力できるようになる。

Input Japanese using uim (日本語) - ArchWiki 参照

ArchWiki はやはり痒いところに手が届く。

2ch を JSON に変換するサーバ作った

2ch のデータをパースして JSON に変換する API サーバ 2son を作った。 http://twoson.herokuapp.com/

Heroku 便利

できること

  • 以下のデータを JSON に変換できる
    • 板一覧 (bbstable)
    • スレッド一覧 (subject)
    • スレッド (thread)
      • dat 落ちスレッドにも対応
  • コールバック関数を指定すれば、JSONP を取得することもできる。

仕様

トップページで API の呼び方、返ってきた JSON の書式を説明してある。 http://twoson.herokuapp.com/

いろいろ

Ruby 1.9.3 で開発。Ruby の勉強がてら組んでみた。

データ取得

ブラウザで表示する形式、つまり read.cgi を通してスレッドを取得するのはサーバーに負荷がかかるし、またパースするもの面倒やからよろしくない。したがって、データが欲しい時場合スレッド一覧は subject.txt、スレッドは dat ファイルを直接読みに行くのが推奨される。これらのファイルは1行1(スレッド | レス)で、デリミタは <> になっとってパースもしやすい。このへんは開発資料で詳しく解説してある。

また、通信量低減のためにレスポンスは gzip でもらう。リクエストヘッダに

"Accept-Encoding": "gzip"

を付与する。もちろんもらった後は解凍処理が必要。

あと、データのエンコーディングは Shift-JIS やから nkfUTF-8 に変えると良い。必要なら。

Flash "UNIX" の元ネタになった閉鎖騒動で gzip 圧縮が実装されたらしい

dat 落ちスレッドの dat 取得

みみずん検索からダウンロードするようにしてある。下の URL で dat 落ちスレッドの dat も取得できる。

http://mimizun.com/log/2ch/#{板名}/#{スレッド番号}.dat 

dat 落ちスレッドかどうかは、まず通常の dat を取りに行ってステータスコード 200 が返ってくるかどうかで判定しとる。dat 落ちなら 203 が返される(はず)。

Todo

  • テストをかく
  • キャッシュ実装

ソースコード

github に上げてある。 dtan4/2son

とりあえず Rails で組んだけど、MVC の C しかまともに使ってないからもっと軽量なフレームワークで組めるはず。組むべき。

参考