iPad Air First Impressions

iPad Air on top of 4th gen iPad
I headed over to Best Buy first thing Friday morning… they opened at 8AM and handled the iPad Air rollout very nicely. It was raining hard… they gave reservations for particular units to people who were there early and didn’t make anyone stand in the rain. (They also handled the iPhone 5 very nicely, even making appointments for people to come in to activate their new phones – not as streamlined as pickup at Apple but still pretty civilized).


Tech Note: Cloudbusting

My blog runs on a piece of software called WordPress. I love WordPress; it’s well designed, easy to use, easy to maintain. It’s good for serving blogs but it’s also great for creating small simple web sites. I’ve recommended it to a lot of organizations for their web sites, and I’ve helped several of them set those sites up.

That said, WordPress has a reputation for falling over under heavy load. It creates each page on demand, which is very taxing compared to just having the pages sitting there ready to go. This hasn’t been a problem for me given that my site’s not very active but I’m about to do something which (if it’s successful) will bring in a lot of traffic for a short period of time, and I don’t want the site to fall over during that time. I don’t want it to neilwebfail.

There are a number of ways to try to fix this problem. I’m currently trying out a caching plugin for WordPress called W3 Total Cache. W3 Total Cache uses a variety of methods to improve the performance of a WordPress web site, from Javascript and CSS combining and minifcation to database and page caching to using a CDN (Content Distribution Network).

The CDN is the most interesting part to me. With a CDN, you put files on servers (the currently hot “cloud”, though people have been doing this since before the cloud label existed) designed to get them to browsers as fast as possible. The servers may replicate the files so that they are as close (in a network topological sense, not a physical sense) as possible to the browsers that are trying to reach them.

I’ve been interested in using a CDN for some time but none of the projects I’ve been working on have needed one. They’ve all been low load, local sites. But a CDN may help my blog survive a #neilwebfail, so this is a great change to try it out.

I’ve been using Amazon’s S3 storage for some time for other projects. They also offer a service called Cloudfront which turns S3 into a CDN. W3 Total Cache knows how to work with Cloudfront, so this is what I’m turning on as of now. It looks like W3 Total Cache only uses Cloudfront to store media, CSS and Javascript files, not the actual web pages itself, which it will still aggressively cache on the server. That still helps off-load traffic from the server and helps deliver those files to browsers much quicker.

When this experiment is done I’ll report back on how it went (assuming I get to really test it the way I’m hoping to). A great thing about Amazon is that they only charge for actual use, so if I don’t see a burst of traffic I won’t be paying for service I’m not using. I’m very curious to see how much it will actually cost to survive a burst.

Two tools for helping with setup:

1. Panic’s Transmit (web site, with a free trial; Mac App Store) application for MacOS X. Besides being a very handy (S)FTP application, Transmit can talk to Amazon S3, so you can inspect and manually update what’s being stored there if you need to. If you’re not willing to pony up for Transmit (and in my opinion, it’s well worth the cost), you try Cyberduck, which is donation-ware (and also available through the Mac App Store).

2. Firefox’s Firebug and Chrome’s debug console. Use Google PageSpeed with them to see how your site is measures up.

Words of Advice Before Upgrading to iOS 5 and iCloud

Today is a big day for Apple. The iPhone 4S is shipping and Apple is doing one of its biggest set of software updates ever. Today they’ll be releasing iOS 5 for the iPhone, iPod Touch and iPad. They’ll also be releasing MacOS X 10.7.2, introducing iCloud, and releasing updates for iTunes (out yesterday, actually), iPhoto, Pages, Numbers and Keynote.

iCloud is the glue that binds many of these updates together. iCloud replaces MobileMe (formerly .Mac) and is Apple’s solution to the synchronization problem – your data lives on iCloud and changes are automatically made available to your computers and devices, so you can do some work on your computer and simply find it available to you on your phone or iPad or another computer without having to do any synchronization.

These are compelling updates and if your computers or devices can accept them, I recommend them (though its often prudent to wait for a few days to see what kind of issues come up for others who use them).

