Did Adobe actually mock up these Mac OS X screenshots on Windows? (Yes… I’m pretty sure they did.)

So, for reasons I’d rather not get into, I had to break down and install Flash Player in Safari today. (OK, I’ll get into it briefly… due to a rather obscure bug, Chrome — my preferred browser — has been crashing repeatedly on me whenever I try to upload a file. Long-term solutions aside, I had an immediate need for a way to use a Flash-based file uploader, so I had to install Flash in Safari.)

On the final page of the Flash Player download process on Adobe’s website, they offer a series of helpful screenshots to guide the most novice of Mac users through the process of locating and running the installer. Only… no, wait. Those can’t be real Mac OS X screenshots. The fonts are all wrong! So is the anti-aliasing, if you want to get really geeky about it. They’re mostly Arial, with the trademark overly-hinted anti-aliasing of Windows. Strangely though, it looks like the text label under the disk icon in the first screenshot is in Helvetica.

The real telltale sign for me though was the white mouse pointer arrow. Mac OS X has a black arrow. (The Mac has always had a black arrow, and Windows has always had a white one… presumably one of Microsoft’s infringement-suit-skirting superficial changes to the GUI in the early days of the Mac/Windows rivalry.)

I have come to expect subpar user experiences from Adobe, a company whose products I once loved so dearly. But this really takes the cake. I can’t even quite comprehend how screenshots like these were produced. It’s impossible to get results like this on a real Mac. Do they have some weird proprietary in-house Mac emulator that runs on Windows? (Actually, that might explain a lot.) Did they actually meticulously create these “screenshots” in (the Windows version of) Photoshop? Or do they have a Windows application specifically designed to generate fake Mac screenshots for all of their documentation? I’m at a loss to explain it, but there’s no way it wasn’t significantly more work than simply, you know, taking screenshots on a real Mac.

See for yourself… (Note: The image is slightly scaled down here to fit the page. Click it to view at full size.)


How not to do the Internet: a case study in bad web UX

My Subaru dealership’s website(s)

My Subaru Outback is due for service. Time to schedule an appointment. This is the kind of thing I just love to do online. No human interaction necessary!

Unfortunately, my dealership (who shall remain nameless, although I am happy to tell you that their shoddy website experience, which I am about to detail for you, was delivered by auto dealership web development behemoth Dealer.com) has not made the online scheduling option easy. And by “not easy,” I mean “practically impossible.”

First of all, for no good reason, the scheduling interface is built 100% in Flash. I’m pretty sure this scheduling system predates the iPhone, and Flash was at the time a de facto standard, but I’ve been building web applications since 1999 and there was never a time when it made sense to build a system like this in Flash. I deliberately don’t have Flash installed, except the version built into Chrome, so I couldn’t even load it in my browser of choice (Safari). Strike one.

I don’t think so.

Switching over to Chrome, I was able to go through most of the appointment scheduling process, picking the service I needed done, etc., until I got to the point of actually scheduling it, where I was stuck in an endless loop of picking days that were marked “available” on a little calendar overlay, only to get an error message stating “Not available due to shop capacity.” Over and over.

All but giving up, I spotted a curious item at the bottom of the page:

Ooh, this looks promising! Except… wait. How can clicking a link on my computer download an app to my smartphone? Maybe I should visit this site on my iPhone and then tap the link. Except… wait again. This part of the interface is in Flash, so I wouldn’t even see the link on my iPhone. So, what happens if I click it, anyway?

Are you kidding me? We are now at a place where I am interacting with a Flash-based web app on my computer, having it send to my phone an SMS message containing a link to the dealership’s mobile website. I’d even prefer a QR code over this convoluted mess. Strike two.

This is not how you do the Internet.

So I just decided to go over to my iPhone and try loading their website directly. It “smartly” (using the term loosely) redirected automatically to a separate iPhone-optimized version of the site, which I can only assume must be the mobile site the SMS would have linked to. (That is a reasonable assumption, right? We shall see.)

Here’s what I found when I navigated through the iPhone-optimized site to the service department’s page:

That “Service” button calls the service department. The “Contact Us” button is a link to a general-purpose email form. There are no other options.

“The mobile site will let you create, modify, and cancel appointments.” That’s what the SMS form promised. I decided (solely for the purpose of this blog post at this point) to fill out that form, but have the link emailed to me rather than sent as an SMS message. Not surprisingly, the email ended up in my junk folder. Also not surprisingly, the link goes to a different site than the version my iPhone was automatically redirected to when I tried to load the dealership’s main website. (So this is three separate websites they have now.)

I loaded this other mobile site on my iPhone, and it works!

Except, no, wait… it doesn’t:

Except, no, wait again… despite that weird error message, it actually does work:

(How many “except waits” is that now?)

But since it apparently only lets you edit existing appointments, not make new ones, I guess it really doesn’t work, after all. Also, don’t ask me why the iPhone version of the site doesn’t even have a link over to this version, but I guess ultimately it doesn’t matter anyway. Strike three. And four, five and six. In fact, let’s just call the game. And I’ll call the dealership.


