2008年1月アーカイブ

screenで、今までutf8に対応するために.screenrcに

defencoding utf8
encoding utf8 utf8

とかやって、かつ各文字コードを行き来するために

bind ^U encoding utf8 utf8
bind ^E encoding eucjp utf8
bind ^W encoding sjis utf8

というようなのを設定してたんですが、DettachしてあるプロセスをAttachする毎に毎回C-t C-uとしてやらないとemacsのutf8の日本語文字列が「?」になってしまっていた。
ちゃんと設定してるはずなんだけどなぁと思っていたのですが、今日調べてみたらscreenを起動する際に「-U」オプションをつければC-t C-uしなくても表示されることを発見した。

       -U   Run  screen  in  UTF-8  mode.  This  option tells screen that your terminal sends and
            understands UTF-8 encoded characters. It also sets the default encoding for new  win-
            dows to `utf8'.

manには上記のように書いてありました。
「-U」を指定して起動してやると、defencoding utf8を指定しなくても新しいウィンドウはutf8になるし、表示も問題なくできるっぽい。

ということで.screenrcのdefencodingとencodingをコメントアウトして、screenコマンドをscreen -Uとaliasさせることにしました。ちなみにbindは、文字コードの行き来のために使うので、そのままです。

これでしばらく使ってみたいと思います。

あまりにも書いてなかったので、こっちに書いてみる。

いろいろと物議を醸し出していたHTTP::MobileAgent::Plugin::LocatorをさっきCPANに上げました。もうしばらくしたらインデックスされると思います。

ちなみに、このモジュールはCodereposで管理しているため、なんかバグなど発見したら修正をしてもらっておkです。すでにリリースまでの間にid:tokuhiromがいろいろと修正してくれました。tokuhirom++。Coderepos++。

で、このモジュールはなんのためのモジュールかというと仕様の違う携帯4キャリアの位置情報を透過的に扱えるようにするためのものです。使い方は以下のようにするだけで簡単に緯度経度が取得できます。

use CGI;
use HTTP::MobileAgent;
use HTTP::MobileAgent::Plugin::Locator;

my $q = CGI->new;
my $agent = HTTP::MobileAgent->new;
my $location = $agent->get_location( $q );

print "lat is " . $location->lat;
print "lng is " . $location->lng;
この例ではCGI.pmのインスタンスをget_location()に渡してますが、paramメソッドがあるクラスのインスタンスであればget_location()の引数として渡せるので、Apache::Requestなどでも渡せます。

あと、egというディレクトリにlocation.incとrewrite.confというファイルがありますが、location.incはTTのシンタックスで書かれたファイルで、4キャリアでの位置情報を取得するためのページのフォームを出力するためのテンプレートになります。URIなどを適宜変更して使ってください。もう1つのrewrite.confはauで位置情報を取得する際の返ってくるURLをクエリ付きで渡すと、?が2つになってしまうというクソ仕様にApacheのrewriteで対応するためのconfになります。auで使う場合には必須です。

ということで、バグレポートじゃなかったコミット待っています。

検索

広告

OpenID対応しています OpenIDについて
Powered by Movable Type 4.22-ja