Alexa スキル「30言ったら負け」を公開しました

概要

趣味で Alexa Skill を開発してましたが、この度「30言ったら負け」を公開しましたので告知します。

30言ったら負け

30言ったら負け

スキルの概要は以下のとおりです。

誰もが一度はやったことがある、「30を言ったら負けゲーム」ができます。

付け足すことは特にないです。
30代の僕が子供の頃からありましたが、いつからあるんでしょうね。

開発ヒストリー

  • 3月末に ask new 、その後 1ヶ月放置
  • 気が向いた週末に開発を3-4週間
  • 公開前に ASK SDK v2 にアップデート
  • 審査に落ちること4回
  • AWS Summit Tokyo に公開するつもりが、申請ボタンを押しそこねて6月の公開になりました
    (そのため、例のTシャツ は6月にずれ込み・・・)

少し NodeJS が書ける人なら週末だけでも毎月リリースは可能でしょう。

注意点

数字が連続するスキルということもあり、はっきり発声しないと認識しないことがあります。
これはスキルの問題というよりも AWS音声認識の問題だと考えています。
一度も認識ミスなく勝つことができたらなかなかすごいです。

最後に

これ数字を変えて申請したら通るんですかね?

Amazon Echo Dot (Newモデル)、ブラック

Amazon Echo Dot (Newモデル)、ブラック

Surface Book あるいはノートPCに貼ったシールをいい感じに剥がす

ITエンジニアが宗教アピールのために貼っているシール。
リファクタリングしたくなったので剥がすことにした。

準備したもの

手順

  1. 換気大事。窓を開ける
  2. シール剥がしスプレーを吹き付ける
  3. シールを剥がす
  4. 液が溜まったところをヘラをかけて糊のダマを追いやり、キッチンペーパーで拭き取る
  5. スプレー、ヘラ、キッチンペーパーを何度か繰り返す
  6. ダマが減ってきたら消しゴムをかけて、消しカスがつくところを入念にかける
  7. もう一度スプレー、ヘラ、キッチンペーパーとハンカチ
  8. ウェットティッシュで仕上げ

終わりに

Surface Book がプラスチック素材のようなので、影響ないか心配だったがどうにかなってよかった。
写真は撮るのを忘れた。
1個剥がすのもわりと面倒なので、多神教はあまりよくない。

はてなブログを HTTPS に変更したときのあれこれ

切り替え直後

はてなブックマークウィジェット

はてなブックマークウィジェットHTTPS 対応していないため、サイドバーから外しました。

Amazon の画像ファイル

2018/9 以降に信頼されなくなるようなので、そのうち解消されると信じよう。Amazon だし。

はてなブログ Perfect GuideBook

はてなブログ Perfect GuideBook

Fire TV が HDMI 出力を専有するときの回避策として Alexa 連携を使う

背景・課題

自宅では大型ディスプレイに Fire TV、PS4Nintendo Switch、たまに PC を接続している。
その中で Fire TV がスリープしている間(スクリーンセーバーではない)に HDMI 出力が残り、たとえば Switch を起動したときも Fire TV が優先されてしまい、スムーズにゲームで遊べない、という問題があった。

回避策1

簡単な回避策として、Fire TV の電源をサクッと落とせる電源タップを使った。

しかし、イチイチ電源を落とすのが煩わしかった。

回避策2

ここが本題。
Alexa と連携して電源コントロールできる TP-LINK の HS105 という製品を利用した。

これによって発話で Fire TV の電源を入れたり切ったりできるようになった。

TP-LINK HS105 セットアップ

ここの手順は購入した際についてくる説明書のとおりなので割愛。
バイス名は発話しやすい名前にしておくのが無難。
f:id:khei-fuji:20180513210800p:plain

セットアップが完了した時点で iPhone アプリから電源のオン/オフが可能になる。

Alexa の設定 - デバイス

まずは Alexa にスマートホーム製品として TP-LINK HS105 を認識させる必要がある。
この手順はデバイスの公式 HP が分かりやすい。

Amazon AlexaにTP-Linkスマートホーム機器を接続するには - TP-Link

これによってスマートホームのデバイスに、Kasa で設定したデバイス名が表示される。

f:id:khei-fuji:20180513210804p:plain

バイス名が気に入らなかった場合は、Kasa で名前を設定し直し、Alexa に「デバイスを検出して」と発話すれば再度情報を更新してくれる。

Alexa の設定 - 定型アクション

個別デバイスの操作ができれば十分かもしれないが、ここは好みで。
自分の場合は「おはよう」で Fire TV をオンに、「おやすみ」で Fire TV をオフにしたかったので、定型アクションを設定した。

Amazon.co.jp ヘルプ - スマートホーム製品の定型アクションを作成する

おわりに

AbemaTV を朝晩観るのが日課です。

AbemaTV

AbemaTV

  • 株式会社AbemaTV
  • エンターテインメント
  • 無料

