sudo aptitude install redis-server
expressコマンドの-cオプションでstylusを指定してみたら...できた。
さっき「新星Stylus」とか書いちゃったけど、既にExpressで採用されているところをみると、もしかして既にメジャーだったり? とにもかくにも、これは嬉しい誤算。猛烈にめんどくさがりなので、デフォルト状態でexpressコマンドで雛形を自動生成できるのはありがたい。
JSON文字列をJSオブジェクトに復元したい場合は、JSON.parse(text, reviver)を使用します。
textはJSON文字列。
reviverは省略可能で、function(key, value)と言うシグネチャの関数オブジェクトを渡します。文字列→JSの変換ルーチンを独自に提供できます。
てな感じで非常に便利なJSON.stringify/parseですが、とにかく困るのが以下の二点。
JSON文字列からDateを復元できない
Date型をJSONに変換すると、ISO-8601形式の文字列になるんですが、その文字列をparseしても元に戻らない。
JSON.parse(JSON.stringify(new Date()));
2009-09-07T04:49:43Z // 上の実行結果は、ISO-8601形式のStringになる。Dateが戻ってきて欲しい・・・
そもそも、JSONの仕様にDate型が含まれていないのがツライところなんですが・・・
Date型をstringifyすると、ブラウザによって実行結果が異なる
上の説明で、「Date型をJSONに変換すると、ISO-8601形式の文字列になる」と書きましたが、ここにも問題が潜んでます。
ブラウザによって、シリアライズした結果の文字列が微妙に異なってしまうのです。
JSON.stringify(new Date())を各ブラウザで実行した結果は以下の通り。
Firefox・・・2009-09-07T04:49:43.400Z
Safari4・・・2009-09-07T04:49:43Z
一見して分かる通り、Safari4ではミリ秒の情報が抜け落ちてしまっています。
見た目はJQMに似てますね。似てるというかモロあれですがwzepto.js をベースにして、JQMライクな軽量モバイル向けフレームワークのZoeyが作られました。20KBほどのスクリプト1つで実現できます。
ckw.exe (実行ファイル)
ckw.cfg (設定ファイル)
の2つを任意の"C:\Program Files\ckw"のようなディレクトリにコピーすれば動きます。
ちなみに、私はC:\usr\binにnyacusと共にコピーし使用しています。パスが通ってるとWin+RやVistaスタートメニューの検索窓などからも実行でき便利です。
開発する時に、srcとlibという2つのディレクトリを用意し、srcに.coffeeファイルを置き、コンパイル後の.jsファイルはlibに置くというように分ける場合があります(リスト5)。
リスト5 srcとlibにディレクトリを分けた例
src/
hello.coffee
bonjour.coffee
lib/
hello.js
bonjour.js
このような場合に「-o」オプションが便利です。次のように使用すると、srcディレクトリ以下にあるすべての.coffeeファイルがコンパイルされ、libディレクトリ以下に同じ階層構造で出力されます。「-o」の直後に出力ディレクトリ名を指定します。
$ coffee -c -o lib src
「-w」と「-o」を両方指定すると待ち状態に入り、srcディレクトリ内の.coffeeファイルのいずれかの内容が変更されるたびに再コンパイルされます。
$ coffee -c -w -o lib src
19:16:34 - compiled src/hello.coffee
19:16:34 - compiled src/bonjour.coffee
待ち状態の間は、ソースファイルが新しく作られた時は自動的に認識されてコンパイル対象となり、ソースファイルが削除された時は出力先ディレクトリからも削除されます。