So today is the deadline for the Android Developer Challenge, and I just finished up my submission. It’s a sweet tool that can show you pricing and metadata for anything with a barcode. Here’s a few of the features that make it stand out:
Automatic barcode recognition using phone camera
Shows CD, DVD, or book cover along with detailed reviews
Searches over a dozen stores, both online and brick+mortar
Tracklisting for CDs and play sample tracks right on phone
For books, searches local libraries to see if they have a copy
It’s called Android Scan and I’ve put up some documentation and a quick video that shows it in action with an external camera and real-world barcodes.
Once the developer challenge is over in mid-May I’ll be releasing both the Android and Python server source code under a GPLv3 open-source license. Send me an E-mail if you have any ideas or comments. I’m pumped about getting an actual Android device later this year.
So the past 6 weeks of my life have been almost non-existent. They give advice to new graduate students saying you should start writing your thesis early, usually about 6 months before you graduate. Somehow I kept putting if off with excuses of “just one more test dataset” and “let’s make the code even faster.” Because of these excuses, I ended up with was the most intense 6 weeks of my life to date. When I wasn’t writing or studying for my oral exam, I was sleeping or eating. Even during classes, all I could think about was my thesis.
During this time, I jumped into my code just long enough to setup new datasets, then left it to run for a few days while I went back to writing. Thankfully I had access to two dual-processor Intel Xeon E5345 machines (sixteen 2.33GHz cores in total) with 16GB of RAM each. As I frantically ran different parameter settings, I was extremely thankful for all the time I had spent optimizing the codebase. In the end I probably ran those boxes for about 6 days straight, which ends up being about 3 months of single-CPU time.
Looking back, I think I saved a lot of time by carefully crafting everything I put into my thesis. This caused writing to be tedious and very slow, but it made for solid drafts. Over the 6 weeks I also saw the value of keeping a regular sleeping and eating schedule. You really need to pace yourself for the long haul–it’s not like a class project that you can skip a night of sleep to complete.
To keep from going completely insane during the process, I started getting serious about coffee. Until now I’ve only had a cup of the office coffee on occasion, but not on a regular basis. On the advice of a few friends, I picked up some beans, a grinder, and a French press, all for about $35. While writing my thesis, coffee turned into a sort of comforting ritual. Anyway, I digress. To summarize the things I took away, I learned that pacing yourself is key to large projects, and that an hourly cron’ed rsync of your thesis to seven servers on three different continents can really help you sleep soundly.
At some point I actually finished a solid second draft of my thesis, and then was faced with preparing and giving my thesis defense. From what I remember it went well, besides losing my voice for the rest of the night. My oral exam the next morning went well too. So at this point I’m pretty much a Master of Science, I just need to finish the one class I’m taking this semester.
If you’re interested in my thesis research, we put together a nice poster back in January for a conference. In short, we’re using artificial intelligence to design radio networks. If you’re really interested, you could watch my thesis defense or read my second thesis draft linked below.
I can’t believe it’s all over so quickly. I suppose that’s how academia works–steady progress over time with short bursts of intense activity around deadlines. Like I said earlier, this has been the most intense 6 weeks of my life to date. I wasn’t really overwhelmed at any point, and to some extent it was a blast. I wouldn’t mind doing it again sometime soon.