2014
10/21
10:43

これ以上ない簡潔明瞭な現在完了形と現在完了進行形の使い方説明Latest!

[英語]

facebookでスイスの知人に教えてもらった考え方です。 最初聞いた時は「ふーん」という感じだったのですが、その後使えば使うほどこれはすごくいいなと思うようになったのでご紹介します。 ** 現在完了形は過去の出来事だけど現在にいたるまでの広がりがあると自分が感じているときに使う ** たったこれだけ。 これだけで文法書にあれこれ書かれている全部の用法が説明できます。経験だとか継続だとか細かく分類して考えるのが馬鹿らしくなりますね。 これを理解すると、大西・マクベイの本にのっている「現在に向かってくる感覚」という解説もなるほどと思うのですが、それだけ読んでも私は正直ピンときませんでした。

... [この記事を開く]
2012
04/27
09:04

Socket.IOのログレベルを変更する

[Socket.IO]

デフォルトではデバッグメッセージがズラズラ出るようになっているのでうっとおしいです。 サーバ側でログレベルを変更できます。 ``` io = io.listen(http, {'log level': 1}) ``` デフォルトでは3になっています。 lib/logger.jsを見ると * 0 error * 1 warn * 2 info * 3 debug ということのようです。 実運用環境では1あたりがよいんではないでしょうか。

... [この記事を開く]
2012
04/26
11:46

nginx + Socket.IOでつながらないときはポート番号を指定してみる

[Socket.IO][nginx]

nginxをnginx_tcp_proxy_moduleのパッチを当ててコンパイルしていることを前提として、 (参考:http://memo.yomukaku.net/entries/342) クライアント側でポート番号を指定してやれば良いです。

... [この記事を開く]
2012
04/25
05:01

express3とSocket.IO

[express][express3][Socket.IO]

express3だとSocket.IOのページにあるexpressとの連携の例はブラウザで ``io is not defined`` というエラーが出て上手く動きません。 このエラーはサーバ側のコードを次のようにすることで回避できます。

... [この記事を開く]
2012
04/24
07:58

connect-redisでセッション管理

[express][redis][express3]

expressのセッションはデフォルトでメモリに保存されるのですが、 環境変数にNODE_ENV=productionを与えて動かすと、メモリストアは実運用向きじゃないよ、という警告がでます。 また、複数のnodeプロセスを動かしてラウンドロビンで負荷分散する場合などにもメモリに保存しているとセッションの共有ができません。 そこでセッションデータをDBに保存するようにします。 connect対応セッションストアには MongoDB対応、CouchDB対応、memcache対応、MySQL対応など複数ありますが、

... [この記事を開く]
2012
04/22
06:29

expressでURIError: URI malformedが頻発

[express][URIError][node.js][express3]

expressのログに URIError: URI malformed というエラーがでまくっていて、 何事かと思って調べてみたら原因はURLに含まれているエンコード済み文字列が壊れていることでした。 タイトルをencodeURIComponentを使ってエンコードしてURLに入れているのですが iPad用のニュースリーダのFlipboardというのが途中でこのURLをぶった切ってくれるらしく、 不正なエンコード文字がdecodeURIComponentに渡されて、URIErrorが発生していました。

... [この記事を開く]
2012
04/21
06:31

nginx + nodeの構成で502エラーページを変更する

[node.js][nginx]

メンテなどでnodeのプロセスを落としているとnginxが502 Bad Gatewayというエラーページを返してくれるのですが、 あまり親切ではないので自前のページを用意することにします。 nginx.confにエラー時のページ移動設定を追加します。

... [この記事を開く]
2012
04/18
22:23

非同期祭りを乗り切るためのsynchronize(とasyncblock)

[node.js][synchronize][asyncblock]

東京node学園5時限目のUst楽しかったです。 Twitterでつぶやいた質問が会場で採用されたりして一人で盛り上がりました。 運営の皆さん、発表者の皆さん、ありがとうございました。 この勢いを駆って一つエントリを。 node(やjQuery)でコードを書いているとコールバックが積み重なって 非同期地獄とか非同期祭りとか言われる状態になることがあります。 これを緩和するための方法は色々あって、古くはRyanがデモで紹介していた コールバックを関数オブジェクトとして外に出す方法から、

... [この記事を開く]
2012
04/17
16:42

supervisorでプロセス管理

[ubuntu][サーバ][supervisor]

いままでnodeをはじめ、mongodb、nginx、redisのプロセス管理をdaemontoolsでやっていたのですが、 新サーバに移行してからredisがしばらくすると(30分〜)無反応になるという現象に悩まされていました。 redis-cliで keys * としても無反応でそのまま固まってしまう謎の状態で、 svc -t でredis-serverのプロセスを再起動しても駄目、一旦 svc -d で落としてから再度起動すると普通に動くのです。 手元の開発環境ではsvcを使わず直にredis-serverを立ち上げていて、

... [この記事を開く]
2012
04/16
10:34

express3.0.0 alpha1がリリースされました

[express][node.js][express3]

作者のブログで3.0.0 alpha1のリリースがアナウンスされました。 http://tjholowaychuk.com/post/21162751096/express-3-0-0-alpha1 これによって ``npm install`` とするだけで最新のexpressを利用できるようになっています。

... [この記事を開く]
2012
04/13
10:06

jsonバリデータはAmandaがイチ押しでしたが・・・

[node.js][amanda]

** 0.4.0の仕様:プロパティ名に_があるとtypeチェックをすり抜ける **

... [この記事を開く]