2012年10月5日金曜日

node.js + express + socket.io 仕様変更対応

expressとsocket.ioのAPI仕様が変わったらしく、適当にアップデートしたら動かなくなってしまった。
対処方法は下記の通り。

サーバー側
var express = require('express')
  , app = express();
  , io = require('socket.io').listen(app.listen(3000));

app.configure(function(){
 app.use(express.static(__dirname + '/public'));
});

クライアント側 HTML
<script src="/socket.io/socket.io.js"></script>

参考にしたページ
「Cannot GET /socket.io/socket.io.js」の解決法 (Node.js v0.8.0/express v3.0.0/socket.io v0.9.6)

2012年10月3日水曜日

vimで一括処理

文字コードや改行コードを一括で変換したい時や特定の文字列を置換したい時に、nkfがなくても、sedを知らなくても、vimさえあればなんとかなります。

1. Vimを起動する

2. カレントディレクトリを置換対象のファイルがあるディレクトリに移動する
:cd foo

3. 引数リストにファイルを追加する
例. カレントディレクトリ以下の拡張子がcのファイル。
:args  **/*.c

4. 確認する
:args

5. 置換する
例. エンコーディングをutf-8、改行コードをLF、タブをスペースにする。
:argdo fenc=utf8 ff=unix et | update

余談
argdoの他にbufdo、tabdo、windoもある。
argsの他に個別に追加削除するためのargaddやargdeleteもある。