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

textareaでタブを入力できるようにする

document.querySelector("textarea").addEventListener("keydown", function(e) { if (e.keyCode === 9) { e.preventDefault(); var elem = e.target; var val = elem.value; var pos = elem.selectionStart; elem.value = val.substr(0, pos) + '\t' + val.…

正規表現のメタ文字をエスケープ

正規表現にマッチさせるときにメタ文字があるとエラるので var foo = 'hoge(fuga'; 'hoge(fuga'.match( new RegExp(foo) ); // error こうすといいらしい。 var foo = 'hoge(fuga'.replace(/\W/g,'\\$&'); 'hoge(fuga'.match( new RegExp(foo) ); // ok

mongooseでunsetできない

isuueあがってた https://github.com/LearnBoost/mongoose/issues/519Stringのカラムなら空文字とかにすればいいんだけど、ObjectIdとかにしてると詰む。unsetできないし空文字いれようとするとInvalid ObjectIdとかでエラるし。一度セットしたObjectIdの値…

lessのエラーハンドリングがイマイチ

lessけっこういいんだけどエラーハンドリングがイマイチで困る。@importでファイルがなかった場合process.exit()しちゃう。オーマイガ。 https://github.com/cloudhead/less.js/blob/198f7c9d96c1f70bb800afdd7bda5f2ce0e9d2b1/lib/less/index.js#L115-116pa…

chain-tinyにparallel追加

https://github.com/hokaccha/node-chain-tiny配列かハッシュを受け取って並列に処理して全部終わったら次に進む。nextに渡したのがresultsで受け取れる。まあ普通です。 var r = []; chain.parallel({ foo: function(next) { setTimeout(function() { r.pus…

jadeがテンプレート継承サポートしてた

0.16からextendsがサポートされたみたい。あとmixinとかincludeとかも0.13からサポートされてるみたい。expressのjadeのexsampleもextends使ったのになってる。 https://github.com/visionmedia/express/commit/a4aed5f51a2798b258efcbde89b55097f46e520blay…

animation-fill-mode

css

CSSのanimationsで始まりと終わりの位置を決めるプロパティらしい。これ知らんかった。 http://dev.w3.org/csswg/css3-animations/#the-animation-fill-mode-property-

expressでルーティング一覧を表示する

TJが書いてた。便利。 https://gist.github.com/1288766メソッドに色つけてパスでソートしてみた。 https://gist.github.com/1288919app.all('hoge') があったとき破綻するw

lessでGoogle Web Fonts APIがエラる

lessでこれがエラる。 @import "http://fonts.googleapis.com/css?family=Smythe"; file 'http://fonts.googleapis.com/css?family=Smythe.less' wasn't found..lessか.cssで終わらないやつに勝手に.lessってつけてないよっていわれる。issueにあがって直っ…

文字列のバイト数を求める

connectのmiddlewareつくって、なんか途中でレスポンスが切れてておかしいなと思ってたら、こうなってた。 res.writeHead(200, { 'Content-Length': str.length }); lengthだとマルチバイトも1とカウントするのでマルチバイトが入ってた場合にlengthが合わな…

DOMをプレーンなオブジェクト(ハッシュ)にする

<div> <div>foo</div> <p>bar</p> </div> こんなのを { div: { div: 'foo', p: 'bar' } } こんな感じにしたい。jQueryプラグインで書いてみた。 http://jsfiddle.net/hokaccha/syEH2/今回は属性は必要なかったんでめんどいし無視した。あとこういうのもうまくいかない <p>hoge<span>fuga</span>piyo</p>

chain-tinyというのを書いた

https://github.com/hokaccha/node-chain-tinyflowコントロール系のモジュール。flowコントロール系はnpmで探せば腐るほどあるのにも関わらずなんで書いたかというと、自分で書いて動作をちゃんと理解したかったからというのが最初の動機。書いてみると結構…

nodeunitでテストの最初と最後だけ処理したい

ようはDBの接続と切断をしたいんだけど、テスト全体の最初と最後になんか処理するみたいのはできんのかな。nodeunit.testCase()のsetUpとtearDownは一回のテスト毎に実行されるから毎回接続/切断してるとテストの速度が落ちるんだよなあ。 module.exports = …

connect sessionのデフォルトの生存期間

デフォルトのmaxAgeは14400000なんだけど、なんかすごく長いように見えてmsなんで実は4時間だった。

connect 2.0.0alpha1 Released

connectの2系がリリースされた。結構インターフェース変わってるっぽい。あと気を付けないといけないのがnpmにもあがってて、nodeのバージョンの依存が >= 0.5.0 すでにこういう問題が起きてる。 https://github.com/kcbanner/connect-mongo/issues/11これpa…

async.mapとかのサンプルの引数

https://github.com/fjakobs/async.js async.map(['file1','file2','file3'], fs.stat, function(err, results){ // results is now an array of stats for each file }); ぱっと見fs.statのところがわからんかったけど、まず素直に書くとこう。 async.map([…

mongo shellでpretty print

db.foo.find().pretty()でできた。

package.jsonに--mongodb:nativeとか書く方法がわからない

GitHub - davglass/express-session-mongo: MongoDB session storage for ExpressJS これ使おうと思ったら this._db = new Db( dbName, server, { native_parser:true }); ってハードコードしてあって強制的にmongodbのBSONのネイティブパーサー使わないとい…

カッとなってconnect-external-sassというのを書いた

気晴らしに書いた。npmには上げてない。 GitHub - hokaccha/node-connect-external-sass: node-connect middleware for sass. using external ruby sass command.sassを動的にコンパイルするconnectのミドルウェア。node版のsassは微妙なんでこの際思い切っ…

expressとかconnectのmasterは開発ブランチ

expressとconnectウォッチしてて、ずっとmasterしか見てなかったけど、どうやらmasterは開発ブランチだということが最近わかった。connectのインターフェースがやたら変わってるんだけど、npmにリリースされてるのは前のインターフェースだということに気づ…

githubの言語ランキング

git

https://github.com/languages こんなんあるのね。github上ではjsが今のところ一位らしい

.npmignore書くべし

npmにアップするときは.npmignoreに書いたファイルは除外される。書くの忘れててconfyに.vimrc.projectとかいう恥ずかしいファイルが上がってた。内容どうするかだけど、他の人の見てみると.git*とかtest/とかが多いかな。testをnpmignoreするかどうかが迷い…

mongodbでdatabaseの削除

mongo shellで > use dbname > db.dropDatabase()ドキュメントここ。 http://www.mongodb.org/display/DOCS/dbshell+Reference

TwitterのStreaming APIでHTTPSが必須に

なったみたい https://dev.twitter.com/blog/streaming-api-turning-ssl-only-september-29th