Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Teaching a Vaccum Robot to be a Webradio in Go ...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
GoDays
January 30, 2019
Technology
84
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
More Decks by GoDays
See All by GoDays
Standing on the shoulders of giants - Tomasz Janiszewski - D2IQ
godays
1
160
How to instrument Go code in 2020 - Björn Rabenstein - Grafana Labs
godays
1
290
12 Factor CLI Apps with Cobra - Markus Zimmermann - cosee
godays
0
450
Integration and end-to-end testing with TestContainers-Go - Nikolay Kuznetsov & Erdem Toraman - Zalando
godays
1
1.2k
Fun with Functions - Frank Müller - Loodse
godays
0
160
Amazon SNS/SQS with Go - Paul Borlin - Compassion International
godays
1
350
Writing a language parser in 15min (or less) - Xavier Coulon - Red Hat
godays
0
150
A story about distributed computing before the cloud arrived - Rogier Lommers - bol.com
godays
0
140
Serverless Ops – Bye-bye Bash, Hello Go! - Rob Sutter - Amazon
godays
0
120
Other Decks in Technology
See All in Technology
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
130
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
140
module Synths; end
asonas
1
130
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
210
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
580
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
300
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
150
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
150
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
120
Code4Lib JAPANカンファレンス2026 開会挨拶 / Code4Lib JAPAN Conference 2026: Opening Remarks
ykiyota
0
310
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
280
2026/09/10 Spring_Bootから_Jakarta_EE_MicroProfileへの移行
megascus
0
290
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5.2k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
880
Designing for humans not robots
tammielis
254
26k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
270
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
560
We Have a Design System, Now What?
morganepeng
55
8.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
270
A Modern Web Designer's Workflow
chriscoyier
698
190k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
820
Scaling GitHub
holman
464
140k
The Curious Case for Waylosing
cassininazir
1
500
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