| @労働

1年2ヶ月お世話になった職場を10月いっぱいで退職しました。

僕は2009年の9月から、阿蘇テレワークセンターというところで働いていました。ここはISP業務やホームページ制作をやってる会社で、1年4ヶ月前、東京で就職したのにたった3日で辞めて帰ってきてしまった僕は、ここに拾ってもらってHTMLコーディングの傍らCakePHPによるシステム開発やWordPressのカスタマイズ、JavaScript開発などを担当していました。

前職場ではかなり自由にやりたいことをやらせてもらい、家で一人でインターネットで遊んであるだけでは身につかないようなことを経験できました。CMSを作るのはCakePHPやRailsを使ってもやはりそんなに簡単ではないですし、Linuxサーバーの構築などもやらせてもらって大変勉強になりました。1年2ヶ月前はTerminalなんてなるべくなら触りたくないと思っていたのに、いまはTerminalでVimやzsh使うのが大好きになりました。

しかし阿蘇テレワークセンターは自由すぎた。僕はRailsによるアジャイルWebアプリケーション開発なんかを読みながら、ウォーターフォール開発も経験したことないのに自己流で勝手にアジャイルやってました。いや、アジャイルじゃなくてただの行き当たりばったり開発ですね。これではいかんなーと思い、一旦阿蘇を離れてみることにしました。

11月からは福岡で働いてます。福岡、食べ物が安くておいしくてびっくりですね。出張などで福岡にいらっしゃる機会のある方はご一報の上、もつ鍋おごってください。

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

Ruby 1.9、Rails 3、RSpec 2で開発してる。いままでRubyとRailsになれるのに一杯一杯でテスト駆動開発できてなかったので、きちんとテストファーストでやることにした。

そんで環境を整えてたんだけど、RSpecはRails 3に合わせてVersion 2が出てるみたい。しかも結構変わってる。

