Web Hosting Is Hard

Two and a half years ago I switched from Web Hosting Buzz to MediaTemple for the web hosting of this site. When I made that switch I made it clear that I would be monitoring the situation, and that if MediaTemple's hosting service ever became problematic, I would move on to yet another provider. Today I've done just that and I wanted to share my experience with you, because let's face it, finding a web hosting provider is hard.

Why The Switch?

If you've ever moved to a new hosting provider you know it's a real pain in the ass. Files and folders must be moved, databases modified, DNS entries changed. And I've been with MediaTemple for over two years. So why, a sensible person might ask, did I decide to go to all the effort to switch, and why now?

In a nutshell: my needs changed. But let me add some detail.

The plan I use — the only MediaTemple plan I can really justify the money for — is called the Grid Service, or GS for short. The GS is billed as being shared hosting that can handle a sudden, huge spike of traffic, so, in theory, your site never goes down. When I first began using the GS, it seemed fine. In fact it was fine, at least for this site, for systemsboy.com (or TASB, for short).

Over the years I've built several other sites that I use to showcase my other non-systems creative pursuits. And I've frequently had a great deal of trouble with them. This was always perplexing to me; TASB ran fairly well most of the time, and other GS-hosted sites seemed perfectly speedy as well. But my other sites were always dog slow, and as I've spent increasing amounts of time on them, it's become a bigger and bigger problem.

After a great deal of research I found, buried amongst the Internets, an article on Media Temple's GS that completely described the symptoms I was having. According to the article, the GS does indeed handle sudden traffic bursts gracefully, and performs fine for sites that receive a certain level of daily traffic. But for sites that don't get much traffic, the GS's performance leaves much to be desired. Since my new sites were new, they weren't really getting a lot of traffic, and, if the article is correct, this explains why they were so slow. It also explains why TASB was okay; TASB gets a decent amount of traffic.

The Plan

MediaTemple's GS is 20 bucks a month. That's expensive for shared hosting these days. These days, commodity hosting is ubiquitous and extremely cheap. And while Host Gator's 5 dollar hosting doesn't offer protection against traffic spikes, it's essentially the same idea: You share server resources with other users on your server. If someone on your server is hogging all the CPU, for instance, you can see major performance issues on your site.

These days, however, an alternative to shared hosting, VPS hosting (short for Virtual Private Server) has dropped dramatically in price, to the point where it's quite competitive with the GS. In a VPS scenario, the server hardware is still shared among users, but each user's share of the resources is dedicated and walled off from the other users. This, I'm told, generally yields significantly better performance than shared hosting plans.

So I decided to give VPS a try.

The Provider

Choosing a web host is like choosing a doctor: it's a huge pain in the ass, requires a great deal of both research and faith, and you don't want to have to do it twice, at least not in a short space of time. It's also similar in that one good way to go about it is to ask a friend. So when a good friend recommended 1&1 hosting, I read up about them, checked out their plans, and, in the end decided to give them a go.

Aside from the glowing recommendation, 1&1's VPS provided the best value for the money. In fact, 1&1 offers a VPS plan for $30. That's only ten bucks more than I was paying on Media Temple.

Purchasing 1&1

A note about the actual purchase of my 1&1 VPS. I ordered my service on a Friday night (hoping to have it for the weekend), but I had problems with the online order system. Specifically, the system expects you to purchase a domain name from 1&1, and if you, like me, already own a domain name and aren't planning to get one from 1&1, the site gets confused, or at least confusing. I got to a point in my order where I just ended up having to close the page and start from scratch. Not cancel the order, mind you, as that option was gone, but close the browser window and pray. Having received no confirmation email, I decided to try ordering a second time, and this time I was able to complete the order successfully. I then did receive an email confirming the order and telling me that my VPS was being provisioned and would be ready within 24 hours. When it was not, I sent an email to 1&1 explaining my situation.

In under 24 hours I received a call from a human at 1&1 telling me that the order was ready and apologizing for the delay. Seems my failed initial order had likely caused a flag on the order requiring some sort of verification. So, though I didn't have time to use it that weekend, the order did at least go through without too much pain. And though the online order was a bit wonky, at least 1&1 provides humans to help with problems, and on weekends no less. All good things to know.

The Test

Before migrating all my sites, I decided to set up a test site based on my slowest site and see if 1&1's VPS truly did perform better than Media Temple's GS. If you're considering making a similar switch, and you can afford to overlap for a few months, I highly recommend you do something similar. Buy a domain or recycle an old one. Sign up for the new service. And then set up a site, preferably one you know was problematic on the old host. It's very useful and a real confidence boost to know whether or not all this work you're about to do will be worthwhile. As I said, migration's a bitch, but having some assurances that it's worth it is a real boon. It will also give you a chance to see how the provider's systems work — they're all a bit different — and if you can refine your migration process it will speed things considerably when the time comes to actually move your sites.