Build 2018 振り返りと気になったニュースや感想と考察

Build2018 が終わりました。
日本では de:code2018 が始まります。

昨年は Build 2017 ではありがたいことにギョーム扱いで現地参加していましたが、今年の Build は国内組でした。
リアルタイムは初日のキーノート程度で、あとはニュースや Channel9 でキャッチアップしてました。
ニュースのまとめやピックアップ記事をこのタイミングで書いても仕方ないので、気になったことだけを頭の整理を兼ねてまとめておきます。

気になったニュース

Alexa Cortana 連携

Microsoft、「Cortana」とAmazonの「Alexa」の連携をデモ - ITmedia NEWS

Alexa から Cortana を、Cortana から Alexa を呼び出せる機能がクローズドベータになりました。

最近 Alexa Skill をいじっているので気になるところです。
BotBot を呼び出すことに何のメリットが?と思うかもしれませんが、やはり Office 365 など Microsoft 製品との連携で分がある Cortana を、 Alexa が載っている製品から呼び出せるのは大きいのではないでしょうか。
逆にオフィスに大量にある Windows PC から Alexa Skill を呼び出せるということは、Amazon Echo がなくとも大量にデバイスが存在することになります。

クラウドで競合している Amazon と協調する動きができるのは面白いですね。

メモ帳が LF 対応

Windows 10 RS5で“メモ帳”が改行コードLFとCRをサポート - PC Watch

表題のとおり。 Microsoft loves OSS ですね。
それ以上言うことはないです。

Microsoft Storeアプリの開発者収益割合が 85% から 95% に変更

「Microsoft Store」アプリの開発者収益配分を95%に - ITmedia NEWS

全然追ってませんでしたが収益比率相当いいですね。
スマホアプリの寺銭と比べると良心的に見えます。
何か作ってみたい気持ちになりました。
とはいえゲーム以外ですか。

Microsoft Azure

Cloud Platform Release Announcements for May 7, 2018 | Cloud Platform News Bytes Blog
上記記事 Google 翻訳版 | Bing 翻訳版

ニュースとしては上の記事を見ればすべてよしです。
Bing 翻訳を普段あまり使ってませんが、文脈理解して Azure を認識できるといいですね。
Azure については気になったもの、すぐに使いそうなものだけピックアップしておくことにします。

App Center - GitHub Marketplace

App Center はそこまで使えてませんでしたが、これで使う理由が高まりました。

Web App for Container - Authentication 機能追加

Blob Storage - Static Websites support

ちょうど3ヶ月ほど前に Azure 静的サイトをホスティングしようと思った時はわりと面倒な手順を踏んでいました。 kheiakiyama.hateblo.jp

Leverage Azure Blob Storage to build storage intensive cloud native applications | Microsoft Build 2018 | Channel 9
Storage だけで完結するのはいいですね。
Custom Domain + SSL の場合は CDN 必要なようです。
まだ使っていませんが、AWS の S3 に追いついたと思ってよさそうです。

Function でホストしたサイトを近日載せ換えてみようかと思います。
(de:code 終わってからかな・・・)

Blob Storage - Tiers and Lifecycle Management

Blob Storage は 料金表 を見るとわかりますが、ホット・クール・アーカイブの Tier に応じて容量課金・アクセス課金のテーブルが変わります。
この機能は n 日経過したオブジェクトの Tier を切り替えたり、削除する設定が可能になるというものです。

Leverage Azure Blob Storage to build storage intensive cloud native applications - YouTube
大量のデータを預かっているサービスでは効果がありそうです。
もっとも v2 を使わないといけないので、v1 を使っている古いサービスではマイグレーションを頑張る必要がありそうです。

AKS - DevOps, CI/CD

Getting started with CI/CD & Azure Container Service (AKS) powered by VSTS | Microsoft Build 2018 | Channel 9

AKS 自体はプレビューかつ日本リージョンが来ていない状況ですが、デプロイ周りや監視ツールの整備が急速に進んでいるようです。
あまり k8s に詳しくなくても使えてしまいそうに見えるのが Microsoft らしい気がしています。

Azure 以外

Microsoft Teams

Microsoft Teams をあちこちで推し始めてるのが気になりました。
正直 Windows クライアントがもっさりしていて、現時点では Slack には及ばないイメージですが、競争自体は善なのでがんばってほしいです。
優位性としては Office 365 を使っている企業はかなり多いので、追加費用なしに利用できるのは大きいです。
Slack 、SSO やメッセージの有効期限を欲しいとそれなりにお金かかりますからね。。

Microsoft Graph

最近 Office 365 API を調べていたのでちょうと気になった話。

Office365 の API を扱うソリューション、と思っていたらそうではなく、Windows や Azure Active Directory など他も含めての API 群のような位置づけになるようです。
channel9.msdn.com

Office 製品の優位は当分揺るがないと思うので、このあたりは今後周辺サービスを提供するサードパーティー企業からすると注目されそうに思います。
特に Cortana や Alexa などスマートスピーカー製品のように、今後発展していく分野で使っていきたい気持ちがあります。

