Alexa Salon #1 に参加してきました
感想
Alexa Salonに参加してきました。スキル開発をするにあたって色々勉強させていただきました。じゃんけん大会負けてしまいましたが、本も読んでみたいです。
はじめてのAlexaスキル開発 [音声認識アプリ開発の基礎知識を身に付ける! ]
- 作者: 工藤星命,清野剛史,丹内優紀,平内真一,持田淳史
- 出版社/メーカー: 技術評論社
- 発売日: 2018/05/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
SINさんのブログとてもわかりやすかったのでおすすめです。
基礎から学ぶVUIの勘所
自己紹介
- 清野剛史さん
- クラスメソッド・テクニカルエヴァンジェリスト
VUIとは
- Voice User Interface
- CUI - GUI - Web UI - Touch UI (mobile) - VUI
- UX: User Experience
会話における法則
- Voice Communication
- メラビアンの法則(視覚情報:58%、聴覚情報:38%、言語情報:7%)
- 言語情報は10%未満
- Echoは20~30%で戦う必要がある
VUI設計で気をつけること
- NUDGE
- 行動経済学用語
- ユーザーが相手の自然かつ無意識に意図通りの行動を起こすように環境を整え促すこと
留意点
- 選択肢を例示する
- はい/いいえで答えられるように促す
- 一息で言い切れる長さ
- ユーザーが鬱陶しいと思わないように
- 書き言葉をそのまま使っては行けない
- 録音して長いと思ったところは切る
- 「〜ですか?」:は等価、「〜ですね?」は強調
- はいと言ってほしい時など
GRAPH BASE UI vs FRAME BASE UI
- VUIではFRAME UIが良い
MULTI-TERN
- ユーザーがたくさん話しすぎるのはだめ
- ピンポンの会話にする
VUI設計の作り方
- 目的を決める - なにをしたいか - そのためにUX的に音声でどう体験してほしいか。 - どこまでVUIにするか。 - VUI以外との連携は。 - ユースケースを想像する。毎日使うのか、必要な時に使うのか。
- キャラクター設定
- ペルソナを作り、発話に一貫性を持たせる
- ユーザーとの距離感
- Alexaの立ち位置
- ハッピーパス
- ストレートな対話を作り、これを軸に
- INTENT/SLOTの設計
- State-Intent-Slotのスコープを決める
- Intentはなるべくシンプルにまとめる
- UI図
- ハッピーパスを肉付けする
- 重要なSlotと必須ではないSlotを区別しておく
- Slotの最中に別Intentに飛ぶケースを想像しておく
- 結構修正するので具体的な発話を書かない
- UTTERANCE表の作成
- 規模によっては以外と重要
- 被ってないか確認
- シノニム/バリエーション
- ひたすら想像力
- 5種類をランダムに
- 頻度によってメッセージを帰る
- エラーハンドリング
- キャラクラー設定を元に判断する
- 謝りすぎない
- 疑問形で終わる
- エラー回数によって選択肢を明示する
- ストップへの誘導
まとめ
- VUIはAlexa開発のキモ
- 図を書くまえの準備がクオリティを上げる
Alexa-SDKについて
www.slideshare.net
自己紹介
- 平内真一さん
- アプリケーションエンジニア
- ブログを業務時間に書いていい
Alexa SDK
バージョン1と2
- 4/18以前
- はじめてのAlexaスキル開発
- Lambdaのテンプレート
バージョン2
- ハンドラの実装法穂が変わった
- データ永続化の記述が明確になった
- コア機能のみの利用可能
- Node8対応(async/await)
- DynamoDB以外も利用可能
- AlexaサービスAPIのラッパー提供
- Java + Node.js
https://dev.classmethod.jp/cloud/alexa-sdk
変更点
- tell, askの廃止 --> ResponseBuilder
- ステートの廃止
- ハンドラのインターフェース canHandle
- データ永続化の要領
- 例外時の処理
最後に
- Ver1の方が簡単に描ける
- Ver1に未来はあるのか・・・?
- これから取り掛かるならVer2でいいかも
- 個人的には、Ver2押し
- データ永続化が明確
- canHandleも慣れると悪くない
- Alexa APIへのアクセスが超簡単
- async / await 最高
- TypeScriptで書ける
大質問大会
Q.対話モデル・対話フロー設計時のオススメの方法があれば教えてください。
Q.開発方法、事例、活用ポイントについて
- Cloud9
- alexa-conversation テスト
Q.ニーズが高いスキルはどのようなスキルか
Q.広告ポリシー
- 子供向けは広告だめ
Q.勝手に喋り出す機能はないのか?
- プッシュ通知機能はある
Q.バックエンドに機械学習を絡めることはできるか
- あったら面白そう
DBテーブル設計入門に参加してきました
感想
サポーターズCoLabの「DBテーブル設計入門」に参加してきました。
DB設計ムズイ。
データの種類によってテーブルを分割したり、ミドルウェアを変更したりと考慮するべき点が多いなと改めて感じました。 アンチパターンは存在するが、正解があってないような世界だと思うので、勉強し続けることと良質な経験を重ねることが大事なのかなという所感です。
ゲームアプリのDBテーブル設計を実例にどのような設計にするべきなのかということを学べました。
スライド
共有はありませんでした。
メモ書き
自己紹介
- 梶川 琢馬さん
- サーバーサイドエンジニア3年目
DBテーブル設計の重要性
- データの蓄積や検索を楽にする
- データはシステムより長く残り続ける
- 後から変更しづらい
- 影響範囲が広いため
- メンテナンスがしづらいため
DBテーブル設計の流れ
- 論理(概念)設計:人間のための設計
- ビジネス要件をデータモデルとして表現する
- エンティティやリレーションの定義
- 正規化
- 物理設計:システムのための設計
- セキュリティやパフォーマンスを考慮
- 水平/垂直分割、Master/Slave構成
- 正規化を崩す
- ミドルウェアを変更する
オンラインゲーム
- ユーザ数が多い
- リリース後に継続して改修
データの分類
- マスタ
- 一度登録すると頻繁に更新されないデータ
- トランザクション
- 頻繁に更新されるデータ
- サマリ
- 集計結果を保存する。主に分析用。
- キャッシュ
- 頻繁に参照されるデータの置き場所。
- ログ
- 分析・デバッグ用
テクニック
- 1対1テーブル
- 基本的に1つにできるがトランザクション頻度によって分ける
- クラス継承
- ビジネス要件を把握する
- チームメンバーと議論する
- 既存のテーブル設計について
- コードレビューよりも早めにテーブル設計レビューを依頼する
データ特性に応じたミドルウェア選択
- RDB
- KVS
- DWH
おすすめ書籍
- 作者: Bill Karwin,和田卓人,和田省二,児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/01/26
- メディア: 大型本
- 購入: 9人 クリック: 698回
- この商品を含むブログ (46件) を見る
- 現場で役立つシステム設計の原則
現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
- 作者: 増田亨
- 出版社/メーカー: 技術評論社
- 発売日: 2017/07/05
- メディア: Kindle版
- この商品を含むブログ (3件) を見る
SRE がよく利用するソフトウェアの理解と分類講座に参加しました
感想
サポータズCoLabの「SRE がよく利用するソフトウェアの理解と分類講座」に参加しました。
SREエンジニアとして働くためには並大抵ならぬ努力がいることを感じざるを得ませんでした。
一方で、SREエンジニアとしての働き方にかなり興味を持ったのも確かです。
「自動化」 ・「制御してやったという達成感」
SREエンジニアとしてのモチベーションを尋ねたときの回答です。
それを聞いたとき、はじめて自分が書いたCIのymlが期待通りの挙動をしてくれたときに幸福感を感じたことを思い出しました。
コードをゴリゴリ書くことが1番の楽しみでしたが、なるほどそういう働き方もあるなという気づきをいただきました。
「一番困っていることから手をつけるのが良い」
オススメの勉強方法です。まずは課題を見つけるところから少しずついらいろな技術に精通していけたらと思います。
裏の勉強会がかなり盛り上がっていたようですがこちらの勉強会に参加してよかったです。
帰宅後、それぞれのサービスをググって概要だけでも眺めてみましたがかなり全体像がつかめた気がします。
今回紹介していただいたサービスだけでも
な、なな、なんと
43個
ありました。(驚)
全てに精通する必要はないですが、どういったツールなのか、どういう違いがあるのかくらいは理解しておきたいですね。
以下、メモ書きです。
メモ書き
自己紹介
- 北野勝久さん
- スタディストSREチームリーダー
困っていたこと
- コード管理されておらずブラックボックス化したインフラ
- 障害が発生してもモニタリング・管理が貧弱で状況がすぐに掴めない
- 何からやったらいいかわからないし周辺技術もたくさんある
ひらすら勉強
- 効率最悪
- 時間の無駄
これを知ってれば
- SREの全体像をみれていれば...
- 闇雲に走る必要はなかった
SRE?
- Google発
- システム管理者, DevOpsとは何が違うのか
- ソフトウェアエンジニアが、システム運用をしたらどうなるか?という観点で再定義されたシステム管理者の役割
- class SRE inplements DevOps
- それ以外の役割も担う
- それ以外の役割は各社で異なり厳密な定義はない
話す範囲
- 話さないこと
- ベーススキルセット
- 話すこと
- SREの責務範囲の枠組み
- ツール(AWSメイン)
Infrastructure as Code
- システム構成図をコード管理する
- プロビジョニング(nginx, MySQLのインストール)
- インフラのテスト
- マシンイメージの作成
Monitoring
- たくさんありすぎる
- NewRelic(使ってる会社が多い・有名)
- DataDog
- AWS CloudWatch
- GCP Stackdriver
- Mackerel
- Prometheus
- Zabbix
- Elasticsearch / Kibana
- ログを溜め込んだサーバーで検索・フィルタリング
- グラフや表で可視化
Log
ChatOps
- Slackなどのチャットツールからコマンドなどを入力することで何かしらの作業を行う
CI/CD
Development Environment
Infrastructure Automation
- イベント駆動アーキテクチャでインフラ操作自動化することを意図して記載
- 「○○が起きたら、XXXが起動し、△△する」というXXXの部分
Security
- IDS:検知
- IPS:侵入防止
- IDS/IPS
- WAF
- Audit
Data
Incident Management
- インシデント管理
- ステータス管理
- StatusPage(お客さん向け)
まとめ
- 全体像を把握し、それぞれのツールの役割を理解するのが良い
QA
- オススメの勉強方法や書籍