This is what I wanted all along

Last Tuesday night, I was sitting in a chair upstairs in my house*, with my 15-inch MacBook Pro, my iPad, and my iPhone 3GS all on my lap. And I had a revelation…

I’m a huge nerd!

No, not that revelation. I had that long ago. The revelation was…

This is ridiculous!

Earlier in the evening, I had spent a considerable amount of time hunting, as I had several times before, for a workable iPad app for writing code. I decided to spring for the $6.99 for Gusto, which seems promising. But since it currently doesn’t support SFTP (due to government regulations on encryption software, which the company says it’s working on), it’s completely useless to me in its present state. The bottom line: while there’s plenty I can do with an iPad, I still can’t do my work on one, which limits its usability.

The conclusion I had last Tuesday night was simple and obvious: I need a Mac that’s as small as an iPad.

And then came Wednesday. Steve Jobs must have been reading my mind on Tuesday night, and then he hopped in his Delorean to go back in time* a few months and develop a solution to the problem I had only just realized I had. Because at the Back to the Mac event Apple held that day, Steve Jobs introduced my dream computer: the 11-inch MacBook Air.

The moment I saw it, I knew I needed it. I worried a bit that it might be underpowered, or its storage capacity might be too small. But that’s not important. It would fit in the CaseCrown iPad messenger bag I had recently purchased, and that was all that mattered.

OK, performance mattered too. So before buying one, I wanted to try it out and see if it could handle what I was going to throw at it. I’d call myself a “power user” (if it didn’t sound so stupid), although I don’t usually push my Mac’s limits in terms of processing power: I rarely edit video (unfortunately), and my work in Photoshop is usually limited to small, web-scale graphics. But I do often have a lot of programs open at once: I’ll be coding in Coda; uploading files with Transmit; checking email; previewing sites in Safari, Firefox and Chrome (and occasionally bothering to check them in Internet Explorer too, which means running Parallels Desktop); writing project proposals in Pages; and editing images in Photoshop… all while keeping the music running constantly in iTunes.

My somewhat idiosyncratic suite of applications wasn’t on the demo unit at the Apple Store, of course, but I did the best I could to push the little dynamo to full capacity: I opened all of the iWork and Microsoft Office applications at once, and then simultaneously ran a video preview in iMovie, played back a multitrack audio project in GarageBand, and watched the Close Encounters of the Third Kind trailer in iTunes. All of the video and audio ran perfectly even under these conditions, and at that moment I knew I wouldn’t be walking out of the store without a MacBook Air in my hand. I also picked up the external SuperDrive (for CD/DVD access), and I supplemented the feeble 128 GB of Flash storage with a portable external 1 TB USB drive from Seagate.

I spent most of Saturday afternoon installing applications and transferring files from my MacBook Pro to the MacBook Air. Make no mistake, my goal from the moment I laid eyes on it has been clear: this machine was going to replace both the MacBook Pro and the iPad in my “digital lifestyle.” Which means that I am also doing that thing that so many of the tech bloggers are asking if it’s even possible: I’m using the 11-inch MacBook Air as my only computer. I’m on day three of this experiment, and days one and two were heavy work days. Here’s a summary of my experiences so far.

Screen Size

The MacBook Air’s screen is indeed small, but its high resolution makes up for the lack of physical space. It’s basically like a widescreen iPad: the vertical pixel count is the same (768 pixels), with the horizontal increased substantially (from 1024 to 1366). Its dimensions are comparable to the iPad’s, which means its pixel density is about the same.

The image is very clear and sharp. But it’s also making me realize my eyesight isn’t what it used to be. It’s also not directly comparable to the iPad, because I would typically have the iPad’s screen about a foot from my face, but the MacBook Air is usually at least twice as far away. When I’m working on it directly it’s acceptable. But at my desk I attach the MacBook to a 19-inch LCD and use the MacBook’s own display as a secondary monitor. In this layout the screen is even farther from my face, and I do have a bit of trouble reading it clearly at that distance.

In short, although the screen is small, it has a high pixel count and dense resolution, so it’s a very usable size, albeit a bit challenging for aging eyes.

Tip: I’ve always kept the Dock on the bottom of my screen, but the demo unit had it on the left, which seems to make sense given the widescreen aspect ratio on this screen. I’m trying it out and so far I really like it, even though I do sometimes accidentally go to the Dock when I mean to go to the tool palette in Photoshop.

