2010年2月28日日曜日

Sphinx の Blogger 原稿用拡張を作ってみました

Bloggerの原稿をいちいち手で書くのが面倒だったので(特にリストとかpreとか)、Sphinxを使ってBloggerの原稿を書く拡張を作ってみることにしました。
参考にしたページはこちら。
http://sphinx.shibu.jp/


■サンプルとダウンロード

githubにアップしてみましたので、こちらからご利用いただけます。
http://github.com/akisute/sphinx_rst2blogger

実際に変換させてみたサンプルをこちらに用意してみました。
http://gist.github.com/317478


■設定

完全に私の個人使用向けになっているので、そのままではたぶん使いにくいと思います。まずはMakefileの以下の部分をご自身の環境に合わせて書き換えてください。
blogger:
$(SPHINXBUILD) -b blogger $(ALLSPHINXOPTS) $(BUILDDIR)/blogger
mate $(BUILDDIR)/blogger/draft.txt
@echo
@echo "Build finished. The draft pages are in $(BUILDDIR)/blogger."
今私は mate コマンドを使って結果をTextMateに表示するようにしていますが、これはTextMateがないと使えないので適当に消すなり pbcopy に書き直すなりすると幸せになれます。

また、Blogger側の以下の設定を有効にしてください。



■実際に使ってみる

使用方法はとっても簡単です。以下のコマンドをシェルから実行してください。
make blogger
make.batは全く操作していないのでWindowsの人はごめんなさい。たぶん使えません><

また、100%完璧な変換はできておらず、主にpreとかtitleの箇所で手動微調整が必要になります。まぁおおよそ上手くやってくれればいいや、という考えです。


■おまけ:Sphinxの拡張機能でカスタムのビルダーを作る方法

拡張機能の作り方自体は以下のページのやり方に沿えば楽勝です。
http://sphinx.shibu.jp/extensions.html
ですが、肝心のビルダーを作るのはかなり苦労しました。

ビルダーの作り方ですが、一から手で書くと挫折するので、もともとSphinxに付いているビルダーをまるごとコピーしてそれを修正するようにすると比較的楽でした。リファレンスとかドキュメントとかないので、ソース見て、 visit_hogehoge とか depart_hogehoge とか書いてあるところを適当に修正してみたら動いた、って感じです。 TextBuilder を元にすると書きやすかったです。 HTMLBuilder はdocutilの機能を拡張しているためdocutilがわからないとさっぱり分かりません。

Sphinx を用いて、 reST の文章を Blogger の原稿に変換する

改良版@2010/02/28 18:08

BPStudy #30 にてSphinx講座があったので、早速それを生かしてreSTでBlogger向けの原稿を作ってみることにします。


■見出しのテスト

Hello world!
foo bar
改行のテスト

段落のテスト

それではインラインマークアップのテストをしてみましょう。 強調強い強調code sample(): print sample 。いかがかな?

リンクのテスト リンクの末尾には必ず_を付ける必要があります。


■さらにもう一つ見出し
  • ul 1
  • ul 2
  • ul 3
    ul 3 continues
  1. ol 1
    1. ol 1-1
    2. ol 1-2
  2. ol 2
    ol 2 continues
    ol 2 continues again
  3. ol 3
番号リストの後に普通のパラグラフを入れてみるとどうなるか
定義リスト
定義リストをつくるにはインデントを頭に付けるなんか定義リストの作り方がおかしいって怒られた
どうすればいい?
しらんがな
どうするもこうするも
/** This is the pre message*/
def pre(self, message):
print 'this is the pre message'
だいたいうまくいっているようです。 okay fine.

Razor Orochi を Mac 用の無線ゲーミングマウスとして使ってみる



自宅のマウスを無線化したくなったので、Macでも左利きでも使える無線マウスを探してみたところ、 Razor Orochi という製品が見つかったので試してみることにしました。


■諸君 私はマウスが好きだ
「そもそもMacで無線マウスならMagic Mouseを使っておけばいいだろう」と皆様お考えであろうと思うのですが、残念ながら以下のような理由により私はMagic Mouseに満足できません。
  • Boot CampしたWindowsでの動作がイマイチ。基本的にMac専用。
  • ボタンがないためゲーミングで使用できない。右クリックすら怪しい。
  • 薄すぎ小さすぎて手に収まらない。
仕方がないのでその他の無線マウス製品を探してみたのですが、なんと以下の条件にマッチするマウスが世界中探しても一つもないのです!
  • 左利きなので、左右対称デザインであること
  • ゲーミングに使用するため、最低でも5ボタン付いていること
  • ゲーミングに使用するため、ホイールはクリック感があること(武器切り替えの時にクリック感のないホイールはまるで使えません)
  • 可能な限り大きく手のひらに収まるサイズであること、モバイルサイズはダメ
