メンチカツには醤油でしょ!!

AWS/Java/Node.js/Spreadsheets/Docker/Jenkins/コミュニティ・勉強会レポを主とした技術系ブログ

#devsumi 2018参加レポ (Developers Summit 2018) 初日 (2/15)

行かない年はナイ。

通い始めて5年目、今回は仕事として新人にも推薦して投入してみました。レポが楽しみ。

デブサミ2018テーマ「変わるもの×変わらないもの」
今回公式はネット上での動きは早くもうまとめサイトが上がってます。

codezine.jp

カイゼン・ジャーニー 〜たった一人からはじめて、「越境」するチームをつくるまで〜
市谷 聡啓 [ギルドワークス] / 新井 剛 [ヴァル研究所・エナジャイル]

新井さん

管理職になると、残業の定義が変わる。
副業をすると、労働の定義が変わる。
起業をすると、時間の定義が変わる。

ヒンズー教の教えのよう。

市谷さん

世界は、ただあなたが戻ってくるのを待ってる。

良すぎる。

f:id:ryoichi0102:20180215124421j:plain

当日買ったのではないことだけどは言っておきたいw

Microsoft AIプラットフォームによるインテリジェントアプリケーションの構築
佐藤 直生 [日本マイクロソフト]

Azureサービスの紹介で、基本的な所から本格的な所まで。

本業的に、
これまでは、事象発生⇒手入力⇒入力画面⇒データ
といった流れであったが、自動的に登録されている状態になる。
というアプローチと同じことが言えそうだなーと。

サービス・メッシュ Istio を利用した Kubernetes でのマイクロサービス開発
寺田 佳央 [日本マイクロソフト]

IstioというOSSの紹介。
k8sでmicroservicesを管理していると起こりがちな、サービス間の認証やモニタリング・ロードバランシングを便利にする

・サービス間の依存関係の明確化
・ログ可視化
・Feature Flags
・Canary release
・リクエスタイムアウト
・サーキットブレーカー
あたりが主。

寺田さんといえばデモですよね。

Slack⇒Bot Framework⇒IstioでPodの管理
加えて、
VUI⇒Payara⇒Azure Translator⇒LUIS⇒Istio
といった感じで、ここで「おおーっ!」と。

先のセッションでも紹介あったように、AzureのCognitive Servicesはやはり優秀です。

www.slideshare.net

事例2本立て!Redmineユーザ達が語る現場定着化への取組みと導入アンチパターン
大野 憲一 [ワコム]/小林 稔央 [富士ゼロックスアドバンストテクノロジー]/川端 光義 [アジャイルウェア]

冒頭は、Redmineを使わないと業務が回らない(作業一覧が見れない)、チケットのステータスフローのルール化、No ticket No taskなど既に行っているプラクティスの話が殆ど。

小林さんのセッションが良かった。

進捗率を使わない。子チケットに細分化して未着か終了を明確にする。
チケットの最大期間は3日(⇒スクラム的)

流石Redmineエヴァンジェリストだけあってよく纏まっている資料の紹介もありました。

www.slideshare.net

www.slideshare.net

www.slideshare.net

そしてこれ。

タウンワークをドライブさせるためになんちゃってアジャイルをやめた話
高橋 陽太郎 [リクルートジョブズ]

案件の活動細分化と、フロント/バックエンド分業チームに起こる、優先順位とリードタイム改善の話。強い締切意識を撤廃し、価値あるDoneにこだわって、手戻りを可視化したところ、レビューとテストのコストに気づき…

⇒結局のところモブなんじゃないか(俺考)

「変更のしやすさはリードタイムに直結する。」

⇒まぁ、、そりゃそうだよね。

音声UIはアプリ開発の何を変えるのか? スマートスピーカーアプリ開発者大集合!
【モデレーター】西田 寛輔 [ロボットスタート]/市川 純 [リクルートマーケティングパートナーズ]/砂金 信一郎 [LINE]/小川 慧 [ポケモン]/村井 孝至 [面白法人カヤック]

Amazon, Google, LINEの違いについて。
そしてピカチュウトークについて。

www.kayac.com

おうちハック的に「行ってきます」で電源オフ、「ただいま」で電源オン。
運転中のハンズフリーLINEなどなど。

マネタイズはまだ。

設計について、既存のアプリの機能を踏襲しすぎない、であったり。

また、UUや平均セッション時間の非公開スライドがお土産だった。

物事は拙速で

ということでポストです。

