「Small is Going big」mercari.go#10
by
taqboz
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
8/20 2019 Mercari.go #10 Small is going big GopherCon2019
Slide 2
Slide 2 text
TQBOZ 吉⽥ 拓海 @taqboz ⼤学4年⽣ 経営学部 Go歴:6ヶ⽉
Slide 3
Slide 3 text
実際に参加してみて
Slide 4
Slide 4 text
もちろん、楽しみにしていましたが、 懸念点が、、、 • Go歴が短く、ついていけるか不安 • 英語を聞き取り続けていけるか不安 • コミニケーションが中⼼なのでは → 英語が不安 ⾏く前
Slide 5
Slide 5 text
話の難易度はセッションによるので、 事前にアジェンダを⾒て⾒るものを 決めておけば⼤丈夫 GopherのコミニティSlackで 情報が流れてくるので、 ある程度は聞き逃しても情報を追える ⾏ったあと
Slide 6
Slide 6 text
やっぱり英語ができないと難しい けど、 • セッションのときには字幕がある • 割とフランクに接してもらえる • 結構⾃由に過ごせる ただやっぱり⾃分のしたい話をする、聞きたい話を聞くのに不便 様々な機会を取り逃すので英語は⼤事 ⾏ったあと
Slide 7
Slide 7 text
TinyGo
Slide 8
Slide 8 text
source code Go TinyGo Go SSA LLVM LLVM IR binary TinyGoについて • LLVMを使ったGoコンパイラ • バイナリファイルのサイズを抑えてビルド • LLVMがWebAssembly対応 → 副産物としてTinyGoも対応 • 現時点でのバージョン:0.7.1
Slide 9
Slide 9 text
WebAssemblyで試してみる ファイルサイズが約1/20になった WebAssembly goals 「Be fast, efficient, and portable」<- ファイルサイズが⼩さくなるのでロードを⾼速化できる main.go (Hello, World) Go標準コンパイラ(1.12.7)とTinyGoの⽐較
Slide 10
Slide 10 text
デメリット / 制限 1. Gotoutineのサポートが完全ではない 2. GCはARMマイクロコントローラー (Cortex-M)のみ対応 3. 使えない標準パッケージが多い(net/http等) 参照:https://tinygo.org/lang-support/stdlib/ 4. mapのキーは⽂字列、整数、ポインタ、 構造体(前記の型で構成されたもののみ)のみ対応
Slide 11
Slide 11 text
TinyGoについて 主にIoTデバイス、 マイクロコントローラーでの活⽤ 制限があるなかでどこまでできるか 親⼦でデモで実践 by Ron Evans(@deadprogram) Small is going big: Go on microcontrollers
Slide 12
Slide 12 text
セッション内でのデモ • Digispark上でLEDの点滅 (8bitプロセッサー & 8KB RAM) • Gopherbot ボタンの押し込み でLEDの点灯 package main Import ( "machine” "time” ) func main() { led := machine.LED led.Configure(machine.PinConfig{Mode: machine.PinOutput}) for { led.Low() time.Sleep(time.Millisecond * 500) led.High() time.Sleep(time.Millisecond * 500) } }
Slide 13
Slide 13 text
セッション内でのデモ フライトコントローラー • Arduino Nano 33 IoT • アナログスティック • ボタン • OLEDディスプレイ net系パッケージは動作しないものの Arduinoチップに組み込まれたWi-Fi チップで動作するインターフェイス をコントリビューターの⽅が実装し たとのこと。
Slide 14
Slide 14 text
Droneデモ Tello Ryze Drone IP: 192.168.10.1 PORT : 11111 Video PORT : 8889 Commands & Response Arduino Nano33 IoT UDP I2C JoyStick Button A/O GPIO OLED IP: 192.168.10.2 PC
Slide 15
Slide 15 text
TinyGo PlayGround https://play.tinygo.org/ マイクロコントローラー持ってない⽅でも 試せるのでこちらで試してみては?
Slide 16
Slide 16 text
ご清聴ありがとう ございました