radioc@?

レディオキャットハテナ

ヴァル研究所さんの見学会に行ってきた

f:id:radiocat:20180224001806p:plain

会社全体でカンバンを運用しているヴァル研究所さんの見学会に行ってきました。ちなみに前日の2/22は駅すぱあと30周年だったそうです。おめでとうございます!

speakerdeck.com

ヴァル研究所さんのカンバンの取り組みは元々アジャイル界隈では有名な話ではありますが、昨年 アジャイルJapan 2017 大阪サテライト で新井さんのセッションを聞いて感銘を受け、なんとか一度見学に行ってみたいと強く思うようになっていましたがこのたび運良く参加させてもらうことができました。興奮が冷めないうちに見学してきた事をまとめておきます。

総務

  • 昨年の7月からからスクラムを勉強してスクラム方式を本格導入
  • 1週間単位のスプリントでスクラムっぽく業務を回している
    • 金曜にその週のふりかえりを行って翌週の計画を立てる
    • タスクにかかる時間をポイント化してベロシティを測っている
    • 完了条件の定義やスプリントレビューはしていない(開発と違い総務の業務はアウトプットがある程度明確だからと想像)
    • 予定していない割り込み業務が多く発生するため1週間の予定値より実績値が多くなり、その差を分析してKPT方式で改善している
    • 1年単位の会社行事もあるため長期的なTryが出た場合は別枠で管理
  • ニコニコカレンダー
    • 出社時と退社時のバロメーターをシールの色で表現
    • マイナスの色が続いたり退社時のほうがマイナスだった場合はそのメンバーに声がけ

コンテンツ部門

バスの時刻表をデータ化する業務を行っている部門

  • チームが担当するバス会社をバックログとして管理
  • 日本地図
    • 対応完了したバス会社の地域に付箋を貼って可視化
    • チームごとに色分けしてあるため陣取り合戦のようになる(旧国名の地図だった)
  • スキルマップ
    • バス会社によってデータ化の手順が違う
    • バス会社ごとにメンバーの対応可否と手順を教えられるかどうかをスキルマップ化

営業

toC向けアプリのマーケティングやプロモーション業務

  • うんこボード
    • 残業したら1時間ごとにマークを書く
    • 早上がりしたらお金マーク
    • メンバーの業務負荷状況を可視化
    • 1週間でうんこマークのほうが多くならないように周りでフォロー
  • おっぱいボード
    • 贅肉⇒業務の課題や無駄を見つけて付箋化
    • 胸⇒完了した付箋を胸の位置に集める
    • 贅肉を取って胸をふくよかにする
  • カレンダー
    • アプリの施策などの業務を付箋化してカレンダーに貼る
    • 終わったら付箋にスタンプを押す
    • 月単位で写真を撮って残す
      • 去年の同じ時期に何をやったかなどをふりかえる
  • ペアワークマッチングボード
    • 属人化を防ぐためにペアワークを募集する
      • 募集は付箋に貼り出す
    • ぼっち(ペアワークの応募がない人)同士をマッチングさせるシステムを作っている
  • 1週間の定例会議の中でお悩み相談の枠を設けている
    • 悩みに対して案出ししてドット投票
    • 上記のボードの運用などのアイデアを具体化

開発部

  • リリーストレイン
    • 半期の目標をチームごとに落とし込んで半年のリリーストレインで表現
    • 月に1回リーダーが集まってチェックする
    • ○件実施などのKPIはシールを貼って数える
  • 月単位のバックログ管理
    • その月のチームの取り組みを付箋化してステータスを管理

APIテクノロジー部

  • 1週間スプリント
    • 1人1タスクを割り当て(かけもち不可)
  • 8ポイントの残機
    • 1週間のうち1日は問い合わせやサポート対応用のバッファ
    • 週のはじめに1人8ポイントの印をつけておき1時間消費するごとに1ポイントずつ消していく
    • メンバーの負荷状況を可視化
  • チーム内のリリーストレイン
  • チームの目標をメンバー単位に落とし込んだリリーストレイン
  • 開運べいだー神社
    • サービスダウンするとべいだー様の「コォー」という声が発声されるXFD
    • ライトセイバーも光るらしい(障害発生時は余裕がないので光っているところは未確認らしい)

f:id:radiocat:20180224002748p:plain:w300

さいごに

対応頂いた @maruyamahiakru さんに色々お話を伺いつつ、感想を書いて帰宅。

f:id:radiocat:20180224002319p:plain

これだけ全社にカンバンが浸透していることはすごいことですが、さらに言えばそれだけカイゼン風土が根付いているということでもあると思います。ヴァル研究所の社員の方々は以前からDevLove関西で RODEMの開発の現場の話 を聞かせて頂いたり、 しがないラジオにもゲスト出演 されていたりなどでよく知っていましたが、外向けにも積極的に活動されているのもこのようなカイゼンの文化から生み出されているのだろうと思いました。

【勉強会メモ】関西Javaエンジニアの会(関ジャバ) '18 2月度

kanjava.connpass.com

  • 日時:2018/02/19(月) 19:30 〜 21:00
  • 場所:株式会社ロックオン大阪本社

今年最初の関ジャバは何かと話題のJavaの新しいリリースサイクルの話題からでした。色々話題になっているので断片的には情報は得ていたものの、改めて情報を整理できたのは良かったです。まだ流動的な部分もある状況ですが一度おさらいする意味でちょうど良い機会でした。Java10以降の状況についてもScalaやKotlinのようなモダンな言語の良いとろこを吸収していく動きは感じていましたが、改めてコードを交えて解説されると説得力があります。初めてJavaを書いた時からすると、これがJavaなのかというくらい変わってきた印象はあります。

