Geo::Coder::Google::V3

Google Maps APIをperlから使うためのモジュールです。そういえば、CPANを使ったことがないので、これでモジュールをインストールするところからはじめました。

% su
# cpan

これで、初期設定をするといわれますが、これは単にenterを叩けば勝手に適当によろしく設定してくれます。インストールが終わったらcpanのシェルが待ちに入っています。

cpan[1]> install Geo::Coder::Google::V3

とやれば勝手に必要なモジュールをまとめてインストールしてくれます。便利になったものです。

また、日本語の住所を扱うためにはutf8でないと駄目なようなのでJcode.pmも入れておきます。

cpan[2]> install Jcode
cpan[3]> exit

あとは、コードを書けば終わりです。単に住所から緯度経度を取り出すだけであれば、

#!/usr/local/bin/perl
#
use Geo::Coder::Google;
use Jcode;
#
my $geocoder = Geo::Coder::Google->new(apiver => 3, language => 'ja');
my $address_org = "ここに住所を書く";
my $address = Jcode->new($address_org, "euc")->utf8;
#
my $location = $geocoder->geocode( location => $address );
#
print "$location->{geometry}{location}{lat}\n";
print "$location->{geometry}{location}{lng}\n";

で、終わりです。文字コードはeucで書かれていることを想定しています。自動判別はややこしいので、eucをutf8に変換する、と決め打ちです。

Geo::Code::Google::V3はここ。Geo::Coder::GoogleMapsというのもあって、これはGeo::Code::Googleをラップしているようで、V3には対応していなさそうな感じです。インストールしてみたけどうまく使えませんでした。

また、Geo::Coder::Google::V3のサンプルはこちら。またJcode.pmの使い方は、こちら

いずれにしても、やり方がわかれば一瞬で完成ですが、そこに至るまでの情報収集はやっぱり面倒だなぁ。

word-count.el

emacs 24.3にしてからmake-local-hookが使えなくなったためにいろいろなelispコードがエラーで止まるようになってしまいました。

word-count.elも動かなくなったのですが、どうしてもカウントしたい文書があってしょうがないのであちらこちら調べてみました。あんまりよくわからなかったのですが、結局、ソースword-count.elのなかに書いてある

(make-local-hook hook)

という行をコメントアウトすることで、とりあえず動いているような気がします。何か副作用があるのかもしれませんが、文字をカウントするだけのことなので、勝手に大丈夫だろう、と思い込むことにしています。

FreeBSD 6.3Rの古い環境から、FreeBSD 9.1Rの新しい環境への移行はなかなかスムースに進みません。きっと、移行ができるようになった時点でまた新しい環境を構築しなくてはならないようなことになって再び同じような罠にハマるような予感がします。うーむ。

firefoxのヒストリー

FreeBSDのアプリケーションサーバーを6.3Rから9.1Rに変えたために大きな変化があって、いろいろと戸惑っていますが、そのなかでも、ホームディレクトリの下のユーザー設定ファイルをアプリケーションが書き込みしようとして書き込めない、というエラーがたくさん発生しています。

これは、ユーザーのホームディレクトリはnfsでリモートディスクをマウントしているのですが、nfsサーバーがrootによる書き込みを許可していないことが関係しているような気がします。acrobatもユーザー設定をアプリケーションを動かしているディスク上に書き込むようにしてパーミッションを設定することで正しく起動するようになりましたが、それと同じことがfirefoxでも発生しました。

firefoxはいろいろな情報をsqlite3を使ってホームディレクトリの下の.mozillaディレクトリに書き込んでいますが、./mozilla/firefox/*.default/*.sqliteというファイルの書き込みに失敗していました。そのため、戻るボタンが使えないとか、ブックマークが保存されない、とかいうようなことになっていました。さすがにこれは使いにくいのでだいぶ困っていました。原因がわかればなんでもないことですが...。

というわけで、/usr/loca/etcの下にuser_settingsとかいうディレクトリを作ってその下にユーザーごとにディレクトリを作って、パーミッションを700に設定しておき、mozillaというディレクトリを作って、そのディレクトリにホームからシンボリックリンクをはる、という手間をかけることでなんとか解決しました。

mkdir /usr/local/etc/user_settings/USER_ID
cd /usr/local/etc/user_settings
chown USER_ID:GROUP_ID USER_ID
chmod 700 USER_ID
cd USER_ID
mkdir mozilla
cd
ln -s /usr/local/etc/user_settings/USER_ID/mozilla .mozilla

という感じです。

ユーザー設定があちこちにばらまかれているとたいへんなので、acrobatの設定もこちらに移したほうがよさそうです。

うーむ。