2011-09-01から1ヶ月間の記事一覧

tornadoのクローラー

半年前に書いた記憶のあるtornado製のクローラー。よく覚えていないがそれなりに書かれていたので貼っておく。 仕様も動作も確認していない。EUC-JPなサイトもUTF-8に変換したりすると思う。 #!/usr/bin/env python import tornado.auth import tornado.esca…

socket.io v0.8でチャネリングさせた時のIDを指定したemit

前提知識 var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { var お前のID = socket.id }); でsocketの識別IDが取れる。識別IDが取れると var io = exports.io = require('socket.io').listen(app); io.sockets.s…

ブラウザのウィンドウサイズの変更を知れる

$(window).resize(function(e){ console.log('w:', e.currentTarget.innerWidth, 'h:', e.currentTarget.innerHeight); }); onresizeというイベントがjsにあった。知らなかった。

if文のだらしない分岐を出来るだけ減らす

var キャラクター = { ジャンプする : function() { this.y = 10 }, しゃがむ : function() { this.animate('しゃがみ'); }, もぐる : function() { this.animate('もぐる'); }, 右に動く : function() { this.x += 5; }, 左に動く : function() { this.x -=…

簡単なスライドのjQueryプラグインを作った

https://github.com/myatsumoto/fusuma/jQueryのスライドアニメーション系のライブラリを作った。 よくあるライブラリだが、決め打ちされたHTMLを加工するものが多くjsで操作しにくかったので自作した次第。 <div id='block'> <ul> <li>3</li> </ul> </div> こういうHTMLに対して $(function(){ var f…

よくあるifの分岐コード

var A = 1, B = 2, C = 3; var t = Date.now() % 3; if(t === A) { console.log('t is A'); } else if(t === B) { console.log('t is B'); } else if(t === C) { console.log('t is C'); } else { console.log('t is NaN'); } というようなコードをよく使う…

okite.js

okite.jsというバリデーションツールを現在進行形で開発している。 https://github.com/myatsumoto/okite バリデーションは重要だが、型チェックは非常に面倒 DAOやServiceなどの層で個別に作らなければならない なのでokiteとしてスキーマ的に定義しておい…

mongodbのスクリプト

テストツールでsetUpの時にdbをrevertするスクリプトを走らせている。dump.js /** * user collection */ db.users.drop(); db.users.save({ user_id : 'myatsumoto', name : 'akihiro matsumoto' }); /** * post collection */ var user_id = db.users.findO…

実行はしっかりバラバラだった件。

実行はしっかりバラバラだった件。 テストのような順序性が保たれないとならない処理はStepのような強制的に処理をブロックするようものを書かねばなるまい。 https://github.com/creationix/step自前テストツールもしっかりバラバラに実行されていたので se…

mongooseからだとexecも使えない

mongooseの闇の部分を見てしまった気がする。 var db = mongoose.connect('mongodb://localhost:27017/db_name'); のコードが入ると var exec = require('child_process').exec; exec('mongoose db_name hoge.js', function (error, stdout, stderr) { if(er…

expressとjadeのinclude

ぐぐっても出なくて困ってる人がいたら可哀想なので書いておくと server.js (express) app.configure(function(){ app.set('views', __dirname + '/view'); app.set('view options', { filename : __dirname + '/view/何でも良い.jade' }); app.set('view en…

mongooseのテストを実行できない

whiskeyやexpressoで試してみたが、mongooseを使ったテストは全てタイムアウトしていたので var tests = { 'ユーザを検索する' : function() { var searching = user_dao.find({}, [], {}); searching.on('end', function(user) { console.log(user); proces…

mongooseのテストを実行できない(2)

前述の"自前のテストツール"を先程作ったのでコピーすると良い。https://github.com/myatsumoto/taikokenchi現在の使用法(2011/9/4) var TaikoKenchi = require('./path/to/taikokenchi'); var tests = { '人間はキーボードではない' : function(test) { tes…