JUI Tokyo 2008に参加してきました!
無謀にもLTとか申し込んじゃったりして。
スピーカ(LT含む)の席は一カ所に固められていて、なんとamachangさんの隣に座れました。もっとお話しすれば良かったのですが、久しぶりに知らない人ばかりのところに飛び込んだので、ちょっと気後れしちゃいましたよ。だめだね、こりゃ。
まずは各セッションの内容と感想から。
jQuery UI / Paul Bakaus (パウル・バカウス) さん
フルタイムの仕事でjQuery UIやってるそうです。
jQuery UIの機能とか説明しつつ簡単なデモをいくつか。
Drag & Drop 等のよくある機能から、Effect API とか。
Dragしても、要素をposition:absoluteじゃなくてfloatしたまま扱うから、要素を3つfloatさせて並べているところで、真ん中の要素をドラッグしても崩れないのだそう。
widget factoryのところはもう少し勉強しようと思った。
webkit専用の機能として画像を回転させたりとか、3Dっぽく見せたりとかできるみたいで、そこのデモはかなり感動しましたよ。
<質問コーナー>(走り書いたので正確じゃないかも)
Q.開発しようと思ったきっかけは?
A.以前もう1人とインターフェースのライブラリを作っていた。公式なものではなかった。プラグインのオーサーが開発できなくなった。そういうときに、jQueryの作者から公式な依頼があった。
Q.JavaScriptでの複数人開発のポイントは?
A.共通のライブラリで開発し、コード規約を作ることかな・・・。フルタイムでやってるのは自分だけ。あんまり問題は起きていない。
Q.script.aculo.usやExtを意識するか?
A.インスピレーションは得られる。他のライブラリもjQuery UIをまねしたりする部分もある。競争相手がいるのはうれしい。
Q.自慢コードを教えてください。
A.誰も理解することができないコードが好き。複雑なコードが好き。(すごいif文を見せてくれました。)
Q.これからJQueryを学ぼとしている人へのアドバイスは?
A.どんどんやってみると良いよ。jQueryはドキュメントがそろっているからそこからやってみると良いよ。
会場からの質問
Q.エディタを教えてください。
A.E。(綴り分からず・・・)
Q.プログラミングを始めて何年?JavaScriptを始めてどれくらい?
A.10年、5年
Q.EcmaScript4の仕様についてどう思いますか?
A.John(jQueryの作者)がJavaScript2.0のサポータ。私自身は複雑な感情を持っている。新しい文法はうれしいけど、オブジェクト指向とプロトタイプ指向がうまく融合するか、どうだろうか・・・。
プレゼンツールを作るときに考えたこといろいろ / amachangさん
初生amachangだよ。わーい。
S6を作るときに考えたことの話。
S6はリッチなプレゼンツール/軽い。というか、プレゼンの度に毎回自作してたってのはすごい。
この手のエフェクトを作るとき、子孫要素まで大きさを変えないといけない。ここで、いちいちすべてのスタイルを変更していると遅くなっちゃうので、%やemで指定して、大きさを変更するのは全てを囲んでいる親のフォントサイズを変更してやる(このテクニックはすごい)。
高速化の手法として、「1つのsetIntervalを使い回す」「DOMの値をキャッシュ」「無駄な関数呼び出しを減らす」などなど。この辺は後で公開されるであろうamachangの発表資料をcheck。
Firebugのプロファイル機能でチューニング。Own time / Time : Own Timeに着目すると良い。
ある関数の中で重たい処理を見つけたいときは、(function ___001(){ })() みたいに関数で囲んでやると、プロファイル機能でチェックできる。(これは便利だ)
inucara.netを支える技術 / inucaraさん
HatebuladderとかUIにこだわって、既存のサービスの情報を見やすく提供するという話。
「使いにくいのは悪」と言い切るのはすばらしい。
HatenaHaikuで、今年中に1000ブクマされるサービスを作る、と書いて、本当に作っちゃったのは立派(完璧画像検索)です。ほんと。有言実行ってすばらしいです。
ユーザビリティの話で、以下の点を工夫した点として挙げられてました。
- 自動ページング
- スクロールに合わせて現在位置表示を動的に更新
- 解像度を自動取得
- ウィンドウサイズに合わせてサムネイルの列数を修正
- 使い慣れたUIをぱくる
- 先読み&キャッシュ
- スムーズな視線移動を助ける
使い慣れたUIのところとかは、ちょっと疑問(だって、みんながみんなLDR使っているわけじゃないし)だけど、全体的に納得のできるお話で楽しかったです。小さな工夫を積み重ねて、ちゃんと検証している感じが伝わってきました。
リクルート WEBサービス UI Library でお手軽マッシュアップ開発 / iandethさん
MTL iandethさんによる、リクルートが提供するUI Libraryの話。
リクルートでは40を超えるAPIを提供していて、それをもっと使いやすくするJavaScriptのUIライブラリを作りました、とのこと。
確かに、マッシュアップサイトを作るとき、いちいちプルダウンとかの仕組みを作り上げるのは大変。というか面倒くさい。そこにこういうライブラリがあったら、かなり便利に使えます。
月に1回更新が入るマスタ系のデータや、親データによってプルダウンの中身が変わったりするUIもちゃんと提供されていて、そこにJavaScriptのオブジェクトの形で関数とかを渡してやったり、テンプレート文字列を渡したりすることで、より上級な使い方ができますよ、と。
API提供側がここまでお膳立てしてくれるとありがたいですね。
あと、さりげなくMash up award 4thの告知が行われてました。
今回は参加しようかどうしようか。おそらくAPIの数も、前回以上にそろってくるんじゃないかしら。Macbook買ったから、PlaceEngineがらみで何か作ってみても面白そう。
さて、ここからLTコーナー。
jFormino - declarative from generation / gudogさん
いきなりの英語のLT(翻訳あったけど)。
jQueryを使って、Google Maps とか Formとかをお手軽に生成できますよ、というもの。
確かに便利そうだけど、Formを自動生成というのは使うシーンがあるのかなぁ、と思った。
GreasemonkeyでjQueryと遊ぶ - Play jQuery Anywhere - / noriakiさん
グリモンでjQueryをうまくロードする方法の紹介。
プレゼンツールも、コレを利用したグリモンで作られているとか。
過去グリモンをいくつか作ってきて、ライブラリのロードにはちょっと面倒な思いをさせられていたので、これは使ってみようかしら。
Colors in jQuery / Yoshiomi KURISU
で、僕。本当はmonjudohさんだったんだけど、機器トラブル(というのか)で急遽僕の番に。
てか、この時点で僕の発表内容のうすっぺらぺらぺらさに、LTやりますと言ったことに後悔し始めていたりして。
参加した人は分かると思いますが、
「chris / chris4403 / 栗栖」→「これというHNがない」→「amachangみたいに親しまれるようなHNが欲しい」→「クリちゃん?」
という下ネタだったわけですが、発表直前に、
「chris / chris4403 / 栗栖」→「これというHNがない」→「複数ある名前を正規化したい。amachangみたいに親しまれるようなHNが欲しい」→「クリちゃん?(せいき化)」
というもっと程度の低い内容を思いついてしまい、必死で自重してました。
以下、発表資料です。(ustream.tvのチャットのコメントでcoffeeの誤字を指摘されたけど、そのままにしてます。恥ずかしす)
jQueryを使ってTwitterクライアントを作る / monjudohさん
JavaScriptで実装されたTaffy DBとjQueryを使って、Twitterの画面を便利に使いやすくするという内容。
これまた機器トラブルで、内容に使える時間が短めでしたが、結構おもしろい内容でした。
Greasemonkeyとか作ってないのかな。
ここまでが、予定されていたセッションでした。ここから飛び入りのLTが。
まずは、YAMLを作ったIngyさん。
JavaScriptのテンプレートJEMPLATEを紹介していました。というか、発表内容よりプレゼンツールの方が気になってしまいました。
続いて、最速の人、malaさん。
これはかなりびっくり。MTLの川崎さんの召還能力すごすぐる。malaさんの発表は、キーワードハイライトをいかに高速化するかというテーマで、1000msec弱かかっていた処理が最終的に150msec程度になってました。すげー。
で、トリを飾ったのがTakesakoさん。カッコイイYAPCのイメージVTRを放映されました。
この後、懇親会だったのですが、僕は家の都合で参加せず。残念無念。amachangさんやmalaさんとかと話してみたかったなぁ。とか言いつつ、基本奥手なので、その場に行ってもなかなか話しかけられずもじもじしてたんだろうけど・・・。
全体としてかなり濃密で楽しいイベントでした。取り仕切っていたMTLのみなさん、刺激的なプレゼンをしてくれたスピーカのみなさん、ありがとうございました!