There were two main things I gleaned from my 1&1 tests: 1) Their server setup tools are a bit more complicated and harder to use than Media Temple's; and 2) the performance of my slowest site on 1&1's VPS was far superior to that of the GS. Pages that used to sometimes take 12 seconds to load on the GS now generally appeared in as little as 2-3 seconds on the VPS. A huge improvement, well worth the extra cost.

Getting Started

I actually had five separate sites that needed to be migrated, and four of them were Wordpress sites, so migrating was no small feat. I did this over a couple weeks, and, yes, it was a huge pain, but it got done and so far it's been worth it.

The biggest difference between 1&1 and Media Temple is the tools. And I'll be the first to admit that Media Temple's tools are a bit easier to use. Media Temple's Grid Service provides a single control panel for all server administration. There's an overview section where you can add domains, and an admin section where you can install databases and CMSes and what-not. It's all fairly self-contained and very well done. I believe Media Temple has custom-made this tool, and they've really done a great job.

I happen to know that Media Temple's VPS is a bit different. Their VPS service has a control panel for account management, but all the server administration is done via a wholly separate interface, the venerable Plesk. This seems to be par for the course where VPSes are concerned. Media Temple's done a good job here too, though, and managing one of their VPSes is a fairly straightforward affair once you get familiar with Plesk.

1&1's service is not so well organized. 1&1 also provides an account management control panel, as well as Virtuozzo Power Panel and Plesk — three separate areas — for server management. But when my VPS was first provisioned it was still up to me to install Plesk via the 1&1 control panel. I assume this is because there are a few options for which version of Plesk to install.

But after installing Plesk and kicking the tires by attempting to set up a test site, I found that there were a number of problems. The most dire was that MySQL and PHP were woefully out of date, so much so that my Wordpress sites would not run properly. I attempted to update them via the command-line, but this only ended up completely hosing my server. My only recovery option was to re-image the server.

Re-imaging the server is really easy, and it's kind of cool thing to be able to do. It essentially lets you put everything back into a pristine state, as if you'd never done anything on the server at all. Most VPSes have this capability. But the big bonus I got when I re-imaged my 1&1 VPS was that all of a sudden I had a newer version of Plesk and updated MySQL and PHP. Moreover, this new Plesk version allowed me to update MySQL and PHP to even newer versions, though doing so took a few attempts for some reason.

I don't understand why my 1&1 VPS started out so crippled, and I don't understand why re-imaging it brought it to a state that was actually better than when it was new, but I'm happy it did. It would seem that their initial image is a bit out of date with the image used for re-imaging. All I can say is that if you ever end up using 1&1 for VPS, my advice is to re-image the VPS first thing.

Site Migration and Management

Once my server was finally usable I went about the odious task of migrating my sites. I won't go into too much detail. It's pretty much been the usual: copy files, recreate databases, fix inconsistencies and change anything that's specific to the new server.

I will say, however, that Media Temple's tools are superior in this realm as well. The main problem with 1&1's tools is that there are too many of them, with too much redundancy, and this makes setting up services far more confusing and difficult than it is on Media Temple. For example, to set up a domain to be hosted on Media Temple's GridService you simply go to the control panel and add it, then make the appropriate DNS changes at your domain registrar. There's only one way to do this, only one interface for it at Media Temple.

On 1&1 you do most of your work in Plesk, but there are certain things that must be done in the 1&1 control panel, outside of Plesk. Things like domain management. Unfortunately the tools for domain management exist in both places — both in the control panel and in Plesk — so it's unclear where you need to make the change. And since you're usually working in Plesk, there's a tendency to attempt setting everything up there when, in actuality, you can't; it must be done in the control panel. Until you realize all this, you may spend quite some time setting things up in Plesk, realizing they don't work, and re-setting them up in the control panel. I know I did. It's a drag, and far more confusing than it ought to be.

Media Temple's online help is also really, really good. They provide you with a terrific knowledgebase, forums, server information and guides for doing most anything you'd want to do with the GS. 1&1's online help is much more scattered, poorly organized and just has less information.

Nevertheless, once you've finally ironed out all the procedural kinks, migrating and managing sites is pretty straightforward. SSH and root access are all there and working normally at the outset. Coda is easy to set up, if that's your thing. And I was even able, with some difficulty, to get my local SQL editor to connect and edit databases.

