Sessions / JJUG CCC 2015 Spring(4月11日開催)

InformationTimetableSessionSpeaker

Registration

K-1 基調講演1 Java 20年史

河村 嘉之 (日本Javaユーザーグループ副会長)

1995年に誕生したJavaは今年で20周年を迎えました。
このセッションでは、Javaのハタチを記念して、皆さんと一緒にJavaの20年を振り返ってみたいと思います。

発表資料


K-2 基調講演2: Java SE 8 と Raspberry Pi

Stephen Chin (オラクルコーポレーション)

このセッションは、4000円位の安価な Raspberry Pi のインタフェースを利用して、趣味のプロジェクトから現実世界のプロジェクトまで幅広く活用するための情報をお届けします。本セッションでは、統合開発環境のプロジェクトやソースコードをご覧頂き、またいくつかのデモンストレーションを通じて概念をお伝えします。例えば、下記のようなデモをご覧頂きます。

  • Raspberry Pi の開封から Java のセットアップ
  • ライン追跡ロボットの作成
  • マジック・ハットを利用した NFC の構築
  • 3D プリンターを利用したカスタムなハードウェア

本セッションでは、ご自宅、もしくは皆様の会社で組み込みプロジェクトを作成するために必要な知識を身につける事ができますのでどうぞお越しください。そして、今お持ちの Java のプログラミング・スキルを IoT(Internet of Things)でも活用できるようになる事を想定しています。

Java 8 Embedded で今から将来を作り出していく事を初めてみましょう。


AB-1 社長が脱RDBと言い出して困りましたが、開き直って楽しんでいる話

井上 誠一郎(アリエルネットワーク/ワークスアプリケーションズ)

脱RDBという鶴の一声で始まったプロジェクトの話です。

個人的に、最初はRDB否定に対して否定的でした。

しかし、実際に業務分析を進めると、履歴管理された階層型データ、時系列で積み上がるイベントデータ、それらをバッチで分析したサマリデータの塊でした。

これを見て、リレーショナルモデルは最適なデータモデルなのか、トランザクション管理に見直す余地はないのか、と前向きに考えるようになりました。

そんな顛末を実データモデルを元に話します。

発表動画


CD-1 Javaにおけるnull。これまでとこれから

太一 (java-ja)

Javaによるプログラムを実行していると多く発生する例外がNullPointerExceptionです。このやっかいな例外と上手く付き合っていくためにはnullに対する理解が必要になります。

このセッションではJavaやその周辺技術におけるnullに対する理解を深め、現代的なJavaではnullをどのように扱うべきなのか議論の端緒となる情報を提供します。

Java初学者の皆様にはnullに対する適切な理解を、Javaを使い慣れた皆様には普段のコードを見直すきっかけを提供したいと考えています。

発表資料


F-1 だれも教えてくれないJavaの世界。あと、ぼくが会社員になったわけ。

きしだ なおき (LINE Fukuoka株式会社)

Javaの文法やライブラリなどの解説書はたくさん書店に並んでいます。Web上にもさまざまな文章がアップされています。しかし、わかる人には常識となっていてなかなか文章にされない情報もあります。そのような情報をまとめて、Javaについて深く広く知る助けになればと思います。

また、個人的な話になりますが、いつもは一般セッションで登壇していところ、今回はスポンサーセッションでの登壇になります。きしだがなぜ会社員になったのか、など気になっている人もいるのではないかと思います。ここで少しだけ、何を考えてLINE Fukuokaに就職したのかということもお話しようと思います。

発表資料


G-1 Java が支える人気ニュースアプリ NewsPicks の裏側

文字 拓郎(株式会社ユーザベース)

昨年 30 万ユーザーを超え、現在急成長中のニュースアプリ NewsPicks の裏側を Java で開発している話をします。1 年で 30 倍のユーザー数へと急成長した新規サービスの裏側で、Java を使ってどのように開発し、どんな課題に直面し、それをどうやって解決してきたのかという点について、実例を交えて等身大のお話が出来ればと思っています。

具体的には

  • アーキテクチャ編
  • 実装編
  • 現在の取り組みと今後の展望

に分けてお話させて頂きます。

アーキテクチャ編では、大規模サービスを支えるインフラやミドルウェアについて、そのアーキテクチャと直面してきた課題についてお話します。実装編では、急成長に伴いどのような問題が発生したのかをお話します。最後に、現在どのような取り組みをしており、今後はどのようなアーキテクチャへと進化させていく予定なのかをお話しようと思います。

発表資料


