「golang.tokyo#26」に参加してきた!
はじめに
今日は、「golang.tokyo#26」に参加してきました!
今回の参加枠は面白くて、
- 一般参加枠(定員:40人)
- Devquiz枠(定員:40人)
- ブログ参加枠(定員:3人)
- LT枠(定員:3人)
という枠が準備されていました。
「Devquiz枠」というのが面白くて、参加するときにGoに関する問題が出てそれが解けた人の中から抽選で参加できるというもの!
(※間違えたら抽選にすら参加できない)
ちょっと楽しそうだなぁっと思って、今回はこの「Devquiz枠」で応募して、無事参加権を得ました♪
タイムテーブル
時間 | 内容 |
---|---|
19:00 ~ | 開場・受付 |
19:30 ~ 19:40 | オープニング |
19:40 ~ 20:10 | Go in Nature(仮) by songmu |
20:10 ~ 20:40 | Nature Remo用のGo API Clientを作った話(仮) by tenntenn |
20:40 ~ 21:10 | 休憩 |
21:10 ~ 21:20 | LT1 Raspberry Pi + Go で IoT した話 (仮) by yaegashi |
21:20 ~ 21:30 | LT2 Goを使ったセンサーデータ収集基盤のお話(仮 by takeshinoda |
21:30 ~ 21:40 | LT3 Build real world data collecting architecture with goroutine & channel by banana_umai |
21:40 ~ 21:50 | 終了・撤収 |
軽食とお水
メルペイ水とおにぎり・唐揚げセット頂いた♪#golangtokyo pic.twitter.com/rOqD2jUPTd
— FUMI@Python&Go&Rust (@FumiProgrammer) September 25, 2019
ビール類のアルコールも出して頂いてました♪
年をとったのか、缶1本でもアルコール飲むと頭回らなくなるので、
今回はお水だけ頂きました。
セッション
Go in Nature(仮)
発表者
songmuさん
内容
songmuさんが作成したツール
gocreditshttps://t.co/Uh5L6pBBuy
— FUMI@Python&Go&Rust (@FumiProgrammer) September 25, 2019
#golangtokyo
songmuさんがCTO勤めている会社紹介
Nature株式会社https://t.co/w9MQ7KbnIW
— FUMI@Python&Go&Rust (@FumiProgrammer) September 25, 2019
#golangtokyo
Nature Remo
Nature Remohttps://t.co/zk8neaRVl5#golangtokyo
— 渡邉 洸 / Ko Watanabe (@ko_watanabe_tw) September 25, 2019
- 自宅のWifiに接続してローカルIPは保持
- Nature Remoの中はマイコンでCを使って書いてる
- スマホアプリからはAPIリクエストを送っている
- クラウドシステムがNature RemoにWebsocket経由で指令を送る
なぜWebsocket?
- 結構リアルタイムに双方向通信がお手軽にできる
- 「普通の」Web技術
- 接続や切断時の再接続はNature Remo側が制御
- 常時接続になるため接続管理がめんどくさい
コンポーネント
- API *スマホアプリやスマートスピーカとの通信
- Stream
- Nature RemoとWebsocketで常時接続
Worker
- ルールの実行
フレームワークは使わずGorilla web toolkitを部分的に使っている
- Redis Pub/Subを活用している
- 相互通信しない疎結合を実現している
課題
- ALB一本化したい
- streamをdeployすると一斉にNature Remoとのsつ族を切断することなるため一気に再接続が起きてしまう
- schemalexに乗り換えたい
取り組み
- ECSのdeployにecspresso導入
Go Modules導入
Dependabot導入
- git-pr-release
- ECS Scheduled Tool管理のためのツール ecsched
Nature Remo用のGo API Clientを作った話(仮)
発表者
tenntennさん
メルカリ/メルペイ所属。 バックエンドエンジニアとして日々Goを書いている。 Go Conference主催者。golang.tokyo、Goビギナーズ、GCPUG Tokyo運営。 大学時代にGoに出会い、それ以来のめり込む。 社内外で自ら勉強会を開催し、> Goの普及に取り組んでいる。 マスコットのGopherの絵を描くのも好き。人類をGopherにしたいと考えている。
Twitter: https://twitter.com/tenntenn Qiita: https://qiita.com/tenntenn 過去の発表資料: https://www.slideshare.net/takuyaueda967/
内容
Nature Remoとは?
- スマートリモコン
- アプリから赤外線リモコンの信号を送信できる
SDK
- tenntennさんの作ったgoからNature Remoを操作できる
- Cloud API と Local API両方対応
電子版なら読めそうhttps://t.co/krQfguXwu6 #golangtokyo
— к ё м е (@KeME_S) September 25, 2019
APIクライアントのデモで “家族が見ているかもしれない” 自宅のテレビのチャンネルを変えてみるwww #golangtokyo pic.twitter.com/qOvmfWQB7C
— オトモレ🎧 (@otomore01) September 25, 2019
テレビやライトはリモコンのボタンと赤外線信号が大体一対一対応してるんですけど、エアコンは状態によって同じボタンでも信号が変化するので、検出が難しいんですよね #golangtokyo
— songmu (@songmu) September 25, 2019
Google カレンダーのイベント → IFTTT → GAE → Nature Remo の API を叩く、みたいなことをやったが、なんとなく不安定だったし、なんなら Google カレンダーへの登録という作業が発注されるようになっただけだった。悲しい物語… #golangtokyo
— パン粉 (@pankona) September 25, 2019
誰でも使える LINE を用いて時間予約エアコン操作をできるようにした。良さそう #golangtokyo
— パン粉 (@pankona) September 25, 2019
LINE Bot -> App Engine -> Cloud API なるほどなー #golangtokyo
— 能力の高い女 (@silloi93) September 25, 2019
まとめ
- Nature RemoとAPIでスマートホーム楽しい
- 赤外線リモコンならワンチャンある
- やれることは色々ありそう
LT
Raspberry Pi + Go で IoT した話 (仮)
発表者
yaegashiさん
ハードウェアに Raspberry Pi を用いた IoT の案件で Go 言語を活用した事例を紹介します。Go 言語からの利用を前提とした GPIO、ストレージ、Wi-Fi 制御のコンポーネント選択や、組み込み Linux システムの構築についても説明します。
内容
バイナリハックのLTされてた方だ!
— しょーちゃん Gopher Ninja400 (@PGShohei) September 25, 2019
GoConも出られるのね
#golangtokyo
Raspberry Pi + Go で IoT する例。いいねー #golangtokyo
— パン粉 (@pankona) September 25, 2019
MQTThttps://t.co/Qyc2VeL7G3https://t.co/FdeIrsGKDV
— FUMI@Python&Go&Rust (@FumiProgrammer) September 25, 2019
#golangtokyo
Goを使ったセンサーデータ収集基盤のお話(仮)
発表者
takeshinodaさん
Goを使いB2Bなデータ収集基盤のビジネスをやっています。その事例についてお話ししたいと思います。
内容
MODE, Inc. 、Googleで二番目の日本人がシリコンバレーで創業した会社らしい #golangtokyo
— 能力の高い女 (@silloi93) September 25, 2019
MODE,Inc の話。IoT で定番となる機能 (Device 管理とかログ管理とか) を提供している。ので、使う人々は自分のビジネスに集中できるぜ、煩わしいのすっとばせるぜ、というビジネスモデル。Go は Gateway とサーバーサイドで使ってるぞ #golangtokyo
— パン粉 (@pankona) September 25, 2019
Build real world data collecting architecture with goroutine & channel
発表者
banana_umaiさん
gorutineとchannelはGolangの並列処理のための基本的なビルディングブロックです。この機能を活用して、IoTデバイスのような不安定な環境でも安定的に現実世界のデータを収集するソフトウェアを構築するための工夫をお話させていただきます。