JJUGクロスコミュニティカンファレンス
本日JJUGのクロスコミュニティカンファレンスに行ってきました。取り合えず聞いてきた感想等。全体的に、自分のやる気を高める、モチベーションを上げる、という目的のためには有用なカンファレンスだったと思います。ただ、何か新しいこと、何かすごいこと、を聞いて帰ろうという目的のためには少々??な感じでした。
JJUG Cross Community Conference 2008 Fall
以下個別セッションの感想など。
CloudとAndroid
丸山大先生のお話です。Cloudについての話ですが、話の内容自体もクラウドのようにふわふわとした話だったな、と。まあ、基調講演というのは往々にしてそういうものですが。全体的にどこかで聞いたことあるような話でしたし。
- ネットワークメディアの歴史
- インターネットと携帯の急速な普及
- ムーアの法則が終焉
- Scale-upからScale-outへ
- Cloudとは何か?
- Web2.0 -> Cloudの予感
- サービス提供者が遠くにいる
- 個人と個人の自由なデータ交換
- Web2.0Summit 2006
- サービスを提供するインフラが大事
- Cloudの実態 -> ネットワークのインフラ、多数のサーバ、データセンタ
- Webサービス -> 不特定多数に開かれたサーバ・クライアント・モデル
- Cloudでのスケーラビリティ
- Cloud側が考える、ユーザ側から見るとBlackbox
- Cloudのサービスの寡占化
- Googleは世界4位のサーバ製作量
- 並列化のボトルネックはDB
- 分散キャッシュを使うことが多くなってきた
- CloudとAndroidの連携
- ITの巨人が携帯市場へ参入
- 日本の強み -> IT技術者の厚い層、物作りの実績、コンテンツの競争力
- これらが出会う場がAndroid
Hudsonによる継続的インテグレーション
Javaの技術系の話題としては、本日一番おもしろいお話でした。HudsonというCIツールを使おうよ、という話。後半実際のデモもやってくれて、おおっという感じでした。ちなみに後半は話を聞くのもそこそこに、Hudsonを落として、昼休みにかけて動かしてみて遊んでました。
- コンピュータは安くなる一方
- 開発者の値段は高くなる一方
- 計算機をたくさん使って人間の効率を上げた方がよい
- たくさんの計算機を使い倒すのは難しい
- 継続的インテグレーション
- サーバで常時ビルド&テスト
- よいツールを使わないと生産性は上がらない
- Hudsonの機能説明
- warで配置、jarとしても動かせる
- UIで簡単に設定できる
- Hudson
- Javaで実装されたCIサーバ
- 人間のコミュニケーションの必要性を減らす
- Javaで実装されたCIサーバ
- Hudsonの利用
- まずはビルド全行程を1ジョブにする
- 部品を細かく分解すると効率がよくなる
Javascriptパフォーマンスチューニング
午後一はamachangのお話です。JS自体はほとんど触ったことがないのですが、これはおもしろい話でした。簡単に要約すると、JSのパフォーマンスについて考えるときは、ブラウザの挙動、レンダリングの再計算なんかも考えて置きましょう、ということ。ブラウザの再計算部分などは、必ずしもプロファイラでは計れないこともあるというのは勉強になりました。
- Javascriptの誤解
- Javascriptは遅い
- DOMが重い
- DOMにも色々あります
- DOMのフェーズ
- JSとコンポーネントの通信
- DOMのノードの追加、値の変更
- スタイルの再計算
- レイアウトの再計算
- JSプロファイラ
- 実演
- 地道にボトルネックを調査するのがいいよ
ギークなお姉さんができるまで
ギークなお姉さんことべにじょさんに萌えるセッションです。内容的には、ギークすげーよ、っていう話から、プログラマとデザイナの協業について、というような話。purprinさんのデザイナー視点から見た話はおもしろかった。まあ、技術的な部分はあまりありませんでしたが、まあそんなもんでしょう。
それはそうと、べにじょさんすげーな、と思う。正直な話、プログラミングの能力としては、会場の中でも誰よりも低いと思う。それでも、人まえにきて自分の経験を話していける、というのは本当にすごい。見習わなくては。
JavaにおけるFullGCの抑止
正直微妙でした。個人的には一番期待していたセッションだったため、残念度もひとしお。
JavaのFullGCに苦しめられている人は、多分非常に多いでしょう。GCがあるか楽にかける言語であるのですが、そのGC故の問題も発生するのがJavaです。そのため、そのGCをうまく制御するやり方があるならぜひ聞きたいところ。
が、結局答えが、部分的にとはいえそのGCによるメモリ管理を捨てて、自分で管理する、というのは少々いただけないな、と思う。ちゃんとメモリ管理出来るなら、別にJavaじゃなくてC++でも良さそうだし。また、その実装方法が、VM本体を直接いじって実現、というのもあまり他の人がおいそれと出来ることじゃない、というのが残念。
- Javaのメモリ管理
- Stop the World型のメモリ管理をしてしまう
- 世代別GCの話
- On the fly型のGC
- FullGCが発生するのはOld領域がいっぱいになるから
- New、Old領域以外に新しい領域を作ってしまう
- ただしGCでは管理対象外
- メモリ領域の管理はある程度自動
- 実際に計測して実験
楽しいSpring2.5
個人的にはこれもちょっと残念だったかな。「楽しい」と銘打っているから、実際にデモなんかをして、こんなに簡単なんだよー見たいなことを見せてくれるのかな、と思ったら、どちらかというと単なる宣伝という感じが強くてちょっと??な感じでした。最後にやっていたデモは、正直見えませんでした。
- Springとは?
- DI、AOP
- Spring本体以外にもサブプロジェクト多数
- バッチ処理の部分が流行り
- Springを作っている会社の近況
- 簡単にデモ
Agileは現場に適用できるのか?
Agileをキーワードに、開発について話し合いをするという感じのセッション。結構皆さんおもしろい体験をしてそうな感じなので、そっちの方をもっと掘り下げて欲しかったな、と。Agileがキーワードに入ってますが、そんなにそれにこだわらなくてもよかったのではないかと思います。結局無難な答えにまとまってしまったのがちょっと不満。
- クライアントに製品を納入する場合
- お客様が忙しくて、あまり連絡とれず
- ちょくちょく変更が入る
- できる人ができることをやるしかない
- 結局はお客さんに確認するのが一番
- 自分がやりやすくなるように言っていく
- agaileは言葉先行?
- 人によっていろんな解釈がある
- 結論:変えていこうという精神とかそういうのをさしてagileという