Codaでソース管理(1)

これまでは Transmit と Smultron、SmartCVS という組み合わせでウェブサイトやウェブアプリケーションの開発を行っていたが、Smultron の開発が終了したことで Coda を導入することにした。加えて FireWire 400 や パラレル ATA、冷陰極管バックライト液晶といった旧システムに別れを告げるべくハードウェアを iMac に変更し、まっさらの状態から Snow Leopard にウェブ開発環境を整えることになったので、Coda と Subversion との連携作業について内容を書き留めておく。

  1. 最新の Subversion を CollabNet からダウンロードしてインストールする。
  2. Subversion のディレクトリを作成する。(例:~/svn
  3. 保管プロジェクトのディレクトリを作成する。(例:~/svn/project、実際は上記2と併せて mkdir -p ~/svn/project で一手順とした。)
  4. Subversion のリポジトリ作成コマンドを入力する。(例:svnadmin create ~/svn/project
  5. 上記4で作成される ~/svn/project/conf/svnserve.conf の次の4行のコメントを外し先頭の空白を詰める。

    anon-access = read
    auth-access = write
    password-db = passwd
    authz-db = authz

  6. 同階層にある ~/svn/project/conf/authz に次の内容を追加する。(斜体のユーザ名は適宜調整する。)

    [/]
    hkitago = rw
    * = r

  7. 更に同階層にある ~/svn/project/conf/passwd に次のようにユーザ名=パスワードの形で1行追加する。

    hkitago = passwd

  8. Subversion を起動する。(例:svnserve -d -r ~/svn/project

更に最後の手順で行った Subversion の起動を OS X の起動後に自動的に行う様に設定する。以前は Lingon というGUIアプリケーションを使っていたのだが、こちらも開発が終了するとのことで Apple が公開している Mac OS X Manual Page For launchd.plist(5) を参照しつつ手作業とした。どちらの場合も管理権限が必要となる。今回は org.tigris.subversion.svnserve という一意の名前で呼び出す事ができるように launchd daemon に登録した。

  1. org.tigris.subversion.svnserve.plist という XML ファイルを次のような内容で作成する。(例:sudo vi /Library/LaunchDaemons/org.tigris.subversion.svnserve.plist
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
    http://www.apple.com/DTDs/PropertyList-1.0.dtd>
    <plist version="1.0">
    <dict>
            <key>Disabled</key>
            <false/>
            <key>Label</key>
            <string>org.tigris.subversion.svnserve</string>
            <key>ProgramArguments</key>
            <array>
                    <string>/usr/bin/svnserve</string>
                    <string>-i</string>
                    <string>-r</string>
                    <string>/Users/hkitago/svn</string>
            </array>
            <key>inetdCompatibility</key>
            <dict>
                    <key>Wait</key>
                    <false/>
            </dict>
            <key>Sockets</key>
            <dict>
                    <key>Listeners</key>
                    <dict>
                            <key>SockServiceName</key>
                            <string>svn</string>
                    </dict>
            </dict>
            <key>OnDemand</key>
            <true/>
    </dict>
    </plist>
  2. 権限を変更する。(例:sudo chown root:wheel /Library/LaunchDaemons/org.tigris.subversion.svnserve.plist
  3. launchd daemon に読み込む。(例:sudo launchctl load /Library/LaunchDaemons/org.tigris.subversion.svnserve.plist
  4. launchd daemon を起動。(例:sudo launchctl start org.tigris.subversion.svnserve

子供が昼寝から起きたので Coda 側の設定は次回に。

Magic Mouseの左右スワイプにSafariのタブ移動を割り当てる

Apple Magic Mouse は Mighty Mouse の最大の欠点である、使用頻度に比例してホイールに蓄積する埃等により動作しなくなるという問題を iPhone や Macbook Pro のトラックパッドの技術を応用し改善している。特に二本の指を使ったスワイプ動作は、従来のホイールでは再現することができないという点で画期的なものだ。ところが全てのアプリケーションに共通してその挙動は「戻る」と「進む」が設定されており、Safari とタブブラウジングを多用する身としては些か使い勝手が悪いので次の文献を参考に Snow Leopard を改造することにした。

How-to: Enable Expose and Spaces for the Magic Mouse

  1. MultiClutch 環境設定パネルをインストールする。(全てのユーザー用がオススメ)
  2. 最新の SIMBL プラグインをインストールする。
  3. My Tech Spot が公開している Multiclutch X64 SIMBL プラグインをダウンロード(記事に紹介されている直リンクと、最近更新された投稿へのリンク)し、/Library/Application Support/SIMBL/Plugins に配置する。
  4. 手順1の MultiClutch プラグインを /Library/InputManagers から削除する。

そもそもの MultiClutch 環境設定パネルというのは最新の Macbook Pro でお目見えした複雑なジェスチャーによる操作が可能なトラックパッド用のもので、それに加えて Snow Leopard に対応した SIMBL プラグインを利用することで Magic Mouse のジェスチャーを拡張している。

後は環境設定のその他カテゴリにある MultiClutch 環境設定から次の様に設定をした。
MultiClutch 環境設定を設定 この部分はマックユーザーであれば直感的な設計であると思うので省略するが、気をつけることはタブ移動のショートカットをコマンド+シフトに加えて左右矢印キーではなく、”[” 及び “]” を割り当てることだ。これは、近年矢印キーはウェブアプリケーション等 JavaScript に割り当てられることが多いということに理由があり、元々は矢印キーが一般的な設計だったのだが Apple もそれに気が付いたらしく、恐らく移行期間となっているのか現在二通りの方法が示されており、その違いというのはウェブページ内のフォーム要素にフォーカスしている状態でタブ移動ができるかどうかにあるが、この辺りもお好みで、ということになる。

最後に MultiClutch への寄付もお忘れなく。Thanks Will! 🙂

Time Capsuleを使ったバックアップでキーチェーンエラーを回避する

リビングに設置しているテレビ番組録画専用の Mac mini から次のような異音が聞こえた後 OS が停止し再起動を試みたが同様の症状のまま起動ディスクを認識しなくなったため、ハードディスクが発熱等の理由により逝ってしまったのだろうと判断し交換した。この機種で7200回転で且つ、録画と編集、iPhone 用にM4Vファイルの書き出しをかなりの頻度(週末等は同時もあったり)で繰り返していたので一年持たなかったのは少し教訓になった。

過去に数回ハードディスクの故障に遭遇しているが Time Machine による復帰の容易さは理解しており、Time Capsule を導入してからは外付け機器を子供に悪戯されることもなく、今回も OS の再インストール後はすんなり復帰できるものと思っていた。ところがネットワークを経由することによる遅さ(100GBの復帰に9時間)に加えて、復帰後に再度 Time Machine のディスク設定をする際に訪れた次のようなキーチェーンエラー -25293 に悩まされる事になったのでその解決までに試した事を作業順に記録しておく。

キーチェーンエラー -25293

  1. /Library/Keychains/Syetem.keychain ファイルの削除。その結果エラー番号が-25307に変わっただけだったので戻す。
  2. AirMac ユーティリティの手動設定を使った Time Capsule パスワードの再設定と再起動。エラー内容はそのまま。
  3. ディスクユーティリティを使ったアクセス権の修復。エラー内容はそのまま。
  4. OS の再起動後に何故か Time Machine ディスクの認識に成功。

具体的にどの操作が決め手となったのか特定することはできないのだが、Apple Discusion を見ていると様々な状況により異なるようなので上述のようなことは順番に行う必要もなく、一手試しては確認することを繰り返すことが(面倒だが)最善の手だと思う。

キーチェーンが引き起こす様々な問題についても過去に同一ドメインによる複数のベーシック認証情報を保持できないことを書いたが、Google で検索してみると同様のエラー番号を出力する問題が Mobile Me (iDisk) サービス等でも発生するようなので同じ事を試す価値があるかもしれない。

Color Picker.app を更新

screenshot(2009-09-12 9.36.08)Snow Leopardになって Losetta がオプションとなったため、PPC 時代から利用していた Color Picker.app を Universal として書き換えた。また LuckySoftware.dk によるプラグイン HexColorPicker の更新が止まっているようなのでこちらも新たに waffle software による Hex Color Picker を利用するように webloc ファイルを変更しアーカイブしたものをサーバー上に置いた。旧版も引き続き保管しているのでそれぞれ以下のリンクから利用して頂きたい。

Color Picker.app
Color Picker.app for Rosetta

ユーティリティフォルダにある DigitalColor Meter.app との違いを簡単に説明すると、虫眼鏡ツールで選択した色を下方にあるパレットにドラッグ&ドロップすることで保存し Keynote や Numbers といった別アプリケーションで利用できる他、プラグインで Hex 値を算出することでウェブ制作等 CSS への利用が容易(LuckySoftware のプラグインは rgb の書式も出力していたので便利だったが…)になる。Adobe も色管理に Mac OS  ネイティブの Color Picker を使ってくれれば作業効率が良いと思うのだが Windows 版との兼ね合いがあって仕方ないのだろう。

最後にアイコンを権利無視で使っているのは申し訳ないところだが、もし有志がいらっしゃればぜひお願いしたい。Apple からのお叱りも甘んじて受けます。:-)

iPhone を DFU モードで起動する

What worked best for me is hold down power and home for about 10 seconds and then release the power button and keep holding home until the device is recognized.

引用元: How I downgraded 3.0 to 2.2.1 « cocos2d for iPhone.

iPhone SDK 3.1 beta を入れた時に iPod touch のアップデートに途中で失敗し Xcode や iTunes で認識しなくなったことがあるが、引用した手順を使って DFU モードで起動したところ、初期化状態(iTunes に接続する絵が表示)の iPod touch を認識し復元することで再起する事ができた。

しかもかなり愚かだったことが、iTunes のバックアッププロセスを無効にしていたことだった。加えてアップデートに失敗した原因を冷静に考えれば 3.1 beta は Snow Leopard や iPhone 3GS 以降のハードへの最適化を目指しているだろうから、手を出したのは感情に流されたとしか言いようがない。

WordPressのビジュアルエディタのフォントを変更する

使い始めた WordPress のビジュアルエディタは先にも述べたようにRTFを扱うように便利なのだが、丸ゴファンとしては Safari RSS の時と同様に変更したいところだ。

wp-includes/js/tinymce/themes/advanced/skins/wp_theme/の中にあるcontent.cssを見ているようなので、このファイルを開き、74行目のbody.mceContentBodyのフォントサイズの指定数値を14pxに変更してみました。

引用元: WordPressのビジュアルエディタのフォントを変更する

具体的には次のように変更した。バージョン2.8ではどうやらこのファイルだけ編集すれば良いらしい。

font: 14px/19px 'HiraMaruPro-W4', 'メイリオ', Meiryo, 'MS Pゴシック', sans-serif;
line-height: 1.5;

実際に Safari 4 と IE7 ではこう見える。

safari

ie7

Google Maps Plugin for アドレスブック

期待も虚しく Mac OS X Leopard に付属のアドレスブック 4.1も Google Maps サービスにうまく接続することができなかった。正確に言えば、MapQuest から接続先は変更になったものの、Street が先頭に明記される西洋の住所表記の場合にのみ対応している(日本の場合は市区町村で表示する)ということになる。そこでアドレスブック.app から日本の住所を正しく Google Maps サービスで表示するプラグイン “Google Maps Plugin for アドレスブック(ab2maps.google.co.jp)” を Tiger 時代から引き続き公開することにした。

動作環境:アドレスブック2.0以上

インストール方法:

  1. 以下のリンクからプラグインをダウンロードする。
    Google Maps Plugin for アドレスブック
  2. 展開したディスクイメージに含まれる “ab2maps.google.co.jp.scpt” を “~/ライブラリ/Address Book Plug-Ins/” にコピーする。ディスクイメージにコピー先のエイリアスを配置しているのでそちらにドロップすることでも良い。
  3. アドレスブック.app を再起動する。

使い方:

  1. 住所の「国」情報に “日本” もしくは “JP”(小文字でも可) と入力しておく。また、番地以降の建物名などは改行して記述しておく。(部屋番号のみの場合はダッシュに続けて一行で書いても可)
  2. アドレスブックの「自宅」や「勤務先」といった住所項目をクリックすることで表示されるコンテクストメニューにある “Google マップ” を選択する。

P.S. Snow Leopardのアドレスブック5.0から「この地図の住所を表示」コンテクストメニューが利用できるようになったのだけど、未だうまく動作しないようだ。