What have we learned here? Aside from the fact that I am willing to spend far more time writing a blog rant about this problem than I am just calling to schedule an appointment over the phone, I hope I have impressed the value of web standards. If this site’s interface had been built in simple HTML and JavaScript, instead of Flash, which I can tell you is 100% possible — there is absolutely nothing in the interface functionally, and not even really anything in terms of the design or interaction, that could not have been done with HTML, CSS and JavaScript, even several years ago — then it would have worked fine in Safari without Flash, and it would work on my iPhone.

There has always been a lot of temptation to use Flash to do things that couldn’t be done with web standards, especially when the standards weren’t up to Flash’s capabilities. But succumbing to that temptation led to two trends that were profoundly harmful to the open web, and the effects of which we are — and I am literally — still experiencing today.

Bad UX as standard practice

First, since the sky is the limit when designing Flash interfaces, it created a feedback loop where designers took excessive liberties in experimenting with how basic interface elements like scrollbars and buttons should look and function. Then, project stakeholders who didn’t have the requisite background to make informed UX design decisions made demands that further pushed how these elements look and function. And since Flash had so few constraints on interface design, designers could accommodate those expectations, and the situation spiraled out of control.

This problem is not exclusive to Flash, of course. These days CSS and JavaScript offer tremendous potential for messing with standard UX conventions, and I’ve gotten myself into trouble with this on occasion. Customized scrollbars, fixed-position content, etc. Always remember, just because you can do something doesn’t mean you should. Things in the future will change in ways you can’t anticipate. Those changes are likely to accommodate existing standards, but not your customizations, no matter how brilliant they may be.

Flash as an industry

Second, as Flash grew in popularity it created an entire industry of Flash developers. Suddenly you had people whose livelihood depended upon building interfaces in Flash, regardless of whether or not Flash was really the right tool for the job. And as someone who has always favored open web standards, my perspective is that Flash is only the right tool for the job when it’s the only tool for the job. Even if standards couldn’t do something in quite as… ah-hem… “flashy” a way, if they could do it at all they should be chosen over Flash. I recognize this is a bit subjective, but one thing I can say about it with objectivity is that favoring web standards over Flash for a system like the one I’m describing here would almost certainly have obviated all of the problems I encountered this morning.

A metaphorical lesson to all technology workers: when your only tool is a hammer, every problem looks like a nail. Diversify your toolbox. It will serve your clients better by ensuring that you’re using the best tool for the job, not just the tool you know best. And it will serve your career better by not limiting your job options.

Future-proofing the web

There’s an even bigger reason now that having built this kind of system then using web standards instead of Flash would’ve been a good idea. If this site’s forms had been built with semantic HTML, it would be a comparatively trivial task to build new CSS with responsive web design techniques, allowing a single site to deliver the complete user experience on any device, rather than having to pay for and build three separate, wholly inconsistent, and all inadequate websites. By supporting and adhering to standards in the past, we could (and did) build websites that still work fine today. And by continuing to adhere to standards today, we can build websites that will still work fine tomorrow, even if we don’t really know what tomorrow’s devices will look like, or how we will interact with them.

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.


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.

Apple vs. Adobe: This is fargin’ war!

I’m sure I’m not the only child of the ’80s who watched Johnny Dangerously several (hundred) times as a kid. One of my favorite characters was Roman Moronie, whose command of the English language — well, more specifically, English profanities — was tenuous at best. I’m sure he would be highly offensive to a particular nationality or ethnic group, if it were possible to tell where he was actually from. (That mystery itself being a joke in the movie; at one point a newspaper headline reads: “Roman Moronie deported to Sweden — claims he’s not from there.”) Yes, I was a big fan of ’80s Michael Keaton movies that, in retrospect, are somewhat problematic. Johnny Dangerously, Mr. Mom. I think I partly liked him because I thought maybe he was related to the characters on Family Ties. OK, I was old enough to know better than that.

What does this have to do with Apple vs. Adobe, or anything for that matter? I’m not sure, but I do know that their battle has escalated to fargin’ war!

Steve Jobs fired the first metaphorical salvo last month with his Thoughts on Flash. I thought he nailed it, as expected. Of course Adobe can’t let him win, so yesterday Adobe retaliated with their “We [heart] Apple” / “We [heart] Choice” ad campaign and an open letter of their own.

The idea that Flash is somehow open — or that Apple is somehow trying to “close” the web — is both disingenuous and misguided. My natural inclination is to blather on ad nauseum about such things, but as I’m home with a sick kid today (which is to say, there’s enough nauseum in this house already), I’ll let some more pithy writers say it for me.

First, an excellent and concise response from Jim Whimpey in Brisbane, Australia (by way of John Gruber in Philadelphia):

Adobe: not open, claim to be.
Apple: not open, don’t claim to be, contribute heavily to that which is truly open.

If that’s not pithy enough for you, a picture is worth a thousand words. Via Jeffrey Zeldman in NYC:

Update: Over on the Macworld website, the Macalope has some choice words on this topic. It’s worth reading in its entirety, but here’s my favorite bit, dissecting excerpts from the Adobe open letter:

