niwasawaの迷子センター

迷子になりがちな地図・位置情報系プログラマの日記ブログ。

気象マップbotで花粉マップ(花粉飛散予測)を配信します(2019年版)

気象マップbot (@maigolab_tenki)PM2.5などの情報をツイート配信する Twitter bot です。

本日より花粉マップ(花粉飛散予測地図)を配信しています。

f:id:niwasawa:20190204121937j:plain:w320

現在、この気象マップbot (@maigolab_tenki) がツイート配信しているのは以下の4種類です。

  • 花粉マップ 花粉飛散予測地図
  • PM2.5マップ 大気汚染予測地図
  • 黄砂マップ 黄砂予測地図
  • 今日の最高気温 全国観測値ランキング

花粉マップは、花粉飛散時期にだけ配信しています。

花粉マップの配信は、今年で4年目です。

1年目 → 気象マップbotに花粉マップ(花粉飛散予測)をツイートする機能を追加しました - 迷子ラボ maigolab

2年目 → 気象マップbot 花粉・PM2.5 地図 on Twitter: "昨日、2017年1月17日(火)に tenki.jp にて花粉飛散情報が公開されたため、本日から花粉マップを配信いたします。"

3年目 → 気象マップbotで花粉マップ(花粉飛散予測)を配信します(2018年版) - niwasawaの迷子センター

気象マップbot 花粉・PM2.5 地図 (@maigolab_tenki) | Twitter

Amazon Alexa Skill を4つリリースして Echo Show を無料でゲットした

昨年末に Alexa スキルを4つリリースしたおかげで、Echo Show が無料になるクーポンが昨日届いた。すぐに Amazon で注文して「Amazon Echo Show (第2世代)」が今日届いた。速い。

f:id:niwasawa:20190201201253j:plain

スキルを開発して、特典をもらおう | Amazon Alexa | アレクサ

2018年11月1日~12月20日にスキルを公開し、かつキャンペーンにお申し込みをいただいた方には、公開されたスキルの数に応じた豪華特典がもらえます。

・期間中、1つ以上のスキル公開:1開発者につきAlexa Tシャツを1枚プレゼント
・期間中、3つのスキルを公開:Tシャツに加え、Echo Dot (Newモデル)を無料で購入できるクーポンをプレゼント
・期間中、4つ以上のスキルを公開し、そのうち少なくとも1つがEcho Spotなど画面つきのデバイスに対応したスキルであること:Tシャツに加え、Echo Showを無料で購入できるクーポンをプレゼント
・期間中公開したスキルに、年末年始をテーマにしたスキル(例:クリスマス、お正月、大掃除、忘年会、新年会など)が少なくとも1つ含まれている場合には、1開発者につき1つ、Alexaオリジナルタンブラーを追加でプレゼント

【概要】 年末特別!スキル開発でEcho ShowやオリジナルグッズなどがもらえるAlexaキャンペーン
【対象期間】 2018年11月1日(木)午前0:00~2018年12月20日(木)午後11:59

リリースした4つの Alexa スキルはこのへん → 10日間で Alexa Skill 4つをリリースしたので所感などをメモしておく - niwasawaの迷子センター

これで画面付きAlexaデバイスの実機テストができるなー(∩´∀`)∩

10日間で Alexa Skill 4つをリリースしたので所感などをメモしておく

1つ目のリリースから4つ目のリリースまでで6日間だけど、開発などを含めて10日間ほどかかっている。

f:id:niwasawa:20190102135454j:plain:w400

さかさまフレーズ

あなたの言葉を逆さまに言う Alexa スキル『さかさまフレーズ』をリリースしました - 迷子ラボ maigolab

  • ユーザーの音声は「漢字かなアルファベットなど混じり」の文字列でしか取得できないので、カナ変換処理を入れた
  • 大きい外部ライブラリを導入してしまったので AWS Lambda で動かすときにソースコードをインライン編集できなくて苦労した
  • ローカルで動作確認できるような環境を整えて何とか開発できた
  • Node.js の非同期処理に苦労していたが async と await を利用してラクになった

くりかえしフレーズ

あなたの言葉を10回繰り返す Alexa スキル『くりかえしフレーズ』をリリースしました - 迷子ラボ maigolab

  • 「さかさまフレーズ」を開発したときの環境を再利用して、開発開始から審査提出まで1時間以内という高速開発
  • くりかえす回数をユーザーに指定させるかあるいはランダムで回数を決めるかなど考えていたけど、10回に決め打ちのほうがシンプルで良いかなと思ってこちらを採用
  • 審査でリジェクトされず一発で通った ヽ(=´▽`=)ノ

