This blog has had a variety of homes over the past few years although you wouldn’t know it by looking at it. Initially it was hosted on a Windows 2008 server I built myself, sitting behind the tenuous link of my ADSL connection. Don’t get me wrong this is a great way to get started if you’ve got admin roots like me but inevitably my ADSL connection would go down or people would just plain give up waiting for it to load, what with my upstream only able to handle 100KB/s. Still for most of its life the blog remained in that configuration as I couldn’t find a hosting provider I was happy with.
Of course the day came when WordPress decided to stop playing nice with IIS and started returning internal server 500 errors. Thankfully it would usually right itself after a reboot but it was always a count down to the time when it would start erroring out again and being the busy man that I am I never had the time to troubleshoot it. Eventually I caved and set up an Ubuntu box to host it, figuring that all my woes would be solved by switching to the platform that everyone expects WordPress to run on. I’ll be honest it was a good change as I could finally use all the caching plugins, and traffic took an upward trend thanks to the faster loading times.
Unfortunately that didn’t last particularly long either as whilst the blog was particularly zippy the Linux VM would sometimes stop responding to requests and would only start behaving itself after a reboot. The cause of this I’m still not sure of as the VM was still up but it just refused to keep on serving web pages, including all the funky admin tools my PHPMyAdmin and Webmin. It was around this time I found myself in possession of a shiny new VPS that was only hosting my fledgling app Lobaco so I figured a small time WordPress blog wouldn’t be too much for it to handle. Indeed it wasn’t and the blog has been steaming along on it ever since.
However the unfortunate internal server errors returned eventually and whilst I was able to get around them with the trusty old reboot a couple times they became more persistent until I eventually couldn’t get rid of them. After digging around in the event logs for a while I eventually stumbled across references to php_wincache.dll which upon googling lead me to posts like these, showing I wasn’t alone in this internal server error hell. Disabling the plugin fixed the problem and all was well with the world. Of course many months later I found myself trying to optimize my blog again and I started looking at the things I had removed in order to keep this thing up and running.
The first was the caching plug-ins which are unequivocally the best thing for performance on a dynamic PHP site. The vast majority of WordPress caching plug-ins don’t play nice with Windows as they make the assumption they’re on Linux and attempt to write files in all sorts of whacky locations that simply don’t exist. WP-SuperCache, although still suffering from some Linux based assumptions, can be wrangled into working properly with IIS and has been doing so for the past couple months. I also found that WinCache had been updated since I had unceremoniously removed it from my php.ini file so I decided to give it another try. Again everything was rosy for a time, that was until last weekend.
I fired up my blog on Saturday to find the home page coming up fine but I was logged out for some reason. This happens from time to time so I wasn’t worried but trying to login left me with the dreaded internal server 500 error. Poking around it looked like any non-cached page was failing meaning the majority of my site was unavailable. The event logs showed the dreaded WinCache dll failing again and disabling it brought my website back around again. It seems, at least for now, that I’ll have to give WinCache a miss as the last update to it was almost 3 months ago and its past performance has led me to believe that it’s not entirely stable.
So if you’re crazy like me, trying to run WordPress on IIS and all, and you’re WordPress blog seems to take a dive more often than not make sure to get rid of WinCache at least until they get their act together. I haven’t delved into my previous VMs to see if it was the culprit back then but my most recent set of problems can be traced directly back to WinCache wrecking havoc by attempting to cache PHP objects and if this post can save 1 person the headache of trying to track it down I’ll consider it a huge success.
I’ve been using the Windows line of operating systems for nigh on 2 decades now for my own personal PC and apart from the occasional tinkering I haven’t bothered trying anything else. My professional life is a different story as with VMware being a heavily modified version of Red Hat Enterprise Linux I’ve had to become more familiar with the open source alternative so that I can troubleshoot the more esoteric problems that it might throw at me. Additionally I had the (mis)fortune of managing one of Apple’s token stab at the enterprise market the Xserve which, whilst didn’t give me any large amount of grief, had its own way of doing things that made most trivial tasks take hours. That was probably the most experience I had had with an Apple OS up until I took my shiny new MacBook Pro (separate review coming soon) with me on my trip around America where I decided I would thoroughly test Mac OS X as my primary operating system.
The initial experience of starting up OS X for the first time is a world away from what I’m used to with Windows installs. You’re greeted with a short video presentation showing the various aspects of the OS which is then followed by the sign up process. I do remember it asking me for my iTunes account name and password during part of this which I thought was a no-no ever since Microsoft got into trouble for trying to get everyone to have a MSN account¹. Less than 5 minutes later I was ready to start bumbling my way through a new OS, and bumble I did.
My first initial task was to install Windows 7 on it since I know OS X wouldn’t be able to run everything I wanted it to. Getting bootcamp configured was pretty painless with the help of the guide Apple provides so there’s some big props for them there. About 20 minutes later I had a full Windows 7 installation running with all the drivers I needed, although I did update the video card with NVIDIA’s latest offerings. Satisfied that everything was fine on the Windows side I flipped back over to OS X to give it the initial shakedown.
First I tried browsing the web using the inbuilt browser, Safari. It opened up in a not-so-fullscreen manner so I hit what I thought was the maximise button to get it to fill the screen. It didn’t do anything and after researching around a bit I found that OS X doesn’t really have a concept of fullscreen and that button really only serves to switch between window sizes. I could get a close approximation to the maximise button by stretching everything out but that could also end up a window bigger than the screen it was on, especially with the lack of precision granted by the trackpad I was using.
Here is where I feel Apple is let down by its community. Whilst I’m not an easily offended person my searches for a solution to the fullscreen problem brought me to this forum thread in which it takes no less than a single post for a OS X user to abuse someone for trying to find a feature similar to Windows. I’d love to say that it was an isolated incident but time after time when I found myself looking for the answer to some problem I could easily solve in Windows this kind of elitism seems to follow quite closely. Granted I’m not saying all OS X users are like this but there’s enough of them to do a royal disservice to those of us who aren’t complete novices when it comes to computers but are unfamiliar with the world of OS X.
Undeterred from those experiences I went ahead and signed up for the Apple Developer Program and downloaded the latest version of Xcode. Installation was pretty easy and I was able to build a simple program about 10 minutes later with little hassles. Regular readers will know of the trials and tribulations I’ve been through since then but overall I’d count Xcode as a decent IDE but still needing some work to be up to the standard I’ve come to expect. Thankfully most of my questions regarding the IDE (such as deploying code to a real iPhone) were already answered in the online documentation which goes a long way to bridging the gaps.
Not long after using the laptop as a development machine I packed it up and took it with me on a trip around the USA and Canada. Here OS X started to show some of it’s convenience features that I really started to appreciate. The first was it opening up iPhoto when I plugged in my camera, where upon it began walking me through creating events and some of the other features it has. Unfortunately it didn’t like the way my camera stores movies (and iMovie doesn’t like the format) so they had to remain on the camera. Still it was nice to be able to load all the photos on the laptop at the end of the day and have them nicely arranged in a bunch of tiles.
The fun really started when I began trying to do things I had never attempted in another operating system before. Mostly this was troubleshooting things like why my camera wasn’t showing up (needed a reboot) or when I was trying to spoof my MAC address so that I didn’t have to pay the exorbitant price for the hotel Internet connection (why a $50/night place gives me Internet for free and a $400/night place doesn’t is beyond me). It seems in these areas of esoteric OS X issues and chicanery the community is much better than what I had initially encountered with me being able to Google up several solutions without any high and mighty Apple attitudes creeping in.
All the rudimentary programs (Finder, TextEditor, StickyNotes) function as expected and are pretty much identical to their counterparts on Windows. The same can be said for the system settings as once you click on it you’ve basically got a Windows control panel staring back at you. So whilst the visuals might be different the administration of OS X settings isn’t too far removed from what many of us long time Windowers are used to. Of course a bit of familiarity with the *nix terminal won’t go astray when you’re trying to do something really out of left field, but if you’ve used the command prompt or written a script in windows I don’t think you’d have too much trouble.
Overall I found OS X to be quite satisfactory as a desktop OS as it provided all the functionality I required of it whilst providing some value add that I wasn’t expecting. Still the experience wasn’t exactly mind blowing and there are many differences that are there just for differences sake (using the command key instead of control, close/minimise/maximise buttons on wrong side) that don’t do them any favours. I won’t be removing OS X completely as it works extremely well for what I use it for but I won’t be replacing Windows 7 as my current default OS. Would I recommend it for others? Hard to tell and it’s something that I’ll probably explore in a future post.
¹I did this set up over 2 months ago now so I might just be remembering this incorrectly but I did give up my iTunes account info well before I saw the desktop. It may not be required to use OS X but I wouldn’t have put it in unless I thought it was required.
I’ve been in the IT industry professionally for quite some time now, and even longer as an avid enthusiast. I’ve seen so many companies come and go as they evolve with the fast paced ever changing technology world and that’s lead to a great understanding of some of the fundamental rules that don’t seem to change. One of these such rules is the constant upgrade cycle, e.g. the release of new versions of products on a fairly regular schedule , in order to take advantage of the latest developments from other companies. The interesting thing about these cycles is that usually they can’t be too drastic lest you alienate your customers who’ve created expectations of the product that will cause a revolt should they not be met.
Take for example some of Microsoft’s products, most notably their desktop operating systems Windows. From Windows 3.1 to Windows 7 there’s a kind of baseline familiarity that users have developed with the products and, for the most part, they’ve remained unchanged for the better part of almost 2 decades. Granted it would be quite a shock for someone who’d been using Windows 3.1 to move straight to 7 but that’s usually never the case. More most users would be ushured along onto the latest product from at most 2 generations previous, usually when they can’t do something that everyone else in their social circle can.
Most major players in the IT world have mastered this idea of product cycles. From Apple to Dell to AMD you can bet your bottom dollar that they’ll release a new product on a predictable timeline, usually timed perfectly to be right smack in the middle of their competitors cycle. If there’s any phenomenon that’s to be held responsible for the IT sector’s almost ubelievably fast movement speed it would have to be this culture of ensuring that your company is providing the latest and greatest features and products to its consumers, always making sure that you keep on eye on your competitors. It is basically a massive game of one-upmanship.
Sometimes however, the product cycle does not go quite as planned.
You see I’m writing this blog post to you today on what should be considered an absolute dinosaur of the IT world: a Windows XP machine. Released late in 2001 I can remember fondly my first experiences with it, blue screens abounding and most of my hardware behaving in ways that I never thought imaginable. A couple months saw it come good with the various manufacturers catching up with their drivers and Microsoft patching the more obvious flaws in the system. It was a rocky start for Microsoft’s attempt to bring some of the better parts of their server line to the desktop but eventually most companies relented and XP found its home as the defacto operating system for the majority of computer users worldwide.
5 years later, Microsoft would attempt to do it all over again.
Now before we dig into Microsoft’s next product cycle let’s take a moment to think about that last paragraph. Think about where you were 9 years ago and compare it to today, worlds apart right? Just imagine if I told you that I’d bought a top of the line phone back in 2001 and I was still using that today, you’d think I was pretty bonkers since even a $50 phone today would be better in almost every way. Whilst I’m sure there are people doing such things (my Dad is using a phone from 2004) the simple fact that technology moves so fast means that most products have an effective life of around 2~3 years. Windows XP, for some reason, seems to be completely immune to that idea.
Partly that’s to blame with the long development cycle that plague its successor, Windows Vista (codenamed Longhorn). Initially planned for release a mere 2 years after the initial release of XP its original intention was to function as a stop gap between XP and the next major release codenamed Blackcomb. Due to feature creep that saw Longhorn encroach on Blackcomb’s territory the two finally merged together under the Vista title and the release date slipped by over 3 years. This lead to one of the longest time between releases of Windows versions in almost a decade, and the markets reaction was nothing short of devastating.
Windows Vista, for what its worth, was not a bad operating system at heart. Like its predecessor it was plagued with the job of attempting to support legacy systems whilst at the same time trying to innovate in any way it could. Consequently neither part could be done very well as legacy support inherently holds back innovation, leaving Vista to languish in a kind of no man’s land. Again like XP before it Vista attempted to do things in a completely new way which broke the compatibility with numerous bits of hardware and software further stifling its adoption rates. Overall the industries first reactions to Vista were ultimately its death knell and I never found a workplace that found the idea of switching to it appealing.
Microsoft managed to make the system quite usable in the years following Vista’s initial release. I myself ran it on my personal computer for quite some time and so did many of my technical friends. Still the damage was done and many corporate departments decided that XP suited their needs aptly and left it at that. It wasn’t until late last year that Windows 7 made its triumphant debut, hoping to be the knight in shining armor to pull the damsels of corporate IT away from the darkness that was Windows XP.
However due to the botch cycle of Windows Vista they were met with almost spiteful disdain. 8 years is a long time to go between refreshing your products and nearly all IT departments had grown accustomed to things working the XP way. Whilst many recognised that Windows 7 was not Vista (thanks to new and improved eye candy) they still couldn’t fathom the idea that anything but XP was required and were even more concerned for all those legacy applications they’d developed for their aging XP systems. Thus Microsoft, who really did so many things right with Windows 7, was left trying to market a product to people who were so entrenched in their habits that Windows 7 was almost set to Vista all over again. Windows 7 however is that good that its adoption rates are almost double that of Vista’s for the same time period, matching that of Windows XP.
There’s a couple lessons to be learnt from the Windows Vista story. The first is to repeat the old developer mantra release early, release often. Microsoft’s long development cycle for Vista meant that there was already quite a bit of inertia working against it. Whilst its quite understandable that something as complicated as an operating system takes time to develop they knew from the get go that a long development cycle would harm the adoption rates. They fell prey to some of the most common project management mistakes (read: scope creep) and their final product, whilst impressive technologically, was too far away from user’s current expectations. The original idea of Longhorn being a stepping stone to Blackcomb was sound and was proven succinctly with the success of Windows 7 which inadvertently used Vista as its stepping stone.
It’s always interesting to look back at the history of product releases and to see how customer behaviour influences company decisions. Vista was one of those oddities where the latest and greatest was wholly rejected by the community it set out to serve and only its rebirth under a new label and shiny facade was enough to win them back. It was also a demonstration of the market power that Microsoft has since a failed product cycle was the in for many competitors to swoop in yet as we can see despite their disdain for the latest offering Microsoft’s customers remained loyal, even if it was to the wrong product (in Microsoft’s eyes).
I should really update my machine to the new Windows 7 environment they’re offering here… 😉