早くなんとかしないと…

社会人としてもシステムエンジニアとしても駄目になってしまう…

HTTPS配信を有効にしました

本ブログのHTTPS配信を有効にしました。
混在コンテンツがないかなどの確認はしてません…眠いのでまた後日。

「スマートスピーカー × サーバーレス 入門(広島開催)」に行ってきました #dreamarts #orizuruIT

2018年5月12日に、株式会社ドリーム・アーツ主催の「スマートスピーカー × サーバーレス 入門(広島開催)」に行ってきました。


Togetterまとめ

【自分用まとめ】スマートスピーカー × サーバーレス 入門(広島開催) #dreamarts #orizuruIT - Togetter



スマートスピーカーは、Google AIY Voice Kit + Raspberry Piであらかじめ作成されたものを利用しました。音声AIはGoogle Assistant。
ハンズオンでは、このスマートスピーカーに下記の3つのカスタマイズを施しました。

  • 独自のウェイクワードに変更する
  • ユーザー発話をチャットアプリに投稿する
  • チャットアプリの投稿をスマートスピーカーに発話させる

※チャットアプリは株式会社ドリーム・アーツの製品を使用


独自のウェイクワードに変更する

ウェイクワードとは、スマートスピーカーに話しかける時に使用する言葉です。Google Homeであれば「OK, Google」、Amazon Echoであれば「Alexa」など。
ハンズオンではsnowboyを利用。大まかな手順は以下。

  1. 指定のWebサイトで独自のウェイクワードを3回発話
  2. pmdlファイルをダウンロード
  3. pmdlファイルをRaspberry Piに転送

ウェイクワードが変わった以外は、普通のGoogle Homeです。時間聞いたり、天気予報聞いたり。


ユーザー発話をチャットアプリに投稿する

(※この辺りから内容の理解が乏しいです)
ハンズオンで実施したのは、上記と同じでユーザー発話をチャットアプリに投稿する際のワード(GoogleアシスタントアプリやAlexaスキルを呼び出す言葉)をsnowboyを利用して設定。あと、チャットアプリとの連携部分。
pythonプログラムは、Raspberry Piにあらかじめ用意済み。
音声からテキストの変換にAzure CloudのCognitive Servicesを利用してるんだったかな…。


チャットアプリの投稿をスマートスピーカーに発話させる

チャットアプリとNode-REDとRaspberry Piで実現。
Node-REDの画面はじめて見たんですが、MESHのGUIそっくりだなあという印象でした。
あとはhttp?webhook?の連携ができたかどうか、即画面で確認できるんだ!ということに驚き。
出来心でチャットアプリの投稿に、とある半角英字のみの音楽グループの単語を紛れ込ませてみたんですが、発話されなかったです。日本語限定かな…


箇条書き感想

  • 内容盛りだくさんだった
  • 勉強会開催にあたって、非常にたくさんの用意があったのが伝わってきた
  • あとになってこれがモブプロ形式ということに気づく
  • ドライバーになった方がもっと理解できたかも
  • こんな人差し指くらいの大きさでマイクなんだ…
  • ラズパイってもっとお値段するのかと思ってた
  • おりづるタワー、いつの間にできたんだ…全く知らなかった(2016年9月にできた模様)
  • オフィスめっちゃおしゃれだし、景色良かった(おりづるタワーには展望台がある)
  • おりづるタワーに向かう途中で食パン?販売のお店に長蛇の列ができていたのが気になった
  • ハンバーグ入りお好み焼きの衝撃

最初抽選漏れてがっかりしたけど、繰り上がって参加できることになって本当に良かった。
運営スタッフの皆様、参加者の皆様、お疲れ様でした。

備忘録:EclipseからAndroid Studioへの移行で直面した問題とその解決

この記事のその後の話。
dosomething.hatenablog.com

EclipseからAndroid Studioへの移行、直面した問題の解決法が分かりました。

