2009年 04月 16日

Chemr

なんかやたら落ちていたのですが手を加えたり加えなかったりしていたら落ちなくなったのでパッケージにしときました

http://lab.lowreal.net/test/chemr/Chemr.2009-04-16.dmg

2009年 04月 14日

ブックマークレット経由ではてなブックマーク拡張のパネルを開く

ハテブエ (はてなブックマークエクステの略) がいい感じなのでつかいたいのですが、ついついクセで Cmd-L b [RET] とかしてブックマークレットを開いてしまい残念な気持ちになります。ので解決するための userChrome.js スクリプトを書いてみました。

起動時に b というキーワードがついたブックマークを探しだして強制的に URL を書きかえるのでご注意ください。あとそもそも b というキーワードがついたブックマークがないと動かないと思います。

非 chrome 権限 (ブックマークレット) から、chrome 権限 (userChrome.js) への受け渡しにイベントをつかっているのですが、addEventListener の第4引数を true にしないとダメらしいです。id:nanto_vi さんが教えてくれなかったら挫折してた。

http://mxr.mozilla.org/firefox/source/dom/public/idl/events/nsIDOMNSEventTarget.idl#48 の wantUntrusted

hatena-star-stream.rb

カラフルにした http://coderepos.org/share/changeset/32409

hss.rb

ノーマルスターの場合はたくさんつけられると纏めるようになってる。カラースターはそのまま一行ずつ表示してる (のでカラースター大量につけられるとひどいことになる)

2009年 04月 13日

gerry++

2009年 04月 06日

Leopard, dns-sd, mt-daap

なんか ssh tunneling してリモートの mt-daap (Firefly) サーバに繋げなかったのがやっと解決した。TXT レコード (?) を指定しないとダメらしい。@ iTunes 8

ssh -L3689:localhost:3689 remote

しているとして (locahost:3689 を listen して remote:3689 に転送)

dns-sd -P Test _daap._tcp local 3689 localhost 127.0.0.1 Test

みたいにすると iTunes から見れるようになった。(最後の Test が必要)

iTerm Cmd+で Window 切り替え、あるいは tab sucks

iTerm で Cmd-[0-9] 押したときに (sendEvent を監視してキーイベントをとっているせいで)、ベルが鳴ってしまうんだけど、どうやったら消せるんだろう…… なんかもっとセオリーがあるんだろうか

http://subtech.g.hatena.ne.jp/cho45/20080703/1215016330 このパッチの変わりに

diff --git a/iTermApplicationDelegate.m b/iTermApplicationDelegate.m
index 5bb6f4c..14fda77 100644
--- a/iTermApplicationDelegate.m
+++ b/iTermApplicationDelegate.m
@@ -247,6 +247,23 @@ static BOOL usingAutoLaunchScript = NO;
     [super dealloc];
 }
 
+- (void) setWindowMenuKeyBind
+{
+    NSMenu *windowMenu = [[[NSApp menu] itemWithTitle: @"Window"] submenu];
+    // NSLog(@"windowmenu: %@", [windowMenu title]);
+
+    // XXX
+    int MAGIC_WINDOW_MENU_POSITION = 15;
+
+    int i, c;
+    for (i = 0, c = [windowMenu numberOfItems]; i < c; i++) {
+        if (i < MAGIC_WINDOW_MENU_POSITION) continue; // XXX: magic number
+        // NSLog(@"window menu: %d: %@", i, [[windowMenu itemAtIndex: i] title]);
+        [[windowMenu itemAtIndex: i] setKeyEquivalent: [NSString stringWithFormat: @"%d", i - MAGIC_WINDOW_MENU_POSITION + 1]];
+    }
+}
+
+
 // Action methods
 - (IBAction)newWindow:(id)sender
 {
@@ -255,6 +272,9 @@ static BOOL usingAutoLaunchScript = NO;
 		[[[iTermController sharedInstance] fullScreenTerminal] toggleFullScreen:nil];
 	
     [[iTermController sharedInstance] newWindow:sender];
+    // NSLog(@"newWindow");
+
+   [self setWindowMenuKeyBind]; 
 }
 
 - (IBAction)newSession:(id)sender

で、とりあえず Cmd-[0-9] 切り替えがいい感じにできるように

うーん。これだと不十分だ。閉じたり開いたりするとズレてしまう。

でもいい方法がおもいつかない。単に Terminal.app と同じ挙動にしたいだけなんだけど……

なんで Cocoa の Window Menu に関するドキュメントが全然ないんだろうか…… このメニューって誰が、いつ自動生成してるんだろう? なんのコードも書かずに実装されているから全く意味がわからないことになってる。クソだ

リサイズとかでこの Window Menu のリストの並びが変わってしまうので、このコードは全くダメだ。つかえない

というか、当初の目的の「音をならさない」は、もっと簡単に解決できた。

diff --git a/PTYWindow.m b/PTYWindow.m
index 8207d01..1dc45c3 100644
--- a/PTYWindow.m
+++ b/PTYWindow.m
@@ -130,7 +130,7 @@
                                {
                                        // [[iTermController sharedInstance] terminalWindows]
                                        [[[windows objectAtIndex: i - 1] window] makeKeyAndOrderFront: self];
-                                       break;
+                                       return;
                                }
                        }
                }

というふうにして、このあとにひかえている

