10月 192009
 

この間 Snow Leopard をインストールしたときはアップグレードインストールだった。だって店員さんが「クリーンインストールはできません。」て言うんだもん・・。

しかし、コメントを頂いたり、ウェブで検索してみると CD(あ。DVD か;-)を突っ込んで再起動し、 c を押しっぱなしにするとクリーンインストールができることを知ったので、過去の遺産を全て払拭すべく実施したのでありました。

DVD からブートした後は、インストール画面に表示されているツールバーのメニューから「ディクスユーティリティー」を起動してパーティションを削除する必要があります。

僕は外づけ HDD も持っていてタイムマシーンも動作しているのだけど過去の遺産は引っ張ってきたくないので、自分でバックアップしたものをインストール後に必要なものだけ抜き出す。と言う戦法に出ています。

気がついた点としては(当然なんだけど) ~/Library/ はバックアップするの重要ですねぇ。けど、このディレクトリ、ゴミが多いのもまた事実で、 ~/Library/Caches/com.apple.Safari/ なんてのはサクっと消してしまったほうが良いですね。後、フォントは /Library/Fonts/ にインストールしたほうが断然良い。

ってな感じで、復旧も終わりクリーンな状態となり、Xcode やら iPhoneSDK などをインストールして開発環境を整えます。それにしてもクリーンインストールして解ったのだけど、

/usr/bin/perl5.10.0
/usr/bin/perl5.8.9
/usr/bin/gcc-4.0
/usr/bin/gcc-4.2

などなど、随分とやってくれますなぁ。Apple も。って感じがします。そもそも、Xcode 入れた段階で /Developer/SDKs/ には MacOSX10.5.sdk/ と MacOSX10.6.sdk/ の両方がある。ってのにも驚いていますが・・。

それにしてもクリーンインストールした結果、それなりに make できないものが出てきて困っています。例えば sendmail-8.14.3 は Darwin 10.0.0 に対応してないし、make は通らないし、emacs は 22.3、23.1 共に make が通らないようになった。アップグレードインストールした時は無事に make できていたので何かがおかしくなったんでしょうなぁ。と言う感じです。自力で make するのは色々なソフトウェアが Darwin 10.0.0 に対応してからのほうが良いような気がします。

が、ただ単に「Darwin 10.0.0 に対応」とは行っても例えば FreeBSD の ports 的に言うと ports/devel/boehm-gc なんてのは 6.8 だと Darwin に対応しているのは i386 と PPC のみ。Darwon 10.0.0 は default で make すると x86_64 バイナリを出力するのでソースコードも Darwin の x86_64 に対応してくれないとパッチ書きまくりになってしまうであります。まぁ、gc の場合は 7.2alpha2 でちゃんと Darwin の x86_64 に対応しているので事なきを得たのですけどねぇ。

さてと。epkg ネタ行きましょう;-)。

僕は MacOSX ではバイナリパッケージとして epkg(http://www.ie.u-ryukyu.ac.jp/epkg/darwin4u/) を利用しています。管理も日本の方がやっているので ML に入れば日本語でのやり取りが可能だし、FreeBSD の ports みたいな感じなので、自分が欲しい epkg は自分で作成して仲間に入れてもらうこともできます;-)。

僕が過去に作った epkg のソース版 sepkg は以下の URL にあります。そして自分で作ったものはマージしてもらえたりもしているので嬉しいことです;-)。

http://icmpv6.org/Prog/Epkg/

epkg は Snow Leopard 版が出ましたが、今の所はまだ、バイナリパッケージが少ないようです。 FreeBSD 的に言うと 「ports から make する。」って動作が sepkg から make することになるんですが。現在は以下のような感じです。

http://www.ie.u-ryukyu.ac.jp/epkg/darwin6u/SEPKG/

で、じゃんじゃん sepkg 作ってくれる人募集中だそうです;-)。利用して「あれない。これ欲しい。」って言うより自分で作っちゃえっ。ってのが僕の感じなのであります。

