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

昨日の続きのようなもの。LokkaをUbuntu上で動かそうといろいろやってます。passenger入れて、 passenger-install-nginx-module を実行しようとしたらエラーが出た。お前はrootじゃないからnginxインストールできひんわ、みたいなメッセージが出る。sudoったりrootになってインストールしようとすると今度はpassengerなんていうgemはないわ、って怒られる。sudoしたときには.rvm内のgemパッケージではなくシステムのgemパッケージを見ようとするっぽい。またrootになるとRVMではなくシステムのRubyが実行されるので同じくpassengerなんてgemないわ、って怒られる。システムのRubyは1.8.7だし、なるべくなら使いたくない。RVMのRubyを使ってpassenger + nginxな環境作れないのかよ、とググってたら以下のような記事を発見した。

なんと、RVMには rvmsudo というコマンドがあるらしい! 試しに

$ rvmsudo passenger-install-nginx-module

を実行してみたところ、お前はroot権限がないんじゃ〜とエラーが出ていたところも無事通過してnginxをインストールできてしまった。以前、sudoで無理矢理nginxをインストールしたときは、 nginx.conf 内で、

passenger_root /home/morygonzalez/.rvm/gems/ruby-1.9.2-p136/gems/passenger-3.0.2;
passenger_ruby /usr/bin/ruby1.8;

となっていて大変気持ち悪かったし、Passengerも「PassengerとRubyの本体でバージョンの不整合があるだろヴォケ」みたいな警告出してた。それが rvmsudo のおかげで nginx.conf に書き込まれる値も以下の通りとなるので、とりあえずPassenger(RubyGems)とRubyのバージョンが異なるというような問題は回避できる。

passenger_root /home/morygonzalez/.rvm/gems/ruby-1.9.2-p136/gems/passenger-3.0.2;
passenger_ruby /home/morygonzalez/.rvm/wrappers/ruby-1.9.2-p136/ruby;

ただ、なんでか分からないのだけどnginxがうまく動いてくれなくて、無事Webサーバーを起動できてない感じです。

それにしてもRVMは、本当にきもいと思う。readlineとかまで.rvm内にインストールできるできるし、いったい何考えてるんでしょうかね。きもすぎて便利です。

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

ソーシャル・ネットワーク

『ソーシャル・ネットワーク』、面白かったです。マーク・ザッカーバーグよかった。真冬なのに短パン、サンダルで登校し、アイディアが思いついたら早速寮に帰ってもくもくとプログラムを書く。ルームメイトとアイディアを出し合い、窓にアルゴリズム式を書き、ああでもないこうでもないと徹夜で開発を行う。 “wget” やら “Emacs” やらみたいな単語が飛び交い、見る人の創作意欲を刺激する良い映画でした。サンデープログラミング頑張ろうという気にさせられました。ウェブ好きっ子は見て損はないです。

| @写真

凍りついた窓 2010-12-31

雪 2010-12-31

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

福岡工業大学で行われた、オープンソースカンファレンス福岡2010に行った。

usp labのシェルスクリプトで業務用基幹システムを開発する話が面白かった。一般的なプログラミング言語は使わずに、シェルで生のLinuxを使って作業を行わせる。DBは使わずデータはTextで持つ。HTTP関連のあれこれもシェルスクリプトで行う。このためセキュリティのことは考えないといけないらしいんだけど(フロントエンドとバックエンドがシェルスクリプトでつながってるため)、大手のシステム会社が100人月とかみたいな見積を出す案件を10人月程度でやったそう。具体的には無印良品のシステムとか。遅めに会場に入ったので資料は売り切れで貰えず、細かい数字は自信がないんだけど、無印のやつは一年間に10億円かかってたシステム関連の費用が2億円程度に抑えられるようになったそう。mknodとかsedコマンドを駆使した並列処理のデモは本当に面白かった。へー、シェルスクリプトだけでこんなにできるんだー、っていう感じ。1億行のテキストデータ処理を53秒で終わらせたりとか。「Linuxはなるべく生で使いましょう」という言葉がとても深く印象に残っている。Railsみたいな便利なフレームワークを使った開発とはまったく異なるけど、UNIXの「小さいものは美しい」という理念のもと、とんでもなく効率的に開発を行っている様がとてつもなくクールだった。

| @雑談

福岡に引っ越したので、熊本では参加することが難しいIT系のイベントに行ってみた。ANTENNAというイベントで、公式サイトには「Tech系サービスの発信とネットワーキングイベントです」とある。そのイベントのVol. 1に行ってみた。

Abbyのwagaco、もぐらのmaysee、FusicのZENPREのプレゼンが行われた後は名刺交換会が行われた。社交性皆無だし名刺も持ってないので同行者と駄弁ってひたすら飲み食いしてるだけだったけど(BacklogやCacooのヌーラボの社長さんとはちょっと喋った)、みんな自社のサービスについて楽しそうにプレゼンしててすごくうらやましかった。参加者からマネタイズどうすんのみたいな鋭い質問に対して、ZENPREをやってるFusicの中の人はマネタイズより福岡から面白いツールを作って世界に発信していきたい、ということを言っていた。

