Archive for 8月, 2010

読みたい本@2010年8月末現在

最近は技術書を読まずに小説ばかり読んでいるのだが、読みたいテクい本はたまってきているので整理するために書き出した。というか、僕のdeliciousのbookタグは雑然としすぎていると思った。

Read the rest of this entry »

Nginx+SSL+Passenger-Railsのセットアップ

Time to Read

30分

ゴール

Nginxを、PassengerとSSLを有効にした状態でコンパイルし、配備する。いっしょに、自分CAで署名したSSL証明書も作って準備してみる。

Nginxを、SSL、passenger込みでコンパイルする

Nginx+Passengerであれば、通常 passenger-install-nginx-module を利用すると思うが、何も考えていないとSSLが有効化されないでコンパイルされる。今回、SSLを有功にしてコンパイルする手順をメモした。

Read the rest of this entry »

子要素を再帰的に取ってくるストアドプロシージャ

Time to Read

10分

なぜ

MySQLは、WITH RECURSIVE文をサポートしていないため、たとえば以下のような自己参照テーブル “comments”

+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(11)      | NO   | PRI | NULL    | auto_increment |
| parent_id  | int(11)      | YES  |     | NULL    |                |
| body       | varchar(255) | YES  |     | NULL    |                |
| created_at | datetime     | YES  |     | NULL    |                |
| updated_at | datetime     | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+

において、あるレコードを起点とした、その子/孫レコードすべてを取ってくる、ということがSQL一回ではしづらい。

Ruby on Railsなら acts_as_tree 等を用いることができそうだが、何度もSQLを投げるため、よりパフォーマンスを上げたいのであれば、例えばストアドプロシージャに頼る等が考えられる。

Read the rest of this entry »