—jtreader “Avoid this product” —Julian “Worthless Door bell” —decodenise “Worked one hot second after installed” —NotWorking “Over priced paper weight” — Straightline22
• Thought about using QR codes • Visitor scans a QR code, is taken to a URL that tweets on behalf of the visitor • Already had an OLED display for my Omega • The same good friend recommended that I use TOTP for token generation -- what Google Authenticator uses
TOTP tokens every 30 seconds • Shows QR code image + token value + timer • QR code encodes a callback URL • Callback tweets as @DoorbellNudger • Curious hack to avoid adding an API: piggyback token value as a cookie in the image response
for local development • Travis CI runs Python tests, • Calls webhook on Heroku when tests pass, • Which in turn results in a tweet from @DoorbellNudger with #update • Which in turn prompts the Python service on Omega to self-update from GitHub
to “silly” projects to hone your skills • Problem solving is fun, so invent new problems • You don’t need a serious/real project to start experimenting with new stuff - just do silly things • End-to-end, planned execution practice • Pleasure of getting multiple moving parts working together • Conversation starter (or ender) • Fun
OpenWRT (ubus, opkg, uci), Twitter API, TOTP, QR codes, Python (virtualenv, unittest), Travis CI webhooks, /etc/init.d scripts, Onion relay expansion, using USB storage as rootfs, animating a countdown pie chart in <canvas>, plus more I’m probably forgetting to appreciate.