$ spec -c spec/*

とかやってもエラーが出る。 which spec すると /usr/bin/spec と出ちゃう。どうやら spec で発動されるのはRSpec 1.3のものみたい。

RSpec 2からはコマンド名が変更されており、テストコードを実行したいときは以下のように書くみたい。

$ rspec -c spec/*

これできちんとテストコードが実行された。かと思いきやFailureが。

Ruby 1.9で動かしてるから、コードの中に日本語を書くときは一行目に

# -*- coding: utf-8 -*-

と書いてテキストエンコーディングを明示してあげないといけない。

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

動かしてるサイトのCakePHPのバージョンを最新版の1.3.4に上げようと思って、Media PluginもCakePHP 1.3対応バージョンの1.3alphaにアップデートしようとした。

とりあえず本体を git clone http://github.com/cakephp/cakephp.git し、Media Pluginを git clone http://github.com/davidpersson/media.git してみた。

Media Plugin 1.3での設定方法とか調べてみようと思って、GitHub上のWikiのページを探すんだけど見つからない。なんと、作者サマはVer 1.3からWikiを消しちゃったみたい! そんまま動かしてみたところではMedia Plugin動いてないみたい。Mediumヘルパーがないというエラーが出る。プロジェクトの中の docs ディレクトリにドキュメントが格納されていたのを発見したので(docs at 1.3 from davidpersson's media - GitHub)そこを参考にしながらMedia Plugin 0.6から1.3へのMigration作業をやったんだけど、とうとうできなかった。

まず第一に、クラス名が変わってる。Media.Medium だったのが Media.Media になってる。Viewファイル内での変数も $medium ではなく、 $media になってる。そしてメソッドとかもHTML5対応とかで結構変わってるみたい。

さらに、media processing 関連のクラスが分割されて別のライブラリとしてMedia Pluginの中に含まれてる(davidpersson's mm at master - GitHub)。これが結構わかりにくい。なんかImagick必要ぽくて、本番環境じゃインストール権限ないので使えないし、結局ここで諦めてしまった。

Media PluginはVer 0.6のWikiがあった頃もなんかドキュメンが見づらかったし、1.3になってドキュメントはただのテキストファイルになり、しかもメソッドについての解説がないので結局本体のコードを読むしかない。

RubyのライブラリはたいていRdocとかついててドキュメントが充実してるので、あれに慣れるとドキュメントがわかりにくいライブラリやプラグインは億劫に感じてしまう。

| @Mac/iPhone

家でMacBook Pro 15” (Mid 2009) を使うときはいつもはBoseのM2で音を鳴らしてるので気づかなかったんだけど、たまたま外で内蔵スピーカーを鳴らしてみたら、右側のスピーカーの音の方が大きく聞こえることに気がついた。システム環境設定の「サウンド」から内蔵スピーカーの「バランス」を左いっぱいにしても右側から音が出続けてる。これはいったいどういうことなんだ、保証期間過ぎた後にぶっ壊れたかと思っていろいろ調べてみたら、どうもそういう仕様らしい。

Appleのサポートサイトには、2010年モデルのMacBook Proからサブウーファーが内蔵されているのでそういう仕様だ、という記事が載っかってる。

しかし英語のDiscussion Boardを見ると、2009年の4月にすでに左右の音量バランスの違いに気がついているユーザーがいてスレッドが立っている。

2009年以降のモデルのMacBook Proはサウンドが2.1チャンネルになっており、サブウーファーが追加されているらしい。そしてそのサブウーファーは右側のスピーカーと一体の部品になっており、トラックパッドの右上あたりに位置している(macbook-pro-17-in-bits.jpg (JPEG 画像, 800x600 px))。システム環境設定の「サウンド」から「バランス」で操作できるのは右と左のバランスで、サブウーファーは操作できないそう。つまり音量バランスを左いっぱいにしても右側から音が出続けているように感じるのはサブウーファーのせいというわけ。

Mac OS Xの10.6.4アップデートでMacBook Pro (Mid 2010)の問題は解決されたということになってるらしいんだけど(Mac OS X v10.6.4 アップデートについて)、2009モデルでは全然解決されてないしAppleはなんとかしろや。

| @ブログ

昨年末から今年の正月にかけてXREAで借りてたサーバーが障害に見舞われてデータがぶっ飛んだけど、なんと今週、DreamHostでも障害が発生してサーバー(budapest)が落ち、データがぶっ飛んだ。

Jekyllでやってるパソコンブログの方はGitとJekyllの組み合わせのデプロイ環境が最強すぎて一瞬で再開できたんだけど、 www.portalshit.net は正直結構大変だろうなぁと思ってた。ところがサーバーが復旧した翌日くらいにはちゃんとDreamHost側でとってたバックアップがコピーされ、自分では何もすることなくサイトが復旧してた。しかも、サーバー復旧後、一旦ユーザーディレクトリは空になってたので自分でドットファイルと tech.portalshit.net だけ再アップロードしといたんだけど、そちらはこちらでアップロードしたものが残され、 www.portalshit.net と cinema.portalshit.net の内容だけがバックアップからコピーされてた。DreamHost、やるやないけ。障害報告ページでいきなり「こちらにデータの復旧義務はない」とか高らかに宣言してるXREAとは大違い。

まじでDreamHostはSSHできるしPassenger使えるし、今回みたいな障害のときも頑張って復旧してくれるし、Railsっ子にも安心してご利用いただけます。商売には向かないと思うけどね。オヌヌメ。

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

いやまぁテキストエディターにはいろいろあるわけでして、皆さんEmacsとかVimで日夜しこしこコードを書いておられると思うんですけど、僕はGUIしか使えない情報弱者なので主にTextMateを使ってます。

TextMateで便利なのが "Run" っていう機能です。Rubyのコードを書いていて、 + R でさくっと実行結果を確認できます。いちいちTerminal開いて

$ ruby hogehoge.rb

とか面倒くさいことをやらずにすみます。

で、これからが本題なんですけど、先月Ruby 1.9.2がリリースされて、さらに gem update でRails 3が入るようになってしまったので、お試しでRuby 1.9.2とRails 3を使ってみることにしました。しかし1.8系を完全に捨てることは恐ろしいので、RVMを使って複数のバージョンのRubyを切り替えながらしばらく過ごしてみることにしたわけです。

上に書いたとおり僕ちゃんは情報弱者なのでTextMateに依存したコーディングライフを送っており、 + R で動くRubyもRVMのRubyにしたいと思ったのですが、これが分からなかった。RVMのサイトを見たらいろいろごちゃごちゃやり方が書いてあるんだけど(RVM: Ruby Version Manager - Textmate Integration with RVM)、結局この通りにやってもうまくいかず。

しかし先ほどなにげなく

$ rvm 1.9.2 --default

としてあげたところ、TextMateでもRVMのRubyが走るようになりました。

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

ザ・ウォーカー

評価 : ★★★★☆

あらすじ

核戦争後の未来の話。世界は荒廃し、荒くれ者が容赦なく弱者から奪うまるで北斗の拳のよう。水が圧倒的に枯渇しているため、水のありかを知るものが権力を握る。

主人公のウォーカーは廃墟と化したアメリカ大陸をひたすら西へと歩いていた。水を独占するやくざカーネギーの支配する街に立ち寄ったウォーカーは、バーでカーネギーの部下と乱闘騒ぎを起こし、あっという間にやっつけてしまう。その強さと物怖じしない性格を気に入ったカーネギーはウォーカーを部下にしようとするが、ウォーカーはそれを拒む。しかしウォーカーがカーネギーが長年探し求めていた物を持っていることを知ると、カーネギーは力尽くでそれを手に入れようとする。

感想

見たい映画の時間に間に合わなくてしょうがなく見た映画でしたが、大変楽しかったです。

まず冒頭からして楽しい。いきなりナウシカ的な死の灰の様なものが降り積もる森で、ウォーカーが猫が突然変異したような変ちくりんな外観の動物を弓で狩る。そんでその後廃屋に入っていって寝床を確保し、孤独かあるいは空腹に耐えかねて自殺した前の住民の首つり死体から靴をはぎとって履く。このシーンのデンゼル・ワシントンの表情がいい。新しい靴の履き心地をえらく気に入り、とてもいい笑顔を見せる。夜になってたき火をたき、解体した猫を焼く。核戦争の猛火をくぐり抜けたケンタッキーのお手ふきで体をふき、猫の肉を食べ、タッチホイール式の第三世代iPodでやたら渋いソウルを聴く。なんかこれだけで涙出てきそうになる。

とにかくこの映画は最初の30分くらいが面白くて、その後も路上で助けを求める女がいたが実はそれは罠で、チェーンソーを持った危ない男達が出てきてバトルになる。デンゼル・ワシントンは新しい靴を得たことで喜んでいたときとはまったく別人となり、恐ろしく切れ味の鋭いナイフで盗賊の腕を切り落としたりする。超バイオレンス。僕はあんまり暴力物とかアクション映画は見ないのですが、たまに見ると楽しめますね。

全体的には極限状況での人間の行いと聖書がこの映画のテーマです。男達は隙あらば女をレイプしようとする存在として描かれている。カーネギーの部下達は旅行者の夫婦を見つけるやいきなり夫の方を殺して妻をレイプし、所持品を奪って妻も殺す。非常にすさんだ世界なわけです。その世界を正すのが聖書だという筋書き。しかし聖書のために戦争が起こったと考えた人類は片っ端から現存する聖書を燃やしてしまった。ウォーカーはその聖書の最後の一冊を持っていて、それを西へ届けようとするわけです。またカーネギーは聖書さえあれば人々の人心を掌握することができると信じており、字も読めない部下達に血眼になって聖書を探させる。

聖書に書かれている内容は人類愛とか平和的なものなはずなのに、ウォーカーは聖書を守るためとはいえ、襲いかかる盗賊達を無慈悲に殺していく。腕をナイフでちょんぎったりとかね。またカーネギーも世界を完全に制覇するために暴力を駆使して聖書を手に入れようとする。バカで欲望丸出しな民衆を聖書の力で大人しくさせようと考えている。どっちもどっちだなという面もなくはないかなと思いました。

蛇足だけど、金物屋の親父役で出てくるトム・ウェイツが良い味出してました。ケンタッキーフライドチキンのおしぼりと交換でバッテリーを充電してあげたりするの。シネコンで上映された派手なアクション映画だけど、細部に小細工が聞いていて映画好きの人にも楽しめる佳作だと思いました。