タグ

ブックマーク / moriyoshi.hatenablog.com (7)

  • PHPをGoogle App Engineで動かす用のQuercusを公開した - moriyoshiの日記

    追記: 詳細な手順がマイコミジャーナルに掲載されました。竹添さん、ありがとうございました。 ここで書いた件ですが、forkしたコードをGitHubに上げました。 http://github.com/moriyoshi/quercus-gae/ 手順は以下のファイルに書いてあります。 http://github.com/moriyoshi/quercus-gae/blob/137fe37e74273a0035bbfcef24723c73c15a948b/HOWTO 似たようなことをやってた方がいました。 http://brian.brispace.net/2009/04/09/php-on-google-app-engine/

    PHPをGoogle App Engineで動かす用のQuercusを公開した - moriyoshiの日記
    hiro_y
    hiro_y 2009/04/13
    Google App Engine用のQuercus。PHP実行環境。
  • PHPのhtmlentities()で (HTML4.0的に) 余計に実体参照に変換されてしまう文字の一覧 - moriyoshiの日記

    Bug #46478でid:hnwさんに報告していただいたバグを修正しようと思って作成したものですが… そもそもこのバグを作ったのは私で、5年くらい前の話になりますが、HTML4.0でサポートされている実体参照のテーブルではなく、Unicode 1.1 以降は obsolete となっている SGML マッピングを採用してしまったのが事の発端であり、若気の至りなわけです。 例えば ┌|∵|┘ このようなはにわのAAが ┌|∵|┘ になってしまうところから推し測られるように、日中のユーザサポートの方々のCPU時間を無駄に浪費させるような、凶悪極まりないバグとなっています。 ∵などでググることで、影響の大きさが分かると思われます。 潔くfaviconの絵のような髪型にしたのでどうか許してください m(__)m vArr 8661 ⇕ lAarr 8666 ⇚ rA

    PHPのhtmlentities()で (HTML4.0的に) 余計に実体参照に変換されてしまう文字の一覧 - moriyoshiの日記
    hiro_y
    hiro_y 2009/03/21
    htmlentities関数で実体参照に変換されすぎてしまう文字たち。
  • なぜPHPのfgetcsv()はロカール依存という糞仕様なのか - moriyoshiの日記

    前から言われてる、これ。 (id:hnw さんも、もしかしたらこれは私が実装したということを知っていて自粛してるのかもしれないけど、そういう気遣いは不要です!) まあつまりですね、もともとfgetcsv()は「\」(0x5c) で次の文字をエスケープできるという割と不便な仕様になっていて、Shift_JISのようなエンコーディングは利用に難ありだったわけで。 で、一応 Shift_JIS が通らないという苦情は来ていて (特に Windows 版で) 、でも標準関数だから mbstring への依存を作るわけにいかない。というわけで C99 になっちゃうんだけど mbrlen(3) (か mblen(3)) を使うということにしたので、結果的にロカールに依存するということになったというわけですよ。 なので、Shift_JIS 使いたければ、libc の設定で利用可能ロカールの一覧に Shi

    なぜPHPのfgetcsv()はロカール依存という糞仕様なのか - moriyoshiの日記
    hiro_y
    hiro_y 2009/03/17
    fgetcsvの仕様の経緯。「標準関数だから mbstring への依存を作るわけにいかない」
  • Memcache拡張モジュールを透過的に扱えるパッチを書いてみた。 - moriyoshiの日記

    PHPなんだから透過的にmemcachedとか扱えないとまずいでしょうということで。 要はphp.iniに # 以下の書式が利用可能 # hostname # hostname:tcpport # hostname:tcpport:udpport # [hostname] # [hostname]:tcpport # [hostname]:tcpport:udpport memcache.auto_connect_hosts = 10.1.4.1, 10.1.4.2:11211, [::::::10.1.4.3]::11211と書いておくと、 <?php $_MEMCACHE['test'] = 'test'; // Memcache::set() 相当 var_dump($_MEMCACHE['test']); // Memcache::get() 相当 ?> のように、オートグローバル

    Memcache拡張モジュールを透過的に扱えるパッチを書いてみた。 - moriyoshiの日記
    hiro_y
    hiro_y 2008/12/01
    $_MEMCACHEでmemcacheのデータを操作できるようにするMemcache extensionのパッチ。
  • Boost.Python のような手軽さで C++ で PHP の拡張モジュールを書ける「Mozo.PHP (仮称)」 - moriyoshiの日記

    えー、久しぶりにですます調です。日の第2回PHP拡張勉強会でグダグダながらもちょこっと発表させていただいた、あのライブラリについての紹介です。 ダウンロードは以下からできます。 http://www.voltex.jp/downloads/mozo-php-20080324.tar.bz2 最新版はこちら >> http://voltex.jp/downloads/mozo-php-20080405.tar.bz2 2009-08-10 追記: 現在は Boost.PHP という名前で以下の場所で開発中です。 http://github.com/moriyoshi/boost.php なぜMozo.PHPを作ったのか Boost.Python という、Boost Project の一部である変態ライブラリがあるのですが、これは Python の拡張をおおよそ C++ とは思えないような書

    Boost.Python のような手軽さで C++ で PHP の拡張モジュールを書ける「Mozo.PHP (仮称)」 - moriyoshiの日記
    hiro_y
    hiro_y 2008/04/06
    PHPのextensionを手軽に作れるMozo.PHP。
  • OpenCV-PHP拡張モジュールのアップデートのお知らせ - moriyoshiの日記

    OpenCVPHP バインディングを書いてみた』から早 6 ヶ月も経過、すっかり人が存在を忘れていた OpenCV-PHP バインディング。最近この日記のコメント欄で (おそらく) 海外のクレクレ君から「Windows 版の DLL くれ!俺はテンパってるんだ!」と言われて意外に有用かもしれないと思ったのと、つい先日『OpenCV プログラミングブック』が発売されたのもあってちょっと更新してみた。 OpenCV プログラミングブック 作者: 奈良先端科学技術大学院大学 OpenCVプログラミングブック制作チーム出版社/メーカー: 毎日コミュニケーションズ発売日: 2007/09/22メディア: 単行(ソフトカバー)購入: 10人 クリック: 891回この商品を含むブログ (35件) を見る 更新された箇所は以下 TSRM ビルドの修正 (Thanks to 某クレクレ君) cv

    OpenCV-PHP拡張モジュールのアップデートのお知らせ - moriyoshiの日記
    hiro_y
    hiro_y 2007/11/02
    OpenCVのPHPバインディング。
  • あなたがRoRを使わない10の理由に違和感を感じる幾多の理由 - moriyoshiの日記

    別に個人的にGREEでEthnaを使ってたから、とか藤さんと個人的に知り合いだからだとかそういう理由じゃなくても、ここでEthnaが引合いに出されるのはやっぱり違和感がある。だからあえて書く。勘違い君を増やしたくないので、ネタにマジレス。 EthnaってあのクソなStrutsの劣化コピーwwwwww -- Ethnaは確かに洗練されたフレームワークではない。それは誰しもそう思うだろう。実際に一緒に仕事をしていた同僚はみなRoRを引合いに出しては「なんでEthnaには○○がないの?」と言っていたように思う。でも、フレームワークって洗練されているか否かという観点で語るもんじゃない。現実世界の問題 (つまり案件一つ一つ) を、どうやって大勢でよってたかって解決するか、という解法に対するアプローチに過ぎないからだ。そして、いかなるアプローチでも現場の大多数が違和感を感じるならそれを選択するべきで

    あなたがRoRを使わない10の理由に違和感を感じる幾多の理由 - moriyoshiの日記
    hiro_y
    hiro_y 2007/03/17
    生産性という観点での最適解とソフトウェアとしての最適解は異なる場合がある。
  • 1