<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>blog.remora.cx</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/" />
    <link rel="self" type="application/atom+xml" href="http://blog.remora.cx/atom.xml" />
    <id>tag:blog.remora.cx,2010-02-25://4</id>
    <updated>2012-05-20T16:18:14Z</updated>
    <subtitle>日々勉強したこと＋映画の感想を書き留める日記。Perl,Python,Javascript,Movable Typeの話題が主です。</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/" version="5.12">Movable Type Pro</generator>
<entry>
    <title>iphone-socks-proxy で（疑似）テザリング</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2012/03/tethering-with-iphone-socks-proxy.html" />
    <id>tag:blog.remora.cx,2012://4.776</id>
    <published>2012-03-28T23:45:30Z</published>
    <updated>2012-05-20T16:18:14Z</updated>
    <summary>iProxy に対する不満 以前【iPhone + iProxy で（疑似）テザ...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="Mac" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="iPhone" scheme="http://www.sixapart.com/ns/types#category" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        ### iProxy に対する不満
以前[【iPhone + iProxy で（疑似）テザリング】][iphone-iproxy]にて iPhone で合法的にテザリングを行う方法を書きましたが、こいつには 2 つの不満がありました。
1. __SOCKS プロクシが使えない__
  [iProxy][iproxy] には SOCKS プロクシも実装されてるはずなのですが、現バージョンではなぜか使えません。
2. __アプリを起動していないと使えない__
  iProxy はアプリを全面で起動しているときでないとテザリングが使えませんでした。テザリングしている間、iPhone が完全に文鎮化してしまいます。
### iphone-socks-proxy
今回使った[【iphone-socks-proxy】][iphone-socks-proxy]はこれらの不満を解決してくれます。特に、バックグラウンドでも使えるのは非常に便利。iProxy は画面をロックするだけで使用不能になっていたのでエラい不便でした。
難点としては、名前の通り SOCKS 専用であり、HTTP プロクシが使えないこと。でもまあ、たいていのアプリは SOCKS プロクシに対応してるので問題ないでしょう。
[iphone-iproxy]: http://blog.remora.cx/2011/10/tethering-with-iphone-and-iproxy.html &quot;iPhone + iProxy で（疑似）テザリング - blog.remora.cx&quot;
[iproxy]: https://github.com/tcurdt/iProxy/wiki/ &quot;iProxy – since they charge extra for tethering · tcurdt/iProxy Wiki&quot;
[iphone-socks-proxy]: http://code.google.com/p/iphone-socks-proxy/ &quot;iphone-socks-proxy - SOCKS Proxy for iPhone - Google Project Hosting&quot;
        <![CDATA[### インストール
これは普通のアプリと一緒です。ソースコードをダウンロードして、Xcode を起動。
<script type="syntaxhighlighter" class="brush:bash;gutter:false"><![CDATA[
$ svn co https://iphone-socks-proxy.googlecode.com/svn/trunk/ iphone-socks-proxy
$ cd iphone-socks-proxy
$ open SOCKS.xcodeproj
]]&gt;</script>
あとは iPhone をつなげて Xcode でビルド & ラン。一度起動したら __Stop__ を押して終了し、iPhone を Mac から外しましょう。
### 起動
iPhone とテザリングする PC はアド・ホックモードで接続しておく必要があります。この辺は前回にも上げたリンク先で。
> Smart Hacks: iProxyでのiPhoneテザリングをさらに詳しく解説
> <http://www.smart-hacks.com/2011/05/iproxyiphone_18.html>
<a rel="lightbox" href="http://blog.remora.cx/2012/03/25/IMG_2073.png"><img alt="IMG_2073.png" src="http://blog.remora.cx/assets_c/2012/03/IMG_2073-thumb-240x360-618.png" width="240" height="360" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a>
早速アプリを起動。<br style="clear:both">
<a rel="lightbox" href="http://blog.remora.cx/2012/03/25/IMG_2075.png"><img alt="IMG_2075.png" src="http://blog.remora.cx/assets_c/2012/03/IMG_2075-thumb-240x360-620.png" width="240" height="360" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a>
__Start__ をタップすると、__address__ と __port__ が出てきます。コレをメモしておいて、他のアプリに設定します。<br style="clear:both">
<a rel="lightbox" href="http://blog.remora.cx/2012/03/25/120325-0003.png"><img alt="120325-0003.png" src="http://blog.remora.cx/assets_c/2012/03/120325-0003-thumb-240x223-622.png" width="240" height="223" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a>
右に上げたのは [Firefox][firefox] での例です。iProxy では HTTP サーバーしか使えなかったためメールクライアントが使えませんでしたが、iphone-socks-proxy では [Thunderbird][thunderbird] などの SOCKS に対応しているメールクライアントを使って、メールもそのまま読めるようになります。<br style="clear:both">
### 使用感
<a rel="lightbox" href="http://blog.remora.cx/2012/03/25/IMG_2076.png"><img alt="IMG_2076.png" src="http://blog.remora.cx/assets_c/2012/03/IMG_2076-thumb-240x360-624.png" width="240" height="360" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a>
ホームボタンを押してバックグラウンドで起動したままにすると、アイコンにバッジが付きます。iOS の制限により、ネットワークアクセスは__バックグラウンドにしてから 10 分__しか持続できません。<br style="clear:both">
<a rel="lightbox" href="http://blog.remora.cx/2012/03/25/IMG_2077.png"><img alt="IMG_2077.png" src="http://blog.remora.cx/assets_c/2012/03/IMG_2077-thumb-240x360-626.png" width="240" height="360" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a>
バッジの数字が消えるとアクセスできなくなってしまうため、その直前に通知が出ます。逆に言えば、この通知が来るまでは裏で別のアプリを使っていいわけです。この点が iProxy より優れています。<br style="clear:both">
### 通信速度
<script type="syntaxhighlighter" class="brush:plain;gutter:false"><![CDATA[
------ BNRスピードテスト (ダウンロード速度) ------
測定サイト： http://www.musen-lan.com/speed/ Ver5.2001
測定日時： 2012/03/25 14:08:41
回線/ISP/地域：
--------------------------------------------------
1.NTTPC(WebARENA)1： 7.32Mbps (914.63KB/sec)
2.NTTPC(WebARENA)2： 5.60Mbps (700.21KB/sec)
推定転送速度： 7.32Mbps (914.63KB/sec)
]]&gt;</script>
なんかものすごく速いです。iProxy どころか、__いつも使ってる WiMAX よりも速い__ってどういうこと……？ でもまあ、規制食らわないように利用はほどほどにしときましょう。
[firefox]: http://mozilla.jp/firefox/ "次世代ブラウザ Firefox — 高速・安全・カスタマイズ自在な無料ブラウザ"
[thunderbird]: http://mozilla.jp/thunderbird/ "無料メールソフト Thunderbird — Windows 7 対応メールソフトの決定版"
]]>
    </content>