後半はWeb+DB Pressで連載している「Javaの新定石」の執筆者ご自身によるお話でした。毎号読ませて頂いていますが、現場特化型とのコンセプトの通り業務での活用をイメージしやすい内容で参考にさせてもらっていました。特にSelenideの記事がちょうど仕事で使っていてタイムリーな内容だったことを覚えています。次号で最終回とのことで少し寂しさはありますが2年間お疲れ様でした。今後はJavaのリリースサイクルに合わせて半年サイクルで連載を…いえ、本当にお疲れ様でした。

Java 10以降のJavaリリース

@jyukutyo さん

  • Java9 2017/9/21リリース
  • Java10 2018/3/20(あと1ヶ月後)

Javaのリリースサイクル

  • 半年ごとに必ずリリース
    • 3ヶ月ごとにメンテナンス/セキュリティリリース
  • サポートは基本的に半年(次のリリースまで)
  • 無償版のOracle JDKはなくなる
  • OpenJDKビルドが代わりになる
  • ライセンスはGPL(クラスパス例外付きGPLv2)

Oracle JDKとOpen JDK

  • 機能的な差はない
  • 商用機能はOpenJDKに統合される

統合される機能

  • AppCDS
  • Java Flight Recorder
  • Java Mission Control
  • ZGC

AppCDSはJava10に統合済み、残りは11以降

サポートについて

半年ごとにバージョンアップしないといけないか? ⇒No

OpenJDKにもLTSがある

  • LTSは3年ごと
  • 最初のLTSはJava 11、次はJava 17
    • 11のリリースから17のリリースまでは3年(重なる期間がない)
  • 少なくとも3年になる予定(公式発表はまだ)

Mark Reinhold の話

  • Devoxx

www.youtube.com

  • Jfokus

youtu.be

Java8の公式アップデートは2019年1月まで

⇒LTS(Java11)がでてから4ヶ月

時期を考えると

8⇒11

というのが良さそう

新しいリリースモデルへのよくある誤解

LTSではないリリースは実験的リリース?

  • 本物のリリース

各リリースは過去の各リリースのように破壊的?

  • イテレーティブになっただけ

古い機能は予告から3年後に削除?

  • 半年後に消える可能性もある

更新が頻繁でないシステムならLTSでないリリースは無視して良い?

  • 3年単位だとメジャーバージョンを6回はさむのでそれなりに大変

LTSでないリリースはアップデートが2回しかない?

  • 「最低」2回

LTSリリースは3年以上サポートされない?

  • 「最低」3年

今後のJavaについて

Java10に入る機能

http://openjdk.java.net/jeps/

Java11以降

OpenJDK Projects

Amberについて

お作法を少なく

  • var
    • ローカル変数の型推論ができる
    • 動的型付きではない⇒あくまで推論
    • 予約語
  • データクラス
    • recordと書くだけ
    • Kotlinの dataScalacase に近い感じ
  • 式としてのswitch
  • sealed型
  • パターンマッチ

※メモ

このあたりが参考になりそう

qiita.com

Javaの新定石

@irof さん

  • Java+DB Pressで連載12回
  • 次号で最終回
  • ちょうど2年

コンセプト

  • 現場特化
  • 自分たちが実際にやっていることを書く

対象読者

  • ある程度の経験
  • モダンなことに興味ある

Java6⇒8のマイグレーションの話

  • Project Coin
  • NIO.2
  • Project Lambda

マルチスレッドGCとの付き合い方

  • わかったうえで安易に近づくな

JavaEE

  • 今同じことをSpring Bootで書いても多分大差ない

JavaEE の新名称に投票しよう

www.publickey1.jp

AssertJ

Doma

Java8の日付時刻操作

  • Local系
  • 現場で悩む「変換」

Gradleビルド環境

  • Maven/EclipseでもできなくはないことをGradle/IDEAで簡潔に

Optional/Stream

  • 「最高」ではなく「やめとけ」と「注意しろ」
  • 適材適所

Selenide

Thymeleaf

外部接続

Mockito

  • 最新号を参照

WEB+DB PRESS Vol.103

WEB+DB PRESS Vol.103

海外カンファレンスJfokusの紹介と感想

@jyukutyo さん

Jfokus

www.jfokus.se

  • Javaカンファレンス
  • 参加者2,000弱
  • スゥエーデン、ストックホルム
  • 2日間+1日オプション(有償で研修を受けれる)

VM Tech Summit

  • JVM開発者の話
  • 参加者30名強だがJVM開発者か有名エンジニア
  • 日本では絶対に聴けない

カンファレンス本体

  • DDD/Kotlin/Springなど
  • カンファレンスチケット:10万
    • 税率25%
    • 朝昼、パーティー1回込
  • 航空券13万円
    • 日本から直行便ない
  • 宿泊費:1泊2万(3つ星)×4泊

よい運営、よいカンファレンス

寒い、物価高い、デザートが超甘い、服の色はモノトーン

JavaOneは唯一無二(5日間、参加者数千人)だが

  • 自腹で行くならDevoxx/Jfokusなどに何回も行く方がよいかも
  • 1回だけ行くのは費用対効果が低い

【勉強会メモ】総関西サイバーセキュリティLT大会(第7回)

sec-kansai.connpass.com

  • 日時:2018/02/14(水) 19:00 〜 21:00
  • 場所:エムオーテックス株式会社大阪本社

