.ppkファイルとか渡されて困ったとき

PuTTY 独自の形式の .ppk ファイルで鍵ペアを渡されて困ったときのためにメモ。

PuTTY に付属している puttygen コマンドで普通の公開鍵・秘密鍵に分離できる。

Debian 系なら putty-tools パッケージをインストールするだけでいいらしい(未確認)

OSX だと ports 使うか自分でビルドする。

ぼくは自分でビルドした。

 wget http://the.earth.li/~sgtatham/putty/latest/putty-0.60.tar.gz
 tar zxvf putty-0.60.tar.gz
 cd putty-0.60/macosx
 make puttygen

で puttygen だけビルドできる。っていうか全体 make はぼくの環境では失敗した。まぁこれさえビルドできればOK。

秘密鍵を取り出す。

./puttygen unko.ppk -O private-openssh -o private_key

公開鍵

./puttygen unko.ppk -O public-openssh -o public_key
by typester / at 2009-06-09T10:04:00 / osx · putty / Comment

OSX でディスプレイが電源切れたことを検知したい

おもむろに Xcode のドキュメントを検索すると CGGetOnlineDisplayList とかいう関数が見つかったので

#include <CoreFoundation/CoreFoundation.h>
#include <ApplicationServices/ApplicationServices.h>

int main (int argc, const char * argv[]) {
    CGDisplayCount    displayCount;
    CGDirectDisplayID displays[4];
    int               i;

    CGGetOnlineDisplayList(4, displays, &displayCount);

    for (i = 0; i < displayCount; ++i) {
        CGRect rect = CGDisplayBounds(displays[i]);
        printf("%d: %.0fx%.0f ( ", i, rect.size.width, rect.size.height);

        if (CGDisplayIsActive(displays[i]))
            printf("active ");

        if (CGDisplayIsAsleep(displays[i]))
            printf("sleep ");

        if (CGDisplayIsBuiltin(displays[i]))
            printf("builtin ");

        if (CGDisplayIsMain(displays[i]))
            printf("main ");

        if (CGDisplayIsOnline(displays[i]))
            printf("online ");

        printf(")\n");
    }

    return 0;
}

とかいうのを書いてみた。これで、

$ ./dispinfo
0: 1280x800 ( active builtin main online )
1: 1024x768 ( active online )

とかいう出力が得られる。

のだけど、ディスプレイの電源(上記の1)を切ってもこのプログラムの出力は全く変わらない。ケーブルを抜くと出力から消える。

ここではケーブルは指したままで、ディスプレイの電源が落ちたことを検知したいという状況なので全然使えない。。

どーしたらいいんだろ?

by typester / at 2009-03-17T02:30:00 / osx / Comment

CarbonEmacsの背後のWindowを切り替える

そろそろ野球のシーズンですね。フルスクリーンEmacsの裏にメディアプレーヤーを置くとなかなか快適ということを発見しました。

watching wbc while coding

しかし、単純に裏に表示しているだけなため、Firefoxを開いたあとEmacsに戻ったりするとEmacsの裏の画面がFirefoxになってしまっていてイラッとします。

そこでこんな elisp で emacs の裏の画面を好きなアプリケーションにすぐに設定できるようにしてみました。

(do-applescript "activate application \"VLC\"
                 activate application \"Emacs\"")

快適。

ところで、これをもっと汎用的にして、VLC の部分を anything で選択きたら全画面 emacser にはものすごく便利なのかも。

by typester / at 2009-03-05T20:40:00 / osx · emacs / Comment

Hiveminder.app

お気に入りのタスク管理ツール Hiveminder をちょっとハックして自分好みにしてみた。

Hiveminder.app

  • Fluid でアプリケーション的に使えるように
  • ページ内の jGrowl の通知を本物の Growl 使うように変更
  • いまやってるタスクのタイムをカウント出来る機能
  • でそれ(いまやるべきこと)を10分間隔で Growl 通知する機能

など。すぐに他ごとしてしまう僕のような人には一番最後の機能がなかなか有効なはず。

スクリプトのダウンロード、使い方などはgithubにアップしたのでそっち見てくださいませ。

typester's hiveminder-local-timetrack at master - GitHub

余談。

そんなに Hiveminder がいいの? と聞かれると返答に困るわけですが、todo.pl からのブレインダンプでのタスク登録 (todo.pl braindump) とか、指定した日付になるまでタスクリストからタスクを隠せる機能 ([hide until next monday]) だとか、タスクにアイデア的に登録したものをやんないよなーってものは永久に隠せたり(隠してるのはいつでも表示させることが出来るので過去のアイデアリストとして使える)とか他にはない気に入ってるところがたくさんあるので使い続けてます。