雨雲レーダー

1時間以内に雨が降りそうかわかる Alexa スキル『雨雲レーダー』をリリースしました - 迷子ラボ maigolab

  • 画面付き Alexa デバイス (Echo Spot, Echo Show) に対応
  • Echo Spot と Echo Show は画面の形状やサイズにだいぶ違いがあるので別個に最適な出力をすべき
  • YOLP(地図):YOLP(地図) - Yahoo!デベロッパーネットワークAPI を3つ使っている
  • 「雨雲レーダー」が商標登録されているか検索してみたけどヒットせず。各サイトで使われている言葉だから大丈夫そう
  • 開発から審査提出までたぶん合計で6時間ぐらいかかってる
  • 審査でリジェクトされず一発で通った ヽ(=´▽`=)ノ

ハイスピード除夜の鐘

除夜の鐘を180倍の速度で高速に叩き鳴らす Alexa スキル『ハイスピード除夜の鐘』をリリースしました - 迷子ラボ maigolab

  • 音声ファイルを作成するのに苦労した
  • 審査でリジェクトされず一発で通った ヽ(=´▽`=)ノ

2018年の自分のまとめ

箇条書きでざっと。

ライトニングトーク

中京テレビハッカソン HACK-CHU! 2018 で YOLP サポート

迷子Tシャツが売れてた

Twitter 気象マップbot

スマートスピーカー スキル開発

花粉ロケーション

素数を数えるんだ

さかさまフレーズ

くりかえしフレーズ

雨雲レーダー

ハイスピード除夜の鐘

Tシャツをもらった

exifr に Pull Request

まとめ

NGK2018B で「時短勤務で東名阪3拠点以上の大規模スクラム LeSS Huge のスクラムマスターをしたときの話 & リモートワークっていいよね」という LT をしてきました

今日のハイライト

  • Mac だとプロジェクター投影できないかも、と聞いて((((;゚Д゚))))ガクブルしながら MacBookWindows PC と iPhone 2台のプレゼン環境を持っていったけど無事 MacBook で投影できてよかった(´ω`)
  • LT の内容を当初の半分以下に削って短くしたけど5分以内に収まらなかった(´;ω;`)
  • LT について Twitter でいろいろコメントもらえてよかった
  • #NGK2018B で4000以上のツイート (たぶんRT含む) があったらしく Twitter トレンドに上がってた
  • 興味深いLTが多くて楽しかった

f:id:niwasawa:20181222233254j:plain:w400

開催概要

NGK2018B - connpass

NGK2018Bは、名古屋近郊のIT系コミュニティが合同で催す大忘年会です。 今年は11年目になります。昨年はNGK2017Bでした。
2018年12月22日(土) 昼の部: LT大会 本編13:45~19:00(開場10:00) 名古屋市中村区 フジコミュニティセンター

LTのタイムテーブルはこちら → NGK2018B 昼の部(LT大会) - connpass

自分のLT

時短勤務で東名阪3拠点以上の大規模スクラム LeSS Huge のスクラムマスターをしたときの話 & リモートワークっていいよね - Speaker Deck

NGK2018B LT#3 - YouTube

Twitter にていろいろコメントをいただいたのでここに載せておきます。

