JavaScriptのundefinedというクセ者のいろいろ

はじめに JavaScriptの初心者にとってundefinedというのはちょっと混乱を招くものらしい。nullとの違いや使い分けがよく分からなかったり、数値やブール値との比較が不自然だったりするのが原因と思われる。ここでは、そのようなundefinedのいろいろについて…

O3DはWebGL上のライブラリという位置付けとなることに正式決定

ブラウザ上の2DグラフィックとしてはCanvas APIが標準としての地位を築いたが、3DについてはMozillaのWebGLとGoogleのO3Dが競合していたが、Googleが折れたようだ。O3DはWebGL上のJavaScriptライブラリとして再構築されることが正式にアナウンスされた。 The…

東京スカイツリーは日本の未来を変えるか?

竣工は来年12月で、開業は2012年春の予定とのことであるが、テレビなどでも話題になり既に大勢の見物客で賑わっているという東京スカイツリーの現場に行ってきた(4月29日)。行く前までは単なる野次馬根性で、完成前の写真を記念に撮っておきたいというくらい…

JavaScriptのDateで表現可能な過去と未来

寒くなったり暖かくなったりと気温変化が激しかったためか、先週一週間は体調を崩してしまい仕事がはかどらなかった。一日だけ休んだが、熱があるわけでもなく、ちょっと頑張れば出勤はできるし、重要な会議もあった。しかし、全身脱力感で、何もする気が起…

吾妻山公園と小田原城

今回でまだ3度目であるが、4/10(土)に二宮にある吾妻山公園に行ってきた。小高い山の上から海が遠くに見下ろせる素敵なところである。前回行ったのはちょうど1年前、このブログの最初のエントリーとして書いた。吾妻山公園は東海道線の二宮駅から歩いてす…

はてなを始めてちょうど1年経ちました

記事を書いた日数は62。ページカウンタはちょうど10万PVを超えたようです。始めた頃は1年で2万PVくらいかなと思っていましたが、予想より多いのはちょっと嬉しい。1年経って感じたことは、 自分のためになる それが他の人の役にも立てて嬉しい 長…

IE6をクラッシュさせるコード

マイコミジャーナルに「IEをクラッシュさせる1行」というAjaxianの記事の紹介記事が載っている。jQueryのプラグインで落ちるとあるが、jQueryとは無関係の下記のコードで落ちるようだ。 function crash() { for (x in document.open); } crash(); そもそも…

工学系学生のための ヒルベルト空間入門

何とか読み終えることができた。本書の「まえがき」には以下のように書かれている。 本書は数学の専門書ではなく,量子力学を学びたいと望む工学系の学生が,その量子力学を理解するために必要と思われる最小限の内容を展開した解説書である. 僕は高校3年…

FlashがHTML5より優れている点を敢て挙げてみる

Web

HTML5のVideo/AudioタグとCanvasなどがあればFlashが要らなくなるのではとの議論があるが、そう簡単にはFlashが不要になるとは思えない。僕個人としては、Webの世界に1ベンダーのプロプライエタリでクローズドなものがあることは好ましくないと考えているが…

逗子から荒崎まで歩いた

もし、今日天気が良かったら二宮の吾妻山公園に行くつもりだったが、あいにくの曇りでここ数日の低い気温のため桜もまだのようだ。仕方ないので、先週の月曜日に荒崎に行ってきたときのことを書くことにする。春分の日の振り替え休日の月曜日の朝、目が覚め…

JavaScriptのメソッドコールの仕組みを深く理解する (参照型とは?)

はじめに JavaScriptでは関数もオブジェクトです。このことはよく理解されていると思います。関数とメソッドとの明確な違いはなく、どちらも関数オブジェクトである、というところまではよいのですが、関数コールとメソッドコールの違い、あるいはその仕組み…

倒れた大銀杏 (鎌倉鶴岡八幡宮)

先週の3/10(水)に鎌倉の鶴岡八幡宮の大銀杏が強風のため倒れた。樹齢1千年とも言われる大木が一夜にして根元から倒れてしまった。とても残念なことである。天気が良かったので、ぶらりと現場を見に行ってきた。クレーン車で撤去作業が始まっていた。太い幹…

数学する精神

良書である。数学はややもすると人間味のない無味乾燥で論理的な学問と思われているが、決して非人間的なものではなく、機械(コンピュータ)では絶対に発見することのできない深くて美しい定理を発見できるのは人間だけであり、数学の研究は人間の精神活動…

Opera10.50のECMA規格の準拠度を調べてみた

Opera10.50が登場していきなり世界最高速という触れ込みで注目を集めていて、いろいろなベンチマーク結果も公開されてますが、僕として気になるのはECMA規格にどこまで正確に準拠しているかという点です。ざっと調べてみました。実用上の大きな問題となるよ…

驚きいっぱいのJavaScript?

言語やインタフェースの設計には「驚き最小の原則」というのがある。まつもとさん本人はそんなこと言っていないようだが、かつて、Rubyはその原則に沿った言語と言われていた。一方、JavaScriptはそれに反する言語と未だに見なされているようだ。多くの場合…