今回はクリーンインストール環境からなのか、そこはかとなくはまった点を書いておきます。

まず、i386 と x86_64 のユニバーサルアプリの作り方ですが、/Developer/SDKs/MacOSX10.6.sdk
が必要です。 MacOSX は基本的には /usr/local/ は利用しないので自分でインストールしたライブラリが /usr/local/lib/ にインストールされた場合は以下の作業が必要になります。

> cd /Developer/SDKs/MacOSX10.6.sdk/usr
> ln -s /usr/local/lib
> ln -s /usr/local/include

 
僕もそれなりに epkg 利用してきましたが、SDKs の下に symlink する必要があるのを初めて知りました(^^;;。

後は簡単に sepkg からの make 方法を書いてみたいと思います。

> sudo -s
# cd /usr/epkg
# ftp -a http://icmpv6.org/Prog/Epkg/Darwin-10.0.0/stunnel.src.epkg
# tar xvzfp stunnel.src.epkg
# rm stunnel.src.epkg
# cd security/stunnel/
# make
# make plist
# make install
#

 
これだけです。簡単;-)。 make したときに i386 と x86_64 のバイナリを生成します。make plist したときに i386 と x86_64 を足したユニバーサルバイナリにしてくれます。 make install すると生成したユニバーサルバイナリがインストールされます。

実際にインストールされたかは file コマンドを打てば良いでしょう。

> file /usr/local/bin/stunnel
/usr/local/bin/stunnel: Mach-O universal binary with 2 architectures
/usr/local/bin/stunnel (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/local/bin/stunnel (for architecture i386): Mach-O executable i386

 
非常に簡単で、本当に FreeBSD の ports みたいでしょ;-)。インストールされている情報は epkg list とか打てば確認できます。

後、sepkg を作成するときのヒントを少々書いておきましょう。まぁ、ほとんど Makefile を編集すれば良いだけですけどね。

CATEGORY = security
NAME     = stunnel
VERSION  = 4.27
PKGNAME  = ${NAME}-${VERSION}-`epkg arch`.epkg
BUILDDEP =
SOURCE1 = ${NAME}-${VERSION}.tar.gz PATCH1 = SRCS = ${SOURCE1} ${PATCH1} MASTERSITE = http://www.stunnel.org/download/stunnel/src/ PATCHSITE = WORKDIR = ${NAME}-${VERSION}
TMPDIR = /usr/epkg/tmp DSTDIR = /usr/epkg/distfiles/${CATEGORY}
ARCH1 = x86_64 ARCH2 = i386 ARCHS = ${ARCH1} ${ARCH2} UBDIR = ub-root
CONFIGURE_ARGS = --localstatedir=/var/tmp \ --enable-static --disable-fips --enable-ipv6 \ --with-threads=pthread --disable-libwrap
- 以下略 -

 
大体、ここいら辺りを直せば OK かな。Makefile のもうちょっと下の方(以下略の下のほう;-) の .CONFIG: .PATCH の所で -isysroot で SDK 参照してそれをアーキテクチャ単位で for で回している。と言う感じです。

ややこしいオプションとかは余り考慮したくないのだけど、僕の場合は FreeBSD の ports を参考にしてオプションとかパッチの情報を仕入れています。

と、言うことで、この記事見て、僕も私も是非 epkg 作ってみたいわー。と言う人いましたら宜しくお願いします;-)。ちなみに僕は「自分が必要になったもの」の epkg を作ることにしています;-)。

最近、自宅ではすっかり MacOSX を UNIX として利用する機会が増えています。当然 GUI でメールを読んだり Safari 使ったり iPhoto で写真の管理もしていますけどねー。

10月 162009
 

ちょっと前に Emacs-23.1。 と、言うタイトルで一個書いたんだけど、その時はフォントの設定がメインで「日本語入力どうすんべな。」って感じで終わっていた。