動作対象APIをかなり跳ね上げてしまった問題

EclipseからAndroid Studioに移行する際の設定で、ライブラリを自動でgradleファイルに書くよ!というオプションのチェックボックスを2つ外しました。
そして、Android Studioのプロジェクト化した後、ライブラリフォルダを切って、Eclipseプロジェクトでも利用していたjarファイルを配置。
さらに、gradleファイルでそのフォルダを見に行くよう記載して解決しました。

文字化け問題

xmlファイルの日本語が全部文字化けしてました。
文字コードも改行コードもAndroid Studioの設定と一致しているはずなんですが。
これはstrings.xmlに定義してからAndroid Studioへ移行することで解決する予定。
strings.xmlに定義分は問題なかったし、こちらが推奨されているはずなので、移行を機に改善しちゃおうかな、と。

特定機能でクラッシュ問題

ファイルの配置場所が間違ってただけだった。
Using Android Studio with Vuforia - Stack Overflow
↑の記事の通り、↓の構造になるようにフォルダ切って"libVuforia.so"ファイルを配置したらちゃんと動いた。
/app/src/main/jniLibs/armeabi-v7a/libVuforia.so

Android端末実機2台ともに共通で出ていたワーニングログがこれ↓
The library libVuforia.so could not be loaded
だったのに気づいてから、なんとなく配置場所が臭いと思ったらドンピシャの記事が見つかったという…。
そもそもクラッシュの原因が分からなくて、かなり時間がかかってしまいましたが、なんとか解決。

調べてるうちに気になったけど、Vuforia、ポケモンGOでも使われてるってホントかな?

初めてのAlexaスキル申請で得た知見まとめ

個人で開発したAlexaスキル後出しじゃんけんクラブが公開されました。
本記事は、初めてのAlexaスキル(カスタムスキル)申請で得た知見のまとめです。


Amazon開発者アカウント作成

1/10の記事にも追記して書いたのですが、見事にハマリました。結果、開発者名に「HAL」が使えなくなり、別名での公開となっております。

本件、Amazonさんも把握しており、Alexaハンズオントレーニング参加者に、以下の記事が案内されています。
Alexa 開発者アカウント作成時のハマりどころ : Alexa Blogs
が、中身をあまり読まない人はどうもこのいちばん上の誤ったやり方で取り組んでしまうようです…。

下記の手順で作成するのが分かりやすいはず。
Amazon.co.jpでアカウントをつくる(AmazonEcho実機を使う場合はこのアカウントに紐付ける)
→居住国を日本にする
Amazon 開発者ポータルAmazon.co.jpのアカウントでサインイン
サインイン後の画面右上に「AMAZON CUSTOMER」と表示されていればOK。


スキルID

"alexa.APP_ID"から"alexa.appId"に変更になったようですが、一部のLambda設計書に反映されていません。
直さなくてもAlexaスキルは動作しますが、ワーニングログが出力されます。
github.com
上記の設計書を利用する場合、41行目を変更してください。

exports.handler = function(event, context, callback) {
    var alexa = Alexa.handler(event, context);
    alexa.appId = APP_ID;
    alexa.registerHandlers(handlers);
    alexa.execute();
};

【参考】Alexaのスキル開発中、Warning: Application ID is not set - Qiita


申請から公開までの経過

4/3(火) 初申請(新規作成)
4/6(金) 取り下げ
4/7(土) 再申請
4/9(月) 公開

バグ(後述)を見つけたため、審査申請を取り下げて修正し、再申請しました。
私が申請した時は5営業日でフィードバックする旨が審査申請受付メールに記載されていました。
※この日数は時期で変わるかと思います。(7営業日のキャプチャをどこかで見たため)
再申請したのでフィードバックは4/13(金)かと思っていたのですが、初申請からの日数で審査していただいたようです。
先人の記事をたくさん拝見させていただいていたからか、一発で審査に通り、その旨のメールが届いた数時間後に公開となりました。
※公開タイミングは開発者で決めることはできないようです。


