– Leaving Google Apps and DreamHost for Azure and Office 365

siteI’ve owned a long time. Back in the 90’s I hosted in my own basement data-center™.com, but eventually the costs became problematic. So, I switched to 3rd party hosting providers. Since then, I’ve bounced from provider to provider, never being satisfied with any of them.

My needs are simple. I have a custom domain, a little personal blog, and a few email accounts. I don’t want to spend a ton of cash on the services, nor much time on administrative tasks. At the same time though, this is the heart of my personal online identity. It needs to perform reliably.

A few years ago, after yet another of my hosting providers decayed into oblivion, I decided split my web and email hosting to different providers.

Email is the most painful service to move, so I decided to move it to Google apps. Google let non-corporate organizations, like me, host at Google Apps for free. They are a stable company, and handle email exceptionally well. So, I figured using Google might eliminate my biennial email migration hell.

For the web site, I chose DreamHost, one of the “premier” WordPress partners. Sadly, DreamHost just plain sucks. Their server performance is abysmal, and the network latency makes me wonder which African country hosts their data center –and if it’s powered by hamsters, or a dung-burning furnace. On the plus side, it is reasonably cheap. My blog isn’t exactly popular, so I could live with the sub-optimal service for a while.

In the years since that move, I’ve grown increasingly frustrated with Google. They killed off “free” Google Apps hosting. I’m grandfathered into the plan, but as new services roll out or old ones get upgraded, us free-loaders are last to see an update –if we get updated at all.

Clearly, they want us to buy into a business tier plan. I don’t mind paying for my services, as long as the services are worth it, but Google has given me serious doubts about the value of their services going forward.

Their war against Microsoft has put customers, like me, in the cross-fire. They killed active sync for gMail while sabotaging key APIs across their other services. They refuse to write native apps for Windows 8 or Phone 8 at all –which wouldn’t be bad if they didn’t also interfere with 3rd party apps that try to bring Google’s services to Microsoft’s platforms.

As a Microsoft developer, and Windows and Windows Phone user, Google’s services –especially the Google Apps services– are nearly useless outside a web browser.

The value of using modern web based software services is the ability for it to become an integral part of the entire computing experience –across all platforms, devices and applications. Google seems to disagree.

I’m not claiming Microsoft is an innocent victim here. Microsoft’s legal extortion of licensing revenue from android was a real dick move, for example. But Microsoft doesn’t put its customers on the front-line. Microsoft encourages apps for Apple and Google products, often writing their own native applications when necessary. They certainly never obstruct my ability to use one of their services just because they don’t like the device I chose. They don’t play games with their APIs to sabotage their products on other platforms.

So, it got to the point where I only had two good options. Pay for a subscription to Google apps, or pay for Office 365. My primary concern is making sure I have email services for my domain. The rest of Google Apps or Office 365 are just nice-to-have extras.

Aside from my reservations about Google’s commitment to open, cross-platform integration, what tipped the scales firmly towards a move to Office 365 was Microsoft Azure. Azure is the cloud services platform backing Office 365, in the same way that Google App Engine backs Google Apps.

A move to Office 365 implicitly sets up my domain in Azure, which gives me the opportunity to reunify my web and email services under one provider again. Better still, Azure is a platform that I understand and work with professionally on a regular basis.

I could have hosted my website on Google Apps Engine too, but honestly it isn’t a platform I understand well, and the setup for WordPress there is not painless. On Azure, you just pick WordPress from the web site gallery and it’s done –stupid easy.

Unlike my past hosting providers, Azure’s prices scale very smoothly based on usage. Hosting a simple WordPress site, like mine, costs about $14/month. This is slightly more than a traditional 3rd party WordPress provider, but it performs significantly better too.

And the best part is that, as a subscriber to the Microsoft Developer Network (MSDN), I get $100 a  month of credit to spend on Azure resources. This doesn’t count towards Office 365 licenses, but it effectively makes the web hosting free, and leaves plenty of credit for other projects.

On my old setup, Google was free, while DreamHost ran about $100 a year… and I was unhappy with both. After the switch, Azure is free, while Office 365 runs $120/year (because I need two licenses at $60/ea).

Bottom line — for an extra $20 a year, I get access to high-performance personal web hosting on a platform I know and trust, first-class email, and I regain the seamless service integration across my desktop and phone devices.


CSS 3 Grid – just like layout tables, but more annoying

While I do respect the idea behind separating content markup (HTML) from visual styling rules (CSS), it sucks in actual practice.

Consider the CSS 3 Grid.

This would be much easier if we just had gone with an HTML <layout> or <grid> tag back in 1995, then developed media/device specific sub-dialects of HTML instead of going down the CSS route. Back then, supporting a grid or layout element would have been as simple as copying/pasting table rendering code; and there were a lot of proposals to add exactly that kind of element back then.

Instead though, committees were formed and CSS was inflicted. The CSS proponents, and those that came to the web afterwards and don’t know any different, all have a lot of praise for CSS and the neat things it lets us do.

But to me, real result of going with CSS instead of sanity is that, 15 years later, we’re still only in the proposal stage for an officially sanctioned grid-style layout mechanism.   

node.js: Revolution or Just a Repeat of 15 Years of Failure?

Server-side JavaScript (SSJS), we are being told, again, will deliver the web’s new and brighter future; a future that, apparently, looks just like the parts of Microsoft’s 1996 that no one cared about.

In 1996 Microsoft had comprehensive support for JavaScript on the server. You had Active Server Pages for the web, and Windows Scripting Host for systems automation. Both technologies had  built-in support for JavaScript as a first-class language. 

No one gave a shit.

In 2001 Microsoft released JScript.NET, a version of JavaScript on steroids. It was highly optimized for server-side development, and was promoted as a first class language along-side C# and VB.NET; it was especially promoted for ASP.NET web applications. 

No one gave a shit then either. 

Microsoft still ships classic ASP and the WSH, and both still support JavaScript. They also have continued to release new versions of JScript.NET, though these days they just call it JScript 10.0.

It isn’t as if Microsoft was the only one to do viable SSJS implementations over the years either, and universally they have all failed to generate prolonged interest. JavaScript has come a long way over the years, but there hasn’t been a significant change in the language to makes it suddenly more appropriate for server-side scenarios. The best that can be said is that JavaScript doesn’t suck as bad as it used to.

But now, after 15 years of apathy towards server-side javascript, suddenly people can’t seem to stop talking about it! Projects like node.js, Helma, and Jaxer (just to name three) are getting a lot of press. I’ve even heard 2011 called “the year of server-side JavaScript” by some. Node.js seems to be getting the lion’s share of the attention, and there is even a .NET clone of it called (WTF!?!?! Really?) 

The irony is almost maddening! 

Also, don’t buy this nonsense about re-using the same skills on both the client and the server. That was exactly the same marketing used for JavaScript on old ASP back in 1996.

JavaScript was my first language, and I was one of those few who wrote classic ASP in it. My excuse was that I’d be reusing my existing investment in JavaScript. Take it from me… the skill-reuse argument is pure bullshit.

The actual “skill” in JavaScript is in learning the (horrible) HTML object model and client libraries. None of that translates to the server, so all you keep is the C style language syntax. So, why not just use actual C, or one of the dozens of popular, and more server-appropriate, languages with a C derived syntax?  

Despite all the history though, it’s clear that node.js in particular has gained some impressive traction. There are a ton of rapidly evolving modules for it along with a growing and enthusiastic developer community.  

So, maybe Server-Side JavaScript’s time has finally arrived this time. I personally hope it’s just a fad though. I’d much rather see all this effort get put into bringing real programming languages to the browser (like Google’s Native Client does).