RT @kroyeeg
1日5時間労働スクラムマスター
#NGK2018B
posted at 2018-12-22 15:44:45
RT @shimamchan
「こんな使いにくいもの皆さんよく使ってますねー」 #ngk2018b
posted at 2018-12-22 15:44:47
RT @amay077
突然の JIRA ディスw #NGK2018B
posted at 2018-12-22 15:44:49
RT @kroyeeg
カロリーメイトは体重が減るらしい・・・?
#NGK2018B
posted at 2018-12-22 15:44:51
RT @zakky_dev
忙しくて昼飯食えず体重減った。なるほど? #ngk2018b
posted at 2018-12-22 15:44:52
RT @Koitsu_Dust
LeSSだとやせられるらしい #ngk2018b
posted at 2018-12-22 15:44:54
RT @Dominion525
LeSS HUGEで痩せる話。 #NGK2018B
posted at 2018-12-22 15:44:56
RT @kjfsm4
LeSS Hugeで体重調整! #NGK2018B
posted at 2018-12-22 15:44:57
RT @dehio_
LeSS Hugeのおかげで体重が適正化になったので素晴らしい #ngk2018b
posted at 2018-12-22 15:44:59
RT @mistolteen
スクラムイベントはリモートで実施 #NGK2018B
posted at 2018-12-22 15:45:00
RT @makky12
カロリーメイトすげー。 #ngk2018b
posted at 2018-12-22 15:45:02
RT @kjfsm4
Slackコールでリモートワークできるのか #NGK2018B
posted at 2018-12-22 15:45:03
RT @tsubaki961
燃えなかったのすごE
#NGK2018B
posted at 2018-12-22 15:45:08
RT @mistolteen
スプリントレビューだけはオフィスで #NGK2018B
posted at 2018-12-22 15:45:09
RT @dehio_
5分で収まらない量だった #ngk2018b
posted at 2018-12-22 15:45:14
RT @mistolteen
途中で終わっちゃった… #NGK2018B
posted at 2018-12-22 15:45:15
RT @h_hiro_
#NGK2018B niwasawaさん「時短勤務で LeSS Huge スクラムマスターしたときの話(仮)」複数チームによる大規模スクラム。開発分野別と地域別でチームがある。バックログも階層化される。ミーティング数が多いので時短勤務には大変だった
posted at 2018-12-22 15:45:19
RT @yuzutan_hnk
LeSS で痩せよう
#NGK2018B
posted at 2018-12-22 15:45:21
RT @keita44_f4
いい話だったが時間が、いい話すぎて足りなかった #NGK2018B
posted at 2018-12-22 15:45:22
RT @zakky_dev
燃えなかったところもうちょっと詳しく知りたい。何の問題が発生して、なぜ発生して、どう対処したのかよくわからんかった。 #ngk2018b
posted at 2018-12-22 15:45:25
RT @mistolteen
いい話だった。資料読みたい #NGK2018B
posted at 2018-12-22 15:45:29
RT @zakky_dev
気になる……すごく気になる……。 #ngk2018b
posted at 2018-12-22 15:45:32
RT @kjfsm4
なんで炎上しなかったのかきになる #NGK2018B
posted at 2018-12-22 15:45:34
RT @c_tyo
#ngk2018b なんとなく、聞き覚えのある話だったな
NowBrowsing: スクラムを大人数で運用したところ💩な結果になった。 - CycleTechLog (サイクルテックログ): https://t.co/Cp85Ie8u1U
posted at 2018-12-22 15:45:43
時短勤務で東名阪3拠点以上の大規模スクラム LeSS Huge のスクラムマスターをしたときの話 & リモートワークっていいよね - Speaker Deck https://t.co/HzYlOLhjDV

先ほど途中までしか発表できなかった #NGK2018B LT資料を置いておきます。
posted at 2018-12-22 17:13:57
#NGK2018B ちなみにデスマーチにならなかったのは LeSS Huge で残タスクを可視化 → ボリュームがわかる → 皆で情報を共有 → 足りないタスクにも気づく → 他のタスクと比較して優先度を調整できたからだと思っています。使いにくいなんて言ったけどJIRAの可視化のおかげですw
posted at 2018-12-22 17:13:57

Twitter にメモった内容

NGK2018B 昼の部(LT大会) - connpass https://t.co/1LvpCwqe5X

日時 2018/12/22(土) 13:45-19:00
会場 フジコミュニティセンター (たぶん4階) 愛知県名古屋市中村区黄金通1丁目18番地 (地下鉄桜通線 中村区役所駅 4番出口 徒歩2分)
参加者 現在165人

今日は #ngk2018b に行きます (`・ω・´)ゞ
posted at 2018-12-22 08:13:48
#ngk2018b 会場に到着 https://t.co/CHiwOkuZfe

posted at 2018-12-22 11:19:24
#ngk2018b MacBook 2017 + Keynote でプロジェクター接続確認できました。ちゃんとスライドが映る。USB-C → HDMI → VGA → プロジェクター。一応 Windows マシンも持ってきたけど大丈夫そう。 https://t.co/jVivmKcfJp