2ヶ月に1回開催されている関西のセキュリティ系勉強会。今回はなんと1周年とのことでした。私個人は専門分野というわけではないので、過去に何度か恐る恐る参加させてもらったというレベルですが、毎回とても勉強になっています。

今回も行動分析によるセキュリティの話やDevSecOpsなどのキーワードは個人的に新しいインプットでした。そのほかLINEやNISCの取り組みをはじめ、年々高まっているセキュリティリスクに対する各所での取り組み事例も参考になります。

ところで、2/1〜3/18まではサイバーセキュリティ月間とのことです。今季のTVアニメ「BEATLESS」とのタイアップ企画も実施されているようです。希望者はポスターがいただけるとのことでじゃんけんして見事ゲットしました!会社の掲示スペースに貼っておこうと思います。

f:id:radiocat:20180214231509p:plain

人の行動に視点をおいたセキュリティリスク対策について

富士通株式会社セキュリティサービス事業部シニアマネージャー 渡辺訓広さま

人の行動に視点をおいたセキュリティ

  • 活用するのも破棄するのも人
  • 人は信頼できない存在でもある

人の行動に視点をおく

UEBA(User Entity Behavior Analytics)

※参考

セキュリティ対策の次の一歩は「UEBA」(前) - セキュリティ対策の次の一歩は「UEBA」:Computerworld

行動分析が注目される市場背景

セキュリティ境界の膨張

  • 業務委託や外部サービス利用が増えてセキュリティの境界が膨張

ガバナンスの欠如

  • 成長しないセキュリティマネジメント

守るべき対象の拡散

  • 働き方改革
  • オフラインの端末が増えている
  • アクセス回線の多様化

リスクを冒す人を防ぐ原則

  • 手段、動機、機会を揃えさせない

行動分析の事例

  • 単独の業務ではリスクは見つからない

例)

  • 潜在的な対象者を発見しデータ持ち出しを未然に防止
  • 事故を起こさない人、起こす人を分析・見える化

行動分析のポイント

  1. 対象部門の選定
  2. 事業課題・リスクの把握
  3. 基本方針・ポリシー・プロシージャの見直しおよび策定

LINEのセキュリティ及びプライバシー保護に関わる取り組み

LINE株式会社セキュリティ室マネージャー市原尚久さま

アプリケーションセキュリティチーム

  • 設計…セキュリティデザイン
  • 開発…コードチェック
  • QA…リスク分析

LINE Security Bug Bounty Program

bugbounty.linecorp.com

支払った報奨金

  • 140,000 USD
  • 69 ISSUES
  • 14 Countries
  • 227 Hackers

SPAM対策

  • Blocking Flow 2
  • Rule-baseのフィルタリング⇒MLベースのフィルタリング導入

Elasticsearch+Kibana利用

Account Abusing(アカウント乗っ取り)

LINEサイバー防災訓練を昨年実施

linecorp.com

認証連携の複雑化

  • モバイル版…プライマリー
  • PC版…セカンダリー
  • LINE Family Services
  • 3rdParty App
  • IoT関係(Clover)

fido alliance活動

セキュリティ室(App Sec. Team)の活動

  • アプリのセキュリティ診断
  • ソースコードを見ながらレビュー
  • 診断用ツールが豊富
  • 日本人は1/3
  • 国内/海外カンファレンス参加出張OK
  • 有名なセキュリティスペシャリストと一緒に働ける

サイバーセキュリティ月間連携講演

内閣サイバーセキュリティセンター(NISC)杉尾憲さま

サイバーセキュリティ基本法

サイバーセキュリティ戦略

  • 国民が安全で安心して暮らせる社会の実現

普及啓発活動

サイバーセキュリティ月間⇒2/1〜3/18(サイバーの日)

www.nisc.go.jp

3/4 BEATLESSタイアップイベント

www.nisc.go.jp

情報セキュリティハンドブック作成

www.nisc.go.jp

Twitter

  • @cas_nisc
  • @nisc_forecast

日替わりコラム

ひとこと言いたい![みんなでしっかりサイバーセキュリティ]

サイバーセキュリティの底上げ

  • 攻撃者⇒組織だっている
  • 衛るがわ⇒まだまだ組織だっていない
    • 情報共有、連携、自助、共助、公助

LT大会

2018年!彼女が喜ぶ神戸デート1選

1選⇒Kobe Digital Labo

わくわくどきどき脆弱性診断ハンズオンの開催

vatkobe.connpass.com

  1. セキュリティ診断
  2. Webアプリケーション
  3. 診断ツール
  4. 診断作業(ハンズオン)

使ったツール:OWASP ZAP

どういうところでつまずいたか(参加者アンケートより)

  • 機能が多い
    • スキャンモード
    • プロテクトモード(推奨)
    • スキャンスレッド
    • Global Exclude URL
    • Scan Progress Dialog

検証方法の体験

  • アラートタブで実際に確認

ツールの機能を正確に使いこなそう

CSIRT体験記 初めての長期休暇編

CSIRT専任者

リフレッシュ休暇中にインシデント発生

  • 対応完了まで2週間

インシデント対応プロセス

  • インシデントかどうか判断する情報収集プロセスがCSIRT担当者でボトルネック発生

圧倒的準備不足

  • 作業の属人化による対応遅延
  • CSIRTメンバーが誰か対応できるように対策

準備不足2

  • インシデントの対応スピードを決めていなかった
  • インシデントレベルと対応目標を定める
  • 対応目標時間や休日対応の条件など

インシデントレスポンスは準備が超重要

NISTインシデント対応ライフサイクル

※参考

