2010-08-01から1ヶ月間の記事一覧

App::ginitというコマンドを書いたッ!

gitリポジトリを公開していない、ないしリポジトリがgitでないソフトウェアのソースコードをちょっといじりたいことがあります。そんなときは、大体以下のようにしてgitリポジトリを初期化してからソースコードをいじり始めるのがよくある方法だと思います。…

テンプレートエンジンの自動エスケープ機能について

最近Xslateの自動エスケープ機能について考えていたのですが、これは「この機能によって安全性が高まる」というものではなく(結果的にそうでないものより安全ではありますが)、むしろテンプレートエンジンとしてはこれこそ正しい振る舞いなのではないかと…

Xslate 0.1058の新機能

HTMLのソースを返す関数で正しくHTMLソースを出力させるには、戻り値をmark_raw()する必要があります。さもないと、自動エスケープ機構が働いてしまうからです。 このために、0.1057以前のXslateはわざわざラッパー関数を書く必要がありました。しかし、繰り…

Xslateのベンチマークについて

id:tokuhiromたちがベンチマークをいろいろいじったのですが*1、ベンチマークにリアリティを持たせるのはなかなか難しいですね。というわけで、ごちゃごちゃになっていたベンチマークスクリプトを、想定する環境を変えて二つに分けました。一つは、"rich env…

How slow "HTML escape" is?

そういえばXslateのHTMLエスケープってどのくらい遅いのだろか、と思い、変数展開のベンチマークに「HTMLエスケープなし」を加えて測ってみたところ、驚くべき結果になった。 以下の"xslate"が<: $value :>で、"xslate/raw"が<: $value | raw :>の速度の比較である。benchmark/interolate.p</:></:>…