posted at 2018-12-22 11:34:11
#ngk2018b 念のため Windows と iPhone でプロジェクター接続できるアイテムを持ってきたけど使わなくてよさそう。 https://t.co/TGEDQJ2MVL

posted at 2018-12-22 11:40:00
#ngk2018b アンケートあるんでみんなシール貼りまくりましょう https://t.co/oQhNf885hu

posted at 2018-12-22 12:08:15
#ngk2018b はじまった
posted at 2018-12-22 13:47:25
Node.jsで非同期のことを考えているだけで1年が溶けたw #ngk2018b
posted at 2018-12-22 13:55:29
Julia 命名の説あれこれおもしろい #ngk2018b
posted at 2018-12-22 14:01:41
Nagoya.php ではお題を出してコードをかく「どう書く」をやってる #ngk2018b
posted at 2018-12-22 14:06:06
もくもく会」と「がんばらない運営」は相性がいい #ngk2018b
posted at 2018-12-22 14:09:21
沖縄のバスたいへんそうだー #ngk2018b
posted at 2018-12-22 14:13:07
マネージドな Kubernetesである Amazon EKS が東京リージョンに対応。 #ngk2018b
posted at 2018-12-22 14:16:13
マイクロサービスはしんどい #ngk2018b
posted at 2018-12-22 14:18:37
「#NGK2018B」にセキココしました! https://t.co/15vIDVuQKd #sekicoco
posted at 2018-12-22 14:21:57
Yahoo!地図の災害時の取り組み。地図の上に列車運休とか、白地図使うとかの紹介。バックエンドシステムは僕が作った(のがまだ生きているかもしれない)。 #ngk2018b https://t.co/kWWCmuGa1S

posted at 2018-12-22 14:35:41
VSS = ビジュアル ソース シュレッダー?w #ngk2018b
posted at 2018-12-22 14:39:01
最後のスライドからはじめるの斬新w #ngk2018b
posted at 2018-12-22 14:43:26
YouTube生配信機材紹介。プリアンプ。ラックコンソール。オーディオインターフェース。スチルカメラ。HDMIスルー。IPoE。 #ngk2018b
posted at 2018-12-22 14:52:59
学生LT。学内だけでは強い学生と交流できない。夏休みインターン勢向けイベントがきっかけでコミュニティが大きくなったのでは。地方の人は東京開催の費用が大きくて行けないから、日本全国でそれぞれ開催。 #ngk2018b
posted at 2018-12-22 14:58:12
なぜかGではなくY!で検索w #ngk2018b
posted at 2018-12-22 14:59:52
DNS毒入れる話だけどむずかしくてわからない(;´∀`) #ngk2018b
posted at 2018-12-22 15:03:34
食べすぎでねむい
posted at 2018-12-22 15:08:56
Yahoo! MAP の動画広告が流れてる。 #ngk2018b https://t.co/VSKTkZLzMv

posted at 2018-12-22 15:21:20
#NGK2018Bの座席表 - セキココ https://t.co/15vIDVuQKd

たくさん埋まってきた? #ngk2018b
posted at 2018-12-22 15:22:33
次の枠の3番目にLTしますよ。食べすぎでねむい。 #ngk2018b
posted at 2018-12-22 15:23:10
プログラムが自動で作曲。音程を数値で扱う。五線譜はむずかし。ドを0として扱う。0〜11でドド#レレ#を表現。メジャースケールを選択。スケールの持つパワー。スケール内の音をひとつ飛ばす。メッロディ。音ありのLT楽しい。ルールに従って状態遷移で自動で作曲。 #ngk2018b
posted at 2018-12-22 15:31:25
80kgから半年で60kgに。糖尿病で倒れる。1日4回採血。 #ngk2018b
posted at 2018-12-22 15:35:28
5分で足りんかった。゚(゚´ω`゚)゚。 #ngk2018b
posted at 2018-12-22 15:44:28
セキュリティの話。情報の区分。認証取るにはお金がかかる。Pマークはすごく古いのでいやだ。JAPHICマークのセキュリティチェックシート便利。 #ngk2018b
posted at 2018-12-22 15:49:53
愛知県にはキーボードのコミュニティが無いので欲しいor作りたい。 #ngk2018b
posted at 2018-12-22 15:54:15
中村区役所駅は東山線ではないw #ngk2018b
posted at 2018-12-22 15:57:09
SecHack365ではバイナリひたすら読んでる人とかデバッガー作ってる人がいる。 #ngk2018b
posted at 2018-12-22 15:59:26
peco でコマンド操作を楽に #ngk2018b
posted at 2018-12-22 16:01:52
みんなで毎朝体操やることにw #ngk2018b https://t.co/sPNlZnMEmx

