Another technology blog...

PDC09 Roundup

Sunday, November 22, 2009

Unfortunately the tyranny of distance has kept me well and truly away from Microsoft PDC09 but it hasn’t meant I’ve had to miss out completely. Seeing so much exciting information released about new technology (which happens to be my favourite kind!) made me want to get what excited me down online.

Silverlight 4 Beta

SilverlightIn case you’re feeling like it was only yesterday that Silverlight 3 was released, you’re almost right; it was back in July. The velocity of this product is like nothing I’ve seen from Microsoft before.

In terms of Silverlight 4, PDC marked the launch of the first beta. There’s a full rundown on the silverlight.net site but here’s what jumps out at me in terms of things I’d find useful:

  1. Comprehensive printing support (about time!)
  2. Lots of new controls including a rich text box (wonder what the markup language is?)
  3. WYSIWIG support in VS2010 (ok, more a VS feature but will save some Blend / VS switching pain)
  4. Elevated privileges for out of browser (big stuff in terms of building apps which need more machine interaction)
  5. Access to devices such as webcam and mike (part of the goodness elevated privileges bring, see a demo and code sample here)
  6. Implicit styles to theme the UI (think CSS and defining styles by tag name rather than by class attribute on the control)
  7. Cross domain access without security policy files (will make getting access to external services much easier)

Apparently Silverlight is also now on something like 45% of machines (I know, a tweet is not a very authoritative source but it’s Nikhil and it sounds feasible). Tim Heuer has an excellent rundown including demos and pictures in his post Silverlight 4 Beta – A guide to the new features.

IE9

internet-explorer-logo There’s An Early Look at IE for Developers on the IE Blog but in short, performance enhancements and greater capability are the key themes:

  1. Much better alignment to Acid test 3
  2. More implementation of CSS3 (including features like rounded corners)
  3. Performance enhancements to the rendering engine and use of DirectX

Reading through the comments on the blog, the recurring theme is “Great, yet another browser to make my sites compatible with” (just the natural fallout of browser evolution I’m afraid). Webmonkey is also reporting Microsoft Still Chasing the Competition With IE9 which is reflective of the general sentiment I’m seeing – too little too late.

iPhone

No, it’s not a typo, Microsoft actually used an iPhone in a demo without the intention being to denigrate it! They used it to highlight IIS Media Services by embedding the video tag from HTML5 and pulling the data off IIS. Take a look at it on an iPhone here. I had a go on mine and the quality was sensational.

image

If you’re not already familiar with the proposed HTML5 spec, Wikipedia has a brief spec overview plus a detailed overview of the support by layout engine which shows wildly varying compatibility levels (remember though, HTML5 is still just a spec). Early days but at least gives us some more options when targeting iPhone.

Windows Azure

windows_azure_small Get used to reading about Azure because you’re going to be seeing a lot of it in the coming months. Its been in CTP for the last year and is Microsoft’s interpretation of what cloud computing looks like. The entire cloud space is heating up pretty quickly with Microsoft competing against Amazon EC2 and Google App Engine, each with their own unique implementations.

PDC saw Microsoft finally reveal the pricing model which starts at US$0.12 per service hour. There was a bit negative feedback about the cost on the Twitter-sphere but when you consider you’re talking about less than $3 a day (c’mon, I spend more than that on cappuccinos!), it doesn’t seem like very much at all. The inevitable comparisons to how this stacks up against existing hosting providers will happen but Azure and cloud computing in general is about a lot more than just hosting a website.

The other Azure news we saw out of PDC09 was “Dallas”, a service enabling developers to discover and subscribe to data feeds. Here’s how it’s explained on the ars technica blog post:

The technology was showcased by PDC by Federal CIO Vivek Kundra. Kundra demonstrated a career-finding application based on Department of Labor teaching data stored and catalogued by Dallas that allowed, for example, teachers to find which areas of the country needed more teachers. The application was able to drill down within the dataset, for example, to find out exactly what kind of special education teachers were required in a particular area.

Obviously the dependency here is in providers making their data available so hopefully Microsoft can make it a compelling enough proposition for the service to be attractive to data consumers. Probably a “chicken and egg” scenario here so I do wonder how quickly providers will come on board.

I’m genuinely excited about Azure; if Microsoft can make the offering attractive enough to corporates by fulfilling on the promises of security, performance and utility based pricing and deliver to developers by streamlining infrastructure provisioning and app deployment within a familiar coding environment, they might just be on a winner.

Seesmic

Ok, not a Microsoft product but Seesmic got enough Twitter coverage to justify a look. In theory they make a Twitter client. I say in theory because all I got when i tried to use it was the little guy in the image below. Full marks for an amusing error message, no idea what the tool is actually like though!

image

Free Laptops!

It’s of zero direct benefit to those of us who weren’t there but those who made themselves available were rewarded with a free laptop. Reading the info on the Channel 9 website, it seems the not-so-hidden agenda is to get developers using Windows 7 and multitouch which without dedicated hardware would be extremely difficult, at least from the perspective of experiencing your product firsthand in the intended environment. Given this significant show of multitouch evangelism from Microsoft it will be interesting to see where they’re going with this product.

