まめログ

Javaプログラマの歩み

JJUG CCC 2017 Fallに運営で参加してきた #jjug_ccc

2017年11月18日にJJUG CCC 2017 Fallが開催され運営側として参加してきました。

今回は主にカメラマンを担当しました!

www.java-users.jp

混雑緩和

今回のイベントでは、上記のページにもある通り混雑緩和が一つのテーマでした。
その為、各セッションの部屋の入り口・出口を一つにし、
通路も一方通行にする施策を取ってみました。

結果としては、これがかなり功を奏し、身動きできないような混雑は起きず、
セッション間の移動もスムーズに行われていました!
協力してくれた参加者の皆さん、ありがとうございました!

アンケートでも一方通行は好評でした。

写真撮影

海外のイベントなどでは写真が多く撮られており、参加していない人にもイベントのイメージがつきやすいので
今回はボランティアの方と2人で写真撮影を行いました。

登壇者の皆さんには個別に連絡が行くかと思います。

ストロボ使用について

セッション中は前方にスライドが投影される関係上、部屋が暗くなっており撮影の為ストロボを使用しておりました。
ストロボが不快な方もいるので、なるべくカメラの設定などでストロボが不要なようにします。


JJUG CCCは2018年春にも開催予定です。
皆さん奮ってご参加ください。

Spring Fest 2017に参加しました

だいぶ日が経ってしまいましたがレポ。

2017年11月24日に開催された「Spring Fest2017」に参加しました。

springfest2017.springframework.jp

午前中は健康診断とかぶってしまい、午後からの参加になってしまいましたが、
濃密なセッションを聞くことが出来、大変有意義なイベントでした。

Spring Security 5 解剖速報

業務アプリケーションを開発する際、切っても切れないのがセキュリティですね。
Spring Securityの情報を聞きたかったので参加。

www.slideshare.net


かなり深いところまで説明してくださっていたので、参考になりました。
認証・認可の具体的な実装方法は、手を動かしてみないとなー。

ドメイン駆動設計のためのSpringの上手な使い方

みんな大好きDDD。
DDDの第一人者である増田さんのセッションを聞かずにはおれない。

www.slideshare.net

感想としてはDDDの概要説明より、実際にSpringでどのように実装してくかを説明してほしかったな~と。

日本一やさしく説明する予定のマイクロサービス入門

マイクロサービスアーキテクチャオブジェクト指向と同じ説明が出来るっていうのは面白かったです。
何度も発表前に念を押されたとおり、初心者向けでした。

www.slideshare.net

Spring エンジニアが理解すべきフロントエンド入門 - Angular編

Springでサーバサイド作ったとしても、フロントエンドはどうすればいいんだということで気になっていたAngularのセッションを聴講。
Angularの概要説明で、実際のサーバサイドとの連携方法などは無かったので、
手を動かせってことですね。

Spring BootとSpring Cloudで始めるマイクロサービス

最後はスベり芸人せろさん(@cero_t)のセッションへ。
マイクロサービスアーキテクチャを実際に適用・運用している人の話は参考になります。
ギャグ少なめで真面目なセッションでした。


Springはあまり使えていませんが、会社の標準にしていきたいのでこれからもっと勉強していきたいと思います。
イベント運営の皆さん、登壇者の皆さんありがとうございました。

Docker for Windows でElasticsearch5.5,Kibana 5.5を動かしてみる #elasticsearch

Elastic Stack 5.5が先週リリースされました!

f:id:mamepika:20170710011218p:plain

Elastic Stack 5.5.0リリース | Elastic

今回はDocker上でElasticsearch、Kibanaを動作させてみました。
Dockerがいまいちわかってないので手順に誤りなどあるかもしれませんが、
誤りについてはご指摘頂けると幸いです。

DockerのElasticsearchコンテナを複数立てて、クラスター組みたかったんですが、
Dockerよくわかっておらず、そこまで出来ないまま月曜になってしまいました。

コンテナごとの細かい設定をどこで反映させるかもわからず、ただ動かすだけになってます。

環境は以下の通り。

OS:Windows10 Pro
CPU:Core i7 4790K
Mem:32GB

Docker for Windowsのインストー

WindowsでDockerを動かすために、Docker for Windowsというソフトをインストールします。
以下のURLからダウンロードできます。
docs.docker.com