Storage Capacity

128 GB is not a lot of storage space anymore. My first Mac, back in 1994, had an 80 MB hard drive. Times change. I knew I’d never be able to fit my 250 GB iTunes library on the MacBook Air, but I was worried that I wouldn’t even be able to fit Mac OS X plus all of my applications on it. I’m pleased to say though that I was able to install all of the applications I regularly use, plus all of the iTunes content I keep on my 32 GB iPhone (allowing me to sync the phone), and I still have over 62 GB free. I’m planning to allocate about 20 GB for a Boot Camp Windows 7 set-up, but that will still leave about 40 GB for data files for future projects. The bottom line is that 128 GB is an acceptable bare minimum for my needs, but I would not have been able to get by with the 64 GB base model.

As noted above, I’m supplementing the on-board storage with a 1 TB external drive. It’s an investment I definitely recommend if you’re considering a MacBook Air. Not only is it great for Time Machine backup, but I’ve been able to load all of my iTunes and iPhoto data on it, plus archives of all of my digital crap dating back to 1994. It’s small enough and light enough to go with me in the messenger bag, too, so if I do need to access anything that’s on it, I’ll have it with me.

Tip: In order to make this work, I needed to manage two separate iTunes libraries. This is a lot easier than it might seem. When starting iTunes, hold down the Option key. iTunes will give you the opportunity to select a different library or create a new one. Same goes for iPhoto.

Performance

My old MacBook Pro had a 2.66 GHz Core 2 Duo CPU, almost double the 1.4 GHz unit in the MacBook Air. Processor speed is important for heavy-duty tasks like video editing, but in practice, I find the computer’s speed is far more a factor of its hard drive performance. Read-write operations are so much faster with Flash storage than with a traditional hard drive that with the kinds of day-to-day tasks I do, the MacBook Air seems at least as fast, if not faster, than the old MacBook Pro.

Memory

I knew going into this experiment that the biggest sacrifice I would be making was in giving up half of my RAM. My old MacBook Pro has 4 GB of RAM, and the stock MacBook Air comes with 2 GB. You can get a MacBook Air with 4 GB of RAM, but it has to be installed at the factory (since it’s soldered right onto the logic board), which means you have to special order it. I was too impatient for that, as well as reluctant to drop an extra $100, so I went with the stock 2 GB.

The biggest impact of this limitation for me is that I can’t keep as many applications open at once as before. I had gotten to the point where I never even paid attention to how many applications I had running, and rarely bothered to quit an application when I was done using it.

Tip: In the Mac OS X era, we Mac users no longer have to worry about manually setting memory allocations for our applications, but Parallels Desktop does still need to have its virtual machines’ memory limits set. I copied over my Parallels VMs from the old MacBook Pro, where I had given them each 2 GB of RAM. Doing this on the MacBook Air was not good… the thing ground to a halt when I fired up Parallels. Reducing the VMs’ memory allocation to 768 MB solved the problem.

Battery Life

Apple has touted the battery life of the new MacBook Air line with claims that the 13-inch can last up to 7 hours on a single charge, and the 11-inch 5 hours. I haven’t taken the time to log my actual usage time, but so far I’ve run down the fully charged battery twice. On Monday and Tuesday I had it plugged in all day as I worked, and then went on battery power in the evening while I spent some time organizing my data files, doing a bit more work, and of course always listening to music on iTunes. Anecdotally, I’d estimate I’ve been getting at least 4 hours of battery time under these conditions.

Today’s usage is probably the most relevant yet. I ran on battery at a coffeehouse this morning for about three hours. Now I’ve been running for about another half hour on battery power at MIA, and the battery indicator is saying I have 1:47 remaining. Not bad. This definitely beats the battery life in my old MacBook Pro. Then again, I almost never ran the MBP on battery power. It’s so big it doesn’t really feel like a portable device in the same way as the Air, and whenever I would go anywhere with it, my first instinct was to locate an electrical outlet and plug in. The MacBook Air feels portable and “unplugged” in the way that up to now only the iPad did.

Portability

It’s perfect. Jason Snell has it right: “It’s quite possibly the most desirable laptop Apple has ever made.” Indeed.

Ahoy!