If the web fragments into closed systems, if companies put content and applications behind walls…

You mean like the wall of a lousy runtime environment that would just as soon crash the Macalope’s browser as play back a Daily Show clip? The wall of a development environment controlled by one company that makes some pretty good coin off the deal?

Oh, no. That’s not the wall you were talking about. Sorry. Go on.

…some indeed may thrive — but their success will come at the expense of the very creativity and innovation that has made the Internet a revolutionary force.

The Internet is an open range where anyone can compete in any way they like. But Adobe didn’t make the Internet. In fact, they tried to wall off a section of it. Apple, on the other hand, made its own walled garden with a scenic view of the Internet.

Some more thoughts on the iPad from someone without one

I’m a joke maker

Did you hear the one about the guy who bought a Kindle on the day the iPad was released? Of course you didn’t, because no one is buying a Kindle today!

Well, I’m sure someone’s buying a Kindle. I’m not sure why.

Waiting for the second generation

I can understand why some people wouldn’t want an iPad. I’m not buying one today. I didn’t buy an iPhone until 9 months after it was released. I probably will own an iPad eventually. I would definitely wait until the 3G models are out; I would probably wait until a future version is available with a built-in camera, and after prices come down so at least 32 GB of storage is available for the same price as 16 GB today.

Common complaints

Most of the critics (including Walt Mossberg and David Carr on last night’s episode of Charlie Rose), while generally lavishing high praise on the device, cite a common (small) set of complaints: lack of a camera for video chat, the awkwardness of holding it for long periods, and no support for Flash tend to be at the top of the list.

I can certainly agree on the first two points: a camera (or two — one on each side) seems like such an obviously necessary feature that I can’t believe it won’t be added to the second generation model; and although I’ve yet to touch an iPad, much less hold one, I can already imagine that I would quickly tire of propping it up and that two-handed typing while balancing it on my lap would be frustrating. But it comes with a nice case with a built-in prop (as demonstrated by David Carr last night on Charlie Rose), and more accessories will certainly be coming soon from third-party manufacturers.

There was an inadvertent demonstration of the potential physical awkwardness of the device last night on Late Night with Jimmy Fallon when the host and Joshua Topolsky attempted to play a game of air hockey with the iPad placed flat on Jimmy’s desk: with its curved aluminum back, the iPad was prone to skating around on the desk as the two slid their virtual paddles around on-screen.

Click here to see the video from Late Night with Jimmy Fallon. I’m so mad at NBC for their stupid embed code just embedding an SNL promo instead of the proper video clip that I’ve actually resorted to using the phrase “click here.” So, spare me further agony and just… click here.

Flash? We don’t need no stinkin’ Flash!

But the complaint about the iPad that is most divisive is its lack of Flash support. I’ve already made my feelings on the matter known (1, 2). I think there are a very limited number of circumstances where Flash is useful (or at least grudgingly necessary), but it has been an overused crutch for far too long, and the more the iPad/iPhone ecosystem promotes movement away from Flash and to web standards, both well-established (CSS, JavaScript) and emerging (HTML5, H.264 video), the better. I know different people use the web in different ways: I rarely never play Flash-based games online; major video sites like YouTube and Vimeo are moving to supporting H.264 alternatives to Flash video (and I can live without the ones that aren’t). But I would challenge just about any user of the Internet to make the case that their experience, overall, is improved by these positive uses of Flash more than it is hindered by obnoxious Flash-based advertisements and non-standard Flash-based website UI.

Game changer

Charlie Rose loves the iPad. He called it a “game changer” at least 3 or 4 times last night. There’s been some dispute over the iPad’s potential impact, but I think those who are criticizing it on its technical specifics — the lack of whatever they deem it to be lacking — are completely missing the point. I read something recently (which I’ll link to if I manage to track it down again) that was talking about how the upcoming Windows Phone 7 interface would have been just as revolutionary if it had come sooner; the implication being that the major factor in Apple’s success was timing. To me, this so profoundly misses the mark that it’s hard to even take seriously. As much as I hate to use the word “paradigm,” Apple changed the paradigm with the iPhone interface. There wouldn’t be a Windows Phone 7 without the iPhone, nor a Droid, nor any of the other major advancements we’ve seen in “smartphones” since the iPhone was released in the summer of 2007. Yes, there were smartphones before the iPhone and they did a lot of the same things. Yes, Android was being developed for a number of years before the iPhone was released. But the iPhone changed both the perception and the reality of what a smartphone can do.

This is what the iPad will do, for a market — netbooks, or whatever fills the void between phones and laptops — that is even more anemic than the cellphone market was a few years ago. The hardware physically fills that niche perfectly, but the UI is what’s really revolutionary, creating a whole new, far more intuitive, natural, and fun way for people to interact with a technology device, with an underlying system that is more stable and worry-free — it just works — than any computer before it. And just think about the amazing things the 150,000-plus iPhone apps can do today: not even Apple envisioned all of the ways the iPhone would so quickly come to be used by people of all ages, for just about everything. This is what the iPad will do.