posted at 2018-12-22 16:04:41
ラジオ体操最後まで終わらずにドラで終了w #ngk2018b
posted at 2018-12-22 16:08:31
毎朝体操スコア #ngk2018b https://t.co/HapHzW5j4U

posted at 2018-12-22 16:09:22
フィリップさん、わらびもち配るらしい #ngk2018b
posted at 2018-12-22 16:10:24
もちクイズ #ngk2018b https://t.co/DPp9j2I86b

posted at 2018-12-22 16:11:12
#ngk2018b Twitterのおすすめトレンドに入ってる! https://t.co/Ys3Fg405lV

posted at 2018-12-22 16:14:10
毎朝体操 毎朝クエストでタオルもらた #ngk2018b https://t.co/2JHFwC7dOA

posted at 2018-12-22 16:22:36
シェルパさんのLT。DBマイグレツールいいけど、他の言語からDBが使いにくい問題。スキーマをDB管理。 #ngk2018b
posted at 2018-12-22 16:36:19
わらびもち食べたい(でも昼ごはんが多すぎておなかいっぱい) #ngk2018b
posted at 2018-12-22 16:36:52
今日でIEの愚痴は最後にw #ngk2018b
posted at 2018-12-22 16:38:17
人工衛星が動かせる AWS Ground Station は衛星を所有していないと使えない。データセンターを持っている人向けのサービス。身近な問題を解決してくれるAWSとは。。。 #ngk2018b
posted at 2018-12-22 16:48:26
Python東海は名古屋城「孔雀の間」で勉強会を実施。書類提出、事前打ち合わせが大変。LED光源のプロジェクターとスクリーンが必要。大相撲名古屋場所が開催される7月は避ける。 #ngk2018b
posted at 2018-12-22 16:57:31
Webサイトの広告を表示しない。ローカルにDNSキャッシュサーバを立てて、広告サイトのドメインをブロック。Unboundを使う。 #ngk2018b
posted at 2018-12-22 17:01:37
広告サイトのリストがある。 #ngk2018b
posted at 2018-12-22 17:02:27
本日、学生LTネタ2回目。 #ngk2018b
posted at 2018-12-22 17:05:48
学校より学生LTのほうが勉強になる。座学より手を動かすのが大事。学歴を代替する新しいキャリアパスを作る。OBE、成果に基づく教育。豊田高専を2回やめてるw #ngk2018b
posted at 2018-12-22 17:08:58
時短勤務で東名阪3拠点以上の大規模スクラム LeSS Huge のスクラムマスターをしたときの話 & リモートワークっていいよね - Speaker Deck https://t.co/HzYlOLhjDV

先ほど途中までしか発表できなかった #NGK2018B LT資料を置いておきます。
posted at 2018-12-22 17:13:57
#NGK2018B ちなみにデスマーチにならなかったのは LeSS Huge で残タスクを可視化 → ボリュームがわかる → 皆で情報を共有 → 足りないタスクにも気づく → 他のタスクと比較して優先度を調整できたからだと思っています。使いにくいなんて言ったけどJIRAの可視化のおかげですw
posted at 2018-12-22 17:13:57
餅の展示 #ngk2018b https://t.co/XeNGKr39Nm

posted at 2018-12-22 17:21:43
#ngk2018b アンケート https://t.co/naYoTI0Sdg

