safe to approach
in the zone
Inspired by how annoying is it when you are focused on coding and people bother you.
What it does
A productivity tool that helps software engineers avoid being pestered. Have you ever been in the zone only to have your colleague from HR ask you a pesky question that is totally not urgent? This hack would have prevented that by letting everyone know whether you are in the zone and hence unsafe to approach. On the other hand, it would also tell people when you are slacking off at work. It does all this by looking at the active process on your machine so it knows whether you're coding or procrastinating. It also tracks how many times you've been to StackOverflow and displays it, to show everyone how many issues you've solved today.
How we built it
We look at what you're doing on your computer by running a multi-threaded python script, that calls a bash script. This, in turn, calls an applescript that gets the active window and information about it. This data is then piped over the serial port into the Arduino, which is connected to a 32x32 RGB LED matrix that shows the world if you're safe to approach or being productive. In case someone decides to ignore this and still bother you, a keyword model is trained to listen for lines such as "hey, mate". If you're deep into your IDE, our display will flash a more prominent warning, thus ensuring uninterrupted productivity.
Challenges we ran into
- preventing deadlock (never written multi-threaded python before)
- drawing curves on only 32x32, using approximation algorithms.
- wiring up the matrix
- arduino not powerful enough for double buffering, displaying bitmaps - had to make everything from scratch
- very tempting Barcelona weather, finding enough stickers for our box
Accomplishments that we're proud of
- overcame all the challenges, still went to the beach
- didn't go blind from staring at a billboard display all night
What we learned
- displaying graphics with an arduino
- wiring a display, managing power (never used externally powered components)
- using Applescript
- piping data around ## What's next for BotherMeNot
- more graphics!
- better model, filtering out very important questions