2007年 12月 30日

写真

ひさしぶりに近所を散歩して写真を撮ってみたけれど、ろくな写真がとれない……

ヘッドフォンにみえるサムネイル

がヘッドフォンに見えるって id:mayuki さんに言われたので、ぼーっと眺めてみたら見えてきた。おもしろいなぁ

花は撮ってから現像するまで、一定のイメージがたもてる気がする。でも花の写真は工夫しないと、ほんとうにただの写真だよなぁ……

シクラメン

自分は白くて派手じゃないシクラメンがベロニカペルシャの次ぐらいに大好きなので、もっと撮りまくりたい。うつむいて、静かにしてる感じがすごくいい。でもって、よくみると艶容なのもすごくいい。シクラメン、っていう名前もいい。「つめたくてかわいくてきれい」だと思う。

無口

無口な女の子はそんなに好きではないけど、嫌いでもないなぁと考えながらコンビニの帰り道を歩いていたら、なんとなく、三人以上でいると良く喋るのだけれど、二人になると喋らなくなる女の子、というのが少しグっとくることに気付いた。

言語

ロシア語のフィードバック的なものがあったのだけれど、全く読めなくて、最初それがロシア語かどうかもわからなくて、訊いたりして (ありがとうございます)、Google の機械翻訳で英語へ変換 (日本語への翻訳はできない) してみたときの、なんとも言えない感覚、あぁ読めた……っていう感覚が、なんとなく面白い。

日本語の文章を、英語圏の人が読もうとしたら、自分がその最初に感じた、読めない絶望感や、歯痒さ、途方もない感じが、やはりあるんだろうなぁと思った。そういう意味で、英語だと、いくら読めないといっても、調べる手段 (その文字をうちこめる) があり、読もうと思えばどうにか読める、というのは、大切なんだなぁと感じた。

userscripts.org 更新するのめんどくさい

ふと

userscripts.org をコマンドラインから更新するためのツール user.js みたいなのをつくるとしたら、はたして JS on Rhino と rubygems だとどっちのほうがいいんだろう、とおもった。(gem のほうがいいとおもう)


そういえば、Opera は公式みたいなところに user.js 配布するところあるのかな

埋め込み Rakefile

rake が、あるファイルの、うめこまれた Rakefile を解釈する、みたいな機能をもってると便利だよなぁ

rake -f foo.user.js publish

とかできるようになるとうれしい。


と、まで書いたところで、Rakefile ってただの ruby スクリプトだから工夫したらできるよなと思ってやってみた。

ようは user.js でもあり ruby でもあるコードをかけばいい

// ; <<EOF # Embed Rakefile
// ==UserScript==
// @name        Vox Editing with WYSIWYG or HTML alternately
// @namespace   http://lowreal.net/
// @include     http://www.vox.com/compose*
// ==/UserScript==

ここに JS コード

/*
EOF
# ↑ ここまでヒアドキュメント

# ここに Ruby コード。
# ただし */ は書けないので正規表現リテラルかくときは注意しないといけない

desc "upload to userscripts.org"
task :release do
    foo...bar....
end

# ↓ JS のコメントアウトをとじる
# */

Ruby では // はコメントではなく正規表現リテラル。ヒアドキュメントで JS コードをスキップさせてる。

もちろん、このままだと DRY じゃなくてダサいので、rubygems とかに userscripts.org を操作するライブラリをあげて (rubyforge みたいな)、それを使うようにたらよさそう。(require "userjs/raketasks" みたいな)

でもこれ壮絶にキモいからやめたほうがいい…… (正気にもどった)

Rakefile にする必要も別にない。なにがやりたかったんだろう……

XHR/GM_xhr でバイナリ (\0 をふくむ) はできない……

\0 があるとそこでとめられてしまう……

無駄になったコードこぺ

	function multipart(data) {
		var ret = [], boundary = createBoundary();
		for (var k in data) if (data.hasOwnProperty(k)) {
			var list = data[k];
			for (var i = 0; i < list.length; i++) {
				var obj = list[i];
				if (obj.filename) {
					ret.push(
						'--' + boundary,
						'Content-Disposition: file; name="'+k+'"; filename="'+obj.filename+'"',
						'Content-Type: '+obj.contentType,
						'',
						obj.content
					);
				} else {
					obj = String(obj);
					ret.push(
						'--' + boundary,
						'Content-Disposition: form-data; name="'+k+'"',
						'',
						obj
					);
				}
			}
		}
		ret.push('--' + boundary + '--', '');
		return {
			contentType : "multipart/form-data; boundary=" + boundary,
			data: ret.join("\r\n")
		};

		function createBoundary () {
			return "B"+Math.floor(0x1000000 + Math.random() * 0xffffff).toString(16);
		}
	}