So: Is 1&1 VPS Better Than Media Temple's Grid Service?

I guess the thing is this: when it comes down to it, while Media Temple clearly has better, easier tools to use, once you're done setting up your server, you probably won't use them all that much. What you will access — and what your users will access — every single day is the site. And this is where 1&1's VPS just kills the Grid Server.

As I stated earlier, some of my sites used to run very sluggishly on the GS. And now these same exact sites run very fast on the 1&1 VPS. I'd say on average maybe five times faster, and that's a fairly conservative guess. That increase is totally worth a bit of extra setup hassle and ten bucks a month. I finally feel like I have a decent server behind my sites now, and I feel like I can send people there with confidence. The speed of my sites before this switch was, frankly, embarrassing. And I'm fairly certain I lost traffic because of it. Even my mom said, at one point, "Honey, I go to your website, but nothing happens." Even with easy setup, that's just depressing. And, in the end, untenable.

The Future

I've only been running on 1&1's server for a few weeks now. So far, I'm a very happy customer. As with anything, if my happiness levels fall, I will again go in search of yet another host. But for now I can confidently say I'd recommend 1&1's VPS service to a friend. It's not perfect, but the bang-to-buck ratio is pretty great.

All About the Money

Oh, and one last thing: If I've managed to convinced you to order from 1&1, use this link to do so and I'll apparently get some sort of kickback. Mmm... Icing...

Thanks! And happy hosting!

Calendar Syncing

UPDATE 5/1/11: If you've been having trouble syncing multiple calendars to your iPhone, it's because Google has added an extra step to the process. I've added a bit about Google's new required iPhone sync utility to the Set Up Your iPhone section for folks with multiple calendars. As always, happy syncing!

I keep getting comments asking the best way to set up two-way calendar sharing between multiple computers, and I've finally decided to just write a post that details the process. This is different — and in my opinion, far better — then sharing your calendars via Box.net, as I wrote about long ago. This, in fact, is the real deal. This is good stuff. This is how it's supposed to work. So let's get started.

I thought the easiest thing to do — since it's what I do, it's fairly simple and it works well — would be to walk you through connecting an iPhone and a Mac to a central calendar on Google's servers.

Set Up a Google Calendar

The first thing you'll need is a Google Calendar account. If you have Gmail, chances are you already have a Google Calendar. If not, go set one up now, and be sure there's at least one calendar active in the account.

Set Up iCal

Next you need your Mac, and specifically you need to open iCal.

  1. In iCal go to Preferences->Accounts.
  2. Click on the little Plus sign in the lower left corner of the window.

  3. Choose "Google" from the Account Type pulldown and fill in your Google Account info.
  4.  

  5. Once the account is set up you should see Google Calendar's default calendar in your iCal sidebar. If that's your only calendar, you're done. To view a different calendar, or if you have multiple calendars you want to view, go to the Delegates tab and check and/or uncheck which calendars you want to appear in iCal.NOTE: I had to relaunch iCal for it to see all my calendars, which can happen when you have as many as I do — I believe it's eleven!

That's it! Now, any event you create in iCal on one of these Google Calendars will get written to the master calendar on Google Calendar. And vice-versa. Go ahead and test it out. Remember to refresh your browser to register changes made in iCal.

Set Up Your iPhone

