October 21, 2008

JJUG Cross Community Conference 2008 Fall レポート2

これの続き。

DOMパフォーマンスチューニング入門

講師: amachang

JavaScript は遅い遅いといわれているけど
ベンチマーク取ってみると Rerl とか Ruby 並みの速度
遅いのは DOM に 関する処理

DOM 関連の処理を分解してみると、

  1. コンポーネントとの通信
  2. DOMノードの追加
  3. スタイルの再計算
  4. レイアウトの再計算

となる。

1 コンポーネントとの通信
XPConnect や COM との通信
IE が特に遅い
無駄なプロパティアクセスを減らすと良い
→ 変数に入れるなどして

2 DOMノードの追加
ノードに「変更されたフラグ」が立つ
「parent.appendChild(child)」とすると parent と child にフラグが立つ
(DOM に対する処理をすぐに実行するのではなくて後でまとめてやるためにマークを付けとく、みたいな感じですかね。)

3 スタイルの再計算
スタイルの再計算が行われるタイミングを把握しておく必要がある
スタイルの再計算はどんな時に行われるか

  1. 変更フラグが立っているノードがあるまま JavaScript が終了した時
  2. 変更フラグが立っている状態でスタイルの再計算が必要な処理を行った時
    offsetWidth プロパティの値を取得したり

処理の順番を意識する必要がある
スタイルの再計算が行われるエレメントを意識する必要がある
子ノードとか下にあるエレメントとかもスタイルの再計算が行われる

4 レイアウトの再計算
要素の幅、高さ、位置の計算がここで行われる
激しく重い
→ 親ノードにも影響を及ぼすことがあるので
基本、スタイルの再計算に気をつけていればいい

プロファイラのデモ
各メソッドの実行時間とか、呼び出し回数なんかが簡単に調べられる
(safari 4 にはプロファイラが搭載されるらしい)

質問タイム
Q: 再計算のタイミングを知るには
A: Webkit をデバッガで起動。ログを仕込んだりして調べる。

Q: Webkit のソース解読 Tips
A: Webkit の IDL ファイルを見ると良い

ギークなお姉さんができるまで

講師: べにぢょ (アルカーナ株式会社), purprin (エスカフラーチェLLC)

個人的にはあまり興味がわかない内容でした。
おもしろかったけど。
(というか、人の話を聞くのって基本おもしろい。退屈な話しかしない人もいるけど、自分が何を考えているのかということをちゃんと話そうとして話している人の話はだいたい面白い。)
purprin さんの話がもうちょっと聞けたらよかったかも。
Web デザインの話とか。

『JavaからRubyへ』・アンド・ナウ

講師: 角谷 信太郎 (株式会社永和システムマネジメント), 高井 直人, 和田 卓人

Java から Ruby、EJB から Rails という流れの裏にどのような歴史があるのか、というようなお話
以下はスピーカーの方達のブログ記事。

YET ANOTHER GREEN IT

講師: 和田 卓人, 角谷 信太郎 (株式会社永和システムマネジメント)

息が合えばペアプログラミングってすごく楽しそうだなぁと見てて思った。
こういうセッションも楽しいですね。
他人が開発してるところとか普段そんなに注意深く見てないし。

Agileは現場に適用できるのか? ~オンナだらけのパネル・ディスカッション~

講師: 片山 智咲子 (Java Edge), きたむら (日本XPユーザグループ), 柳本芙友子 (要求開発アライアンス)

なにかこう、釈然としないディスカッションでした。
アジャイルという言葉の意味が人によってまちまちだなぁ、とすごく思いました。

java-jaプレゼンツ・第十一回 第2回チキチキ JJUG だよ全員集合 ライトニングトーク大会

おもしろかったです。
え?、西尾さんビーズの話して終わり?みたいな。

October 18, 2008

JJUG Cross Community Conference 2008 Fall レポート1

レポートっていうほどのアレでもないけど。

JJUG Cross Community Conference 2008 Fall というイベントに参加してきた。

その感想など。

CloudとAndroid 丸山 不二夫 (早稲田大学)

話題が多方面にわたって、ついていくのがやっと。
結局のところ、何がいいたいのかよくわからなかった。
んー、まあ、クラウドですよクラウド(よくわかってない)。
で、インフラが重要であると。
Google はクラウドを実現するためのインフラを作り上げた。
ネットワークが高速化するとコンピュータのあり方が変わってくる。
分散。
プログラムの組み方も変わってくる。
リレーショナルデータベースは時代遅れに。キー・バリュー型へ。

Android
携帯のオープン化の動きは非常に重要
携帯市場は巨大
デジタルデバイドの終焉
新しい市場の可能性

Hudsonによる継続的インテグレーション – 川口 耕介 (Sun Microsystems, Inc. senior staff engineer)

個人的にはこれが一番ささった。

マシンをフル活用せよ!
人件費に比べたらマシンのコストなんて安い。
自動化!

Hudson
Java 製の CI サーバー
ビルドやテスト等のタスクを自動化

このツールはすごーく便利そう。
UI もよさげだし。
もうちょっととっつきやすい名前だったらいいのになぁ。
あと CI(継続的インテグレーション)という言葉も堅苦しい感じがする。

続きはまた後で。

追記:
書いた