【勉強会メモ】Serverless Meetup Osaka #4
日時:2017/10/18(水) 18:00 〜 21:30
場所:MOTEX
何度か参加させてもらっているが今回はAWS本家の中の人が来日され、特別セッション有り。
仕事で本格的に使うケースもあるかもしれないが、個人的にちょっと何か作ってみようとした時にもサーバレス技術の活用が有力な選択肢になってきていると感じる。様々なサービスがあって日々機能強化されているので把握していくのも大変ではあるが、思いついたらすぐ形にできて数分後にはサーバ上にデプロイできるというのはとても魅力的であり、すごい時代だなと思う。
Randall Hunt (AWS) 氏の特別セッション
全編英語であまり理解に自信がないので詳細は省略。
RandallさんはNASAでロケット開発をしていた経歴をもつ。冒頭で試験ロケットが打ち上げ失敗して次々と爆発する動画を紹介してもらった。面白いけどなかなか衝撃的だった。
AWS上でライブコーディングしながらLambdaなどのサービスを紹介。
ドラクエXもAWSを使っていてLambdaのプロセスが200-300ぐらい稼働しているという紹介。
AWS 導入事例:株式会社スクウェア・エニックス | AWS
後半は下記資料を元にAI系サービスを紹介。
www.slideshare.net
セッションの冒頭で会場をバックにセルフィ写真を撮っていたが、Amazon Rekognition を使ってRandallさんの顔の写真を学習させた後、冒頭の写真の自分の顔部分だけ隠すというデモを披露。
Serverless Framework OpenFaaSとは
発表者:Ken Fukuyamaさん
- Docker上で動くServerlessなFramework
- コンテナに入っていればなんでもFanctionになる
- Docker Swarmとk8sをサポート
例えばLambda Functionsの部分がOpenFaas+Dockerで置き換えできる
主な機能
faas-cli
を使ってデプロイ- 同期・非同期連携
- k8s連携
- Rancher連携
- Go言語のtemplate
- VBCodeでデバッグ
- CI/CD Pipeline
など
日本語の情報がまだ少ない(Qiitaの記事がまだ2件)ので使ってみてフィードバック募集
東京に来た、Java8きたGreengrass
発表者:庄司 重樹さん @takesection
Greengrass Core 1.1.0
- Pythonに加えてNode.jsとJava8サポートが追加
- 東京リージョンでも利用可能になった
- Java8のLambdaが動くのでScalaで書いたコードも動く
- RasPi3に入れて試してみる
Lambdaの設定
SDカード対応の計測機器のデータをAWSにぶん投げてみた話
発表者:辻 一郎さん
IoT.Kyoto VISの紹介
- DynamoDBに保存したストリームデータをリアルタイムでグラフ化
- AWSアカウントがあれば無料で使える
- PoC用に短期間・低価格でデータ収集基盤を構築可能
事例紹介
産業用ロボットの稼働状況可視化
電力監視
電圧ロガーからFlashAirでデータ取得
Flask+Python+Fluentdで構築
5分でサーバーレスの環境構築から本番デプロイまでやったろやないか!
発表者:清水 崇之さん
www.slideshare.net
サーバレスのCI/CDパイプラインを構築
AWS CodePipelineではなくAWS CodeStarがおすすめ
AWS CodeStar – アプリケーションをすばやく開発および構築して AWS にデプロイ
↓だいたい5分でデプロイ完了
カウボーイとエンジニア
しがないラジオ ep.27 の中での話。
JavaScript カウボーイ
最近ではフロントエンドのJavaScriptエンジニアの事を Javascript Cowboy というらしい。フロントエンドのエコシステムが高速で変わっていくのを乗りこなしていくという意味らしい。
↓このあたりの資料でも同様の事が触れられている。
www.slideshare.net
カウボーイコーディング
カウボーイといえばこちらの言葉のほうが有名。
カウボーイコーディングは、各々の開発者が「自分が良いと思うプログラミング」をバラバラに行うことである。好ましくない状態を指すのに使う言葉であり、特定の開発手法を指す言葉ではない。
アジャイル開発という言葉が浸透しはじめた頃に従来の開発スタイルよりも自由度が高い面だけがクローズアップされすぎて、カウボーイコーディングの呼び方を変えた開発スタイルだと誤解されることもあった。
アジャイル開発と一緒に有名になった感じもあるが、実はそれより昔から我流のコーディングに頼って誰も扱えないようなプログラムを書くことをカウボーイと言って揶揄されてきた。
JavaScriptカウボーイにこのあたりのニュアンスが含まれているのかどうかは不明(フロントエンド周りの技術のスピードが早くて乗りこなすのが大変というのはよく言われる話なので多少はそういう皮肉が込められているようにも思える)。
ポケット カウボーイ(おまけ)
電気グルーヴの名曲。卓球と滝のボーカルを細かく刻んでつなぎ合わせた手法はまさにカウボーイ的職人芸。作業用BGMとしてどうぞ。
- アーティスト: 電気グルーヴ
- 出版社/メーカー: キューンミュージック
- 発売日: 1997/12/01
- メディア: CD
- この商品を含むブログ (2件) を見る
【読書メモ】現場で役立つシステム設計の原則
現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
- 作者: 増田亨
- 出版社/メーカー: 技術評論社
- 発売日: 2017/07/05
- メディア: Kindle版
- この商品を含むブログ (2件) を見る
毎朝15分の読書会で本書を読んだ。現場で役立つということでチームで共有するテーマとしても良い本だと思う。
コードをわかりやすくまとめるテクニック
- 小さくまとめてわかりやすくする
- 場合分けのロジックを整理する
- 業務ロジックをわかりやすく整理する
前半はコードをシンプルにわかりやすくする手法について。リーダブルコードのような形でわかりやすく良いコードに変えているテクニックの解説が中心。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (138件) を見る
ドメインオブジェクトの考え方
- ドメインモデルの考え方で設計する
ドメインオブジェクトの考え方に基づいて設計し、コードをまとめていくための考え方について解説されている。本書の中でも最も重要でページを割いている部分。
コードをドメインオブジェクトにまとめる考え方
- 判断/加工/計算のロジックをまとめる
- 業務の関心事とコードを対応させる
三層+ドメインモデルの組み立て
ドメインモデルの考え方を元に三層+ドメインモデルを組み立てていく考え方が解説されている。基本的にはプレゼンテーション層とデータソース層から判断/加工/計算のロジックを切り出してドメインオブジェクトにまとめていく。業務の関心事に合わせてプレゼンテーション層の画面を整理して設計する。
- アプリケーション間の連携
近年当たり前となっているアプリケーション同士の連携での設計について、WebAPIを中心に解説されている。シンプルで簡単に利用できるAPIとして提供することから始める。WebAPIを利用する場合、以下についてWebAPIとドメインオブジェクトとの間に不一致が起こり変換が必要になる。
- データ構造
- 業務の関心事
オブジェクト指向の開発プロセス
- DDDにより従来のV字モデルの開発から短期間で開発と修正を繰り返す手法が可能になった
- 無駄なドキュメントを減らしてソースコードやテストコード中心に成果物をまとめる
オブジェクト指向の学び方と教え方
- 良書を参考にオブジェクト指向の考え方で既存コードを改良する
新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)
- 作者: Martin Fowler,児玉公信,友野晶夫,平澤章,梅澤真史
- 出版社/メーカー: オーム社
- 発売日: 2014/07/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る
- ThoughtWorksアンソロジーで紹介されている9つのルールでオブジェクト指向の考え方を学ぶ
ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション
- 作者: ThoughtWorks Inc.,株式会社オージス総研オブジェクトの広場編集部
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/12/27
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 323回
- この商品を含むブログ (81件) を見る
- オブジェクト指向をより深く学ぶ
- 作者: ケント・ベック,Kent Beck,永田渉,長瀬嘉秀,株式会社テクノロジックアート
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2008/12/22
- メディア: 単行本(ソフトカバー)
- 購入: 30人 クリック: 502回
- この商品を含むブログ (90件) を見る
オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)
- 作者: バートランド・メイヤー,酒匂寛
- 出版社/メーカー: 翔泳社
- 発売日: 2007/01/10
- メディア: 単行本(ソフトカバー)
- 購入: 11人 クリック: 307回
- この商品を含むブログ (131件) を見る
オブジェクト指向入門 第2版 方法論・実践 (IT Architects' Archiveクラシックモダン・コンピューティング)
- 作者: バートランド・メイヤー,酒匂寛
- 出版社/メーカー: 翔泳社
- 発売日: 2008/08/29
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 97回
- この商品を含むブログ (52件) を見る
- 作者: Eric Evans
- 出版社/メーカー: 翔泳社
- 発売日: 2013/11/20
- メディア: Kindle版
- この商品を含むブログ (7件) を見る
まとめ
基本的にDDDを現場のシステム設計に取り入れることに主眼が置かれており、それが現在の開発の現場に最も適したアプローチだと理解した。WebAPIのような近年の技術についてもしっかり言及されておりイメージしやすく配慮されている。ただし、ここで解説されているのはあくまでシステム設計の原則であり、具体的には各々の現場に合わせて適したドメインオブジェクトの設計を模索する必要はある。そのためには本書で取り上げられている名著もカバーすることでさらに理解を深めてより良い設計を目指すことができるだろう。
エンジニアと思いやり
最近エンジニアにとって一番大事なのは思いやりではないかと思うシーンが多くあって色々考えていたところでこの記事を読んだ。記事では顧客に対する視点で述べられているがこれは同じチームのメンバーや社内の関係者にも言えることだと思う。エンジニアは初めから多種多様な技術を持っているわけではなく自分が使える技術を他人のために役立てるには相手を思いやる姿勢が必要になる。技術力が高まってくると他人と自分のリテラシーの差が広がり、やはり相手を思いやる姿勢がなければ他人のために自分のパフォーマンスを発揮することが難しくなる。つまり思いやりの姿勢はエンジニアにとってプログラミング言語や設計手法を学ぶのと同じくらい基本的で奥の深いスキルの1つなのである。
顧客トラブルで助けてくれる あなたの 「ファン」 の作り方
日経SYSTEMS 2017.6 特集3の記事。 顧客内に「ファン」がいるだけで仕事の進め方が格段に変わる。そういう意味でITエンジニアにも「営業センス」は重要。
営業センスの三本柱
- 思いやり
- 生きる姿勢
- 適度な距離感
思いやりの構造
思いやりは以下の3つの要素に集約され、同じ未来 を見つめることが最終ゴールである。
- 傾聴
- まずは聞くことに徹する
- 想像
- 常に相手の考えていることを想像する
- 提案
- 本当に相手に最適なことを提案
※『日経SYSTEMS 2017.6 P.51 図2 思いやりの構造 』より
まとめ
営業センスというとややチープな印象を持ってしまうかもしれないが、要は自分の技術を他者へ提示するためのセンスということだと思っている。我々は自分の持てる技術を他人のために使うことで、同じ未来を描こうとしているのである。そのためには思いやりの姿勢で他人に接して初めて未来に向けて技術力を活用できるのである。もちろん、残りの二本柱である「生きる姿勢」と「適度な距離感」も重要だ。それらについては記事を参照のこと。
【勉強会メモ】【大阪】GMOエンジニアトーク -先端IT技術を学ぶ会- 深層学習、ブロックチェーン、AR/VR
日時:2017/10/13(金) 19:00 〜 21:00
GMOの研究開発チームによる先端技術の発表会。今回は以下の3本立て。
- 深層強化学習
- ブロックチェーン
- AR/VR
深層強化学習はここ数年で注目されている分野のひとつで、それをAI系ではおなじみの株価予測に使って研究したという話だった。はじめは株価だけに注目してやってみたがうまくいかず、マーケットインパクトに注目して出来高を学習に加えたところ利益につながる予測ができたとのこと。この分野は何をどう学習させるかがキモなのでデータが豊富にある株が研究テーマとして選びやすく分かりやすいのだろうと改めて感じた。
ブロックチェーンは4つの実験的な仕組みをOSSとして公開したという話。ブロックチェーン技術を何に活用するかはまだ世の中的に試行錯誤状態なので実験のためにOSS化は必然なのかもしれない。
AR/VRは「どこでもドア」や「バーチャル案内スタッフ」というモバイルアプリを実際に開発した話。既に使われているとのことで事例としては最も具体化された内容だった。どこでもドアをネタにして現実世界とバーチャル世界を融合させてドアを介して行き来させるというのはとても面白いアイデアだと感じた。
いずれのテーマも今回は事例紹介が中心だったが、技術的にもう少し詳細な内容が調べられたものについてはリンクを追加しておいた(つまりリンクは発表者が紹介したものではなく私が後から追加したものです)。
AIで株をやる!~株の売り買いを深層強化学習で予測~
発表者:シユタサ カンスポーンさん
深層強化学習
深層学習+強化学習
強化学習
例)ねずみが迷路の中でチーズを探す
- Agent(学習者):ねずみ
- 環境:迷路
- 状態:迷路のどこにいるのか
- 行動:左右どちらに進むか
- 報酬:チーズをもらえる、もらえない
Q-learning
強化学習の代表的なアルゴリズム
- 行動ごとに各状態で報酬を与える
- 最終的に一番良い報酬となる最適な行動を学習
- 全ルートが分かれば良い
学習ステップ
- ランダムに行動(学習)
- 報酬が高いルートの近くを選んで行動
- 最終的な報酬がよくなるように繰り返す
深層学習
多層のニューラルネットワークによる機械学習
深層強化学習⇒株になると複雑
Deep Q-Network(DQN)
Dueling Architecture
Prioritized Experience Replay
上記を組み合わせた深層強化学習の1つの手法 ⇒うまくいかなかった
マーケットインパクトを使った学習
収益:3.4%(時期をずらして評価しても一定の収益が出た)
⇒出来高と株価の変化(マーケットインパクト情報)をもとにある程度大型株を学習して評価できるようになった
GMOインターネットの株で評価
収益:8.87%
⇒マーケットインパクト情報で深層強化学習を行えば少しだけ収益を得る予測が可能
ソース公開を通じて分かった非中央集権型アプリケーション(dapp)とは
発表者:折田さん
DApp(Decentralized Application)とは
サービス提供者を信頼することなく当事者間で動作するプログラム
メリット
- 中間マージンの削減
- サービス提供者に情報や資産を預けるリスクの排除
スマートコントラクト
ブロックチェーン公開プロジェクト
医療機関カルテ共有システム
患者自身で医療機関へのカルテの共有ができるスマートコントラクトサービス
転売抑止チケット
地域トークン
- 自治体や限定された店舗・施設
- 限定ポイントを発行できる
- トークン:ERC20
ERC20
www.tottemoyasashiibitcoin.net
-Ethereumにおけるトークンの標準使用 - 資金到達手段(ICO)に利用されている
トークントレーダー
取引所に預けることなくエンドユーザー同士で直接トレードできる
Indexer:取引所 Maker:売買情報を掲示する人 Taker:約定(売買)注文をする人
GMOブロックチェーン オープンソース提供プロジェクト
https://guide.blockchain.z.com/ja/docs/oss/
AppleのARkitとGoogleの最新のARプラットフォーム ARCore 可能性と応用
発表者:ブイ・ミン・クオン(ベトナム)さん
O2Oサービス向け集客力のあるモバイルARの開発
ARとは
- 現実空間とバーチャルコンテンツを真空間として融合
なぜモバイルARか?
- それぞれSDK無料
- OSレベルで既存アプリへスムーズに組み込み可能
- 既に数億台がサポート
ARKit
魔法のホールとどこでもドア の開発
- ターゲットユーザー:ファミレスチェーンの子連れ家族
- 印象に残るもの:魔法みたいなもの
- ダブルカメラ⇒現実空間とバーチャル空間
- 2つのカメラの位置と向きを同期する
- 360度ビデオ
- Unity上の球場のゲームオブジェクトプログラミング
- 法線ベクトルの方向変更もしくはテクスチャの裏返処理
- 法線ベクトル…3次元での面に対し垂直なベクトル
- シェーダープログラミング
- メッシュの頂点単位の処理、ピクセル単位の処理
- オフスクリーンレンダリング
- レイヤー&カリングマスク
- デプスマスク
- バーチャル空間から現実空間を見えるようにする
- マスクされたところにバーチャル世界のレンダリングをしない
- マスクされたところから現実空間が表示される
ARCore
もともとはTangoプロジェクトがあった
バーチャル案内スタッフによる案内
[https://www.s lideshare.net/bmkhuong/ar-google-tango-73960767:embed:cite]
特徴
まとめ
- 機能面は同等
- 端末対応台数はARKitのほうが多く、ビジネス面で早く展開できる
参考