posted at 2018-12-22 17:22:50
ガオガオハウス #ngk2018b
posted at 2018-12-22 17:23:21
バンコクIT事情。車に広告ラッピング。仮想通貨。タイ人のための恋活・婚活アプリ。オンライン印刷。#ngk2018b
posted at 2018-12-22 17:26:19
タイ生活。タイは日本食が食べられる。東南アジアへの観光旅行がラク。日本と同等の暮らしは日本と同じお金がないかかる。たまに停電。 #ngk2018b
posted at 2018-12-22 17:26:36
マツモトさん。体脂肪率が25%から14%にダウン。 #ngk2018b
posted at 2018-12-22 17:28:34
名古屋ギークバー、7年以上続いてる。 #ngk2018b
posted at 2018-12-22 17:29:06
ジョジョ勉強会ってなんだろうw #ngk2018b
posted at 2018-12-22 17:29:40
2/25に名古屋ギークバー、マツモトさんの送別会的な #ngk2018b
posted at 2018-12-22 17:31:32
マツモトさん、NGKでLTするの初めてらしい。NGKは今年で11年目。 #ngk2018b
posted at 2018-12-22 17:33:15
24時間ハムスターYouTuber生配信。広告収入1万円/月。AI画像認識で、ハムスターが起きていたら通知。機械学習のため、1943枚の画像を目視でタグ付け。掃除するとハムスターの寝床の場所が変わるかもという懸念。 #ngk2018b
posted at 2018-12-22 17:38:09
ライフゲームの話。ライフゲーム好きだなー。むかしよく書いた気がする。 #ngk2018b
posted at 2018-12-22 17:42:07
3次元ライフゲーム。これ、やってみたかったやつだ。unity で作る。 #ngk2018b
posted at 2018-12-22 17:42:59
語学留学で200万円かかる! #ngk2018b
posted at 2018-12-22 17:54:43
母国語しゃべったら退学になる学校がある #ngk2018b
posted at 2018-12-22 17:56:25
ライブレコーディングによるパフォーマンス。algorave。 #ngk2018b
posted at 2018-12-22 18:00:18
ライブコーディングね…… #ngk2018b https://t.co/4BJZ5azywz
posted at 2018-12-22 18:01:13
SuperCollider で音を作る。前衛な音楽をやってる人に誘われて北京などでライブ。 #ngk2018b
posted at 2018-12-22 18:03:18
予定が早まったので離脱します。今年も興味深いLTが多くて楽しかった! #ngk2018b
posted at 2018-12-22 18:14:33
#NGK2018B Twitter トレンドに。4000以上のツイート。 https://t.co/zHKyg2bfvR

posted at 2018-12-22 19:16:51

Alexa スキル「ハイスピード除夜の鐘」で使うためのサウンドを生成する Ruby スクリプト

除夜の鐘を180倍の速度で高速に叩き鳴らす Alexa スキル『ハイスピード除夜の鐘』をリリースしました - 迷子ラボ maigolab

速度など試行錯誤して何度も MP3 ファイルを生成し続けていたので、何度でも簡単に再現できるように Ruby スクリプトを書いて使っていた。

require 'fileutils'

dir = 'tmp'
Dir.mkdir(dir, 0755) if !File.exist?(dir)

a = 4
duration = 0

FileUtils.cp('original.mp3', "#{dir}/0.mp3")
(1..107).each do |i|
  a = a * 0.7
  #a = 0.05 if a <= 0.05
  a = 0.1 if a <= 0.1
  duration = duration + a
  d = format('%2.4f', duration)
  puts "********** DURATION: #{d}"
  system "ffmpeg -y -i #{dir}/#{i-1}.mp3 -i original.mp3 -filter_complex \"aevalsrc=0:d=#{d}[s1];[s1][1:a]concat=n=2:v=0:a=1[ac1];[0:a][ac1]amix=2[aout]\" -map [aout] #{dir}/_#{i}.mp3"
  system "ffmpeg -y -i #{dir}/_#{i}.mp3 -filter:a loudnorm #{dir}/#{i}.mp3"
end

# 音声ファイルをAlexaに適した形式に変換
# コーデックバージョン: MPEGバージョン2
# ビットレート: 48 kbps
system "ffmpeg -y -i #{dir}/107.mp3 -ac 2 -codec:a libmp3lame -b:a 48k -ar 16000 #{dir}/output.mp3"

ただ、これだけだと音量が足りなかったので、音量上げるためのシェルスクリプトを後から書いて使った。

ffmpeg -y -i 107.mp3 -af "volume=5.0" 107_x5.mp3
ffmpeg -y -i 107_x5.mp3 -ac 2 -codec:a libmp3lame -b:a 48k -ar 16000 vvx5.mp3