</entry>
<entry>
    <title>「TIME/タイム」感想</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2012/03/in-time.html" />
    <id>tag:blog.remora.cx,2012://4.775</id>
    <published>2012-03-21T00:40:18Z</published>
    <updated>2012-05-20T19:06:27Z</updated>
    <summary> なんというかがっかり。「ガタカ」の監督だよ！「トゥルーマン・ショー」の脚本も書...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="映画" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="time" label="TIME" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="タイム" label="タイム" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="感想" label="感想" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="映画" label="映画" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[<iframe class="youtube-player"
    width="640" height="385"
    src="http://www.youtube.com/embed/JkSAbT0MmgY"
    frameborder="0"
></iframe>
なんというかがっかり。__[「ガタカ」][gattaca]の監督だよ！[「トゥルーマン・ショー」][trueman]の脚本も書いたんだよ！絶対おもしろいって！__と力説する知り合いにつられて見に行ったのだが、スタッフロールが終わった後、__ごめん。[「シャーロック・ホームズ」][sherlock]にすればよかったね……。__と謝られるほどのオチ。どうしてこうなった……。
もう公開から時間もたってるので以下はネタバレ全開で行きます。
[gattaca]: http://ja.wikipedia.org/wiki/%E3%82%AC%E3%82%BF%E3%82%AB "ガタカ - Wikipedia"
[trueman]: http://ja.wikipedia.org/wiki/%E3%83%88%E3%82%A5%E3%83%AB%E3%83%BC%E3%83%9E%E3%83%B3%E3%83%BB%E3%82%B7%E3%83%A7%E3%83%BC "トゥルーマン・ショー - Wikipedia"
[sherlock]: http://blog.remora.cx/2012/03/sherlock-holmes-a-game-of-shadows.html "「シャーロック・ホームズ シャドウ ゲーム」感想 - blog.remora.cx"
]]>
        ----
富裕層が__時間__を独占し、貧乏人は容赦なく死んでしまう社会。主人公は日銭ならぬ__時間__を稼いで文字通り命をつなぐ毎日であった。
って、ここからいきなり説得力ないんですよ！ なんでこれほど命の危険にあふれた生活を送ってるのに休憩時に珈琲を買う余裕がある？ 仕事帰りにバーに寄ったりする？ その金貯金しとけば母ちゃんだって助かったでしょ！
でもまあ、この辺は現実社会でもあることだ。__稼ぎも少ないのにカードで買い物しまくって自己破産__、なんてのはよくある話。これからは母ちゃんの不幸に学んで、賢く真っ当に生きたり、一流のテロリストとして社会を震撼させたりするんだね。
ところが、そこで主人公が選んだ__体制への反抗__というのが、__身代金誘拐__と__銀行強盗__なわけですよ。何それ？ スケール小さくない？ もっとこう、悪の本拠地に潜入して暴れまくるとか、金持ちを騙くらかして破産させるとか、そういう展開はないの？
そこで現れたのが父ちゃんの謎。監視官（この世界の警察）が思わせぶりに言うわけですよ。__「おまえの父の死因はそんなものではない」__おお！ キタコレ！ つまり、父ちゃんは体制の根幹に肉薄するような重大な機密をつかんでしまったので組織に消されたんですね！ そして主人公はその謎を解くために孤独な戦いを続けるんですね！ やっと本編始まるよ！
----
というワクワクのまま、結局最後まで本編は始まらずに映画が終わってしまった。ドウシテコウナッタ。
まじめに考察するならば、この映画は資本主義社会の限界と不公平について問いたかったのだろう。__お金（時間）の多寡が人生の善し悪しまで決めてしまうような社会では人は決して幸福になれない__、と。
でもその解決策が、__銀行強盗して金（時間）を貧乏人に分け与える__ってのはあんまりですよ……。地元の企業に投資して雇用を創出するとか、教育制度を充実させて住民の意識を改革するとか、あるいは正反対に、政治家を暗殺しまくるとかでもいい。銀行強盗程度で世の中がよくなるわけがないですよ。
設定はすばらしいのに、展開は尻すぼみ。非常にもったいない映画でした。なんだかむしゃくしゃするので、発売したばかりの__[「ミッション: 8 ミニッツ」][sourcecode]__でも見ることにしよう……。
[sourcecode]: http://blog.remora.cx/2011/11/source-code.html &quot;「ミッション : 8ミニッツ」感想（ネタバレあり） - blog.remora.cx&quot;
    </content>
</entry>
<entry>
    <title>【Vim】TweetVim で文字数を Powerline に載せる</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2012/03/tweetvim-on-powerline.html" />
    <id>tag:blog.remora.cx,2012://4.774</id>
    <published>2012-03-19T12:00:49Z</published>
    <updated>2012-05-20T19:37:51Z</updated>
    <summary>TweetVim でツイートするとき文字数をカウントしてくれるプラグイン for...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="Vim" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="git" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="powerline" label="powerline" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tweetvim" label="TweetVim" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="twitter" label="Twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vim" label="Vim" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="プラグイン" label="プラグイン" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[TweetVim でツイートするとき文字数をカウントしてくれるプラグイン for Powerline があります。
> vim-powerline に TweetVim の『入力可能文字数』を表示する - C++でゲームプログラミング
> <http://d.hatena.ne.jp/osyo-manga/20120201/1328022568>
<img alt="120319-0002.png" src="http://blog.remora.cx/2012/03/19/120319-0002.png" width="454" height="170" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" />
例の通り、残り文字数が表示されるので便利です。
このプラグインが Powerline 最新版で使えなかったので直してみました。（pull request 済）
> delphinus35/TweetVim-powerline-theme
> <https://github.com/delphinus35/TweetVim-powerline-theme>
[Powerline の develop ブランチ][powerline]をクローンして上書きした上で、`.vimrc` に次の設定を追加し、`:PowerlineClearCache` して再起動すると有効になります。
<script type="syntaxhighlighter" class="brush:vim;gutter:false;"><![CDATA[
let g:Powerline_theme='default_with_tweetvim'
let g:Powerline_colorscheme='default_with_tweetvim'
]]&gt;</script>
[powerline]: https://github.com/Lokaltog/vim-powerline "Lokaltog/vim-powerline"
]]>
    </content>
</entry>
<entry>
    <title>「シャーロック・ホームズ シャドウ ゲーム」感想</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2012/03/sherlock-holmes-a-game-of-shadows.html" />
    <id>tag:blog.remora.cx,2012://4.773</id>
    <published>2012-03-13T12:58:27Z</published>
    <updated>2012-05-20T20:19:55Z</updated>
    <summary> 待ってました！ 鬼才ガイ・リッチー監督によるシャーロック・ホームズ新章。前作は...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="映画" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="シャドウゲーム" label="シャドウゲーム" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="シャーロック・ホームズ" label="シャーロック・ホームズ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="感想" label="感想" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="映画" label="映画" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[<iframe class="youtube-player"
    width="640" height="385"
    src="http://www.youtube.com/embed/jR9yJ2S7p2Q"
    frameborder="0"