2007年 12月 29日

canvas

AS3 と自分との相性がことごとく悪いので canvas でかるくおえかきツールみたいなのをつくってみたけど、うまく実装できないなぁ。undo したいから、直近の数パスは保存しておかないといけない。canvas は直接書いてしまうから (オブジェクトをおいていくわけじゃない)、自分で再描画をコントロールしないといけない。でもって、書きはじめてから生成されたパスを、mousemove ごとに毎回全部再描画すると、割とすぐに重くなって使えない。

toDataURL つかってスナップショットをとりながら描画するようにしてみたけど、なんかこのへんでつかれた。ボタンとか作るのめんどいし、あまりにもクロスブラウザじゃないすぎる……

わりとどうでもいいけど toDataURL って名前おかしくないのかな。Locater じゃないと思う。

なんか toDataURL のよびだしが二回目以降 Security Error になる……

JS: コンテナとしての Object のキーの列挙

常にこう書くことにした。

for (var k in obj) if (obj.hasOwnProperty(k)) {
    alert(obj[k]);
}

今までは

for (var k in obj) {
    if (!obj.hasOwnProperty(k)) continue;
    alert(obj[k]);
}

とか書いてたけど、! を書くのを忘れて、いったりきたりしてしまうのでめんどかった。

ちなみに

for (var k in obj) {
    if (obj.hasOwnProperty(k)) {
        alert(obj[k]);
    }
}

はインデントが増えるから嫌だ。

hasOwnProperty は長いけど、慣れれば (主に autocomplpop.vim のおかげで) 気にならない。

Good Dog Happy Men のあれ

新宿のときのやつをかばんからだした (いまさら)
Good Dog Happy Men - the GOLDENBELLCITY, mini-live at Shibuya Tower Record

2007年 12月 28日

可愛い女の子

可愛い女の子をいまいちイメージできなくなっている。リアルよりリアリティのあるのを想像したい。プログラミングは大事だけど、可愛い女の子をちゃんと想像できなくなるのはまずい。

ruby1.8.6

もうほんとどうしよもないところでハマったりするので Mac でも 1.8.6 を常用することにした……

sudo rm -rf /usr/lib/ruby/gems 
sudo port install ruby
exec zsh (パスとおしなおし)
wget http://rubyforge.org/frs/download.php/29548/rubygems-1.0.1.tgz
tar xzvf rubygems-1.0.1.tgz
cd rubygems-1.0.1
sudo ruby setup.rb
sudo gem install resh

BridgeSupport の WebKit のところでおわた……

/opt/local/bin/ruby install.rb config --build-universal=yes
(in /Users/cho45/project/rubycocoa/src)
install.rb: entering config phase...
create ext/rubycocoa/extconf.rb
create framework/GeneratedConfig.xcconfig
create framework/src/objc/Version.h
create tests/Makefile
---> framework
create /Users/cho45/project/rubycocoa/src/framework/src/objc/osx_ruby.h ...
create /Users/cho45/project/rubycocoa/src/framework/src/objc/osx_intern.h ...
BSROOT="/Users/cho45/project/rubycocoa/src/framework/bridge-support" CFLAGS="-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk" /opt/local/bin/ruby build.rb
Generating BridgeSupport metadata for: WebKit ...
./gen_bridge_metadata.rb:1800:in `compile_and_execute_code': Can't compile C code... aborting (RuntimeError)
command was: gcc  /tmp/src-0-28704.m -o /tmp/bin-0-28704 -F"/System/Library/Frameworks" -framework WebKit -framework Foundation  -include /tmp/src-0-28704.h  2>/tmp/log-0-28704

/usr/bin/ld: /System/Library/Frameworks/WebKit.framework/WebKit load command 20 unknown cmd field
collect2: ld returned 1 exit status
	from ./gen_bridge_metadata.rb:1051:in `collect_types_encoding'
	from ./gen_bridge_metadata.rb:521:in `collect'
	from build.rb:101
	from build.rb:50:in `measure'
	from build.rb:101
	from build.rb:62:in `each'
	from build.rb:62
config failed
hook /Users/cho45/project/rubycocoa/src/framework/post-config.rb failed:
'system BSROOT="/Users/cho45/project/rubycocoa/src/framework/bridge-support" CFLAGS="-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk" /opt/local/bin/ruby build.rb' failed
try 'ruby install.rb --help' for usage
rake aborted!
Command failed with status (1): [/opt/local/bin/ruby install.rb config --bu...]
/Users/cho45/project/rubycocoa/src/rakefile:26
(See full trace by running task with --trace)

misc/bridgesupport/build.rb で WebKit はずして継続してるけど、Chemr がビルドできなくなりそうだなぁ……どうしたらいいんだろ……Leopard じゃないとだめなのかなぁ……