OSXターミナル事情
新MacBookでの
- Terminal.app
- 重さはmacminiで使うのと比べるとかなりましになってる(GPUのおかげ?)
- まぁでも若干重いよ
- 日本語入力中に画面が更新されると入力途中のが消える(これが地味にいたい)
- iTerm
- ATOKでの変換の文節区切りがわからない
- 重い
- 入力ソースをUSにしないとmetaがつかえない
- urxvt (X11)
- 軽い!
- 日本語入力が死ぬ
SKKを使いこなせる人ならurxvtで決まりという感じな気がするが、僕は無理なので Terminal.app がメインになるかなぁ、という感じ。
でも、日本語入力中に画面更新されると入力途中なのが消えちゃうってのがあるのでirssiとかはきつい。ただemacsつかわなければiTermの重さはそんなに気にならないのでemacsはTerminal.appをつかい、irssiはiTermをつかうという両刀で行こうかと思っているところ。
ちなみにLimeChatも試してみたけどやっぱり使いにくいなぁ。irssiサイコウ!
ここまで書いて、CarbonEmacsが使いこなせればiTermだけでいいんじゃないかという気もしているところ。
GrowlのON/OFFをホットキーでできるようにする
人に画面見せてるときなどに、恥ずかしい通知がくるとこまるのでホットキーで Growl 通知の ON/OFF を切り替えたいと思ったのだが、なぜかググっても見つからないので、ごにょごにょしてみた。
tell application "System Events"
set isRunning to (count of (every process whose name is "GrowlHelperApp")) > 0
end tell
if isRunning then
tell application "GrowlHelperApp" to quit
else
tell application "GrowlHelperApp" to launch
tell application "GrowlHelperApp"
set the allNotificationsList to {"Growl Toggler"}
register as application "Growl Toggler" all notifications allNotificationsList default notifications allNotificationsList
notify with name "Growl Toggler" title "Growl started" description "" application name "Growl Toggler"
end tell
end if
Growl を起動状態をトグルする AppleScript。
終了するときは何も言わずに Stop するが、スタートしたときは Growl 通知で Growl started と出るようにした。
これをアプリケーションとして保存して、あとは QuickSilver の Trigger 機能とかでホットキーで起動できるようにすれば完了。
一応これで動くのだが、AppleScript をアプリケーションにすると重いなぁ。。
javascriptで誕生日から年齢
(new Date(new Date() - new Date("1981/02/11"))).getFullYear() - 1970;
こんなんでいいんだろか。
build-inアプリケーションを殺すだけのアプリ
作ってみた。絶対ありそうだけど。
起動すると
killall -KILL MobilePhone MobileSafari MobileMail MobileMusicPlayer
してすぐに終了するアプリです。
これらの組み込みアプリケーションは終了したつもりでもメモリに残るので、起動したままにすると全体が重くなります。
ホームボタン長押しすれば終了させられるのですがそれもめんどいので、いっぱつで皆殺しにできるものを作りました。
SpringBoard を殺すアプリは KillSB というのがあるんだけど、SpringBoard は再起動に時間がかかるので最後の手段にしておきたい。ほとんどの場合そこまでしなくてもこっちで十分なはず。
iPhoneアプリをLinuxで作成するの法
iPhone Developer Program の申請が全然通らないので、勝手アプリの作成環境を整えてみた。
Cydia でおなじみの saurik 氏がクロスコンパイル環境の作り方を以下のページに書いてくれていて、基本これに従えばOK。
すごいなー。saurik++
簡単に環境作れるようにスクリプトにまとめた。ヘッダのコピーのとことかちょっと追加してある。
簡単に説明。
iPhone のファームウェアのファイルを、ごにょごにょ(ググればすぐわかる)して展開して ~/tmp/iphone/iPhone2.1
にコピー。
iPhone SDKをダウンロードしてきて展開して MacOSX10.5.pkg
と iPhoneSDKHeadersAndLibs.pkg
を ~/tmp/iphone/Developer
に展開。
http://www.opensource.apple.com/darwinsource/Current/ から
- CF-*
- DiskArbitration-*
- IOCDStorageFamily-*
- IODVDStorageFamily-*
- IOGraphics-*
- IOHIDFamily-*
- IOKitUser-*
- IOStorageFamily-*
- Libc-*
- WebCore-*
- cctools-*
- configd-*
- launchd-*
- libsecurity_authorization-*
- libsecurity_cdsa_client-*
- libsecurity_cdsa_utilities-*
- libsecurity_cms-*
- libsecurity_codesigning-*
- libsecurity_cssm-*
- libsecurity_keychain-*
- libsecurity_mds-*
- libsecurity_ssl-*
- libsecurity_utilities-*
- libsecurityd-*
- xnu-*
をダウンロードして ~/tmp/iphone/apple
に展開。(*
はバージョン番号)
で、あとは上のスクリプト実行すれば ~/app/toolchain
にクロスコンパイル環境がインストールされる。YATTA!
ちなみに僕の Debian 環境ではこの作業をするために
flex bison gcc-multilib gobjc
などのパッケージを追加でインストールする必要があった。
これで iPhone 用のバイナリが作れるようになる。あとは ssh なり何なりで iPhone にファイルを転送すればOK。
ただ iPhone は署名済みなアプリケーションしか実行できないのでそこもまた saurik 氏の記事
を参考にすれば回避できる。
片手入力時のイライラ
片手で文字入力してると親指の付け根部分が画面に触れちゃう問題だけど、
売り上げランキング: 12098
これ買ったら、親指部分が少し浮くせいか、付け根部分が画面に触れなくなって快適になった!
しかしこのカバー、摩擦係数が高いのでiPhoneをポケットに滑り込ませられなくなってちょっと不便。
OSXの.dmgファイルをLinuxでごにょるの法
dmg2img というのがよくできてる。
dmg2img xcode.dmg xcode.img
とすると xcode.img
という HFS+
のイメージファイルにしてくれる。
で、
mount -t hfsplus -o loop xcode.img /mnt
とかでマウントできる。
その中のpkgファイルの中身を取り出すには
xar -xf /mnt/Packages/MacOSX10.5.pkg Payload
mv Payload Payload.gz
gunzip Payload.gz
mkdir dump
cd dump
cat ../Payload | cpio -i -d
とかするとdumpディレクトリ以下にpkgが展開されるという感じ。
iPhoneでも片手入力できる
とか言ってるやつは死ねばいいと思う。
僕はかなりがんばらないと無理だなー><
テンキー入力でバックスペース押そうとして親指のばすと親指の付け根付近が画面左下のほうを押してしまい入力モードが切り替わってしまってイライラするし、メールだと送信ボタンが上のほうにありすぎてそもそも片手だと押せないし。
手が小さいのかなぁーともおもうけど、女性だったら僕より手の小さい人はいっぱいいるだろうしなー。