Next steps…

Personally, it’s Silverlight 4 and Azure which have me really excited. Silverlight because of the potential to break free of the shackles of HTML and change the way we build applications whilst overcoming some of the SL3 and earlier barriers, Azure because of the radical way in which it could address so many of the headaches developers face in terms of provisioning, hosting and supporting applications. It looks like there’s going to be plenty of reading and experimenting to be done over the Christmas break!


Share/Save/Bookmark

Is software quality really important? Ask Virgin Blue…

Saturday, November 14, 2009

Often times in the software industry you’ll hear statements suggesting that the quality of  the underlying software code is really not that important and what matters most is immediate term customer satisfaction, primarily achieved by delivering what they asked for within time and budget. This is usually a position put forward by the customer facing folks within the software industry who, in their defence, probably don’t have that strong a grasp on why code quality is important simply because they’re not living and breathing it. So let me give you an example.

Gold membership!

Yesterday I was both surprised and delighted to receive the following email from Virgin Blue, our local Australian arm of the Virgin airline empire:

image

As excited as I was about the prospect of receiving not one, but two personalised luggage tags, I was a little surprised that my meagre two short haul, domestic trips would qualify me to jump a couple of status levels in one go. But hey, who am I to complain?!

If something sounds too good to be true…

A mere two hours later the truth was revealed. I didn’t qualify for an upgrade and I would not be receiving my personalised luggage tags. Not even one of them. As it turns out, the root cause of the problem was due to the day of the week being a Friday and the day of the month being the 13th. Right, nice try.

image

Digging a little deeper

It turns out someone screwed up big time judging by the breadth of the problem as reported across the Twitersphere. The Australian IT News website reports Virgin Blue "error" upgrades passengers to gold status and explains the issue as follows:

The Velocity website appeared to crash at 6:40PM AEDST Friday, hinting that a large number of customers had visited the site to find out if the upgrade was true.

and then

A call centre representative from Virgin Blue said that the email was “a system error”.

“IT have advised that we do have a system error,” the representative said.

“Right now we do have a lot of phone calls because of this error."

And this brings me right back around to the topic at hand; software quality really is important. The thing about software quality is that often times it only becomes a priority once it’s too late and the pain of financial loss and public humiliation is felt.

Counting the cost

Let me take a stab at how this has hit Virgin Blue in the hip pocket:

  1. Their website went down so they lost bookings
  2. Their call centre was tied up dealing with unhappy customers so they lost even more bookings
  3. IT staff and management were kept preoccupied in “damage control” rather than doing their normal job
  4. A carefully managed corporate image (and the Virgin brand is very carefully managed), has been tarnished

It’s the last point that really hurts. Virgin has constructed such a carefully honed brand image as an organisation that really relates to people, dangling a carrot in front of their customers then taking it away in the blink of an eye is very, very bad for business.

What went wrong

I can only speculate, I honestly have no inside knowledge of what happened within Virgin’s software yesterday. What I can do is take a pretty educated guess at the conditions which lead to this after having spent a lot of time seeing the inner workings of software products.

Assuming the content of the email was correct in that some customers who would not normally be eligible for Gold but were “close enough”, there is inevitably some conditional logic along the lines of “if customer points balance is > 90% of points required for gold then upgrade”. There may even be a couple of conditions such as “and > 6 flights taken this year” or “and has been a member for > 2 years”. Now imagine a “>” was accidentally replaced with a “<”, or the “and” condition accidentally became an “or” condition. Easy to do and every software developer has done it before (or they lie and say they haven’t). The difference is that this went through to production unchecked and caused Virgin a big headache.

The point is, the conditions required to legitimately qualify for this offer were probably pretty simple and were equally simple to get wrong. The issue also occurred just before 5pm on a Friday night so picture this situation; its been a long, hot week, everyone’s about to head out for beers, the office is emptying and there’s just this one little task that needs to go out the door beforehand…

Of course I’m speculating but without any information from Virgin to the contrary, I think they’re pretty fair assumptions. Regardless, it’s safe to assume we’re talking about a software quality issue here.

Because quality does matters

There are probably a number of different ways this could have been avoided by looking at software from a quality standpoint. Perhaps there were no automated tests for this particular condition. Perhaps an activity with such broad ranging ramifications didn’t alert the operator to the scope of the audience. Perhaps the logic was embedded in a 500 line file and indented through half a dozen “if” statements hence obfuscating its true intent.

Whatever it was, someone skimped on quality and now the true ramifications of this have come to bear. So the next time someone attempts to convince you software quality doesn’t matter, ask them if they ever received their personalised luggage tags. Hopefully the raw emotion and bitterness of their loss will help them see the error of their ways!


Share/Save/Bookmark

Want to be a better programmer? Have a baby!