https://www.ipa.go.jp/files/000025341.pdf

先人の知恵を借りて準備

⇒インシデントは検知してからが本番ですが、やってみないとわからないこともたくさんある

  • 準備できることはしておく
  • 先人の知恵を借りる
  • インシデント対応訓練

詳細は情シスCafe in Kobeで公開

情シス Café in Kobe | Doorkeeper

シンガポールでセキュリティのイベントやった話

シンガポールで自社製品のPRイベント

  • シンガポールのイベントは朝が早い
    • 9時スタート⇒準備はもっと早い
    • 7時に現地集合
  • イベントにランチを提供しないといけない
  • お土産必須
    • Facebook広告とLinkedinでアピール

ちゃんとお客さんが来てくれるか?⇒来てくれた

  • 朝早く⇒家族大事な文化、夜は早く変えるのが当たり前
  • ランチは余った
  • お土産⇒一定の効果あり高額でなくてもいけそう

時空魔法で過去に戻れたら

設計時からDevSecOpsしたかった

DevSecOpsについて

2018年のトレンドらしい

www.itmedia.co.jp

DevOpsとSecのマリアージュ

⇒オンプレ環境におけるDevOpsは難しいと個人的に実感

  • Dev⇒作って壊してが容易ではない
  • Ops⇒バックアップから簡単につくれない

DevSecとOpsで考えると腹落ちしやすい

ツール導入することがゴールではない

DevSecOps

  • デイリー自動診断と修正後に手動診断
  • リリースレビューの中で診断結果レポートを添付

  • コードを書きながらSAST

  • デプロイしながらDAST

設計時からのDevSecOpsしたかった

DevSecOpsやるならお早めに

不正アクセスを受けるとどうなるか?

不正アクセスを受けて気づくまで

Dos攻撃による不正アクセス

  • 手足が冷える
  • 胃がいたくなる
  • 眠れなくなる

対策

  • 攻撃者へメール
  • ログ解析
  • 顧客情報の重要性
  • 優しくなる

【勉強会メモ】Alexa Day 2018

jaws-ug.doorkeeper.jp

  • 日時:2018-02-11(日)09:30 - 18:00
  • 場所:スペースアルファ三宮

f:id:radiocat:20180212000438p:plain

神戸で1日まるごとのAlexa Dayが開催されました。Alexaを冠する日本最大のイベントが開催されるとのことで張り切って行ってきました(少し遅刻して開始には間に合いませんでしたが)。

会場は大きな会議室を2つ使って同時並行でセッションが進みました。立ち見が出るセッションもあるほどで、この分野の盛り上がりを感じることができました。

セッションの中でも話題にあがっていたように音声認識や応答の技術が浸透すれば、既存のIT技術の活用には格差のある子供やお年寄りでも手軽にIT技術を活用する機会が増える可能性があります。一方でVUIという新しいユーザーインターフェースの設計や実装はまだまだ発展途上なので、今回のイベントのように実際に開発に携わった人たちが中心となってユーザーグループ主導でノウハウを共有して盛り上げていくことは今後のためにとても重要な機会だと改めて感じました。

日本ではまだ少し先になりそうですが既にアメリカではtoB向けのAlexa for Businessも始まっており、今後は家庭からオフィスまであらゆる場面にVUIが浸透し対話によるIT技術の利用がますます加速すると思われます。サーバサイド視点で考えると、モバイルの浸透の時と同様でまた1つ新たなインターフェースに対応していかなければならないとも言えるので、レガシーでモノリスなシステムはますますツラみが増すだろうなと感じずにはいられない動向でもあります。

金融機関向けAmazon Echo/Alexaへの取り組み事例紹介

※途中から参加したため後半だけのメモです。

開発について

  • 通常アプリとの開発の違いはあまりない

単体テスト

結合テスト

  • 基本的に手動テスト
    • 自動化はほとんどできず今後の課題
  • イントネーションや発話の長さをテスト

金融機関向けと一般向けスキルの違い

セキュリティ面が中心

専用PINの発行

  • 残高を聞かれる⇒PINコードを要求
    • 一度PINコード認証されると数分間はOKのような仕組みも必要

OAuth2.0

  • Authentication を使用
  • 既存のOAuth基盤を変えずに実現

その他Tips

  • アルファベットは極力カタカナで表記すると想定外の発話が返されることはない
  • Intentが正しくてもSlotが正しいとは限らない
    • キャンドル(カナダドル)をキャンセルと学習してしまう
    • Slotのバリデーション
  • エラーハンドリングの迷子
    • 例)さんの…みや支店⇒Alexa:みや支店?
    • ユーザーが次に何をすべきかを明確に応答する
  • 8秒でタイムアウト
    • ロングランの処理はさせない

今後の取組み

  • Push通知(現在日本は未対応)
  • どこでユーザーが離脱するかわからない⇒分析

Alexa Skills Kitでプロダクトの可能性を広げる

USでのスキル公開数

  • 2016/10⇒4,500
  • 2018/02⇒32,000

フラッシュブリーフィング

  • HTTPSで利用できるRSSフィードがあれば5分ぐらいで作れる
  • オーディオデータを含められる
  • Echo Showのようにディスプレイがあれば動画も再生可能

スマートホームスキル

カスタム対話モデル

開始フレーズ:「○○を開いて」で対話を開始する

  • 呼び出し名
  • スロット
  • サンプル発話

3つの組み合わせ

呼び出し名

  • どのSkillを使うかが決まる
  • ウエイクワードやつなぎ語を含んではならない

developer.amazon.com

