The Blog Is Dead, Long Live the Blog

Now with tagging, enhanced searching, and better accessibility.

The more eagle-eyed among you might have noticed a few (not so) subtle changes that have appeared on Opus within the last week or so. This represents the culmination of a major process that has been underway for several months, and now that the dust has settled (for the most part), I thought it might be wise to explain a few things.

First, the obvious things. You might notice that, for the first time in a number of years, there are no longer individual sections for music reviews, movie reviews, the HiFi, etc. Instead, everything has been placed in the ubiquitous blog (with a few redirects in place to help folks out, natch). But why? Well, simply because Opus is, in my eyes, no longer a webzine.

When I first began Opus years ago, I had the notion that it might evolve into a webzine à la Neumu. And for awhile, Opus was on track to become something like that, such as when we were doing our Cornerstone specials and whatnot. But for various reasons, most of them having to do with developments in my own life, that era has passed.

However, I was reluctant to make the switch. Somehow, just running as a blog somehow seemed less ​“legitimate”, a blog entry seemed less legit than a ​“real” music review. It doesn’t sound like a big deal, but it actually made it more difficult to update the site. I was still working under the mindset of trying to publish ​“issues” of the site — which meant I sometimes felt less free about letting content rip on the site.

In reality, the majority of the updates were much shorter, timely, and random — just like your typical blog. The lines behind a ​“real” music review and a blog entry about a particular CD became increasingly blurred. But after thinking things through, I finally decided to grow up, shove it all, and just make the switch.

Naturally, things are about to get pretty geeky, so consider yourself warned.

Counting the Cost

The first step was to incorporate a much more streamlined design and structure (which I’ve already written about). The design has been tweaked a bit with this latest revision, with the addition of the search bar (more on that later) and even more whitespace. But the same basic design remains.

The second part was to transfer all of the reviews into the blog. Since the database tables for the reviews and the blog had totally different structures, I couldn’t just integrate them with some clever queries, PHP coding, and whatnot. I could have create some additional tables in the database that would tie everything together, but that seemed like more work than necessary, and the database is already bloated enough as it is. Instead, I decided to consolidate everything — the blog, music reviews, movie reviews, etc. — into the existing blog table.

Unfortunately, that meant that some functionality would be lost in the transition. For example, it would no longer be possible to sort music reviews by artist, or movie reviews by genre. That information had been kept in database tables that were ancillary to the primary review tables. There was no easy way to integrate it into the central blog table without doing even more database hackery than I was comfortable with.

But the more I thought about it, the more I realized that I wouldn’t necessarily have to lose all of the site’s searching and organizational functionality. In fact, I could tweak and even improve it. And so I began developing a tagging system for Opus.

Joining the New Taxonomy

I realize that tagging has become the big thing, thanks to sites like Flickr and Del​.icio​.us. However, this wasn’t just a case of me hopping onto the latest interface bandwagon. Rather, it allowed me to get around a potentially thorny issue.

You see, the blog entries are grouped by category. Obviously, all of the music reviews would go into the ​“music reviews” category. But what if I wanted to find a way to bind together all of the entries dealing with, say, the glorious band Slowdive, regardless of their category?

Tags allow me to do just that. I can post Slowdive-related reviews, news, interviews, etc., tag them all with ​“Slowdive”, and there’s now a handy way to find everything Slowdive-related in the blog. Once you’ve pulled up all of the Slowdive-tagged entries, you can then further filter them by their categories. All of these entries have been tagged with ​“Slowdive”, and there’s little dropdown menu at the top that allows you to filter them by category.

By default, the tags are displayed for each individual entry. I’ve hidden the tag list on the homepage, just to keep the clutter down to a minimum. But if you want to see the tags, simple click on the — surprise! — ​“Tags” button for each entry and the little tag menu will drop down.

It’s not a perfect solution. For example, tags are worthless if you assign too many to a particular entry (I try to keep the number of tags to a particular entry down to three or four). But considering the breadth of content that exists on Opus, they seem like a nice, flexible solution (and much better and less limiting than coming up with hundreds of new categories). Plus, I can say my site uses the same technology as Flickr, would should get me some geek cred. (Right?)

And so, everything has become a blog entry — with the notable exception of the Elsewhere links. Those still exist in their own little section of the database. At some point, I’d like to integrate them as well, but I’m willing to let them exist in their own for now.