It’s been two weeks since my last blog entry which, while not exactly a record for inactivity, is surely too long. I’m too busy to write a full entry today but I feel compelled to write a brief status update to tide over anyone who for some reason cares about what I’m doing/saying/thinking.

Item! Lots of work going on at Room 34 Creative Services, LLC! I’m making major enhancements to cms34 and preparing to roll out a major site overhaul for a long-term client.

Item! I’m suffering withdrawal after the premature end to the baseball season in Minnesota. That said, my pain is eased considerably by the Rangers’ handy defeat of the Yankees in the ALCS, and by the success of my favored San Francisco Giants in the NLCS.

Item! Oh, man. The MacBook Air. I couldn’t resist the impulse to buy the 11-inch model this weekend, and I absolutely love it. More on that in a future post.

Item! I’m hoping to review another coffeehouse this week, as it’s been way too long.

Item! If random, bullet point-length updates from me are something you enjoy, be sure to check me out on Twitter for all of the latest trivialities.

That is all.

Great Dieter Rams interview

Dieter Rams, legendary industrial designer from Braun in the 1950s and ’60s, pretty much invented my design aesthetic. I can’t imagine what the world of technology would look like without his pioneering work. Brilliant.

I especially like his design principle #10: “Good design is as little design as possible.”

I probably didn’t hear of Dieter Rams until about ten years ago, but I’ve seen the world through his eyes since I was a kid. Most of these Braun products were not readily available in the U.S. in those days (the late ’70s and early ’80s), but their designs were so influential that just about everything you could get here still looked like them, or pale imitations thereof.

Jason Kottke also tidily sums up Rams’ influence on modern industrial design:

And hey, I didn’t know that a book had been published on Rams’ work. I bet Jony Ive has at least three copies.

I’ll take one of everything, please.

Source: Monoscope via kottke.org

When is a CSV not a CSV? When you’re downloading it in Safari

Here’s another post that’s basically a cry for help. I did find this forum thread on the topic, but not a solution.

The problem: when I download a CSV file in Safari, for some inexplicable reason, Safari appends a .xls (Microsoft Excel) extension to the filename.

Never mind that I don’t use Excel… I use Apple’s own spreadsheet software, Numbers, from the iWork suite. Never mind that I don’t even have Excel installed on my Mac. Why, why on Earth, would Safari append a .xls extension on a CSV file? It’s not an Excel file; it’s a CSV. Different format. Sure, Excel can open it. But, you know what? Numbers doesn’t open it properly when it has that stupid extension on it.

Take the exact same file, remove the .xls extension (leaving the .csv extension), and Numbers opens it just fine. Leave it the way Safari has it, and it’s a mess.

This is not the only annoyance I have with Safari’s handling of downloads. I also hate how it automatically expands “safe” files, placing the original .zip or .dmg file in the Trash. I don’t want to delete those files! But if I turn this option off, it also doesn’t open the files I want it to open automatically, like Amazon MP3 downloads.

But hands down, this CSV bug — yes, that’s right, I called it a bug — is my biggest source of frustration. Sure, it’s easy enough to remove the extension. But it shouldn’t be there in the first place!

So just what exactly is behind my dislike of Flash?

Caveat emptor. This is going to be a really long post. But I’ve been saving this up for a long time, and hopefully I can purge myself of it in one sitting. Also, I apologize for that vaguely vomitous metaphor, but it fits my feelings about Flash. And, perhaps, by the end yours as well. So if you have a strong stomach (and care at all about this crap), read on. Otherwise, see you next time.

OK, so I’ve chimed in on the whole Apple vs. Adobe, no Flash on iPhone OS situation before. (And, if you care to scroll back through my history of mostly beer-fueled tweets about the Minnesota Twins, you’ll find a few choice 140-character missives on the matter from me on Twitter as well.) But up to now I’ve never made a clear — or, failing clarity, at least a verbose — argument for why I so strongly dislike Flash. The time has come.

I am well aware that Flash means different things to different groups of people. Essentially, as I see it, there are three main groups of people where Flash is concerned: pro-Flash designers/developers, anti-Flash designers/developers, and users. I don’t bother to distinguish between pro- and anti-Flash among users, because ultimately I don’t think most users (unless they’re also in one of the other two groups) give a crap what technology is behind the content they’re consuming on the Internet. They just want it to work.

