LabVIEW Days 2007 開催が近づいて、なんだかばたばたしております。
あと、10/31-11/1 に Multicore Expo なるイベントで、しゃべってきました。マルチコア開発環境のケーススタディというか、事例の紹介というか。
で、会場が目黒雅叙園でした。というわけで、トイレに行ってきましたよ。トイレに小川が流れていて、小さな橋を渡らないと便器にたどり着けないという、すごい内装です。あやうく小川で用を足すところでした。
LabVIEW Days 2007 開催が近づいて、なんだかばたばたしております。
あと、10/31-11/1 に Multicore Expo なるイベントで、しゃべってきました。マルチコア開発環境のケーススタディというか、事例の紹介というか。
で、会場が目黒雅叙園でした。というわけで、トイレに行ってきましたよ。トイレに小川が流れていて、小さな橋を渡らないと便器にたどり着けないという、すごい内装です。あやうく小川で用を足すところでした。
web.py + Kid + jQuery を使っていると、jQuery の append() メソッドを呼び出しても、期待した副作用が起こらなくてびびりました。結論から言うと、kid.HTMLSerializer を使えば解決です。
やろうとしたこと:
以下のようなテンプレートがあったとします。ファイル名を foo.kid としましょう。
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#">
<head>
<title>foo</title>
<script src="jquery.js"></script>
<script>
function bar() { $("#myparagraph").append(", World!"); }
</script>
</head>
<body>
<p id="myparagraph">Hello</p>
<input type="button" value="Press Me" onclick="bar()" />
</body>
</html>
このテンプレートから、以下のような Python コードで HTML を出力します。実際にはテンプレートにパラメータを渡して、web.py 経由でブラウザにレスポンスしますが、まあ、それはよいとして。
template = kid.Template(source=file("foo.kid").read())
print template.serialize()期待した動作は、ボタンをクリックすると、「Hello」と表示されている p 要素に「Hello, World!」と表示されることでした。が、何も起こらず。
なんで?:
(1) テンプレートからの出力が実は XML で、(2) jQuery の append() メソッドは XML ドキュメントには使えない(どこに書いてあったかは失念)から。
で、どうするの?
Python コードを以下のように、HTMLSerializer を使うように変更するとおっけー。
template = kid.Template(source=file("foo.kid").read())
serializer = output=kid.HTMLSerializer(encoding="utf8")
print template.serialize(output=serializer)ふーむ。AJAX への道は険しい...。
YouTube をだらだら見ていたら、ファミコンソフトのジェットマンとジュウレンジャーのレビューをしている動画がありました。笑える。ジュウレンジャーってちょうどバブル崩壊のころだったと記憶しています。そういう時代背景と、ゲームのクオリティに因果関係があるのか知りませんが(今年までテレビゲームを持ったことがなかった)、まあ関係ありそうだなと勝手に思っています。
レビューでは、ジェットマンは神ゲー、ジュウレンジャーは糞ゲーみたいな感じで、話が進んでいきます。確かにジェットマンは面白そうですね。ジュウレンジャーはボーナスステージとエンディングが絶望的です。
あとニコニコ動画にもありました。レビューした本人がアップしてないような気もしますが。