Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Teaching a Vaccum Robot to be a Webradio in Go ...
Search
GoDays
January 30, 2019
Technology
1
66
Teaching a Vaccum Robot to be a Webradio in Go - Tobias Kohlbau, myOpenFactory
Teaching a Vaccum Robot to be a Webradio in Go - Tobias Kohlbau, myOpenFactory
GoDays
January 30, 2019
Tweet
Share
More Decks by GoDays
See All by GoDays
Standing on the shoulders of giants - Tomasz Janiszewski - D2IQ
godays
1
110
How to instrument Go code in 2020 - Björn Rabenstein - Grafana Labs
godays
1
230
12 Factor CLI Apps with Cobra - Markus Zimmermann - cosee
godays
0
360
Integration and end-to-end testing with TestContainers-Go - Nikolay Kuznetsov & Erdem Toraman - Zalando
godays
1
950
Fun with Functions - Frank Müller - Loodse
godays
0
97
Amazon SNS/SQS with Go - Paul Borlin - Compassion International
godays
1
260
Writing a language parser in 15min (or less) - Xavier Coulon - Red Hat
godays
0
92
A story about distributed computing before the cloud arrived - Rogier Lommers - bol.com
godays
0
86
Serverless Ops – Bye-bye Bash, Hello Go! - Rob Sutter - Amazon
godays
0
78
Other Decks in Technology
See All in Technology
20241220_S3 tablesの使い方を検証してみた
handy
4
700
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
290
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
200
podman_update_2024-12
orimanabu
1
290
メンタル面でもつよつよエンジニアになる/登壇資料(井田 献一朗)
hacobu
0
130
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
160
Oracle Cloud Infrastructure:2024年12月度サービス・アップデート
oracle4engineer
PRO
1
290
非機能品質を作り込むための実践アーキテクチャ
knih
5
1.6k
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
180
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
120
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
330
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
140
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.1k
GitHub's CSS Performance
jonrohan
1031
460k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Code Reviewing Like a Champion
maltzj
521
39k
KATA
mclloyd
29
14k
The World Runs on Bad Software
bkeepers
PRO
66
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
A better future with KSS
kneath
238
17k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Transcript
TEACHING A VACCUM TEACHING A VACCUM ROBOT TO BE A
WEBRADIO ROBOT TO BE A WEBRADIO IN GO IN GO
ABOUT ME ABOUT ME Tobias Kohlbau So ware Developer @
Twitter: GitHub: myOpenFactory GmbH myOpenFactory GmbH @toktech @toktech tobiaskohlbau tobiaskohlbau
OBJECT OF INTEREST OBJECT OF INTEREST Xiaomi Mi Robot Vacuum
Cleaner
WHY XIAOMI VACUUM CLEANER? WHY XIAOMI VACUUM CLEANER? Cheap Works
like a charme Silent
None
HACKABLE HACKABLE Ubuntu OS powered by ARM v7 Processor Root
access without opening the device Cleaning Robot Hacking bit.ly/2VI5aTr bit.ly/2VI5aTr
MOTIVATION MOTIVATION 1. Seriously: Did my vacuum just talked to
me? 2. I want to hijack this
None
Cross compilation toolchain libasound for Vaccum Go based mp3 player
Running on my VACUUM
package main import ( "io" "log" "os" "github.com/hajimehoshi/go-mp3" "github.com/hajimehoshi/oto" )
func main() { res, err := http.Get("https://static.kohlbau.de/audio.mp3") if err != nil { log.Fatal(err) } decoder, err := mp3.NewDecoder(res.Body) if err != nil { log.Fatal(err) } defer decoder.Close() player, err := oto.NewPlayer(decoder.SampleRate(), 2, 2, 8192) if err != nil { log.Fatal(err) } defer player.Close() if _, err := io.Copy(player, decoder); err != nil { log.Fatal(err) } }
SECRET INGREDIENTS SECRET INGREDIENTS Webserver REST API Magic (some people
call it UI)
DEMO DEMO https://github.com/tobiaskohlbau/dustrobo https://github.com/tobiaskohlbau/dustrobo
QUESTIONS? QUESTIONS? @toktech @toktech