@obra++ bestpractical++

ってとこですかね!

あと、いつものように、自分の必要な最小限の機能しかつくってないので、興味ある人いらっしゃいましたら是非とも一緒にハックしましょう。

by typester / at 2009-02-06T20:37:00 / osx · hiveminder / Comment

OSXで快適ビットマップフォント生活

OSX の良いところの一つにアンチエイリアスの効いたきれいなフォントがあげられると思います。

ただ、ターミナルやエディタなどでそう言うフォントを使用するとどうしても視認性の問題から文字サイズを大きくする必要があり、1画面あたりの情報量が減ってしまいます。

また単純に僕がビットマップフォントが好きだという理由もあり、ずっと OSX でもビットマップフォントで開発したいなーと思ってました。

しかし、Terminal.app や iTerm できれいに日本語を表示できるビットマップフォントを見つけられず、やむを得ずアンチエイリアスしてました。 Osaka フォントとか、CarbonEmacs だとビットマップ表示で日本語きれいにひょうじできるのにTerminal.app やiTerm だとガタガタになってしまうし。。

で、あきらめてたんですが、モトヤシーダというフォントならいけるよという話を聞いて設定してみたところわりときれいに表示させることが出来ました。

モトヤシーダは

http://www.motoyafont.jp/

こちらのサイトで販売されているのですが、お試しフリーフォントというところに入っていますのでとりあえず無料で試せます。僕はWin版をダウンロードしてCrossOver Macで自己解凍exeを展開しました。ただのlhaの自己解凍形式のようなのでlhaコマンドでも行けるそうです。

そんなわけで Terminal.app + iTerm から CarbonEmacs + iTerm に移行しました。

僕が愛用している CodingFontTobi というフォントは ttf 版だとなぜか 16pt 設定で 11pt 相当の表示というなぞの状態になっていて、日本語をうまく混在表示させるためにはasciiとそれ以外で違うフォント設定を使えるアプリケーションを使う必要があります。

CarbonEmacsとiTermならそれができるということですね。CodingFontTobi 16pt + モトヤシーダ(EmacsではOsaka) 11pt という設定にしてます。

これでやっと OSX でも満足行く表示になりました。やっぱりこっちのほうがいいですなー。

CodingFontTobi

スクリーンショットを貼ろうと思ったんですが、なぜかスクリーンショットとるとアンチエイリアスがかかってしまうという罠がありあきらめました。これはなんなんだろう。。 Flickrでリサイズされてるだけだった。。

また、他にもいいビットマップフォントをご存じの方いらっしゃいましたら是非とも教えてください!!

by typester / at 2009-01-21T11:23:00 / osx / Comment

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 に移行できるかなー。

by typester / at 2008-11-06T13:58:00 / osx · emacs / Comment

iTermでもremap.app_term_commandL2optionL

KeyRemap4MacBookremap.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 でもつかえるようになった。めでたし。

by typester / at 2008-11-05T14:54:00 / osx · iterm / Comment

OSXターミナル事情

新MacBookでの

  1. Terminal.app
    • 重さはmacminiで使うのと比べるとかなりましになってる(GPUのおかげ?)
    • まぁでも若干重いよ
    • 日本語入力中に画面が更新されると入力途中のが消える(これが地味にいたい)
  2. iTerm
    • ATOKでの変換の文節区切りがわからない
    • 重い
    • 入力ソースをUSにしないとmetaがつかえない
  3. urxvt (X11)
    • 軽い!
    • 日本語入力が死ぬ

SKKを使いこなせる人ならurxvtで決まりという感じな気がするが、僕は無理なので Terminal.app がメインになるかなぁ、という感じ。

でも、日本語入力中に画面更新されると入力途中なのが消えちゃうってのがあるのでirssiとかはきつい。ただemacsつかわなければiTermの重さはそんなに気にならないのでemacsはTerminal.appをつかい、irssiはiTermをつかうという両刀で行こうかと思っているところ。

ちなみにLimeChatも試してみたけどやっぱり使いにくいなぁ。irssiサイコウ!

ここまで書いて、CarbonEmacsが使いこなせればiTermだけでいいんじゃないかという気もしているところ。

by typester / at 2008-11-05T10:26:00 / osx / Comment

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 をアプリケーションにすると重いなぁ。。

by typester / at 2008-10-29T21:58:00 / osx · growl · applescript / Comment

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が展開されるという感じ。

by typester / at 2008-10-01T11:42:00 / linux · osx / Comment

1 2 3 4 5

(Page 4 of 5)