読者です 読者をやめる 読者になる 読者になる

なか日記

一度きりの人生、楽しく生きよう。

関ジャバカンファレンス2011に参加

お仕事ではほとんどJavaとお付き合いはないのですが、個人的にはAndroidのアプリをいじったりしてるので参加してきました。
テーマ的にはJava SE 7の話が理解できる程度かなと思ってましたが、まさにそんな感じでしたのでメモには大きな勘違いが紛れ込んでいるかもw

関ジャバカンファレンス2011
http://atnd.org/events/17270

日時:2011/7/16(土) 10:00〜18:00

会 場:日本オラクル株式会社 関西支社
    大阪府大阪市北区堂島2-4-27 新藤田ビル 9F

Java SE 7 で切り開く新しい Java の世界について(寺田さん)

Java
    • JavaSE7
      • 5年ぶりの新バージョン
      • 進化
        • 移行しやすい
    • JavaSE8
      • 革命
        • 移行が大変
      • 2012年末予定
    • 移行おすすめ
      • 6→7→8
      • 6→8はきっと大変
生産性
    • プロジェクトCoin
      • 言語使用に関する小さな変更
    • SE7
      • switch構文で文字列型の使用
      • 数値表現形式の追加
        • バイナリ表記
        • アンダースコア表記
          • 意味ある形式に
          • クレジットカードNo(9999_9999_9999_9999)
      • 例外ハンドリングの改良
        • マルチキャッチ
        • catch (HogeException | PiyoException ex)
      • 型推論の改善
      • リソースを含むtry構文
        • tryでAutoClosableの実装クラスを記述
        • finalyでclose()処理の記述が不要
        • C#のusing{}と同じような物
パフォーマンス
    • CPUのコアを有効利用
    • jsr 166y
      • SE1.4まで
        • 並列処理の実装は困難
        • Concurrency Utilitiesを使うと楽
    • SE7
      • Fork/Join Framework
      • 分割→処理→結果を結合
        • タスク分割のオーバーヘッドがある
        • 分割数が増える逆に遅くなることも
    • SE8
      • プロジェクトLambda
        • ラムダ式に対応
        • 並列処理の効率化
普遍性
    • Da Vinci Machine Project
      • JSR 292
    • 動的型言語のサポート
    • InvokeDynamicバイトコード命令
    • MethodHandleによるリフレクション
      • Refrectionよりオーバーヘッド少といってるが
      • 今のところそうでもない
モジュール化
    • SE8
      • Project Jigsaw
        • Java標準モジュールシステム
      • jar地獄からの解放
        • クラスパスの排除
        • 動的ダウンロード・インストール
        • ネイティブ・パッケージ
          • dev
          • rpm
          • など
      • パフォーマンス向上
        • 増分ダウンロード(高速クラスロード)
        • 必須モジュールの記述
      • 小型機器への対応
        • サブセット提供
      • Javaクラスのグループ化
      • 外部ライブラリ使用
      • バージョン管理
        • @をつけることでバージョン指定
      • 特定モジュールからのみ利用可能なモジュール
      • 省略可能モジュール
      • 仮想モジュール
        • モジュールの集約
統合
    • JavaVM
      • HotSpot
      • JRockit
        • ライセンスが必要
      • 今後
        • HtoRockit
          • 使用する機能によってはライセンスが必要
最後に
    • 7月28日リリース
    • RC版がダウンロードできる
    • NetBeans7.0

祝Preview卒業!Google App Engine for Java()

ポイント
    • DB設計では非正規かを多用する
      • 整合性を維持する工夫
    • UI機能
      • どれだけの価値を提供するか
    • リソースを無駄に消費
    • 新しいプラットフォームと理解する
      • 従来の設計パターンでは通用しない