if (super) [super sendEvent:event];

を呼ばないようにすればよかった

2009年 03月 18日

JS の再帰 (追試)

http://d.hatena.ne.jp/hagino_3000/20090317/1237219357 を見て名前つけてるかどうかで違うらしいことを知ったので他のブラウザでもテスト

方法は前やった方法です http://subtech.g.hatena.ne.jp/cho45/20071208/1197050774

IE 以外は全て Mac (Tiger memory 2G) 上です。IE7 は memory 2G, IE8 は VirtualPC 上 memory 128MB です。

A

javascript:n=0;(function(){n++;arguments.callee();})();
javascript:alert(n);
Firefox 3.1b3
3000
Safari 3.2.1
500
Opera 9.50 (Build 4870)
9999
IE 7.0.5730.13
1757
IE 8.0.6001.18372
1053


B

javascript:n=0;(function me(){n++;me();})();
javascript:alert(n);

一応やってみたけどこれも同じ結果だった
javascript:n=0;f=(function(){n++;f();});f();
Firefox 3.1b3
3000
Safari 3.2.1
500
Opera 9.50 (Build 4870)
9999
IE 7.0.5730.13
2510
IE 8.0.6001.18372
1451

IE 以外は変わらないみたいですね。なぜか 8 になって減ってるんですがなんなんでしょうか。メモリに影響されたりとかまさかしないですよね…… それにしてもなんで名前つけるかで深さ変わるんだろう

Fx は 3.0 beta のときはものすごい深さ (261503) までいけてましたが、3000 で制限するようにしたっぽいですね。

Opera は小学生みたいでかわいいです。

2009年 03月 10日

foobar2000 で左右別々にイコライザをかける

メモ

"foobar2000 balancer" でググると以下がヒットする。内容が少々古くてそのままだと動かなかったので手順をメモ

前提

  • foobar2000 v0.9.6.3

手順

  • foo_dsp_vst (VST host) (0.60 Beta) を foobar の components に追加 (0.9.4.x 向けと書いてあるけど 0.9.6.3 でも使えるっぽい)
  • EnergyXT2 VST plugin version というのを落としてどっかに置く (これはシェアウェアなので制限があるけど一応使える。後述)
  • Karma FX EQ を落としてどっかに置く
  1. foobar2000 の Preference から DSP プラグインのページで VST bridge を Active に
  2. Configure selected → Browse → energyXT2 VST.dll を指定
  3. energyXT の画面が開くので File → Setup → Browser → Plugins → Add → Karma FX 落としたディレクトリを指定
  4. energyXT の左ペイン (Browser) から Plugins → KarmaFX Equalizer をメインウィンドウに DnD (左右で一つずつ使うので2回)
  5. メインウィンドウを右クリックして Audio In を追加 (左右わけたいので2つにする)
  6. Window -> Mixer でミキサを開いて、Audio In の Pan をそれぞれ左と右に分ける
  7. Audio In → KarmaFx Eq → Audio Out と繋げる (2つ)
  8. KarmaFx のアイコンダブルクリックでイコライザの設定がそれぞれ開くので調節する
  9. Mixer 見てクリッピングしないようにゲイン調節しておく

energyXT はトライアル状態だとこの状態が保存できないので fb2k 起動するたびにたぶん設定しなおす必要がある (fb2k とか終了させないよね)

2009年 02月 18日

あれー? グループに自己紹介モジュールないんだっけあったような……というかオレのサブテキ*1にあったよナーって思ったけど自分で class="hatena-module" とか書いたのをコペってただけだった。

*1: サブテク日記の略

2009年 02月 16日

Wii の出力先をPCにした。

テレビつけるとキーンって音がうるさくてヤな感じなので、とかいろいろあってPC経由を試してみた。

テキトーにヨドバシ行って安いUSBキャプチャデバイスを買ってきたのだけど、当然できるだろう……ってことができなかったのでメモ

買ったのは BUFFALO PC-SDVD/U2 というやつで5kぐらい。3kぐらいで買えるかと思ったら思ったより高かった。付属のソフトだと、全画面で画像を表示させることが不可能でウンコ (もともと録画専用という線みたいだからそういうもんなんだろうけど)

で、The KMPlayer ( http://www.kmplayer.com/forums/ ) というので再生できるらしいというのを価格コムのクチコミを検索して知ったので (あたりまえだけど、事前にこういうことは調べておくべきだ)

このように設定したら映像と音声がでてくるようになった。ポイントは「出力1」を 」「Audio」 にするところで、下の「オーディオ」はトラップで意味がなかった。

でもって、インターレースがかかっててうざいので、右クリック → 「ビデオ拡張」→「インターレース解除」をすればとりあえずそこそこ見れるようになった。結構ノイジーなのでノイズフィルタも入れてみたけどあんまり……

あと「音声プラグインを有効」にチェックが入ってないとなぜか音が遅れる謎現象があったりした。普通逆な気がするけどもしかすると他の原因かも

遅延がとりあえず不安だったけど、Xeon 1.86 GHz 2GB RAM だと映像遅延はそんなに気にならなくてテレビよりちょい遅いぐらい。映像の描写がそもそもちょっと重い感じがするけど許容範囲かなぁ

画質はこんなもん。コンポジット接続 (他の接続方法で安い方法ないよね)