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.

jQuery

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!

Scriptaculous

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.

IE7.js

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.

SWFObject

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.

sIFR

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.

TinyMCE

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.

Enjoy!