特に条件が厳しいのが「左右対称デザインであること」で、まぁ何処の会社も無線マウスは右手で持つものだと言わんばかりに大きく左にひねくれさせ放題ひねくれさせてくれやがりまして、まるで選択肢がないのです。あきらめかけていたときにようやく海外のサイトでこのRazor Orochiを見つけました。


■Razor Orochiって?
ゲーミング用製品で有名なRazor社の製作した世界初のBluetoothモバイルゲーミングマウスです。詳細はこちらのページをご覧になってください。

どうも日本国内では正式に流通していないようで、そもそも日本語版のRazor社の公式ページには名前すらありません。Razor社の通販ページから直接通販して買うしかありませんでした。送料込みで100ドルぐらいです。

おそらく日本国内でこんなへんぴなマウスをわざわざMacで使っているのは私ぐらいなものでしょう><


■設定してみる
最初に重要なことですが、Macだけで使用したいと思っていても、Razor Orochiの設定にはWindowsが絶対必須です。Mac版のドライバも用意されていますが、残念ながらMac版のドライバはOrochi本体のメモリに設定を書き込むことができず、またボタン配置を変更したりもできないため、全く役に立ちません。極めつけに有線モードでなければ設定できず、有線から無線に切り替えると設定がすべてリセットされるため、タダのお荷物です。USB Overdriveを代わりに使うことを強くお勧めいたします。

また、Razor Orochi ファームウェアの更新にもWindowsが必須です。ファームウェアの更新ですが、これが大変重要で、ファームウェアを更新しないとこのマウスはまるで役に立ちません。論より証拠、以下の図を見てください。



これはRazor Orochi farmware version 1.02の状態でお絵かきソフトで線を引いてみた図なのですが、見ての通り赤い線の部分がポインタ飛びを起こしています。高速で引いた線、水平垂直な線は比較的綺麗ですが、斜めにゆっくり動かすとすさまじい勢いでポインタが飛んで使い物になりません。farmware version 1.06にすると多少改善しますので、まず何はなくともファームウェアを更新する必要があります。

ということで、まずはWindowsを起動してファームウェアを更新し、それから設定を行います。私は左利きなので、サイドボタンの設定を変更する必要があります。初期設定では4,5が戻る/進むになっていますが、これを6,7と入れ替えてやります。こうすることで、左手の親指でマウスボタン4,5が押せるようになります。右利きの方はそのままの設定で十分使えると思います。


■使ってみる
良い点はきちんと5ボタン使える左右対称デザインで、しかもモバイルサイズながら十分な大きさがあり、手にフィットするところです。小指がマウスに乗っからないので若干小さいですが、この程度なら十分使えます。重さは結構ありますがすぐ慣れました。精度も、大きくマウスを振り回し続けている間は非常に良いです。Microsoft IntelliMouse Opticalとほとんど変わりません。

悪い点はなんと言ってもポインタが飛びます。このRazor 3G レーザーセンサー、低速時の挙動が最悪です。steelseries 4HDをマウスパッドにしているからわざと相性悪くしているのかと思って別のマウスパッドを使ってみたり直接机で動かしたりしてみましたが、やっぱりダメです。ファームウェア1.06で多少良くなりますが、スナイパーの方や細かい線を書くお仕事の方には絶対にお勧めしません。このセンサーの問題は有線モードにしても解決しません。

それからもう一つ悪い点として、スリープ状態からの起き上がりが非常に遅いです。5秒休めておいてから急にマウスを動かすと最初の1ストロークが完全に無視されます。最悪です。Magic Mouseは起き上がりが非常に早いのでそんなものなのかと思って買ってみましたが、なるほどアレはAppleのMac専用チートだったわけですねorz


■まとめ
まだ無線マウスは使い物にならないというのが正直な感想です。以前、ゲーミングデバイスを開発してらっしゃるSteelSeries社の方に無線マウスは作らないのかと質問してみたのですが、そのときに得た答えが「まだ現在の技術では無線マウスは使い物にならない」というものでした。なるほど納得です。

しかしながら全く使えないのかというとそうでもなくて、線が無くなったおかげで確かに机が広く使えて助かってます。私が最近プレイしているHeroes of NewerthのようなRTSゲームや、DiabloみたいなRPGスタイルのゲームであれば、常にマウスを大きく動かすためほとんど問題のない操作感になります。

逆にスナイパースタイルのFPSをプレイするのには全く向きません。日常使いにもちょっと不満があります。たいていキーボードを触っているので、ちょっとマウスをさわりに行くと遅くてイラッ。