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 やから nkf で UTF-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 しかまともに使ってないからもっと軽量なフレームワークで組めるはず。組むべき。