So, with this in mind, I’m splitting this post into two sections: my arguments against Flash from the user perspective, and my arguments against it from the designer/developer perspective. I don’t bother representing the third group, because there’s really no part of me that supports it. I have reluctantly used Flash for a few, very limited purposes in recent years1, but I am actively striving to eliminate even those rare instances of it from my work.

But enough about my work (for now). Any web designer or developer worth their hourly rate knows the user comes first.

Part one: the user’s perspective

1. Flash-based designs look bad. I know I’m not an ordinary user, given my professional background, but I can spot Flash-based content in an instant, and it’s always a turn-off. There’s just something… cheap-looking about most of it. More often than not, I notice that Flash-based content has bad text rendering (both because of kerning and leading issues and because of Adobe’s abysmal anti-aliasing technology, far surpassed by the built-in anti-aliasing of plain HTML text in modern Mac web browsers and Mac OS X itself). And beyond the text, most Flash content I see has cheesy, cookie-cutter animated effects. It’s not as objectionable as a PowerPoint presentation, but it’s almost as immediately identifiable, and equally uninspiring.

Now, it’s true I’ve seen some excellent Flash-based web design. But it’s definitely the exception, and it’s rarer as an overall percentage (or at least feels that way) than first-rate design is on non-Flash sites. Plus, since I can never entirely turn off my professional perspective, knowing the drawbacks that an all-Flash website brings, my experience even of these best examples of Flash-based design are tainted beyond redemption.

2. The most high-profile use of Flash is for ads — and annoying ones at that. OK, there’s a lot of Flash content out there that’s not ads. I’d like to believe that ads make up a minority — hopefully a small one — of all Flash content on the web. But I think most of the interesting Flash web design is never seen by most people. The only Flash-heavy content that draws a lot of traffic is either online games (some good, some… meh), kids’ interactive sites (probably the only use of Flash I unabashedly support), and promotional sites for blockbuster movies and console video games. Of course, the number one use of Flash these days is probably to watch video online, from sites like YouTube, Vimeo, Funny or Die, Hulu. Flash-based video is everywhere. But that’s changing.

So, set aside the sites that require heavy-duty interactive content or (for now) video, and what are you left with? Where else does the average Internet user encounter Flash most often? Ads. Annoying, intrusive, obnoxious ads. I realize perfectly well that unless a website is actually selling stuff (including, potentially, access to the site itself, and good luck with that unless your content is either targeted at highly-specialized professions or X-rated), the only viable revenue source is advertising. But websites that operate on an ad-based business model walk a fine line: the ads need to be attention-getting enough to encourage the user to click on them, but they can’t get in the way so much that people stop visiting your site altogether. As a user, when I encounter a site with an over-abundance of intrusive ads, it’s a double negative: not only do I think the site’s design is too annoying to deal with, but I automatically assume its content must be crap, not worth wading through the ads to get to anyway.

3. It’s a plug-in. A plug-what? A what-in? This is beyond the level of most users’ interest in their computers. I just want it to work, I don’t want to fiddle around with downloading extra crap, especially when the installer was written by Adobe. (See, it’s hard for me to divorce my mind from my professional experience, even for a few minutes.) Once it’s installed, you’re done forever (or… well… until a new version of Flash comes out), so it’s easy to forget about it, but get a new computer and it’s either not installed, or you’ve purchased a PC that’s not only preloaded with Flash but 3 dozen other crappy OEM add-on applications that you’ll spend a week trying to get rid of (or, more likely, leave on your desktop gathering metaphorical dust along with 100 other icons, including every Word document you’ve ever created, forever).

The point is, despite Adobe’s efforts to make us think Flash is a natural part of the web, a sibling to HTML, CSS and JavaScript, in fact it is not a web technology at all. It’s just this proprietary thing Macromedia (now part of Adobe) developed for creating interactive media (first as Director, and then as Shockwave) and decided at some point to turn into something that could be embedded in web pages: Flash. (I’m sure the longtime Macromedia fanboys will want to correct me on some point of that history, but for anyone who doesn’t give a crap, that’s the gist of it.)

Flash filled a niche, but web standards have caught up (or are well on their way to doing so), and a proprietary add-on just isn’t necessary in the way that it used to be. And, of course, on any device running iPhone OS, it’s not even that. It’s this.

