2008年 06月 23日

RubyKaigi

みなさん、お疲れさまでした! 特にスタッフの方々は動きまくっていて本当にすごすぎる……

今回初めて RubyKaigi に参加したので、「あーあの人が、あの人かー」というのをふむふむと眺めつつ、チキンなので話せなかったりしたりなど、とても普通の人っぽい楽しみかたをしていました。

いろいろ整理できていないのでちまちま書いていきます。

なんか、あれ、全部嘘だから気を付けたほうがいいと思いますよ

RubyKaigi というか、カンファレンス系のイベントは、帰ってきて、ネットに書かれた感想とかを、行っているからこそわかる空気感を想像しながら読めるのがとてもいいのだよなぁ。そういうのがあると、例え外にでて電車に乗って憂鬱になりながら帰ってきたりしても、よかったなぁと思えるのだ。

Firefox3 + Firebug 1.2.0b3 でハマった

なんかよくわからないんだけど

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr">
	<head>

		<script type="text/javascript" src="uuu.js"></script>
		<script type="text/javascript" src="test.js"></script>
		<script type="text/javascript" src="foobar.js"></script>
	</head>
	<body>

	</body>
</html>
// uuu.js

typeof(console);

/*
 * typeof(console) を src でよみこんだスクリプトでやるとダメ
 * typeof(window["console"]); もだめ
 *
 */
// test.js
(function() {
	var scripts = document.getElementsByTagName('script');
	var script  = scripts[scripts.length - 1];
	alert(script.src);
})();

こうすると alert で test.js が alert されない。なぜか script.src が undefined になってしまう。Firebug を Disabled にすれば大丈夫。これ困る……

alert(window.__lookupGetter__("console"));

してみると

function () {
    return window.loadFirebugConsole();
}

ってなってる。

console を参照できるかどうか試すコードを書きたいなら

if (
	(
	 typeof(window["__lookupGetter__"]) == "function" &&
	 typeof(window.__lookupGetter__("console")) == "undefined" && typeof(window["console"]) == "undefined"
	) ||
	typeof(window["console"]) == "undefined"
) {
	alert("console is undefined");
}

と書いたほうがいいっぽいなぁ。もちろん Firebug の変更によってまただめになるだろうから、とても adhoc すぎてウンコなんだけど……

はてスタ IRC ストリーム

http://coderepos.org/share/browser/lang/ruby/net-irc/trunk/examples/hatena-star-stream.rb

はてなスターが付き次第 IRC に通知するのをつくりました。

  • ついたURL
  • つけた人
  • 引用コメント (あれば)

が通知されるようになります。

これメモリくいすぎるので書きなおします

外部ファイルハッシュにしてみた。なおったかな

2008年 06月 21日

RubyKaigi

1日目から参加します。2日目のサブセッションで net-irc について話をする予定です。ちょっと内容がいまいちなのでブラッシュアップ中。すごい緊張する……

RubyKaigi

2008年 06月 20日

ここ数日ふとんで寝ずに床に寝たりしてる。割とこっちのほうが寝心地が悪いので起きやすい気がする。

freenode のアカウントのメタデータ

何かに使えるかもなー

# 現在ログイン中のアカウントにメタデータ追加
/msg NickServ@fn set property <name> <value>

# nick で指定したユーザのメタデータを取得
/msg NickServ@fn taxonomy <nick>

例えば OpenID の claimed_id を登録させるようにして、IRC ログの自動認証とかかなぁ。

  1. (ユーザ) /msg NickServ@fn set property OpenID http://www.lowreal.net/ しておく
  2. (ユーザ) IRC ログのページで nick を宣言する。
  3. (サーバ) taxonomy で、宣言された nick の OpenID claimed_id を取得する
  4. (サーバ/ユーザ) ユーザをその OpenID の URL 使って認証させる (普通に OpenID Auth)
  5. (サーバ) 認証できれば、そのユーザが現在 JOIN しているチャンネルのログが見れる

こんなことするほど IRC log は重要じゃないけど、ほかになんか面白いことできないかなぁ