スロット

  • ビルトインタイプ
    • 主要都市
    • 名前
  • カスタムタイプ
    • 自分で作る

対話モデル

  • サンプル発話
  • 想像できる発話を登録しておいてインテントに紐付ける

インテントスキーマ

  • サンプル発話に定義した発話の構造を定義

プロダクトのSkill 開発

ゼクシィキッチンの事例を中心に

VUIの設計

  • アプリのキャラ設定…サービスによっては考える
  • SSMLを使ってより自然な発話を目指す
    • 既存コンテンツを利用する場合は変換するのは難しい

ユーザーストーリー

  • オススメの料理を見つけられる

台本の作成

  • どういった使い方をするかを考えてみる
    • はじめは使い方を教える
    • いろんなパターンで聞いてくるのを想定する
  • 前回のセッションをチェックする
    • Alexaは一定時間応答がないと切れる
    • 次来た時に再開を考える
  • 慣れてくるとピンポイントで指定される

スキル構築の準備

  • スキルに必要な機能(インテント)は?
  • 検索のインテント
    • キーワードをスロットとして扱う
    • キーワードを使った考えられる発話内容を洗い出す

開発

  • AWS Lambda Functionを使う
  • 自分でホストする
    • SSL/TSL対応必須
    • 既存サービスがある場合
  • Node.jsやPythonSDKあり
  • Alexa Skills Kit CLIを使う
    • Jenkinsなどで自動化に利用できる
    • 日本語化がまだイマイチ

CLIのインストールと使用方法 | ASK

開発環境

運用

利用状況をチェック

  • メトリクスを見れる
  • どんなインテントがどれくらい呼ばれているか
  • スロットに登録していないキーワードが来る事も多い ^ 使われる言葉をワードクラウドで確認
  • 終了できちんと終わらないこともある

“アレクサ、パルコ をひらいて” 〜ショッピングセンターのAlexa活用のねらい〜

ショッピングセンターでAlexaを活用する。

PARCOスキル

  • 池袋PARCOのショップ、レストランの情報、周辺施設の情報を音声で検索可能
  • インフォメーションセンターで日々集計している問い合わせ記録の中でよくある質問600種類の質問に応答可能
  • PARCOの店頭にEchoを設置する前提で開発
  • 最新テクノロジーで接客を拡張する

BtoC(対顧客)

  • コミュニケーション手段が変化している

BtoB(テナント)

  • 人手不足、業務効率化の必要性

スマートフォンの普及でいつでもどこでも気軽に使える要求の高まり

24時間PARCO

  • いつでもどこでもショップスタッフとお客様がコミュニケーション可能
  • オムニチャンネルプラットフォーム

PARCOの接客拡張の取り組み

  • 2015年〜Pepper導入、多言語化など
  • 自走式ナビ…NAViiくん

ロボットは人よりも接客が得意?

1日あたり

  • インフォメーションセンター接客⇒134件
  • ロボット接客⇒403件

入り口前のインフォメーションセンターで顧客が質問するのはハードルが高かったという気づき⇒接客ロス

ロボット、機械のちからが必要

  • お客様から何を聞かれたのかの全データを記録できる
    • 今まではスタッフが手作業で集計・管理

ロボットで接客ロスを解消したいがコストの壁

  • 2017年AWS Summit Tokyoで相談
  • 不特定多数の場所でAlexaを使って何かするのは事例が少ない

↓検討中

  • Echoとタブレットを連携させたい
  • 店舗の複数箇所に設置する想定

今後やりたいこと

  • ロボットとの連携
  • 入店時の研修のオンライン化を進めているが、Alexaがマニュアルの指示を出したり質問に答えるようにできないか

課題

  • 店舗名をうまく発話してくれない
    • Voiceシュミレーターでテスト⇒テキストで修正
    • 音声ファイルに録音して修正指示
  • 別の言い回し(ゆらぎ)
  • 家庭ではなく公共空間への設置を前提とした設計が必要
    • 盗難防止策
    • 立っている高さに合う台
  • 雑音の中で正常に動作するか
    • 展示会会場では正常に動作した
    • 実際に設置する予定の場所でテスト予定
  • 他のスキルを起動されてしまう恐れ
    • Amazon Echoでは制御できない
    • 別のハード開発が必要⇒いったん対応保留
  • 設置場所によって案内の内容が異なる
    • 例)トイレの場所⇒一番近い場所を応答したい
    • Echoの端末設定で住所を分けて設置場所に応じた案内をする
  • ショップが入れ替わった際のメンテナンス
    • Webサイトで持っているショップデータを流用して自動更新を目指す
    • インテントの追加ではなくカスタムスロットのデータを更新できるように
      • 審査なくメンテナンスしたい
  • Amazonから店頭設置のGOはまだ出ていない

メモ

  • スロットの定義の数は1,200〜1,300ぐらい

Alexa and Machine Learning on AWS

www.slideshare.net

2つの重要なフレームワーク

  • ASK
  • AVS

日本で公開されたもの450以上のSkill

  • Voice Interfaceは新しい標準
  • 全ての検索トラフィックの10%
  • 2020年までには毎月2000億回の音声検索が行われる見込み

Alexa for business

  • ビジネス環境でも家庭と同じことを
  • Voiceで職場を変革
  • 受付、会議室など

管理者のコントロール

  • 共有デバイスのプロビジョニングと管理
    • ビデオ会議室システムの制御
  • ユーザー管理
    • 個人アカウントを会社管理に紐付け
  • スキル管理
    • プライベートスキル
      • パブリックに公開されない企業内の業務用スキル

