torutkの日記の続きです。本日聴講セッションは次です。Jigsawの説明です。従来のJARだけではいわゆる「JAR地獄」、組み込み等のフットプリント削減、ダウンロード・起動時間の増大といった問題が生じてきたので、グループ化/依存関係/バージョン制御/カプセル化/オプション/エイリアスなどの近代的なパッケージ管理に必要な機能を載せようというものです。module-info.javaというファイルに、moduleキーワードを使ってモジュール名とモジュールに含めるクラス、依存関係、バージョン番号などを定義します。定義したモジュールは、拡張子.jmodのファイル(Javaモジュールファイル)として生成されます。}プログラムを実行するときはJARではなくモジュールを指定します。モジュールは所定の場所にインストールしたりネットワーク上にリポジトリを設けて配置したりといった管理機能が用意されます。過去、そこそこ大きいライブラリを作成しアプリケーションへ提供するとき、ライブラリを複数パッケージで構成した場合、ライブラリ内では使えるがアプリケーションへは見せたくないクラスがあると、現状では制限ができませんが、Jigsawによって利用を許可するパッケージを指定できるようになるので便利です。バージョンについては、現在はJARのマニフェストに記載できなくもないですが、手間がかかるしバージョンをチェックするのはアプリ側の責務となってしまいます。debなど)にあるような機能をJavaのモジュールに導入します。素材は提供されたので、あとはどう料理するかを研究するのが今後でしょう。ApplicaitionsGCやJITによる遅延(Latency)を避けるには、というセッションです。GCによる遅延に影響するのが、マイナーGC発生頻度、旧世代への昇格頻度などです。世代別GCでは新規オブジェクトの割り当てより、残り続けるオブジェクトが遅延に影響します。GCについては、遅延の観点での理想は、ParallelGCを使い、フルGCを発生させないことです。旧世代のフルGCが必要となったらCMSを試すとよいそうです。CMSには、若い世代から旧世代への昇格がフリーリストのインサート処理になるため遅くなるという問題もあります。並列コレクタにはライトバリアが必要なためオーバーヘッドが生じます。GCの遅延を少なくするプログラミングとしては大きなオブジェクトを避けるコンテナクラスが内部に持つ配列のリサイズを避けるオブジェクトプールを避けるfinalizeは絶対に使うな、代わりにリソースを明示的に開放するメソッドを設けるなどです。JITについては、プログラミング上意識して最適化はするな、ということです。全体に最適化はまずプロファイルをしてから。ツールの紹介をいろいろしていましたが、メモを仕切れませんでした。2.0早口で英語についていけず同時通訳を利用しました。2.0でのレイアウト部品の紹介と、リサイズの方法が説明されてました。講師の方は、説明はさっさと終えてQ&Aをたっぷりとる方針でしたが、実際にプログラミングしてみないと質問も難しいので、スライド追加説明となりました。レイアウトで説明のあったクラス。Pane,AnchorPane,BorderPane,StackPane,HBox,VBox,TilePane,FlowPane,GridPaneRegionクラスはCSSでボーダーやマージンを制御することもできるようです。SunSPOT,Ardruinoをつかったガイガーカウンターデバイスの作成についてSunSPOTはOracleになってからも購入可能で値段も下がったとのことです。MacOSで使うのが推奨とのことです。放射線計測器をSunSPOTにつなぎ、計測したデータを無線で飛ばして集計してマップを作成するということができればいいね、というストーリーで以降のプレゼンが進みます。ここから少しJavaとは離れますが、放射線の種類と計測方式(ガイガー、半導体、シンチレーション)の説明と、ガイガーカウンタの作成のデモがありました。計測の原理については初めて知りました。デモでは、ガイガー管が必要とする400Vに昇圧するために「写るんです」のフラッシュ回路を使いました(ばらすときに火花がちってましたが、爆発ではありません)。SunSPOT(またはArdruino)とガイガーカウンタを太陽電池駆動し、これをSunSPOTの近距離無線範囲になる間隔で配置すれば、応用ができるのでは、というところで今回は終わりました。architectureTwitterのエンジニアによるTwitterインフラのアーキテクチャ解説です。Twitterはリアルタイム/ニアリアルタイムなサーバーで、トラフィックは瞬時に飛びぬけて増加するという特徴があります。昨年の震災(2011/3/11)では1日に3億4千万ツイートが全世界であったそうです。FinagleというJavaの非同期RPCライブラリを使っています。Twitterのアーキテクチャについては非常に詳細な解説がありました。Discussion4つのコミュニティ(JGGUG、JRuby、Scala、関ジャバ)から代表4人が登壇してOracleの伊藤さん司会のもとディスカッションしていました。JGGUGがアウトプット指向で、電子雑誌を出しているとの話を聞いて、我らがJava読書会も何かアウトプットできないかとちょっと刺激を受けました。2012のブログを集めてみたキーノートセッションだけの記事、メディア系の記事はリストアップから外しています。次のセッションを聴講しました。9はてなブログをはじめよう!torutkさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。