I didn’t want one, until I did

Most people see the iPad primarily as a device for consuming media, and to a large extent that’s true. The most strident complaints about its limitations seem to be coming from those who create media, and I can understand where they’re coming from… to an extent. But the iPhone has become a powerful tool for creating media, with its camera and photo manipulation apps; with creative drawing tools (good enough to have produced several New Yorker covers to date); and with a vast array of music creation apps, turning the pocket device… the freaking cell phone into both a musical instrument and a recording studio. Just imagine what the same kinds of innovative thinking can do with a more powerful processor and a much larger screen. You might never find Adobe Creative Suite or Pro Tools on the iPad, but that’s old world thinking. If you let go of the familiar (and far less intuitive to non-techies) trappings of mice and windows, of plugging in peripherals and navigating hierarchical file systems, and embrace the potential of a new way of interacting with a computer, a new world will open up to you.

Over the past several years, I’ve read numerous articles lamenting the fact that for all of the advances in computer hardware technology we’ve witnessed in the last quarter century, the basic GUI concepts have not evolved one bit from the first Macintosh Apple unleashed on the world in 1984 — and its concepts were largely the same as those developed experimentally at Xerox PARC in the late 1960s. When will we finally have a new way of interacting with computers? And where will it come from? It’s not much of a surprise that it came from Apple, and it’s here today.

No one’s listening

Comments. Over the past decade, the Internet has become inundated with them. Ten years, ago, the concept of a “blog” was considered cutting edge, by those who even knew what they were. Now, they’re everywhere, and their general format — a dated archive of topical posts by one or a small number of authors, each of which is trailed by a string of reader comments — has become the standard structure for most news and information websites.

But… comments. Oh, comments. They help turn a one-sided online journal into a thriving community of engaged individuals. Or not. By now, the true nature of most comment threads — a bunch of morons yelling “FIRST” followed by a bunch of even bigger morons ranting at each other without ever engaging — is so well-known, so obvious, that it’s boring even to mention and somewhere between tiresome and excruciating to experience.

So, how long will it be before comments go the way of Internet Explorer 6 and Flash? (Oops… have I spoken too soon?) I think the day is coming soon.

Comment ça va?

Many prominent blogs, Daring Fireball for instance, have long eschewed comments (although the persistent commenters have found a way around that). Others are following suit. And now, it’s easier than ever for frustrated readers to take things into their own hands and silence comments wherever they go online.

I can’t tell you how tempting shutup.css is. I’ve spent more time angrily scrolling through insipid comment threads than I care to remember… but it’s driven me to rant before.

Jumpin’ Jack Flash

But, just like Flashblock (or, for you Safari users, ClickToFlash), I think if I were to try it, I would quickly go back, no matter how annoying the comments are.

Don’t get me wrong: I feel the same way about comments as I do about Flash. Both have potential, but far more often than not they are just intrusive and annoying rather than useful. I tried Flashblock for a few days last week, and I was happy not to be intruded upon with overlaid advertisements, intro animations, and other bandwidth- and time-wasting nonsense. But turning off Flash also meant I had to click an extra button to watch most videos, and even worse, to upload files on my WordPress blogs… not to mention the client sites I’m developing that have JWPlayer and YUI Uploader embedded in them. So, as much as I want to be rid of Flash, and as content as I am not to have it in iPhone OS, I decided I needed to turn it back on in Firefox on my MacBook.

The same goes for comments, but I don’t even need to try shutup.css to know I wouldn’t want to keep it. Sure, I hate the comments on most news and tech sites I read, but I like them on my own site, and I like them on the sites that I want to comment on.

Turn it on again

So, with both Flash and comments, there are proponents and opponents. It seems in the recent dust-up over Flash (or the lack thereof) on the iPhone and iPad, the most fervent supporters of Flash are Flash developers, or people who just hate Apple. And with comments, well, it’s pretty obvious: people who like comments (or, more specifically, like to make them) want them, and just about everyone else doesn’t. It’s clear to me that comments rarely add value, and they often detract from the sites they’re on. On the other hand, allowing comments on my sites has for the most part added value to them, and, critically, commenting on other sites has driven traffic to my sites.

Does this mean that the act of commenting is purely, or at least primarily, an act of shameless self-promotion? Perhaps. I wouldn’t post a comment if I didn’t think the comment had merit on its own, but I’ve also consciously posted comments on some sites knowing that doing so was a prime opportunity to bring some of those sites’ readers over to my sites.

And in the end…

By now it is becoming increasingly apparent to me that both Flash and comments are facing their demise. At least someone at Adobe gets it: Adobe is not in the Flash business, they’re in the “helping people communicate” business. Flash has been a tremendous tool for allowing people to communicate online for a long time where open standards have lagged behind. But by its nature, Flash is fundamentally opposed to what the web is really about. Nobody “owns” HTML or CSS or JavaScript. They’re open standards, and they’re the foundation of the web. Proprietary, closed technologies limit the web’s growth. Flash requires a plug-in (even if just about every computer comes with it preinstalled); Flash files are a “black box” to search engines and text-based systems; the technology resides in the hands of a single company whose fate will dictate the fate of all of the content locked into the format, and the fortunes of the creators of that content.