4. You can’t “deep link.” I realize that to anyone who doesn’t know what a “plug-in” is (as I joked about in the previous item), the concept of “deep linking” may cause a spontaneous mental breakdown. But just because the average user doesn’t know what “deep linking” means doesn’t mean they don’t want to do it. The best example of this (though sadly I don’t have an example of it at the moment) is the scenario of a Flash-based photo gallery. Want to send your friend a link to the 14th photo in the gallery? Too bad. If you copy and paste the URL from your browser into an email, they’re going to be taken to the first photo, or, more likely, to the obnoxious crap you didn’t bother watching when you first landed on the site, because the designer at least had the courtesy of including a “Skip Intro” button.

It’s possible now to work around some of these limitations, but in my experience most Flash-based websites don’t.

5. It’s sometimes used when it’s not really needed. This is closely related to the previous item, and is probably more of a complaint I have as a developer than as a user. But there are just some sites that don’t need Flash. Or even if they do, the whole thing doesn’t need to be in Flash. If Flash were restricted to the parts of the site that require its capabilities, and things like the main navigation and text content were in plain HTML, then deep linking and a host of related problems could be alleviated.

6. Mobile. Note that I said “mobile” and not “iPhone OS.” It’s true that Apple is the only mobile device manufacturer who is actively and aggressively keeping Flash off the platform, but up to now no other mobile device has a working, readily available version of Flash either. And even though Android 2.2 (on the Android-based devices that are actually upgradeable to it) does finally offer Flash support, the jury is still out on how usable it is. Adobe is working hard (apparently), but there are major technical hurdles in optimizing Flash both for the low processing power of mobile CPUs and for reasonable battery consumption. But even if those technical issues are resolved, there’s the interface issue. Flash simply was not designed for touchscreen devices, and even though, from what I’ve read, Adobe has added programming hooks for touchscreen input, a lot of existing Flash-based interactive content will not be usable as-is on a touchscreen device. This is an issue for “regular” web technologies too, but the open standards of HTML and JavaScript make building a mobile web browser that overcomes these differences far easier than with Flash — and Adobe doesn’t need to be at the center of the process.

7. The security and privacy settings you don’t know about, but should. There’s a reasonably good chance you’ve looked at the privacy settings in your web browser’s Preferences dialog box. But have you seen this screen before?

Probably not. But maybe you want to check it out. It’s here. You see, Flash really isn’t a part of your web browser. Flash has its own privacy settings, its own cache, its own cookies. Web sites that use Flash can store and retrieve information on your computer, completely apart from the capabilities and limitations in your web browser. And Flash can access information on your computer that the web browser by itself can’t. That’s the whole reason Flash-based file uploaders exist, and why they work better than a regular browser “upload” form field: because Flash can read information about files on your computer that is strictly off-limits, for security purposes, to HTML and JavaScript.

I’m not claiming the sky is falling or crying wolf. I don’t personally know of any major security exploits that have come out of this particular capability of Flash. But what happens if there is an exploit? There’s no one who can fix the problem but Adobe, and no alternative means for you to access Flash-based content. If Internet Explorer has a security exploit, you can always browse the web with Firefox, but despite some noble open source efforts, there really is no alternative to Flash. Adobe has an absolute monopoly on Flash-based web content.

8. Performance. Flash is notoriously much slower on the Mac than it is on Windows. Always has been, always will be. Apparently, according to none other than Steve Jobs himself, it’s also the number one reason Macs crash. I don’t doubt it, though I haven’t experienced it myself, mainly because I avoid Flash-based content as much as possible. But even though it performs well on Windows (largely due, I suspect, to more direct access to the system’s hardware — another security concern, incidentally — on Windows compared to the abstracted hardware access the Mac grants applications), it’s a resource hog everwhere else. I already talked about Flash’s performance issues on mobile devices. The upshot is that Flash seems to be pretty bloated and inefficient, and since Adobe won’t let anyone else look under the hood, I suspect there’s a good chance that it is… perhaps even more than anyone thinks.

In other words, if there’s a better way to do something, use it. Dump Flash.

Part two: the designer/developer’s perspective