インストールが完了するとHyper-V上にLinuxマシンが出来ているので確認してみます。
f:id:mamepika:20170710002949p:plain

動作確認

コマンドプロンプトPowershellでdocker versionコマンドを打ってみて、動作確認をします。

f:id:mamepika:20170710003224p:plain

Elasticsearch用Dockerコンテナの実行

まず、Elasticsearchを動作させるため、Powershellで以下のコマンドを入力します

docker run -p 9201:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" docker.elastic.co/elasticsearch/elasticsearch:5.5.0

Elasticsearchの動作確認

Webブラウザで「http://localhost:9201」にアクセスします。
X-Packが有効になっているため、認証が必要になりますが、
USER:elastic
PASS:changemeでログイン可能です。

以下のように、JSON形式でElasticsearchの状態が帰ってくれば動作しています。
f:id:mamepika:20170710003823p:plain

Kitematicの導入

GUIでDockerコンテナの設定などが行えるKitematicというツールを導入します。

タスクトレイにあるDocker for Windowsのアイコンを右クリックし表示されるコンテキストメニューから
「Kitematic」をクリックします。
f:id:mamepika:20170710004447p:plain
Zipファイルがダウンロードできるので、中のexeファイルを実行すればOKです。
次回以降、Docker for Windowsコンテキストメニューから実行させるためには、
C:\Program Files\Dockerの配下に、解凍したフォルダを「Kitematic」にリネームして配置すればOKです。

実行すると以下のようにElasticsearchのコンテナが表示されているはずです。
※コンテナ名を分かりやすいようにリネームしています。
f:id:mamepika:20170710004932p:plain

Kibana用Dockerコンテナの実行

Kibanaを動作させるため、Powershellで以下のコマンドを入力します

docker run -it --rm -p 5601:5601 docker.elastic.co/kibana/kibana:5.5.0

Kitematic上でコンテナが確認できます。
f:id:mamepika:20170710005132p:plain

Elasticsearchのコンテナに接続する

Kitematic上でElasticsearchのコンテナに接続するように設定します。

右上の「Setting」⇒「Network」をクリックします。
表示されたLinksでコンテナを選択します。
f:id:mamepika:20170710005335p:plain

選択したら、名前も入力して+ボタンをクリックします。
f:id:mamepika:20170710005448p:plain

Kibanaにアクセスする

以下のように認証画面が表示されれば成功です。
USER:elastic
PASS:changemeでログインできます

f:id:mamepika:20170710005546p:plain

Versionの確認

X-Packが有効なので、左のメニューが多めに表示されていますね。
index name patternを指定しないと画面にエラーが表示されるので、「.kibana」を指定してエラーを消しています。
f:id:mamepika:20170710005746p:plain

Monitoringで確認するとElasticsearchのVersionが5.5.0になってますね!
クラスターのステータスがyellowなのはノードが一つで、冗長構成になってないからかな。
f:id:mamepika:20170710010148p:plain

Managementで確認するとKibanaもきちんと5.5.0です。
f:id:mamepika:20170710010300p:plain

filterのGUIによる設定

filterの設定をクエリを書かずとも、GUIでクリックだけで設定できるようになりました。
f:id:mamepika:20170710010442p:plain

Kibana5.5の新機能は以下にまとめられているので詳しくは以下を参照してください!
acro-engineer.hatenablog.com

およそ2か月に一回のペースでバージョンアップがされて、
ますます便利になるElastic Stackから目が離せません。
特にMachine Learningは注目です。

Elasticsearch,Kibanaを5.2から5.4にアップグレードしてみた #elasticsearch

今年の初めに検証環境として用意して色々と試していたのが、Elastic Stack5.2だったので、
5.5リリースも直前というこの時期に5.4にしてみましたw
調べてもアップグレード方法が分からなかったのですが、簡単すぎるからわざわざ書いてないのかってくらいの簡単さでした。

f:id:mamepika:20170702025040j:plain


特に無停止とかを意識していない環境なので、何の問題もなくさくっと出来ました。

環境は以下の通り。

EC2インスタンスサイズ:t2.medium
OS:Amazon Linux
Java : Oracle JDK 8u121

Elasticsearchを5.4にアップグレードする

yumインストールではなく、rpmパッケージからのアップグレードで実施しました。