Comments, too, are about helping people communicate. But it’s become clear that — more or less, depending on the particular site — few people who engage in comments on a blog are really all that interested in communication. If comments cease to be seen as communication and instead become an ugly, depressing wasteland at the bottom of web pages, then they’ll die off too.

Looking forward into a new decade, I am beginning to see the old alignments of the Internet as we’ve known it falling away. There’s a convergence of new standards, new devices, and new means of communicating. And this naturally means that certain older ways, “standards” or not, will fade from our day-to-day experience. I’ll certainly be happier to see Flash go than comments, but then again, I think I’ll do just fine either way. Let me know what you think. Or not.

You say you want a revolution? I say you want an iPad, even if you don’t think so yet

By now, lots of people have had lots to say about Apple’s latest revelation: the iPad. Opinions run the gamut from hating it (calling it a big iPod touch), to embracing it as a game-changing, revolutionary device (and calling it, essentially what Apple was working on all along).

The build-up

I’ve been thinking a lot about this device over the past couple of months, pretty much ever since I praised the litl. Even at that point, though I was skeptical that Apple was working on a tablet device, I suspected that, if they were, it would kill the litl. (And, somewhat presciently, I proposed an ideal target price of $499, which is exactly where the entry-level iPad is.)

A week earlier, I had also written about the debacle with the CrunchPad JooJoo. At that point I was still extremely skeptical that Apple was working on a tablet. At the time I wrote:

All the rumors say Apple’s tablet will be based on the iPhone OS, which seems more likely to me than a Mac OS tablet. But there’s too much about the iPhone “ecosystem” that just wouldn’t seem to translate to a larger tablet device, most obvious being the fixed display resolution. No way is Apple going to produce a device with a 10-inch screen and 480×320 resolution (even the original 1984 Macs had 512×384 displays), but by that same token, I don’t see the iPhone OS interface suddenly supporting multiple resolutions when there are over 100,000 apps all built around this one fixed resolution.

Of course now we know that Apple was working on a tablet, and it in fact does run all (well, most) iPhone apps. You can run them either at original size or pixel-doubled. But well before yesterday’s announcement, I had come to accept the general idea that Apple was working on a tablet device, that it would be based on the iPhone OS, and that, in many ways, it would resemble a “really big iPod touch.” At the same time, I also did come to believe that this was the device Apple had been aiming for all along; that the iPhone was just an intermediary step either to establish a market or simply to turn the huge amount of R&D that was going into this thing into a marketable product and bring some revenue into the project to help sustain the additional 3 years of work it required.

I’ve admitted before that up to the very minute of the iPhone’s unveiling I was denying that Apple would make a phone. I knew better than that this time around. The other half of that story is that, by the end of the keynote where the iPhone was revealed, I already desperately wanted one. I’m not so desperately craving an iPad (though I certainly would like one, especially based on first-hand reports of how amazing the user experience is), but that’s probably because I’m not the target of this device. But I know a lot of people who are.

What is a computer, and is that what you want?

Think about all of the things that a computer can do. And then think about all of the things you need to do to make a computer do the things you want it to do. Then think about all of the other things the computer can do that you have no use for. It’s all kind of a big headache, isn’t it? If you’re a “power user” like me — a programmer, a creator, a tinkerer — you’ll probably always want the flexibility, freedom, and power of a full-fledged computer. But think about people in your life who aren’t hardcore tech geeks. You probably have friends or family members who went kicking and screaming into the world of computing, most likely because it was the only reasonable way to access the Internet. The fact remains, plain and simple, that most computer users don’t need all of the things a computer can do; they don’t enjoy the hoops they have to jump through to get it to work; and, ultimately, they don’t understand their computers very well.

This is one of the expressed purposes of the litl: it’s a device techies can give to their non-techie relatives to do all of the basic computing tasks they want without constantly needing to call up the techie relative for support. But the litl falls short of that goal in two key ways: first, it is not designed to live in a household where there isn’t also a “real” computer; and second, at $699, it’s about $200 more than I think this kind of niche device should cost. There’s also an additional problem: it only offers WiFi, no 3G, so it’s not intended to leave the house — one of its creators even said as much in a comment here:

Why no 3G (at least not yet)? Wifi is still the best and most prevalent wireless networking technology at home where our device is intended to live (it’s not meant for road warriors). 3G has severe limitations when it comes to streaming video – wifi is superior here. Most home wifi is on all the time and the litl webbook is intended to remain on also. It’s a designer appliance for your home.

The litl is a designer appliance for your home. And yet it’s also supposed to be what you give Grandpa so he can look at the pictures of the grandkids that you’re posting on Flickr. You can’t have it both ways.

That dichotomy doesn’t exist with the iPad. The iPad has optional 3G, so you can take it anywhere (if you want), but most importantly, I can see the iPad existing by itself in a household that doesn’t own another computer.

