September 4, 2006
The more I think about it, the more i want to redo this thing. Probably won't happen till next year, but at least this gets my plans out of my head and into a format that's more reliable than my short-term memory.
Redesign
I've been running this look for just under two years now (since October of 2004). I like this look, but I think it's time for a fresh look. Here's what I've got so far:
(Warning, the full-size GIF is 153kB)
The navigation bar means the page will be at least 990 pixels wide, just enough to fit into a 1024-pixel-wide window. I'm debating whether to lock the content area into that same width, or to let it flow like it does now, or to let it flow within a minimum and a maximum (like, from 770px to 990px). It's easy to mimic CSS's min-width and max-width properties in IE, so I think I'll go with that option.
We're all pretty much stuck when it comes to the nav bar, though. I've used kind of an inverse-pyramid approach for it, so what I figure is the least-important item (search) will be the first to disappear off the right edge of the page.
Update the Back End
The admin section of the site hasn't really changed since I launched the site at Pair Networks back in spring of 2001. Like I said before, I'm still typing raw HTML into a <textarea> form element. I want to upgrade myself to a CMS like the one we provide our clients at work. Most of it is Javascript-based, so the little HTML validator add-on for Firefox will shit when it sees the CMS, but the actual HTML the CMS turns out is well-formed.
I also want to move the small batch of other pages into the database, to make searches easier. Right now, whenever I update a page I have to run an indexing script to copy the content of the pages into MySQL so I can search against it. Thankfully I don't pay for database disk space. (At least, I don't think I do.)
This also includes updating the Brain Farts database. It's old and creaky, and is a fine example of a table designed by someone who doesn't really understand databases. (Which, in 2001, I didn't.) There are lots of improvements I can make, which in addition to increasing speed will let me do things like categories for entries (LiveJournal calls them "tags"). So in the advanced search page, instead of just searching in BF, you could search for Brain Farts in the "whiny bitch" and "computer" categories.
Reprogram the Front End
I have to do this anyway to make the regular pages use the CMS, so most of the impetus is there already. Most of the display in this site is a collection of hacks on top of kludges, an it disappoints me to know that it's in that shape.
Mind you, this is because six years ago I knew PHP almost as well as I knew databases, but I still don't like it.
I plan on taking advantage of Apache's AllowPathInfo directive to let my URLs act like querystrings: When all is said and done, I'll only have index.php, other_pages.php, brain_farts.php, and photos.php running the show. (photos_list.php, which displays the actual galleries, will symlink to photos.php.) All old links will remain valid, if for no other reason than I am one stubborn mofo.
Basically, someone going to www.jasonfleshman.org/other_pages/me_apartment_2005 will go to other_pages.php which, through the magic of the ForceType directive, will answer to just other_pages. It will then take the /me_apartment_2005, which as I said will stay valid, and match it against the new format, which will be /me/apartment-2005 (a simple find-and-replace on the "URL" column contents) and pull the page from the database to display.
A tiny bit slower due to the DB access, sure, but I hope the programming improvements I make will balance that out.
Another improvement I want to make is adding some AJAX functionality to the BF calendar. Right now, clicking on a month or year will take you to the appropriate archive. They'll still behave that way, but in supported browsers there will also be a "twisty" that shows and hides individual calendars and month listings. In order to avoid loading unused data, the first time a twisty is used it will send a call to the server to get the data it needs. After that it will just be a matter of showing and hiding <div>s. The look of that bit is still up in the air, so it's not in the layout mockup.
Changing the front end also means doing away with the utils page. Over the years I've removed the color-picker (because the red and green versions looked like ass) and the font-size picker is basically useless. So ker-flush it goes. It was nifty in a look-what-I-can-do way, but that was about it.
In the biggest change, the search will get simpler and more complex at the same time. The search box will search all the content tables and do some sorting (it took me until just a few weeks ago to discover UNION ALL in SQL; I hope it works in MySQL's implementation), while clicking on the word "Search" will go to the advanced tool (which is also on any results page) that will let you break things down by blog category (new), and which sections of the site you're interested in (like the current tool). You'll also be able to sort your results based on relevance (number of occurrances / number of characters), title, or date modified (ascending and descending).
Finally, I'll add a second Atom feed that handles non-BF updates (which are much more rare) and a third feed that fuses the two. You'll be able to pick and choose whichever type of updates you want to know about.
Damn. That's a lot now that I typed it all up. I hope my loyal reader(s) appreciate all the trouble I'm going through for them :P