What do Star Wars, David Holsinger’s Easter Symphony, and an episode of The Office have in common?

A confession. As a kid, I didn’t like Star Wars. You’d think I was in the ideal target market for it. I was 9 when Return of the Jedi was released in 1983, and I saw both Empire Strikes Back and Return of the Jedi in the theater. But for some reason it just didn’t appeal to me. I wasn’t into guns and swords, even if they were made out of lasers, and I found the plots impossible to follow.

As an adult I did eventually develop an appreciation for the original trilogy, however, and in particular I think The Empire Strikes Back is a genuinely great film. But overall, I still felt like they didn’t totally live up to the hype (especially Jedi with those godawful Ewoks).

And then the prequels happened. Lifelong fans of the series were as overjoyed before the prequels were released as they were infuriated after. Even as a kid who didn’t care at all about Star Wars, I remember getting swept up in eager musings on the playground as kids speculated about what the story before the story was all about. And then Lucas went and made the damn things.

The general consensus among Star Wars lovers was that the prequels sucked, and were nowhere near as good as the originals. But here’s the thing: as someone who didn’t religiously memorize every minute aspect of the original trilogy and embed it into the very fiber of my being from childhood, I didn’t really think the prequels were that much worse than the originals. They still had inscrutible plots, hackneyed dialogue, and lots of lasers and weird sound effects. I won’t quibble at all with the hardcore fans over George Lucas and his abominable, incessant tampering with the originals. But I will stand by my argument that the prequels are not that much worse than the originals because, really the originals weren’t that great to begin with.

Band geeks are like regular geeks

Anyone who was a band geek in the ’80s or ’90s (or, presumably, still today) will recognize the name David Holsinger. He’s one of the most famous and prolific living composers of music for band/symphonic winds/wind orchestra/whatever you want to call it. But outside of this arcane world he is largely unknown, as he rarely (if ever) writes for string orchestra, which is apparently where all of the “serious” composers dwell. Whatever the case, his technically demanding compositions are a staple among the more skilled high school and college wind ensembles, and he is revered by band geeks in much the way George Lucas is revered by regular geeks.

For years, Holsinger’s most highly regarded piece of music was called “The Death Tree,” which he composed in 1986 and originally envisioned as the second movement in his three-part Easter Symphony. The only problem was, much like Lucas and the legendary Star Wars prequels, he never wrote it. As with Star Wars, the untold story took on mythical status, and fans of his work built up impossible expectations for its excellence, should it ever come to exist.

My college band director was one such enthusiast, and while I was a student he commissioned Holsinger to finish The Easter Symphony. I was a junior, first chair clarinet at the time, and it was unbelievably exciting to be a part of something so awesome. David Holsinger traveled to work with us directly on the piece frequently during the year leading up to its premiere. I even got to pick him up at the airport on one of his visits, took him to Wendy’s (his choice) for lunch, and picked his brain on the hour-long drive to our small-town campus. He conducted the first public performance himself. In fact, if you can get your hands on a CD of that premiere, you can even hear my own indelible mark on the recording, as I utterly destroyed the final note of “The Death Tree” on an impossible-to-tune E-flat clarinet. (If you’re not familiar, the E-flat clarinet is to the regular B-flat clarinet as the piccolo is to the flute. And just as impossible to play in tune.)

I had never played (nor even heard) “The Death Tree” prior to our first rehearsals for The Easter Symphony. I was well familiar with Holsinger’s work, of course, but this particular piece had been too challenging for my high school band. So I approached “The Death Tree” with virgin ears, rather than with the cherished nostalgia some others had for it, much like how I came to like Star Wars as an adult. I liked it, but I hadn’t embraced the legend.

When the first partial scores for the first and third movements of The Easter Symphony began arriving in our rehearsal room in Minnesota, laser printed and mailed directly from the composer in Texas, there were various grumbles of disappointment. I enjoyed it all equally, but others complained that the new movements were nowhere near as good as “The Death Tree.” The legend had been built up out of all proportion, and it was simply impossible for David Holsinger (or anyone) to deliver a piece of music as mind-blowing as people were demanding. It’s not that The Easter Symphony wasn’t good. People’s expectations were unreasonable.

Just a cookie

