1月 162013
 

 Rails3 に限らずセッション情報の格納先に memcached を使うことは多いと思うが、Passenger + Rails3 でセッションストアに memcached を使うとセッションが切れたり他のユーザのセッションにすりかわったりする。実はPassenger のドキュメントにがっつり書かれている。

Because worker processes are created by forking from an ApplicationSpawner server, it will share all file descriptors that are opened by the ApplicationSpawner server. (This is part of the semantics of the Unix fork() system call. You might want to Google it if you’re not familiar with it.) A file descriptor is a handle which can be an opened file, an opened socket connection, a pipe, etc. If different worker processes write to such a file descriptor at the same time, then their write calls will be interleaved, which may potentially cause problems.

 何が問題かというと、memcached との接続を保持しているデスクリプタも fork() のタイミングで共有されてしまうこと。そのため、例えばほぼ同時に Passenger worker A と B から memcached にリクエストを送った場合、A 側のリクエストが若干早ければ memcached 側から送られた A 向けのレスポンスが A と B 双方で受け取ってしまい、本来は B には B 向けのレスポンスが行くはずが A のレスポンスとなってセッションの取り違いが発生してしまう。これの問題点は、エンドユーザからすると全く覚えのない別のユーザになってしまうことにある。

Continue reading »

1月 062013
 

 昨年10月にSONYが発売したアクションカメラ、HDR-AS15を買ったわけだが、買った直後に GoPro の最新モデルが発表になった。GoPro はここ最近のアクションカメラの定番といえるモデルで、私がよく観ている ディスカバリーチャンネルの「Myth Busters」でもよく使われている。

 そんな GoPro だが、発売直後は全世界的に品薄になり、12月初旬に日本代理店でも発売となったものの、こちらも品薄になっていた。なので、GoPro.com から直接個人輸入したのだが、それが 12 月 13 日に到着したのでいろいろ試してみた。

GoPro Hero 3 BE
Continue reading »