Entries from 2008-04-01 to 1 month

PHPerはもっと__toString()を使ったほうがいい

PHP

(前回までのあらすじ) 「PHP」とは最近流行の、ドメイン固有言語だったものが汎用化してえげつなくなったスクリプト言語です。 val = $val; } function __toString() { return htmlspecialchars($this->val); } } $vars = array( 'a' => '<test>', 'b' => '<aho>', 'c' </aho></test>…

data: スキームと Location: ヘッダ

ふと気になって Location: ヘッダに data: スキームを指定した場合ブラウザがどういう挙動を示すのか試してみた。慣れているので WEBrick で。 require 'webrick' require 'uri' s = WEBrick::HTTPServer.new(:Port => 8080) class MyServlet < WEBrick::HTT…

Pyrex / Cython で C++ の参照を扱う方法

またまた頭が悪いせいで予想以上に時間をかけてしまった。例えば次のようなクラスを Pyrex (Cython) でラップすることを考える。 template<typename T_> struct position: public boost::array<T_, 3> { position() { (*this)[0] = 0; (*this)[1] = 0; (*this)[2] = 0; } positio</t_,></typename>…

g++の末尾再帰の最適化 (-foptimize-sibling-calls)

これを当てにできるなら、かなり Boost.Preprocessor 使わずにすむかもという。 #include <functional> #include <iostream> #include <cstddef> template<std::size_t Nrep_, typename Timpl_> struct iter { inline void operator()(Timpl_& op) const { op(Nrep_); iter<Nrep_ - 1, Timpl_>()(op); } }; template<typename Timpl_> struct iter<0, T…</typename></nrep_></std::size_t></cstddef></iostream></functional>

なんでもありな感じ

form card month year number filetype:phpあたりはメジャーだけど filetype:xml crossdomainそうか、この手もあったんだな...cf. WTF in Kabuki-cho?

すごくどうでもいい事だけど

Boost.Variantのドキュメントにある以下の説明は穏やかにBoost.Anyをdisっているように見えなくもない。つか Boost.Any の swap で no-throw が保証されてるのはポインタ同士の交換だからで、それなら別に Boost.Variant でポインタを束ねてもいいし…。 Of c…

Boostのカテゴリ分け

Boostがどんどん肥大化しているのに眉をひそめる人は少なくないと思う。私なら以下のようにカテゴライズして提供しようと考えるけども、いまだにモノリシックなやり方を崩さないのはなんか理由があるんだろうか。ちなみに、以下のリストではライブラリ間の依…

Vellumを試してみた

Zedがなんだか頑張っているようなのでVellumを試してみた。Pythonで書かれた「超」単純なビルドシステムであったはずが…Python文法のサブセットを解釈するパーザ (Zappで書かれている) を追加したりとか、よく分からないことになっている。リンク先には詳し…

Boost.MPLのlambdaがようわからん

コンテナのリストが与えられたとき、そのすべての要素のvalue_typeが同じであるかどうかを調べるメタ関数を書いているんだけど、腑に落ちないのが以下。 #include <boost/mpl/vector.hpp> #include <boost/mpl/at.hpp> #include <boost/mpl/if.hpp> #include <boost/mpl/fold.hpp> #include <boost/mpl/bool.hpp> #include <boost/mpl/and.hpp> #include <boost/mpl/lambda.hpp> #include </boost/mpl/lambda.hpp></boost/mpl/and.hpp></boost/mpl/bool.hpp></boost/mpl/fold.hpp></boost/mpl/if.hpp></boost/mpl/at.hpp></boost/mpl/vector.hpp>

Mozo.PHPのアーカイブを更新しました。

オレンジニュースにて紹介していただいたようなので、ダウンロードのリンク先を修正しておきました。RSSリーダで再度上に上がってきてしまった方、すみません。こちらにも念のため: http://voltex.jp/downloads/mozo-php-20080405.tar.bz2

libffi 3.0.5 リリース

libffi (x86) のクロージャがbuggyな件で書いていた問題が修正されたlibffi 3.0.5がリリースされた模様。 ">ChangeLogいろんなプロジェクトで自分の名前が無意味に拡散している今日このごろ。 パッチだけじゃなくてゴリゴリ貢献したいよなあ。追記: 過去に作…

続Boost.GILで遊んでみる。

昨日のサンプルをさらに発展させて、縮拡・回転に挑戦してみた。実際に動作させたところ: http://video.google.com/videoplay?docid=-8908866618776833085 #include <iostream> #include <cmath> #include <boost/lexical_cast.hpp> #include <boost/gil/typedefs.hpp> #include <boost/gil/extension/io/png_io.hpp> #include </boost/gil/extension/io/png_io.hpp></boost/gil/typedefs.hpp></boost/lexical_cast.hpp></cmath></iostream>

Boost.GILで遊んでみる

遊んでいるというか、遊んではいないんだけど。PNG画像を読み込んでアスキーアートぽく出力するサンプル。 #include <iostream> #include <boost/gil/typedefs.hpp> #include <boost/gil/extension/io/png_io.hpp> int main(int argc, char** argv) { namespace g = boost::gil; if (argc <= 1) return -1; g::rgba8_image_t img; g</boost/gil/extension/io/png_io.hpp></boost/gil/typedefs.hpp></iostream>…