Resolve Room

  • どのデバイスがどの会議室に置かれているか
  • ラスベガスのホテル⇒全ての部屋にEcho Dotが設置されている

Skill Parameters

  • スキルに他システムへのインデックスを提供

制限

  • 英語のみ
  • Roomの住所はアメリカのみ対応
  • バイスの登録がexe⇒Win必須

AI系のAWSサービスについて

Service

Amazon Rekognition

  • 画像認識
  • ビデオも追加された

ユースケース

  • 監視カメラの問題行動検知
  • 動画データの検索

Polly

  • テキストを音声に変換
  • いろいろな声、話し方、スピードなどを調整

Lex

  • 8kHzの電話音声に対応
  • Webアプリケーションやモバイル・アプリケーションに埋め込み
  • コールセンターアプリケーションへの対応

Comprehend

Translate

  • 多言語間翻訳

Transcribe

  • Speech-to-Text
  • 通常音声と電話音声の両方をサポート
  • 句読点の補完

ML Platform

Kinesis Video Streams

  • 動画に対してリアルタイムでアップロード
  • リアルタイムで処理しながらS3に保存
  • 街の監視カメラの動画をRekognitionと連携
  • 工場の自動化

SageMaker

  • 機械学習モデルを生み出すのにコストがかかる
  • ノートブック(Jupyter Notebook)、学習、推論
  • 3つを個別に利用することも可能
  • 様々なMLライブラリが入ったDockerイメージを提供

EL Engine

ML Infra

Amazon ML Solutions Lab

  • 機械学習エキスパートのサポート
  • シアトルで合宿形式

パルコ様事例にみるAlexaとデジタルサイネージを連携する方法

クラスメソッドとAlexa

  • Developers.IO
    • 140万PV
    • Alexa記事100本以上
  • Alexa事業部化
    • 北米スキル17本
    • 日本向けスキル10本

PARCO様向けSkill

開発中の課題と解決法

  • 店舗名の複雑さ…300店舗ある
  • アルファベット・記号が多い
  • 略語・通称での発話

⇒Tokenizarに優しいスロットを作る

発話⇒ASR⇒テキスト の部分に注目

  • ノイズの除去
  • エコーキャンセル
  • 特徴点の抽出
  • 音響モデルの作成
  • 発音認識
  • 言語モデルとのマッチング*
  • 単語認識*
  • 後処理

*の部分に注目しTokenizarに優しいスロットを作るためには単語モデルに合ったスロットを作る

  • 英単語は全てカタカナにする
    • ⇒日本語の単語モデルだから
  • 単語の区切りにスペースを入れる
  • 略語も登録
    • Lambdaでマッチングロジックを作る
  • トリム処理も必要(ATM⇒A T Mでスロットに入ってくることもある)

インタラクションモデルを使うかダイアログモデルを使うか

  • VUI設計時点から意識する

イントネーションが悪い

  • SSML職人化
  • <prosody pitch="xx%"> を駆使

レスポンステキストをより人間っぽく

  • 実際の受付係の方に覆面調査を実施

どうしようもできない事

  • 音声だけではたどり着けない(フロアが広い)
    • 案内図が必要
  • 複数ある施設が使いにくい(トイレなど)
    • 一番近い場所

タブレット連携要件

  • Alexaのレスポンスと同時に画面が切り替わる
  • Echoとタブレットは直接接続できない
  • 複数セットで配置するがペアで管理はしない

AWS IoT

  • MQTT over webSocketを使ってリアルタイム通信
  • Cognitoで認証
  • Things/Shadowsを使ってデバイスを個別認識

所在地分岐の方法

  • Echoデバイスの配置場所によってトイレの場所のメッセージが違う
  • Echoは別店舗に移動する可能性、廃棄する可能性(deviceIDはNG)

⇒デバイスの所在地を使う

  • 住所3は自由記入
  • device address APIで住所を抜き出して住所3で分岐させる
  • consent token
    • ユーザーの住所情報に対する許可をtokenの形で受け渡し

よくある要望と現在のチャレンジ

  • 会議室予約
  • 発注を音声で
  • 社内システムの検索や参照

⇒alexa for business

  • 電話を使いたい
  • 音声を聞き取って案内したい

⇒LexとAmazon Connect

  • Wake Word以外の呼び出し方
  • ノイズが大きい場所
  • 住所や社員コードを音声で言うのは面倒
  • スマホの機能(Touch IDなど)と連携したい

⇒Alexa Voice Service

Alexaの未来

  • ヒューマンインタフェース
    • 5年後10年後には音声対話が当たり前になる
    • IT技術は世代間の違いが大きい
      • 音声のほうが原始的な操作なのでITサービスを受けられやすい

How do we connect VUI to the real services using serverless

VUIデザインの話

音声デザインガイド