『情熱プログラマー』の中にGitHubの共同創設者のTom Preston-Wernerの書いたエッセーが載ってる。GitHubが始まったときのエピソードで、マイクロソフトからの30万ドルのオファーを蹴ってGitHubを始めたときの話だ。また37Signalsのブログ内のBootstrapped, Profitable, & Proudという企画で、GitHubのもう一人の創設者、Chris Wanstrathへのインタビューが掲載されている。

そこでもGitHubを始めたときのきっかけとか、理念が述べられている。ZENPREについて言ってたFusicの人と同じで、お金のことより、Git自体が素晴らしくて、それを広めるためのハブを作ろうとした、マネタイズは後から考えた、と語っている。確かにGitHubはGitのチュートリアルが充実してて、自分も何度もGitHubのチュートリアルを読んでGitの使い方はもちろん、SSH接続のやり方も学んだ。こういうのとてもかっこいい。

GitHubは成功した会社だからそんなきれい事が言えるんだよ、と言われたらそれまで。そんなことは分かっている。でも自分がやってる仕事を楽しんで、誇りを持って取り組めなければちっとも楽しくない。金を稼ぐために夢や達成感や誇りを捨てるのか。世の中の役に立ちながら金も稼げて達成感を得るのが一番かっこいいじゃないか。

37SignalsのJason Friedはことあるごとにベンチャーキャピタルの出資を受け入れるな(Bootstrapped)、利益を出せるようになれ(Profitable)、と言う。ここはアメリカじゃないし、37SignalsやGitHubみたいに何もかもがうまく行くとは思えない。でも夢や理念を実現しようとしない人生はつまらない。酒を飲みながら、自分たちが作ったものに対して誇らしげにプレゼンしてた人たちがとてもうらやましかったし、その熱にほだされた。

勉強しよう。

| @Mac/iPhone

Alfred

Quicksilverのかわりに入れた。インターフェイスはお洒落。

PowerPack(£12)を購入すればディレクトリの閲覧やアクションの選択など、Quicksilver的な機能が使えるようにはなるけど、やはりQuicksilverに比べたら機能は少ない。特にQuicksilverのTriggersに相当する機能(ホットキー)がないのが移行してすぐは不便だった(iTunesの操作はすべてQuicksilverのTriggers経由で行っていたので)。

Alfredは日本語が通る

日本語が通るのは便利だ。例えばAddress Bookの人名検索をするとき。いちいちAddress Bookを開かず、Alfredの入力画面を呼び出して人名を入れるだけで検索できる。こんな感じ。

ただ、日本語が通るためTerminal.appなど、日本語環境で起動したときアプリケーション名がカタカナになってるソフトの起動時に日本語で呼び出さなきゃいけないのが地味に面倒くさい。Quicksilverでは「terminal」と入れれば良いものを、Alfredでは「ta-minaru」と入力した後、スペースキーでカタカナに変換し、さらにリターンキーで確定しないといけない。Terminal一つ起動するのになんでここまで苦労しなければならないのかと泣けてくる。

なんかネガティブな感想が多くなってしまったけど、事実上Quicksilverは開発止まってるし、Mac OS Xのアップデートである日いきなり使えなくなることも考えられるので、Quicksilverに依存しきりの人はランチャーの「次の選択肢」を考えておいた方がいいかも。

Divvy

最初はBreezeというソフトの方をmacZOTで知ってこういうウィンドウサイズ管理ソフトの導入を検討してた。Breeze買おうかなと思ってたんだけど、たまたまDivvyの存在を知ってこっちを使ってみたら、HUDっぽいUIで画面サイズを簡単に変更できるところが素晴らしくて、BreezeやめてDivvyを買った。

RubyKaigiで近くに座ってる人のMacBookの使い方を見てたらやたらSpacesでたくさん画面を作って切り替えながら作業してる人が多かった。

Spacesはメモリの量が少ないMacでやると重いので自分は使ってない。そもそもSpacesで複数の画面を切り替えて使っても、例えばブラウザーを見ながらテキストエディターに何かを入力するみたいな作業が必要なときには頻繁にスペースを切り替えなければならず、大変うざい。

一発でアプリケーションウィンドウサイズを変更して左にブラウザー、右にエディターみたいな使い方が出来たら便利だ。DivvyやBreezeならこういうことが出来る。Breezeの場合はウィンドウサイズと位置をあらかじめ登録しておかなければいけないけど、DivvyはHUDポップアップウィンドウを呼び出して、ドラッグで好きなようにウィンドウサイズ・位置を変更できる。こんな感じ。

13インチのMacBook Proは1280×800という解像度のため、データを参照しながらのテキスト入力などでは生産性がいまいちだけど、Divvyなどを使うことでセカンドディスプレイがなくてもデータを参照しながら効率的に入力作業を行うことが出来る。大変素晴らしい。

職場が変わって仕事ではWindows漬けだけど、Windowsにはこの辺の作業を快適にしてくれるソフトが少なくて、改めてMac良いと思う。Terminal内での操作感は基本的にUNIXやLinuxと同じだし。Macで仕事できてる人たちが本当にうらやましい。

| @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はなんとかしろや。