Archives for 4月2012

第1回「PlayBayHack!」開催します

Playbay logo

第1回目「PlayBayHack!」開催します。

概要はこんな感じです。 参加してみたいなって方はATNDに表明おねがいします

概要

定期開催するPlay frameworkを中心としたハッカソンです。はじめてPlayに触れる人から、いろいろもういじりまくっている方まで対象です。セミナー形式ではないですし、ハンズオンみたいに手取り足取りみたいな感じでもありません。でもPlay frameworkをはじめて使ってみるって人にはチュートリアルの案内とかをしますよ。質問とかも気軽にしてください。作っててちょっとわからない部分とかは皆でシェアしたりします。また、昼の部とかを500円で利用できるコワーキング的な場所として使っていただいてもOKです。

ハッシュタグ

playbay

※当日、会場に参加できない人は、遠隔地にて一人ハッカソンや別会場ハッカソンをしていただいても構いません。上のハッシュタグを使って「こっちでもやってるでー」的な宣言をして自由にお使いください。

日時

4/12(木曜日) 午後13:00-午後21:30

途中参加も途中退場も自由です。1時間だけの参加とかもありです。

イベントの流れ

午後13:00-午後18:00 … 昼の部 午後18:00-午後21:00 … 夜の部 午後21:00-午後21:30 … ブログ書いたり成果発表をちょっとしたり

参加資格

初心者、上級者は問いません。PlayFrameworkに興味のある方なら誰でも歓迎です。ただし、騒いだり、人に迷惑かけたりするとかはダメですので節度を守ってご参加ください。

  • PlayFrameworkを使っている方
  • PlayFrameworkを使おうと考えている方
  • PlayFrameworkどころかJavaも触った事がない方
  • PlayFrameworkどころかScalaも触った事がない方

PlayFrameworkをメインとした会ですが、普通のハッカソンですので、WebSocket界隈(JettyとかNode.jsとか)、あと他のMVCフレームワーク使いの方も来ていただいて結構です。

参加費

500円 ※想定している会場は、会員制のラウンジです。会員以外の人も同席させたい人がいる間は同伴料を支払う事で利用できる制度を使っています。

参加方法

ATNDのページより表明ください。参加できなくなった場合はキャンセルをお願いします。

連絡先

@kara_d までどうぞ

場所

パズル芝浦

〒108-0023 東京都港区芝浦3丁目14−19 大成企業ビル6F 03-4590-1505 ‎


大きな地図で見る

Read More

JavaOne TokyoでPlayFrameworkとWebSocketのことを話してきました

Javaone top

JavaOneは、Javaに触った事がある人なら一度くらいは耳にしたことがあるイベントなのではと思います。最近は海外での開催は行われていても、日本では行われていませんでした。今回の開催はじつに7年ぶりだとのことです。Java EEがあまり盛り上がっていないのかそうでないのかは、よくわかってません。

7年ぶりの開催ということで、開催前からいろいろな募集が行われていました。1つは「Call for Paper」というもので、JavaOneで行われるセッションのうち、いくつかを一般公募によって決定するというものです。

ちょうどその時、PlayFrameworkとWebSocketのイベント(【エンジニアカフェEvent】 PlayBay – PlayFramework+WebSocket勉強会)を開催しようとしていた時でもあり、PlayFrameworkとWebSocketについてもし話す機会があれば活用したいと考えていました。

「Call for Paper」では、講演タイトルや、企画内容などを記述して、提出をします。結果は、後日個別に発表される仕組みです。

採用されるかどうかどきどきしながら待っていましたが、無事採用されました。

Javaonew

タイトルは、「PlayFramework 2.0 JavaとWebSocketでつくるリアルタイムMVC Webアプリケーション」という感じに最終的に決まりました。最終的にとつけているのは、JavaOneの頃はまだPlayFramework 1.2.4が最新だったので、企画内容自体も1.2.4ベースで進んでいたからです。

その後3月末にかけてPlayFrameworkをとりまく状況は大きく変わりました。バージョンが1.2.xから2.0になるということはそこまで大きくないように一般的なフレームワークでは思えたりしますが、PlayFrameworkは、JavaのフレームワークからScalaのフレームワークへと大きく変革が起きたのです。フレームワーク内でコアの使用言語が変わるという事はあまりないことでしょう。

そういった変更をうけて(もちろん、いつか2.0になるということ自体は前々からわかっていたので、ソースなどは見てはいましたが)スライドの内容を大幅に変更して2.0をベースに変えました。

セッション内容

Javaonesp

セッション内容のアウトラインはこんな感じです。PlayBayでやった内容も一部含まれています。PlayFramework自体の内容が加わったのと、Play2.0ベースの内容になった点が異なります。

  • Play Frameworkとは
  • Play 2.0 Overview
  • リアルタイム通信サーバのこれまで
  • WebSocketとは
  • WebSocket未対応ブラウザへ
  • PlayFrameworkとWebSocket
  • Play 1.2.4のWebSocket
  • Play 2.0のWebSocket
  • サンプル:Reversi
  • F.javaの話

スライドについては、OKが出たら一般公開しようと思っています。

サンプルについて

Reversi capt

サンプルは、WebSocketを使って五目並べの盤を再現するというものです。WebSocketを使ったユニークな点としては、五目並べをしている相手のカーソルが随時確認できる点で、思考の流れを相手も見たりする事が出来ます。
このサンプルは、実際にWebSocketアプリケーションを作っていくための構築手順と共に解説しました。手順は以下のような感じです。

  • Playアプリケーションの作成(MVC)
  • メッセージフォーマットの設計
  • イベントモデルの設計
  • コントローラ、モデルの作成
  • ルーティングの作成
  • ビューの作成

WebSocketはどこで役に立つのか?

また、最後にまとめとして、皆で考えたいお題をシェアしました。
1つは、「WebSocketはどこで役に立つのか?」という話

  • ログイン以降は、ユーザーによる細かな操作が続くAjaxで行ってきた部分の上位バージョンとして
  • ブラウザで閲覧中にリアルタイム通信が必要なとき
  • 業務アプリなど、利用人数が限られたサイトでのレスポンスの向上
  • Pushstate(Pjax)と組み合わせてみよう

今後の研究課題

もう1つは今後の研究課題です。PlayFrameworkはWebSocketがサポートされましたが、MVCフレームワークのような確固たる機能としては構成されていません。その証拠に、1.2.4では、WebSocketControllerという形でコントローラーでハンドリングしていた部分がモデルに移動したりしています。
いろいろなベストプラクティスを考えていきたいです。

  • 既存の通信手段とのパフォーマンス比較
  • 認証がからむケースのセキュアなWebSocket
  • WebSocketのデータを保存のベストプラクティス
  • イベントの登録管理をもっとスマートに
  • PlayにおけるWebSocketの負荷の調査
  • サーバー構成の研究
  • ネームスペースの実装

サンプルコード

最後になりましたが、GitHubにあげたサンプルコードのURLを掲載しておきます。
https://github.com/karad/PlayWebSocketReversi

会場では、バッグや、

Javaonebg

T-シャツがゲットできました。

Javaonet

ありがとうございました!

Read More