Thursday, March 20, 2014

PyCon 2014 PiDoorbell tutorial - A LABOR of love and sheer hard work....


This is probably the first and only hardware/software tutorial offered at any PyCon.  It has been a labor of love for me.   A colleague of mine at work mentioned that he didn't understand how it could be THAT much work, so I figured I'd document some of the things I had to do to pull this off (so far).

Everything from 
  • building PiDoorbell, 
  • finding a co-presenter
  • preparing the tutorial proposal including detailed steps of what would be taught including timing
  • to spec'ing out a hardware kit that I wanted to give attendees as part of the tutorial,  
  • researching and determining prices, 
  • negotiating with PyCon to help with the finances as much as possible,  
  • re-researching prices to bring it down as much as possible, 
  • finally getting PyCon's support for some of the hardware (only for registered attendees),
  • not know how many units to order because I didn't know how many students we had
  • making a call on a final number so I could order parts from around the world and get them on time 
  • ordering all the hardware, 
  • paying for all of it (will get reimbursed depending on registered attendees),  
  • testing the sensors which I had to order from Hong Kong, 
  • seeking out and confirming teaching assistants from the bay area to fly to PyCon to help with the tutorial, 
  • finding finances to offset some of the Akkana's and Deepa's costs to attend, 
  • donating all of my ABI and IEEE awards to CodeChix so that I could pay for TA's attendance at PyCon
  • setting up a series of hacking sessions and coordinating to ramp up all TA's, 
  • dusting off PiDoorbell and powering it on so that I could remember all the details (haven't touched this in several months because of crazy escalation-ready bug I've been working on at work) as well as organizing CodeChix events, partnerships, fiscal sponsorship stuff, campaign etc.
  • receiving all the ordered hardware and checking to see if anything was missing
  • getting really sick with some damn flu-throat-virus-like-thing that knocked me out of commission for a good 1.5 weeks in March so I couldn't make any progress on anything
  • not being able to get serial tty console working on some of the SD cards that I had ordered
  • ditching serial console, ordered a mini LCD monitor with HDMI input and did a dance when it arrived
  • spent way too much time debugging why the mini LCD wasn't working - nothing was showing up.  Turns out the SD card was corrupted - needed a reformat.  It worked on a different SD card. Yaay.
  • going through first boot setup for 20 SD cards and configuring each one with static IP since I expect the conference wifi to be non-existent and don't want to rely on it.  Thanks to Serpil who did this tedious task - she is awesome!
  • getting the RPI GPIO interface up and running with the new sensors, Akkana's code changes, finding & fixing bugs in the code as well as my circuit (need stronger glasses).  Thanks to Deepa for all her help and support through this at our last hacking session.
  • incorporating RPI GPIO into PiDoorbell "recognizer" code  and getting that to work
  • discovering that the dropbox code to retrieve the url of the uploaded file no longer works because of the change in the dropbox api
  • finding a different solution for this problem and finally getting hold of the url of the video file from dropbox and getting notifications out
And that's just a few of the things.  So much more left to do including shipping all the hardware (fingers crossed), TA ramp-up, figuring out logistics for each TA (everyone arriving/departing at different days/times), setup/teardown for office hours, setup/teardown at tutorial, slides, handouts, agenda and flow etc. etc. etc.

But, it's all good.  It's going to be a great tutorial and people will love it.