GAEとは
    • PaaS
    • リソース使用量が少なければ無料で使える
    • 自動でスケールアウト
    • ミドルウェア
      • DB
      • メール
      • キャッシュ
      • など
    • サーバ管理不要
    • 開発言語
    • レンタルサーバとの違い
      • スモールスタート可能
      • インフラ
        • 物理コスト削減
        • メンテナンスコスト
        • 要因教育コスト
    • 特徴
      • データベース
        • KVS
      • 使えないもの
      • 制約
        • リクエスト応答30秒以内
      • 開発環境
        • ほぼすべての機能がエミュレート可能
        • テスタビリティが考えられたSDK
    • 使いどころ
      • 自社サイト
      • 静的サイトもOK
      • コンシューマ向け自社サービス
        • 負荷集中
          • 特定期間
          • 特定時間帯
      • GoogleApps等と連携
      • 規模の小さい業務アプリ
      • クリティカルなシステムは設計が難しい
    • 事例
      • クーポン系サービス(Buyなう)
      • 英国王室(ロイヤルウエディング
      • スポーツSNS(LaBOLA)
      • イベント系(Zussar)
      • SONYの番組予約
      • ソーシャルアプリ
        • スマホアプリのバックエンド
    • 仕組み
      • FrontEnd
      • AppServer
      • TaskQueue,Datastore,Memcache,Mail,等
      • StaticContents
    • 開発環境
      • SDK
      • Eclipseプラグイン
      • 開発効率高い
        • DBの機能も簡単に自動テスト
        • Slim3を使えばさらに強力なテスト環境が
    • Production環境での管理ツール
      • ログ、リソース使用量など確認可
    • データストア
      • KVS(Bigtableを拡張したもの)
      • スキーマ定義なし
        • データはKeyとValueのみで構成
      • トランザクション
        • エンティティグループ内のみ
      • データを作成したときにインデックス構築
      • 検索
        • フィールド構成は読み込んでみないとわからない
        • 検索条件が制限
          • 不等号を扱うフィルタはフィールドに1つだけ
        • like 'hoge%'検索できない
          • 前方一致検索のみ
        • 全文検索は大変
      • 保存
        • Atomicに処理できない
          • 口座の振り込み
        • 複雑な仕組みが必要になる
          • 2フェーズコミット
          • RDBMSでは簡単なこと
GoogleI/O
    • 2011年後半にPreview卒業
    • SLA99.95%
    • 料金体系の変更
      • 値上げの方向
    • Googleがやめるといってから3年保証
    • GAE1.5.0
      • インスタンスを確保
      • 処理時間は上限なし
      • Pull task/Queue task
        • 自分で処理
      • GoSDK
      • Full-text search
      • Monitoring API
        • リソースの情報
GoogleAppsとは
    • SaaS
      • 企業向け
      • GMail,Calendar,等
    • 購入
      • AppsMarcket
    • GData API
GoogleAppsMarcketPlace
    • Appsを補佐・拡張するツール
    • 販売者
      • $100で登録
    • BtoBやBtoCがより身近に
      • Apps利用企業300万社
    • GAEを使う
      • アプリ屋だけで提供できる

NetBeansでJava SE7を勉強しよう(きしださん)

Java SE7
    • 安全な再throw
      • メソッドに複数Exception
      • 基底クラスExceptionをcatch
      • throwする際にエラー
        • SE6
    • 数値リテラルの拡張
      • _で区切る
      • バイナリ
        • 0bで2進数
    • 自動close
      • NetBeansでは自動で書き換え
      • tryで囲むだけ
    • マルチキャッチ
      • tryの自動生成
      • マルチキャッチに変更
    • 文字列のcase
      • 見てなかった
      • 勝手にif分をswitchに変えてくれる?
      • 通常はswitch使わない
    • ダイアモンド演算子
      • Java7が使える
      • 文法をおすすめしてくれる
      • 自動補完も最新の文法
EE6

JavaFX 2.0 – リッチクライアントのためのUI基盤(櫻庭さん)

JavaFX
JavaFX for Java
    • Adv
      • 開発スピード
      • パフォーマンス
      • 使える言語
        • JavaVMで動く物なら何でも
    • Dis
      • 記述量アップ
      • 複雑さアップ
      • 言語でサポートした機能低下
      • JavaFXスクリプトなくなった
基本構造
    • コードで書く(XMLとかじゃない)
    • startup
      • SceneGraph
    • WPFAndroidと同じ感じ
      • Node
        • Control
        • Pane
          • レイアウト
        • Shape
    • (swingも使ってないのでさっぱり…)
    • MVC
      • 結構面倒なので自動化したい
        • バインド
KeyFeatures
    • アニメーション
      • 移動、回転、拡大・縮小、パス、Stop
      • 複雑なこと
        • TimeLine
    • Effect
    • HTML5が使える
      • Webキット
        • WebEngine
        • WebView
    • アプリケーションとデザインの分離
その手
    • Prism
    • 非同期処理
    • JSONパーサー
    • Swingとの連携
      • SEにはない
まとめ
    • デザイナー向けのツールはまだ出てない
      • そのうち出るらしい
    • JavaFXScriptを捨てた
      • Desktopに集中
    • リリース
      • 3Q
      • Win
      • Mac
      • そのうち
    • ランタイムは?
      • 必要
        • 今のところ?
        • そのうちSwingみたいになるかも

AWS ではじめる Programmable Cloud(染田さん)

AWS
    • クラウドコンピューティング環境
      • Amazon提供
    • Amazon.comもAWS
    • 日本ユーザのためらい
      • 海外アクセスなのでネットワークの遅延
      • 海外のDC
    • 東京DC
      • 今年3月
    • サブトピック 5
    • Cacoo on AWS
      • 15万ユーザ
        • 海外67%
AWSの全体像
    • Region
      • 5カ所(アメリカ2カ所、シンガポール、東京、EU)
      • regionで若干料金体験が異なる
    • availavility zones
      • Region内
    • サービスの数
      • 30近くある
      • どこから手をつける?
      • 押さえておきたい基本
        • EC2
          • 仮想OS環境
        • EBS
          • 外付けHDD
          • EC2に接続
          • スナップショット
        • S3
          • HTTP経由
          • 99.999999999%の可用性
      • コンテンツ配信(CDN)
        • 配信プラットフォーム
        • キャッシュの分散
      • スケールの為
        • ELB
          • ロードバランサ
          • TCPベース
        • CloudWatch
          • リソースモニタリング
          • CPU
          • ディスク容量
          • カスタムメトリクス
        • AutoScalling
      • ミドルウェア系
        • Simple Email Service
        • Simple NotificationService
        • ElasticBeanService
          • 勝手にスケールさせるためのパッケージ
          • Tomcatの6か7に対応
AWS SDK
    • REST/SOAPでアクセス
      • ちょっとめんどい
    • Use sace
      • 運用系
        • インフラコントロール
      • アプリケーション系
        • データのやりとり
          • 各種サービスと
    • AWS SDK for Java
      • ライセンス
        • ASL
      • AWSの変更に追従
        • 早い
      • AWSサービスへの事前サインアップ
    • AWS Toolkit for Eclipse
    • MAVEN
    • Security Credentials
      • APIアクセスのためのアクセスキー
    • Sample
      • APIアクセスキーの設定
      • EC2操作用のクライアント生成
      • リクエストの生成
      • インスタンスの起動
まとめ
    • AWS SDK for Java
      • シンプルな呼び出し
      • 基本的なAWSのサービス操作
    • AWSのインフラそのものの管理

もう Java EE 6 でいいんじゃない(寺田さん)

JavaEE6
    • 2009年12月リリース
    • テーマ
      • 拡張性
      • Webプロファイル
        • Java開発に特化した計量サブセット
        • Web開発にはこれで十分
      • 仕様の削減
        • 古くなって使われなくなったAPIの整理
        • 2段階プロセス
          • 1.次回で削除予定←いまここ
          • 2.削除
      • 開発効率
        • JSF2.0
          • コンポーネント提供
            • サードベンダー
          • コーディングから動作確認までの高速化
            • JSF1.2
              • JSPで作成するが、コンパイルがあるのでいろいろ面倒
            • JSF2.0
              • Facelet
              • SAXParserで動作
          • テンプレート機能
          • 1行追加でAjaxを実現
        • テスト
          • デプロイしなくてもテストできる
      • パッケージング
        • EJBをWARに含むことができる
      • XMLの設定が面倒だった
        • 省略可能になった設定
GrassFish
    • オープンソース
    • Tomcatに置き換わるもの
    • Webプロファイルバージョン
    • 集中管理機能
      • 1台で管理(停止起動やデプロイ)
    • 管理の方法
    • インストールが簡単
    • 自己増殖クラスタ
      • 1台のマシンで、インストール、設定、デプロイ等ができる

ライトニングトーク

Groovyの話とか、GroovyでJavaFXの話とか、ゴミ拾いSNSの話とか、アプレットでマルチウインドウ、GlassFish、Eclipse3.7、G1GCなどなど盛りだくさんの内容でした。
ノートPCのバッテリ切れでメモれず…

その他

  • 自分の知識のなさに愕然とした(まぁ、当然か)
  • 寝不足で昼からずっと眠かった…
  • Tシャツをもらった
  • 懇親会には用事があったので参加せず
  • 帰りに阪急梅田にある紀伊國屋で「プログラミングGROOVY」を衝動買い