rpmパッケージのダウンロード

$ sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.3.rpm

DLしたrpmパッケージを使ってアップグレード

$ sudo rpm -Uvh elasticsearch-5.4.3.rpm

f:id:mamepika:20170702030255p:plain

バージョンの確認

curlコマンドで確認できます。

$ curl http://localhost:9200/

f:id:mamepika:20170702030126p:plain

5.4.3になってますね。

Kiabnaを5.4にアップグレードする

Elasticsearch同様にrpmパッケージよりアップグレード。

$ sudo wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.3-x86_64.rpm

DLしたrpmパッケージを使ってアップグレード

$ sudo rpm -Uvh kibana-5.4.3-x86_64.rpm

以下のようなメッセージが出て完了。
f:id:mamepika:20170702025652p:plain

Kibanaにアクセスして,ManagementメニューからVersionを確認してみると、
5.4.3になってます!

f:id:mamepika:20170702030522p:plain

Visualizeの追加画面も新しくなってますね

f:id:mamepika:20170702030640p:plain

Visual Builderも。
f:id:mamepika:20170702024822p:plain

2周くらい周回遅れになってますが、新機能は来週試してみます!!

『Java本格入門』を読みました #アクロ本 #Java本格入門

f:id:mamepika:20170506203957j:plain

JJUG幹事会でいつもお世話になってる@cero_tさんが書いた本ということで、先行販売でゲットしてきました。

結論から先に言っちゃうと、Java書いてアプリ作ってる人には全員にお勧めできます。
自分はJavaチョットデキルという人でも、PJに関わる人全員がそうとは限りませんし、
入門者からベテランまで「気づき」のある本だと思います。
gihyo.jp


誤記とか修正点は以下のページを。

github.com



裏テーマが「35歳からのJava入門」ということでしたが、31歳の私にもズバリ効きました。

中でも、本になっていって嬉しかったのは。Chapter2の「2-4 名前の付け方に注意する」の部分です。

変数は名詞、メソッドは動詞や「不吉な臭い」をPJメンバーで共有できる足がかりを作ってくれたのには本当にありがたいところです。
こういった些細なんだけど、実際にコードを書く際に影響が大きいところが「本になっている」と
偉い人にも説明がしやすく、書き換えの時間を確保できることにつながりますし、
それがプロダクトの品質につながるので大きいんですよね。

『極める』と『たしなむ』

本書の目次を読むと、極められるものとたしなむだけのものがあることが分かります。

極められるもの

  • 配列とコレクション
  • 例外
  • 文字列操作
  • ファイル操作
  • 日付処理となってます。

Javaの文法や基本的な操作(誰が書いても変わらない部分)はこの本で極められるってことですね。
確かに一度書き方・考え方が分かれば、あまり引っかかるところでもない要素です。
※2冊目の入門書という位置づけのため、ある程度基礎があることが想定されています。

たしなむもの

書き方は分かった、じゃあ、どこに書くか、どういう名前で書くか、どういう構造がいいのかといったところはたしなむで終わっています。
確かにこの1冊で極められるものでもないですし、答えがあるものでもないので親切な書き方です。

最新の書き方が分かる

ストリーム処理、日付処理はラムダ式、Date And Time APIを盛り込んでいますし、
ファイル操作もnio2を想定していますので、Java7,8の書き方を覚えることができます。
また、従来の書き方も書かれているので、既存のプロジェクトのリファクタリングにも役立ちそうです。

汎用ライブラリの紹介もある

業務系のプロダクトで使う機会の多いApache Commonsの紹介があるのは嬉しいですね。
Apache Commonsやライブラリの存在を知らないと車輪の再発明をされてしまったりして、
工数増大、品質劣化につながります。
まず、ライブラリを探すっていう姿勢を取れるようになるのは重要です。

SIの現場で要件定義をし、実際にコードを書いてる著者の皆さんじゃないと書けない本だと思います。
新人教育に、そして自分の勉強に使っていきたいと思います。
いい本をありがとうございます!

第19回Elasticsearch勉強会に参加しました #elasticsearchjp

ちょっとと遅くなりましたが、勉強会の参加レポ。

第19回Elasticsearch勉強会­ #elasticsearchjp - Elasticsearch勉強会(Elastic Tokyo User Group) #elasticsearchjp (東京都) | Meetup