サンプルフレーズ

この項目は、利用者に対して確実に応答するフレーズを提示するもの、という認識です。
設定するとスキルがフレーズに応答するようになるわけではないはず。
カスタムスキルであれば、下記のドキュメントを参考になります。
developer.amazon.com


スキルアイコン

フリー素材を使用させていただこうかと思ったのですが、規約確認が面倒になり、ペイントで自作しました。作成時間5分。


テストの手順

クイズゲームスキルのサンプル(https://github.com/alexa/skill-sample-nodejs-quiz-game/tree/ja-JP)をベースに作成した、後出しじゃんけんゲームのスキルです。
アカウントリンクやアクセス権限は使用しておりません。
審査のほど、よろしくお願い致します。

4/3 初申請(新規作成)
4/6 取り下げ
4/7 再申請

【初申請から再申請までの修正内容】
・「後出しじゃんけんクラブで、○○を××して」で本スキルを起動した場合に応答不具合となるバグを解消
AMAZON.HelpIntentで本スキルを起動した場合、その次の発話で応答不具合となるバグを解消
・エンドポイントの変更(Lambdaバージョン管理のため)

後出しじゃんけんクラブで、○○を××して」で本スキルを起動した場合に応答不具合となるバグ

サンプルフレーズを決めるために色々な呼び出し方法を試していた時に、「後出しじゃんけんクラブのゲームをやろう」と言うところを、誤って「後出しじゃんけんクラブで、ゲームをやろう」と言ったことで発覚。
テンプレートのstate管理をなくした状態で作っていたため、UnhandledからAnswerIntentへ遷移するものの、問題を作成していないため答えなどあるわけなく、応答不具合となっていました。

state管理については下記参照。
Alexaスキル開発トレーニングシリーズ 第3回 音声ユーザーインターフェースの設計 : Alexa Blogs

AMAZON.HelpIntentで本スキルを起動した場合、その次の発話で応答不具合となるバグ

ヘルプ周りの設計が漏れまくってました。

いきなりヘルプを呼び出すルートを失念

開発ドキュメントのヘルプの提供を読んで気づきました。
ヘルプから起動してしまうと、問題を出題するルートが「最初に戻って」しかなくなるという…。
上記の問題共々解決するため、state管理を追加しました。

ヘルプ応答発話の見直し

「スマホアプリはオワコン。今開発するならスマートスピーカーで!」スキル「旬の食材」開発者 立花氏に聞く。 – SmartHacks Magazine
上記のインタビュー記事内の

ヘルプの返答の後は質問で終わる必要がある

という記述を見て修正しました。
『(前略)終わりたい時は、「ストップ」と言ってください。(終)』だったんです、初申請時。
これを、下記の内容で直しました。
・いきなりヘルプを呼び出した時→問題出題
・ゲーム中に呼び出した時→問題をもう一度言う

エンドポイントの変更(Lambdaバージョン管理のため)

開発者アカウント側だと、スキル公開後は開発バージョンと公開バージョンに分かれるのですが、LambdaはAWSでバージョン管理しないといけません。
バージョン管理できることはAlexaハンズオントレーニングに参加した際に教えていただいたので知っていたのですが、やり方は知りませんでした。
申請前に調べてやろうと思ってたのに忘れてたので、再申請時に対応しました。
下記の記事をそのまま参考にさせていただきました。
qiita.com


特典

Alexaスキル開発者向けの特典があるので、ちゃっかり申し込んでおきましょう。
AlexaのAWSプロモーションクレジットのご紹介 | Amazon Alexa | アレクサ
スキルを開発して、特典をもらおう | Amazon Alexa | アレクサ



node.jsもAWSも初めてだったけど、アイデア出したりベターな方法考えたりするの楽しかった!

「14杯目セキュリティうどん(かまたま)」に行ってきました #secudon

2018年2月10日に、「14杯目セキュリティうどん(かまたま)」に行ってきました。初参加でした。


勉強会

  • 自己紹介にあらわれる個性
  • 県内より県外からの参加者が多そう?
  • 久しぶり(2017年7月末以来)のPython
  • AnacondaはPromptしか使ったことなかった(自学でやった時はEclipseで書いてPromptで動かした)
  • Navigatorがなかなか起動せず初っ端から焦る
  • その後Navigatorが3個起動してさらに焦る
  • ダウンロード・解凍したフォルダをjupyter notebook上で見つけるのに手間取ってますます焦る
  • 写経でいっぱいいっぱいになって(typo多すぎ)説明がまともに聞けず
  • だんだん気になる工事音
  • 確かにCTF for ビギナーズのハンズオンでexeファイルのhead情報を読むのやったような
  • 本格的に機械学習をやってみたくなったらKaggleに取り組んでみよう

おやつ


ふわふわで軽い口当たりでした。


ごはん


竹清で食べました。これで370円。天ぷらサクサクで美味しかった。
ちくわの天ぷらはそのままかぶりついたり、だしにつけてからかぶりついたり。
半熟卵の天ぷらはあとからうどんに投入して真っ二つにしてだしと混ぜながら。



豊浜サービスエリアのオリーブ豚かつ丼。ボリューム満点でした!



運営スタッフの皆様、発表者の皆様、参加者の皆様、お疲れ様でした。

東大式エゴグラムをやってみた

結果。

最も高かった心:A

 ◇A(Adult)大人
   現実的である、冷静沈着である、客観性を重んじる、といった特徴と関係があります。

最も低かった心:NP

 ◇NP(Nurturing Parent)養育的な親
   思いやりがある、世話好き、受容的である、といった特徴と関係があります。

【引用】新版TEG®II - 株式会社 金子書房

TEGパターンの特徴はW型が最も近かった。
【参考】新版TEGII 解説とエゴグラム・パターン - 株式会社 金子書房
※Webの目次には載っていないが、本にはW型も記載されている

W型はこんな特徴。

24.W型

CP,A,ACが同程度に高く、NP,FCが相対的に低い。義務感、責任感、批判精神は高く、周囲への気遣いも強いうえに、十分に自己主張できないので、葛藤をため込む傾向がある。その怒りが自分に向いて自虐的になりやすいこともある。これも、U型と同様に自他否定のあまり望ましくないパターンの一つ。何事にも怒りっぽく、その怒りが自分に向いて計画的に自己破壊に向かうとしている。

【引用】エゴグラム の見方 |AGカウンセリングオフィス

所感

結果を見て、当てはまりすぎているなあと思った。

2017年7月末に全国スキル調査を受けた際にも、この手の診断結果について呟いていた。



(ストレス耐性の数値も低かった)

概ねこの頃と傾向も変わっていなかった。

長年の性格なので向き合おうとは決めていたが、十分に意識してストレス発散をしないと、自分で自分を潰しかねないことを再認識した。
メンタルヘルスも興味はあったので、本買って読んでみようかな。

『コピー1枚とれなかったぼくの評価を1年で激変させた7つの仕事術』を読んで思ったこと

『コピー1枚とれなかったぼくの評価を1年で激変させた7つの仕事術』を読み終えた。

www.diamond.co.jp

なぜ読んだのか

著者のブログをたまたま見かけた頃に、本書の発売告知を見て気になって購入。
初心に戻ってこの手の類の積読本を読み漁ろうと思い、読んだ。


読了にかかった時間

合計50分


意識したいこと

  • タスクの目的を確認する→付加価値の提案に繋げる
  • 目標の設定レベルは現在の実力の1.3倍
  • 1週間に1度、行動をチェック
  • 1か月に1度、数値化した目標(行動の成果が出ているかどうか)をチェック
  • 具体的には?(詳細)
  • 理想は?(方向性)
  • そもそも?(本質確認)
  • 一言で言うと?(要約)
  • なぜそう言えるのか?(理由)
  • 現状把握→原因究明→打ち手の立案
  • クローズドクエスチョン(YESorNOやAorBで答えられる質問)をする。質問の仕方をテーマにした本を積んでいるのでそちらも読んでおきたい。

セルフ振り返り+所感

2017年3月30日に書いた記事の振り返りを交えつつ、所感を述べたい。
dosomething.hatenablog.com

「指摘のドラフトメール一元化」は私が、やっていた

週末はノートを確認し、今後も必要そうな内容はふせんに書いてまとめ直してた

ただ、まとめるなら業務で使用しているPCにも電子ファイルとして残した方がよかったかもしれない

を解決した行動だなあと思った。

本書は著者のとった行動が具体的に述べられているので、真似しやすいところが良い。

Excelを使ったTODOリスト&スケジュールもそのひとつ。
本書を読み終えた後このExcelを作ったところ、使い勝手が良く、出社したらまずTODOリストを書き出し、スケジュールに落とし込むようになった。
ただ、これからこのExcelを作るのであれば、本書とにらめっこしてタイプするよりも、著者のブログから数式をコピペしてきた方が手っ取り早いということを伝えておきたい。
Todoリストの超具体的な活用方法を紹介するよ | Outward Matrix

「スケルトン」については、以前読んだ『職場の問題地図』でいうところの「ポンチ絵」に該当するだろう。
dosomething.hatenablog.com

学生時代、テストは問1から取り組んで、最後に時間が足りなくなってしまうタイプだった。
上司に報連相が少ないと怒られたため進捗報告を兼ねた資料を作るのも兼ねて、タスクを振られたら、まずやることをファイルにざっと書き出し、全体作業の洗い出しを徹底するようにしている。こうすることで、ひとつひとつの作業を潰していき、すべて潰せばタスク完了ということを明らかにすることができる。また、作業順序が影響しないのであれば、取り組む順序を臨機応変に対応することもできる。
しかし、いつまでにタスクが終わるかという見積もりができていないというのが現状である。いつまでに終わらせてほしいのか期限を提示してほしく、上司に確認をとるのだが、「じゃあいつまでに終わるの?」と返されると、言葉に詰まる。ここで宣言すると、それまでに終わらせないといけないという枷をはめることになるのは明白。『エラスティックリーダーシップ』でいうところの学習モードであり、コミットメント言語の実践ということが分かっているのであれば、言い切れるのかもしれないが。
dosomething.hatenablog.com
とりあえず、まず全体を把握し、それから個々の作業に取りかかることの徹底に努めていて、タスク終了見込み時間が提示できないというのが課題である。

ただ、提示できないことについて、心理的な問題もある。「宣言通りに終わらせることができなかったら、上司に怒られるのでは?」という不安がつきまとうのである。

上司とのコミュニケーションについては賛同できなかった。
私自身も以前の記事に、

・嫌われるより好かれた方がよい
媚ではない。
嫌われていなかったおかげで仕事がしやすかったな、と思った場面が多々あった。
信頼関係を築いておくに越したことはない。

とは書いている。
ただ、仕事の上で、上司と異なる意見を持った時、最初の頃は伝えていたのだが、曖昧な理由で却下されることが多くなったため、次第に意見を伝えることがなくなってしまった。経験年数が少ないからという理由で却下されているんだろうと思うようになってしまっていた。
そのため私は最近、「上司部下、年上年下、男女、そういったバイアスを除いて対等に意見を扱ってもらえるかどうか」が大事なのではないかと思うようになった。
好かれるというより、心理的安全性が保たれているか。
gendai.ismedia.jp

本書は、新社会人や仕事での成長に悩んでいる人におすすめしたい。行動が具体的に述べられていて、真似して取り組もうと思えるところが非常に良かった。