2008-02-27

できた [was: tracのロードマップにリンクを張りたい]

いろきゅう.jp ~Programmable maiden~ Tech sideのエントリ「tracのロードマップにリンクを張りたい」より:

'マイルストーン' へリンクを張る wiki 文法は用意されているものの、そのマイルストーン一覧が表示される「ロードマップ」のページへのリンクの張り方がいまいちわからず。


0.11でしか試してないけど。
[/chrome/../roadmap ロードマップ]
静的リソースがマップされるディレクトリchromeを介して、相対パスで親ディレクトリから通してみる。ちゃんとリンクしているし、レンダーも問題なし。
でも、なんかTracLinksの仕様が変わってるなぁ。/で始まるリンクは、プロジェクトのrootからの相対パスになるっぽい。

追記 (2008-02-27 16:10):
[htdocs:../../roadmap ロードマップ]の方が妥当か。

追記 (2008-03-03 18:08):
#6884でバグに上がってるのと、類似っぽい。

2008-02-26

Shame in you

ヒラリーたんがオバマたんを非難する演説を見ていて "Shame on you" というフレーズがあったんだけど、ついうっかり "Shame in you" と空耳。 Alice in Chains の曲にそういうのあるのよ。何か引っ掛かったので、辞書を引くと:
Shame in you
恥ずかしい思いをしている。
Shame on you
恥を知れ
全然、意味違うのね。
Shame in you.

2008-02-18

故郷とは遠くにありて