1. Flash created a rift in the community. You don’t say! Just as there’s a big wall in the corporate software development world between .NET and Java, there’s a huge wall in the web design/development community between those who use Flash and those who don’t. This may stem in no small part from Adobe’s (and, previously, Macromedia’s) marketing tactics. There are almost unlimited options available for free (or at least cheap) IDEs for web and application development (or you can just use Notepad), but the only way2 to create Flash content is to pony up.

The result of this — and I speak from my own experience, which was a contributing factor in which side of the fence I fell on — is that designers who were given Adobe Creative Suite had Flash on their desktops, and developers who did not have CS were shut out. Flash, with ActionScript, became a gateway drug for designers looking to get into programming. Adobe capitalized on familiarity with their applications’ user interfaces, and a generation of Flash evangelists was born.

Or, on the other hand, you had developers or, like me, designer-developers who happened to fall just slightly more into the “developer” column, who were maybe given a copy of Photoshop, but encouraged not to use it. There have been periods over the past decade where I have been receptive to the idea of getting into Flash development, but was denied access to the necessary tools. It doesn’t take too long playing that role — in the context of all of the criticisms I’ve already levied from the user’s perspective — before you just decide it’s a piece of crap; you’re better off without it; and you’ll do everything you can to prove that standards-based alternatives are better.

The war between Apple and Adobe over Flash support on the iPhone OS has brought the situation to a head, with the Flash development community up in arms over Apple’s war (in which they are at least collateral damage, and at worst Adobe mercenaries), and the standards community cheering what they see as the overdue demise of public enemy number one.

2. Flash developers use it unnecessarily. There’s the rift in the community again. Because Flash developers were often weaned on Adobe Creative Suite and don’t know how to program in anything other than ActionScript, nor often how to build a simple web page in HTML/CSS, and because it’s easy for them to dazzle clients with a Flash-based site, it’s often tempting to just build an entire site in Flash. It looks impressive, the client thinks they’re getting what they want, and the check’s in the mail.

The problem is, although you can build an entire website in Flash doesn’t mean you should. In addition to the aforementioned mobile devices, Flash content is invisible to screen readers, meaning visually impaired users can’t access it, and, probably more important to the client’s bottom line, to search engines. As far as Google is concerned, that whiz-bang all-Flash website you just created for your client may as well not even exist.

Again, there are ways around a lot of these limitations, but I can think of a better one: just don’t use Flash.

And so on. I had a few other items on my list of complaints from the developer’s perspective, but they’re mostly facets of these same points: it’s a closed system entirely dependent upon one company; it’s expensive; it’s increasingly unnecessary as web standards evolve; it encourages bad user experience (UX) design; it distracts designers-turned-developers from learning web standards; etc.

Arguing for or against Flash is a lot like arguing politics and religion. It’s a polarizing issue. Everyone who has any interest in the debate also has investment in a particular perspective — baggage and biases they may not be fully willing to admit even to themselves, much less throw into their arguments. And a lot of it isn’t entirely rational.

As Upton Sinclair famously wrote, “It is difficult to get a man to understand something, when his salary depends upon his not understanding it!” It’s also easy to use that argument when you’re entirely convinced that it’s describing the other person’s position. I’m sure there is more behind most pro-Flash arguments than a vested interest in the ongoing potential for work developing for the platform. But from my perspective, it’s difficult to see.

Notes

1 I said there were “a few” things I’ve used Flash for in recent years. In fact, there are three: 1) YUI Uploader, on the administrative side of my CMS, for handling file uploads with a user-friendly progress bar; 2) JW Player, on a few client sites running my CMS, for displaying Flash-encoded video (FLV) in a skinnable player; and 3) sIFR, that damnable bastard Flash/JavaScript hybrid solution to the problem of customizing fonts on the web. I’m pleased to say I haven’t used sIFR in nearly two years (though, sadly, I’m still avoiding promising CSS3-based solutions like Typekit and the new Google Font API because of poor rendering on Windows, especially in Firefox). And I’ve just — temporarily, at least — pulled YUI Uploader out of my CMS after upgrading to CakePHP 1.3, due to an incompatibility I have yet to troubleshoot. As for JW Player, well, I’m still using it for now, but I’ll actively pursue HTML5 video solutions on future projects.

2 OK, owning a $700 copy of Adobe Flash isn’t the only way to create Flash content. Knock yourself out. Adobe will be standing by to take your order when you get back.