For Christmas, I got a USB Big Red Button. I honestly have not even looked at what it is supposed to do as it comes from the manufacturer (mostly because they only officially support Windows and I only run Linux). I am, however, inspired by the simplicity and tactile interface of the Big Red Button. I’ve read about some people making it a kill switch for their computer(s), but that seems kinda lame to me (there is another button that is usually less red but does the same exact thing; we call it the power button…). Also, Hollywood has trained us to recognize the big red button as some sort of interface for something more remote (launching rockets, setting off alarms in a compound, etc.). I needed to toss my hat into this ring!
First, a quick overview of this deceptively simple piece of hardware. It has 3 major states, each that triggers an electronic signal:
- Lid open
- Button pressed
- Lid closed
Due to the simplicity of this thing, there isn’t much need for me to go into more detail. If you really care about the internals, you can read more on this site: http://ddurdle.blogspot.com/2013/12/using-usb-big-red-button-panic-button.html
Since my world these days revolves around OpenStack, an obvious first target is our DreamCompute OpenStack cluster. For the last few weeks (err, months?) at work, we’ve been banging our head against a bug in OpenStack Icehouse (something to do with the sync function in the NSX plugin for Neutron and/or our Akanda router). It’s been an evasive bug that only seems to trigger after/during a bunch of activity (due to a race condition in the sync process). Loading up our staging environment with VM creates/deletes seemed to increase the frequency of the bug. As such, I had a stupid little script I wrote to create a VM, then immediately delete it. You know what would have been much more satisfying? Physically whacking a big red button to launch an assault of VM create/delete operations.
So I did just that (pardon my ruby…): I created an app for the Big Red Button that launches a VM for every button press and then deletes them after the lid is closed. It’s still very early development and suffers from a few annoying bugs (like serialized VM creation/deletion). Also, I tried to make use of the ruby OpenStack module, but it turns out it’s horribly broken. If you happen to have more than 1 network in your tenant, the module simply won’t work. OpenStack does not (yet/as of Icehouse) provide the notion of a ‘default’ network, so you must specify your network ID if you have more than a single network in your tenant and the ruby OpenStack module doesn’t provide a facade to pass in the network ID.
I’m sure I’ll find more fun small projects for this guy, but this is where I’m at as of today. Some ideas I’m thinking of for this Big Red Button are:
- Hot-key for use in computer games
- Snapshot of my Foscam IP cams
- Code deploy mechanism
- IRC/Jabber interaction (maybe something that drops GIFs?)
If you have any ideas, I’d love to hear them!