2009-10-01から1ヶ月間の記事一覧

Operaだけ何故か極端に高速な正規表現パターン

とても単純な正規表現だけれど、照合するのに非常に時間のかかるパターンがあります。下記はその一例。 var s = "abcdefghijklmnopqrstuvwxyz".match(/a(.+)+c/); 照合することは一目瞭然です。しかし、+ は最長一致型の照合なので2重のバックトラックが発…

電車の中で聞いたちょっとイイ話

僕は通勤や帰宅電車の中では、椅子に座れてパソコンを広げられる程度に余裕があれば、だいたいにおいて音楽プレイヤーを聞きながらキーボードを叩いている。この文章もこうして電車の中で書いたものである。先日、うっかりプレイヤーのバッテリーを充電する…

ブログを読むな、マニュアルを読め。

プログラムを書くとき、分からない関数を調べるのに、なんでもかんでもブラウザで検索する人をときどき見かける。確かにそれによって目的のものを探すことはできるだろう。ブログには実体験に基づくヒントとなる情報が多いのも確かだ。でもね、そんな検索す…

JavaScriptで循環配列を文字列化したらどうなるか?

JavaScriptのオブジェクトは文字列化しても単に "[object Object]"と表示されるだけなのに、配列は文字列化すると "1,2,3,4" のようになる。便利なようであまり便利でもない。 var ary = [1,[2,[3,4]],5] var s = ary.toString(); // s は "1,2,3,4,5" 各要…

JavaScriptのsetInterval関数の意味を正確に理解するための1つの説明

ECMAScriptの言語仕様と組込関数の動作仕様は非常にきめ細かく規定されていますが、それに含まれていないJavaScriptの関数の仕様はどうもはっきりしないように思えます。そのためか、それを利用するコードも正確なものではないものが見受けられます。その1…

JavaScriptのToNumberとparseInt/parseFloatの仕様と実装の違い

ECMAScriptの規格書は非常に細部に至るまで細かく仕様が規定されていますが、100%全て正しく実装している処理系は僕の知る限りありません。過去に広まってしまったソフトとの後方互換性を維持するため、あえて仕様にあわせていないのだろうというものも…

レインボーブリッジを渡ってお台場へ

ストレス解消には歩くに限る。ただひとり黙々と目的もなく歩く。歩くついでに写真を撮る。歩きながら妄想に耽る。自分は何がしたいのか。とりとめもないことを考える。今日は天気が良かった。今年の2月に来たコースを同じ道のりで再び歩いてみた。ガンダム…

それにしても驚きました。

この記事がこんなにブックマークを集めるなんて。自分でもよく書けたと、多少は自慢したいところはあったけれど、それまで1日あたり40〜50程度のページビューしかないブログで、ブックマークも全部で6つしかなかったので、せいぜい10個くらいついた…

FAQ形式によるJavaScriptの本質がわかる超入門

はじめに JavaScriptは簡単な言語のようでいて、実は奥が深く、初心者にとってなかなかその本質がわかりにくい言語です。ここでは、JavaScriptの言語的エッセンスを理解できるようなものをFAQ形式で書いてみました。ご意見や誤り等を指摘してもらえたら嬉し…

はてな市民になった

気づいたらちょうど30日分書いたので、はてな市民になったようだ。4月から始めて6ヵ月かかってようやく市民になれた。ページビューは4890。まぁそんなもんだろう。誰にも話さず、密かに書いているので、たまたま検索で引っかかって訪れる人がほとんど。…

赤い羽根共同募金

今日は10月1日。そんなこと気にも留めず駅を歩いていたら、「赤い羽根の共同募金にご協力お願いしま〜す」と女子高生4,5人が声をそろえて叫んでいた。毎年思うが、その光景はとてもイヤなんです。募金すること自体は構わないが、どうして、あんな大声で…