Blazor

C# で Single Page Web Application が書ける Blazor が凄かった件 - Qiita

Qiita の記事がバズっていたときは流してましたが、動画のデモを見たらよさそうだと感じました。

.NET Overview & Roadmap - YouTube

多少アセットのダウンロードが遅くても許容できるエンタープライズ系のWebサービスなら使えるのではという印象。
今回 Microsoft が独自の CDN を始めることが発表された のと合わせて、Blazor が使うアセットのうち標準ライブラリは Azure でホストしていれば標準で Microsoft CDN が配信するとか、今後の発展があるのではないかという妄想をして面白がっています。

最後に

全体的にこれはいらないのでは?というようなものが見当たらず、誰かが欲しいと思っているものが順当に出てきている印象です。

また、今回の Build 2018 では Channel9 のセッション動画は Youtube にアップロードされており、このあたりでも Microsoft が変革しているのを感じ取れて面白かったです。
やはり CEO が変わったことは大きいですね。

Hit Refresh(ヒット リフレッシュ)

Hit Refresh(ヒット リフレッシュ)

帰省ついでに Azure IoT Hub を試してた

はじめに

2年くらい前から温度湿度をラズパイで取得することをやってた。
kheiakiyama.hateblo.jp

GrowthForecast で可視化していたものの、ラズパイ自体にはグローバルからアクセスできるようにはしていないため、帰省しないと見えないという不満があった。
それをいい具合にしたいと思って IoT Hub を試す決意をしていた。

Azure IoT Hub は Free プランが1日8000メッセージ受信できる ということで、毎分メッセージ送っても使えるのがよさそうだった。

やったこと

試したのはこのあたり。

ラズパイからセンサーデータを IoT Hub に送り、Web App でリアルタイムを見れるのができた。

知見

ラズパイ と Python Azure IoT Hub SDK つらみ

ラズパイ(デバイス)側はいろんな言語が選べる。
はじめに Python 使ったところ Azure IoT Hub の SDK の導入で苦しんだので Node にスイッチした。

Web App の Node version 問題

Free プランだったからかもしれない。
しかし Free プランで Socket I/O 使えたり Azure AD のシングルサインオン連携したりいろいろできて Web App は素晴らしいと思う。

可視化できてない件

リアルタイム可視化はできたけどデータ蓄積するところ作ってなくて全然やりたいことできてない。

そもそもセンサー壊れてた問題

ラズパイの死活監視は個人 Slack に流してるので問題ないのだが、温度湿度センサーが壊れていたことに気づかなかった。
今思うと Mackerel に流してた(こちらも Free プランなのでログは1日まで)ので、そこからアラートしていればもっと早く気付いたのに。
帰省で気付いて次の帰省までに買って持っていく、というの時間がかかってよくない。

ステージング環境というか別環境を都内に作るか。 せっかく ansible で管理していることだし。

あとがき

あまり問題は解決してないけど限られた時間で手を動かすのはよい。

Azure Logic App と Travis CI を使って翻訳サイトを静的ホスティングする

kheiakiyama.hateblo.jp

先月静的サイトホスティングについて試した。

延長線上で、サイトのコンテンツを自動生成するサンプルを作った。

github.com

デモサイトはこちら

仕組みについて

trans-feed では jekyll を使って静的サイトとして生成している。

翻訳記事の生成

Logic App はかなり安価で、翻訳(Cognitive Service) は現時点で無料で使える。
図で表すと以下のような形だ。
f:id:khei-fuji:20180321170353p:plain

ここでは翻訳したファイルを Markdown で保存する。

ホスティング

f:id:khei-fuji:20180321170403p:plain

ホスティングについては特に 前回の記事 から違いはない。

デプロイ

f:id:khei-fuji:20180321170407p:plain

翻訳したファイルとリポジトリTravis CI でまとめる。
jekyll build した結果を Azure Blob Storage にアップロードする。

Azure Function Proxy の proxies.jsonTravis CI で生成するようにしている。
Let's Encrypt の証明書を利用したい場合に、jekyll のファイル配信用プロキシと Let's Encrypt の Extension 用のプロキシが共存できるように書くのが困難で、jekyll 部分の設定は自力で書くようにしたため。
いい書き方があるのかもしれないが、ドキュメントが少なくたどり着けなかった。

Azure Functions でのプロキシの操作 | Microsoft Docs

おわりに

Azure の公式ブログ読むときに概要読んでパッと取捨選択したいと思い、今回のサンプルに至る。

書いてて気付いたが、サイト作らなくても RSS を翻訳してそのまま Slack などに流せば要求満たせる気がしてきた。
まあ jekyll を少し試したかったのでよし。

しかし、ぶっちゃけ翻訳の精度は・・・

Azureテクノロジ入門 2018

Azureテクノロジ入門 2018