Amazon Alexa Voice Design Guide

  • 目的とユーザーストーリーの設定
  • 台本の作成
  • 対話フローの作成
  • スキル構築のための準備(スキル、インテント、スロットへマッピング

われわれが作りたいのはIVRではない

  • 言葉ではなく意味・文脈を理解するアシスタント

Skill Builderの活用

  • インテントの作成
    • 対話のパターンを登録
  • カスタムスロットの作成
    • 別名をたくさんつけてゆれを吸収

⇒VUXデザイナーが必要になる

AWS Lambda

  • パラダイムシフト
    • コンピューティングリソース調達のリードタイムなど
  • FaaSの台頭
  • サーバレスエコシステム
    • ペインポイントも多い
  • サーバレス
    • 開発の高速化
    • 運用の省力化

サーバレスの分類パターン

  • Webアプリケーション
    • SPA
    • CSVアップロード・ダウンロードのような仕組み
      • S3に置いてLambdaで取り込む
    • REST API
    • shifter…WordPressを静的ページにしてくれる
  • 運用
  • アプリケーション連携
    • Alexa Skill Set

事例

エコちっち

  • 音声コマンドで妖精を育てる
  • Node.jsでalexa-sdkを使う

状態確認してから実行する方式と直接実行する方式

  • 対話の流れの制御にはステート管理が重要
  • Lambdaのステート⇒Dynamoで永続化

HRアプリ

  • 例)
    • 鈴木さん給与 を教えて
    • 佐藤さん人事評価 を教えて
    • ↑同じ形式
    • スロットの内容によってコマンドの分岐が発生する
    • 設定したシノニムが全て呼ばれるので全て実装する必要がある

ソースの規模

  • 感覚的には150行ぐらい⇒816行

ステートを制するものが対話モデルを制す


Alexa Skill Contest

Nanchen Jiang : 家族全員で楽しめる新感覚クイズタイム

クイズゲーム

  • 1人から5人まで参加
  • 1人あたり6問
  • だんだん難しくなる
  • 採点は奥さんの評価
  • 点数を累積
    • レベルアップという機能を追加

Ippei Sumida : CoderDojo Hirakata

イベントお知らせスキル

  • TwitterFacebookは受動的
  • Webでイベントを確認するまでは手順が多い
  • 能動的な仕組み

Alexa Skillを作りたかった

  • APIの仕様がわからない
    • Try&Errorで作成

審査

  • リジェクト4回
  • 子供向けスキルと誤解
    • 子供向けのイベントであるがSkillは子供向けではない
    • 保護者向けアピール

Tomoharu Ito : Push and go!

  • ビーチフラッグスのようにエコーボタンを使う

Sayaka Ito : リマインダーAPIをハックして、Alexaを積極的なキャラにする

Notificationのデベロッパープレビューに申し込み

⇒まだ来ていない

Alexaに自発的に喋らせる

⇒リマインダー機能を使った

Hidetaka Okamoto : クラウドクイズゲーム

github.com

カルタの問題

  • 読み手はゲームに参加できない

クラウドクイズゲーム

  • カルタは自分で作らないといけない

Alexa クラウドクイズゲーム スキルを公開しました

  • クイズモードも作成
    • 3択方式
  • サポート言語⇒日本語だけでなく英語も

Tomoyuki Tochihira : HELP ME

少子高齢化社会

緊急時には声で

  • Alexaで助けを呼ぶ

SMSで通知

  • 位置情報が送信される

alexa⇒twilioに連携

Yusuke Morishita : necco Lunch

  • 会社で昼食当番制
  • WordPressで作った昼食を登録
  • あとで経費精算

Alexa Echoで過去のメニューを確認する

  • 学校の給食などに応用を想定

Jumpei Nakada : 赤ちゃん体重ロガー

体重1kgあたり160g/日のミルクを飲まなければならない

  • 授乳前と後に体重を言うと体重とその時間を登録
  • どれくらい飲んだか、次回の授乳予定時刻を応答する

Koichiro Nishijima : うちなーぐちスキル

沖縄のコンビニ⇒ATMが方言を喋る

Alexaに方言をしゃべらせる

投票結果発表

  • 3位…Push and go!
  • 2位…HELP ME
  • 1位…赤ちゃん体重ロガー

【勉強会メモ】Mobile Act OSAKA #3

mobileact.connpass.com

  • 日時:2018/02/05(月) 18:45 〜 21:20
  • 場所:Osaka Innovation Hub (大阪イノベーションハブ)

iOS/Androidアプリ開発を中心に幅広いテーマを扱う勉強会で、今回もReact NativeからGoogle Home/Amazon EchoAndroid TVなど幅広い内容で充実した勉強会でした。React Nativeは Web+DB Press vol.102 でも特集されていてじわじわ来ている感があります。アクセシビリティも最近よく話題に上がるテーマと感じています。懇親会も様々な話題の情報交換ができて充実した時間でした。次回はまた2ヶ月後に開催とのことです。

ちなみに余談ですが、先日私も Google Assistantアプリを公開しました が、今のところTシャツはもらえてません…

iOSバイスを特定アプリ専用端末化する2つの方法

oishi

遅刻したため後半少ししか聞けませんでした。 アプリをシングルアプリモードにして完全に専用アプリ化するという話だと思います。

一度設定すると設定したMac端末からでしか解除ができない。万が一、設定したMacを買い替える場合などは以下のサポートサイトの手順で移行できるとのこと。

Apple Configurator 2 のデータを保存または移行する - Apple サポート

DroidKaigiアプリにコントリビュートしてみた

なっぱんだ

DroidKaigとは

  • 日本のAndroidカンファレンス
  • 2/8 新宿で開催

DroidKaigiアプリ

github.com

コントリビュートした内容

  • デザイン修正
    • 簡単なデザイン調整
  • バグ修正
    • セッション終了時間のバグ
    • 表記ミス
  • Typo修正
  • Lintエラー修正

簡単な修正でも喜ばれるので気軽にプルリクを送る

メモ

  • Q:どのくらいの期間でマージされるか

    • 早ければ3分くらい
    • 遅くても1日以内
  • Spellは辞書登録できる

Androidで用意されている​端末との近距離通信のあれこれ

TakuyaOhashi

Android Beam

  • Android 4.0 から追加
  • NFC通信
  • 4.1以降はBlutoothに切り替えて通信