Think about the things that most non-power users do with computers: They browse the web and send email. They listen to music and watch movies. They play games and read books. Occasionally they fire up Word (or whatever “lite” office suite shipped with their computers) to write a letter or do a little work from home. Guess what, the iPad does all of those things.

¡Viva la revoluçión!

I think the iPad revolutionizes the average consumer computer experience in a couple of ways. First, it eliminates all of the headaches of maintaining a computer or, for that matter, even learning how to interact with one. More on that in a minute. Second, it completely changes how computer users buy and install software. Everyone, even power users, hates the process of installing software. It’s tedious and slow, confusing and usually is presented in a convoluted and inconsistent way. But browsing the iPhone App Store is fun, and buying and installing software couldn’t be easier. The iPad brings that experience to general computing.

Back on the matter of maintenance and basic computer interaction: The biggest frustration I’ve had in providing support for friends and relatives who are not so computer savvy is the constant struggle they have with the basic interface of the computer. For people who haven’t devoted their careers to computing, like I have, the whole idiom of the graphical user interface (GUI) is perpetually confusing. What’s a window? What’s a cursor? What’s a menu? What’s a dialog box? What’s a scrollbar? I stare at a computer screen all day long; these things are as intuitive to me as the objects I deal with daily in the physical world. But that’s not the case for everyone. Even the process of using a mouse to move a cursor and interact with on-screen objects — arguably the most fundamental aspect of the GUI — is a level of abstraction a lot of users balk at. But the iPhone interface changed that. You acutally touch things with your fingers, move them around, pinch and stretch them. It’s fun, it’s intuitive, and it’s dead simple.

Sure, touchscreen interfaces have been around for years, and Windows-based touchscreen tablets have been available (if not exactly common for most of the last decade. But the GUI has essentially remained unchanged for over a quarter of a century. Just allowing a user to drag the on-screen cursor with their finger rather than with a mouse does not revolutionize the interface. Apple has reinvented the computer interface from the ground up with the iPhone and now the iPad. You were waiting for that inevitable revolution that would finally replace the GUI? Well, here it is.

And, for the geeks among us…

There’s one other, much more technical, reason why I am totally geeking out on the iPad though: HTML5. HTML5 is the “next generation” language of websites, promising new levels of interactivity and integration of multimedia into web pages that have up to this point been a tangled mess of proprietary and inconsistent plug-ins. HTML5 has been on the radar for years, but we web developers have had to drag our feet due to the glacial pace of adoption of new browsers. As long as a majority of users were still running Internet Explorer 6 — an ancient web browser that even Microsoft itself has by now denounced — our hands were tied regarding making full use of these new technologies. But the surging popularity of mobile devices, most importantly the iPhone but also Android-based smartphones, has opened up a huge new market where IE6 is irrelevant and HTML5-friendly browsers are the norm. Sure, you could use Firefox, Safari or Chrome (the only options for Mac users, and many smart Windows users have already made the switch), but here’s a brand new computing platform that brings all of these capabilities to a full-resolution (1024×768) screen.

Apple has wholeheartedly embraced HTML5 with the iTunes LP format, and it’s at the core of iBooks. Up to now, electronic books have typically been PDF-based, or some other, similar proprietary format. PDF is great, but it’s also an old format, and is fairly limited. HTML5 provides an easy way for content creators to enhance their presentations with fully-integrated audio and video, not to mention the interactive possibilities that CSS3, JavaScript, and offline data storage allow. This format makes it possible to create full, standalone applications as easily as creating a website (which, believe me, is easier than creating a full-fledged application in a traditional programming language). Sure, others have embraced this kind of web model, notably Palm, but only Apple has just the right mix of factors — market share, hardware/software integration, and, let’s face it, vision — to push something like this in the way to make it catch on.

You want it, you just don’t know what “it” is yet

There’s plenty of criticism of some of Apple’s practices — the iPad, like the iPhone, is a closed system; there’s DRM all over it; Apple is the gatekeeper for just about anything that goes in or out of the system. I can’t argue with those criticisms, other than to say, no one is forcing you to buy an Apple product. But those limitations are a trade-off for what Apple’s products offer: a uniquely integrated, incredibly polished, revolutionary experience. And, despite Apple’s lockdown of the top layers of the system, there’s openness at the core: Mac OS X and iPhone OS are based on an open source core and Apple is aggressively promoting the use of open standards like HTML5/CSS3 as the way to do things. Could it be more open? Of course it could. But then it wouldn’t be Apple. Open platforms are chaotic platforms. If you want to tinker with the system, or you just fundamentally believe in the principle of open software, then go get a Nexus One (and try to convince yourself that Google, deep down, believes in open systems too).

The arguments over open platforms could go on all day, but in the end I think it comes down to this: it has been Apple’s (and, largely, Steve Jobs’) vision for amazing — in Jobs’ long-echoed words, “insanely great” — technology devices that has driven these markets forward throughout the past decade. Do you think MP3 players would be where they are today if Apple hadn’t produced the iPod? It wasn’t the first MP3 player, but it fundamentally changed what an MP3 player is. Do you think we’d be talking about “apps” and that everyone would be carrying the Internet in their pockets if Apple hadn’t produced the iPhone? It wasn’t the first smartphone with Internet access, but again, it fundamentally changed what a smartphone is.

And now, the coup de grâce: the iPad. I won’t go so far as to say it changes what a computer is, on a fundamental level. But it creates something new: a consumer device that is a permanent replacement for consumer-grade computers. It’s what most people have wanted all along, but settled for a computer because what they wanted didn’t exist. Yet. And now it does.

The good, the bad, and the Apple

Ultimately, is it “all that”? I think the experience of using it, and what it represents for transforming the consumer computer industry, transcends what a list of its tech specs and features can convey. But in basic, concrete terms, it pretty much ended up being exactly what I was anticipating by now in terms of what it looks like, what it does, and how you interact with it. I was least surprised by its name — I had long suspected (though it’s easy to claim so after the fact) that it would be called the iPad, connotations of feminine hygiene products notwithstanding. There were, however, three things that genuinely surprised me, two good and one bad:

The good: 1) Price. I was hoping for, but not expecting, a price under $500. Granted, that’s just the entry-level model; they run as high as $829. But the fact that you can get an iPad for $499 is huge. 2) The A4 chip. I had absolutely no expectation that Apple would be developing a custom processor for this thing; it was not on my radar whatsoever. But from what I’ve read, this custom-built, highly-optimized chip is the key to the iPad’s blazing speed and overall awesomeness.

