Xcode 4.3.1とMacPorts

iOS方面で色々とアップデートしたら色々と起きたのでメモしておきます。

  1. Mac App Storeから Xcode 4.3.1 をダウンロードします。
  2. /Application/Install Xcodeを実行して、Xcode本体を/Application/にインストールします。
  3. インストール後、/Application/Xcodeを起動すると、Xcode 4.2がインストール済みであればそれらをゴミ箱に入れるかどうか表示されるのでゴミ箱へ移動しておきます。
  4. Xcodeのメニュー(Xcode→Preferences→Downloads→ComponentsまたはXcode→Open Developer Tool→More Developer Tools…)からCommand Line Toolsを追加でインストールします。
    (http://guide.macports.org/chunked/installing.xcode.html#installing.xcode.lion.43 を参照)
  5. ターミナルを開きます。
  6. sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer を実行します。
  7. xcodebuild -version を実行すると正しければ Xcode 4.3.1 Build version 4E1019 と表示されます。
  8. sudo port selfupdate を実行します。
  9. sudo port upgrade installed を実行します。
  10. 終わるまで他のことをやって暇つぶしします。

この後、emacs-appが23.4になっていたので前回と同じ手順でソースにインライン変換のパッチ適用して23.3から入れ替え。快適です。

自動的にビルド番号を更新する

iPhoneアプリのビルド番号を、Xcodeでビルドするたびに、自動的にカウントアップする方法があるようなので、ちょいとメモしておきます。

  1. ターゲット(TARGETS)の設定ページを開きます。
  2. サマリー(Summary)の設定シートを選択します。
  3. Versionの初期値として例えば”1.0.0″に設定します。この場合は”メジャーバージョン.マイナーバージョン.リビジョン”です。
  4. Buildの初期値として”0″に設定します。これがビルド通番でビルドするたびにカウントアップします。
  5. ビルドフェーズ(Build Phases)の設定シートを選択します。
  6. ビルドフェーズの追加(Add Build Phase)から、Add Run Scriptを選択します。
  7. リストにRun Scriptが追加されるので、Link Binary With LibrariesとCopy Bundle Resourcesの間にドラッグして移動します。”Run Script”をダブルクリックして”Run Script – Increment Build Number”などにタイトルを変えておくと尚良しと思います。
  8. “Run Script”の左にある三角記号をクリックして”Type a script or drag a script file from your workspace”の欄に以下のスクリプトを入力します。
  9. おしまい。
#!/bin/bash
build_number=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion""$INFOPLIST_FILE")
build_number=$(($build_number+1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $build_number""$INFOPLIST_FILE"

詳細は、http://stackoverflow.com/questions/6851660/version-vs-build-in-xcode-4 を参照ください。

文節区切りが分かるemacs-app

Mac OS X Lionに、パッチ適用されたEmacsをMacPortsからインストール(port install emacs-app +patches)してみたのもの、インラインで日本語変換すると文節区切りがどこかよくわからなくて微妙だったので、パッチ非適用のEmacsを持ってきて他のインラインパッチを当てて使うことにしました。

1. インラインパッチとフォントピコピコパッチのセットをsubversionで取得。

$ cd ~/Downloads
$ svn co http://svn.sourceforge.jp/svnroot/macemacsjp/inline_patch/trunk inline_patch-svn

2. 必要に応じておまじない。

$ sudo port selfupdate
$ sudo port uninstall emacs-app

3. 取得したパッチをEmacsのソースに当ててインストール。

$ sudo port patch emacs-app
$ cd `port dir emacs-app`/work/emacs-23.3
$ sudo patch -s -p0 < ~/Downloads/inline_patch-svn/emacs-inline.patch
$ sudo patch -s -p0 < ~/Downloads/inline_patch-svn/font.patch
$ cd
$ sudo port install emacs-app

4. 文節区切りも見やすく快適。

おしまい。

対数極座標空間と光の歯車

OpenCVという画像処理ライブラリのリファレンスマニュアルを眺めていたところ、cvLogPolarという関数が目に入りました。サンプルプログラムの処理結果画像を見ると元の画像がグニョグニョに変形しており、これはいったい何に使うためのものだろうかと思いつつ、その説明を読むと「画像を対数極座標空間に再マッピングする。… この関数は人間の網膜をモデル化したものであり,オブジェクトトラッキング等のための高速なスケーリングと,回転に不変なテンプレートマッチングに用いることができる。」と書かれておりました。

ふーん…。ハッ! 網膜のモデル化ですとな!!

“対数極座標空間と光の歯車” の続きを読む

Xcode 4.1とAPIリファレンス

ふと、OSX Lion上のXcode 4.1の環境設定でDocumentationを見てみると、ドキュメント名の右横にビックリマークがついておりました。クリックするとドキュメントのディレクトリに書き込む権限がないとか無いとかおっしゃってます。むーむむ。

$ cd /Library/Developer/Documentation/
$ sudo find . -type d -exec chmod 777 {} \;
$ sudo find . -type f -exec chmod 666 {} \;

とか妖しい呪文を唱えてから、もう一度環境設定を開いてCheck and Install Nowとかクリックしてトライしてみると、今度はビックリマークが消えてちゃんとGETし始めたようです。(自分の環境だけの問題なのかXcodeのバグなのかはわかりません…)

で、全部のGETが完了!。…しかし、ターミナルで確認してみると新しく取得されたファイルの所有権が実行したユーザとかになってて案の定無茶苦茶に。何かあったら嫌なのでそれっぽい属性に戻すべく、Xcodeをいったん終了して、

$ cd /Library/Developer/Documentation/
$ sudo find . -type d -exec chmod 755 {} \;
$ sudo find . -type f -exec chmod 644 {} \;
$ cd /Library/Developer/Documentation/DocSets/
$ sudo chown -R _devdocs:wheel *.docset

とか更に妖しい呪文を唱えてみました。確認のため、Xcodeを立ち上げてリファレンスを引いてみましたが、とりあえず大丈夫そう。…むーむむ、こんな処置で良いのかよくわからないけど、もう眠いので本日終了です。

お粗末様でした。

# 追記:
# Xcodeがapple.comにログインするときに使っているキーチェーンが壊れている可能性ありですな。

秀丸モード for Emacs 23

ブログの更新が最近滞り気味ですが、ご容赦下さい。

さて。

近所に「なんでMacに秀丸がないんだ!」とかギャーギャーのたまうiOSプログラマがおられましたので、まぁプロプライエタリな秀丸をOSXに移植するのは無理ですから(そんな根性や交渉力はない)、その代わりに戯れでEmacs23のマクロで秀丸のキー割り当てを再現してみることにしました。
ちなみに、秀丸からEmacsに移行するとか秀丸でEmacsのキーバインドを再現するというのはネットでよくみかけますが、今回はその逆。

hidemaru-mode.el

上記のzipファイルを展開し load-path の通っているところに置いて、.emacs/init.el とか初期化ファイルの最後に (autoload ‘hidemaru-mode “hidemaru-mode” nil t) と書いてから、Emacsを起動して好きなバッファで M-x hidemaru-mode と打てば、怪しい世界が発動するかと思います。
Emacs22で動くかどうかは確認していません。ちなみに怪しい世界をオンオフできるようにマイナーモードとして作ってあります。詳しくはマクロファイルの内容とEmacsのリファレンスを見て下さい。

さて、これでばっちり、秀丸 on Emacs !。

…と思いきや、しかしですね現実はかなり微妙です。秀丸(およびWindows)の機能に似ているような気のするEmacsの関数をそれっぽく割り付けただけなので、オリジナルな状態のEmacsよりも格段に使いにくくなってます。(おい)
しかもモードをオフにするとキー割付が元に戻らないというバグ付きですが、左手小指がまた痛くなってきたのでデバッグしません。(おいおい)

ということで、自分の場合は、Windowsでリアル秀丸を使っているときは秀丸用のキーマップでWindows/Mac/LinuxでEmacsを使っているときはEmacs用のキーマップでと、無意識に切り替えて脳から指に指示を出しているようなので、勢い作ってみたものの…正直なところ要らん。という結論でした。(おいおいおい)

改造フリー・ノークレーム・ノーリターンでお願いします。

静かになりませぬ

拙作「16進電卓」のレビューにて「キーのクリック音がうるさいよ」とのご指摘を受けたり、サポートサイトの方では「音がならないようにする方法を教えて」とかのお問い合わせを受けたりしておりまして、「…おかしいなぁ、本体をサイレントモードにして使ってもらえれば」と思って今頃になってちょっと調べて見たら、なんと。

iPhone/iPadにはついているサイレントモードのスイッチがiPod touchにはついてないっぽい。えー…

iOSが載っかるハードウェアの全機種とソフトウェア(iOS)の全バージョンと個々それぞれの実装状況について一覧表とかにまとまった資料って、Appleから出てたりしないのかしら…