2011年 05月 26日


Ruby の構文を見たとき (当時ろくにプログラミングができなかったので) イテレータ (というかブロック引数) がどういう挙動をするのか理解できなかった。これは実際、puts を各所にしこんで、動かしながら実行順を確かめることで理解できた。

Cのポインタは昔は理解できなかったけど、Ruby をしばらくやっていたら、何が理解できないのかわからない感じになっていた。

再帰はわからなくて苦労した経験すら覚えてない。

プログラミングは、読めば読んだだけ、書けば書いただけ、すなわち時間をかけた分だけ報われるというのがはっきりしているのが、本当に良いと思うのだけれど、微妙に役に立つからといって仕事にしたりなんかすると、報われないケースが露呈するのが面白くない感じがする。ネトゲも時間をかけた分だけ報われる点では似てる一方、一切役に立たないので、「一切役に立たない」ことを許容できさえすれば、報われ続ける感じがする。

報われないケースがあるのは、いわゆる常識人(笑)にとっては当然のことかもしれないが、だからといって、まだ何かできる状態で、仕方ないというのは、思っても言ってはいけないことだと思った。

努力したら報われるのが当然だったら誰でも努力するのだから、そういうふうになるようにしていきましょう、っていうのは当然に思える。

それに、たとえ声がでかくなくとも、やる気がある人や、やるべきことを一定にこなせる人がちゃんと評価されて、報われるべきだ。自分はそういう点で全く劣っていることを感じるし、しばしば過大評価をうけている感じがする (あるいは単に皮肉なのかもしれないけど)。

日記書かないと現状認識が甘くなるので良くない。

2011年 05月 25日


2011年 05月 24日


gerry++

2011年 05月 23日


Mac でデフォルトブラウザを変えるだけのコマンド

// #!gcc -framework Cocoa set_default_browser.m -o set_default_browser && ./set_default_browser com.google.Chrome

// bundleID = Appbundle.app/Contents/Info.plist CFBundleIdentifier
// eg:
//   com.apple.Safari
//   com.google.Chrome
//   org.mozilla.firefox
//   com.operasoftware.Opera

#import <Cocoa/Cocoa.h>

int main(int argc, char* argv[]) {
	if (argc < 2) return 1;
	printf("Set Default Browser to %s\n", argv[1]);

	CFStringRef bundleID = CFStringCreateWithCString(NULL, argv[1], kCFStringEncodingASCII);
	if (bundleID == NULL) return 2;

	OSStatus httpResult  = LSSetDefaultHandlerForURLScheme(CFSTR("http"),  bundleID);
	OSStatus httpsResult = LSSetDefaultHandlerForURLScheme(CFSTR("https"), bundleID);

	if (httpResult == noErr && httpsResult == noErr) {
		return 0;
	} else {
		return 1;
	}
}