php-memcached-dev/php-memcachedをforkしたmsgpack-and-snappyブランチで、シリアライズ方式にMessagePackを、圧縮方式にSnappyを選べるようにした。→GitHub MessagePackを使うにはPECL msgpackをインストールした上で、configureのオプションに --enable-memcached-msgpack を、Snappyを使うにはSnappyをインストールした上で --with-snappy-dir を付ければよい。 MacPortsでライブラリを入れている場合の例: phpize ./configure \ --enable-memcached \ --enable-memcached-msgpack \ --with-libmemcached-dir=/opt/local \ --with-snap
2012年04月21日17:37 カテゴリPHP PHP4.4.9のパッチを頼まれて書いた話 3月上旬、あるドイツ人から「PHP4.4.9のパッチを書いてくれないか」という相談メールが届いた。「2週間以内にPHPのあるバグをふさがなければならないのだが、Cの知識がないので、バグ報告者であるiwamotにパッチを書いてほしい」というのだ。 「私だってCの知識はないし、PHPのコーディングを工夫すればバグをふさぐ必要もない」などと返したのだが、どうしても書いてくれというので、「うまく書けるかどうか保証はできないし、そもそも期日に間に合うかどうかわからない」と断ったうえで、トライすることにした。どこの馬の骨だかわからない私に頼るぐらいだから、そうとう切羽詰まっているのだろう。 パッチはなんとか書けたので、先方に送り、テストしてもらった。「意図どおりに動いているので、これを使うことに決めた」との返
Compile Failure Bug Reported by antoine.bajolet@... Thu, 23 Feb 2012 20:15:05 +0000 PHP: 5.3.10, OS: Linux 3.2.6 glibc 2.11.3 Description: ------------ ./configure PHP 5.3.10 fails when attempting to configure apache2handler DSO with apache 2.4.1. ------------------------- ./configure --prefix=/usr/local/ --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/ --with-mysql=/
Android SDK r14以降で、テストプロジェクトおよび、テスト対象の本体プロジェクトの両方がライブラリプロジェクトのクラスを呼び出している場合、antでのテスト実行で実行が失敗します。このままではJenkinsでテストを自動実行するときなどに困ってしまうので、Android SDKのbuild.xmlを書き換えて対応します。 修正済みbuild.xml(r16用) … Android SDK配下のtools/ant/build.xmlをこれで置き換えてください。 以下この問題の詳細についてです。 問題の概要 問題が起こるのは、以下のようなプロジェクト構成の場合です。 ライブラリプロジェクト 本体プロジェクト(ライブラリプロジェクトのクラスを呼び出す) テストプロジェクト(ライブラリプロジェクトのクラスを呼び出す) このようなプロジェクト構成をビルドしようとした場合に、取り得る手段は
moriyoshiさんがトンでもないを事をやろうとしているようです。すげぇ! パッチはtrunkを対象にしているようだったのでtrunkで確認。 久々に試して遊んでみようと思ってビルドしてみたら。。。Undefined symbol で遊ぶ事ができませんでした。お前はもう遊ぶな!って事かしら。_| ̄|○ % cd /usr/local/src % gzip -dc ./gist835698-b07dd229da2ebd9fdc03297a1a1dfd2082853d0b.tar.gz | tar xf - % gzip -dc ./php-trunk-201103030130.tar.gz | tar xf - % cd ./php-trunk-201103030130 % patch -p0 < ../gist835698-b07dd229da2ebd9fdc03297a1a1dfd20
お久しぶりです!田中です。 今回は自分が関わっている件で少し調査を行う必要があった件を紹介します。具体的には、mod_proxy_balancerでワーカーから特定のレスポンスコードが帰ってきた際、バランサーからワーカーを外す方法です。 Apache 2.2になりmod_proxy_balancerを使うと簡単にリバースプロキシを介した負荷分散+冗長化が行えるようになりました。ワーカーサーバーが停止した(応答が返ってこない)場合には自動的に分散先から外すなど便利な機能も有しており、便利に使いこなしている方も多いことでしょう。 一応mod_proxy_balancerの紹介を行っておくと、mod_proxyおよびmod_proxy_httpを利用したリバースプロキシ構成に対し、ロードバランサー機能を提供するものです。実績も豊富にあり、簡単な構成ならApacheの設定ディレクティブも最小限の追
補足(2010/08/24 15:00):rename関数について言えば、同一ファイルシステム上であればrenameシステムコールを利用するのでこの問題は起こりません。さらに蛇足ですが、ファイルシステムをまたがってrename関数を利用するとコピーしてから削除することになり、アトミック性を保証できないため、障害の原因にならないかどうかの検討が必要だと思います。 「AKIBA de: PHPのrename()関数はファイルシステム間で使うとメモリをバカ食いする」で指摘されている通り、PHPのcopy関数やファイルシステムをまたがってrename関数を使う場合に、PHPがファイルサイズと同じ大きさのメモリを消費してしまいます。環境によっては再現しないかもしれませんが、僕の手元のMacOSX 10.5+PHP5.3.3環境では再現しました。 <?php // 「dd if=/dev/urando
こんにちわ、あらびきプログラマー moriyoshi です。 Python が生理的に嫌いな人からよく聞く話として「インデントでブロック構造を表す」ってのがありますね。じゃあ中身はそのままで文法だけ Ruby っぽくしたらどうなるんでしょうかね。Python はトークナイザもパーサも簡単に書き換えられるので、試してみましょう。 例えば次のようなプログラムは class Boo(object): def foo(hoge): try: for i in hoge: with i: if i.fuga: while True: j = i.fuga() if not j: break print j + 2 except HogeException: pass else: pass finally: pass こんな風になってしまうわけです。ああ怖いですね。 class Boo(object)
This RFC will discuss at first the motivation for Traits describing the rationals and presenting a short real world use case. The main part will describe the concept of Traits in detail using the syntax for Traits implemented in a patch which is part of this proposal. In the end, the URL of the patch and additional resources about Traits are given. This RFC is outdated and replaced by RFC: Horizon
C++ の const には、2つの意味があります。 定数という意味での const と、 メソッドを呼んでもオブジェクトの状態が変異しませんよというconstです。 前者は、こんな感じの書き換え不可に使います。 const int a = 10; printf("%d\r\n" , a ) ; //読み込みはOK printf好き //書き込みは不可 const なので書き換えられない。 a = 20; 後者のメソッドを読んでもオブジェクトの状態が変異しませんよなconstはこんな風にメソッドの後ろにつけます。 class myClass { private: int a; public: // ↓これ void abc() const { //この中では、オブジェクトメンバ変数への代入が禁止になります. printf("%d\r\n" , this->a ) ; //読み込みはOK /
来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…
PHPのデバッグのお供には Xdebug が定番です。 Xdebug を導入するだけで、 var_dump はHTMLでハイライトされ、例外やエラーが発生したときは見やすく彩られたバックトレースが表示されます。また、適切な設定と eclipse (vimでも可能らしい)があれば、ソースレベルのリモートデバッグが可能になります。さらには、プロファイリングもできるので、ボトルネックの検出にも一役買います。 一度使うと、これ無しに開発するなど考えられないライブラリです。 そんな Xdebug を使っている時に、バグらしき現象に遭遇しました。 xdebug の設定に、 xdebug.show_local_vars という設定があります。 デフォルトでは 0 になっているのですが、これを 0 以外の値にしてやると、バックトレースが表示されるときに、ローカル変数の値を出力してくれるようになります。 こ
大垣さんのつぶやきで知ったのですが、正式にサポート終了しているとはいえ完全に根絶されているとは思えないのでパッチを作ってみました。 #include "zend_ini.h" を追加したら reference error undefined symbol が解消されるのは意味不明だったけど。。。生成された Makefile が腐ってる? display_errorsをOnにしている環境だと同時にdisplay_startup_errorsをOnにしないと警告が出ないので注意してください。。。モロにハマった。_| ̄|○ diff -urN php-4.4.9,orig/main/main.c php-4.4.9/main/main.c --- php-4.4.9,orig/main/main.c 2007-12-31 16:22:54.000000000 +0900 +++ php-4.4.
Goにできて、PHPにできないはずはない!というわけでやってしまいました。まあ、これにメッセージキューとメッセージスロットを足しただけなんですが。 <?php function sub($i, $ch) { for (;;) { $a = <- [$ch]; printf("%d:", $i); var_dump($a); } } $ch = thread_message_queue_create(); for ($i = 0; $i < 10; $i++) { thread_create('sub', $i, $ch); } $i = 0; for (;;) { [$ch] <- $i++; usleep(50000); } ?> 見て分かるように、 [$ch] <- $i++;こんな感じにメッセージの送信を、 $msg = <- [$ch];こんな感じにメッセージの受信を書くことができ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く