蘇民祭でライトを消して猥褻物陳列罪回避とかのニュースを観て、何となく。伝統がどうとか、セクハラがどうとか、文明の衝突がどうとか、いろいろ面倒そうね。と、いちいち注目せざるを得ないのも、嫁の実家がそばであれこれ予備知識を授けられるからなんですが。
俺的には全く問題ないと考えるが、たぶんこれは文明フィルターがかかってる。なぜって、わが故郷には田縣神社というのがあって一応氏子のようなのだ。検索すれば分かるけど、ここの豊年祭というイカレてる祭りが幼少時のイノセントな心に深いゆがみを与えているに違いない。
神輿を担ぐのは42厄男だけど(記憶がはっきりしないけど、たぶん巫女は33厄女)、これはある意味ほんとうに大厄である。普通に考えれば恥ずかしいだろう。それもあってか、厄男は朝からがぶがぶ飲酒し、神輿を担ぐ時点では完全に酔っぱらっている。猥褻物陳列罪というよりは、騒乱罪という方が妥当じゃないだろうか。で、その酔っぱらったまま、餅投げを始めるからえらいことになるのである。本当に昔は屋根に登って撒いたそうだが、俺の記憶ではベランダのようなところから投げている所しか記憶にないので、ずいぶん昔に変わったのだろう。酔っぱらいが屋根に登ると危ないし。まぁそんな訳で、おれにとっての祭りというのは:
  • 酔っぱらい大量発生
  • 外人も大量発生
  • で、大暴れ。
  • 「だしもの」いっぱい(w
という感じなのだ。うん。
とは言っても、豊年祭は平日だろうが容赦なく決行されるので、子供は通常神輿が練り歩くのは観ない。神輿を担ぐのがだいたい12:00くらいで、まだ学校にいるのである。で、餅投げが16:00くらいだったので、これには行く。現地の子供の間では餅を拾いに行く祭りのような感覚であった。あののぼりとか飴とかはアレだったが。(と言っても20年近く前の話よ。) 最近は氏子の数も減って、神輿は氏子じゃなくても厄男じゃなくても担げるよう。祭り好きのアナタは一生の思い出に一度はどう?カメラマン付きで。たぶん、現地の現像屋じゃないとモザイクまみれになるけど(w

やはり故郷は遠くにありて想う程度にしておいた方がよさそうだ。
でも、今年は休みの日に豊年祭のようなので、見に行きたい人がいたら案内してもいーよ(嘘)

2008-02-16

Time Machineでどこまで戻るか?

Case-Sensitiveなファイルシステムにすべく、OSの再インストールをした。ついでなので、Time Machineでディザスタリカバリがどこまでいけるのか実験。いざって言うときに何が消えるのか把握してないと、役に立たないし。
手順はざっくり:
  • Time Machineでバックアップ
  • OSを再インストール (Case-Sensitiveでファイルシステム再作成)
  • 初回起動画面でTime Machineからリストア

結果から言うと、完全にロストしたデータはなし。でも、戻らないのもあるので注意は必要。Time Machineからのリカバリ以外に、手を加えなければ行けなかった作業を列挙しておく:
  • OSやバンドルパッケージのソフトウェア更新
  • Xcode, DashCode等オプションのインストール
  • /usr/localは無傷だったが、/Library/Pythonの配下にインストールされたPython-eggが復元されなかったので、再度easy_install
  • HoloGitのファイルは復元されたが、PhotoBoothの設定ファイルが元に戻っていたので、作り直す
  • iTunesのコンピュータ認証つけ直し。でも認証台数は上らなかったので一安心

とりあえず、ファイルはホームディレクトリに置いておけばなんとかなることは分かった。

2008-02-14

Case-sensitivityにはまる

無知とは恐ろしいものよ。MacOSはUnixベースになったとは言え、まだデフォルトでは大文字小文字を区別しない(=Case-insensitive)のね。そんなことも知らなかったMac初心者のgjoです。
Leopard serverでは、Case-sensitiveなのがデフォルトになっているけど、デスクトップ版ではCase-insensitiveというちょっとねじれた状態のようです。Darwin kernel自体はどっちでも気にしないっぽいので、単純にファイルシステム(HFS+)を作るときのオプション次第ということらしい。
かつて、この問題にApacheが引っ掛かったらしく、"mod_hfs_apple"を導入するとか、httpd.confを書くときにCase-insensitiveであることを意識しないといけないようです。(デフォルトでは対処済みだけど、設定を変更するときは要注意ってことね)あと、ファイルシステムがCase-sensitiveだと、Photoshopが動かなかったりする(らしい)点も要注意か。
ということで、何かしら講じてCase-sensitiveな環境を作らないといけない訳ですが、さすがにオンライン状態でファイルシステムを作りなおすのは無理だろうなぁ。エンタープライズ級のマシンならともかく民生機だし。
Google様にお伺いを立てたところ:
  1. OSを再インストールするときにファイルシステムのオプションを変更する
  2. BootCampアシスタントとかでパーティションを割って、Case-sensitiveファイルシステムを作る
  3. Case-sensitiveなファイルシステムでディスクイメージファイル(*.dmg)を作り、ログイン時に自動マウントするようにする
という解決方法を授けられたので、かかる手間と得られる効果をはかりにかけて、といったところ。最終的にはTime Machineのリカバリを試しがてら、再インストールに走るんだろうなぁ。と思いつつ、さしあたってはディスクイメージを作って回避ですかね。

超越

あなたにコンパイルされたい。」よりも「あなたに.appndChild()されたい。」の方が洒落にならないと言う結論に至った。

2008-02-10

Mac OS Xでのパッケージ管理

趣味のコーディング環境をVMのUbuntuからMac OS Xに移動するにあたって、考えどころはパッケージ管理。VMを介さずともPOSIXネイティブコードが動く環境を手に入れた代償に、Ubuntuの「aptだけでほぼ完結」という、メンテナたちの不断の努力の成果を手放さなければならないのだ。Mac OSでのアプリケーション配布はいろいろ形式があるようだ:
*.pkg
いわゆるインストーラ。でもアンインストールの機能はない。/Library/Receipts配下にインストールログっぽい証跡が残るので、*.domlsdomコマンドに通すと削除すべきファイルは分かるようになっている。でもパッケージによっては何も残してくれない。
*.mpkg
*.pkgを束ねたものっぽい。メタパッケージみたいなものか。
*.app
アプリケーションバンドル。実体はディレクトリで、その下にバイナリとかリソースファイルが転がってる。/Applicationsにそのままコピーするとインストール完了。アンインストールも基本は削除だけっぽいが、ものによっては/Libraryとか~/Libraryの配下にファイルを残しているので、それも消さないとだめっぽい。
*.dmg
ディスクイメージ。実行するとマウントされる。中をみるとたいてい*.m?pkgか*.appが入っている。
なんとどれもアンインストール機構を備えていない。この辺は強く改善を要望したいところ。別にインストール厨じゃなくても、パッケージのバージョンアップとかは普通に必要になるし、この辺は確実にできる仕組みが備わってるのが「現代的OS」じゃなかろうか。

で、ことPOSIXなアプリケーションであれば、アンインストール機構まできちんと備えたパッケージングシステムがサードパーティでメンテナンスされている:こういうのは、メンテナとパッケージの数が多い方が強いので、さしあたりMacPortsを選択。多勢が決したら乗り換えるかもしれないけど。MacPortsはLeopardなら先にXcodeを入れて、X11をXquartsの配布でアップデートしろと言ってるので、その通りやった。この辺の手順は検索すればいつでも出てくるので書かない。

ちょっと困ったのが、Pythonのライブラリ。MacPortsだと/opt/local配下にインストールされるので、OSに標準でついてくるPythonから読ませるためにはPYTHONPATHを変更しなきゃいけないし、2.5向けのパッケージで致命的に抜けているのがあったり、結局tracは開発版を使うことになるので、どこかでPython-eggとかで手で入れなきゃいけないのが出てくるし、そうするとportで完全にアンインストールできなくなるし。中途半端に一元化するのはあとあと面倒ということで、Pythonは当面OS付属のを使うことにする。
MacPortsのメンテナンスが強化されるか、自分がメンテナンスに乗り出すかすれば、Portsを使うことにすると思うんだけど。

標準で入っているPythonは2.5.1で、/System/Library/Frameworks/Python.framework/Versions/2.5へのシンボリックリンクになっている。setuptoolsとか、Subversionバインディングとかは、件のディレクトリに入ってる状態。easy_installすればたいていのものは揃いそう。インストール先は件のディレクトリでも/usr/lib/python2.5/site-packagesでもなく、/Library/Python/2.5/site-packagesになる。ここはPython-eggs専用らしい。またコンソールスクリプトは/usr/local/binにインストールされる。システムにビルトインされているのと、自分が入れたのが明確に分離されるというのも、標準のPythonで何とかなると思った理由だったり。うーむ。python setup.py bdist_mpkgでせっかくパッケージが作れるのに、アンインストール機能がパッケージャについてないのは残念だなぁ。

とりあえず、easy_installで入れたパッケージ達:
  • Mercurial
  • hgsvn
  • Pygments
  • pytz
  • Genshi -- trunkから
  • Trac -- trunkから

2008-02-03

巨大なメカ動物

Gizmodo Japanのエントリ「格好良すぎ! 動く巨大メカ動物たち in フランス(動画あり)」より:

080130squidsy.jpg

ナントまあ!

フランスの都市、ナントにて「Les Machines de l'ile de Nantes」という、ギズモーディアン垂涎もののイベントが催されているようです。
このイベントは巨大なメカ動物をこれでもかと展示しているというもの。写真を見る限りは、イカゾウなどがある様子。小さいころ読んだ「海底二万海里」を髣髴させるちょっとレトロスタイリッシュでアートな、ド迫力作品です。
しかもこれ、全部乗れるんだとか。


スチームパンク萌えなメカヲタにはたまらんですね。象が歩くのもいいけど、烏賊ロボのフォームが何とも言えんです。ちょうどLEGOのアクアレイダース作ってるとこだし。でも、がきに「行きたい」と言わせてもなお、フランスまで行くのは無理そう。どこか出資して全世界巡業してくれないものか。