Nature RemoのAPIが公開されたので温度・湿度を取得

Nature Remoとは

IRKitをご存知の方はその進化版という説明が早いのですが、これらはスマート家電の一種で、家庭にあるリモコンなどの赤外線を記録することができ、そしてネットワークに繋げることができるというシロモノです。

Nature Remoの特長ですが、
・赤外線リモコンの信号を学習させることができる
・赤外線の指向性を気にしなくて良い (IRKitから進化した点)
Wi-Fiに繋がる (アプリやAPIなど外部から制御可能)
IFTTTが対応している (myThingsは未対応の模様)
APIが公開されている ←new!
などが挙げられます。

リモート操作できる

赤外線の設定を行うと、スマフォから操作できます。

f:id:ryoichi0102:20180214095255p:plain

ボタンの1つ1つを覚えさせることもできます。
エアコン各社は初期状態で豊富に対応しているので、記憶させようとするとリモコンの機種名のようなものがサジェストされ、セットアップはより簡単です。
また、画面に表示される情報も豊富です。

f:id:ryoichi0102:20180214095311p:plain

ウチが寒すぎるというツッコミはナシでm(_ _)m

温度・湿度が見れる

先程のキャプチャにも表示されていましたが、温度・湿度が外から見れるので、たとえば、室温が○○度以下になったらエアコンをオンにしたり、家に近づいたらエアコンを入れたりなどの操作が自動でできたりもします。

APIが公開されました

以前よりAPIに関する記事はQiitaなどには存在したのですが、このたび2018/01/30に正式にAPIが公開されました。

nature.global

ドキュメントはSwaggerで書かれており見やすいです!
ということで、さっそく叩いてみましょう(ここからが本題です)

最初のセットアップ

はじめてのRemo — Nature

公式サイトがとても丁寧なので、それに合わせてセットアップします。
"アカウントの登録" 項で使用したメールアドレスを下記のAPIでも使用します。

API使用準備

https://home.nature.global にアクセスします。

f:id:ryoichi0102:20180214125316p:plain

ログインするにはメールアドレスを入力します。

f:id:ryoichi0102:20180214125506p:plain

f:id:ryoichi0102:20180214130042p:plain

f:id:ryoichi0102:20180214142738p:plain

ログインするとこんな感じのシンプルなtoken一覧管理画面が出てきます (キャプチャはセットアップ済のもの) 。Generate access tokensで新たにアクセス用のトークンを発行することができます。

f:id:ryoichi0102:20180215000022p:plain

curlからデータを取得する

設定されたトークンを使用して以下のコマンドを実行します。

$ curl -X GET -H 'Authorization: Bearer ****** -H 'Content-Type: application/json' https://api.nature.global/1/appliances

f:id:ryoichi0102:20180228152506p:plain

Postmanから取得する

PostmanとはGUIAPIが叩けるツールです。特にWindows環境の場合などはGit BashCygwinを入れていないとLinux/UNIX系コマンド(今回はcURL)が実行できない不便を解消してくれます。

Postman | API Development Environment

f:id:ryoichi0102:20180215000918p:plain

コード

AWS LambdaからNature RemoのAPIを叩いて、Dynamoに格納するコードを書きました。ビルドして環境変数を設定すればそのまま動きます。

github.com

私はこれをCloudWatch Eventsで1分に1回定期実行して、DynamoDBにデータを溜めてます。

f:id:ryoichi0102:20180214081105p:plain

 

DynamoDBに溜めたデータの可視化についてはまた書きます!

 

AWS CloudFrontのキャッシュを削除する (Invalidation)

キャッシュのクリア ⇒ Invalidation

Invalidation、CloudFrontではキャッシュのクリアをこう呼びます。

Distribution一覧からIDのリンクをクリックして
Invalidastionsタブへ。

Create InvalidationsボタンをクリックしてObject Pathsに /* を入力します。

すると行が追加されStatusがIn Progressでぐるぐる。
これが結構時間かかります・・・ぶっちゃけ遅い。

1[MB]未満、ファイル数50未満でも20分弱かかりました。

1ファイルでやったら1分以内でした^^;
実行時期にも依ると思います。

料金

無効化にも課金が発生するのですね。

/*
/index.html

などの指定をパスと呼び、ファイル指定でもワイルドカードしても1行(?)1パスとカウントされるようです。

1000パスまでは無料で、それ以降は
0.005 [USD]
とのこと。

 

お蔵入りからの投稿でした^^;
(投稿してたと思ったら下書きのままだった)