Googleマップのルート案内APIをv3で使う

[`evernote` not found]
[`livedoor` not found]
[`yahoo` not found]

仕事で、ルート案内ができるAPIがないか調べて実装してほしいとのことだったので、調べてみたらGoogleマップにあるというのが分かった。その時見つけたのが下記の記事。
ASCII.jp:Googleマップ待望の新機能「ルート案内API」の使い方

GDirectionsというオブジェクトを使うらしい。v2でしか使えないようだけど、まあいいだろうと思って実装。
 ただ、v3でしか実装されていない交通状況のAPI(Google Japan Blog: 交通状況がGoogle マップで見られるようになりました)も使いたいとのことだったので、v2とv3のAPIを両方使うということなのだけれども、どうにも衝突してしまってうまく動かない。

困ったなぁ。と思いながらもう少し調べてみると、v3にはgoogle.maps.DirectionsServiceという似たようなオブジェクトがあると知る。
Maps API V3 サービス – Google Maps API Version3 日本語ドキュメント(非公式)

というわけで、梅田を出発し、途中、難波により、天王寺まで行くプログラムを作ってみることに。

WordPressに貼ると、他のCSSに影響を受けて表示が少し変になってしまっていますが、なんとか表示できました。

CSSの優先度:クラスはプラス10点,IDはプラス100点

[`evernote` not found]
[`livedoor` not found]
[`yahoo` not found]

1年ぐらい前まで知らなかったのですが、CSSにはクラスで指定するかIDで指定するかによって優先順位が違うようです。
CSSの優先順位~CSSテクニック~

どうやら、クラスではプラス10点、IDではプラス100点で、点数の高い方が優先されるらしい。ということはつまり、クラスが11個、IDが1個指定してあって、11個分のクラスと1個のIDでCSSを指定すると、11個分のクラスで指定した方が優先されるのか。と思って試してみた。

HTML

CSS

“あいうえお”の文字の色は青になるはず。

結果:

あいうえお

何で赤なんだよ!

いや待て。そういえばどこかでこの数値は16進数と聞いたことがあるぞ。あということは、クラスが17個だったらそっちが優先されるはず。

HTML

CSS

“かきくけこ”の文字の色は青になるはず。

結果:

かきくけこ

やっぱり赤になる・・・。何か間違ってるのだろうか・・・。

「○○のまれを・・・」という勘違い

[`evernote` not found]
[`livedoor` not found]
[`yahoo` not found]

確か、半年ぐらい前のこと。会社である資料の作成を頼まれて作ったのだけれども、その資料を確認してもらった時にあることを言われた。

「この『まれ』って何? 方言か何か??」

具体的にどういうことを書いたのかは覚えてないのですが、そこではじめてそれが自分が何かを勘違いして覚えた言葉だと気づき、何とか誤魔化しました。
 どういう風に間違っていたかというと、「まれ」という言葉をなぜか、「概要」とか「趣向」という意味で使ってたんです。
 ネットで調べても自分のように「まれ」という言葉を使ってるところはどこにもないし、いったい何でこんな間違いしていたのやら・・・。

そして昨日の話。
 これは大惨事…MSが提供したコマンドを実行→大学の全アカウント消失 | ガジェット速報という記事が話題になっていたので何気なく読んでいると、「移行する”まれ”の連絡を・・・」と読める箇所が・・・。
 じゃない。何て読むんだこれ? 『旨い』の『旨』と書いていったいなんて読むんだ!?

「むね」でした。

なぜかこれを「まれ」と読んでいたようです。改めて自分がバカだなと思った今日この頃です・・・。

後置インクリメントより前置インクリメントのほうが速いらしい

[`evernote` not found]
[`livedoor` not found]
[`yahoo` not found]

プログラミングを本格的に学び始めてから5年以上たつけど、先日まで勘違いしていたこと。

for文の例でよくfor(i=0; i<100; i++)と三つ目の式(再初期化式というらしい)を後置インクリメントで書くコードをよく見るもんだから、てっきりここを前置インクリメントにしたらiが0からではなく、1から始まるもんだと思ってました。

まあそれはともかく、タイトルについて。先日for文の三つ目の式が後置だろうが前置だろうが一緒の結果になると知ったと同時に、知りました。
 まあ、言われてみれば前置インクリメントがただプラス1するだけの演算にたいして、後置インクリメントは1拍遅れてプラス1するからなぁ(ん? 今ググって確認してみたけど、この理解もしかして間違ってる?)。

というわけで、JavaScriptで以下のようなコードを書いてChromeで試してみた。

これを二度実行した結果。

後置インクリメント: 9971ms
前置インクリメント: 9909ms
後置インクリメント: 10058ms
前置インクリメント: 10194ms

ありゃ・・・。前半は確かに前置のほうが速いけど、後半は後置のほうが速い・・・。

後になるほど遅くなってしまうのかなと思い、後置と前置の順番を逆にしてみた。

前置インクリメント: 9918ms
後置インクリメント: 9881ms
前置インクリメント: 9941ms
後置インクリメント: 9907ms

ありゃ・・・。今度はどちらも後置のほうが速い・・・。

仕方がないので、FirefoxのFirebugでも試してみることに。

前置インクリメント: 25188ms
後置インクリメント: 24496ms
前置インクリメント: 22423ms
後置インクリメント: 22120ms

予想通りの結果にならないし、『警告:応答のないスクリプト』というアラームが何回もでるし・・・。

おかしいなぁ。自分が見たのはJavaScriptの高速化の話だったのだけれども・・・。どこか間違えただろうか。