BMediaNode: PHPでのオブジェクトプーリング

かなり大げさになりますが、memcachedというデーモンを使うとPHPでもオブジェクトのプーリング・キャッシングは可能になるみたいです。PHP用のクライアントAPIはPECLに含まれています。

PHPでオブジェクトプーリングを実現するもの。なるほど、PHPだとリクエストごとに消えちゃうし、別リクエストでは別ものになっちゃうので常駐してるデーモンに確保しといてもらうって感じですか。

・・・Servletでいいじゃん。

2ちゃんねるベストヒット: 自分の知らなかった妻の顔

[既婚男性(仮)] 怪しいぞ!嫁の不審な行動を監視するスレ ttp://human5.2ch.net/test/read.cgi/tomorrow/1096325759/l50

212 名前:素敵な旦那様 投稿日:04/11/24 09:58:44 仕事が早く終わって帰宅したらいなかった。 寝室で着替えてるうちに戻ったらしく、台所で音がしてたので おどかそうかとこっそり行ってみたら、 マツケンサンバ歌いながら激しくステップ踏んでた(上手)。 梅酒あおりながら。 その後、スーパーの袋から焼き鳥出して立ったまま食べ、 「う、う、うーまーいー!」と叫んで、またマツケンサンバ。 「キュッキュッ!」とか「えいえい!」とか意味不明な合いの手を入れながら。 出ていけなくてしばらくそのまま見てた。

「帰ってるよ」と出てった時の泣き笑いみたいな顔、初めて見る顔だった。

笑った。

H A R U P A N O B L O G: RSS Factory に Impress Watch 系ニュースを追加

フィルタを書くだけの力仕事ですが、正規表現の勉強にはなります・・・。

ImpressのHeadlineのRSSがありがたい。これでやっと巡回ページが全部RSSリーダで読めるようになりました。

持ってる書籍の一覧をISBNのリストから作ろうと思ってPEARのServices_Amazonを使ってみたら・・・

Invalid locale parameter "jp". Valid locales are: de uk us

jp駄目なのかよ。

先日、PHPのセッション絡みの障害があり、調べてみました。何かというと「セッションIDが重複することがあるのか」ということについて。

PHP4.3.9のソースで見てみるとextというディレクトリがあります。これは拡張機能関連のソースがある場所のようで、pgsqlやmingやxmlなどが入ってます。ここにsessionディレクトリもありました。。拡張といっても本当のコア機能以外は全部ここに入っているようです。

php-4.3.9/ext/session の中のsession.cを見てみるとphp_session_create_idという露骨な名前の関数が定義されています。中身は大雑把に見ると、時間と php_combined_lcg()をMD5でハッシュ化しているようです。php_combined_lcgをググってみると、

[PHP-users 11996] Re: 「他人の情報を表示するサイト」

php_combined_lcgはマルチプロセスサーバー(プロセスをフォームするサーバー) ではPIDをマルチスレッドサーバーではthread_idを利用して疑似乱数を生成してい ます。したがって、仮に、micro秒単位で同じ時刻にアクセスしても同じセッション IDは生成されません。

msessionはセッション情報を全てメモリに保持しているのでセッションID のコリージョンを検出しています

どうやらPHPのセッションIDは理論的に絶対に重複しないようです。でもこれって、Webサーバが複数ある状態で1つのDBにセッションを保存している場合、同じ時刻で偶然プロセスIDも一緒だったら重複しちゃうんじゃないでしょうか。もう少し調べてみたいです。

2005/05/17 追記: 一部間違いがありました。 ref: PHPのセッションID2

guesswork

button_guesswork.png

guessworkは、「ややこしいフレームワークは使いたくない」けど「なんでもありになりがちなPHPスクリプトをスッキリさせる指針が欲しい」と考えている人のための軽量なフレームワークです。

個人的に超注目のPHPフレームワークguesswork

何が超注目なのかっていうと、「サイトがかわいい」

まだVersion 0.0.1なのになんでこんなにかわいいんですか?

2ちゃんねるベストヒット: ハウルの動く城を見てきたかのように語る

[ネトゲ実況] ハウルの動く城をさも見てきたかのように語るスレinネ実 ttp://game7.2ch.net/test/read.cgi/ogame/1100597954/l50

76 名前:既にその名前は使われています 投稿日:04/11/16 19:15:45 ID:xRtz7F 7 思った以上に、動いてた。

笑った。

デザインパターンMLでDTOの定義について話題がありました。

自分は勘違いしていたなと思いました。 基本的にはリモートにある粒度の小さいオブジェクトをいちいち持ってくるとコストがかかるのでDTOで一気に持ってこようって感じなんですな。

Martin Fowler’s Bliki in Japanese – ローカルDTO

DTOのようなものを使うとよいのは、 プレゼンテーション層のモデルとドメインモデルとの間に 大きなミスマッチがある場合です。 この場合、プレゼンテーションに特化したファサード(またはゲートウェイ)を作り、 ドメインモデルをマッピングして、プレゼンテーションに都合のよいインターフェースを 提供するのは理に適っています。

ローカルで使うのは上記のような場合だそうです。

MLに出ていた 「とりあえず、ドメインモデルのような凝ったことは考えずにベタッと処理を書いておき、「不吉な匂い」がして来たら設計をリファクタする」 というのに賛成です。

コメントスパム対応してからスパムがバチーンこなくなりました。 SQL流してDBからもコメントスパムなくしたおかげで埋もれていたhaltさんやkumatchさんのコメントを見つけることができてよかったです。

Fender Japan のウェブサイト : NDO::Weblog

ストラトキャスターのカタログを見ると、当時憧れだった エリック・クラプトンモデル、ジェフベックモデル、スキャロップ・フィンガーにラージヘッドがかっこいいイングウェイモデルもちゃんとカタログに載ってます。当時は高すぎて手にとることもなかったモデルですが、社会人になった今なら手の届く値段だなあ。

スキャロップっていう単語を久しぶりに思い出した気がしました。おじさんはテレキャスが( ゚Д゚)ホスィ・・・