2009-01-01から1年間の記事一覧

JavaScriptでおもちゃのLispを作ろう(3) 〜リーダ/パーサテスト編〜

これまでに実装したのは、文字列からS式を読み込むリーダとその逆のプリンタです。今回はそれらの機能が期待した通りの動作をするかテストします。JavaScript用の自動単体テストフレームワークJsUnitがありますが、ここは趣味のプログラミングなので、オレ流…

JavaScriptでおもちゃのLispを作ろう(2)〜プリンタ編〜

今日は前回に引き続き、リーダ関数の残りとリーダ関数と反対のプリンタ関数を実装します。S式を読み込むリーダ関数のサブ関数であるreadString()とreadList()関数は次のようになります。Lispの文字列はエスケープもいろいろできるのですが、複雑なことは後…

JavaScriptでおもちゃのLispを作ろう(1)〜リーダ編〜

こんなものは数え切れないくらい既に沢山あると思いますが、JavaScriptでおもちゃのLispを作り始めたので日記として書いておきます。普段は会社では仕事でC++を使ってプログラムを書いていますが、趣味のプログラミングというのは、やっぱりおもちゃのような…

都会で天の川を見る方法

随分前のことになりますが、スラッシュドットで話題として取り上げられた、「世界の5人に1人は夜、天の川が見られない」に関連してちょっと一言。都会では光害が進み、夜空が明るくなり、天の川が見えなくなっているとのことですが、コメントを読んでいると…

eラーニングがいろいろひどい、について確認してみた

sumiiの日記より: http://weblearningplaza.jst.go.jp/ の「情報通信」→「データ構造とアルゴリズムコース」がいろいろとひどい。 だそうだが、他はどうなのか見てみた。 「情報通信」→「プログラミング言語コース」→「6.データ抽象化とオブジェクト指向」…

JavaScriptの基本型とオブジェクト型のパフォーマンスの違い

JavaScriptの数値や文字列などの基本型はオブジェクトではありませんが、あたかも対応するクラスのインスタンスオブジェクトであるかのようにメソッドをコールすることができます。例えば、下記のプログラムではv1とv2はどちらも"123.00"という同じ文字列に…

Google Chrome OS考

Google Chrome OSが発表され、ニュースやブログで大きく取り上げられて話題になっている。まだ、詳細な内容は公表されていないが、どんなものが登場するのだろうかと、いろいろ妄想すると楽しくなる。従来からいくつも登場し、そして消えていったWebOSとの基…

まつもとゆきひろ コードの世界

Rubyの生みの親であるmatz氏が書いた本である。某缶コーヒーのコマーシャルではないが、本人が直々にRubyについて語るのを読めるのはこの上ない「贅沢」である。それだけに、ソースコードのインデントの崩れや印字ミス、仮名漢字変換の誤り、すぐ直前に書か…

鎌倉の紫陽花(あじさい)

ちょうどよい時期だと思い、鎌倉にあじさいの写真を撮りに行きました。北鎌倉駅で降りて、まずは明月院へ。明月院は別名あじさい寺と呼ばれるくらいあじさいで有名です。ところが、横須賀線沿いの道を歩いて向かっていると、「明月院最後尾」のプラカードを持…

Google Wave

Web

Google WaveはGoogle Mapが登場したとき以上に衝撃的と感じる。モデルとしては新しいわけではないが、創造的破壊と呼ばれるに相応しいネットの再構築を目指している。これが実現したら、Googleはますます強大になり、もう敵なし状態だ。楽しみでもあり、恐ろ…

ECMAScript 5 Overview

ECMAScriptの規格書は読んだだけでは理解するのがなかなか難しいが、こういうビデオとスライドがちょっとでもあると理解の助けになる。特に、Object.createとObject.definePropertyが具体的に説明されている。 YouTubeビデオ

printfデバッグに便利なファイル行数表示マクロ

emacsとgccを普段使っているレガシープログラマの自分としては、デバッグはprintfが一番便利だと思っている。まれにemacsの中でgdbも使うが、必要以上に時間がかかるし、視野が狭くなり袋小路に陥りやすい。そもそも組込み系ではデバッグ環境が提供されてい…

陽気に誘われてぶらりとカメラ散歩

昨日、一昨日と雨だったが、土曜日の今日は天気がよかったので、カメラを片手にみなとみらい、山下公園付近に出かけてきた。日本丸の南側斜面にある芝生からローアングルで撮ってみた。大桟橋のクジラの背中で似たようなアングルで撮ることはあるけれど、こ…

JavaScriptでメモ化関数(つづき)

前回5/6に紹介したメモ化関数についてちょっと補足。メモ化した関数を別の名前にしてしまうと、下記のような再帰的な関数fibはそれ自体は高速化されない。2回目以降に同じ引数をもつときだけ高速化されるに過ぎない。 function fib(n) { return (n < 2) ? n…

JavaScriptでメモ化関数

Ajaxianで知ったエントリー A Better JavaScript Memoizer をメモ。memoizerは過去にも何度も話題になったと思うが、このmemoizerはクロージャを使って結果を保存しておくので、シンボル汚染が発生しないことが特長か。従来よくあるのは、プロパティを利用し…

本:「ネコ型社員の時代」

ネコ型社員度テスト 偉くなるより仕事の腕を磨きたい それはそうですね。社長にでもならない限り偉くなってもいつも上からのプレッシャーはあるもの。普通の人には到達できない一流を目指したいです。 仕事では持続力より瞬発力が大切だと思う 持続力も大切…

ECMAScript 5th Editionで改善された3rd Editionの項目

ざっと、5th Editionのドラフトを眺めてみて、3rd Editionの仕様の不備と思っていた部分が改善されているかどうかを調べてみた。以下、v3は3rd Edition、v5は5th Editionのこと。 for in文のinの右のパラメータがnullの場合 Annexにもちゃんと記述されている…

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

一昨日の4/30のことになるが、初めて高尾山に登った。ミシュランで三つ星観光地になって外国人も大勢上っているのに、日本人でしかも日帰りできる距離に住んでいるのに、これはぜひ行ってどんなところか確かめてみようと突然思い立って出かけた。ほとんど予…

横浜開港Y150の巨大クモを見てきた

Y150イベントの巨大クモが今日までということで、夕方に出かけて写真を撮ってきた。 先頭でなにやら楽器を大音響で演奏している。これが巨大クモ。 近くで見るとかなりの迫力がある。 信号もすれすれに切り抜ける。足を縮めたりしながら、標識や街路樹に…

本 「情緒から論理へ」

鈴木光司の初期の作品は好きだったが、この本を読んでとてもがっかりしてしまった。もうちょっと科学的・論理的な思考の持ち主だと思っていたが、この本は「トンデモ本」といってもいいくらい滅茶苦茶な内容。論理が重要だといっているが、話の流れが全然論…

ECMAScript 5th Edition final draft

ECMAScriptの第5版の最終ドラフトがリリースされていた。ECMAScriptV4は先進的な機構の導入が精力的に進められていたが、昨年のすったもんだの末、ECMAScript3.1相当に落ち着くことになって、言語的には大きな進展はみられない。

吾妻山公園の桜

昨日、二宮にある吾妻山公園に行ってきた。もう桜は過ぎているかなと、あまり期待しないで行ったが、まあまあの感じで天気もよくそれなりによかった。本当は富士山も撮りたかったけれど、家を出たのが遅かったので着いたのはお昼ちょっと前で、富士山はうっ…