On a recent episode of NBC’s comedy The Office, Robert California (James Spader), the intimidating new CEO of Dunder Mifflin’s parent company, is sitting in the conference room with the Dunder Mifflin employees, leading a brainstorming session to figure out ways to increase the company’s profitability. After a number of lackluster ideas from the usual suspects — Ryan (B.J. Novak) especially, in a classic moment of self-absorbed douchebaggery — the affable oaf Kevin (Brian Baumgartner) raises a complaint about the snack vending machine in the breakroom. The comment could be taken at face value, or it could, as Robert California takes it, be a metaphor for a profound insight into improving Dunder Mifflin’s core business.

Robert California ends up spending the entire day with Kevin, listening to and attempting to decipher Kevin’s cryptic food analogies, until, ultimately, he realizes that Kevin was really just talking about cookies the whole time. No deeper insight, no profound meaning. The Kevin he thought he was spending the day with never really existed.

Where was the failure here? In Kevin, for not living up to unreasonable expectations? Or in Robert California, for having unreasonable expectations in the first place?

I’m not saying that George Lucas and David Holsinger are like Kevin. But I am saying that maybe we’re all a bit too much like Robert California.

Answer: They’re all just cookies.

On the ugly history of early open source CMSes (or why, surprisingly, I did not enjoy listening to Merlin Mann and John Gruber together in a podcast)

It was a perfect idea, or so I thought. Two of my favorite personalities from 5by5 podcasts were going to do a show together: John Gruber (of The Talk Show and Daring Fireball) was going to appear on Merlin Mann’s Back to Work podcast!

Unfortunately, when Merlin Mann’s fire met John Gruber’s ice, the result, like Derek Smalls, was lukewarm water.

Or maybe it was just because they spent the first several minutes of the podcast — all I managed to get through in one sitting (though to be sure, it’s all that’s relevant for this post) — talking about the early days of open source content management systems (CMSes). It maybe wasn’t really their fault. I reflexively dry heave when I hear words like PostNuke or Plone. They’re names I haven’t thought about in years, and haven’t thought about positively… well… ever. I dabbled with both of them in the early early days of CMSes, and quickly ran away.

But then Gruber and Mann (sounds like a comedy duo from the ’60s) got into something that really stings: they started professing love for Drupal (Merlin) and Movable Type (John). I cannot tell you how strongly I dislike both Drupal and Movable Type.

Gruber loves him some Movable Type

It’s been a point of pride for me since becoming a loyal Daring Fireball reader that I do not like Movable Type. The fact that Gruber uses Movable Type for Daring Fireball and is a vocal supporter of the platform, and the fact that I loathe Movable Type, is something I use to prove that I have not just become a devoted Gruber acolyte. I still think independently; I just happen to agree with him on almost everything he writes about.

One of Gruber’s biggest reasons for liking Movable Type, apparently, is the fact that it doesn’t serve content from the database; it publishes the entire site out to static HTML files. This is great for server performance under heavy loads, and has probably allowed him to continue to run Daring Fireball with a much lower-powered server than he’d need if he were using a database-intensive CMS. But in my own experience it also makes the process of using Movable Type a chore. Perhaps that’s because I’ve never actually used it directly myself; my work with it has been limited to setting up templates/themes/whatever-they-call-them-in-MT for other people. MT’s tools for working with stylesheets and templates are cumbersome, MT’s proprietary scripting language is tedious for “non-natives” like me, and having to republish the entire site to see changes to the templates is a real pain in the ass.

On the other hand, Gruber loves to rip on my personal favorite open source CMS (though surely he doesn’t know, nor would he care, that it’s my favorite), WordPress. And it is precisely because WordPress doesn’t publish static pages the way MT does that he hates it so much. He commonly refers to sites that crash under the weight of his referral traffic as being “fireballed” (clever), and sites running a stock installation of WordPress are notorious for this. But there are several caching plugins available for WordPress that can greatly boost its ability to handle peak traffic, in a much less intrusive way than MT’s static HTML publishing process. My plugin of choice these days is Quick Cache. The plugin’s tagline says it all: “Speed Without Compromise.” (I’m not-so-secretly hoping that Gruber links to this post on Daring Fireball, but then again, I’m not sure I want to risk being proven wrong.)

Merlin and Drupal, sittin’ in a tree