M-1 ロボットプログラミング体験教室 for JJUGメンバーJr.

渡辺 登 (株式会社アフレル)
本プログラミング教室の登録は別途専用サイトで募集しています。参加ご希望の方はコチラからご登録ください。
ロボットプログラミング体験教室 参加登録ページ

コンピューターは『つかう』だけでなく、『つくる』ことができます。お父さん、お母さんのお仕事は『つくる』ことです。今回のJJUG CCCでは、JJUGメンバーのお子さまを対象に、教育版レゴ マインドストーム EV3を使い、自律型ロボットを『つくる』プログラミング体験教室を開催します。

今回は時間が短いことや対象年齢を考え、Javaではなく、ブロックを並べるプログラミング環境を利用します。

・対象者:小学生3年生〜中学生、親子ペアで参加 【20組】
保護者は、ノートPCへのインストール後、別セッションへの参加も可能
・持ち物:ノートPC
*PC動作環境参照 800MB程度のHDD空き必要
・ワークショップ内容
・タッチセンサーでハンドル操作できる車をつくる!
・超音波センサーでぶつからない車をつくる!
・カラーセンサーでライントレースする車をつくる!
・ミニロボコンで競争だ!

・特別参加枠:
(株)アフレルからEV3を購入時は、大人だけの参加も可能です。
すでに購入済みであれば、ご自分のEV3を持ち込んでください。
新規購入希望者は、おまけ付き&講師が会場持ち込み
(新規購入希望者はお問い合わせください。〆切:4/7)


AB-2 Web開発における最新テスト手法

tokuhirom (subtech)

Web 開発において、テスティングが重要であることが知られております。

しかし、実際どのような手順でどういった部分に注力してテストを記述したらよいのかといった部分についての情報の共有が不足していると感じております。

実際、我々がどのようにテストを行っているか、といったことを実例を交えつつ、お話させていただければと思います。

特に、データベース、コントローラのテストなどについて情報交換させていただければと思います。

発表資料


CD-2 はまる!JPA(初学者向けライト版)

多田 真敏

Java EEの標準ORマッパー・JPA。

最近ではJava EE以外でも、流行のSpring Bootで利用されていたり、ORマッパーのデファクトスタンダードとなりつつあります。しかし、いざ始めてみると、何だかよく分からないけどとにかく挙動が想定と違う、間違えやすい「はまりポイント」がいくつか存在します。このセッションでは、僕のJava EE研修での経験を基に、初学者の方や僕自身がはまったポイントとその対策を、丁寧に解説します。JPAが初めてという方を対象としますので、JPAの基礎を解説しながら、ところどころで「はまりポイント」を紹介していきます。

はまりポイントの例:

  • マージ出来ません問題
  • 削除だけ出来ません問題
  • データ吹っ飛びました問題
  • ・・・など

発表資料


F-2 ほんとうに便利だった業務で使えるJava SE 8新機能

福田 雄貴 (楽天株式会社)

昨年Java SE 8がリリースを迎え、各種検証を経た上で、さっそくJava EE 7の実プロジェクトに導入してみました。

そのプロジェクトを終えたいま、使ってみて良かったな、と感じたJava SE 8の新機能についてご説明します。

発表資料


G-2 クラウド時代の Spring Framework

三宅 剛史 (Pivotalジャパン株式会社)

「Spring = DI/AOP フレームワーク」の時代を超えて、クラウド時代の今 Spring が目指す方向性と最新情報をお伝えします。

発表資料


AB-3 大規模な負荷でもドキドキしない為のJava EE

nagaseyasuhito (java-ja / グリー株式会社)

企業システムを始めとしたエンタープライズ向けと位置づけられるJava EEですが、本質は大規模で信頼性の高いサーバーアプリケーションを開発するためのプラットフォームです。

いわゆるSNSやソーシャルゲームなどコンシューマー向けのサービスのアーキテクチャも大規模化・複雑化している中、Java EEが提供する機能は非常に魅力的です。

このセッションではコンシューマー向けのサービスなどで培われた

  • JPAを用いた開発におけるデータベースのスケールアウト戦略
  • JUnitとJMeterクラスタで行うゲームサーバーの大規模負荷テストの自動化

など実践的なJava EE開発のケーススタディをご紹介します。

発表資料


CD-3 金勘定のためのBigDecimal入門。そしてMoney and Currency APIへ

宮川 拓 (JJUG幹事)