3月にサンフランシスコで行われたElastic{ON} 2017のフィードバックイベントだったので、仕事そっちのけで参加しました。

Elastic{ON} Re-cap

Jun Ohtani @ Elastic

日本からの参加者は50名程度

日本からスポンサーとして日立が参加。

ASK ME ANYTHING

Elasticのエンジニアに直接聞けるブース。常にエンジニアが数人立っている。
質問リスト持ってきてガッツリ質問してる人もいたり。

ご飯

ご飯も売り。
フードトラックが来る。

Filebeat Modules

5.3から。

今まではFilebeat1行1データでパースはLogstashを使う必要があった。

  • Elasticsearchだけでインデックスに入れる前の前処理を書くことができる。

⇒ingest node

  • moduleはそれを使用しているので、Filebeatがログをパースしているわけではない。

Time Series Visual Builder

Kibana 5.4から

メーターのVisualizeなどが追加。
今Timelionでやっている複雑なグラフもKibanaで行える。

機械学習 To train a model

異常値検知。
データの波形をもとに学習して、波形から外れた場合に画面に表示。

5.4からでX-Packの有償版。

Elastic Cloud Enterprise

AWS上でElastic Cloudで自動化しているがオンプレ環境でも出来るようになる。
GCPでも使える。

インフラエンジニアがおらず、プライベートクラウド使ってる弊社では、ECE使うのが一番楽そうなので、早く情報が欲しいところです。

Elasticsearch SQL

Coming soon

トランザクションは元々そういう概念が無いのでサポートするつもりはない。
提供方式は未定だが、今のところX-Packで行う予定。無償・有償は分からない。

GW中に来るかもと言われていたElastic Stack5.4がほんとにきちゃったので、
https://www.elastic.co/blog/elastic-stack-5-4-0-released

Machine Learningとか新しいKibanaの機能とか早く試していかないとですね。

BASEさん主催のPAY Developer Meetup #00 に参加してきた

週末募集開始されて、月曜開催というタイトなスケジュール。
特に用事なんて無いので参加させていただきました!

base.connpass.com

f:id:mamepika:20170328002814j:plain

BASEさんの新イベント用スペースめっちゃ綺麗でした!
椅子も今日出したばかりの新品らしい。

LT2本立ての構成でした。
次は喋ってみたいな~。

PAY ID決済 イントロダクション

speakerdeck.com

PAY事業部の高野さん。
PAY IDの概要から、実装までを見せてくれました。
ダッシュボードでクライアント用ID発行して、HTMLに1行追加するだけでカード入力画面にPAY ID決済ボタンが出現!

詳しくは↓
id.pay.jp

PAY ID

  • 2016年6月27日に提供開始した購入者向け決済サービス
  • PAY IDにクレカ情報や配送情報を紐づけることで都度入力せずに決済が可能
  • BASE加盟店を含む40万加盟店で利用可能

毎回決済のたびに財布からカード取り出して、番号やセキュリティコード入力する手間が省けるのでいいですよね。

導入方法

  1. 1 PAY ID Checkout

決済時の画面遷移なし
画面遷移させたくない

  1. 2 OAuth API

決済時の画面遷移アリ
住所や電話番号も扱えるので物販ECなどで利用

デモ

あっという間に実装されるさまは圧巻。
ダッシュボードのUIも今風でかっこいい。

質疑応答

Q.UIのカスタマイズは
A.Checkoutは既存のもの。OAuthAPI使えばカスタマイズできる。

Q.テスト環境使ってるんだけど任意の値が入れられるけど、表示順がバラバラになる
A.導入を検討する。

Q.PAYIDの住所や電話番号は認証済み?
A.物販で使用された実績はあるが、100%の保証はない。

PAY.JP使ってます

MAMORIOの高野さん
www.mamorio.jp

www.slideshare.net


金曜日にLTの依頼があったらしい。

PAY.JPにした理由

  • ApplePayでの課金実現可能
  • HPが綺麗だったから
  • コミュニケーションが他社よりフランク
  • 開発者ページが充実

懇親会では途中ボッチになってましたが、会話に混ざっていくことで
結果としていろんな人と話が出来て良かったです。

次回もぜひ参加したいです。
ありがとうございました!