TEACHERS
GALLERY
PRICING
SIGN IN
TRY ZURU
GET STARTED
Loop
Audio
Interval:
5s
10s
15s
20s
60s
Play
1 of 28
Slide Notes
Download
Go Live
New! Free Haiku Deck for PowerPoint Add-In
Arduino + Furby Broken Build Notification
Share
Copy
Download
1
1249
Published on Nov 18, 2015
No Description
View Outline
MORE DECKS TO EXPLORE
PRESENTATION OUTLINE
1.
Arduino + Furby Broken Build Notification
OH, YOU'LL WANT TO FIX IT QUICK!
Photo by
whatleydude
2.
Annoyance!
LEADS TO INSPIRATION
Photo by
Rennett Stowe
3.
Santa and my in-laws
were in cahoots...
Photo by
Anant N S (www.thelensor.tumblr.com)
4.
Untitled Slide
5.
Sound
Light
Motion + Tilt
Timers
State
6.
We don't break builds (no!)
But we suffer the build breaks of others
Build breaks aren't related to frequency of builds
The majority of build errors are dependency-related
C++ - more errors to fix than Java, but easier
http://m.itworld.com/big-data/424262/why-software-builds-fail
7.
OH, DEVELOPERS...
Photo by
osde8info
8.
Project Vision
Build break wakes up Furby - 10 second nudge
Breaks on top - n * 10 seconds
Wake up every 20 minutes to nudge if it's still broken
Build fixed - hoorah message!
9.
SO, THAT FURBY SCHEMATIC OR API
Photo by
freshwater2006
10.
USING SOUND TO DRIVE FURBY
https://github.com/iafan/Hacksby
Perl
Path of least resistance integration
Photo by
Keoni Cabral
11.
An app to launch the careers...
github.com/NextCenturyCorporation/Women-In-Computing
- see Robotics folder
12.
INTERN TESTERS
OR WOMEN-IN-COMPUTING DAY AT NEXT CENTURY CORPORATION
13.
Breadboard in the kitchen - sounds by
https://github.com/TMRh20/TMRpcm
Arduino Rev 3
SEEEDStudio SD Shield v 3.1
SEEEDStudio Ethernet Shield v1.1
Note shields are not together - interoperability issues
8 ohm mini-speaker from RadioShack (1 live, 2 dead)
Sound library:
https://github.com/TMRh20/TMRpcm
14.
RESCUED
15.
MOVIN' RIGHT ALONG
Photo by
musicwala
16.
.../lastBuild/api/json
How big?
whowhatware.com:8080/job/MakeFurbyDoItsThing/lastBuild/api/json
17.
Known payload
../lastBuild/api/json/tree?result,id
18.
Untitled Slide
19.
void loop() {
checkFurbyState();
runResult = queryJenkins();
if (runResult != unknown) {
handleResult(runResult);
}
}
Photo by
jenny downing
20.
void checkFurbyState() {
// check if running and should be off
// check if build broken still and need to turn Furby on
}
Photo by
Leo Reynolds
21.
void handleResult (enum result) {
switch (result) {
case success: furbyCheer();
case failure: furbyYell(+badResult);
case unstable: furbyYell(+badResult);
//unknown
, aborted - no-ops
}
previousRun = result
}
Photo by
wanzw
22.
ARDUINO NICETIES
Timers via milli() checks
Downsizing a library to fit
DHCP tradeoffs
#define DEBUG
Photo by
Royston Rascals
23.
Timers
.. in runFurby
retryVal = millis() + (1000 * 60 *20)
.. in checkFurbyState
if (millis() > retryVal) {
runFurby(badResultCount, false);
}
Photo by
David G Murphy
24.
#define RUNSOUND
#ifdef RUNSOUND
TMRpcm tmrpm;
#endif
Photo by
mis1u1
25.
#define DEBUG
#ifdef DEBUG
#define DEBUGX(x) Serial.println(x)
#else
#define DEBUG(x)
#endif
DEBUGX('My debug message');
Photo by
piesden
26.
Improvements
Jenkins notifications - stubbed, needs testing
Arduino with more flash memory - support DHCP
Run webserver from Arduino to set job information
Photo by
mandiberg
27.
'SHARE THE FURBY PAIN' models
Rotate per sprint
'Trophy' for builds broken
Grumpy buildmaster approach
Photo by
dullhunk
28.
dah-kah-oo-nye
Fix that build!
tina.coleman@nextcentury.com
@colemanserious
Tina Coleman
×
Error!