金額計算など、小数点以下の数値を正確に計算する場合には、double/floatではなくBigDecimalクラス(あるいはint/longによる固定小数点数)を使う必要があります。しかしその理由や、BigDecimalクラスの使い方は、把握できていない方が多いようです。

そこでこのセッションでは、 (1) なぜdouble/floatを使ってはいけないのか、使うと何が起きるのか (2) BigDecimalクラスの考え方と使い方 (3) BigDecimalクラスのハマりポイント について解説します。

また、Java SE 9に含まれる予定のMoney and Currency APIについて、簡単に紹介します。

発表資料


F-3 GS CollectionsとJava 8:実用的で流暢なAPIで楽しい開発を!

伊藤 博志 (ゴールドマン・サックス)

昨年Java8がリリースされて以来、開発者コミュニティでは新機能の活用に盛り上がりを見せていますが、Javaの開発にGS Collectionsを組み入れることで、さらなる生産性、メモリ使用量の削減とパフォーマンスの改善が期待できます。本セッションでは、GS Collectionsを用いてJava 8で導入されたラムダ式やメソッド参照などの新機能を最大限に活用する方法を紹介します。また、GS Collectionsが生まれた背景、Stream APIとの比較、メモリの削減を実現したMapやSetの実装等も紹介していきます。

本セッションは、2014年のJava Oneで好評を得た”GS Collections and Java 8: Functional, Fluent, Friendly, and Fun!”の日本語での再演となります。

発表資料


G-3 新人エンジニア奮闘記「Javaって何?からwebサービスを公開するまで」

荒井 利晃 (株式会社ビズリーチ)

私は2014年にITベンチャーにエンジニアとして入社しました。
理系の大学院出身でしたが、学生時代はとにかくプログラミングから逃げるように過ごしてきました。
入社後の研修ではJavaでif文やfor文の書き方を学んでいたという見事な初心者っぷり。

そんなJava初心者の私が、2ヶ月でwebサービスを開発し、公開するというプロジェクトにチャレンジしました。
数々の困難を乗り越え、何とか「ニクリーチ2016」というwebサービスを公開。

当セッションでは

  • 入社後どのような研修を受けたのか
  • ニクリーチ2016ではどのような技術を使ったのか
  • 一人開発プロジェクトを通して感じたこと

など新人エンジニアが一年間でどのように成長したのかをお話をさせていただきます。

発表資料


M-3 HeapStats: Javaトラブルシューティング ハンズオン

久保田 祐史 (日本電信電話株式会社)

IcedTea コミュニティで提供している Java 障害解析支援ツール HeapStats の機能紹介とハンズオンを組み合わせたセッションです。

Java のトラブルシューティング(障害解析)で困られてる方、HeapStats を聞いたことはあるけどどうやって使ったらいいか困られている方、実際に使ってみたい方、どなた方も是非ご参加ください。

前半は HeapStats の機能の紹介、後半はハンズオンとなります。後半のハンズオンにご参加される方は以下をご持参ください

  • 以下をインストールした十分に充電した PC
    • Linux (RedHat / CentOS / Fedora / Debian)
      • Windows PC でも参加は可能ですが、一部作業(情報収集パート)が行えません。
    • Oracle JDK7 以降、あるいは OpenJDK 7 以降
    • (Linux 系の場合) net-snmp, pcre, binutils ライブラリ
  • (あれば)解析したい Java アプリケーション

前後半何れかのパートのみのご参加でも問題ありません!

より詳細な準備内容を以下に掲載しました。後半のハンズオンに参加される方は、当日前に一度ご覧ください!
https://gist.github.com/ykubota/67c7f07dd93ef4a4c0f9


AB-4 クリスマスを支える俺たちとJava

阪田 浩一 (フリュー株式会社/関西Javaエンジニアの会)

プリントシール機(いわゆるプリクラ)が、話題になった10年以上前のころと変わらず若い女性に利用されていることをご存知でしょうか?

私が所属するフリュー株式会社は、プリントシール機(プリ機)を出している会社です。そしてWebにてプリ機と連動して画像を取得するサービスを提供しています。実はこのサービス、会員数が1000万人を超えており、女性で特定の年齢層であれば90%以上の方が会員となっています。

JavaとRDBMS、分散ファイルシステムMogileFSにて構築したこの少し古いWebアプリケーションは、当初ここまでの規模になるとは想定していませんでした。

スーパーエンジニアがいない普通のエンジニアチームが、この数年間で増加する会員数とともにぶち当たった問題とその解決策についてご紹介します。

発表資料


CD-4 『Embulk』に見るモダンJavaの実践的テクニック ~並列分散処理システムの実装手法~

