28 March 2012

Camvine - The Highs And Lows

These are some other random highs and lows from the Camvine experience, lifting the veil on some bits and pieces.

What would I have rather have done with those three-and-a-half years?  Nothing else.  It'll be in my blood for a while longer.

HIGH

We did the Cambridge Tech Demo Night.  Quentin had prepared lots of slides to cram into 7 minutes, and I was going to simultaneously do a full unboxing from scratch (with no cheating) simultaneously to how how easy it was to set up.  Unfortunately projector connection failure caused us to throw out the slides and Quentin fired up a web browser on some Windows machine that was part of the University network that by default was controlling the projector.  He talked, fired up the browser and I started unboxing and connecting cables, within about three minutes we were connected, registered and uploading content to the display.  The projector failure was the best thing to happen to us because we showed the product end-to-end in such a short period, we even got a standing ovation - scary and heartwarming stuff.

LOW

I was always asked to evaluate a new hardware platform, which I would get working.  Then I was always expected to support it without any hardware because £200 was too much to keep a small PC around.  Unfortunately for other things like Windows licences the company was able to pour money down the drain.

HIGH

We had a crazy test rig.  It involved a full server in a Xen VM with two NICs so there was a fake Internet hanging off the back of it.  This was always our saviour, we insstantly knew if software updates or networking were broken because we had the physical hardware dangling off the back, not some mock representation.  This obviously couldn't save all problems but it meant the customers rarely saw a broken release.  It was horrible and verbose, but I saw the power in it being an integral part of the software development.

LOW

Not only did we have the major SSD failure of 2011, we had them replaced.  Then they died again, but this was a quick hotswap because we did not trust the management services we were paying for any more.  What I also discovered was the server grade Intel drives were actually cheap'n'nasty Crucials for consumers.  Because of the work I did reducing the database load we were completely fine back on spinny disks.

HIGH

Working on Linux full-time.  Working on Mac full-time.  Going nowhere near Windows.  And making sure my Macs and Linux machines had awesome decals.

LOW

Stopping working on the Mac.  I realised I was using a VM with Linux the whole time on my Mac so I got myself an Asus U36JC which was an awesome laptop that I had configured perfectly for Linux.

HIGH

Rewriting the network stack to be pure Python.  The code is all here https://github.com/garrybodsworth/coda_network - this means NTLM proxies worked, streaming worked, and all the intricacies of networking worked as they were supposed to.  Although I never got an official document to say I could open-source it, I did it anyway.

LOW

The Windows player.  As alluded to we had to have a Windows player and the whole feature creep and ignoring my initial specification documents helped make it a disaster.  To be honest, I have no problem with a windows player, but it took two developers for over a year and it never got released in the end.  If two developers had been working full time on the thing we were actually selling then I think it would have been a huge win all round for the customers because all the features needed would have been done.

HIGH

Having an iOS player.  This did get released.  Michael Dales did excellent work on one day a week to get this done in a realistic timescale.  I think technically it was a damn good idea and something to promote, unfortunately the comany itself didn't know what to do with it so it languished in marketing purgatory.

LOW

Battling with ATi binary drivers, that was massively hard work, but I eventually had it so it could stay up for a significant period of time before the ASIC locked.  The main culprit was the XVBA decoding seemed to cause memory to eventually go mad.  The nvidia drivers had their fair share of issues like breaking vsync rendering for rotated displays which meant I ended having to make everything a surface in clutter and rotate that(!)  Adobe Flash support was similarly problematic mainly because of the underpowered CPUs we were using.

HIGH

Programming the initial 35 batch of CODApods on my own in the shed on a Friday with Tron playing on the TV above my desk.  Tron was being played through a CODApod of course!

LOW

Being forced to evaluate hardware from people that were basically chancing it and were realistically years away from having a fully working system.  I ended up sinking way too much time into that.

HIGH

The people who I feel embodied Camvine, Quentin, Sarah, Michael, and Thomas, without them there would have been no company to try and build.  John Naughton was also integral to the initial spirit.

And all the other people in no order and if I forgot anyone slap me round the head in the pub - Brian Boakes, Martin Waddell, Joseph Newman, Jonathan Thackray, Richard Morrison, Tomasz Wojciechowski, William Baer, Rob Berwick, Nick Brook, Dan Clemens, Allison Holloway, Steve Hales, John Martyn, John Naughton, Diego Barrow, saafad Khan, Emily Poulton, Breton Saunders, Justin Drake, Glenn Moodie, and Adam Brunning.