The bad: AT&T is the exclusive provider of 3G access. Seriously? This is a bit of a double-edged sword. I’m glad 3G is an option at all; the iPad easily could have shipped as a WiFi-only device, like the litl. But I, and many others, expected yesterday’s announcement to include Apple’s long-awaited untethering* from AT&T for the iPhone, and, needless to say, for the new iPad as well. Boo.

The Apple: No Flash. OK, this didn’t surprise me one bit, so I didn’t mention it above when I cited three surprises. But I needed to complete the pun I started in the header of this section, so here you go. No Flash. Never had it, never will. And like John Gruber (and for exactly the same reasons), I believe that’s a good thing. I recognize the seeming contradiction of criticizing Adobe for a closed system like Flash while praising Apple’s own closed systems, but there are some fundamental differences that, well, make all the difference. Apple’s closed systems are at the hardware and (locally-installed) software level. Adobe’s closed system is on the Internet — in the “cloud” in contemporary parlance. Adobe’s closed system is something that floats around out in the otherwise open, standards-based world of the Internet. It’s a way for Adobe to wall off part of the Internet in a bubble that it controls.

This is bad for a hardware maker like Apple, because as Gruber says, it prevents them from being able to fix problems caused by the fact that Adobe’s bubble isn’t sealed up quite as tightly as it should be (and, of course, it is a back door to allow people to bypass Apple’s systems). It’s also bad for us content creators because we’re beholden to Adobe to get our content online (in the form of having to buy Adobe’s high-priced software), and we’re dependent upon Adobe’s continued existence (and goodwill) to keep things running. What if Adobe goes out of business, or just abandons Flash? What happens to our Flash-based content then? HTML and JavaScript will never go out of business, because there’s no single corporate owner acting as gatekeeper over those technologies. And that is a fundamental difference between what Adobe is keeping closed vs. what Apple is.

* Pun intended, and kudos to you, geek that you are, for picking up on it.

CakePHP Auth component, Flash and Internet Explorer… a deadly combination

OK, it’s not really deadly at all… other than that it will kill your CakePHP session and log you out.

My CakePHP-based CMS uses YUI Uploader, a Flash-based file uploader utility. It’s much better than the default HTML file uploader, because it supports a fully CSS-customizable progress bar and multiple file uploads.

It’s pretty slick, even though I did tear some hair out earlier in the year trying to get it integrated into the CMS. All went well for several months, until one particular client, using Windows Vista and Internet Explorer 8, discovered a showstopper of a problem: whenever you uploaded a file, all would seem well until you went to save your changes and you’d get kicked back to the login screen, without the changes being saved. Bad news!

I did some diagnostics and determined that, yes indeed, the CakePHP session was in fact being dropped as soon as the Flash process finished queuing the file uploads (an AJAX-based process), before you actually click the “Save” button… but since there’s nothing else happening dynamically on the page, it wasn’t obvious that the session had been killed in the background.

Anyway, some research led me to a perfect explanation of the problem, and an equally perfect solution: Flash is sending a different user agent string, which was resetting the CakePHP session. I’m still not sure why it was only affecting Internet Explorer, but at any rate, a simple change to the app/config/core.php file solved the problem in a snap. The critical line:

Configure::write('Session.checkAgent', false);

I suppose by removing this line, the application is ever-so-slightly less secure, but there should be enough other precautions in place that removing the user agent check as part of the process of validating a session should not pose a significant security risk.

Assembling the web designer’s toolkit