良い点

  • AndroidOSの機能なので受信側が同じアプリを入れなくても良い
  • ネット接続不要
  • 比較的大きいデータも早く送受信

悪い点

  • 近くないと通信できない
  • Android Bean設定はデフォルトでONになっていない事が多い

評価

  • ○:近距離の端末にメッセージを送る
  • ○:オフライン対応
  • △:1対多通信

Nearby Messages API

developers.google.com

  • 人間の耳に聞こえない音を使う
  • API Keyが必要
  • iOSにも対応

良い点

  • 近距離の知らない人とも通信
  • OSに依存しない

悪い点

  • オフラインでは利用できない
  • 耳に聞こえない音が聞こえる可能性もあるらしい
  • 100KBまで

評価

  • ◎:近距離の端末にメッセージを送る
  • ×:オフライン対応
  • ○:1対多通信

Nearby Connections API

developers.google.com

良い点

  • オフラインで利用可能

悪い点

  • GooglePlayServiceに依存

  • ○:近距離の端末にメッセージを送る

  • ○:オフライン対応
  • ○:1対多通信

まとめ

  • 超近距離ですぐ使いたい…Android Beam
  • OS依存なし…Nearby Messages API
  • オフライン利用…Nearby Connections API

メモ

事例:Googleフォトに実装されているらしい

Decodable.CodingKeys のキー名を動的っぽくする

hokuron

Swift4のDecodableについて。あまり詳しくないため詳細はメモできず。以下のような話だったと思います。すみません。

  • init(from:) のデフォルト実装を使いたい
    • Decodableの実装のテストまで必要になりそう
    • 実装はシンプルにしたい

スマートスピーカーをリリースした知見

gaomar

Amazon EchoGoogle Homeについて

  • スキル(アクション)を開発しリリースできる

Amazon Echo

Google Home

アプリをリリースするには審査に合格しないといけない

リジェクト事例

応答後にマイクオープンしっぱなしはNG

  • 「他に知りたいことはありますか?」で会話を継続させる
  • 便利なメソッド
    • ask会話を続ける
    • tell会話を終了する

Amazonの場合の問題

  • ヘルプやストップに反応させる必要あり
    • ちゃんと応答しないとリジェクト
  • 「終了して」にハマる
    • SessionEndRequestにとぶ

アプリの申請

承認の連絡

プライバシーポリシーについて

  • Google Homeはプライバシーポリシー必須
    • プライバシーポリシーの使い回しはリジェクトされる
  • AmazonEchoは特に必要ないのに書くとリジェクトされる

メモ

  • Q:ユーザーが何を言ったかわかる?
    • Echoはわからない
    • GoogleHomeはDialogflowに履歴が表示される
  • 開発登録費用は不要
  • Google Homeアプリを公開するとTシャツがもらえる

ReactNativeの開発環境を5分で作る

Takuya Fujimoto

ReactNativeとは

facebook.github.io

メリット

  • 1度の実装でAndroidでもiOSでも動く
  • 開発のテンポが一定に持続
  • 既存のアプリケーションにも部分的に導入可能
  • ReactNativeが提供していないブリッジ部分は独自で開発可能

デメリット

  • ノウハウ事例が少ない(英語の資料)
  • 今後続いていく保証はない(Facebookしだい)
  • Reactの学習は必要
  • WebViewベースのハイブリットアプリよりは早いがネイティブよりは遅い

開発環境を5分で作る

必要なもの

開発のしかた

  • create-react-native-app を使う
    • webpackの設定など全部入り
  • react-native-cli を使う
    • 自分で作るがちゃんと開発するならこちら

開発の流れ

  • brewでwatchman(Facebook製のバグ監視ツール)のインストール
  • npmで CLIインストール
  • react-native init でプロジェクト作成

実行

react-native run-ios react-native run-android

こういう時はReact Native

  • ネイテイブ開発者がいなくてWeb開発者ばかりだがネイティブアプリを使いたい
  • Reactに知見がある
  • スピード重視
  • iOS/Androidで共通コンポーネントで作り、保守性を上げたい
  • Facebookが出す技術が好き

メモ

  • Q:パフォーマンスは?
    • ネイティブより遅いと言われているが実際は体感できるほどでは明確に遅い事例は把握していない

モバイルアプリのアクセシビリティ

itok

speakerdeck.com

アクセシビリティ

  • 利便性
  • 障害の有無にかかわらず利用できる

例えば音声フィードバック

VoiceOverについては過去のスライド参照

speakerdeck.com

Andoridの音声フィードバック

  • android:textをそのまま読む
  • layoutを1つのグループとして扱う

など

要素を設定してタップするとその範囲を読み上げてくれる

読み上げの例

2月1日(木)

  • iOS
    • にがつついたちき
  • Android
    • にがつついたちもくようび

2月5日(月)

  • iOS
    • にがつごにちげつ
  • Android

    • にがついつかげつようび
  • Androidの日本語読み上げ

    • 自然にイメージ
    • イントネーション音もいい感じ
  • iOS
    • 調整が必要なことがある

Googleのユーザー補助検証ツール

play.google.com

メモ

Android TV

YusukeHonke

speakerdeck.com

Android TV

  • インターネットサービスの使えるTV
  • Voiceで検索できる

Netflixの事例

  • 最初はスマホやPCの加入者が多いが半年経つと圧倒的にTVが多い

いつも家にある

映像

  • Google Homeだとずっと聴くだけ⇒意外としんどい
  • 映像があるほうが良い

Googleの事業戦略

まとめ