2011年7月26日火曜日

Google Maps JavaScript API V3で、2点間の距離を取る方法


Google Maps JavaScript API V3 をいじっていて、2点間の距離が取りたくなった。ルート計算ではない。
{こんなもん簡単だろ}
と思って、マニュアルページに行ってみたが、それっぽいものが全然見つからない。
ちょっと調べてみるとV2の時はGLatLngクラスに、距離計算メソッドあったらしいが、V3のLatLngクラスには、そんなものありゃしない。くそー。でも、
{ないわけないだろ}
と真面目に調べたらあったのでメモっときます。

Google Maps JavaScript API V3には、追加のライブラリがあって2点間の距離を取るには、Geometry Libraryなるものが必要。
でこいつを使うには、通常
  <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
のようにGoogleのAPIをリンクしているところで
  <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false"></script>
こうやって、使用ライブラリを指定してやらねばならない。
参考:
 ・ 追加ライブラリの使い方
 ・ Geometry Libraryの使い方

あとは、
var distance = google.maps.geometry.spherical.computeDistanceBetween(posA, posB);
で一発。posA, posBはLatLngのインスタンスです。

2011年7月20日水曜日

Windows上のEclipseから、Linux(Fedora15)のPHPをリモートデバッグ

Windows上のEclipseから、Linux(Fedora15)のPHPをリモートデバッグしようしてもなかなかうまく行かなかった。いろいろググッてみたけれどなかなかわからなかったが、たまたま解決したので、原理はよくわからんけど解決方法をメモっておきます。

◎ リモートデバッグNGの時の症状
  • ブレークポイントで止まらない。
  • xdebug_break(); だと止まる。止まったところでの変数の中身等は見られる。
  • ↑で止まったところからのステップ実行はできない。
◎ 解決したとき、やってみたこと (全部Linux側の作業)
  • ZendFrameworkをインストールした。(YumExtenderからZendで検索し片っ端から入れたので、どのモジュールのおかげで解決したかはわかりません)
  • /etc/php.ini でいままで
      extension=xdebug.so
    としていたところを
      zend_extension=/usr/lib64/php/modules/xdebug.so
    に変更した。(適宜xdebug.soの場所を探して値を入れ替えてください。)
  • apache再起動
  • これで、ブレークポイントでピタっと止まり、ステップ実行もバシバシいきました。

◎ 設定の参考に・・・
xdebug リモート関連の php.ini 設定がいまいちピンと来ない人は、
http://www.xdebug.org/docs/remote#communication
がおすすめ、ここのアニメーションgifがとてもわかりやすい。

2011年7月17日日曜日

宝くじの整理番号の法則 (チェックサムの話)

いろいろ片付けをしていたら、袋から出していない年末ジャンボが出てきた。
チェックしようと、なんとなくくじを見ていたら、整理番号のチェックサムの法則に気がついたのでメモっておきます。(でも、絶対に誰の役にも立たないなこれ・・・)

宝くじの左下近辺には整理番号というのがついていて、こんな感じになっている。
で、こいつが頭から2桁、4桁、2桁、3桁、1桁の5つのエリアにわかれている(ような気がする)。
ただ、1と2の区切りはちょっとあやしいところ。

で細かく見ていくと
エリア1 : 発売元コード  例 東京都 10、近畿 30、全国自治 70 (昔は50?)
エリア2 : 第xxxx回 の数字部分
エリア3 : ユニット番号
エリア4 : 組番号
エリア5 : チェックサム (整理番号の読み取りミスや適当に整理番号を作ったときに異常を簡易的に発見するための番号。)

で、ピラピラ見ていたら、このラスト1桁に0が無くて、かつ連番10枚で買っていたくじの番号の進みと逆行していたので、以下の計算をしてみたらビンゴでした。

チェックサムの出し方
手順1 : 整理番号のチェックサム以外の数値と宝くじ番号の各桁を足す。
 上の絵のケースだと、7+0+0+5+9+6+4+1+0+7+6+1+0+7+2+5+9=69
手順2 : 手順1の和を9で割った余りを出す。
 例だと、 69 - (9*7) = 6
手順3 : 9から手順2の余りを引く。で、おしまい。
 例だと、 9 - 6 = 3

手持ちの宝くじだけでなく、「宝くじ」をgoogle画像検索で引っ掛けた実物何枚かでやってみて当たりだったので、どうやら正解っぽい。

ちなみに、この出てきた年末ジャンボとやらは、もちろん末等一枚のみのハズレくんでした・・・

2011年7月16日土曜日

神田 - 和が家 (酸辣湯麺日記第24弾)

今日は、別の店を探していて迷っているうちにたまたま見つけた神田の「和が家」

どう見ても居酒屋というかほんとに居酒屋。 岩本町の方にも同名の「和が家」があるが全く違う店なので注意。

右の写真の15番にスーラタン麺 とあるのを見つけたので入店。
メニューは、どう見ても中華ベースで店員もそっち系なので、「和」には和食という意味は全く無いようだ。

当然その15番を注文するが、酸辣湯麺で700円はなかなか安い方。なお+50円でチャーハンもつくらしい。
あくまでも、居酒屋なので過度の期待は抱かないよう自分に言い聞かせておとなしく待つ。テーブル酢が無いこともチェック。

で、やってきたものを見ると、そこそこ具の種類はある。細切りの豆腐、チンゲン菜、細切りたけのこ、キクラゲ、細切り豚肉といったところだが、具の量は少なめである。
スープは、辛さ、酸っぱさ共になかなかのもの、もっと軟弱なものが出てくると予想していたのでこれは意外。ただ、スープには溶き卵も入っているのだが、その量が過去食べた溶き卵入りの酸辣湯麺の中でNo.1と言えるほどの少なさ。
{うーん、これはちょっとケチり過ぎではないのかい。}
と思うが、安いし居酒屋だし、まあそんなものだろうか。
あとは、なんだか特定できないのだがスープに何かが入りすぎているような感じで、少々バランスがどうかなあというところ。もしかして、単にチープなだけなのかもしれない。

麺は、細麺。でも細さの割にはそこそこコシがあるので、悪い印象はなかった。

全体的には、かなりコストダウンされているなといった感じでした。


今日の点数は、スープ×1.5、具△2.0、麺△2.5 で、
1.5+2.0+2.5=6.0 です。

残念ながら、平均よりも下になってしまいましたが、居酒屋系でラーメン類はなかなか難しいと思います。

2011年7月4日月曜日

[Windows7] フォルダが使用中で移動や削除ができない。


フォルダの移動や削除をしようとすると、↓のような表示が出て移動・削除ができないことがよくある。



そして、それっぽいプログラムを終了してから「再試行」させても、同じ表示が出て
{むきーっ!}
となることもよくある。

今まであきらめていたのだけど、調べられるらしいので(NyaRuRuの日記 - ファイルを開いているプロセスを調べる)、メモっときます。

まず、Microsoftのtechnetのページにある
Process Explorer (http://technet.microsoft.com/ja-jp/sysinternals/bb896653.aspx)
を落として実行します。

↓のように、menuから、"Find Handle or DLL..."を選びます。



で、移動や削除をしたいフォルダ名を上のボックスに入れて"Search"ボタンを押すと、



{おっ、すげー。こいつが犯人か!}
とわかります。ちょっと感激しました。

ていうか、いろいろいじってみたけど、このProcess Explorerってかなり強力で楽しいです。
メニュー -> Options -> Replace Task Manager
で、普通のタスクマネージャーを置き換えて、ctrl+shift+esc で起動するようになるので、便利です。