| @雑談

OSTERIA Fridge

先週用事があって福岡に行ったんですけど、Twitterで知り合った方に OSTERIA Fridge というレストランに連れて行ってもらいました。カウンターの席に座り目の前で料理を作ってるのを眺めながら食事しましたが、大変おいしかったです。料理について質問するとお店の人がとても楽しそうに説明してくれるので、なんかこっちまで楽しくなってきた。こういうお店は大変良いと思います。僕はジャンクフードとか学食のカレーとかが好きだし全然グルメ野郎ではないのだけど、また行ってみたいと思えるお店でした。時間の都合でデザートとコーヒーを注文できなかったことが残念でした。

| @ブログ

パソコンの話とかは tech.portalshit.net へどうぞ。ここはグルメブログになります。

| @雑談

もっと映画の感想を書きたいんだけど、週末はついつい新しく公開された映画を見に行ってしまうのですでに見た映画の感想を書くことができず、すかすかな内容の映画評しかできない。映画館の近くに住みたい。都会に引っ越したい。仕事くれ。

| @映画/ドラマ/テレビ

抱擁のかけら

評価 : ★★★☆☆

あらすじ

盲目の脚本家のハリー・ケーンとレナ(ペネロペ・クルス)の話。脚本家ハリー・ケーンはかつてマテオ・フランコの名前で映画を撮っていたが、事故で明かりを失い脚本家となった。ある日彼のもとに映画監督を名乗る謎の男がやってくる。脚本を書いて欲しいと男が話したストーリーは、ハリー自身の過去のストーリーだった。

冒頭からエロい。ハリーは道路を渡るのを手伝ってくれた女の子を部屋に連れ込んでやっちゃう。主人公が盲目であることをテーマにした映画ではないことが強烈に印象づけられる。

ペネロペは『ボルベール <帰郷>』のときみたいな役柄だった。美人なんだけど自分の思うとおりに生きられない女性というか。ペネロペ・クルスの容姿は僕は決して好きじゃないんだけど、きれいな女の人ほど不幸になることはあるよな、と思った。

強烈に印象に残ったのが、ペネロペ・クルスを囲う変態社長(ホセ・ルイス・ゴメスという俳優らしい)。典型的なラテン人の容姿で、背がちっちゃくて、でもバリッとしたスーツを着てて、なんかもうコテコテなの。卑劣な手段を駆使してペネロペ・クルスを手放すまいとする。気持ち悪かったっす。

| @雑談

「最近のポータルシット変わった」とかいうコメントをTwitterで何度か見かけたのでportal shit!は閉鎖することにしました。おちょくられるの嫌いなのであまり好き勝手なこと言わないでください。

というのは嘘で、パソコンっぽい内容は別のブログに書くことにしました。

| @技術/プログラミング

CakePHPには Media Plugin というのがあって、これがすこぶる便利。画像や文書の他に、動画ファイルまで扱うことができる。PHPではファイルアップロードのところにセキュリティリスクが潜んでいそうなイメージだし、自分のような素人に毛が生えたようなレベルの人間は素直にこういう便利なプラグインを使った方がいい。

しかしこのMedia Plugin、設置が少々面倒だ。情報も英語のものも含めて少ない。僕は二つのプロジェクトでこのMedia Pluginを使ったけど、とても設置に苦労した。はまるポイントはいくつかあるんだけど、今日はDBについて書いておこうと思う。

Media Pluginは attachments というテーブルをつくり、ここにファイルのメタデータを格納していく。これはアプリケーションのルート( APP ディレクトリ)で cake media init というコマンドをTerminalで打ってやると(ただし /cake/console にパスを通しておく必要あり)、Bakeのときのような画面が出てきて初期設定をやってくれる( app/config/database.php の情報にあわせてテーブルも作ってくれる)。しかしCakePHPのデフォルトDBがMySQLであるためMedia PluginもMySQLを想定しているのか、 app/plugins/media/config/sql/media.sql のSQL文を単純に実行してしまうと不具合が生じる。実は僕はここで結構はまってた。僕は全部のプロジェクトでSQLiteを使っているので、単純にこのSQLを実行すると、 attachments.id のデータ型が INT(10) とかになってしまい、エラーに遭遇し続けることになってしまった。SQLiteの場合、idカラムのデータ型は INTEGER でなければならないのだ。

これはMedia Pluginに限らないけど、Convention Over Configuration なフレームワークを使うときは、DBのテーブル名に注意をはらわなければならない。否、先にも書いたとおりそれだけでは不十分で、さらにカラムのデータ型とかも規約に沿ったものにしないと、原因不明の謎のエラーに遭遇して開発が停滞する。おっちょこちょいな人(僕も含めて)はその辺の基本的な部分をおろそかにしない方がいいと思った

| @技術/プログラミング

なんかTwitterで「最近のポータルシット変わったよね…」とかいう意見を目にするようになったので、パソコンネタだけ隔離して別にブログを始めることにした。使っているCMSはMephisto。Railsの勉強になるかと思って。早速DreamhostへMephistoをインストールしていて躓いてしまったのでちょこっとメモ。

とりあえず tech.portalshit.net というサブドメインを用意し、DreamhostのパネルでPassengerのセットアップ。その後SSHでサーバーに接続し、

$ git clone git://github.com/emk/mephisto.git
``

してgithubからプロジェクトをclone。

Mephistoのインストールにはいくつかgemが必要。Dreamhostには結構たくさんgemがインストールしてあるんだけど、いくつか足りないものがあった。とりあえず設置ディレクトリのルートで

```sh
$ rake gems:install

と打ってみたところ、nokogiriとそれに依存するbrynary-webratが入らなかった。原因を調べてみたところ、xsltのライブラリをダウンロードして、gem install するときにパスを指定してあげる必要があるらしい。xsltのライブラリ自体はPHP5をカスタムインストールしたときに入れてあるので、以下のオプションでインストールした。

$ gem install nokogiri \n    --with-xslt-include=/home/morygonzalez/php5/include/ \n    --with-xslt-lib=/home/morygonzalez/php5/lib/

無事インストール成功。その後もう一回 rake gems:install を実行してbrynary-webratも入り、管理ページにアクセスしてみると今度はPassengerのエラーが。これは単純にdatabase.ymlに development: のDB環境しか記述していなかったこと、 rake db:bootstrap のときに RAILS_ENV=production をつけていなかったことが原因だった。そういうわけでdatabase.ymlに production: の設定(sqlite3を使用)を書き、

$ rake db:bootstrap RAILS_ENV=production

ですべてのインストール作業完了。いまこうして動いております。

今後はここにCakePHPやRails、JavaScript関連のことを書いていこうと思います。できれば一日一ポスト、その日に学んだことを書いていきたいです。