✖
レンズの話ばかりのやつはおもしろくない。
発見と演出
普通の日常の中からおもしろいことを「発見」することと、そこらにあるつまらないものをおもしろく見せる「演出」の境界はどこにあるんだろう。写真を撮ってると思う。
✖
ホウレンソウって、言葉を見るだけでとても憂鬱になる。
✖
関連エントリー
- 葵祭 5/15 と日付けが決まっているので、休日に見れるかどうかは運なのですが、運よく今年は休日だったので御苑に行って行列を見てきた。装束がかっこ...
- ✖ こういうシーンだとケータイの撮って出しでもいい感じ (一番下のはたぶん素子の許容量超えて光が入って飽和して色が変わってる? フレアがでたらい...
- アンテナアナライザの回路 - ブリッジの三つの電位差を測るタイプ http://www.rigexpert.com/index?s=articles&f=aas ブリッジの50Ω/50Ωで分圧したほうの電位...
- 自作 デジタル SWR 計(再) 2 | 方向性結合器の改善編 FT82-43 に20ターンでやってみましたが、結果が芳しくありませんでした。 そこで、FT82-61 に 30 ターンという、おそらくこれ...
- きょーと はてなでの勉強会への参加のために京都にいってきた。勉強会はゆっくりもっさり喋ったりしたけど、図とか入れないとなーって思った……とても分かり難...
make -j 2
make するとき常に gcc とかが一個しかうごいてなくて、マルチコア CPU だと 50% までしか使わなくて残念なかんじだなーっておもったら、make するとき -j 2 とか渡すと依存関係中で平行できるところは平行してやってくれるみたいだった。make -j だけだと起動しまくって重すぎなので、コアの数を指定するとよさそう?
✖
正しい振舞い(笑
✖
そろそろ殺されそう……
ひだまりスケッチ<a class="okeyword" href="g:subtech:keyword:×">×</a>365
やばいなぁ…… ほんといい。なんかやたら1期に比べてうごくなーっておもった。これだけはリアルタイムで放映見る。なんか、なぁ、ほんといい。ほんといい。余韻に浸っている。いろいろ、書きたいけれど、余白が65535バイトほど足らないので書かない。
✖
log (じぶんいがいのだいたいさくじょしてるのでコンテキストがよめない)
01:25 <@cho45> XUL/Migemo 01:25 <@cho45> いれてみたけどいろいろすげええええ 01:25 <@cho45> Safari みたいなハイライトかっこよす 01:27 < g****> 365 01:30 <@cho45> migemo ためしてたらはじまってあせった > 365 01:30 <@cho45> 何度かためしたんですけど、慣れなくてだめだった > migemo 01:34 < m****> migemoとかいい365をみるんだ 01:34 <@cho45> なんかやたらうごきますね! 01:35 <@cho45> おれにチョコくれ! ゆの! ゆのー! 01:36 <@cho45> ゆのっちまじかわいい 01:36 <@cho45> ゆのっちまじかわいい! 01:36 <@cho45> ゆのっちまじかわいい!!!1 01:37 <@cho45> ほんとうごくなー 01:37 < m****> 来週から富士山です。 01:37 <@cho45> 来週からwww 01:37 <@cho45> no more 富士山
気付いたらはじまってて急いでヘッドフォンつけた。
関連エントリー
- NiZ Keyboard PLUM からキーマップや打鍵回数を読み出す NiZ のアプリケーションは Windows 向けしかない。プロトコルが気になったので、とりあえず打鍵回数を読み出すところをまでをやってみた...
- アンテナアナライザの回路 - ブリッジの三つの電位差を測るタイプ http://www.rigexpert.com/index?s=articles&f=aas ブリッジの50Ω/50Ωで分圧したほうの電位...
- ColorMunki Photo + Argyll CMS で環境光を測定してグラフ化 500 Can't connect to lowreal.net:443 (certificate verify failed) の続きで、...
- 自作 デジタル SWR 計(再) 2 | 方向性結合器の改善編 FT82-43 に20ターンでやってみましたが、結果が芳しくありませんでした。 そこで、FT82-61 に 30 ターンという、おそらくこれ...
- Arduino の digitalWrite をコンパイルタイムに解決する digitalWrite(pin, state) の引数はほとんど固定で使うことが多い (と思いますがどうでしょうか? http://low...
✖
もっと! もっと! キモく!!!!
git-svn dcommit を自動的に行う
svk で mirror レポジトリに直接コミットするような感じにしたいときがいくらかありますよね。普通に git ci / git svn dcommit をやるんでもいいんですが、これだと git の軽さが損なわれてしまい、とても残念な気持ちになります。なので、git svn dcommit は非同期で裏に回すようにします。
しかし、けっこうこういう、裏にまわして非同期で実行して結果だけみたい場合っていうのはあるので、汎用化しておきます。結果表示はうまくいったかどうかだけわかればいいので、screen のラインに表示させることにしました。
backtick は wait を 0 に設定すれば screen と密着したデーモンみたいに使えるので、そこの中で DRb サーバをたちあげ、随時リクエストを実行していくようにします。(ただし :source で終了してくれたりはしないので、自分で過去の自分を kill するようにしています)
#!/usr/bin/env ruby
require "drb/drb"
DRb.start_service
o = DRbObject.new(nil, "druby://localhost:9999")
o.add_queue(ENV.to_hash, ARGV.join(" "))こんな感じでリクエストをなげると、実行されて、一行ずつ screen の backtick エリアに表示されます。実際実行されているかどうかは、ps aux | grep AsyncDRb とかやると、wating... とか実行中のコマンドとかが表示されます。
でもって、これを有効にしたうえで、~/.gitconfig に alias を書きます。
[alias] ci = !sh -c 'git commit -av && [ "$(git config --bool svn-remote.svn.autodcommit)" = "true" ] && $HOME/.screen/asyncrun.rb git svn dcommit && echo "dcommit done!"' svn-ad = config svn-remote.svn.autodcommit true svn-ado = config svn-remote.svn.autodcommit false
自動的に dcommit したくない場合も十分あるので、svn-remote.svn.autodcommit の設定をみて、実行するかどうか決めています。
あとは普通に git ci とかやれば裏で dcommit が走りながら編集できるのでとても便利です。
iTerm つかう!!!
なんか、すでに理由を忘れたんだけど Terminal.app に辟易したので iTerm つかう。今までなんで iTerm を使っていなかったかっていうと
- タブうざイ☆ (screen のほうがスクリプタブルなのでいい)
- Cmd+Num は window 切り替えにしたい
- window サイズをかえていくつか重ねてつかいたいので
ambi-width がどうとかのパッチはさておき、Cmd+Num をタブきりかえじゃなくて window きりかえにするパッチをかいた
diff --git a/PTYWindow.m b/PTYWindow.m
index ce2676f..8207d01 100644
--- a/PTYWindow.m
+++ b/PTYWindow.m
@@ -109,14 +109,33 @@
- (void)sendEvent:(NSEvent *)event
{
// NSLog(@"%s: 0x%x", __PRETTY_FUNCTION__, self);
-
+
if([event type] == NSMouseEntered)
- {
+ {
//NSLog(@"window mouse entered");
if([[PreferencePanel sharedInstance] focusFollowsMouse])
[self makeKeyWindow];
}
-
+ if([event type] == NSKeyDown)
+ {
+ if ([event modifierFlags] & NSCommandKeyMask)
+ {
+ NSString* c = [event charactersIgnoringModifiers];
+ NSArray* windows = [[iTermController sharedInstance] terminals];
+
+ NSLog(@"pressed: Command+%s", c);
+ for (int i = 1, len = [windows count]; i <= len; i++)
+ {
+ if ([c isEqualToString: [NSString stringWithFormat: @"%d", i]])
+ {
+ // [[iTermController sharedInstance] terminalWindows]
+ [[[windows objectAtIndex: i - 1] window] makeKeyAndOrderFront: self];
+ break;
+ }
+ }
+ }
+ }
+
if (super) [super sendEvent:event];
}
diff --git a/iTermApplicationDelegate.m b/iTermApplicationDelegate.m
index 648f46a..5bb6f4c 100644
--- a/iTermApplicationDelegate.m
+++ b/iTermApplicationDelegate.m
@@ -558,15 +558,16 @@ static BOOL usingAutoLaunchScript = NO;
while ((aTabViewItem = [enumerator nextObject])) {
aSession = [aTabViewItem identifier];
NSMenuItem *aMenuItem;
-
- if(i < 10)
- {
- aMenuItem = [[NSMenuItem alloc] initWithTitle: [aSession name] action: @selector(selectSessionAtIndexAction:) keyEquivalent: [NSString stringWithFormat: @"%d", i]];
- [aMenuItem setTag: i-1];
-
- [aMenu addItem: aMenuItem];
- [aMenuItem release];
- }
+
+ if(i < 10)
+ {
+ // aMenuItem = [[NSMenuItem alloc] initWithTitle: [aSession name] action: @selector(selectSessionAtIndexAction:) keyEquivalent: [NSString stringWithFormat: @"%d", i]];
+ aMenuItem = [[NSMenuItem alloc] initWithTitle: [aSession name] action: @selector(selectSessionAtIndexAction:) keyEquivalent: @""];
+ [aMenuItem setTag: i-1];
+
+ [aMenu addItem: aMenuItem];
+ [aMenuItem release];
+ }
i++;
}
設定は http://f.hatena.ne.jp/cho45/iTerm/ においてみた。一枚ずつのページをすすめながら設定するとべんりっぽい。ふつうに ~/Library/Preferences/net.sourceforge.iTerm.plist (ソースからコンパイルすると iTerm.plist じゃなくなるっぽい) でもいい気がするけど
あと、そもそも cvs head は Xcode 2.5 + Mac OS X 10.4.11 ではビルドできなくて、 iTermSecurityMgr.{m,h} と Shells.{m,h} を iTerm.framework に追加しないとだめだった。
なんか iTerm の window 順がいつのまにか変わることがあって Cmd+num がズレる……
フルスクリーンにするとズレるみたいだ。フルスクリーンにするなら新しいウィンドウつくろう
✖
「はてなTシャツ欲しい!」プレゼントキャンペーン開始【応募締め切り:7/9】 - はてなダイアリー日記 うけたw
そういえば、はてなダイアリーで告白するには、なぞなぞ認証を使えばいいんだと思う。「僕の好きな人の id が入ります☆……↓」とか書いて入力っていう、おおぅ、なんて黒歴史的な告白方法! 気持ち悪さレベルが10ぐらい上りそうだぜ!
関連エントリー
- 「幕府を作りたいのですが」欲しい! 「私を微分して」という言葉は愛の告白であるそうですが、なぜで… - 人力検索はてな あなたがクリスマスプレゼントに欲しいものを教えてください...
- メールでのダイアリ更新 http://d.hatena.ne.jp/hatenadiary/20070830/1188459472 id:cho45 だと「はてなダ...
- ✖ そういえばはてなのサービス間移動のために javascript:location='http://%s.hatena.ne.jp/'+loc...
- ✖ 403 Forbidden の女の子について考えた
- .. 人数が多いとそれだけ、嫌な人と遭遇しやすくなるんだから、ブログも日記も書いていない人がいっぱいいるところに、コミュニケーションを目的として行...
screen と vim の憂鬱
screen でいっぱい window つくって vim 立ち上げまくったりしていると、よく「スワップが残ってるよ、既にどっかで vim ひらいてるよ」と怒られるのです。しかしながら僕は C-z でバックグランドに飛ばしまくるので、どこの window でうごいているのか頑張らないとわかりません。僕は頑張りたくありません。とても困りました。だから僕は、それを解決する方法を考えました。
まずは、pid から、そのプロセスがどこの window で動いているかを知るために、以下のようなことをします。
# .zshrc
# window num -> tty の対応ができるように
tty > /tmp/screen-tty-$WINDOW# pid2screen
#!/usr/bin/env ruby
require "pathname"
pid = ARGV[0]
tty = `/bin/ps -o tty= -p #{pid}`.strip
win = Pathname.glob("/tmp/screen-tty-*").find {|i| i.read[tty] }
if tty.empty? || !win
exit 1
else
puts win.to_s[/\d+$/]
exit 0
endこれで、pid2screen [pid] すると pid から該当のウィンドウ番号が表示されるようになります。(なければ exit 1)
そして、vim のラッパを書きます。すこし長いのでレポジトリに直接リンクをはりますね。
内容的には
- swp ファイルがあったら、それを読んで pid を抜きだす
- その pid で pid2screen する。
- 結果があるならその window にとばす
という感じです。window に飛ばしてさらにそのファイルをアクティブにしたいところですが、いい方法が浮かびませんでした。悲しいです。でも、とても便利になりました。嬉しいです。
prompt にゆのっちを表示する。(挫折)
いよいよ、ひだまりスケッチ×365がはじまるので、プロンプトを、よりゆのっちにしたいと思い、
/ _ / × <
としたかったのですが、挫折しました。
まず、iTerm に ambiwidth を正常に表示するパッチをあててビルドしました。この時点で基本的にちゃんと表示されるようにはなりました。でも screen で画面を切替えてると幅がずれることがあってダメでした。
最初 iTerm の疑ってデバッグをしていたのですが、どうやらエスケープシーケンスの時点でずれた値がくることがわかりました。どうやら screen のせいみたいでした。なので、screen に cjkwidth を認識するパッチをあててビルドしてみたのですが、これがうまくいきませんでした。壮絶に崩れまくったので諦めました。悲しいです。
Mac で screen をつかいつつ、ambiwidth な文字をちゃんと表示できているという人がいたら、ぜひ教えていただきたいです。
ちなみに結局妥協した結果
/ _ / X <
にしました。Osaka の × は綺麗な × なので、やっぱり × にしたいです。