Friday, November 6, 2009

Recently I’ve gone through a particularly intensive training program. This program has required a significant contribution of money, time and energy and although it has already been running for four weeks, has only just begun. The thing is though, its already made me a better programmer and the course is pretty easily accessible, in fact some people even stumble across it accidentally; get yourself a baby!

Baby

What the?!

Ok, I know it’s a nonconventional approach but allow me to elaborate. The journey into parenthood forces you to push all sorts of boundaries you wouldn’t normally consider. It requires degrees of both creativity and patience you’ve probably never experienced before. It also introduces you to the concept of Baby Brain (I assure you, women do not have a monopoly on this phenomenon!) but for the most part, it’s an eye opening experience.

Problem solving

Programmers tend to be very adept at solving problems. In fact, you could say our entire existence is dependent on being able to identify, analyse, design and build solutions for problems. Generally we proceed in a very analytical fashion, carefully analysing the problem by identifying the current state, looking for patterns then constructing precise solutions.

One thing that pretty quickly becomes clear about babies is that the usual rational problem solving techniques go right out the window. Think you can implement the same solution twice and get the same result? Think again. Think you can identify the root cause of just about any problem? Not likely. Try brainstorming with a baby – it just doesn’t work.

When you start troubleshooting a baby you enter a whole new world of problem solving pain. You develop skills which take you into totally unchartered mental territory and force you to think not only outside the square but outside any semblance of a normal, logical human behaviour. I’ve actually had customers like this in the past and now I know I’ll be far better equipped to deal with them next time.

Becoming a better multi-tasker

One thing you learn very quickly is that life becomes more multi-threaded than ever. As well as all the usual information you absorb and process on any given day you suddenly need to spawn a dozen new threads to deal with such important equations as “when did he last eat?” or “what exactly was in that last nappy?”. Life becomes parallelised to a whole new level.

For a programmer, this a very good thing. Developing the ability to simultaneously juggle a broad spectrum of tasks of extremely diverse nature is a desirable trait. In fact people pay very good money to learn how to do this effectively (quick tip; save your cash and read Eat That Frog instead), when all you really need to do is conjure up a baby and “hey presto” instant multi-tasking ability to rival the best of them!

Discovering new things about technology

The whole baby managing process ultimately means familiarising yourself with a range of foreign objects and practices. Fortunately, the connected age means you can often do this with technology and introduce a bit of baby geek factor into the experience and discover a few new things along the way.

Baby monitors; they seem pretty simple in concept and for the most part they are unless you get one of those new fandangled ones that includes things like a breathing or movement monitor (which we didn’t). What you don’t learn until a little bit later is that they also tend to mess with your wifi. You learn this after many router resets, channel changes and stomping around the house moving potentially interfering objects.

Here’s another interesting fact I picked up along the way; your iPhone can serve content via HTTP to other devices. This is probably old news for many people, but if it wasn’t for us using Total Baby and wanting to backup the data I never would have discovered this. The app provides a basic HTML interface served up over IP (which is kindly provided by the app) so can just download the data and store it elsewhere. Neat.

Seeking out sane, adult conversation

Maybe it’s just my short attention span, but day in day out discussion about nothing other than bowel movements, breast feeding and sleep patterns leaves you in dire need of “normal” conversation. In my case, this was a perfect opportunity to soak up as much techie related information as possible which meant spending a lot of time reading blogs and Twitter.

The irony is not lost on me; saying I was seeking “sane, adult conversation” then in the same breath suggesting Twitter is a viable source for this material is just plain ridiculous. Desperate times, desperate measures! The thing is though, I’ve absorbed an abnormally large amount of information during this time. I’ve followed people I wouldn’t normally have thought of, I’ve read articles I would have previously discarded and as a consequence, I’ve gained a whole bunch of actually quite useful knowledge. All this stemming from a vacuum of sane, adult conversation.

Loving your day job

I can’t recall the last time I relished going back into the office as much as I did a couple of weeks back when returning from leave. Don’t get me wrong, it’s not that I enjoy being away from my family, that’s not it at all. The cause of my excitement was being able to sit down at my desk, in peace and quite, for as long as I wanted without having to clean something, attend to something or burp something. I’ve found a totally new love for the workplace!

Embarking on this course of self improvement

Embarking on this particular course is quite straight forward to begin with (Google it if you’re not sure!). However, it’s not for the fait hearted and there are no refunds if you decide to drop out halfway through. In fact, I understand there are some pretty severe penalties so you want to be committed upfront. However, I do love the non-conventional and as far as alternative study goes, this has got to be right up there with the best of them. I may consider taking a second course in the years to come but for now, I’m dealing with about all the self improvement I can handle!


Share/Save/Bookmark

Disclaimer

Opinions expressed here are my own and may not reflect those of my employer, my colleagues, my mates, my wife and so on and so forth. Unless I’m quoting someone, they’re my own opinions and may not necessarily be cohesive nor entertaining but hey, at least they’re original!