なひ (トレジャーデータ株式会社)

『Embulk』は、異なるファイルフォーマット、異なるストレージ、異なるサービスの間でデータを同期・転送するための並列バルクデータロードツールです。分散処理、レジューム機能、トランザクション制御などによる高い信頼性と、プラグイン型のアーキテクチャによる高いカスタマイズ性を特徴としています。

その実装は、新しいオープンソースプロジェクトであるという利点を活かし、Guava、Guice、Jetty 9などのライブラリを最大限に活用し、コンポーネント間の疎結合化を実現しています。また分散システム特有の問題となるオブジェクトのシリアライズは、Jackson databindによって宣言的な実装を可能にしています。

本セッションではEmbulkのアーキテクチャとその実装手法を紹介します。

発表資料


F-4 Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの実力

田中孝清(日本IBM)

WebSphere Application Serverの新しいランタイム「Libertyプロファイル」は、高速・軽量な次世代のアプリケーションサーバー。だれでも簡単にダウンロードできてすぐに使い始められるお手軽な、それでいて高機能なJava EEサーバーです。

カーネル上に各機能がFeatureという単位でモジュール化されており、必要な機能を自由に取捨選択し、またRepositoryサイトから追加することができます。

まもなくJava EE 7対応版も公開されるLibertyプロファイルの機能の詳細について、また各種OSSフレームワークやツールとの連携についておつたえします。

発表資料


G-4 あなたとAndroid!? 今すぐダウンロード!〜Android開発で変わる SIerのJava技術事情について〜

こざけ(ほげ駆動 / 株式会社 第一コンピュータリソース)

昨今では、エンタープライズ業界においてもタブレットを用いた業務改善への取り組みが盛んです。そんな中、SIerにおいてもAndorid開発への需要が高まっています。 今までの社内Webシステム開発とは異なる視点でのシステム要望が多く、設計や技術方式、開発環境においてもそれとは異なります。

システム要望の例としては、

  • GPSセンサーを用いた地図システムとの連携
  • カメラで撮影した写真の活用
  • 現場におけるモバイルプリンタでの帳票印刷

などが上げられますが、それぞれにおいて設計や技術方式にハマりどころがあります。

また、エンタープラズシステムにおいては、基幹システムとの連携が必須となるため、WebAPIの知識が必要となることや、Android StudioというEclipseとは異なるIDEを用いた開発が必要となります。

本発表では、僕が実際のAndroid開発現場で経験した知見や大変さ、そして楽しさなどをお伝えできればと思います。

発表資料


F-5 Lambdaでフレームワークは変わる、Java8専用DBFlute

久保 / jflute (株式会社ビズリーチ)

Java8で導入されたLambda式、そのインパクトはフレームワークにも波及しています。

DBFluteでは、Java8専用のバージョンをリリースし、Lambda式を「ふんだんに」使うことを前提にしたインターフェースを提供しています。

逆にLambdaが書けないとDBFluteが使えないという事態に…ということで、Java8をみなさんにもっと知ってもらおうと、LambdaやOptionalなどをDBFluteを題材にして、ライブコーディングを中心に紹介していきたいと思います。

実際にJava8が採用された開発プロジェクト秘話も話せればと。(DBFluteを知らなくても、勉強になるセッションにしたいと思います)


G-5 Grails 第3章 進化したSpring-bootベースフレームワーク

山本 剛 (日本Grails/Groovyユーザーグループ, newcast inc.)

SpringフレームワークをベースとしたWebアプリケーション開発プラットフォーム”Grails”、最初のリリースから8年ほど経ち、最新のGrails 3からはspring-bootをベースに変更され、以前より増してより迅速で柔軟な開発が可能になりました。Grailsの持ち味であるCoCやモジュラー開発とマイクロサービスを得意とするspring-bootのコラボが産みだした今後のWeb開発の可能性を解説します。

発表資料


M-5 プログラミング言語Clojureのニャンパスでの活用事例

太田 正悟 (ニャンパス株式会社)

プログラミング言語ClojureがJVM上のLispとして生を受けてから今年で8年。海外での活用事例は年々数も多くなり、また大規模なシステムへの適用も目にするようになってきましたが、日本での事例は依然数えるほどしかないのが現状です。

本セッションでは、ニャンパス株式会社におけるClojureの活用事例として、Webアプリケーション開発への適用や、社内および運営コワーキングスペースでのコミュニケーション開発事例について、Clojureの言語としての特徴に触れながら紹介します。

