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

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

PrimeFaces FileUpload component doen't work on Embedded Glassfish.

GlassFish オフライン

Now, I'm developing offline web system after finishing developing online web.

I had experience once. I wrote following posts about how I developed offline web before.But these are Japanese.

kikutaro777.hatenablog.com
kikutaro777.hatenablog.com

This time, I found some strange behavior.

In this system, we use PrimeFaces FileUpload component. The version of PrimeFaces is 5.2. Of course it works fine on GlassFish.

But, unfortunately, it doesn't work on Embedded GlsasFish :q

I don't understand what happened inside and what is different between GlassFish and Embedded GlassFish.

I checked the document of PrimeFaces. Really appreciate the good document.

http://www.primefaces.org/documentation

The document explained there are three options for FileUpload component.
auto / native / commons.

The default mode is auto.

PrimeFaces tries to detect the best method by checking the
runtime environment, if JSF runtime is at least 2.2 native uploader is selected, otherwise commons.

I tried to use the option "native", but nothing changed.
After that, I tried "commons".

Finally, it worked on Embedded Glassfish !!!

The explanation of the document about "Commons" is following.

This option chooses commons fileupload regardless of the environment, advantage of
this option is that it works even on a Servlet 2.5 environment.

I still don't understand what happened inside... anyway, it's good for us now.

de:code2016の西脇さんプレゼンが凄かった…

Microsoft de:code

今日はプリンスパークタワー東京で行われた日本マイクロソフトさん主催の開発者向けイベント「de:code2016」に参加してきました(^^)!

f:id:kikutaro777:20160524225152j:plain
https://www.microsoft.com/ja-jp/events/decode/2016/

