Microsoft Office:mac 2004 動いた。
ただ、更新パッケージを web からダウンロードして、それを手動で入れないとダメ。
Gimp.app は動かず。
カテゴリー: Mac
Leopard その後 (MacPorts とか)
Macports で徐々に環境構築。
最初から MacOS に入っていてびびったもの
– svn (subversion-1.4.4)
ダメだったもの
– tiff
– mlterm
– w3m (なんか、build がおわらなくなる)
– gtk (tiff から先に進めないのでいまのところダメ: glib は OK)
– screen (標準で最新のが入ってるから、まあいいか)
– gnuplot (AquaTerm がダメ)
– boost
使えているもの
– urxvt (rxvt-unicode)
– lv
– glib
– ptex
– tgif
あと、softwareupate っていうコマンドがあり、softwareupdate –list とか、softwareupdate –install -a とかすると、GUI なしで Apple のアップデートが実行できる。いいかも。前からあったのかな、と思って 10.4 なマシンをみてみたら、前からあったんだ。知らなかった…
rxvt-unicode は案外悪くないので、このまま mlterm から乗り換えてもいいかも。
Leopard と Update
そういえば、”software update” を起動すると、まだ準備ができてないらしく、
と怒られる。わはは。
MacOS X 10.5 Early adoption
普段ふれている時間が圧倒的に長いのは MacBook だ。そろそろハードディスクを交換したいな、と思っていたのだけれど、ちょうど MacOS X 10.5 (Leopard) が届いたので、HGST の 250GB のディスクを購入してやってみることにした。ハードディスクは、近所の PC Depot というお店で 19,970 円だった。秋葉原あたりにいけばもっと安そうだが、家から歩いていける距離なので、手間を考えれば充分に安いと思う。
で、ふつうに Mac を使う人ならば、全然問題ないと思う。たとえば、入れてみてさっくり動いたのは、
– ATOK2007 (なんか、JUSTSYSTEM によると若干不具合があるらしいが、いまのところ快調)
– iLife ’08
– iWork ’08
– ecto (Blog を書くためのツール: まだ 2.x を使っている)
– Carbon Emacs Package
– Adium X (メッセンジャ)
– Skype
– Growl
といったところ。つまり、普通に使う分なら、まったく問題ない感じ。
不具合があったのは、
– X11.app (なんか、Dock のアイコンが増殖する…)
– MacPorts の一部 (libtiff とか作れないので GTK が使えない。困った…)
といったところ。というわけで、Unix ベースな開発環境として使っている人には、まだ若干不便かもしれない (自分がまさしくそれなんだけど、どうしよう… 昔みたいに /usr/local を自分で作ろうかなぁー)。
こりゃいいぜ、と思ったのは、
– /usr/bin の ssh の、passphrase 入力が keychain 対応 (SSHKeyChain とか要らないっぽい)
– .Mac で、システム環境設定とか Dashboard Widget も sync できる
– Spaces はめちゃめちゃイケてる
– 日本語のフォント増えてる?
といったところ。
来週までは発表ばっかりなので、iWork とか動けば充分幸せなんですが、それ以降のために開発環境まわりをなんとかしないとなー…
iWork ’08
かなり重要なプレゼンがあり、いままで一番気合いが入っているのではないか、というスライドを iWork ’08 で作っている。博士3年の春から Mac に乗り換えて、それ以来、博士の学位審査も含めてほとんどのプレゼンテーションは iWork (というか Keynote) だ。口頭発表のスライドも、ポスター発表のポスターも、みんなこれで作っている。Mac 版の MS Office はなんだか重たい感じがするし…
iWork の弱点はアニメーションと数式とグラフだ、とずっと思っていたのだが、iWork ’08 のアニメーションはかなり強力で、洗練されたインタフェイスにまとまっていると思う。グラフは Numbers が入ったことでかなり自由度が上がって、これで充分といってもいいだろう。Numbers は「ふつうの人のための表計算」であって、理系の仕事で使う場合の自由度は Excel ほどではないけれど、Excel の機能が全部必要になるようなことは、そもそもあんまりない。数式はまあ、Grapher で書けないときは工夫するしかないかな。
基本的な操作はある程度 help とかを読んで覚えないといけないのだが、そのあとはいろいろ使っているうちにどんどんわかってくる、というのが Apple のユーザインタフェイスのすごいところだ。まったく恐れ入ります。こういうのが作れるといいなー…
さいきょうでばっぐかんきょう (つづき)
東京に帰ってきたら、家においていった MacBook で仕事してみたりしたわけですが、
いや、Core2Duo 速すぎです。G4 PowerPC でコンパイルするのと全然ちがう…
コード修正→make した→実行!→だめだった→ふりだしに戻る が、ぐるぐる回るときはいい感じです。
しかしね、画面が広いのは強烈に便利なんだよね。
つまり、MacBook Pro 17″ が現時点で最高のソリューションなわけだ。だれか買ってー。
iPhone
MacPorts に、iphone というカテゴリができており、
openssl とかの cross build 環境が用意されております。なんか、すごいな。
なんか、native なバイナリは動かないようになっちゃう、という話だけど、どうなんだろ。
iPod
iPod touch を注文しました。
10/2 納品予定らしい。わーい。
MacPorts で package を作る
ふだんの開発環境は MacPorts を使ってるのだけれど、自分の書いたプログラムをバイナリ配布するにはライブラリも配布しなきゃいけないわけだ。で、MacPorts には、個々の port を package にする機能に加えて依存関係をぜんぶまとめた meta package を作る機能もついている。
しかし、port mpkg gtk2 としたら、Xft2 のところで「もう一度インストールしてください」みたいなメッセージを出して停まってしまった。で、Xft2 の .pkg の下をチェックしたら、Contents/ の下に Archive.pax.gz と Archive.bom というファイルがなくて、他にもいくつかそういう package が存在するみたいだ。pax は tar みたいなもので、FreeBSD なんかにも付いている模様。bom はつまり、bill of materials で、要するにファイル一覧を入れておくものみたいだ。
そんなわけで、こんな script 書いてみた。
#!/bin/csh setenv PKGDIR ${PWD} cd / pax -w `port contents $1 | awk '{i++; if(i!=1) print "."$1}'` > ${PKGDIR}/Archive.pax cd ${PKGDIR} mkdir tmp cd tmp cat ../Archive.pax | pax -r mkbom . ../Archive.bom cd .. gzip -9 Archive.pax rm -rf tmp
これで、
cd PACKAGE-VERSION.pkg/Contents csh mkpackage.csh PACKAGE
とかすれば OK なはず。
あと、meta package の Contents/Info.plist に載ってる subpackage name と、Contents/Resources 以下の subpackage name が食い違っていることがある模様。要注意。
launchd HOWTO
MacOS X 10.5 has autofs, but 10.4 doesn’t. Alternative solution is am-utils, available in MacPorts. However, MacPorts doesn’t provide any way to launch amd at startup.
In MacOS X, there’s no scripts like /etc/rc, but there’s launchd. I spent about a half day to launch amd by launchd and learned:
- Write the policy to launch in /System/Library/LaunchDaemons/foobar.plist
- The process spawned by foobar.plist must NOT go background, but must stay in foreground (see launchd.plist(5)!).
However, my sweet amd goes background… So, launchd misunderstands: “Oh, amd is dead. I must start a new one!” and there will be so many amd processes.
As the solution, I wrote a simple wrapper script (amd_start) like:
#!/bin/sh /opt/local/sbin/amd -F /opt/local/etc/amd.conf while [ true ]; do sleep 360000 done
And my amd.plist is this:
<?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>Label</key> <string>amd</string> <key>OnDemand</key> <false/> <key>ProgramArguments</key> <array> <string>/System/Library/amd_start</string> </array> <key>ServiceIPC</key> <false/> </dict> </plist>
Put this in /System/Library/LaunchDaemons/amd.plist, then:
% sudo launchctl load /System/Library/LaunchDaemons/amd.plist
This will launch amd.
launchd is fun… It works as /etc/rc, crond and inetd. Wow.