その後、emacs-23 で Canna が使えると言う japanese/uim-canna を ports から試してみたのだけど、uim-canna と言うか、 uim-el と言うかは emacs-23 が起動した時だけ利用できるので scim-bridge-qt4 と同居できるのが良かったのだけど・・。

uim-canna って、ただ単に「cannaserver と通信ができる。」ってだけで、canna.el のキーバインドを踏襲してくれないということに愕然として、emacs-23 はすっかり利用するのを諦めていた・・。

後、アンチエイリアスが有効になった emacs-23 を利用するとむちゃくちゃ遅い。と言うのも「使わない」と言う一因ではあったのだけどね。

そんな感じでちょっと放置していたんだけど、ヤボ用で compface.tar.gz をダウンロードできるサイトを探していた(compface は x-face を表示するために利用します)ときにバッタリと遭遇。

Canna for GNU Emacs23

僕は emacs-22.3 までは emcws パッチを利用していたのだけど emacs-23 からはいよいよ利用できなくなっていたので途方にくれていたのでありました。

しかしっ!! ありがとうございました。これで emacs-23.1 で Canna のカナ入力が引き続きできそうです。嬉しいことです。

早速パッチを適用して make して試してみましたが、emcws と動作が一緒です。Canna のカナ入力に重要な C-n キーもちゃんと使えます。嬉しいことです\(^^)/。

本当にありがとうございました。感動して、ツイツイこうやってプログに書いてしまいました;-)。

10月 042009
 

僕はもともと iPodTouch ユーザだったのを iPhone3G に乗り換えたクチです。普段から au 携帯・Softbank 携帯・iPodTouch の三つを腰にブル下げて持って行動していたのを Softbank 携帯と iPodTouch を一緒にした感じ。

iPodTouch を iPhone3G にしたのは 3G 回線よりも GPS が欲しかった。というのが主な動機です。まぁ iPhone3G で「Web2.0 in Your Pocket.」してみたい。と言うのもあったけど、やっぱり GPS を手に入れ(また関連するアプリを利用し)たい。と言うのがメインだったのでありました。

実際に iPhone3G の GPS を利用するにあたり、AppStore の無料の GPS アプリはゴルフ系のもの以外ほぼ全てダウンロードして試してみました。現在、主に利用しているのはこんな感じです。

IMG_0461_iPhoneGPS1.PNG

#以降のリンクは AppStore へのリンクになるので iThunes がインストールされている PC でクリックしてください。

GPS ポイントを取得するために MosionX-GPS Lite を利用しています。これは もつ焼き・オリジナル (ウェブへのリンク)に情報を掲載するために主に利用しています。

IMG_0460_iPhoneGPS3.PNG

自転車や車のログの取得には GPSロガーAdvance を利用しています。これは無料版もあるのですが、115yen の有料版を購入しました。有料版は地図上の自分のいるポイントが画面の真ん中にあるのでカーナビみたいに表示され、自分の通ってきたところには線が引かれます。取得した GPS ログはメールで送信できるので後で自分で確認できます。

僕の車にはカーナビが付いているのですが、最新の地図情報が欲しい場合は マップアプリ を利用しています。出発場所と行き先を設定するとルートが表示されます。そして、自分がいるところは青い点で表示されます。

IMG_0463iPhoneGPS4.PNG

後の GPS 系のアプリケーションは現在地からお店やランドマークなどを見つけたりするのに利用している感じでしょうか。これもまた中々楽しい。例えば最寄り駅からお店までの道のりを調べたりするのに利用(ウェブへのリンク)したりしています。

さて、iPhone3G の GPS を利用していると色々気が付くことがあります。それらはカーナビ系のアプリのレビューを見ていると「バッテリーがすぐに無くなる。」「カーナビの反応が悪い。」などの意見としてよく見受けられます。

以降は二つのカーナビアプリについてですが、僕は購入してないのでレビューを書くことが出来ないのでここに書いてみましょう;-)。