仕事ではもっぱらJavaなので、本来は同日開催のJava Day Tokyoに参加するべきところですが…(^^;;

  • 趣味でXamarinを触ってて、VisualStudioでC#を書く機会が増えつつある
  • 最近のMicrosoftは色々と面白い
  • サティア・ナデラさんがキーノートされる
  • 西脇さんのプレゼンが初めてみれる!

などなどあって、JDTは会社後輩にまかせて、自分はde:codeを選びました。

費用は先行割引でも7万ほどで、中々あれですが(半分趣味なだけに)自費で参加(>_<)

各セッション面白かったのですが、今日一番興奮した西脇さんのセッションについて書きたいと思います。

本イベントは開発者向けなので、一般や学生の乃木坂ファンな方々は中々参加の機会がないかなと思います。

ただ、内容的には普段ラジオの「エバンジェリストスクール!」を楽しんでる方なら同様に楽しめるものだと思うので、少しでも伝わるように、まとめてみます。

マイクロソフト最新テクノロジと魅力あふれる未来像

セッションのタイトル通り、以下のテーマについて、それぞれ最新テクノロジを交えながらの怒涛のデモでした。

  • ウェアラブルデバイス
  • ロボティクス
  • 自動車
  • 鉄道
  • 船舶
  • 無人航空機
  • 人・人工知能

エンジニアの端くれな自分からみても、1つ1つのデモの完成度が非常に高くて、普通のセッションだったら1,2個だけでも満足してしまいそうなレベルのものが立て続けに出てくるので圧倒されました(^^;さすがにこの臨場感・興奮は生じゃないと伝えきれない気がします。

写真撮影OK

ちなみに他のセッションは基本的に写真撮影禁止だったのですが、本セッションは写真撮影OKとのこと(^^)!

カメラ持って行って良かった!

こうした心意気も胸熱ですよね。

Twitter

そして、積極的にTwitterでつぶやいて下さいとのことで、なんと、ハッシュタグをつけておくと、リアルタイムにプレゼンモニタにツイートが流れるという!(^^;ニコニコ動画ちっくな感じで面白すぎでした。

写真撮りましたが、こんな感じです。上の方に出テル白い文字が参加者のツイッターw

f:id:kikutaro777:20160524232247j:plain

自分は最初に

とつぶやいたのですが、プレゼンの中で「お、乃木坂ファンも」と少し触れて頂いて、超興奮しましたw

以下、ハッシュタグのリンクです。すごい量のツイートが出てきます(^^;

twitter.com

某アイドルは登場しません

エバンジェリストスクール!のアシスタントでお馴染みの乃木坂46 若月佑美ちゃんがお忍びあるいはサプライズ登場、とかうっすら期待したりなんかもしてましたが(^^;笑

来ませんよー、とスライドにもしっかり文字がw

ちなみに若月さんやエバンジェリストスクール!をご存じないITエンジニアの方は以下をどうぞ。

kikutaro777.hatenablog.com

ウェアラブルデバイス

ウェアラブルデバイスは身に着けて利用するデバイスのことですが

ウェアラブルコンピュータとは|ウェアラブル端末|ウェアラブルデバイス - 意味/定義 : IT用語辞典

セッションで利用されたのは「Microsoft Band2」でした。

f:id:kikutaro777:20160524234220j:plain

このデバイスによって汗の量や心拍数などを拾えるとのことですが、そのデータがリアルタイムに画面へ(^^;

なんともサラッと出されてますが、エンジニア的には、どーやってんだろ、と。

そして仕組みの紹介。ラズパイソラコムSIMつけてAzureに蓄積。そしてMotion Boardで表示と。

f:id:kikutaro777:20160525000608j:plain

MSだけでなく、他社製品・サービスまで活用してる辺りが熱い。

そして、現実的な話として、海外での在宅医療のケースに関して紹介されていました。

心拍数や体重(体重は体重計にセンサー入れて)などの情報を定期的に送り、その人の過去の情報(投薬とか)を機械学習も利用して、治療が必要そうな患者さんを抽出したり。そんなことができる世界になっていると。

ウェアラブルの実用化、ってどんなだろうーとボンヤリしてましたが、医療とITのこうしたデモをみると、なるほど。と実感。

ロボティクス

ロボティクスの所では、Palmi(パルミ―)君とPepper君が登場。

Palmi君
robots.dmm.com

Pepper君
www.softbank.jp

Palmi君が受付担当するデモでは、西脇さんの認証から始まって「新エバンジェリスト養成講座で有名な西脇さんですね」みたいな喋りを披露。肩書きまでしっかりw

そしてOffice365Skypeとの連動まで(^^;すげー

さらに、飲み物のオーダーを取るPalmi君が

「お茶の方は何名ですか?」

「コーヒーの方は何名ですか?」

と聞き、それぞれ答えると

なんとExcelの明細書が速攻で画面に表示www

Office365のExcelと連動してるとのこと。すごすぎる。

一方のPepper君は、同じように会話から始まり、デモでは西脇さんから

「Pepper君、この辺りを見守りしててね」

とお願いすると、「見守り中」と胸に表示しながら、シュールな音楽を鳴らして踊りながら監視するPepper君(笑

そして、見守ってたエリアに突然スタッフの人が来て、机にパソコンを置いて去っていきました。

しばらくして西脇さんから「Pepper君、何かあった?」と聞くと

「誰か来ました」

「テーブルにパソコンとリンゴが置いてある」

と!!で、リンゴなんて置いた???と思ったら、そのノートパソコンがMacintoshで、確かにリンゴマークがwwww

会場、大爆笑!

もう面白すぎるw どこまで仕込みなのか全然わからない(^^;;

なんか、2001年宇宙の旅とか手塚治虫さんが描いていたロボット社会の世界がすぐ目の前にあるように感じましたね(^^;お店でオーダーを取る日もマジで近いんじゃ…。

自動車

Pepper君デモの後半で、突然、車のクラクションがなったのですが、前に置いてあるテスラの車から。

f:id:kikutaro777:20160525003837j:plain

誰も車には乗っていないのですが、なんとBandから鳴らしたとのこと!

さらに、車のカギの開け閉めまでMicrosoft Band2からできるという。近未来半端ない、と思いきや、全然未来じゃなく今の話っていう(^^;

通常、ガソリンが入ってるような車をイベント会場に持ち込むのは消防法とか色々とあって大変とのことですが、このテスラは電気自動車でガソリンはないのでコンピュータ扱いで搬入可能らしい。
また、バッテリーも一般家庭の電気1週間分くらい積まれているらしいです。

さらに驚きなのは、このテスラをSurfaceからコントロールできるという。。。C#やJavaを使ってアプリを作れるらしい。すごすごるw

f:id:kikutaro777:20160525004637j:plain

イベント終了後に撮ったものですが、車のなかはこんな感じ。

f:id:kikutaro777:20160525004528j:plain

さらには、車の走行経路の履歴を地図上でトレースできたり、周辺の充電スポットをアプリで表示したり(しかも、これXamarinでマルチプラットフォーム)と何でもござれ(^^;

鉄道

続いては鉄道の話になって、立派なジオラマが登場。

f:id:kikutaro777:20160525005100j:plain

鉄っちゃん必見なデモ感w

ジオラマに設置された線路に、Nゲージが走るというものでした。

そのNゲージをタブレットを利用して、走行スピードを上げ下げしたり、音や方向を変えることが可能という!(このアプリもXamarin利用)

単純にNゲージとタブレットが通信してるのかと思いきや、線路のほうにセンサが埋め込んであって、電車の位置を把握し、Azureを介しているとのこと!ひえー

f:id:kikutaro777:20160525005548j:plain

そんな通信してるようにみえない速さで反応してたのでびっくりしました。

船舶

電車の次は船!

自分は全然しらなかったのですが、東京湾って船の数が多く、入港・出港する船の出入りが大変とのこと。

船舶の位置情報はオープンになっているとのことで、そこから情報を抽出し、進路の予測をして、船の衝突などを防いでいるシステムを既に作られているとのこと。

f:id:kikutaro777:20160525005839j:plain

実際の動画も流れていましたが、可視化はPowerBIなど利用しているとのことで、本当にうまくマイクロソフトのテクノロジーが繋がっているなと。

無人航空機

そして、いよいよドローンの話へ!

ドローンについてはエバスクでも話がありましたよね(^^)なぜドローンと呼ばれるのか?とか。

今回のセッションではさすがに実際に飛ばすことまではなかったのですが、Windows 10対応のドローンがあることにびっくり(^^;

f:id:kikutaro777:20160525010815j:plain

ドローンを飛ばしているときの状態もリアルタイムに監視できるとのこと。ここでもPowerBIを使った可視化でした。

f:id:kikutaro777:20160525010926j:plain

人・人工知能

そして最後は、人工知能の話と関連して、りんなちゃんを使ったデモ。

rinna.jp

個人的に大ウケしたのは、りんなちゃんの会話をみせるために表示した西脇さんのスマホ画面

f:id:kikutaro777:20160525011245j:plain

この辺り「さすが乃木坂46エバンジェリスト…」と(^^;笑

りんなちゃんとの会話デモも面白くて

「犬の画像を送ってみましょう」

と「柴犬」の写真を送ったり「チワワ」の写真を送ったり

すると、りんなからは絵に文章が入った画像が返ってきつつ「かわいい」みたいなコメントが返ってくる。

「柴犬だね」とか、そういう回答ではなく、コミュニケーションが続くような会話になっている。

この辺が単なる「アシスタント」との違い。なるほど。

f:id:kikutaro777:20160525011748j:plain

さらに「ここで一句」とか送ると川柳を返してきたり(^^;

最後、圧巻だったのは、音声データを送ったときの反応!

デモでは、テレビのNHKをみせたり、TBSのNスタの音声をりんなちゃんに送ると、しっかり識別して返してくる!!!

f:id:kikutaro777:20160525012052j:plain

f:id:kikutaro777:20160525012059j:plain

仕込みとかでは全然なくて、なんと、MSのデータセンターでは地デジのデータをまるまる蓄積していて、そこからリアルタイムマッチングしてるとのこと。マジかよーーー!

もう圧倒されっぱなしでした。

最後に

最後のスライドでは、1905年のNYと、1925年のNYの街並み写真を出されて

この差の20年で、馬が車へ代わり、街に車が溢れるように変貌していました。

当時、車が出たころに「この技術革新で、職業がなくなる!(馬の世話をしていた人など)」と騒ぐ人々もいたようですが、結果的には車の登場によって、駐車場とかガソリンスタンドとか車の部品を売るとか、様々な仕事が生まれたと。

つまり

「技術革新についていった人は職業を変える」

とのこと。

そして

「プログラミングができる人は職業がなくなることはありません。」

との言葉も。

デモに圧倒されたあとの、この静かな言葉がとても心に響きました。

今日、このセッションへ参加して、生でプレゼン・デモをみれて本当に良かったなぁと思いました。

de:codeは明日も(既に今日だ)あるので、楽しむぞー。

ちなみに、セッション内でのツイート数が集計される仕組みで(これもすごいけどw)1位だった方はなんとテスラの1日試乗券!超豪華(>_<;

2位の方はMicrosoft Band2をもらえるという最後の最後まで、おもてなしがすごいセッションでした(^^)

TravisCIでGitHubからOpenShiftへデプロイ

OpenShift Travis CI Jenkins

OpenShiftでは、Gearを作成すると、デフォルトでGitのrepositoryを作ってくれるので、ソース管理はとても簡単です。
今回は、既にGitHubで管理してるコードをOpenShiftにデプロイしたいなぁと。

以下のStackOverflowに色々情報が詰まってる感じ。
stackoverflow.com

せっかくなのでCI使ってローカルコミット->プッシュ->ビルド->デプロイができれば嬉しいなぁと思いはじめ、CIも一緒に試すことにしました。

Jenkins

OpenShiftでは構築したGearをCIしてくれるJenkinsを簡単に作れますが、Gearを1つ使ってしまうので、無償枠で遊んでる分にはちょっとなぁ、と。

Circle CI

そういえば今までWebサービスのCI使ったことないので、せっかくなのでCircleCIを試してみました。

GitHubとの連携は超簡単なので、すぐビルドはできましたが、OpenShiftへのデプロイ方法がわからず。。。調べた所、頑張ればできそうだけど。。。みたいな。

Travis CI

ぬあー、と悩んでたところ以下@grimroseのエントリを発見!簡単そう。

grimrose.bitbucket.org

試したところ、簡単でした(^^;

上記のエントリには「ユーザ名とパスワードをtravisに設定するところが気になるところですが」という記述がありましたが、パスワードは簡単に暗号化できる仕組みが用意されていました。

Encryption keys - Travis CI

gem install travis

でTravis CLIを入れます。

このあとは以下のページが役立ちます。

OpenShift Deployment - Travis CI

デプロイ対象のプロジェクトに空の.travis.ymlを置いて、以下コマンドを実行すると

travis setup openshift

対話式にopenshiftの情報を聞かれて、中身を自動生成してくれます。

最初.travis.ymlごと生成してくれるのかなーと思ったのですが、以下エラーでした。

C:\Users\kikuta\Documents\NetBeansProjects\xxxxxxxxxx>travis setup openshift

no .travis.yml found
C:\Users\kikuta\Documents\NetBeansProjects\xxxxxxxxxx>travis setup openshift

OpenShift user: xxxx@yyyy.co.jp
OpenShift password: ********
OpenShift application name: |xxxxxxxxxx|
OpenShift domain: hogehoge
Deploy only from hogehoge/xxxxxxxxxx? |yes| yes
Encrypt Password? |yes| yes

これで.travis.ymlはOK。あとはGitHubのコード側でpom.xmlにopenshiftのプロファイル入れたり、.openshiftフォルダを入れるなどすれば自動化完了です。

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村
QLOOKアクセス解析