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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
GoDays
January 30, 2019
Technology
1
77
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
140
How to instrument Go code in 2020 - Björn Rabenstein - Grafana Labs
godays
1
260
12 Factor CLI Apps with Cobra - Markus Zimmermann - cosee
godays
0
420
Integration and end-to-end testing with TestContainers-Go - Nikolay Kuznetsov & Erdem Toraman - Zalando
godays
1
1.1k
Fun with Functions - Frank Müller - Loodse
godays
0
130
Amazon SNS/SQS with Go - Paul Borlin - Compassion International
godays
1
330
Writing a language parser in 15min (or less) - Xavier Coulon - Red Hat
godays
0
120
A story about distributed computing before the cloud arrived - Rogier Lommers - bol.com
godays
0
120
Serverless Ops – Bye-bye Bash, Hello Go! - Rob Sutter - Amazon
godays
0
99
Other Decks in Technology
See All in Technology
型を書かないRuby開発への挑戦
riseshia
0
190
Exadata Fleet Update
oracle4engineer
PRO
0
1.3k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.1k
EMからICへ、二周目人材としてAI全振りのプロダクト開発で見つけた武器
yug1224
4
410
OpenClawで回す組織運営
jacopen
2
470
JAWS DAYS 2026 CDP道場 事前説明会 / JAWS DAYS 2026 CDP Dojo briefing document
naospon
0
180
Databricksアシスタントが自分で考えて動く時代に! エージェントモード体験もくもく会
taka_aki
0
320
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
1
320
マルチロールEMが実践する「組織のレジリエンス」を高めるための組織構造と人材配置戦略
coconala_engineer
2
420
問い合わせ自動化の技術的挑戦
recruitengineers
PRO
2
150
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
360
男(監査)はつらいよ - Policy as CodeからAIエージェントへ
ken5scal
5
730
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
580
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
460
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
150
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Darren the Foodie - Storyboard
khoart
PRO
3
2.7k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
220
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
470
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
120
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
170
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