You can also connect your iPhone (or iPad) to your Google Calendar account (just like you can with email).

  1. On your iPhone open the Settings app.
  2. Go to the Mail, Contact, Calendars tab.
  3. Under the Accounts heading press "Add Account..."
  4.  

  5. Fill in all your Google Account info, as usual.
  6.  

  7. Once the account is set up, press it in the list and be sure that the Calendars switch is set to "ON."
  8.  

  9. Go to your iPhone's iCal application and you should now see your primary Google Calendar.
  10. UPDATE: If you have additional Google Calendars that you want to sync with your iPhone, you'll need to use Google's iPhone configuration utility, which you can reach via any web browser at the following URL (you'll need to be logged in to your Google account first, of course):

    https://www.google.com/calendar/iphoneselect

    At this web page, simply check which calendars you want to sync with your iPhone and they will sync accordingly. As far as I can tell, this is a new additional step that Google has recently added to the process to allow greater control over what gets synced to your iPhone.

Here, just like in iCal, you can add or remove events and they will be reflected on your Google Account. They should also be reflected on your Mac's iCal application as well. Just remember: since this is all happening over the WWW, it can take a few moments to propagate to all systems, especially if you have lots of calendars or a slow connection. Just give it a few minutes and you should see everything get in sync.

Also remember: the Google Calendar is the master calendar. The calendars on your iPhone and Mac are beholden to that Google Calendar. If it goes away from Google, it will be gone from your iPhone as well as from your Mac.

Bonus! Moving iCal Calendars to Google

"Well," you might ask, "what if I've already added a bunch of dates to my local iCal calendar and now I want to migrate to the Google Calendar sharing system without having to redo all my events?" That's a great question.

Fortunately, both iCal and Google Calendar can take advantage of a common calendar format know as ICS. So all you have to do is export your iCal calendar to the ICS format, and then import it into Google Calendar. Sound simple? It is.

  1. Select a local calendar (under "ON MY MAC") from iCal.
  2.  

  3. Under the File menu select Export...->Export... (no, this is not a typo).
  4. Name the calendar and save it somewhere handy. This is your ICS file, a single file with all that calendar's info, that you can import into Google Calendar.
  5. Open a web browser and go to your Google Calendar account.
  6. Click Settings->Calendar Settings (upper right corner).
  7.  

  8. Click the "Calendars" tab. Here you should see all your calendars listed. Be sure you have a calendar to put all the imported calendar's events into. It can be your main calendar, or you can make a new one. Once you're ready, click Import.
  9. In the popup, select the ICS file you just made, and choose the Google Calendar where you want to put the imported events.
  10.  

  11. Click the Import button.
  12. The calendar events should now be available to you in Google Calendar. You should also see them on your iPhone and in iCal on your Mac. If you don't, and you added them to a new calendar, be sure that new calendar is among your visible Delegates in the Accounts preference pane in iCal.

So that's it! I hope people find this useful. I certainly have!

Finally and Finally!

Two small but exciting improvements revealed today.

1. Google has at last made some design improvements to their search results (via Daring Fireball).

I wrote about my frustration with Google's lack of design vision some time ago. It's great to finally see them trying to improve their usability and their aesthetic at the same time.

For the record, Google's in the midst of a gradual roll out of the redesign, so you may not see the changes right away.

2. Rumor has it that the next iteration of the iPhone OS will include orientation locking. What's orientation locking, you say? It's the ability to keep the iPhone screen from switching to landscape mode.

I've lamented how the lack of this feature has been one of the major bothers of an otherwise great phone experience. I'm excited to finally have the feature on my phone.

It's definitely the little things I get excited about. But then, sometimes they're what really matter most to a fella.

The Real Cloud

When I first saw the title of this article over at Ars I rolled my eyes: Cloud Computing: a short introduction

Then I read it.

It turns out to be an incredibly thorough, yet brief, technical description of the term Cloud Computing. The article does a great job of defining Grid Computing and then uses that definition as point of comparison to arrive at a very real and very useful definition of The Cloud. I'll be a little less embarrassed to use the term after reading it. Only a little. But still...

Well worth a read for anyone who needs some clarity on the whole Cloud thing.

Native App Superiority

I was recently reading an article on the Tao of Mac that said, among other things:

"I’ve long preferred to use iPhone Twitter and Facebook clients over desktop ones..."

It's true, there are a handful of iPhone applications that are actually better than the original apps they replace — Facebook, for sure, and my recent fave, the Zipcar app among them. Of course the original ones — the "Desktop ones" referred to in the article — are actually web applications.

Native vs Web Apps

The fact is that, despite the push towards — and what many believe is the inevitability of — the web as the primary source of applications, native apps are still vastly superior in almost every instance. This is why Apple had to finally give developers —  and consumers, of course — the App Store. Web apps just weren't cutting it on the iPhone. And while they do somewhat better inside a full-sized browser on a full-powered computer, I still think web apps have a long way to go — a very long way — before they'll ever rival the experience of native apps. Platforms like the iPhone and continued interest in things like Site Specific Browsers offer very convincing evidence that native apps will continue to thrive for a long time to come. To be honest, I have my doubts that web apps will ever completely replace native ones.

I should also point out the probably obvious fact that there are certain apps that will always be best on a mobile platform because they just happen to be particularly well-suited to mobility. The Zipcar iPhone app is a perfect example. It's an app for finding, renting and controlling cars, for Chrissake. Where better to have an app about travel than on a mobile device? In fact, having the Zipcar app on an iPhone gives it certain powers the web app will likely never be able to match. But I'd venture to say that there are very few, if any, application experiences that are better in a web browser than they would be in a dedicated, native app.

No doubt about it, web apps are supremely useful, especially for certain tasks. But that's like saying the web is useful. The ironic fact that many of us prefer surfing Facebook on our iPhones to using the original web app version on a full-sized computer should give you an idea of just how hard it will be and how long it will take to supplant native apps with web apps.