毎晩泣きながらRubyKaigi 2010で買った『情熱プログラマー』を読んで寝てる。ちなみに250円の弁当はまだ一度も買ったことない。
退職しました
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 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のMedia Plugin 1.3が動かない
動かしてるサイトの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とかついててドキュメントが充実してるので、あれに慣れるとドキュメントがわかりにくいライブラリやプラグインは億劫に感じてしまう。
15インチのMacBook Pro (Mid 2009) の右側のスピーカーの音が大きく聞こえる
家で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はなんとかしろや。
DreamHostで借りてるサーバーが飛んだけどほどなく復旧した
昨年末から今年の正月にかけて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っ子にも安心してご利用いただけます。商売には向かないと思うけどね。オヌヌメ。
RVMのRubyをTextMateで使う
いやまぁテキストエディターにはいろいろあるわけでして、皆さん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が走るようになりました。