></iframe>
待ってました！ 鬼才__[ガイ・リッチー][guy_ritchie]__監督によるシャーロック・ホームズ新章。前作は今までのホームズ映画と全く違う描き方で賛否両論を巻き起こしながらもアカデミー賞その他を堂々受賞。__マドンナと連れ合って以来すっかり冷たくなってしまった__ガイ・リッチー監督の復活作となりました。
[guy_ritchie]: http://ja.wikipedia.org/wiki/%E3%82%AC%E3%82%A4%E3%83%BB%E3%83%AA%E3%83%83%E3%83%81%E3%83%BC "ガイ・リッチー - Wikipedia"
]]>
        <![CDATA[このシリーズの特徴はそのアクション。監督の出世作__「[スナッチ][snatch]」__以来の特徴である、ストップモーションと早送りを駆使したアクションシーンはさらにパワーアップ。
通常のホームズは人並み優れた頭脳で謎を解き、犯人を追い詰めますが、今作のホームズは独り敵地に潜入して大暴れ。“最強の敵”モリアーティ教授ともグーで殴り合う（未遂だけど）のだから恐れ入ります。
ロンドン市街しか描かれなかった前作と違い、今作はヨーロッパを股にかけてアクションが繰り広げられます。登場間もない（？）__マシンピストル__が出てきたり、__ガトリング砲__で撃ちまくられたり、__ライフル__での狙撃戦があったり、最後は__列車砲__が炸裂したり、最早なんの映画かわかんない。
原作をあまり知らない僕は純粋なアクション映画として楽しめましたが、ファンの中には不快感を示す人も多いようで……。でも今作も大ヒットしてるし、続編でもこの路線を継続するでしょう。
__ホモっぽい__としてよくネタに上がるワトソン役の__[ジュード・ロウ][jude_law]__ですが、今作でもホームズ役の__[ロバート・ダウニー・Jr][robert_dawney]__との<del>濃厚なホモシーン</del>__美しい友情__が描かれていてほほえましいです。
男性陣の印象が強いせいか女優がいまいち目立たないのも相変わらず。ジプシー（これは差別用語なのかな？）の女役を演じた__[ノオミ・ラパス][noomi_rapace]__は__「[エイリアン][alien]」__シリーズの最新作「プロメテウス」への主演が決定してるそうです。そっちに期待です。
[snatch]: http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%8A%E3%83%83%E3%83%81 "スナッチ - Wikipedia"
[jude_law]: http://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%89%E3%83%BB%E3%83%AD%E3%82%A6 "ジュード・ロウ - Wikipedia"
[robert_dawney]: http://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%90%E3%83%BC%E3%83%88%E3%83%BB%E3%83%80%E3%82%A6%E3%83%8B%E3%83%BC%E3%83%BBJr "ロバート・ダウニー・Jr - Wikipedia"
[noomi_rapace]: http://ja.wikipedia.org/wiki/%E3%83%8E%E3%82%AA%E3%83%9F%E3%83%BB%E3%83%A9%E3%83%91%E3%82%B9 "ノオミ・ラパス - Wikipedia"
[alien]: http://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%83%B3_(%E6%98%A0%E7%94%BB) "エイリアン (映画) - Wikipedia"
]]>
    </content>
</entry>
<entry>
    <title>【Vim】errormarker.vim + Project::Libs で構文チェック</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2012/02/errormarker-and-project-libs.html" />
    <id>tag:blog.remora.cx,2012://4.772</id>
    <published>2012-02-26T02:37:56Z</published>
    <updated>2012-05-20T19:45:21Z</updated>
    <summary>errormarker.vim を使うとコンパイル（Perl なら構文チェック）...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="Vim" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="errormarker" label="errormarker" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="projectlibs" label="Project::Libs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vim" label="vim" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="プラグイン" label="プラグイン" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[[errormarker.vim][errormarker] を使うとコンパイル（Perl なら構文チェック）時のエラーを目立たせてくれるので便利だ。設定方法は以下のリンクを参照。
> ErrorMarker.vimでプロジェクトのlibディレクトリを自動的に@INCに追加する - Cside::Tech
> <http://d.hatena.ne.jp/Cside/20111226/p1>
> errormarker.vim を使って flymake っぽくするやつを試してみた - ◆F99a.q8oVEの日記
> <http://d.hatena.ne.jp/f99aq/20080814/1218783740>
で、設定してみたのだがうまくいかない…… `help compiler` などで調べてみると、__`b:current_compiler`__ という変数が鍵だった。最終的な設定はこんな感じ。
<script type="syntaxhighlighter" class="brush:vim;highlight:[1]" title=".vim/ftplugin/perl.vim"><![CDATA[
let b:current_compiler='perl'
setl mp=$HOME/.vim/vimparse.pl\ -c\ %\ $*
if !exists('g:perl_flyquickfixmake')
    let g:perl_flyquickfixmake = 1
    au BufWritePost *.pm,*.pl,*.t silent make
endif
]]&gt;</script>
1 行目がないとせっかくの errormarker.vim が働かないのでした。なんでだろう？
[errormarker]: http://www.vim.org/scripts/script.php?script_id=1861 "errormarker.vim - Highlights and sets error markers for lines with compile errors : vim online"
]]>
    </content>
</entry>
<entry>
    <title>【Vim】Powerline 本家に文字コード表示機能がマージされました</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2012/01/vim-powerline-updated.html" />
    <id>tag:blog.remora.cx,2012://4.771</id>
    <published>2012-01-29T03:36:40Z</published>
    <updated>2012-05-20T19:39:24Z</updated>
    <summary>   Lokaltog/vim-powerline - GitHub  http...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="Vim" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="git" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="git" label="git" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="powerline" label="powerline" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vim" label="vim" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[> Lokaltog/vim-powerline - GitHub
> <https://github.com/Lokaltog/vim-powerline>
オー。昨日の今日でもうコードがうｐされてる。しかも僕が書いたものより遙かにスマートです（当たり前ですが）。最新版での表示はこんな感じ。
<a rel="lightbox" href="http://blog.remora.cx/2012/01/29/2012-01-29_121730.png"><img alt="2012-01-29_121730.png" src="http://blog.remora.cx/assets_c/2012/01/2012-01-29_121730-thumb-480x158-612.png" width="480" height="158" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
ただ、デフォルトではこの表示は ON になっていません。テーマファイルを次のように書き換えてください。
]]>
        <![CDATA[<script type="syntaxhighlighter" class="brush:diff;gutter:false;" title="Powerline に charcode を追加"><![CDATA[
diff --git a/autoload/Powerline/Themes/distinguished.vim b/autoload/Powerline/Themes/distinguished.vim
index 6bb479e..786bb46 100644
--- a/autoload/Powerline/Themes/distinguished.vim
+++ b/autoload/Powerline/Themes/distinguished.vim
@@ -7,6 +7,7 @@ let g:Powerline#Themes#distinguished#theme = Pl#Theme#Create(
                \ , Pl#Segment#Truncate()
                \ , 'cfi:current_function'
                \ , Pl#Segment#Split()
+               \ , 'charcode'
                \ , 'fileformat'
                \ , 'fileencoding'
                \ , 'filetype'
]]&gt;</script>
<img alt="2012-01-29_121730_mod.png" src="http://blog.remora.cx/2012/01/29/2012-01-29_121730_mod.png" width="261" height="188" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" />
このファイルに書くテンプレート（このプラグインでは __Segment__ と呼ばれています。）を挿入すると、Powerline の見た目が変わります。
上に挙げたスクリーンショットではカラム表示をちょっと変えて多バイト文字に対応させています。このような表示にしたいときは __`Segment.vim`__ をいじります。まあ、標準の `statusline` に使えるものと一緒なんだけどね。
<br style="clear:both;">
<script type="syntaxhighlighter" class="brush:diff;gutter:false;" title="画面上の桁数と一致させる"><![CDATA[
diff --git a/autoload/Powerline/Segments.vim b/autoload/Powerline/Segments.vim
index 9a55c06..e078d3e 100644
--- a/autoload/Powerline/Segments.vim
+++ b/autoload/Powerline/Segments.vim
@@ -20,7 +20,7 @@ let g:Powerline#Segments#segments = Pl#Segment#Init(
        \ Pl#Segment#Create('scrollpercent'   , '%3p%%'),
        \ Pl#Segment#Create('lineinfo',
                \ Pl#Segment#Create('line.cur'    , '$LINE %3l'),
-               \ Pl#Segment#Create('line.tot'    , '$COL %-2c'),
+               \ Pl#Segment#Create('line.tot'    , '$COL %-2c%V'),
        \ ),
        \ Pl#Segment#Create('charcode'        , '%{Powerline#Functions#GetCharCode()}', Pl#Segment#Modes('!N'))
 \ )
]]&gt;</script>
]]>
    </content>
