何か俺のterminal活動記録的な感じになっちゃってますがあんま気にせず。
こないだtwitterで「vimを頑張って練習してる感じだけどぶっちゃけ全然使いこなせてねー」って話をしてましたら@shenqiさんが「これ使っちゃってください!」って.vimrcファイルをドカッってくれました。気前良すぎ。
しかも「surround.vimとvimanaっていうプラグインは入れとくべきだと思います!」ってご丁寧に教えて下さいました。持つべき者はフォロワーか。
調べたところ、surround.vimは囲む系の編集コマンドを追加してくれるような物らしい。便利そうだけど、使いこなせるのかしらん。vimanaはvimのプラグインのインストールを簡単にするためのプラグイン(分かりにくい)のようだ。これさえあればZen-codingでもあんなに苦労しなかったのだろうか‥‥。
で、surround.vimはインストールできたんだけれど(こちらにお世話になりました)、vimanaがどうしてもこうしてもインストール出来ない。 vimanaはperlスクリプトで書かれているので、インストールにはperlによるmakeが必要なんだけれど、これがどうにも上手くいかず。正面突破ではどうしても上手くいかないのでCPANというperlモジュールのインストール補助のツールを使ってみた。
またこれがなかなか上手くいかないどころの騒ぎではなく(そもそもCPANのインストールに四苦八苦)、どうしてこんなにエラーが続くのかという凡そ6時間以上に渡る悪戦苦闘の末、‥‥
まだインストール出来ておらず‥‥
結局後回しになっている。(ちなみにcpanは正確にはcpanminusを使わして貰っています、念のため)
エラー内容はもう結構前の話なので忘れてしまっているが、~~.PLがない!と言われてそれをインストールしたりダウンロードしたりして継ぎ接ぎしているうちにsyntax errorが出てきてしまったという謎の状態である。個人的にはこの間やらかした「MacOSX再インスコ事件」の時にperlのFrameworksのライブラリがぶっ飛んだのではないかと踏んでいるが、確証はない(これについては後述)。
で、話は突然変わるのだが、僕は航空宇宙工学科にめでたく内定したので、今学期「計算機工学基礎」という専門科目の授業をとっているのだが、それの期末レポートに、何を血迷ったのか僕は「C(gcc)とJava(Java VM)とrubyとでベンチマークテストしてスピードを比べて提出しよう!」と考えついたのだった。
一応断っておくが、「計算機工学基礎」ではプログラミングは一切行っていない。学科の方針で、「訳も分からん内からプログラミングやらせても出来るようにならん」という事らしい。まさか。
ということで僕は今期高校の「情報C」の授業に毛が生えたようなものしかやらしてもらえなかったのだが(いや、堀先生のありがたい情報雑学を除けば正直それ以下だったかもしれない)、それの集大成としてそんな大仰なことを思い付いたのは俺がきっとアホだからなのだと思う。
何しろ僕はrubyは触ったこともなく(残念なことに金曜一限の情報科学を取る元気は冬学期の僕には無かった)、cも二年前に数値微分の近似計算をやらされた程度で、Javaなんて言われたことをベタベタ貼りつけた過去の遺産があるだけである。それで「OpenGLによるフラクタル図形の描画プログラム」を書くつもりなのだから自分の脳天気さに呆れいる。〆切来週ですよ?
とはいえJavaのプログラムは幸い既に出来ているので(というか出来ているからこれにしたというか)、後はC言語とrubyで同じものが出来るようになんちゃってコードをえっちらおっちら書くだけの筈である。その為には先ずCとrubyにopenGLを実装する必要がある。
という訳でタイトルに戻ってくる。rubyでOpenGLしようという試みの始まりである。丁度友人に勧められてRails on rubyも手をつけようとしていたところなので丁度いいだろう。
rubyのOpenGLは既にrubygemsでプラグインが作られているらしく、gem installで一発‥‥のハズが‥‥
例によって上手くいかない。
原因はgemのヴァージョンが余りに古かったからだったのだが(最新版1.5.2に対して1.0.1(!))、アップデートにこれまた四苦八苦。普通にここでzipファイルを落としてsetup.rbを実行しようとしているだけなのに、実行時にerrorが出るという謎事態。
例によって原因がrubyそのものにあると踏んだ僕は、rubyをヴァージョンアップすることで解決を見ようとした。rubyのヴァージョンアップ(再インストール)の方法はこちらによる。Macportsをインストールし、selfupdateとsyncを掛けると見事rubyは1.8.6から1.8.7へと進化。そしてrubygemsのsetup.rbも無事走る。openGLもつつがなく終了し、この問題に関しては一応の解決を見た。
後はプログラムを書くだけである(それが一番大変)。
追記:僕のMacOSCX再インスコ騒動について
そもそもこの話は、僕がXcode3.2.6をAppleDevelopCenterから持ってきて、パッケージ内の一部インストーラを実行してしまったことに原因があるのだが、僕のMacBookでXcodeが起動しなくなるという問題が発生していた。 これは何度アンインストール→再インストールを繰り返しても直ることがなく、勿論3.1.2がインストールされている筈なのに、全く立ち上がらないという奇妙な状態であった。 ちなみにこれは他のDashcodeやFunHouseなどでも同じ事が起きており、無事なのはQuarzComposerだけという惨めな有様だった。
色々試行錯誤した結果、「/System/library/Frameworks/のどこかが悪いのだろう」と安易に決めつけた僕は、何とsudoコマンドを利用してこのディレクトリをぶっこぬいた。その結果どうなったかというと、MacOSXが立ち上がらなくなってしまった。(後から考えればkeychainなんかもまとめてぶっこぬいてるんだから起動しなくなって当たり前である。)
で、にっちもさっちもいかなくなった僕は(ディスク修復でも直らなかった)オールフォーマットを覚悟してOSを再インストールした。すると意外にも全ファイル保護のままOSの(実質)ダウングレードが出来たのである! しかもここまで色々強引にやらかしたお陰かXcodeも見事動くようになり、その後システムアップデートでOSを10.5.8にアップデートし直して今に至るというわけだ。
Xcodeの復活の理由はなにかという事だけれど、きっとダウングレードが功を奏したのだろうと思う。で、Frameworksディレクトリは何の関係もないのに引き抜かれたせいで、rubyやperlのライブラリがメタメタになってしまい、今日の不具合を引き起こしているのではないか、と、僕は考えている。
つまり今考えていて思ったのだが、perlを再インストールすればvimanaもインストール出来るんじゃないかな?