Java Day Tokyo 2016に行ってきた
5/24(火)に東京マリオットホテルで行われたJava Day Tokyo 2016に有休決めて行ってきたのでメモ。
あくまで自分用に書いているので箇条書きです。
Togetterのまとめもあります。
Innovate, Collaborate, with Java
- 会場は20代が1/3、30代が1/3とのこと
- 色々なところでJava使われてますよという話
- JCP(Java Community Process)について
- 開発者向けにJava Magazineというのを発行している
- Javaが今後取り組んでいくのはセキュリティ、これはクラウドでの活用を見据えて
- 起動速度やGCの改善を行っていく
- Java 9
- 大きな変更点はProject Jigsaw
- ライブラリの依存関係を記述して必要なものだけを組み込めるようにする(超ざっくり)
- Project Jigsawについて詳しく知りたければITProの@skrbさんの連載記事を見た方がよさそう
- その他にJShellによるREPL環境の実現
- JShellについてはJJUG CCC 2016 Springで@bitter_foxさんが発表されている
- JJUG CCC 2016 Springでjshellの発表してきた #jjug_ccc - きつねとJava!
- 更にJava 9の先にProject ValhallaとProject Panamaが進行中
- 大きな変更点はProject Jigsaw
- NetBeans
- HTML/CSS/JavaScriptの開発に対応
- 見た目が完全にIntelliJなのですが
- Java開発者はJavaScriptのコードを書くことが多い
- 変更した内容が即座にブラウザに反映される(まーIntelliJでもできますが。。。)
- Jigsawを試すこともできる
- Java EE
- 感想
- モジュラリティ(Jigsaw)とマイクロサービス推しまくり
- マイクロサービスといえばSpring Bootなのだが、Java EE 8でマイクロサービスってどうなの?
損保ジャパン日本興亜のJAVA戦略
Twitter上ではライブレビュー状態だったが、お堅い保険会社のメインフレームの刷新にしては攻めている方だと思う。やりたいかと言われるとそこは丁重にお断りさせていただきます。
Night Hacking
- Stephen Chin氏(@steveonjava)とSebastian Dashner氏(@DaschnerS)のJava Japan Tourの活動報告
- Java Japan Tour | NightHacking
- Sebastianイケメン、これが世界のJavaデベロッパーか。。
- Ducatiのバイクで日本全国のJavaコミュニティを訪れている
- SebastianはJava Championになりましたって何?
- 詳しくはナイトセッションで
ドローンデモ
Introduction to MVC 1.0 (JSR 371)
- Software Technical EvangelistのDavid Delabassee氏(@delabassee)
- 最終日に空きが出たので登録したセッション
- MVC1.0はアクションベースのMVC
- JSRで標準化
- JSRの参照実装にOzarkがある
- MVCは新しいものではなく、25年以上使われている
- MVC
- Java EE 7の標準はJSF(コンポーネントベース)
- MVC 1.0はアクションベースMVCの選択肢を提供する
- リファレンス実装はOzarkというOSSがある
- アクションベースMVCは悪くはない
- 今あるものを活用できる
- JAX-RSが分かっていれば難しくない
- もっと知りたければOzarkを見る
- MVC Specification
- The Aquarium Blog
Java EE 7アプリケーションとWebセキュリティ
- @skrbさんのJigsawはすごい混みそうだったのでこちらにした(まーこっちも満席ですけど)
- うらがみさん(@backpaper0)と言えばJAX-RSとDomaだけど今回はセキュリティネタ
- イントラのシステムはセキュリティが甘くても致命傷にはなりにくい
- でも、仕様が変わって公開することもある
- ならば、最初からセキュアなコードを書いておけば要件が変わっても問題ない
- 但し、そこに掛けるコストは無視できない
- 対策することでコードリーディングのノイズとなることも
- フレームワークが対応していれば実装もなくノイズもない
- ビュー・コントローラで対応する場合は個別による実装が発生
- 但しビジネスロジックにはノイズは入らない
- その他
- ビジネスロジックで対応しなければいけないもの
- その場合でもInterfaceなどで切り分けるようにする
- 対策の基準
- XSS
- CSRF
- SQLインジェクション
- セッション管理の不備
- ファイル操作・パス名
- クリックジャンキング
- X-Frame-Optionsレスポンスヘッダを付けるだけ
- 但し、frameやiframeが無効になるためAjaxで使われていれば、そちらも無効になる
- 制限をDENYではなく、SAMEORIGINにすれば生成元が同じiframeは読み込める
- HTTPヘッダインジェクション
- Java EEだと自力でHTTPレスポンスを書き出すことが無いので対策不要
- メールヘッダインジェクション
- 対策もHTTPヘッダインジェクションと同様だが、意図しないヘッダを書き出すことはできる?
- ヘッダにセットしない、セット前にチェックする
- OSコマンドインジェクション
- 外部プロセスを起動することがないので省略
- バッファオーバーフロー
- 直接メモリを操作しないので省略
- アクセス制御
- アプリケーションによるところなので省略
- その他
- X-Content-Type-Options: nosniff
- Content-typeが設定されていないリソースに対して自動で判断する(IEの機能)
- このsniffを無効にする
- Content-Security-Policy
- 最強のXSS対策レスポンスヘッダ
- この対策でDOM型のXSSにも対応できる
- 任意のHTMLを書き出す脆弱性があったとしてもJavaScriptが動かない
- style-srcやimg-srcで個別に制約を設定できる
- X-Content-Type-Options: nosniff
- まとめ
- Java EEで対応しているものもあれば、自分で対応するものもある
- 仕組みを理解しないとなぜそれで防げるのか分からない
- 資料を読んで普段からセキュアなコードを書く癖をつける
- 感想
- 話としてはオーソドックスなセキュリティ対策
- こういうのを設計段階で決めておくと、リリース直前でセキュリティ対策が漏れていて炎上するみたいなことはなくなると思う
- SQLインジェクションでDomaに触れなかったのはOracleへの配慮かな?
- 話としてはオーソドックスなセキュリティ対策
コンテナとJavaとOracle JETによるアプリ開発ハッカソン
- Oracle Cloud Platform
- Application Container Cloud
- Oracle JET
- JavaScript Extension Toolkit
- フロントエンド開発用のJavaScriptライブラリ
- JET = 5 OSSs x Oracle
- Oracleが初めて主導で取り組んでいるOSS
- ソースはGitHubで公開
- Cookbookのページでサンプルをブラウザ上で編集して試すことができる
- デモアプリ
- ハンズオン
- デモアプリをローカルの環境で動かす
- 編集したデモアプリをApplication Container Cloud上でデプロイ
- ハッカソン
パネル・ディスカッション - Java Day Night Session with NightHacking Tour
- 日本のJavaコミュニティはとても熱気に溢れているが、質問が少ない
- Java Championはコミュニティへの貢献を評価されたリーダ
- 日本人は一人(@skrbさん)しかいない、アジアでも少ない、英語で発信していないから
- @skrbさんはLooking Glassで英語の発表をやっていたから推薦されたとのこと
- Java Championになるには
- JCPは今後、企業以外での参加も可能になるとのこと
- #てらだよしおがんばれ
- その後はStephen Chin氏によるRaspberry Piのプレゼン
- 忍者龍剣伝とか懐かし過ぎる
- halfnes emulatorをRaspberry Piで動かす
- ケースは3Dプリンタで作成
- 1日中参加していたのでこの辺は飛びました(Sorry Steven)
その他
- 展示コーナーにNightHacking Interviewのブースがあり、色々な人がインタビューを受けていました
- 皆さん英語で受け答えしていて素晴らしい
全体の感想
- 初のJava Day Tokyoとても楽しめた
- 1日中セッション聴くのは疲れるので初めてハンズオンに参加してみる
- 参加者が少ないのでゆったり座れた
- ハンズオンの会場は机、電源、Wifiあり:-)
- 後半はハッカソンだったが全く作れずに終了orz
- @cero_tさんや@kawashimaさんの発表も聴きたかったけど
- 満席セッションでも入れるみたいなので事前予約の意味があまりないのでは
- 昼は11:30-13:00だったのでゆっくり出来た
- 昼食は少し歩いて北品川商店街の「プサン」という韓国料理店
- JAVAおじさん問題
- 最前列で寝ているおじさんがいるというので、それは発表者に失礼だなと
- 参加料を取るようにすれば来なくなると思う
- 業務の一環(研修とか)で来ている場合、有料だと会社に書類(申請書や報告書)を提出しないといけなくなるはずで、そうなれば面倒で来ないだろう
- 本当に来たいと思う奴は有給休暇取ってでも来るし、自腹でも来る
- Java Day TokyoとJJUG CCC(あくまで個人的な意見です)
- Java Day TokyoはJavaの最新動向をキャッチアップするところ
- JJUG CCCはJavaのフレームワーク、活用事例などをキャッチアップするところ
- セッションのバラエティはCCC
- 但し、Java Day Tokyoにもスポンサーセッションというのが設けられているので事例もある
- Java Day Tokyoはformal、JJUG CCCはinformal(発表者の立場という意味で)
- 会社として発表するのか、個人として発表するのか
- CCCの方がお祭り感(土曜だからなのかもしれないけど)があるし、純粋に楽しむならCCCがいいかもしれない
- ちなみに私はCCCに参加していませんが。。
- 前参加した時に、お目当てのセッションが立ち見状態なので心が折れた
- 何処が満席セッションなのか分かりづらい、分かっていれば第2候補とか第3候補を考えられる
- 土曜潰してまで疲弊したくないという極めて老害な理由
- CCCはでかくなり過ぎた感が否めない
- 昔の寂れた感じの方がよかったと言ったら怒られそうだが、その場の気分で好きなセッションを気軽に聴きに行くという感じではない