タグ

ブックマーク / www.geminium.com (5)

  • へぼへぼCTO日記 - javascriptからsocketが扱えるJSocketを作りました

    javascriptからsocketを扱いたいなぁという事象が発生したんですが(それについては別エントリで)、SocketJSというのがあるんですがDownloadするところがなぜかSSLになっていてCAがCAcertでfirefoxだとデフォルトでは見れないので、かっとなって自分で作ってみました。今も反省していません。 コードはgithubからどうぞ。 使い方はjs/jsocket.jsに軽く書いてあります。 /* * Jsocket - Socket on Javascript * Author: Masahiro Chiba * Depends: * - jQuery: http://jquery.com/ * - jQuery TOOLS - Flashembed: http://flowplayer.org/tools/flashembed.html * SYNOPSIS:

  • へぼへぼCTO日記 - JSocketを使ってPOSTもストリーミングするPlackアプリ

    さて、前エントリでJSocketというのを作ったと書いたのですが、これは実はjavascriptで動くtwitter streamクライアントを作るならばmultipart/mixedを使うべきというのを読んで、レスポンスがpollではなくてストリーミングできるというのを知って、リクエストもやりたいよというふうに思ったのがきっかけでした。 まず、XHRでできないかを試してみたのですが、xhr.send(data)を一回読んでしまうと少なくともjavascript側ではリクエストは完了したと思ってしまって、再度xhr.send(data)しても反応はありませんでした。 そこでJSocketの登場です。JSocketを使うとhttpリクエストを断続的に送信することができます。やったですね。 で、Plack::Server::Coroを使って試しにリアルタイムチャットを作ってみました。どうぞお試

  • へぼへぼCTO日記 - mod_psgi試してみた

    mod_psgi をインストールしてみたをみて速くなるなら試してみようということでmod_psgiを試してみますた。 まずはこんな感じの簡単なPSGIアプリで。 my $app = sub { return ['200', [Content-Length => '5'], ['hello']]; }; [hello] mod_psgi Requests per second: 1403.51 [#/sec] (mean) mod_perl Requests per second: 668.33 [#/sec] (mean) Standalone Requests per second: 452.00 [#/sec] (mean) Standalone::Prefork Requests per second: 448.93 [#/sec] (mean) おおおお。超絶早いですね! で、お次

    kazeburo
    kazeburo 2009/10/16
  • へぼへぼCTO日記 - libmysqlclientを使うプログラムはset namesをutf8であっても使ってはいけない

    mysql_enable_utf8 => 1 で DBIC::UTF8Columns 要らなくなるっぽいComments 上記の記事のブクマに set namesを直接実行しちゃうのはutf8であってもコンパイルオプションによっては問題起こるのでお勧めできない http://b.hatena.ne.jp/nihen/20090204#bookmark-11950629 ってことを書かせてもらったんだけど、この最後のset namesはutf8でも使っちゃダメという話を軽く説明します。 まずは、基的なことはMySQL5開拓団 - 日語処理の鉄則 / KLab株式会社を読んでください。mysqlの日語処理についてのドキュメントとしては、私は今一番信頼できるドキュメントだと思っています。 さて、上記のページのを、勝手ながらすべて引用させていただくことにする。(手抜きもいいところだな) ■

  • へぼへぼCTO日記 - Template::Stash::EscapeHTMLByCase(TTでXSS対策)

    TTでのXSS対策としては下記の2つの方法がまずは考えられます。 1. [% data | html %]のようにFILTERをすべての変数出力部分に使う 2. Template::Stash::EscapeHTMLを使って自動的に全ての変数出力をEscapeする 1は毎回"| html"と書くことになるので、間違いが置きやすいので2を使うことが多いのですが システム側からescapeしないで出力したいとか、INCLUDEで変数を渡したいとかいうときに問題がでてしまう。 INCLUDEの話はどういうことかというと たとえば、ヘッダーをheader.ttというファイルにまとめて共有で使っており 渡された変数を用いてタイトルを構成するときなんかがあったとする。 (ちなみにMETAだと変数は渡せない) content.tt [% INCLUDE header.tt title =

  • 1