発表資料


F-6 いろんなデータをKibana4で見てみよう

大谷 純 (elastic.co)

Kibana4で様々なデータを可視化するところをデモをしながら説明します。また、データを取り込む際に気をつける点やKibana3との違いについても説明します。アクセスログやツイートなどなど、いくつかのデータを用いたデモになる予定です。

発表資料


G-6 Java開発の強力な相棒として今すぐ使えるGroovy

中野 靖治 (JGGUG/NTTソフトウェア)

最近Android方面やGradleのビルドスクリプト記述言語として注目されているJVM言語、Groovyの基本的な文法/機能から応用法までを紹介します。

応用例としては色々ありますが、今回は開発時に必要となるテスト用データ生成(RDBMS/Excel連携)やWebスクレイピングなどの開発支援スクリプトとしての活用法をご紹介します。これは「小人さんスクリプト」と呼ばれるGroovy導入パターンの一つです。Groovyは、たとえメインプログラミング言語として採用しなくても、そのパワーを十分に開発案件に活用できるのです。

発表資料


M-6 MQTTの使いどころ 〜軽量プロトコルで低コストにデータを集めよう〜

遊佐 浩史 (株式会社アルゴ)

MQTTとはTCP/IP上で動く軽量なPubSub型プロトコルです。

去年9月には、MQTT3.1.1がOASIS標準に承認されました。マイナーバージョンアップですが実用に向けた修正がおこなわています。

このセッションでは、MQTT3.1.1の概要と実際にJava OSSを組み合わせてスマートフォン・Raspberry Pi・センサーネットワークからデータを集める方法やチャット・通知などの応用について説明します。

発表資料


F-7 JobStreamerではじめるJavaBatchクラウド分散実行

川島 義隆 (TIS株式会社)

EE7で規格化されたJavaBatchですが、実運用で使うにはスケジュール機能が無いとか、Job定義を書くのが難しいなど課題があります。そこで、JobをWeb上のGUIで組み立て可能で、スケジュール実行やログ収集が可能なJavaBatch実行基盤JobStreamer (http://job-streamer.github.io/)を作りました。

せっかくなので、クラウド上にジョブサーバを並べて設定レスで分散実行する仕組みや、WebSocketClassLoaderを使ったデプロイせずともジョブを実行する仕組みを標準装備し、クラウド時代のジョブ管理システムのスタンダードを目指して開発を続けています。

このセッションを通じて、あなたも明日からJobStreamerを使ったJavaBatchのクラウド分散実行を始めてみませんか?

発表資料


G-7 JavaFXグラフィックスとアニメーション入門 デスクトップにアナログ時計を出してみよう

高橋 徹 (Java読書会BOF)

JavaFX 2.0が2011年後半に登場してから3年が経過しました。最初はJava SE 7にバンドルされる形態で、昨年春にリリースされたJava SE 8では標準APIとなりました。しかし、日本では日本語の入門情報が少ないこともあり、JavaFXの敷居が高く感じられる状況です。

そこで、本発表ではJavaFXが得意とするグラフィックス、アニメーションを織り混ぜた簡単なアナログ時計プログラムの作り方を紹介し、JavaFXに興味を持ってもらい、プログラミングの敷居を下げることを狙いとします。アナログ時計のグラフィックスでは、画像を使う方法、描画APIをコードから呼び出す方法、SVGデータを使う方法の3通りの実現方法を紹介します。
このセッションを聴講し、ご自身でもJavaFXのプログラムを作ってみるきっかけになれば幸いです。

発表資料


M-7 Javaによる専用ハードウェア開発を夢見て.Synthesijerのこれまでとこれから調整中

三好 健文 (わさらぼ合同会社)

「ムーアの法則によるプロセッサの進化は終わり」「フリーランチの時代はおしまい」,と叫ばれながらも長い時間が経ちました.依然としてプロセッサは速くなっていますが,一方で,FPGAを使った専用ハードウェアがデータセンターに投入される事例にみられるような,これまでとは異なるアプローチも市民権を獲得しつつつあります.

FPGAによる専用ハードウェアは,うまくハマれば,高速にアプリケーション処理やI/O処理ができます.しかし,一般にFPGA上のハードウェアはハードウェア記述言語で記述する必要があり,開発は簡単ではありません.

Synthesijerは,開発コストの削減を目指してJavaによるFPGAアプリケーション開発を夢見るコンパイラです.本発表では,Synthesijerを使ったアプリケーション開発手法と,これからの展望について紹介します.

発表資料