There’s a big gotcha coming in iOS 5. One of the best features of it is the ability to use your iPhone, iPod Touch or iPad without ever connecting it to a computer. This is a great step forward. To do so you need to associate your device with an “Apple ID”. And there’s where a lot of people are going to get bitten.

If you’re a long-time Apple user you likely have several Apple IDs without even knowing it. You may have a login on Apple.com to buy from the Apple Store online. You almost certainly have an iTunes Store account. And if you’re a Mobile Me user you likely have a Mobile Me account, which is another Apple ID. That’s possibly three different Apple IDs right there.

You’re going to need to sign in using an Apple ID on your iOS device. If you don’t use your iTunes Store ID you won’t have access to any protected media (apps, audiobooks, ebooks, TV shows, movies and the like) that you’ve previously purchased from the iTunes Store. So be careful to use your iTunes Store Apple ID when you provide credentials to your device.

You’ll have a separate iCloud sign-in. You can migrate an existing MobileMe account to iCloud. Apple refers to the ability to re-download music, TV shows, apps and ebooks from the iTunes Store as a feature of iCloud. I have absolutely no idea if this feature follows your main sign-in on your iOS device or if it follows your iCloud account. If it follows your iCloud account then if your iCloud account uses a different Apple ID from your iTunes Store ID you may not have access to your media for re-downloading, and that would be painful.

If you make the wrong choice, it would only be annoying – change it and get back through whatever configuration and setup has to be done – except that Apple has a new policy of only allowing the Apple ID a device is bound to to change once every 90 days. So you’ll be stuck with whatever ID you set it up with for three months. You really want to get this right the first time. And, there’s currently no way to merge Apple IDs. So if you have multiple IDs, you’re stuck.

If you’re a new user, don’t sweat the details too much here. Just make sure you use the same login as you do (or will use) for the iTunes Store.

If you’re an existing user and don’t use Mobile Me, just use your iTunes Store account.

If you’re an existing user and do use Mobile Me, you may have a tough choice here. It may be worth talking to someone at Apple about it. If you haven’t really bought anything on your iTunes Store account then it shouldn’t be a big deal to us your Mobile Me account, but I’d have to wonder if there’s really anyone out there who falls into this category. Otherwise you’re looking at likely having to choose between your iTunes Store stuff and your existing Mobile Me setup (and email address).

The one bit of good news is that if you have an already set up iPhone, iPod Touch or iPad, are using Mobile Me to sync currently and switch to a new iCloud account, iOS will offer to keep your existing contacts, calendars and bookmarks and send them to iCloud, rather than just wipe them out.

There are a lot of rumors that Apple is aware that these tradeoffs are a problem and has been working frantically to provide a way to merge Apple IDs, but they have a lot of users and it’s likely that their back-end systems may need a pretty big overhaul to support this, so don’t expect it to be an easy change for them. They’re going to want to make sure they get it right the first time, if they ever support it.

If you do upgrade and set your iCloud ID to be different from your iTunes Store ID I’d be very interested in hearing how it goes for you.

Why I Don’t Self-Host Anymore

I’m at An Event Apart and have just listened to a great presentation by Jeremy Keith on data permanency. He touched on many issues, from technical ones regarding physical recording media and logical file formats, to digital rights management, legal issues like copyright, and what happens when the service which holds your data (delicious, Geocities, Myspace…) goes away or even just reorganizes its URL structure.

I used to operate my own hosting out of my house – apocalypse.org. At the time, the services I used it for were difficult to find for free – web hosting, shell access, email. I used it for myself and my own projects. I also wanted to continue a tradition from MIT of sharing computer access with other people, so I allowed many friends to use it for email and hosting as well.

In the end I gave up on it for a combination of reasons.

First, Internet delivery into the home did not have the level of reliability that I needed. It seemed that every time I traveled, some hardware glitch would happen either in my server or with my ISP. It was bad enough that the system I depended on went offline, but being responsible for dozens of other people depending on it was intolerable to me. Even when I used a “business class” service, my ISP did not seem to believe that businesses needed reliable Internet access or tech support outside of 9AM – 5PM Monday through Friday. Yes, I needed a better ISP, but one was not available to me given my location. These kinds of reliability issues can be a real killer for a business operated from your server.