Web designers need a lot of tools at their disposal. Mostly this comes in the form of commercial software. If you don’t own the full Adobe Creative Suite, you at least have Photoshop (or, if you’re a FOSS contrarian, GIMP). If you’re on a Mac, you probably have BBEdit (or its free sibling, TextWrangler) installed, and if you’re on Windows… well… I don’t know. Does anyone who takes themselves seriously as a designer use Windows? I’m sure we’ll hear from them in the comment section.

But what I’m talking about here is not the commercial software applications you have installed on your desktop. I’m talking about the free libraries you probably need these days to get a “Web 2.0″ site up and running.

I’ve been finding myself lately starting each new project by cobbling together the same set of these libraries, so this morning I decided to save myself some time on my next project by putting together a template set with all of them in place. Once I’ve had time to review all of the requisite licenses, I may post the complete package in a zip file here, but for now, here are some pointers to get you started.


Where better to start than with this easy-to-use, infinitely extensible JavaScript library? I can’t imagine working without jQuery anymore. It makes just about everything JavaScript-related several orders of magnitude easier to work with. And then of course there are a handful of plug-ins I like to bring along for the ride: color, dimensions, em, hoverIntent, lightbox, mousewheel and jScrollPane. (Actually, several of those are required just for jScrollPane, a complex and tricky-to-implement plugin, but if you need custom scrollbars, it’s worth it.)

Lightbox for jQuery

I especially want to call attention to Lightbox for jQuery, based on the original Lightbox for Scriptaculous (see below). It’s a great way to add some nice polish to your site. Whenever a user clicks on a thumbnail to see a larger version of an image, you no longer need to subject them to an ugly and confusing plain browser window with the image in the upper left corner, or trigger a new pop-up window to appear. Lightbox uses CSS and JavaScript to elegantly apply a translucent mask over the existing page and present the image in a centered layer hovering over the rest of the page, in the same browser window. Slick!


On the other side of the JavaScript library fence, we have Scriptaculous, built upon prototype.js. It’s not quite as slick or as powerful as jQuery, but it handles AJAX without additional plugins. Honestly, I haven’t tried much AJAX with jQuery, but since CakePHP‘s built-in AJAX helper relies on Scriptaculous, I’ll probably still have a place for it, for a while. The snag is that jQuery and Scriptaculous, with their default settings, don’t play nicely; they both want to use the $ variable for themselves. But jQuery’s noConflict() method makes it easy to get these two powerhouse libraries to get along.


This is my least favorite of the tools described here, for two reasons: 1) it’s essentially just a patch for Internet Explorer without adding any new functionality for general use, and 2) it reminds me that Internet Explorer exists.

That said, it’s indispensable. The issue here is simple: IE6 doesn’t support a lot of “modern” features that other browsers do, and that are becoming increasingly essential to how the Web works, but unfortunately, IE6 is still one of the two most-used browsers in the world (the other being IE7). Firefox is growing rapidly in popularity; Safari is ubiquitous among Mac users; and the Web is increasingly experienced via mobile devices, but for now, IE is still king of the hill, and a large percentage of IE users can’t, won’t, or don’t even realize they can upgrade beyond version 6.

IE6 can be taught new tricks, however, and that’s the purpose of IE7.js. It’s a JavaScript library that “teaches” IE6 to behave more like IE7, fixing some common and infuriating CSS bugs, adding support for alpha channel transparency in PNG images, and various other “magic” that pretty much all just takes place seamlessly, behind the scenes. Just call this library and let it do its stuff.


If you’re using Flash at all, it’s helpful to bring along SWFObject, another JavaScript library whose sole function is to relieve the attendant headaches of working with <object> and <embed> tags and the suckitude of Internet Explorer browser inconsistencies.


In the past, whenever web designers needed text to appear in custom fonts (that is, any fonts that are not already installed on the user’s computer), there was only one option: make an image out of it. Maintenance nightmare. Enter sIFR, a JavaScript-and-Flash-based solution. You’ll still need a copy of Adobe Flash (the full application, not the browser plug-in) to make it work, but the end result is your font encapsulated in a SWF file, and some very clean JavaScript that seamlessly swaps your custom font in place of regular, plain vanilla HTML, and degrades gracefully to a standard font if the user is lacking either JavaScript or the Flash plug-in. And it’s fully semantic and validating.

The only downside of sIFR is that finding the latest version is a bit of a mess. But here’s a good place to start.


And finally we come to TinyMCE. At last we have a decent solution to the dilemma of allowing users who probably don’t know HTML to enter styled content on your site. It’s not without problems, especially where pasting from Microsoft Word is involved, but TinyMCE is a great WYSIWYG solution, a word processor in a browser window.

Introducing the Room 34 Music Player

OK, I didn’t create the music player myself. It’s the freely available, Flash-based XSPF Player. But it’s a pretty slick tool to create a custom music playlist on your own website.

So now I have a convenient link you can click on to open up my music player in its own little pop-up window. It’s preloaded with all 23 tracks from the five LP/EP releases I’ve put out this year. (Yes, five! I’ve been quite prolific. I’ll leave it to you to weigh the “quantity vs. quality” issue.) And, for future reference, there’s a link to it right under the “Room 34 CDs and MP3s” heading in the sidebar on every page.