And then there’s Merlin, and Drupal. Oh, Merlin. Again my experience with Drupal is fairly limited. I tried using it to run this site for a brief period (which you can probably find if you dig in the archives… I believe it was around early 2006). I very quickly gave up. Drupal’s admin interface was clunky and unintuitive, but it was the fact that my site was almost instantly drowning in comment spam that killed the deal for me. In the time since then the only work I’ve done with Drupal has been focused on helping people move their sites off of it, but the fact that so many people want to do that says enough for me.

I find two major issues with a lot of open source CMSes (like Joomla and MODx, to name two others I’ve tried in the past) that are perfectly exemplified by Drupal and Movable Type.

First, unless you really know what you’re doing and put a lot of effort into it, your Drupal site is going to look like a Drupal site. (Yes, it’s true that as I am writing this I’m using a more-or-less stock WordPress template, so my site looks like WordPress, but that’s not the point; it’s easy to build a completely custom WordPress theme from scratch with little more than basic HTML/CSS skills.)

Second, and I touched on this with Movable Type, many of these systems have their own custom scripting languages or other idiosyncrasies to be learned, such that learning to use these systems is not substantially easier than just learning to code HTML/CSS.

Of course, I know how to code HTML and CSS. That’s my job. I have “visual” mode disabled in the editor in WordPress. A CMS exists not just to shield you from writing code, but to make it easy to manage, organize, and re-organize large amounts of site content, while maintaining a consistent look and feel. But a good CMS goes beyond that. A good CMS puts the power to manage the website in the hands of people who don’t know, and don’t want to know, how to write code.

A little background

As I listened to Merlin Mann and John Gruber wistfully recall the glory days of crappy CMSes, I wondered why they had devoted so much time and attention to learning and working with those systems, while at the same time I had rejected them out of hand. (I also wondered why they were at roughly the same place in their careers as I was at the time, and now they’re “famous,” but that’s beside the point… or maybe not… read on.) Then it hit me: I didn’t like those CMSes because I had already built a few of my own and I liked them better.

Now, it’s true that I liked my CMSes better partly because, well, I had built them. And I think Merlin was spot-on in the podcast when he said that most systems worked great if you thought just like the developer. (Specifically, he said that Basecamp works great if you think like Jason Fried.) That’s a great point, and one I should not overlook. But there’s another aspect to this. Most of these open source CMSes are developed by online communities of… well… geeks. Sure, they take feature requests from users (I assume), but ultimately the main people giving the developers feedback on how the systems should work are other developers.

I’ve built a number of CMSes over my career. They’ve all been built to meet specific client/user needs, and always in direct consultation with those clients/users. Has that made them perfect, or made me impervious to casting my CMSes in my own image? Of course not. But it’s made it harder to hide away in my geek cave and crank out systems that only other geeks can use.

The first CMS I built was in the heady days of early 2000, just before the dot-com bust. I was working for a certain big box retailer’s dot-com subsidiary. (This was back in the days when certain big box retailers believed they could spin off dot-com subsidiaries as independent companies that issued their own stock and everyone got rich yay!!!)

The company had invested 7 figures in some colossal enterprise CMS that was going to take several months and thousands of hours of consultant time to customize to our needs. In the meantime, our staff of writers (yes, we had writers producing informative weekly articles for each “department” of the online store) would deliver their content to me and to the one other front-end developer who was good at HTML (I know, right?), and we were to manually convert them into HTML and put them into the static pages of the site. (As front-end developers, we were strictly forbidden any database access. Because, you know, we were dangerous. We might put HTML in it.)

After a few weeks, I decided this was a ridiculous arrangement, so over the weekend I scraped together a quick-and-dirty, database-free CMS that would allow the writers to enter their content directly. The system would merge their content with prebuilt page templates, and save the output as static HTML pages on the server.

And so a career as a CMS developer was born.

At my next several jobs, I built more CMSes, honing the process each time (and always starting from scratch, since my previous work was the IP of my former employers). And eventually, when I went out on my own in 2008 (not to mention my first failed attempt at full-time freelancing, in 2003, which is going to be the subject of a future post), it was natural that I’d create my own CMS, and this time since I own the IP, I can keep building on it and expanding its capabilities.

Does my CMS have the polish and ease-of-use of WordPress? Probably not, although I’ve had more than one client (more than two, even!) tell me they prefer my CMS over WordPress. But the stock version of WordPress has a fairly limited scope of capabilities (you’ve got your pages and you’ve got your posts and, hey, why would you need anything else?), and my CMS is more modular, with a number of other capabilities (built in event calendar with registration, ecommerce, custom forms, etc.) that can be turned on or off to suit the needs of the client. WordPress is highly extensible with plugins, of course, but I find that, in short, if a client needs a custom solution, they need a custom solution. My CMS is a shortcut to a custom solution.

