タグ

ブックマーク / blog.uu59.org (3)

  • uu59のメモ | Rails(Rack app)とNodeを両方動かしてストリーミングしたい

    Rails 4でSinatra::Streaming相当のストリーミング機構が入るとのことですが、そもそもRackやEventMachineに寄り添ったストリーミングは筋悪というか強引すぎると考えていて(Phusionの人の懸念に近い)、それなら最初から向いてるテクノロジーを使ったほうがいいよねと思いNode.jsを触ることにしました。 といってもストリーミングのためだけにすべてをNodeで書く気はなくて、メイン部分をSinatraやRailsで処理し、ストリーミング部分(EventSourceやWebSocket、あるいはSocket.IOに丸投げ)をNodeで処理し、この2つがZeroMQかなんかでプロセス間通信するのが理想かなと思っています。つまりクライアント(ブラウザ)はまずRailsに接続し、そこでnew EventSource('http://host:8080/sse')みた

  • uu59のメモ | MongoDBでもSQLインジェクションできる

    タイトルはわかりやすさ重視でつけたのでそれSQLじゃないよというのは承知の上です。 Attacking NoSQL and Node.js: Server-Side JavaScript Injection (SSJS) SSJS whitepaper(PDF) JSONをevalで作るようなのは論外として、NoSQL Injectionって項目が面白かったのでメモ。 まずMongoDBにはfind()っていうのがあるんですが、一般的にはdb.find({x: 42})のようにオブジェクトを渡してxプロパティが42のレコードを取得する、といった用途に使います。が、db.find("this.x == 42")のように文字列を渡しても同じ結果が返ってきます。これはMongoが受け取った文字列をevalしてるせいです。試しにmongoコンソールでdb.find("while(1){};retu

  • uu59のメモ | 訳:Node.jsは癌だ

    http://d.hatena.ne.jp/yosuke_furukawa/20111002/1317572377で知って、原文を読んでみたら罵倒しまくってて面白かったので全文翻訳してみました。 原文はNode.js is Cancerです。 ウェブデベロッパー逹は伝統的なやり方よりも冴えたやり方が大好きだが、伝統的なやり方がなぜ伝統になってるかというと動きやがるからだ。Node.jsのナンセンスな振る舞いにはしばらくムカついてたが、Node.js作者のRyan Dahlによるこのポストを読むまでは相手しないようにしてた。「UNIX難しいよぅ」とか弱音を吐くよく居るタイプのマヌケに肩をすくめていただけだ。 でも、家族連れのミニバンをガサ入れしたら50kgの上物ヘロインを見つけてしまった警官が世の中間違ってると感じるように、こいつの弱々しいすすり泣きの何が間違ってるのか考えた。たぶん、たぶん

    morygonzalez
    morygonzalez 2011/10/05
    if (typeof my_var !== "undefined" && my_var !== null) { // Rasmusも顔負けのマヌケだね! }
  • 1