いつもナビ と いつもナビ Lite のレビューが炎上しています。それはゼンリンの対応が悪いからで製品自体は1,800yenで期間無制限で使える(ただし音声などを利用する場合は350yen のオプションが必要)のは悪くないと思います。一年で 2,800yen とは高いなぁと思うのでありました。

後、全力案内!ナビ は地図情報が汚い。とレビューがありますが、ベクトルデータで地図を持っているので、まぁ、それは仕方ない。 いつもナビ や マップアプリ はビットマップデータなので、それはまるで Photoshop が扱うデータなのですが 全力案内!ナビ は Illustrator が扱うデータって感じかなぁ。データ自体はベクトルデータのほうがサイズは小さいし、ピンチが利用できる iPhoneOS では利にかなっている気がします。

ここまでダラダラと書いてきましたが、そろそろ話題を収束させていきましょう。まず、iPhone3G で GPS を利用しているアプリを利用した場合ですが、確かにバッテリー消費は激しいです。カーナビアプリのレビューでぼろくそ書いている人がいますが、それはアプリが問題ではなく、iPhone のハードウェアの仕様のような気がします。マップアプリ を利用していても GPSロガー・MosionX-GPS Lite を利用してもバッテリーの消費は早いのであります。

後、iPhone3G で GPS を利用したとき、どうも精度が悪い。と、言う件ですが確かに悪いような気がします。標高を表示するアプリの場合、GPS 衛星を四つ補足しないと標高は表示できないらしいです(これは GPS システムの仕様だそうで)。四つ補足できる機会はそんなに無いような気がします。あ。僕は東京在住ですが。また、速度を表示するアプリの場合、二点間の GPS ポイントを通過した時間で計測しているものが多いですが、これも走っている速度や宇宙(そら)への障壁などを考えると(車の中や電車の中では)中々 GPS 衛星をとらえることができないような気がします。

上にも書きましたが、僕が普段利用している GPSロガー は水平精度が 300 になったらログを取り始めます。と言う仕様になっているのですが、これを起動すると「なるほどー。」と思わせてくれます。つまり GPS の精度が高くないと(値が小さいほど精度が高い)まともに GPSロガー として機能しない、精度が低い状態でログをとっても意味の無いものになるので機能を停止する。なるほど。と言う感じなのであります。

IMG_0459_iPhoneGPS2.PNG

このアプリにおいて水平精度が表示できると言うのは非常にありがたいもので、他のアプリを起動してもまともに GPS が現在地を取得してくれないのも納得いきます。後一点強いて言うのであれば、Softbank の回線。地図データを 3G 回線でダウンロードするのですが、圏外になる機会がずいぶんと多い。その時は GPS 精度と地図アプリが動的にダウンロードできないのダブルパンチで、GPS を利用しているアプリにのしかかってきます。カーナビにはちょっとツライですかね・・。

と、言うことで iPhone3G で GPS を利用するにはある程度のあきらめが肝心。と言うのが最近解ってきました。カーナビアプリはきっと利用できそうにないので マップアプリ で行き先設定して走ったほうが良いかなぁ。などと思っています。

けど、iPod Touch にはそもそも GPS が付いてないので iPhone3G はやっぱり嬉しいかな。写真を撮ると GPS ポイントが写真のメタ情報に書き込まれたりするので GPS があったほうが良いなぁ。最近は携帯電話でも GPS を積んだ機種がたくさんありますが、それを活用できるアプリというのは限られていると、僕は思っています。その点、iPhoneApp は色々ものがあるのでそれはそれで楽しいので、やっぱり iPhone はもう手放せなくなっているような気がします;-)。

あ。今回は iPhone3G の GPS に特化したネタを書いてみました。 iPhone には GPS 以外にもたくさんの機能やアプリがあり、その可能性は無尽蔵だと思います;-)。

#僕が持っているのは iPhone3G なので 3GS で利用可能な電子コンパスは持っていません。今後電子コンパスを利用したアプリが主流になるとここで書いたお話は大幅に過去のモノとなるかもしれません。