So that’s why!

Along this mental journey through the littered landscape of dead (or dying) content management systems, I learned a few things. I learned why I never fell in love with those early CMSes. And I think I probably also learned why I’m not “famous” in the field of tech bloggers/podcasters. I’ve been too busy reinventing my own wheel for much of the past decade to have the time to devote to self-promotion (and I don’t mean that as a slight against Gruber and Mann) necessary to achieve that level of recognition.

Fiddly

I got up this morning and, like on most mornings, one of the first things I did was brush my teeth. It’s a simple process, just part of the minutiae of daily life. But as with so many of those little things we do every day, it’s a less-than-ideal experience. After fumbling to pull the toothbrush from the cup — where its bulbous, rubberized handle was wedged against the bulbous, rubberized handles of the other toothbrushes necessary for a household of four — and nearly dumping them all into the sink along the way, I took my frustration to Twitter:

It got me thinking about a recent post on Daring Fireball, where John Gruber expressed his frustrations that some people — even Apple Store “geniuses” — were telling iPhone owners that they need to occasionally force-quit all of the apps in their recently-used items tray. He followed up on that post on his podcast, The Talk Show, where he described the experience of operating systems where you are expected to manually monitor and adjust their states as being “fiddly.”

I’ve been thinking about that word, “fiddly,” a lot since then. I think it applies to a lot more than smartphone OSes. I’ve spent a great deal of my life dealing with overwhelming frustration at the clumsiness, the fiddliness, of everyday objects: cheap plastic toys that break easily, things that stick to other things when they shouldn’t or don’t when they should, tools that cannot adequately perform the tasks they are expressly intended for, etc.

As someone who’s not inclined to tinker with objects, much less invent solutions to their shortcomings, that frustration usually just burns off as simmering rage. But as I pondered the nature of fiddliness, and the ideal of the iPhone as a “non-fiddly” object, a couple of thoughts occurred to me:

1. It is the purpose of design to reduce the fiddliness in the world.

2. Very few makers of physical objects today follow #1.

Gary Hustwit’s documentary Objectified is focused on the design of everyday objects, and those who have excelled at creating objects that are, for lack of a better word, as non-fiddly as possible. Two people featured in the documentary are Dieter Rams, the legendary German designer who led Braun’s industrial design team in the 1950s and 1960s, and Jonathan Ive, the head of Apple’s industrial design team today. Both Rams and Ive share a passion for making objects that work. Form not only follows function, form is function. It’s a seamless integration of purpose and style that makes the objects a delight to use.

And that’s a very rare thing today, indeed.

Graphic Design: Now in Production

Link

Graphic Design: Now in Production
I finally made it to the Walker Art Center on Saturday to check out this great exhibit, but my ability to enjoy it was hindered somewhat, being accompanied by an enthusiastic 5-year-old who wanted to make felt puppets. SLP and I will be going back today, sans les enfants, so we can take it in at an adult’s pace. The exhibit closes on January 22, so if you haven’t seen it yet, you better hurry!

Remove the info “bubble” from embedded Google Maps

What web designer/developer hasn’t had to embed a Google map at some point? If you’ve noticed, like I have, that recently it’s become impossible with Google’s generated embed code to keep the huge white “speech bubble” of location information from appearing (and always being cut off at the top) on your map, here’s an easy (if slightly tedious) solution, courtesy of Harry Bailey:

To remove the pin, you can now add &iwloc=near to the end of the iframe src attribute.

In the process of working out this issue I resolved another on my own. If you want to change the default zoom of the map, look for the &spn query string variable in the Google Maps URL. In my particular instance, it was zoomed in way too tight, with a value something like this: &spn=0.0006125,0.0006125. The exact value you’ll want to use will probably vary, so experiment, but I was able to get good results with: &spn=0.04,0.04

(And as a final aside… I hate how query strings now have to have & as the delimiter instead of just &, for reasons I don’t even totally understand — something to do with XML, I guess — but that I feel underscore the fundamental flaw of ampersand codes in general. A much less commonly-used character should have been chosen if we needed one for embedding extended characters. And now with the proliferation of UTF-8, we shouldn’t really need ampersand entities at all!)