貶し甲斐のある男
昼飯時に京極夏彦の狂骨の夢の続きを読んでいたんだけど、そこに
京極堂は実に冷たくそう云った。木場はどうも常日頃この古本屋やあの探偵の、そこの小説家に対する態度は冷たすぎると思っている。しかしそう思っている癖に口を開けば小説家を罵倒している自分にも善く気がつくのだ。どうやら関口とはそう云う男なのである。褒め甲斐はないが貶し甲斐はある。
という一節があった。
なるほど、まさに xcezx のことである。
emacs23をつかってみた
昨日のエントリで CarbonEmacs を使えばいいのかもと思ってちょっとためしてみようと思ったのだけど、どうせなら MultiTTY 使いたいなーなどという気持ちが出てきてしまった。
それで emacs23 ベースな CarbonEmacs 的なのがないかと探してみたら、いまの CVS の emacs は普通に Emacs.app を作ることができるみたい。
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs
とかで co してきて
./configure --with-ns
make
make install
で nextstep ディレクトリに Emacs.app ができている。
CLI で起動したい場合は
Emacs.app/Contents/MacOS/Emacs -nw
でおk。emacsclient は
Emacs.app/Content/MacOS/bin/emacsclient
にある。etags とかもここにある。
とりあえず multitty をためしてみるために Emacs.app と CLI (-nw) と両方立ち上げて
emacsclient -t /path/to/file
としてみたところ、ちゃんとどちらの emacs でも同じファイルを開き、編集内容も共有できた。
これで徐々に GUI な emacs に移行できるかなー。
iTermでもremap.app_term_commandL2optionL
KeyRemap4MacBook に remap.app_term_commandL2optionL という設定があって、これを使うと Terminal.app でのみ左コマンドキーと左オプションキーを入れ替える左コマンドキーを左オプションキーにすることができる。
これを iTerm でも使いたかったので設定を追加しようと思ってソースを見てたら実はこのオプションは iTerm でも効くようにつくられているのだが、そのアプリケーション名の指定が間違っているだけだということがわかった。
diff --git a/src/core/server/server.cpp b/src/core/server/server.cpp
index d4695fe..40d1715 100644
--- a/src/core/server/server.cpp
+++ b/src/core/server/server.cpp
@@ -206,7 +206,7 @@ KeyRemap4MacBook_server::Server::do_ActiveApplicationInfo(KeyRemap4MacBook_bridg
reply->is_vi = true;
}
if (strcmp(applicationName, "com.apple.Terminal") == 0 ||
- strcmp(applicationName, "iTerm") == 0) {
+ strcmp(applicationName, "net.sourceforge.iTerm") == 0) {
reply->is_terminal = true;
}
if (strcmp(applicationName, "com.vmware.fusion") == 0 ||
としてやるだけで、iTerm でもつかえるようになった。めでたし。
新卒者向け会社説明会
11/25 に弊社で新卒者向けの会社説明会をするようです。ここを読んでる人に対象者がいるかというとかなり微妙だと思いますが、興味がある方はぜひ申し込んでみてください。
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 氏の記事
を参考にすれば回避できる。