</entry>
<entry>
    <title>【Vim】Powerline に文字コード表示機能をつける</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2012/01/show-charcode-on-powerline.html" />
    <id>tag:blog.remora.cx,2012://4.770</id>
    <published>2012-01-28T06:16:04Z</published>
    <updated>2012-05-20T20:20:32Z</updated>
    <summary>前回導入した Powerline に対する一つの不満、カーソル下の文字の文字コー...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="Vim" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="git" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="git" label="git" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="github" label="github" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="powerline" label="powerline" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vim" label="vim" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="文字コード" label="文字コード" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[[前回][prev_post]導入した [Powerline][powerline] に対する一つの不満、__カーソル下の文字の文字コードを表示する機能__を実装してみた。イメージはこんな感じ。
<a rel="lightbox" href="http://blog.remora.cx/2012/01/28/2012-01-28_143818.png"><img alt="2012-01-28_143818.png" src="http://blog.remora.cx/assets_c/2012/01/2012-01-28_143818-thumb-480x229-610.png" width="480" height="229" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
ステータスラインの真ん中に表示されている__【'表' 8868】__ってのがそれね。使いたい方は下記のリンクから ZIP でダウンロードするか、git コマンドを使ってください。
> delphinus35/vim-powerline at charcode - GitHub
> <https://github.com/delphinus35/vim-powerline/tree/charcode>
<script type="syntaxhighlighter" class="brush:bash;gutter:false;" title="Powerline 文字コード表示バージョンを得る"><![CDATA[
$ git clone http://github.com/delphinus35/vim-powerline
$ git checkout -b charcode
$ git pull origin charcode
]]&gt;</script>
[prev_post]: http://blog.remora.cx/2012/01/vim-powerline.html "【Vim】Powerline でリッチなステータスラインを使う - blog.remora.cx"
[powerline]: https://github.com/Lokaltog/vim-powerline "Lokaltog/vim-powerline - GitHub"
]]>
        <![CDATA[文字コードを得る部分は次のように書いてるんだけど、こんなんでいいんだろうか。もっと簡単な方法がある？
<script type="syntaxhighlighter" class="brush:vim;" title="カーソル下の文字の文字コードを得る関数"><![CDATA[
function! Powerline#Functions#GetCharCode() " {{{
	let tmp = @a
	redir @a
	exec ':silent! ascii'
	redir END
	if -1 < match(@a, 'NUL')
		let @a = tmp
		return 'NUL'
	endif
	let info = split(@a, ',\s\+')
	let @a = tmp
	let char = matchstr(info[0], '<\zs.*\ze>')
	let hex = matchstr(info[1], '[0-9a-f]*$')
	return '''' . char . ''' ' . hex
endfunction "}}}
]]&gt;</script>
git の勉強のためにも、作者にプルリクエストまでしてみた。そもそも Vim プラグインをいじるのが初めてに近いのでｶﾞｸﾌﾞﾙだけど何事も経験だ。
git での作業に使った参考リンクを置いておく。
> GitHub 上のリポジトリのフォーク、プッシュ、プルリクエスト | 日本Symfonyユーザー会
> <http://www.symfony.gr.jp/git/git-fork-and-push>
> GitHubへpull requestする際のベストプラクティス - hnwの日記
> <http://d.hatena.ne.jp/hnw/20110528>
### (追記) うまく有効にならないときには……
すでに Powerline を使っていた場合は、以前の設定が残っていて文字コードが表示されません。
<script type="syntaxhighlighter" class="brush:bash;gutter:false;" title="旧バージョンの場合"><![CDATA[
$ rm /tmp/powerline.cache
]]&gt;</script>
のようにして手動で削除するか、最新版では __`:PowerlineClearCache`__ というコマンドを使ってキャッシュを削除してください。（[@unagix][unagix]さん、thx!）
### (さらに追記) なんで `%B` 使わないの？馬鹿なの？氏ぬの？
と、作者様に言われちゃいました。確かにそうだ。なぜか、関数ですべてこなすことに躍起になって、`statusline` オプションの変数を利用することすっかり忘れてましたorz __「でもまあ、カーソル下の文字と、文字コードを一緒に取得するならこの方法がベストかな。今度のリリースの時参考にするよ」__といってくださいましたので、少しは救われました ;)
__→本家がアップデートされました__
> 【Vim】Powerline 本家に文字コード表示機能がマージされました - blog.remora.cx
> <http://blog.remora.cx/2012/01/vim-powerline-updated.html>
[unagix]: https://twitter.com/#!/unagix "uNagix (unagix) は Twitter を利用しています"
]]>
    </content>
</entry>
<entry>
    <title>【Vim】Powerline でリッチなステータスラインを使う</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2012/01/vim-powerline.html" />
    <id>tag:blog.remora.cx,2012://4.769</id>
    <published>2012-01-24T13:00:46Z</published>
    <updated>2012-05-20T20:06:13Z</updated>
    <summary>前置き Vim の設定においてステータスラインのカスタマイズは最もハマるものの一...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="Vim" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="Windows" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="cygwin" label="cygwin" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="fontforge" label="fontforge" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="powerline" label="powerline" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vim" label="vim" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="プラグイン" label="プラグイン" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[### 前置き
