Archive for April, 2013

Amazon crowdsources picking which shows to fund

Amazon has dumped the model of having rich old guys decide what we see and hear on TV and has crowdsourced picking which series to fund.  “To pick just one show would mean that we’re rejecting many other shows,” said Roy Price, Director of Amazon Studios. “We’re doing it this way presumably because we don’t believe in the guru model of television where we should just make decisions using our great wisdom. When you have the internet as a platform for your service, the right way to do this is to give people a sample and see what they like.”

Watch the pilots and vote which ones will be created into original series on Amazon.  Currently there are 6 kids shows and 8 comedies (including Zombieland).  They’re also using “internet chatter” to decide which ones to fund, so be sure to reply with comments here.

An open and closed discussion on the Open-Closed Principle

Every programmer has heard of the SOLID programming principles (+10pts if you can regurgitate all 5, verbatim, on a job interview in under 60 seconds), but  despite being neatly wrapped up in a marketable acronym that would make Ian Fleming proud, the mnemonic benefits of SOLID are still questionable.  I mean, what part of “Liskov substitution principle” is not clear to you?

Ignoring the marketing gimmick, the implementation of these principles is often a point of contention.  One of the principles in particular is often hotly argued over in forums, blogs, and yes, even job interviews.  I’m talking about the Open-Closed Principle, which states “software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification” (as per Bertrand Meyer via Wikipedia).  I’ve heard a range of answers to how this principle should be practiced in code projects.  I’ve worked with people who insist that under the Open-Closed Principle, the source code itself should never be changed except for bug fixes, basically using class inheritance as a substitution for source control.  The class structure that way of thinking produces a huge mess, as you can probably imagine, with classes named like XYZ, XYZWithABC, XYZWithDEF, XYZWithABCAndDEF, etc. and without multiple inheritance, code duplication was common, almost inevitable really.

Jon Skeet has a refreshingly sober view of the Open-Closed Principle on his blog.  He quotes Craig Larman and Alistair Cockburn regarding a more clearly defined principle, Protected Variation, in which we identify points of predicted variation and create a stable interface which is neither too constrictive for implementations nor too hairy for clients.   This allows many different concrete subclasses, and code which only depends on the parent class doesn’t need to know about the subclasses in order to use them when they are presented as the parent class.  Furthermore, no existing functions can be removed (as they may be relied on by existing clients) and no new pure virtual functions can be added (as they will not be implemented by existing subclasses).

Phil Haack, being a Microsoft veteran, astutely retorted that “SPLID” just doesn’t have that same marketable ring to it.

© 2017 Robert Corvus