Like most people who’ve made their career in IT I’ve spent a great deal of my spare time dabbling in things that (I hope) could potentially lead onto bigger things somewhere down the line. Nearly all of them start off with a burst of excitement as I dive into it, revelling in the challenge and marvelling at the things I can create if I just invest the time into them. After a while however that passion starts to fade into the background, slowly being replaced by the looming reality of the challenge I’ve set myself. In all but one cases this has eventually led to burn out, seeing the project shelved so that I can recoup and hopefully return to it. The only project to ever survive such a period was this blog, but even it came close to being shut down.
Shown above are the stats for this blog over the past couple years and each of the big changes tells a story. As you can see for a long while there was a steady increase in traffic, something which constantly drove me forward, to keep me writing even when I wondered why I was bothering. Then the slow decline started happening and I honestly couldn’t tell you why it was happening. Then I stumbled onto the fact that 20% of my visitors were disappearing between the search engine and my site, indicating that my blog was just loading far too slow for most people to bother waiting for it. Migrating the server to a new host saw an amazing spike in traffic, one that continue its upwards trend for a very long time.
Of course I eventually got curious as to why this was and found that that the majority of users weren’t visiting my site per se, they were just incidental visitors thanks to Google’s Image search. I had figured that this wouldn’t last, dreading the day when the hit came, and when it did the drop in traffic was significant and brutal. Indeed I had come so close to one of my personal goals (20K visits in a month) that losing it all was a big hit to my confidence as a blogger. Still the always upwards trend continued and motivation remained steady, that was until the start of this year when, inexplicably, I took yet another hit.
Try as I might to diagnose the issue the downward trend continued and, unfortunately, my motivation began to follow it. It all came to a head when my site got compromised and I inadvertently deleted my entire web folder, leaving me to wonder if it was worth even bothering to resurrect it. Of course I eventually came to my senses but I’d be lying if I said that my motivation for this wasn’t in some way linked to the number of page views I get at the end of each day.
I had mulled over writing this post for a long time, not to start a pity party or anything like that, more as a catharsis for my current situation. Honestly I had felt that there was something wrong with me as I should have been doing this for the love of it, not for the ego stroke reward that a page view is. However reading over Scott Adam’s (creator of Dilbert) treatise on how to be successful struck a cord with me, showing me that I’m not alone in being motivated by passions that ultimately get dashed by the lack of success. This blog then was the example that getting results is the way to keep yourself motivated and it should come as no surprise that it went away when the apparent success did as well.
For now I’m simply taking it day by day, continuing what I’ve always been doing and enjoying the act of writing more than the pageviews. It’s been helped somewhat by the fact that I’ve been able to make some changes that have directly resulted in little bumps in traffic, nothing crazy mind, but enough to show that I’m on the right track. It’s going to be a long time before I reach the dizzying heights that I was at just under a year ago but hopefully those numbers will be genuine, a real reflection of the effort I’ve put into this place since I began it almost 5 years ago.
I talk a big game when it comes to cloud stuff and for quite a while it was just that: talk. I’ve had a lot of experience in enterprise IT with virtualization and the like, basically all the stuff that powers the cloud solutions we’re so familiar with today, but it wasn’t up until recently that I actually took the plunge and actually started using the cloud for what its good for. There were two factors at work here, the first being that cloud services usually require money to use them and I’m already spending enough on web hosting as it is (this has since been sorted by joining BizSpark) but mostly it was time constraints as learning to code for the cloud properly is no small feat.
My first foray into developing stuff for the cloud, specifically Windows Azure, was back sometime last year when I had an idea for a statistics website based around StarCraft 2 replays. After finding out that there was a library for parsing all the data I wanted (it’s PHP but thanks to Phalanger its only a few small modifications away from being .NET) I thought it would be cool to see things like how your actions per minute changed over time and other stats that aren’t immediately visible through the various other sites that had similar ambitions. With that all in mind I set out to code myself up a web service and I actually got pretty far with it.
However due to the enormous amount of work required to get the site working the way I wanted to work it ultimately ended up falling flat long before I attempted to deploy it. Still I learnt all the valuable lessons of how to structure my data for cloud storage services, the different uses of worker and web roles and of course the introduction into ASP.NET MVC which is arguably the front end of choice for any new cloud application on the Windows Azure framework. I didn’t touch the cloud for a long time after that until just recently when I made the move to all things Windows 8 which comes hand in hand with Visual Studio 2012.
Visual Studio 2010 was a great IDE in its own right the cloud development experience on it wasn’t particularly great, requiring a fair bit of set up in order to get everything right. Visual Studio 2012 on the other hand is built with cloud development in mind and my most recent application, which I’m going to keep in stealth until it’s a bit more mature, was an absolute dream to build in comparison to my StarCraft stats application. The emulators remain largely the same but the SDK and tools available are far better than their previous incarnations. Best of all deploying the application can’t be much simpler.
In order to deploy my application onto the production fabric all I had to do was follow the bouncing ball after right clicking my solution and hitting “Publish”. I had already set up my Azure subscription (which Visual Studio picked up on and downloaded the profile file for me) but I hadn’t configured a single thing otherwise and the wizard did everything that was required to get my application running in the cloud. After that my storage accounts were available as a drop down option in the configuration settings for each of the cloud roles, no messing around with copying keys into service definition files or anything. After a few initial teething issues with a service that didn’t behave as expected when its table storage was empty I had the application up and running without incident and it’s been trucking along well ever since.
I really can’t overstate just how damn easy it was to go from idea to development to production using the full Microsoft suite. For all my other applications I’ve usually had to spend a good few days after I’ve reached a milestone configuring my production environment the same way as I had development and 90% of the time I won’t remember all the changes I made along the way. With Azure it’s pretty much a simple change to 2 settings files (via dropdowns), publishing and then waiting for the application to go live. Using WebDeploy I can also test code changes without the risk of breaking anything as a simple reboot to the instances will roll the code back to its previous version. It’s as fool proof as you can make it.
Now if Microsoft brought this kind of ease of development to traditional applications we’d start to see some real changes in the way developers build applications in the enterprise. Since the technology backing the Azure emulator is nothing more than a layer on top of SQL and general file storage I can’t envisage that wrapping that up to an enterprise level product would be too difficult and then you’d be able to develop real hybrid applications that were completely agnostic of their underlying platform. I won’t harp on about it again as I’ve done that enough already but suffice to say I really think that it needs to happen.
I’m really looking forward to developing more on the cloud as with the experience being so seamless it really reduces the friction I usually get when making something available to the public. I might be apprenhensive to release my application to the public right now but it’s no longer a case of whether it will work properly or not (I know it will since the emulator is pretty darn close to production) it’s now just a question of how many features I want to put in. I’m not denying that the latter could be a killer in its own right, as it has been in the past, but the less things I have to worry about the better and Windows Azure seems like a pretty good platform for alleviating a lot of my concerns.
Sometimes it’s the simple things that can really make your day. Logging into my admin panel this morning I was greeted with this little gem.
That peak there? My busiest day I’ve ever had on this blog and it wasn’t because of some big site linking to me. That’s what keeps me going, moments like that where I realise that it’s really possible for me to build something that people like to read. Whilst I love it when I do get linked to by big sites it’s always more satisfying when I hit milestones like that off my own back.
I can’t wait to do it again 😀