プログラミングは実験科学に似ている

プログラミングというかソフトウェア開発は実験科学と似たところがあると思う。開発中に、自動単体テストを走らせて結果が正しいことだけでなく、パフォーマンスやメモリ消費のデータを常に収集してバグ混入による異常値がないかを常時監視する。グラフを描…

ちょっと仕事のこと

ここ3ヶ月くらいの間は、毎週土曜日も出勤していたが、昨年4月から続けてきた仕事がようやく一区切りがついて、あとは市場に出るだけとなった。後半はいつものように修羅場に近い状態で火事場の馬鹿力的な作業をメンバそれぞれが行った。もっと余裕のある…

この定理が美しい

何か面白そうな本はないかと、本屋さんでぶらぶら見ていたら、目に留まったので買った。一般向けの数学書であるが、数式がたくさん書いてあるので、ほとんど理解できないだろうが、眺めるだけでもよいと思った。20名の分野の異なる数学者が自分が美しいと思…

Firefox3.6 のswitch文がさらに高速になった

「JavaScriptのswitch文のパフォーマンスはブラウザの違いでこんなにも差があった。」でブラウザごとのswitch文の速度評価を行ったが、Firefox3.6のパフォーマンスについて、hacks.mozilla.orgに以下のような気になる記事がある。JavaScript speedups in Fir…

HTML5 CanvasのarcToをarcで実装してみた

はじめに 前回のエントリ「HTML5 Canvas のarcTo関数の実装が未だにorz」で書いたCanvasのarcToですが、これをarcで実装してみました。CanvasのarcTo関数は左図のように3点A, B, Cが与えられたとき、その2本の半直線に接する半径Rの円弧を描画するもので…

JavaScriptでFlashを実装

ちょっと前に、JavaScriptでFlashプレイヤーを実装するような強者が現れることを密かに期待している、なんてことを書いたが、AjaxianにGordon: Flash Runtime Implemented in Javascriptという紹介記事が載ったので心躍ったが、中身はまだ見ていないけれど、…

HTML5 Canvas のarcTo関数の実装が未だにorz

2年近く前にCanvas APIの実装状況を網羅的に調査したことがありますが、ブラウザごとに実装がいろいろ異なっていていました。その中で一番目立ったのがarcTo関数の実装の違いです。改めて調べてみました。ブラウザのバージョンは以下です。 Chrome Safari O…

JavaScriptのswitch文の速度評価記事への補足

前回書いたエントリー「JavaScriptのswitch文の速度はブラウザの違いでこんなにも差があった。」に予想外にたくさんのブックマークがつき、貴重なコメントも頂きありがとうございます。それにインスパイアーされたので、ちょっと補足を書きました。個々の項…

FINAL FANTASY XIIIに感動

と言っても僕はゲームなんて全然やったことないし興味もないけれど、某動画サイトにあるFF13のHD解像度のトレイラーを大画面で見ていたらちょっと感動した。CGは門外漢なので、それがどの程度難しい作業だったかは想像もできないが、髪の毛の揺れや風になび…

JavaScriptのswitch文の速度はブラウザの違いでこんなにも差があった。

はじめに JavaScriptのswitch文は、CやJavaと異なりcaseのところに任意の式が書けるため、実行時にcaseの式も評価されるので基本的にはif-else文の並びと類似のものになります。つまり、caseの数に応じてパフォーマンスも低下すると予想されます。本当にそう…

JavaScriptのパフォーマンスの違いから数値表現の違いを推定してみた

はじめに JavaScriptの数値は仕様的には64bit倍精度のIEEE754に準拠というものですが、内部の実装では高速化のために必要に応じて32bit整数だったりdoubleだったりします。ブラウザによっては、その辺りの実装に違いがある筈で、それはパフォーマンスの違い…

ECMAScript 5th editionがECMAで承認される

いろいろ紆余曲折がありましたが、ECMAScriptの第5版が正式にECMAで承認されて仕様書がリリースされました。Draftの文字が消えたので、ちょっとは読む気が沸いてきます(笑)。アナウンスメールES5 is an ECMA standard下記から仕様書はダウンロードできま…

高尾山・陣馬山ハイキング

前回の5月に続き、2回目の高尾山から陣馬山までのハイキングであるが、今回(11/23)は「なんとかなるさ」のいい加減な性格が功を奏してか、なかなかできないような貴重な経験をすることができた。高尾山登山口は5月に来たときに比べ、大変な込みようである…

美しいもの

先日、いつものように通勤電車の中でパソコンのキーボードを叩いていると、隣で70歳を超えていると思われる女性3人組が、B5サイズくらいの写真を見ながら、見事だねぇ、すごい綺麗、などと感嘆していた。気になって覗き見したら、鳥の形をした雲だった。…

JavaScriptのビット演算の仕組みを理解する

はじめに JavaScriptの数値表現はIEEE754の64ビットの倍精度型浮動小数ですが、ビット演算はどのように定義されているのでしょうか。今回はそのビット演算について解説します。この仕様は10年以上前から変わらないのですが、改めてその部分が書籍などでどの…