Second, possibly because of the domain name, we became the target of many (sometimes successful) break-in attempts. I didn’t mind keeping the system software up to date but I did mind having to track down break-ins and clean up after them.

Finally, over time high quality free or cheap alternatives for email and web hosting became available, so the need to continue operating the system for the benefit of others lessened.

If you do operate your own server out of your home, you’re likely to run into technical issues that will make your life more difficult:

– getting a fixed IP address for your server. Some ISPs will offer a fixed IP address for an extra fee. There are ways to update DNS as your IP address changes, and while your ISP will likely not change your IP address frequently, having your server’s IP address change is distinctly non-optimal. Also, because of the way that SSL works, for each different domain that you host and that requires SSL, you will need a different IP address.

– routing: I have a pre-CIDR class C network number that I have used for my network. “Pre-CIDR” means that it’s routable independent of the bigger block of network numbers that it is a member of. It’s an exotic network number to deal with and your average ISP’s tech folks may simply not understand it, and may have difficulty setting up their routing to handle it. It’s like being able to take your cell phone number with you when you switch from AT&T to Verizon. Unfortunately my ISP would often forget to route my network number when they updated their routers, and I would lose Internet connectivity.

– upload (outbound) speeds are generally much slower than download (inbound) speeds. The common technologies for bringing Internet into the home (cable, DSL, satellite) are designed to bring data to you but not so much to deliver data from you. This makes sense as most users consume far more bytes than they provide, especially in the age of Internet-delivered digital video. Yes, from a purely technical perspective you are transmitting data, and outbound data is absolutely essential – but you don’t need much bandwidth just to allow the protocols to work. This doesn’t work well when you’re being more of data provider than consumer. You can move to other Internet delivery services like T-1 lines instead of cable or DSL, but they are substantially more expensive for substantially less bandwidth (perhaps $1000/month for 1.44Mbps versus $100/month for 100Mbps). Cable and DSL also tend to have data caps that may become problems for server operators.

– packet filtering – Many ISPs do port filtering that will prevent email sent to your home-located server. They may also prevent access of a home web server or filter out other protocols. You may be able to purchase “business service” from the at a higher price with fewer restrictions.

If you’re interested in self-hosting, I would suggest that a compromise between control and reliability may be to use a colocation service. With a colo, you provide a computer that you own and locate it in someone else’s data center. The upsides are that the people who operate the data center should be more reliable than your local ISP, and you own the hardware that your data resides on. The downside is that the hardware is most likely outside your direct physical control (unless you happen to live next to the colo data center and can actually get access to it).

For best results, you might want to put two machines in different colo data centers and keep them synced with one another.

Further out from the ideal of a home-based self-hosted server is a “virtual private server” of the kind that Slicehost (a Rackspace company) offers. In this case, the data center owns the server and uses virtualization software to lease a share of it to you. You are still responsible for the software on the server and for backups and dealing with security issues. Slicehost offers a backup service that is helpful, where they copy your entire server slice on a set schedule. It’s brute-force compared to a more server-specific backup scheme, but then how many people go to the bother of actually doing backups?

If a piece of a server doesn’t appeal to you, you can use a dedicated hosting company like Rackspace, but unless you have serious performance demands beyond what a simple web server or email server would likely need, this probably won’t make financial sense to you.

You can go further to shared hosting setups like Dreamhost, where you share a server with many other users. This has many shortcomings, but still leaves you with more control than you’ll have when your data is completely under the control of a third party service like Twitter, Facebook or Blogger.

In the end, it’s all about tradeoffs. You’re trading off one thing (increased longevity and control of your data, increased ability to deal with security issues) against another (potentially decreased reliability, increased administrative complexity, possibly dealing with backups and security issues). A lot depends on your level of technical expertise and your willingness to deal with complexity versus delegating the handling of technical matters to strangers.

A bit of irony here… immediately after the Jeremy Keith’s talk, I checked my email and found a message from Slicehost about the fact that they will be ending operations and transitioning their customers to Rackspace (which owns them but operates independently). The impact of the transition should be minimal but it was quite a surprise, and quite well-timed.