Soylent Dumb

In case anyone really needs to be told, don’t do this:

The short version, a geek without any medical or nutritional training decided he didn’t want to have to eat or cook anymore, and so would come up with a food replacement that he’s calling “Soylent”, in a rather tasteless homage to the famous movie.

No-one involved in the company appears to have any training in this area, and Rhineheart has supposedly created his recipe by doing some basic review of the research and then just testing the stuff on himself.

These guys have been covered before on the Skeptics Guide ( and whilst they don’t appear to be deliberate hoaxers (they seem to believe what they claim), they do seem to be dangerously lacking in sense.

They’ve managed to raise more than 100k on kickstarter so far, which just goes to show that there are plenty of people out there with far too much money, but don’t be fooled.

If you really want a liquid meal replacement – They Already Exist!


The Software Craftsmanship Furor

I haven’t posted here for a while but with the current debate raging across the interwebs about how Software Craftsmanship is full-of-awesome\the-end-of-life-as-we-know-it\meh-for-the-whole-family with misunderstandings on all sides, I couldn’t help but put my own two cents in.

For those of you who have missed the shouting, here is a good place to start: and

The second of these has lots of other links to people chiming in on the subject.

These are big names, make no mistake. There are very few in the enterprise software industry that don’t have a fowler book on their shelf (Enterprise Application Patterns anyone?) and anyone who pays attention to infoQ and the conferences has likely heard about the clean code and software craftsmanship movement. Let me start off by identifying which side of the fence I am sitting on in this debate:

I am a green-band wearing signatory of the Software Craftsmanship manifesto and am proud to be so.

That said, lets get to the meat of this current discussion.  I read the posts from Dan North and his supporters with alternating disappointment (when they spoke about how fearful they we might backslide) to alarm rapidly approaching on disgust (when one spoke that the very existence of the movement upset her.)

What I can’t understand is how anyone who has endured the trenches could be anything but inspired? Is it just the wording of the manifesto? Have they not watched Uncle Bob’s fantastic presentation at Q-Con perhaps? Not spoke to the adherents about why they like it?

I think in the end that it comes down to a difference of opinion; and the truth is, the world needs both of us.

I never liked agile. I wasn’t alone there but it seems a strange thing to say these days as its popularity has grown in leaps and bounds. To be clear, its not that I disliked the techniques of agile; I use many myself in my day to day job, particularly short iteration time, constant customer feedback and backlog-scheduling. These three things alone justify the existence of Agile as a philosophy and we should all be thankful.

What I disliked was the attitude of many agile practitioners; the exclusive focus on the customer’s desires above all else.

I’ll wait for the “but but but” to calm down, yes, I am aware that as members of a service industry it is our job to satisfy the client’s needs, but if you think that job is simply saying ‘yes’ all the time to whatever they say you are doing yourself and your industry a disservice. It is important to discover the underlying requirements, the real needs the client don’t know exist yet, the domain problem that needs to be solved.  It is important to not only listen to the client, but to engage with them, to challenge their ideas and conceptions, to offer your own technical advice and to utilise the report so fostered to deliver a solution that meets the customer’s needs.

These needs are many and often conflict. How many people have, in effect, been handed project where the client wants perfect work, in record speed, for very little cash?  The old saying goes Speed, Quality and Price, choose two.

These are personal pet peeves I know and I am not trying to demonise anyone in the agile movement, it is a problem that existed long before them.  Fowler in particular has very real and well reasoned worries and concerns, but I feel they might be misplaced.  You see, what Software Craftsmanship is about, as Uncle Bob points out, is about programmers being tired of being ashamed of their work.

We’ve all been there.  Deadlines loom, the client doesn’t understand why there are delays and the project manager doesn’t want to have to tell them that the latest release is going to have to slip.  Something has to give and its going to land squarely on the programmers shoulders.  Get It Done is the name of the game.

Good, strong work takes time, and time you don’t have, so you cut a few corners.  Skip a few unit tests, throw in a few small hacks to get the functionality working quickly.  It’s still fairly robust and you’ll go back and fix it after the release date.

Yeah right.  It never happens, and years later the huge application that is now in maintenance mode, where it will spend the bulk of its life, is making a bunch of programmers miserable for all the hacks and quick-fixes that were never repaired. The ‘technical debt’ as it has been called was never repaid and the interest can be crippling.

I have worked on many of these projects, and have been responsible for a few in my time too. They may be “successful” projects, that made a crapload of money and delivered on time, but their legacy is unhappiness.  The coders are unhappy, those that take pride in their work, because they know how bad much of it is.  The support programmers are unhappy, they have the maintain the mess.  The customer is unhappy; a quickly written software has far more places for bugs to hide, performs worse and has less stability.  They might be “happy” to sign off, and reasonably satisfied with the work, but they could be happier; much happier; if the work was done properly in the first place.

A few of the critics talk about “under the hood” code and how it doesn’t matter if its “beautiful”, only the functionality matters.  The client wont see if, why care?  These people seem to think that when we say “Craftsman” we mean that we want to build ourselves a sistine chapel of each and every project, complete with ornamentation and a gigantic mural.  To them, my answer is quite simple. Bookcases.

Have you have compared a custom built bookcase to a flat-pack from ikea or somewhere similar?  Which one would you trust your favorite books to?  A flatpack bookshelf serves its function, to hold books, but its shelves are held on by simple screws – or worse, just resting on tiny plastic holders.  The frame is supported only at the four corners by the screws you wrestled into place and the whole thing feels a little tottery.  Over time, the weight of the books cause the shelves to sag and eventually break away from the frame altogether.  It serves its function, but only if not too much pressure is ever put on it.

On the other hand, a custom built bookshelf has dovetailed shelves made of hardwood, with several supporting rests to prevent bowing under weight. If its made by a competent carpenter, you will be passing it on to your children.

That is the difference we are talking about. We don’t (necessarily) want to be the builders of massively complicated beautiful structures that serve no purpose but to satisfy our own egos.  We want to meet our customer’s goals and needs as quickly and cheaply as possible while still delivering a product that we can be proud of. A product that will last and cause its users to exclaim “Damn i’m glad we chose that company!” rather than “Glad this piece of shit is finally done”.

We don’t want to ignore the customer, indeed we want a proper report even more desperately than most Agile adherents. We want them to love quality work as we do and understand that to produce the best result takes both time and money, but less of both if we start out well and continue in the same vein, working together.

Uncle Bob sums up this idea here:

He also has come to the conclusion that this fear and panic amongst agile adherents must be caused by a misunderstanding; the claims that we are returning to a worship of development above all is misguided at best, and flat out wrong at worst.

All of this is secondary to the reason I first became inspired by the Software Craftsmanship movement. I have spent a lot of time working on projects plagued by these very problems over my career. Projects in support where previously happy clients have become worn down and bitter by the never ending stream of fixes, bugs and performance issues which are the legacy of a timeline that was too tight, and corners that were cut. Watching Bob Martin’s talk on Info Q about clean code, he said one thing which resonated with me. He said, very simply, follow the boy scout rule and leave the code cleaner than you found it each time you fix a bug.

It was simply amazing to me how much of a difference this made to my outlook. I went from miserable and burned out to excited and once again proud of my work. I couldn’t fix the entire project, it took thousands of man hours, hundreds and hundreds of thousands of lines of code, and many deadline panics to get it in the state it was in. But each day I could fix a little part of it, and walk away understanding that I had not only done my best to satisfy the client in the immediate term; by fixing the bug; but that I had made a small improvement to the system -as a whole- that, in the long term, will lead to a far more satisfactory system for everyone.

Making a difference matters. Having pride in your work matters.  Doing the best you can each time you sit down to work matters. Knowing, when you have to make trade offs and create something less than it could have been, that the situation really requires it, and its not just because you lacked the courage to stand up for your work; that matters too.

The end result matters, and it takes more than just great client engagement.  It takes great client engagement -AND- great development work. And that is why I am a signatory of the Software Craftsmanship Manifesto.

Gartner’s Magic Quadrant for Horizontal Portals is out

I’ve learned to appreciate Gartner’s magic quadrants, though I must admit I found them strange at first.  Simplifying the state of a market down across two axis as they do turns out to be quite efficient a way to judge the competitors in the space.

The new Horizontal Portal Magic Quadrant is no exception.  By far the most obvious change in the market is that Microsoft has passed IBM to become the new market leader with the release of SharePoint 2010.  I’ve been involved with SharePoint in one way or another for most of my career and it certainly appears that the attention and effort Microsoft have put in to this product in recent years is finally getting serious attention in the marketplace.

Oracle’s acquisitions have put it up with the forerunners and IBM and SAP are holding in the leader’s quadrant fairly steadily, but by far the most interesting entry in the leader’s quadrant is Liferay.  Whilst it’s ability to execute places it very close to the axis line, it’s completeness of vision has it at a fairly good mid-point, and by far the most interesting thing about it is the fact that it is open-source.

The graph might not have it as a serious contender against heavyweights like IBM and Microsoft, but the fact it gets into the same quadrant at all speaks volumes for the amount of effort that has gone in to this project and, driven by the current economic climate, it would seem they have had the opportunity to prove themselves at some larger client sites.

Certainly an interesting developing market and worth watching.

New Blog!

Hey everyone,

It’s been a while between posts I know, all I can say is I’ve been busy, sorry.  I have a couple of articles half-written to share here, it’s just a matter of finding the time to finish them.

In the meantime, long-time readers of my blog would know that as well as being a software developer, i’m also an author.  I’ve decided this year I’m going to attempt to participate in NaNoWriMo (because my life just isn’t hard -enough- already).  I’ve wanted to do it for many years now and it seems there is always a reason not to.  This year i’m going to attempt it anyway and damn the reasons!

That said, it occurs to me that many of my regular visitors are actually here for the technical content rather than any of the other posts that go up from time to time. With that in mind, i’d like to announce the creation of a new blog, Nulla Lux Sine Tenebrous, which will be the posting-point for my rants, NaNoWriMo updates, complaints and general chattiness.  This blog will remain, as always, and although I can’t promise a great acceleration in content I will certainly not abandon it.  It will be devoted, from this point on, to primarily technical content – such as the articles and quick how-to’s that seem to draw the lion’s share of the traffic to this site.

Thanks to everyone who has followed this blog over the last few years, I hope you all stick around – and if you’ve a taste for it, wander over to the new blog as well.

Scribd get greedy

The other day I was looking about the net for a couple of free books that I knew were around somewhere.  I had copies backed up somewhere on my file server, but I had a pretty good idea of where to find them on the net and downloading only takes a moment, so it just seemed simpler to do it that way.  I’m lazy like that.

The books in question? A series of non-fiction on writing, written by S.L. Viehl.  She has written an excellent series that includes some planning worksheets that i’ve found useful in the past and kindly made them available free online.

I tracked them down on Scribd, where they have always lived, and was quite surprised to find I couldn’t download them. Apparently their policies have changed and in order to download, i’d have to pay a fee.  I could still read online however.  This was annoying, but I still had copies somewhere on my server, and – as it turns out – my own transcribed copies of the worksheets anyway.  I shrugged and went about my business.

A few days later, I came across this.

It turns out that Scribd has started doing this to the authors of free works, but neglected to tell them!

This, then, is somewhat more serious.  Scribd has, in effect, begun to sell work that it has no right to sell, profiting of the copyright’s of others without permission.  It’s quite nefarious, in some ways, to build up a name as a provider of free hosting and then capture the intellectual property of your users and sell it for profit.  Make no mistake, whatever their justifications that is what they have done.

In the meantime, if you have works you wish to make public and freely downloadable, try Google Docs.

Shock Totem 2 is a go

Hey everyone,

Its been a while since my last posts as things have been obscenely busy at work and I really haven’t had much time to write anything at all.  One thing that has happened over this time though is the publication (at last!) of issue 2 of Shock Totem magazine, which features, amongst other great works, a short story I wrote last year.

This is my first professional fiction publication and I’m quite excited.  The issue has been out a little while now but I was waiting to see my copy before I announced it and I must say – it’s an impressive looking little magazine.  They’ve really done a good job with the production values.

I’d like to take the opportunity to thank Ken and the other Shock Totem staff who work hard and do such a great job putting the magazine together.  It was a pleasure working with them and I hope to do so again some time in the future.

In the meantime, go out at buy it!  Links to buy are at:

It’s available directly from the publisher and also from Amazon and Barnes & Noble online bookstores.

Edit: If you want to know more, the Journal of Always has the first review up!

Read it?  Let me know what you think in the comments.

The HTML5 video battle: Part II

This is a quick update to yesterday’s post titled “Google opens the VP8 Codec“.  In that post I described the lay of the land for current software developers interested in the online video space, the battle around which codec will become the defacto standard for HTML5 video, and what it all means for us.

Almost as soon as I posted, it needed updating – the news is coming quick and fast.  All of the involved companies seem to realise that this is a major turning point in the web and they all want it going their way.  Most of the contenders realise that they themselves don’t have the sway to push this issue by themselves and it is quickly devolving into a fight between two camps.  Team Google, and Team Apple, with two different technologies and two completely opposed philosophical outlooks on the way the technology world should work.

In my previous post I accidental missed one of the contenders here, as they are really of only tangential influence in the current debate.  To summarise once more, the five players in this drama are Apple, Google, Microsoft, the Mozilla foundation and Opera Software – each has its own browser with its own dedicated followers and a greater or smaller percentage of the overall browser market: Safari, Chrome, Internet Explorer, Firefox and Opera.

To catch up on the basics of the issues, please view my last post – we will now deal with the rapidly changing landscape and how it already differs from what I laid out yesterday.  There is no doubt that everyone was waiting for this announcement from Google, given the speed that the other players have made their responses.

To start, Firefox and Opera both supported the Ogg Theora codec as the default (and only) HTML5 video codec.  Mozilla have been very vocal on this point, routinely calling for support in preventing H.264 from becoming a patent encumbered defacto standard.  It was announced yesterday that current developer editions, from the nightly builds, of Firefox and Opera also support VP8 – throwing their weight behind Google and the newly opened codec.

These three then, Firefox, Opera and Chrome, represent a majority amount of the browser marketplace.  According to the W3 Schools market share report, these three contenders represent 62.2% of the Browser market share.

It is no surprise then that Microsoft, despite reservations, announced support for VP8 in Internet Explorer 8.  Not native support, it must be said, however they have stated that anyone who has the VP8 codec installed themselves will be able to view VP8 video via the HTML5 video tag in IE8.  This to me is a very defensive position for Microsoft, obviously they’re still worried about patent attacks and so don’t want to bundle a potentially encumbered codec with their own browser.  However this move also shows that they realise they can’t ignore the potential of VP8 to break through H.264’s stranglehold and become the web standard.  They can’t decide which camp to bet on, so they’re betting both.

Whilst native support would have been better, this is still a partial win for VP8 supporters and raises the total Browser market share of VP8 compatible browsers to 78.4%, assuming that VP8 support will be coming only for IE8.  This is a near overwhelming victory, as the remaining market-share is split between IE7 and 6, who combined equal about 17.2% of the market share (hands up if you can’t believe that IE6 still commands 7.9%.  Upgrade people!) and Safari, the last remaining hold-out, with a tiny market share of only 3.7%.

Given that IE7 and 6 are unlikely to be upgraded at all for HTML5 support, we can effectively count out 17.2% of the market from this discussion – they’re unlikely to get any codec until they upgrade. So only 82.1% of the market are actually involved in this discussion at all. What this means then is for all the people who will be able to access HTML5 video, 95.4% will be able to access VP8 (either natively or by installing the codec themselves).The 4.5% using Safari will be the only ones who cannot.

Compare this to Ogg Theora, supported by only Firefox, Chrome and Opera, and you have a potential market of 75% of the browser market.  Still a goodly amount, but you’re missing anyone using Safari or Internet Explorer.

H.264 is supported by Chrome, Safari and Internet Explorer.  This is the only codec safari users can see and is supported by only 40% of the potential marketplace.

Numbers like this would normally mean that VP8 was a clear winner already and the battle was over before it began, H.264 is a no-starter.  What does Apple and the mighty Steve Jobs have to say about this?

According to an article at The Register: VP8 is a bad choice because it will be liable to the same attacks as Ogg Theora on the patent front, and it performs slower and with worse compression than H.264.  Their evidence for the poor performance?  As linked in the article, a paper written by college student supporter of H.264 and contributor to an open source decoder of same, who claims VP8 performs poorly and will not rival H.264 in any way, and the spec is poor and unlikely to be corrected by Google.

This is the reality distortion field in full effect and it will be interesting to see the Jobs supporters rally behind this particular piece of FUD.  I am not qualified personally to judge the quality of VP8 vs H.264.  A quick search on the net shows the world is divided between those that think it is better, those who claim it is not and those who really don’t see any difference.  I think the quality issue for web video is itself a non-starter, the 95% support ratio would, under normal circumstances, push that aside as it has in technological battles before.  Quality of tech generally comes second to ease of use and compatibility with content.  If all the sites you like use VP8, you’re unlikely to care that H.264 is better.

That said, this move shows the supreme arrogance of the Apple community.  What Jobs is saying with a one line email is that we believe VP8 is no threat because a college student said so.  Now this college student might be the worlds best video codec analyst, but… how is anyone to know? One college student’s opinion versus Google’s engineers, On2’s original developers, and every other person who has played with the tech and pronounced it good.

Enough on that, as I said, it’s likely a non-issue.  The real issue is that Apple is holding firm – no VP8 support, H.264 only.  What does this mean for us?

I’d love to call this one for VP8 with overwhelming support, Google standing behind it stating they are completely unafraid of potential patent trolls and 95% of the available market supporting the codec.

We can’t though.  Apple, despite having only a 3.3% share of the browser market, has a 100% share of the iPhone market.  With no support for Flash, currently H.264 is the only way to get video to those devices.  Sure, overall this portion of the market is relatively small, and Android will no doubt have VP8 support – but the issue is this.  This battle will, in the end, be decided by us.  The developers.  If the majority of sites go VP8 as the defacto standard, Apple will more and more feel the pressure to include support for it in the iPhone Safari client as the iPhone users get more and more frustrated at their inability to view those sites.

The question remaining is how many developers are willing to cut out such a, some would say inordinately visible, section of their market?  iPhone uptake is pushing many of the larger sites towards HTML5, and with that as their driver they are unlikely to choose a video codec that the iPhone doesn’t support.

The battle is far from over everyone, and we still can’t call a winner here.  Don’t doubt for a second that Jobs understands the mindshare and brand power he wields with his “magical” devices, and don’t doubt that he will use every ounce of leverage he has to make the world conform to his reality distortion field.

I will continue to update as more news comes in, however for now I think my previous advice still stands.  The safest route is H.264 with a Flash backup for Opera and Firefox who don’t support it.

My preferred option? I have to say i’m weighing in with VP8 here.  I had really thought we’d left behind the time when we coded the same page in different ways to cater for differences in browsers.  We need a standard web, and that means, a standard video codec.

Thoughts anyone? Have I missed anything or am I just plain nuts? Let me know in the comments.