One reason why I haven’t integrated them yet is that they’ve got their own set of categories, which makes simply dumping them into the blog table problematic, because then you have to work around matching up the Elsewhere links in one category with the corresponding blog category. It can be done, so don’t be surprised if it happens in the near future. (If I’d been smart, they’d be using the same category set as the blog, but ah well… live and learn.)

Search, Search, Search

In addition to the tags, I’ve also added a search field at the top of the layout. In the past, because of Opus’ divided database structure, it was difficult to do a comprehensive site search and make it easy to use (which is why, at times, I’ve relied on Google). But since all of Opus’ content can be found in one of two database tables, site-wide searching is a whole lot easier to do, and to make usable.

Now, if you enter a search term — let’s keep with the Slowdive motif, alright? — you’ll get a nice handy page of results, which you can then filter by blog category. Furthermore, there are three tabs across the top of the results — ​“Blog Entries”, ​“Elsewhere Links”, and ​“Tags” — which allow you to quickly search across the different facets of the site.

I Like It Strict

Another thing that I’m proud of is that the site should now validate as XHTML 1.0 Strict. While reading Robert Nyman’s article ​“HTML or XHTML?,” I was struck by this statement: ​“transitional doctypes are exactly what the name implies: a doctype for a phase of transition, not meant to be used permanently.” The more I thought about it, the more it made sense, and so I went about converting everything to XHTML’s strict variant (with a little JavaScript here and there to smooth some things out).

It was quite a bit easier than I’d expected, with the only problem being the forms (I needed to place individual form fields within a fieldset tag). Of course, some pages won’t validate due to the content on them, but the core layout code should validate just fine.

If You Don’t Use Safari, You Can Kiss My Butt

I know that web browsers have become an almost religious topic for many. But I just have to say, I lurve Apple’s Safari. I’ve used other Mac browsers such as Shiira and Camino, and while I like them well enough, I keep coming back to Safari. It’s not perfect by any means, and it may not be as tricked out as Firefox, but it looks and feels more natural to me.

Plus, it offers some sweet CSS support that none of the other browsers do. Which I’ve decided to take advantage of.

No other browser (that I know of) allows you to specify multiple background images for an element. I sincerely hope that forthcoming versions of Firefox and Internet Explorer support this ability. To put it bluntly, it kicks all sorts of ass. It makes creating rounded borders, such as the ones I’m using on the comments, so much easier. No more multiple divs or JavaScript trickery — just simple CSS. Take a look at the image below, and you’ll see what I’m talking about.

In addition to the multiple backgrounds, I’m also taking advantage of Safari’s ability to add text shadowing. It’s a small thing, but from an aesthetic aspect, it works very nicely for this particular design iteration.

The nice thing is that both of these degrade quite nicely for other browsers. In fact, if I hadn’t said anything, most of you probably wouldn’t have known at all that something was amiss. But if you’re a lucky Safari user, than you’ll see a little extra somethin’ somethin’ as you go through the site.

While I’m not as fiery as Garrett Murray, I too have grown tired of hacking apart perfectly acceptable code just so that it accomodates IE’s bungling. So if you’re using IE, and you notice a little glitch here or there, it’s not because the site is broken. I’m not going to tell you to upgrade to a better browser, but seriously, it might be time to join the rest of us in a bigger, happier world.

Kinder and Gentler

I like sites that focus accessibility. And so I want Opus to be accessible as well, if for no other reason than the resultant good karma. Accesskeys are all over the site, allowing you to quickly jump around if you decide to use them. The following accesskeys are used on Opus:

  • 0 — Go to the ​“Help” page
  • 1 — Go to the homepage
  • 2 — Skip navigation and go to the page content
  • 3 — Skip navigation and go to the comments (if you’re looking at a blog entry, that is)
  • 4 — Go to the top of the page
  • 5 — Moves your cursor to the search field at the top of the page

Whew… So what’s next?

As always, Opus is never truly finished. There’s always something to tweak or fix. For example, I’m not entirely satisfied with the footer graphics for the blog entries on the homepage — despite already spending hours on them — and I need to refine certain bits of JavaScript here and there. But the bulk of the work is done, and hopefully, I can get back to actually focusing on what this whole thing is about — exposing people to great things they would otherwise miss.

Of course, I still need to finish up the new AJAX-enhanced admin area. But I’ll save that for another entry.

(BTW, if you actually read all of the way through this, you’re a trooper and you have my admiration.)

Read more about Opus.