I've made some changes to the site since the last big update. Mostly little things here and there, but once again I want to bring them into the spotlight in the interest of full disclosure, sharing ideas and to elaborate on why I do these crazy things that I do.

The first thing is I've changed the way URLs are constructed on this site. I got the idea from Stack Overflow to use URLs that are a bit more descriptive and friendly than simply view.php?postid=50. In reality, the title portion of the URL isn't used by any part of the site, it's just there to give people an idea of what the page is about if it's posted bare on a forum or IRC channel. It's also something that should help my site's ranking in search engines (a process called search engine optimization). Not that I haven't already gotten lots of weird hits from Google before...

Another thing I've done that you may have seen is the year and month drop-down lists next to the search text box. It used to have one entry for every month/year combination. At the time I changed it, there were 19 fields in that drop-down list.

Drop-down lists are an odd UI element, because they're so natural when you think about them but they're so damned hard to use. You can't filter them, and if they're not sorted it's really hard to find the item you want if there are a lot of items in them. My general rule for drop-down lists is if the list grows to larger than 20 elements, I use something else. In this case, it was natural to split the single year/month list into two smaller lists: one for year that will increase over time, and one for month that will remain fixed as long as we continue using the Gregorian calendar.

Splitting the drop-downs up also gave me the opportunity to have yearly archives in addition to monthly archives which were all that was previously available. That's brand new functionality that logically followed from a minor UI change. Interesting how that works out.

If you happen to pick a month without picking a year, the site will show you the selected month from the current year. I decided on this functionality after some debate. Originally I had a view defined that showed the selected month no matter what year it was, but I couldn't possibly understand how a view like that would be useful to anyone. My view is defaulting to the current year is simple and unsurprising, so it is a sound UI decision.

If you disagree, you can now tell me not only in the comments, but also on the contact page. After the fiasco with that Stack Overflow user posting unrelated comments on my blog, I figured it would be a good idea to give users a chance to contact me directly instead of cluttering my wonderful website. The contact form is linked from every post by clicking on the author name (that's the part that says Dean in the top right) and also in the footnote. You fill in your rant in the fields, press "Submit" and by some magical force the message finds its way through a series of tubes into my lap.

The magical force is actually Google Mail's SMTP server. The form submits an e-mail to me so that I can receive e-mail without spreading my e-mail address around the Internets for prying eyes to see. The contact form has the same spam protection I've implemented for the comments to keep the Cialis bots out. I set up the contact page in my "live development" environment for a few weeks to see if any bots would find it. My inbox is clean, so I can only assume that it either works or my site has lost its incredible fame and popularity. It must be the former.

Another feature I've just added today is the archive page, which links every year, month and post on this site, all on one page. The link to the archive is right next to the year drop-down list, which I thought was an appropriate place for it given its relationship with yearly and monthly archives.

The archive page is grouped by year, then by month and then it lists every post's name along with its number of comments (sort of to indicate how popular that post was). The years are links to the yearly archives; the months are links to the monthly archives; the posts are links to the posts. All very unsurprising if I do say so myself.

One compromise I had to make with respect to the archive is the use of tables to lay it out. Tables are not usually a good thing in web design because some types of accessibility software have trouble dealing with them. But there really is no other way to create a layout that is both vertically and horizontally aligned the way the archive page is. I mitigated the potential accessibility issues by making sure the table cells appear in the same order in which they are written in the source HTML (which is one of the bigger accessibility concerns). Also, the content of the table is arguably tabular by nature anyway, so even HTML+CSS zealots would have trouble coming up with valid reasons why the layout is problematic. I can certainly live with it.

With both the archive and contact pages, the site's overall look and feel is consistent. Each of those pages are presented with the same title and subtitle style, the same footnote and the same soft-bordered rectangle with a random image on the side. Consistent look and feel is one of the most important aspects of software design and it's very easy to overlook sometimes. Beyond the obvious benefit of being able to immediately tell what site a page is from just by looking at it, consistency has a lot of other benefits as well. The bottom line is when users know what to expect, they are able to get more done with your software.

Once again, if you have any suggestions, comments or complaints regarding the layout in general or these changes specifically, I welcome your input. I make the changes with you, my readers, in mind so if I messed up I want to hear about it.