Apr 15

As you have probably noticed, I’ve just gone through a major software migration for my web site.

I was using typo. It was OK, but had a few problems. While its web site describes it as “lean”, that isn’t really the reality. It also relied on a combination of Apache, LigHTTPd and FastCGI that tended to break down without explanation.

The biggest reason for change, though, was that typo’s authors’ idea of what was important functionality was diverging from mine. The wakeup call was when someone spent a bunch of time replacing the regular page templates with templates written in HAML.

For those lucky enough not to know, HAML is a stupid and inexplicably trendy idea in the Rails community, comparable to LiveJournal’s S2 style system. Basically, instead of creating your page templates in HTML and CSS, which everyone can understand and for which there are a zillion useful tools, you instead write program code in a whole new language which has minimal documentation. The program then generates the HTML and CSS.

Of course, this destroys the entire point of template systems, which is to separate code from presentation and make the presentation layer editable by non-programmers using common tools.

I wouldn’t have minded the HAML idiocy so much if it wasn’t for the fact that typo still lacked support for things as basic as user authentication for commenting. So I looked at other web content management software… and looked… and looked.

I tried Blojsom. Supposedly it’s what Apple uses. If so, I hope they’ve done a lot of work on their version, as it’s a major PITA to set up, and very complicated even when you get it working.

In the end, though, I knew the main feature I wanted: OpenID support. Hence, I found myself reluctantly herded towards Wordpress, which has a working OpenID plugin. (Or at least, it works for my OpenID account when I test it. I don’t think it has XRI support, though.)

I did entertain the idea of writing my own CMS. I even sketched out some design notes. But it really is a solved problem, I just didn’t like the technologies used to solve it.

Let’s be blunt about this: I hate PHP, and I hate MySQL. PHP is the Visual BASIC of web programming languages, a mess which grew with no planning out of a quick hack, a kitchen sink language known for its amenability to security holes. MySQL is a toy database, popular because it’s fast, fast because by default it doesn’t actually provide the basic ACID functions a database is supposed to provide. (Sure, you can turn those on, but once you do, today’s PostgreSQL is faster under non-trivial load.)

But I don’t believe in religion, especially not when it comes to software. I’m a strict pragmatist–whatever it takes to get the job done, even if it may offend a few aesthetic sensibilities and fall far short of perfection.

I spend most of my time at work developing using IBM Lotus Notes and Domino. Every time Notes is mentioned on Slashdot, a bunch of people will rant about how bad its UI is. They miss the point utterly. Believe me, the poor UI of Notes is only the most glaringly obvious defect it has; there are far worse problems underneath that the average end user is blissfully unaware of. But you know what? It works. It is sufficient. It lets you build groupware applications and dynamic web sites with fine-grained security in days, not weeks. That is why people use it. The only other tool I’ve found which comes close is Ruby on Rails, and that’s still too immature for me to want to use it on production systems. (That, and it’s surrounded by a community of people who think things like HAML are a good idea.)

So, here we are. I’m editing this in a nice AJAX WYSIWYG editor with spelling checker (an idea shot down by the typo developers), and you should be able to log in with OpenID to comment (an idea the typo developers seem utterly uninterested in).

It took most of Saturday hacking with Ruby, PostgreSQL and MySQL, but I believe I’ve managed to transfer not just all my data, but all your comments too. I think I’ve even managed to keep all the permalinks the same, and preserve all the timestamps. I’ve temporarily lost the tags functionality, but should be able to get it back with another plugin. Hopefully Wordpress will prove more reliable than Typo, and hopefully the OpenID stuff will interoperate correctly with LiveJournal. If not, pray that I inexplicably become independently wealthy and have the time to write something that does the job properly.

Jan 05

So, it’s official: SixApart are buying LiveJournal. Reactions seem to be ranging from horror to relief.

It’s not really a huge surprise to me. In spite of some claims to the contrary, I’d been told that Brad really didn’t have much to do with the day-to-day running of LiveJournal—stuff like policy, dealing with abuse, and so on. I’d already guessed that he was looking for an exit strategy.

I looked at Six Apart and Moveable Type when LiveJournal deleted my account without notice. The basic service (TypePad) starts at $4.95 a month, and that was more than I was willing to commit to. Plus, they have the same kinds of Terms of Service as LiveJournal, and I have no idea how reasonable or otherwise they are at dealing with abuse. Worse still, they put ads on your site. $50+ a year and crappy ads? I don’t think so.

You can use the Moveable Type software and “roll your own”, of course. Unfortunately, you can’t use the ‘free’ version if you “directly or indirectly support any commercial efforts” via your web site, and I’m not ready to agree to any licenses that put restrictions on what I can and can’t say on my own damn web site. To not have restrictions on what you can use your MT web site for, you need to shell out $199.95 for an MT license. Sorry, but that’s way too expensive.

Brad says they won’t be jacking up the prices for LiveJournal. However, note that he also says:

Our old TOS and privacy policies apparently sucked, from a lawyer point-of-view. We never had lawyers create or really even review the old ones.

This directly contradicts statements by the LiveJournal Abuse team. They told me that the TOS could not be changed, that it was the way it was because the lawyers said so, and that they couldn’t even discuss it. There have been public comments to that effect too:

—they do not set policy, they only enforce what has been told to them by LJ’s legal counsel, and they have no leeway in this.

I’m guessing that someone told the Abuse team that that was the case, and they believed it, but still, it points to some serious problems with LiveJournal’s management. (Not that that should be a surprise to anyone reading this.)

Brad says they won’t be jacking up the prices to match Six Apart levels. Well, I’m sure they won’t—not immediately, anyway. But can you really see Six Apart offering two services, one of which is free (or much cheaper) but offers the same functionality as the other?

But hey, let’s be positive. Maybe LiveJournal will finally get support for simply applying a CSS Style Sheet to your journal. We can dream.

So, for those contemplating the future with uncertainty, what are the other options?

Personally, I want some software that’s free-as-in-freedom and doesn’t put limits on what I can say. I want it to support comment threads and authenticated users, and I want it to cost less than $100. It has to have a way to put existing data into it, and to get data out of it for backup. I’d rather it wasn’t written in PHP for obvious reasons, and it needs to statically render as much as possible to keep server load reasonable.

Perhaps people have suggestions? Unfortunately it seems like most of the CMS systems out there are hacked together in PHP. I know about Plone, but their system requirements don’t give me much hope.

Apr 25

My web hosting provider exploded. The company who supposedly bought their customer lists has failed to get things going after a week or two. So, I need a new web host.

Requirements:

  • Linux or UNIX based
  • SSH access and rsync for uploading my site
  • Low monthly fees
  • No price gouging for extra bandwidth
  • Low or zero setup fee
  • One domain, at least 3 subdomains
  • At least 2 POP3/IMAP mailboxes
  • A reasonable amount of space (50 MB or more)
  • SpamAssassin

Nice-to-have features:

  • Usenet/NNTP access and server
  • Jabber server
  • Logs and stats
  • Search engine support for sites

I don’t need PHP, JSP, ASP, SSI, SQL, CGI, … Just static web pages, cheap. Also:

  • I don’t need DNS hosting or domain registration, just the servers to point my existing domain at and a working MX or two.
  • High uptime isn’t all that important; the odd day or so of downtime is fine.
  • Phone support isn’t important.
  • Technical hand-holding won’t be needed, obviously.

I’ve found:

Frankly, I’d be tempted to do it myself if we weren’t planning on moving in the near future…