Vim の設定においてステータスラインのカスタマイズは最もハマるものの一つだが、[Powerline][powerline] を使うとカコイイステータスラインが簡単に使えていい感じ。プラグインを導入する（+ いくつかの設定）だけで次のようなステータスラインがすぐ使える。
<a rel="lightbox" href="http://blog.remora.cx/2012/01/24/2012-01-24_081112.png"><img alt="2012-01-24_081112.png" src="http://blog.remora.cx/assets_c/2012/01/2012-01-24_081112-thumb-480x208-594.png" width="480" height="208" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
このプラグインが特徴的なのは、そのために専用のグリフまで用意しているところ。スクリーンショットで情報の境目に使われている __＞__ __＜__ のような記号がそれである。
これは既存のフォントに [FontForge][fontforge] を使ってパッチを当てることで作成されるのだが、FontForge が簡単にインストールできる Linux、Mac OS X ではいざ知らず、Windows 環境ではなかなか大変。今回は cygwin を使うことで Windows 環境でフォントにパッチを当ててみた&#xfeff;<fn>(FontForge を Windows で使うというだけならば、[unofficial fontforge-mingw][ff-mingw] に書かれている方法が簡単だ。でも、今回のパッチは Python スクリプトで書かれてるので、これと簡単に連携できる方法が見つからなかった。)</fn>&#xfeff;。
[powerline]: http://www.vim.org/scripts/script.php?script_id=3881 "Powerline - The ultimate vim statusline utility. : vim online"
[fontforge]: http://fontforge.sourceforge.net/ja/ "FontForge"
[ff-mingw]: http://www.geocities.jp/meir000/fontforge/ "unofficial fontforge-mingw"
]]>
        <![CDATA[### Powerline の導入
今時の Vim は各種のプラグイン管理システムのおかげでインストール・アップデートが簡単になりました。今回はプラグイン管理システムのなかでもメジャーな [Vundle][vundle] を使ってインストール。
> Vim-users.jp - Hack #215: Vundle で plugin をモダンに管理する
> <http://vim-users.jp/2011/04/hack215/>
`.vimrc` に `Bundle 'Lokaltog/vim-powerline'` と書き加えた後に、`:BundleInstall!` を実行するだけ。簡単なもんだ。
この状態で起動すると次のような見た目。これでも十分きれい<fn>(フォントレンダリングには [gdipp][gdipp] を使ってる)</fn>なのだが、どうせなら一番最初にあげたスクリーンショットのようにフォントをカスタマイズしてみよう。
<a rel="lightbox" href="http://blog.remora.cx/2012/01/24/2012-01-24_081835.png"><img alt="2012-01-24_081835.png" src="http://blog.remora.cx/assets_c/2012/01/2012-01-24_081835-thumb-480x228-597.png" width="480" height="228" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
### FontForge の導入 @ cygwin
cygwin の設定自体は他を見てもらうことにして、FontForge を cygwin で導入するには 2 通りの方法がある。
1. がんばってソースからコンパイル
2. [Cygwin Ports][cyg-ports] からパッケージをインストールする。
(1.) は億劫なので (2.) を使って楽しよう。手順は次のリンクを参考にした。
> Cygwin Portsで本家に未だ無い、新しいパッケージをインストールする - c4se記：さっちゃんですよ☆
> <http://d.hatena.ne.jp/Kureduki_Maari/20111112/1321030766>
やり方は簡単なので割愛。インストール時には `python-fontforge` パッケージにもチェック入れるの忘れないでね。
<a rel="lightbox" href="http://blog.remora.cx/2012/01/24/2012-01-23_211012.png"><img alt="2012-01-23_211012.png" src="http://blog.remora.cx/assets_c/2012/01/2012-01-23_211012-thumb-480x360-599.png" width="480" height="360" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
### フォントにパッチを当てる
次に、目当てのフォントにパッチを当てる。ここからの作業は cygwin 上で行う。
Powerline プラグイン本体に含まれているパッチスクリプトと、フォントファイルをどこかのディレクトリにコピーしよう。
<script type="syntaxhighlighter" class="brush:bash;gutter:false"><![CDATA[
$ mkdir font && cd font
$ cp ~/.vim/bundle/vim-powerline/fontpatcher/* .
$ cp /c/Windows/fonts/Ricty*.ttf .
]]&gt;</script>
プログラミング用フォントとして人気の [Ricty][ricty] にパッチを当ててみよう。次のコマンドをたたくだけだ。
<script type="syntaxhighlighter" class="brush:bash;gutter:false"><![CDATA[
$ python fontpather Ricty-Regular.ttf
$ python fontpather Ricty-Bold.ttf
]]&gt;</script>
これで `Ricty-Regular-Powerline.ttf` 及び、`Ricty-Bold-Powerline.ttf` というファイルができるので、それをフォントフォルダにコピーすれば完了。
後は、`.gvimrc` に次の記述を足して完成。
<script type="syntaxhighlighter" class="brush:vim;gutter:false"><![CDATA[
" UTF-8 環境でないとうまく表示されない
set encoding=utf-8
" フォントサイズはお好みで
set guifont=Ricty_for_Powerline:h10
" こっちは日本語フォント
set guifontwide=Ricty:h10
" `fancy' テーマに切り替え
let g:Powerline_symbols = 'fancy'
]]&gt;</script>
これで gvim を再起動すれば次のように変わっているはずだ。
<a rel="lightbox" href="http://blog.remora.cx/2012/01/24/2012-01-23_214954.png"><img alt="2012-01-23_214954.png" src="http://blog.remora.cx/assets_c/2012/01/2012-01-23_214954-thumb-480x208-603.png" width="480" height="208" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
ちなみに、実際には今までにあげたスクリーンショットは Ricty ではなく [Envy Code R][envy_code_r] を使ってる。Ricty だとうちの環境では少し表示が欠けるんだよね。何でだろ？ Ricty だとこんな感じ。「IP アドレス」の“P”が欠けてる。
<a rel="lightbox" href="http://blog.remora.cx/2012/01/24/2012-01-24_083644.png"><img alt="2012-01-24_083644.png" src="http://blog.remora.cx/assets_c/2012/01/2012-01-24_083644-thumb-480x198-601.png" width="480" height="198" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
いくつか試した感じ、パッチは当たるものの表示がおかしい場合があった。[Inconsolata][inconsolata] は成功、[Consolas][consolas] は失敗。パッチに問題があるんだろうけど、これ以上はわかんない。
### パッチでエラーが出たら……
もし次のようなエラーが出たのなら Python のモジュールがインストールされていない。
<script type="syntaxhighlighter" class="brush:bash;gutter:false"><![CDATA[
$ python fontpatcher Ricty-Regular.ttf
Traceback (most recent call last):
  File "fontpatcher", line 22, in <module>
    import argparse
ImportError: No module named argparse
]]&gt;</script>
このときは、easy_install を使ってモジュールをインストールしよう。
> easy_installをインストールする - さり海馬
> <http://d.hatena.ne.jp/thalion/20090416/p1>
<script type="syntaxhighlighter" class="brush:bash;gutter:false"><![CDATA[
$ curl -LO http://peak.telecommunity.com/dist/ez_setup.py
$ python ez_setup.py
$ easy_install argparse
]]&gt;</script>
これでスクリプトは問題なく動くようになるはずだ。
### 今後は……
ちなみにターミナルで使うとこんな感じ。
<a rel="lightbox" href="http://blog.remora.cx/2012/01/24/120124-0002.png"><img alt="120124-0002.png" src="http://blog.remora.cx/assets_c/2012/01/120124-0002-thumb-480x226-605.png" width="480" height="226" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
スクリーンショットは Mac OS X + iTerm2 + screen + vim でのものだが、Windows + Putty でも問題なく表示された。
Powerline で表示される情報は必要十分であるのだが、個人的に重要な__カーソル下の文字の文字コード__が表示されていない。この辺がカスタマイズできるのか調べてみることにする。
__→作ってみました。__
> 【Vim】Powerline に文字コード表示機能をつける - blog.remora.cx
> <http://blog.remora.cx/2012/01/show-charcode-on-powerline.html>
[cyg-ports]: http://sourceware.org/cygwinports/ "Cygwin Ports"
[vundle]: https://github.com/gmarik/vundle "gmarik/vundle - GitHub"
[gdipp]: http://code.google.com/p/gdipp/ "gdipp - Customizable Windows text renderers - Google Project Hosting"
[ricty]: http://save.sys.t.u-tokyo.ac.jp/~yusa/fonts/ricty.html "プログラミング用フォント Ricty"
[envy_code_r]: http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released "Envy Code R preview #7 (scalable coding font) » DamienG"
[inconsolata]: http://levien.com/type/myfonts/inconsolata.html "Inconsolata"
[consolas]: http://en.wikipedia.org/wiki/Consolas "Consolas - Wikipedia, the free encyclopedia"
]]>
    </content>
</entry>
<entry>
    <title>【Perl】Dyn.com の IP アドレス更新をスクリプトで行う</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2012/01/dyn-update-script-with-moosex-daemonize.html" />
    <id>tag:blog.remora.cx,2012://4.767</id>
    <published>2012-01-08T08:57:12Z</published>
    <updated>2012-05-20T20:20:55Z</updated>
    <summary>ホストに割り当てられたグローバル IP アドレスの変更を検知し、Dyn.com ...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="dyncom" label="Dyn.com" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="moose" label="Moose" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="moosexdaemonize" label="MooseX::Daemonize" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[ホストに割り当てられたグローバル IP アドレスの変更を検知し、[Dyn.com][dyn.com] に変更を適用するスクリプトを書いた。
公式に似た機能のスクリプト [ddclient][ddclient] がすでにあるのだがそれを車輪の再発明。`MooseX::Daemonize` を使ってデーモンにしてみた。
> delphinus35/dynupdate - GitHub
> <https://github.com/delphinus35/dynupdate>
### 使用例
<script type="syntaxhighlighter" class="brush:bash;gutter:false;"><![CDATA[
# 単純な例
$ dynupdate -u testuser -p testpass -n test.remora.cx restart
# 更新間隔と IP アドレス取得 URL を指定
$ dynupdate -u testuser -p testpass -n test.remora.cx -i 3600 -e http://detect.example.com/ restart
]]&gt;</script>
`MooseX::Daemonize` を使ったデーモンの作り方はいつかまとめよう。
[dyn.com]: http://dyn.com/ "Managed DNS | Email Delivery | SMTP | Domain Registration"
[ddclient]: http://sourceforge.net/apps/trac/ddclient "ddclient"
]]>
    </content>
</entry>
<entry>
    <title>Last.fm for jQuery を改造してみました</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2011/12/lastfm-for-jquery-mod.html" />
    <id>tag:blog.remora.cx,2011://4.766</id>
    <published>2011-12-28T12:29:02Z</published>
    <updated>2012-05-20T20:14:38Z</updated>
    <summary>Last.FM から再生履歴を取得して表示するツールです。このページの左のツール...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="javascript" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="github" label="github" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javascript" label="javascript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jquery" label="jQuery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lastfm" label="Last.fm" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="プラグイン" label="プラグイン" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[[Last.FM][last.fm] から再生履歴を取得して表示するツールです。このページの左のツールバーで動いています。[本家][original]にインスパイアして作成したのですが、次の点で拡張しています。
1. 一定時間たつと自動で表示内容を更新する。
2. アルバムアートが見つからない場合、アーティストの画像で代替する。
3. 各曲の情報を順番にフェイド・インして表示する。
4. [strftime.js][strftime.js] を使って Last.FM プロフィールページのように再生時刻を表示する。
<a class="button orange" href="http://blog.remora.cx/2011/12/28/sample.html" target="_blank">サンプルページを開く</a>
そしてついでに github デビュー。
> delphinus35/lastfm - GitHub
> <https://github.com/delphinus35/lastfm>
設置方法などは `README.md` と付属の `sample.html` に書いているのでそちらを見てください。
Last.FM の API Key の取り方など、細かいことは[前回の記事][previous_entry]参照。でもまあ、特別なことしない限り付属の API Key をそのまま使って問題ないっぽいです。
ホントは何ヶ月も前にできてたんだけど、ドキュメント書いたりするのが面倒でほったらかしてました。何とか今年中に公開できて良かった。
では、良いお年を！
[last.fm]: http://www.lastfm.jp/home "Home – Last.fm"
[original]: http://labs.engageinteractive.co.uk/lastfm/ "Engage Interactive Labs - Last.FM plugin for jQuery"
[strftime.js]: http://hacks.bluesmoon.info/strftime/ "strftime: strftime for Javascript"
[previous_entry]: http://blog.remora.cx/2010/11/lastfm-widget-for-jquery.html "jQuery 版 Last.FM ウィジェットを導入してみた - blog.remora.cx"
]]>
    </content>
</entry>
<entry>
    <title>Vim ではなぜ HJKL でカーソルを移動するの？</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2011/12/why-do-we-move-cursor-with-HJKL-in-vim.html" />
    <id>tag:blog.remora.cx,2011://4.765</id>
    <published>2011-12-18T02:22:02Z</published>
    <updated>2012-03-28T23:11:08Z</updated>
    <summary> 「なんで HJKL なの？ ホームポジションに指置くこと考えたら JKL; じ...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="Vim" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="キーボード" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="vim" label="vim" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="キーボード" label="キーボード" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[<a rel="lightbox" href="http://blog.remora.cx/2011/12/18/Adm3aimage.jpg"><img alt="Adm3aimage.jpg" src="http://blog.remora.cx/assets_c/2011/12/Adm3aimage-thumb-240x212-576.jpg" width="240" height="212" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a>
__「なんで <kbd>H</kbd><kbd>J</kbd><kbd>K</kbd><kbd>L</kbd> なの？ ホームポジションに指置くこと考えたら <kbd>J</kbd><kbd>K</kbd><kbd>L</kbd><kbd>;</kbd> じゃないの？」__という話題が Vim のメーリングリストに出ていた。確かにそうだ。いつも人差し指を <kbd>J</kbd> に置いてるけど、カーソルを移動するときだけ中指に変えるよね？
それに対する返答。
]]>
        <![CDATA[> Sven Guckes, Fri 2011-12-16 @ 14:42:05+0100:
>
> If I remember correctly, Bill Joy's terminal had no cursor keys, but the
> H, J, K, and L keys had arrows painted on them, hence the choice of
> movement commands for vi.
>
> 記憶が正しければ、[ビル・ジョイ][1]（Vim の元となった Vi の作者）が使ってたターミナルにはカーソルキーがなかったんだそうな。その代わり、H, J, K, L のキーに矢印が書いてあったんだ。だから彼は移動コマンドのキーにそれらを選んだんだよ。
Wikipedia にも[記載があった][2]。このターミナル（[ADM-3A][3]）では <kbd>Ctrl</kbd>-<kbd>H</kbd><kbd>J</kbd><kbd>K</kbd><kbd>L</kbd> でカーソルを移動したらしい。
> On 2011-12-16T13:26:22, Taylor Hedberg wrote:
>
> Exactly. He used an [ADM-3A][3]. The ADM-3A keyboard had an escape key
> more close to the home row too.
>
> その通り。彼は [ADM-3A][3] を使ってたんだ。この端末のキーボードはエスケープキーもホームポジションにより近い位置にあったんだよね。
<div style="float:right">
<div style="margin:0 0 20px 20px;">
<a rel="lightbox" href="http://blog.remora.cx/2011/12/18/800px-KB_Terminal_ADM3A.svg.png"><img alt="800px-KB_Terminal_ADM3A.svg.png" src="http://blog.remora.cx/assets_c/2011/12/800px-KB_Terminal_ADM3A.svg-thumb-240x77-578.png" width="240" height="77" class="mt-image-right"></a>
<div style="text-align:center;">ADM-3A のキーボード</div>
</div>
<div style="margin:0 0 20px 20px;">
<a rel="lightbox" href="http://blog.remora.cx/2011/12/18/KB_France.png"><img alt="KB_France.png" src="http://blog.remora.cx/assets_c/2011/12/KB_France-thumb-240x74-580.png" width="240" height="74" class="mt-image-right"></a>
<div style="text-align:center;">AZERTY 配列</div>
</div>
</div>
なるほど。普段 HHK 使ってるから気にしなかったけど、エスケープキーは（現代の）普通のキーボードでは押しにくいよね。
他に挙げられていた理由としては、__「<kbd>L</kbd> の右が必ず <kbd>;</kbd> とは限らないんだぜ。[AZERTY 配列][4]とかな！」__とか__「<kbd>Ctrl-H</kbd> はバックスペースで、<kbd>Ctrl-J</kbd> は改行を表すじゃん。だから左と下を表すんだよ。」__なんていう意見もあった。どちらもそれらしいね。
ついでに調べてみると、AZERTY 配列の歴史は [19 世紀に遡る][5]そうだが、フランス語圏で主に使われるものなのでお目にかかったことはない。__「キーボード取り扱い数日本一」__（公式サイトより）な[クレバリー2号店][6]に行けばあるかも知れない。
__<kbd>Ctrl-H</kbd> がなぜバックスペースを表すのか__については Wikipedia に[記載があった][7]。ASCII コードではバックスペースを <code>0x08</code> に定義しており、アルファベットで 8 番目に当たる <kbd>H</kbd> を使ったのだそうだ。<kbd>Ctrl-J</kbd> が__復帰（CR）__を表すのも、同じく 10 番目のアルファベットだから ASCII コードの <code>0x0A</code>（10 進数で 10）を与えたのだろう。
もっとも、Vim において <kbd>Ctrl-J</kbd> は__復帰（CR）__ではなくて__改行（LF）__の様な動作はするがそこはそれ。こまけぇこたぁいいんだよ！！
[1]: http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%AB%E3%83%BB%E3%82%B8%E3%83%A7%E3%82%A4 "ビル・ジョイ - Wikipedia"
[2]: http://en.wikipedia.org/wiki/Arrow_keys#HJKL_keys "Arrow keys - Wikipedia, the free encyclopedia"
[3]: http://en.wikipedia.org/wiki/Lear_Siegler_ADM3A
[4]: http://ja.wikipedia.org/wiki/AZERTY%E9%85%8D%E5%88%97 "AZERTY配列 - Wikipedia"
[5]: http://en.wikipedia.org/wiki/AZERTY#History "AZERTY - Wikipedia, the free encyclopedia"
[6]: http://www.clevery.co.jp/shop/shop-2.html "クレバリー 秋葉原2号店 | 店舗情報"
[7]: http://en.wikipedia.org/wiki/Backspace "Backspace - Wikipedia, the free encyclopedia"
]]>
    </content>
</entry>
<entry>
    <title>「ミッション : 8 ミニッツ」感想（ネタバレあり）</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2011/11/source-code.html" />
    <id>tag:blog.remora.cx,2011://4.752</id>
    <published>2011-11-12T12:50:16Z</published>
    <updated>2012-03-21T00:22:58Z</updated>
    <summary> すばらしい映画だった。今年見た映画の中では最高傑作。オリジナル脚本の映画として...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="映画" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="ソースコード" label="ソースコード" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ミッション8ミニッツ" label="ミッション : 8 ミニッツ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="感想" label="感想" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="映画" label="映画" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[<iframe class="youtube-player"
    width="640" height="385"
    src="http://www.youtube.com/embed/Q_p1rxqZ6V0"
    frameborder="0"
></iframe>
すばらしい映画だった。今年見た映画の中では最高傑作。オリジナル脚本の映画としては「[バタフライ・エフェクト][1]」を見たとき以来の衝撃だった。
[1]: http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%BF%E3%83%95%E3%83%A9%E3%82%A4%E3%83%BB%E3%82%A8%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88 "バタフライ・エフェクト - Wikipedia"
]]>
        何度も繰り返す 8 分間の中で主人公が驚き、慌て、怒り、恐怖し、恋に落ち、とにかくありとあらゆる感情を発散させながら駆け回る。でも現実の彼は__瀕死の体で脳と体の一部が残るだけ__なのだ。
### “暗闇の世界”から
彼がどんな表情、動作でグッドウィン大尉に話しかけたとしても、向こうでは言葉が文字となって画面に現れるのみ。映画中盤でこれが分かったときには何とも言えない悲しい気持ちになった。人がどんな感情を抱いたとしても、声がなければ他人に伝わらない。
ここで思い出したのは、NHK スペシャルで見た ALS 患者の話だった。
&gt; [NHKスペシャル｜命をめぐる対話　“暗闇の世界”で生きられますか][1]
&gt; もし、あなたが意識ははっきりしているのに、しゃべることも体を動かすことも出来ず、自分の意思を他人に伝えることが困難になったらどうしますか？
この映画の主人公はかろうじて意思の疎通ができた。そしてグッドウィンという理解者によって名誉ある生を終えることができた。もし彼女という存在がなければどうなっていたのか……想像するだに恐ろしい。
### “胡蝶の夢”
彼が経験した__幾度もの 8 分間__は機械によって作り出された幻想であったかも知れない。彼がヒロインのために流した涙や、父親と電話越しに話したときの感情は、彼の妄想の産物だったかも知れない。
しかし、こうも考えられないだろうか。__完璧な空想の世界__が作れたとしたら、それはもう一つの現実世界と言えるのではないか。
彼が得た__幾度もの 8 分間__の体験は全て現実だったのだ。__ソースコードシステム__はその稼働と同時に、__もう一つの別の世界__を作り出す装置だった。稼働から 8 分間を過ぎると安全装置が働いて元の現実に戻れるようになっていただけだ。
物語のラストで装置の停止後も主人公が元の世界に戻ってこなかったのはそういうわけ。彼は自分が絶命することで、__システムの安全装置を外した__のだ。
### ラストシーン
ここで、映画を見た人の間で意見の分かれるところがある。主人公がヒロインとキスした瞬間に列車内に流れる時間が止まってしまう。あの印象的なシーンで映画を終えるべきで、その後は蛇足ではないかというのだ。
僕はそれに肯んぜない。彼のそもそもの目的は__父親と話すこと__と__完全に死ぬこと__にあった。
彼はショーンの生まれ変わりとしてヒロインと生きていくことなんて望んでいない。そんなことしたら身代わりにされたショーンが浮かばれない。
だから、これはほとんど僕の妄想になってしまうけど、彼は映画のエンディング後に__自殺したのではないか__な。もちろん体をショーンに返して、彼の意識だけを眠らせてしまうようなやり方で。そんなことが可能かどうかも分からないけど、グッドウィン大尉にメールで連絡を取ったのにはそんな意図もある気がする。
---
色んな解釈が出来る深い設定と筋書き。それでいて親子間の愛情など涙を誘うテーマも欠かさない、エンターテインメントの王道とも言える A 級の映画だ。もっとたくさんの人に見て欲しい、心からそう思える映画だった。
[1]: http://www.nhk.or.jp/special/onair/100321.html &quot;NHKスペシャル｜命をめぐる対話　“暗闇の世界”で生きられますか&quot;
    </content>
</entry>
<entry>
    <title>Google 2段階認証プロセスを日本国内で使う</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2011/10/use-google-2-step-authentication-in-japan.html" />
    <id>tag:blog.remora.cx,2011://4.751</id>
    <published>2011-10-30T07:05:03Z</published>
    <updated>2012-03-19T10:10:58Z</updated>
    <summary> 2 段階認証プロセスを使うと Google アカウントの全てのログインについて...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="iPhone" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="2段階認証プロセス" label="2段階認証プロセス" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="google" label="Google" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="heywire" label="Heywire" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iphone" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="textfreeweb" label="textfree web" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[<a rel="lightbox" href="http://blog.remora.cx/2011/10/30/IMG_1076.jpg"><img alt="IMG_1076.jpg" src="http://blog.remora.cx/assets_c/2011/10/IMG_1076-thumb-240x359-574.jpg" width="240" height="359" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a>
__2 段階認証プロセス__を使うと Google アカウントの全てのログインについて、__パスワードと別の認証コード__を使うことでセキュリティレベルを高めることができる。
__“別の認証コード”__には、例えば iPhone アプリから生成されるものを使うことができて、これは 10 秒に一回ランダムに生成されるものなので非常に安全性が高い。パスワードが盗まれたところで不正にログインされる心配はまずなくなるのだ。（iPhone を盗まれたら一巻の終わりだけど）
で、こんな便利な仕組みなのだが、日本国内では使えない。なんとなれば、登録に必要なコードが SMS で配信されるのだが、これを日本の電話番号では受け取れないのだ。
]]>
        以前はこれを無理矢理解決するために [__Heywire__][1] というサイトがよく利用されていた。このサイトでは米国内の電話番号を無料で取得でき、それを使って SMS を使うことができた。それが、いつの間にやら実在する電話番号が登録に必要になり、日本では使えなくなったみたい。
途方に暮れていたら、__[このサイト][2]__で [__textfree web__][3] というサービスを知った。このサイトは（以前の）Heywire と同じように、電話番号を取得して SMS を使えるようにするサービス。適当に情報を入力するだけで難なく電話番号が取得できた。
ここで得た電話番号を元に Google で 2 段階認証プロセスを有効化。うまく行ったら使った textfree web の番号は登録解除しておく。ここら辺は念のため、詳しく書かないでおく。分かる人には分かるだろう。
&gt; 参考 :
&gt; [Googleの2段階認証を一足先に使うには？ - あまたの何かしら。][4]
&gt; [iPod Touch Viber登録やっと出来たぁ | 俺様ブログ][5]
[1]: http://heywire.com/ &quot;Heywire&quot;
[2]: http://wd.pc7.jp/wd/?p=4669 &quot;iPod Touch Viber登録やっと出来たぁヽ(^o^)丿&quot;
[3]: http://www.pinger.com/textfree/ &quot;textfree web&quot;
[4]: http://d.hatena.ne.jp/amatanoyo/20110801/1312203141 &quot;Googleの2段階認証を一足先に使うには？ - あまたの何かしら。&quot;
[5]: http://wd.pc7.jp/wd/?p=4669 &quot;iPod Touch Viber登録やっと出来たぁ | 俺様ブログ&quot;
    </content>
</entry>
<entry>
    <title>Prototype.js で継承＆オーバーライド</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2011/10/use-inheritance-and-override-with-prototype-js.html" />
    <id>tag:blog.remora.cx,2011://4.750</id>
    <published>2011-10-29T09:22:22Z</published>
    <updated>2012-03-13T12:31:54Z</updated>
    <summary>今更ながら、Prototype.js でクラスの継承とオーバーライドをやってみた...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="javascript" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="javascript" label="javascript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="オブジェクト指向" label="オブジェクト指向" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="オーバーライド" label="オーバーライド" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="継承" label="継承" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        <![CDATA[今更ながら、Prototype.js でクラスの継承とオーバーライドをやってみた記録。
しばらく使ってなかったら、__`$super()`__ という便利なものができていた。
#### コード例
<script type="syntaxhighlighter" class="brush:javascript;title:継承 & オーバーライドテスト"><![CDATA[
// 基底クラス
var Parent = Class.create({
	// コンストラクタ
	initialize: function() {
		// <p> 要素を生成して <body> に挿入
		this.ele = new Element('p');
		$$('body')[0].insert(this.ele);
	}
	// “word”を画面に表示
	,say: function(word) {
		this.ele.update(word);
	}
});
// Parent を継承したクラス
var Child = Class.create(Parent, {
	// コンストラクタ
	initialize: function($super) {
		// Parent のコンストラクタを実行
		$super();
	}
	// Parent の say() をオーバーライドする
	,say: function($super, word, word2) {
		$super(word);
		// “word, word2”という文字列を画面に表示
		this.ele.update(this.ele.innerHTML + ', ' + word2);
	}
});
var c = new Child;
c.say('One', 'Two');
// -> 画面上に 'One, Two' と表示される。
]]&gt;</script>
メソッドを定義するとき第一引数に __`$super`__ を与えると、親クラスの同名のメソッドへの参照が与えられる。これを使ってメソッドのオーバーライドが簡単にできるのだ。
第二引数以降は親クラスから順に与えられる。これを使って引数の数すら変えることができる。上の例で言えば、_`Parent`_ クラスの _`say()`_ メソッドは引数を__一つ__採るが、_`Child`_ クラスの _`say()`_ メソッドは__二つ__採る。
]]>
    </content>
</entry>
<entry>
    <title>jQuery.getJSON() の罠</title>
    <link rel="alternate" type="text/html" href="http://blog.remora.cx/2011/10/trap-of-jquery-getjson.html" />
    <id>tag:blog.remora.cx,2011://4.749</id>
    <published>2011-10-26T12:04:26Z</published>
    <updated>2012-02-25T23:37:41Z</updated>
    <summary>とある Web アプリケーションを作っていたときのこと、Firefox ではまと...</summary>
    <author>
        <name>delphinus</name>
        <uri>http://blog.remora.cx</uri>
    </author>
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
        <category term="javascript" scheme="http://www.sixapart.com/ns/types#category" />
    <category term="javascript" label="javascript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jquery" label="jQuery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="json" label="JSON" scheme="http://www.sixapart.com/ns/types#tag" />
    <content type="html" xml:lang="ja" xml:base="http://blog.remora.cx/">
        とある Web アプリケーションを作っていたときのこと、Firefox ではまともに動くのに、IE ではバージョンを問わず機能しないことがあった。調べてみると、（珍しいことに）__IE の方が仕様に則った正しい動作をしていた__ためであった。
最初に結論を言うと、毎回違う結果が欲しいのなら、__`$.getJSON()` よりも `$.post()` を使え__って話。
GET メソッドによるサーバーアクセスはブラウザにキャッシュされる。同じパラメータでのアクセスを繰り返そうとしても、ブラウザによっては、ローカルキャッシュを返すことでサーバーへのアクセスを行わない。これは GET メソッドの冪等性を考えれば自明のことだ。
&gt; [冪等 - Wikipedia](http://ja.wikipedia.org/wiki/%E5%86%AA%E7%AD%89 &quot;冪等 - Wikipedia&quot;)
&gt;
&gt; 冪等性は、大雑把に言って、ある操作を1回行っても複数回行っても結果が同じであることをいう概念である。
&gt;
&gt; （中略）
&gt;
&gt; HTTP の GET 要求は冪等とみなされる。Webの機構は基本的にその前提で要求結果をキャッシュに保持する。HTTP の POST 要求（フォーム送信に使われる）は冪等とはみなされないため、POST 要求はキャッシュされない。
        <![CDATA[実際の例で言うと、
<script type="syntaxhighlighter" class="brush:javascript;title:'2011年10月のログを読む'"><![CDATA[
$.getJSON(url, {
	year: 2011
	,month: 10
}, function(data) {
	$('#log').html(data.text);
});
]]&gt;</script>
このスクリプトを実行しても毎度毎度同じ結果しか表示しない。これを防ぐ方法は二通りある。
#### パラメータにタイムスタンプを付加する
<script type="syntaxhighlighter" class="brush:javascript;title:'2011年10月のログを読む';highlight:[4]"><![CDATA[
$.getJSON(url, {
	year: 2011
	,month: 10
	,ts: new Date().getTime()
}, function(data) {
	$('#log').html(data.text);
});
]]&gt;</script>
毎回違う URL でアクセスすることによって強制的にキャッシュさせない。
#### POST メソッドを使う
<script type="syntaxhighlighter" class="brush:javascript;title:'2011年10月のログを読む';highlight:[1]"><![CDATA[
$.post(url, {
	year: 2011
	,month: 10
}, function(data) {
	$('#log').html(data.text);
}, 'json');
]]&gt;</script>
意味の無いパラメータを付加するよりは、こっちの方がいいんじゃなかろうか。どちらでも好きな方をどうぞ。
]]>
    </content>
</entry>
</feed>

