タグ

ブックマーク / paulownia.hatenablog.com (5)

  • ApacheのSetEnvIfで間違った正規表現が拡散してる件 - NullPointer's

    最近、自分のサイトを自宅サーバに移行したのだが、アクセスログファイルにcssや画像のログも記録されていてウザい。 って事でコンフィグを弄る。 SetEnvIf Request_URI "\.(jpg|png|gif|css|js)$" nolog CustomLog /var/log/apache2/access_log combined env=!nologところで「SetEnvIf CustomLog」とかで検索すると、こいつの解説をしているサイトがいくつか出てくるんだけど、何故かどのサイトでも正規表現が "\.(jpg)|(png)|(gif)$"となってる。この正規表現は、Request_URIが「.jpgという文字列を含む、またはpngという文字列を含む、またはgifという文字列で終わる」という意味。なので /pngxxxx とか /hoge.jpgaaaa みたいなパスでもログ

    ApacheのSetEnvIfで間違った正規表現が拡散してる件 - NullPointer's
  • mongoDBでだいたい新しい順番にドキュメントを取得する - NullPointer's

    mongoDBのコレクションにはnatural orderという概念があります。sortせずにfindするとインサートされた時間が古いものから順番に取得されますが、この並び順がnatural order。 新しい順にドキュメントを取得したい場合は sort に { $natural: -1 } と指定すればおけー db.Hoge.find().sort({ $natural: -1 }); 連番フィールドや時刻フィールドを用意してsortするよりもかなり速いです。 ただし、natural orderはディスク上の物理的な順番なので、分散環境でチャンク移動が発生した場合や、updateでドキュメントが大きく変更された場合などに変わってしまいます。だいたい新しい順でいいやー、というようなゆるい状況でなければ使えません。 ※ capped collectionはインサート順とnatural or

    mongoDBでだいたい新しい順番にドキュメントを取得する - NullPointer's
  • node.jsで行処理 - NullPointer's

    追記:今はこちらのライブラリがおすすめ www.npmjs.com node.jsにはテキストを読み込んで行毎に処理できるライブラリがないので、自前で行処理を行う必要がある。 何も考えてないバージョン 何も考えなければ、難しくない。 var fs = require('fs'); var rs = fs.createReadStream("a_big_text_file.txt"); var data = ""; rs.on("data", function(chunk) { data += chunk; }); rs.on("end", function() { var lines = data.split('\n'); lines.forEach(function(line) { console.log(line); }) }); しかし、これはイケてない実装。使い捨てスクリプトで使う

    node.jsで行処理 - NullPointer's
  • Array.prototype.map - NullPointer's

    chromeでnative版とjQuery版のベンチを取ってみたら倍ぐらい違ったのでjQueryを使わないで実装。native版とほぼ変わらない実行速度になりました。 if( typeof Array.prototype.map === 'undefined') Array.prototype.map = function($callback){ var len = this.length; var $_ = new Array(len); for(var i =0; i コールバックについて2点ほど… 一つ目は、コールバック関数の引数。ECMAScript 5thのArray.prototype.mapの仕様では、コールバックには3つの引数が渡されます。最後の引数には配列自身が入ります。 [1,2,3,4].map(function(a,b,c){ return a + c[b] })

    Array.prototype.map - NullPointer's
  • jQuery 1.6のpropメソッド - NullPointer's

    1.6で prop というメソッドが出来たそうだよ。 John Resig - jQuery 1.6 and .attr() 英語よく分からんが、http://api.jquery.com/prop/ 等も読んでみると、どうやらこういう事らしい。たとえば <input type="checkbox" id="a" checked="checked"> に対して $("#a").attr("checked") という操作が可能だが、この操作で取得される値はなんだろうか? HTML属性値として checked という文字列が返るのか、DOMプロパティとして true という真偽値が得られるのか良く分からない。これを厳密にわけるため prop メソッドが追加された。 jQuery1.5以前では $("#a").attr("checked") // => true jQuery1.6では $("#

    jQuery 1.6のpropメソッド - NullPointer's
    aki77
    aki77 2011/05/17
    『propはDOMプロパティ、attrはHTML属性と使い分けできるようになった』
  • 1