srsbsnstoonI’m seriously rethinking my decision to use Geeklog for the Why Make Clocks site. I liked how most the admin interface made sense right away: you have static pages and stories, not vague abstractions like “items.” But I’ve had a lot of little annoyances and difficulties with it since. Most of them I’ve managed to overcome, even if it meant hacking a little bit of code. But last night it came to a head when I decided to test out comments and came across this bit of text above a user-registration form:

Creating a user account will give you all the benefits of Why Make Clocks membership and it will allow you to post comments and submit items as yourself. If you don't have an account, you will only be able to post anonymously. Please note that your email address will never be publicly displayed on this site.

“All the benefits of a Why Make Clocks membership”? Uh no, registering via this web form won’t get you half-price beer at the gig and you certainly don’t get to stand up on stage with us and sing.

“Allow you to … submit items”? Um no, this is our site, we submit the items. I thought this was the registration to add comments, not to submit regular site content. Of course, you can configure user accounts to only be able to submit comments, not stories, but then that just means that this verbiage would become inaccurate and misleading.

This even echoes an earlier problem I had in which, despite this supposed requirement to create a login account to post a comment as anything other than “Anonymous,” the Geeklog calendar always displays a link for visitors to add events. I was using the calendar to put up our shows, radio appearances, album release dates, that kind of thing. It doesn’t make the least bit of sense to have just any visitor who shows up be able to, or even think they’re supposed to be able to, put stuff on our calendar.

So I decided to try to figure out where this bit of text was at and change it to something that makes more sense. Turns out it’s tucked away in a file in Geeklog’s core code along with the same statement translated into a couple dozen other languages. I don’t know all these languages, so I can hardly be expected to take the text I want and translate it into them. Anyway, I don’t need all these languages. We’re a regional band from the Midwest, English will do fine. Once we start touring Europe or Japan, maybe then we’ll worry about internationalization. Of course, I can turn ths feature off in the configuration…

I mean, I understand some of what this “let Joe Random submit content” feature might be for, but it’s not a feature we want and there’s no good way to completely turn it off. Even if you configure it that way, there’s still links and verbiage on the site that tell people they can submit items, and you have to go grubbing around the theme code and the Geeklog code itself to get rid of these. I do not need to allow, nor want to deal with, publicly-submitted content other than comments, and I’m not running a company where I have a bunch of subordinates submitting content either, so I don’t care about being able to review their submissions and approve them. But it’s a ball of features I end up having to configure and generally dick-around-with anyway.

There’s also things like the swear filter and HTML filter – I wanted to embed a YouTube video in a story and ended up having to dig through the configuration to figure out how to get it to stop stripping out the HTML code. And this is rock and roll, not a buttoned-down corporate site, so censoring cuss words would, if anything, hurt our image, making us look like uptight prigs. Sure, I can turn off or configure these features too…

But that’s just it – the dizzyingly large and poorly organized collection of configuration knobs in this thing. It’s a tall order to expect me to pick through all of them (especially when I’m not even sure what some of them do) to turn off stuff I don’t need.

See, Geeklog suffers from the problem a lot of open-source CMS solutions have which is that it tries to have all these features that are oriented to the Enterprise. This ignores the obvious fact that most web sites, indeed most organizations, start small and then grow. So all these options oriented to larger organizations right from the start, they get in your way. It’s more cruft that you have neither the time nor the need to think about and configure. I don’t want to have to think about i18n until I actually need it. I don’t want to have to think about assigning my users to groups and different fine-grained permissions to those groups when my users are me and the two other guys in the band, or worse yet, when it’s just myself. It would make much more sense to be able to turn on, or add through plugins, these kinds of advanced features as they become needed. Let the corporations who can afford to pay people to write up process documents about what configurations to make deal with all this shit. Let the little guy keep it simple. They call it “Geeklog” but I think a better name might have been “Suitlog.”

What makes matters worse is that solutions like this seem not to be able to completely decide or commit to whether they truly want to be enterprisey or not – they include just enough enterprisey features to annoy you, get in your way, and give their developers something resume-building to work on, but either totally leave out, or provide rather bad implementations of, features that companies might actually consider crucial – like being able to easily migrate your site to a new server, so that you can set up a site in a testing environment and get the theme and configuration nailed down before moving it to a live public-facing server.

That’s right, I tried to be all professional and, rather than kill off the existing Why Make Clocks site and potentially have people run into an in-progress version of the new site, I chose to first try to build the site on my local machine, then put it up on another hosting account where Dan could look it over and try it out, then put it up on the real site once we decided it was ready. Development-Testing-Production. Man, what a nightmare that was. All the internal configuration, including a dozen or so file paths, is kept in the database, so if you back up the database and restore it on some other server, then edit the db-config.php file, you’re still only about 5% of the way to having the thing actually work. There’s a migrate.php script you can put in, but it only changes a few of the paths and misses a bunch more. After much fumbling over a period of some weeks, I had finally arrived at this process:

  1. Back up the database
  2. Create an empty database at the new server
  3. Upload the code, including the admin/install directory and migrate.php script
  4. Browse to admin/install, enter all the configuration bits it wants and change all the file and directory permissions it complains about
  5. Restore the database backup into the new empty database
  6. Browse to migrate.php and enter the URL and directory config values it asks for
  7. Open the database up in phpMyAdmin and trawl through the 270 or so records in the conf_values table looking for anything that looks like a file path that migrate.php missed and fix it -- and, since they're in the format of PHP's serialize() function, you need to make sure you count the number of characters in the path and change that number at the beginning where it says like "s:48:{" accordingly.
  8. Make the appropriate animal sacrifices, then browse to the site and hope that you found everything.

So anyway yeah, I’m back to looking at shoehorning a static-page-nav menu into the Old Standby, Wordpress.

There’s a larger point about software design to be taken from this, though.

Charlie Schiz

Charlie Schiz
When the going gets weird, the weird turn pro. I've been weird all my life. It's my time to shine.

Small Hours - Kate

Cinematic noise wall is a thing, right? I mean there's Burial Ground... and thenthere's, well, this: "This 'Wall' consists of 3 different...… Continue reading

Maid Marian/Tall Too

Published on March 09, 2022

/ləˈɡ(y)o͞obrēəs/ / N0123NOISE

Published on March 03, 2022