« 2006年10月 | メイン | 2006年12月 »

2006年11月30日

JavaScript で非同期処理

 setTimeout って、JavaScript の黒歴史だよね、ってのはおいといて。IT戦記 - 関数を非同期化して汎用性を高めるを見て、おもしろそうだったので汎用化してみました。でも、あまり実用性がなさそうです。

function async(wait) {
    if (arguments.length == 1) return;
    var conn = arguments[arguments.length - 1];
    for (var i = arguments.length - 2; i != 0; i--) {
        conn = (function (f, c) {
            return function () {
                var args = [ f.apply(null, arguments) ];
                setTimeout(
                    function () {
                        c.apply(null, args);
                    },
                wait);
            };
        })(arguments[i], conn);
    }
    conn();
}

async(
    10,
    function () { return 'a'; },
    function (x) { return x + 'b'; },
    function (x) { return x + 'c'; },
    function (x) { alert(x); });

 

 残念ながら、JavaScript には非同期メッセージを同期化する方法はない!残念!><ほんとに残念!

 JavaScript 1.7 なら yield でできるんじゃないかと思いました。

投稿者 kazuho : 2006年11月30日 10:58 | コメント (2) | トラックバック (1) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年11月29日

独自ドメインにおける DNS の設定

 レンタルサーバを使って独自ドメインのウェブサイトを立ち上げる際、悩むのが DNS の設定です。王道としては、レンタルしたサーバでプライマリサーバを立ち上げセカンダリはどこかのサービスのものを使用するというパターンと、まるごと Dynamic DNS のようなサービスに頼るというパターンがあると思います。しかし、他の選択肢も存在します。DNS は学習曲線が長そうなので近づかないようにしてきたのですが、今回、mylingual.net というドメインを取得したので、いろいろ試してみることにしました。

1. DNS サーバは2つ以上必要なのか

 独自ドメインで運用するサーバが一台のみなのであれば、その1台でウェブサーバと DNS サーバを兼用させ、セカンダリ DNS を使用しないという手もあります。一般に DNS サーバを複数台用意すべきとされる理由は、1台の DNS サーバが落ちた際にドメイン全体が使用不可能にならないようにするためです。しかし、ドメイン唯一のサーバであるウェブサーバと同時に DNS サーバが落ちるのであれば、あまり問題がないはずです注1
 全てのドメインで可能なわけではありません注2が、.com や .net といった gTLD ではプライマリ DNS とセカンダリ DNS に同一の IP アドレスを登録することにより、このような運用が可能です。

2. グルーレコードの積極的な活用

続きを読む "独自ドメインにおける DNS の設定"

投稿者 kazuho : 2006年11月29日 10:41 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年11月24日

「ITアーキテクト」誌のインタビュー

 ITアーキテクト vol.8の、「トップ・アーキテクトの履歴書」という連載でとりあげていただきました。やっぱりインタビューを受けるのはいいですね。自分の志向を見つめなおすことができます。

 自分のような立場の技術者にとって、どのように新しいことに挑戦していくのか、またその「引き出し」として何をもっているのか、そういったことをうまく整理してまとめた記事を書いていただけたと感じています。ありがたいことです。

 ITアーキテクト誌は、今回はじめてじっくり読んだのですが、ふだん読まない類の内容で楽しめました。これもまた、ひとつの「引き出し」になるのかな、なんて思いました。

投稿者 kazuho : 2006年11月24日 15:17 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年11月07日

JavaScript の文字列定数でエスケープが必要な文字

 Re: Mozilla Firefox の JavaScript インタプリタが特定文字を読み落とす件、ということでまとめ。

 JavaScript の文字列定数でエスケープが必要な文字は、下表のとおりウェブブラウザによって異なるようです。

続きを読む "JavaScript の文字列定数でエスケープが必要な文字"

投稿者 kazuho : 2006年11月07日 06:45 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年11月06日

Mozilla Firefox の JavaScript インタプリタが特定文字を読み落とす件 (JSON のエスケープ)

 Japanize において、ペルシア語の翻訳が一部動作しない問題注1を調査していたのですが、Mozilla Firefox (SpiderMonkey) は、JavaScript の文字列リテラル中の U+200C あたりを読み落とすようです注2

 たとえばこのスクリプトは 1 を返すべきだと思うのですが、 Firefox でクリックすると結果は 0 です。IE と Opera は大丈夫。

javascript:eval('var s = "\u200c"'); alert(s.length)

続きを読む "Mozilla Firefox の JavaScript インタプリタが特定文字を読み落とす件 (JSON のエスケープ) "

投稿者 kazuho : 2006年11月06日 15:57 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク