Archive for January, 2007

Movable Type vs. WordPress vs. Typo, Part 3

January 15th, 2007  |  Published in Uncategorized

I’d done a test installation of Typo some months before and hadn’t been that impressed. It was a pain to get installed properly, and the main draw seemed to be a bunch of extraneous AJAXy crap that didn’t really make the interface any easier to use. I expected it would be significantly slower than MT or WP, and the user base was significantly smaller. Furthermore, I didn’t think it had any decent comment spam filtering.

Installing it these days, however, is dead simple: just typing typo install typo in the best case. Surprised and pleased at how easy that had been, I turned to the template. It was a single file, one screen-height for the body section, perfectly easy to read and understand.

I had to switch some of my CSS selectors around to apply my styles to Typo’s default HTML, and make a couple of little tweaks here and there, but I was up and running with a perfect-looking page in probably 30 minutes, whereas I’d spent easily a day apiece monkeying with MT and WP without reaching the end.

There was a minor setback when I realized there wasn’t a way to import directly from WordPress’ MySQL database to Typo’s SQLite. However, some Googling quickly turned up the command to do a fresh Typo install backed by MySQL, and I just copied my theme over to the new instance and ran the WordPress import script. For some reason it failed to set the update_date on the imported entries, which made Typo choke, but I ran a quick SQL UPDATE and that fixed the problem globally.

Movable Type vs. WordPress vs. Typo, Part 2

January 15th, 2007  |  Published in Uncategorized

So, I abandoned Movable Type and went to check out the latest version of WordPress. It’s open source, so that’s great. It’s PHP, so it’s easy to get running with Apache and easy to hack up. On the flip side, it’s PHP, so there’s no MVC to speak of and you’re going to be hacking it up.

It was a pretty quick thing to get up and running with WordPress, so, satisified, I turned to templating. I’d built out a site design in static HTML, and I figured I wouldn’t need to do much more than cut-and-paste my HTML and CSS into the default theme and then tweak it a bit until it worked.

Unfortunately, it wasn’t so straightforward. The model that WordPress uses for building up its default theme template is to include a bunch of component files into the main file. This was a really great technique at one point; it enabled a lot of code reuse. However, HTML templates are generally so simple today that it’s just not worth it. You get to reuse perhaps four lines of HTML at the cost of making your page framework a bitch to work with.

I tried pasting bits of my template into the various included PHP files, but my layout blew up and I didn’t have a lot of patience for wading through it, 1999 style, strewing the code with little text snippets to figure out exactly what was going where. Instead, I decided to start with a clean slate, taking a fresh copy of my HTML template and applying the various WordPress PHP tags to it, rather than the other way around. Then I realized that I was going to have to do the same thing on the single-article page, as well as maybe some others, and my enthusiasm waned.

So, just for shits, I decided to give Typo a go.

Movable Type vs. WordPress vs. Typo, Part 1

January 15th, 2007  |  Published in Uncategorized

In preparation for the new Monkeytreats, I went through a surprisingly long process in evaluating what platform to build it on. I say “surprisingly” because this is just my dinking-around-for-fun side project. At the outset, I assumed I’d just pick something, install it, whip something up and get going. There’s a bunch of experimental project work that I want to do in several different development frameworks, so I figured I should just get the blog up fast, so I could get on with real coding.

So I started out with Movable Type, because that’s what we’re intending on migrating to at my day job. We’ve been over it a bit, and it’s a pretty robust platform. The killer feature for us is that you can create a new blog directly through the admin interface. With our current WordPress blogs, every time we need a new one (which happens reasonably often, and is always high-urgency), we have to go beg the overworked sysadmins to do a whole new WordPress install. This can take months—during which we have an angry partner screaming at us, which makes the months feel long indeed.

That’s not a feature I particularly need for my blog, since I have control of the server, but I figured, hey, it’s a good piece of software, I should get more familiar with it anyway, I’ll just go ahead and use it.

Then I found out that their installation guide is a PDF. Irritating, but whatever.

Then I tried to get CGI working with lighttpd. Lighty’s README’s have a bunch of helpful links to documentation that seems perfect for whatever problem you’re dealing with. However, all of those links go to nonexistent documents, and you’re stuck digging through their crappy wiki. No love to be found.

Clearly, this wasn’t a problem with Movable Type, it was with the non-standard web server I was trying to run it on. Nonetheless…I started thinking about how I was wrestling with CGI configuration, and how that just felt very 1998. Perl’s a fine language, too, but I really don’t want to spend time trying to read someone else’s Perl, and I was going to end up doing that if I needed to modify the system at all.

I decided the best thing to do would be to go dig into their template system and see what it looked like…at first I couldn’t find them, but then I did, and they seemed reasonably straightforward, although there were a bunch of files to meddle with if I wanted to do a full site repaint.

Then I thought about how Movable Type regenerates the whole site as static pages every time you publish. That’s a legitimate architectural decision, and makes scaling really straightforward…but my developer soul recoils, thinking “static pages…eew.” What if I want to read in other people’s feeds? What if I want to do anything that’s dynamic on a per-request basis, as opposed to on a per-publish basis?

That was the end of my experimentation with Movable Type.

Unfrozen Caveman Web Developer

January 14th, 2007  |  Published in Uncategorized

Back in my day, we had to make clear single-pixel GIFs out of mud. Our mothers would beat us with <BR> tags. We would cry ourselves to sleep on a bed of pointy, itchy COLSPANs.

I’m in a weird spot right now, because I feel like the proverbial caveman frozen in ice. I started doing web development in 1995, back when sites were simple and ugly. I was busiest around 2000, when pages were prettier but were a pile of turd under the hood, with unbelievably complex table-based layout that wasn’t human-readable. Web standards like CSS existed but weren’t supported well by the installed base of browsers, so you had to target the lowest common denominator.

Consequently, I got lazy and didn’t ever bother with CSS or semantic HTML–the old crappy methods worked, and for me they were pretty fast and reliable, so I stuck with them for a few years. Then I became a manager and didn’t have any time to write code on a daily basis, so there I was, fixed in time.

I had the good fortune to hire a really smart developer, though, who was younger and not so tied to the old stupid way of doing things, and he convinced me that the old way was dumb, and that semantic HTML was actually a really good idea again. My team started doing everything the right way, and the benefit was obvious.

This is where it got to be a really weird spot, though, because I was quite familiar with how everything worked conceptually, but I hadn’t done a lick of work with the “new” technology. It’s an uncomfortable feeling to be supervising people and realize that for a major swath of what they’re doing, they are significantly more knowledgeable than you are.

Anyway, long story short, in buildling the new Monkeytreats, I’m finally getting to build things the Right Way, the way my developers have been for the last two years. I’m getting to test out some of my own ideas about usability and design that I haven’t been able to push at work. There are certainly some pains in the ass, but in general everything is just so wonderfully clean and simple. I’m really excited about development again, as opposed to 2005, when I was so sick of writing crappy code for stupid projects that I was ready to give it all up and leave it to some other sucker.

Now, though, you can look at HTML and it actually makes sense, it actually is descriptive. You can tweak a CSS declaration and fix problems all over your site, without having to do endless levels of nested, incomprehensible includes. Hell, you can even just grab some free pre-built blogging software, instead of having to painstakingly hand-roll your own CMS.

Long story even shorter: Caveman developer like future. Jetpack is fun!

Absurdity

January 14th, 2007  |  Published in Uncategorized

Work and other things are giving me an object lesson in absurdity right now.

I used to think I had come to grips with the concept, that I understood that life had no intrinsic meaning, and that I accepted that and was living regardless, because life was worth living. Just this evening, though, I’ve started wondering if I really had come to accept absurdity, or if I’ve just been ignoring it.

It’s one thing when you think of life as being basically meaningless, and that you may have to deal with that when you die, which always seems infinitely far off. It’s another to be confronted by things in life that simply don’t make any sense-and I apologize for writing so abstractly about these things without conveying any details, but it doesn’t seem appropriate right now. The twist on what’s going on right now is that I do understand, at least to some degree, why these events are happening. I understand why they’re happening-and they still make no sense.

That kind of cognitive dissonance will drive you mad.

Whoo boy, the wife is going to insist on no berets and absinthe after 9pm.

New digs

January 14th, 2007  |  Published in Uncategorized

Things are a little different around here. I finally got ahold of some awesome hosting and have been banging around for the last couple of weeks getting the VPS set up and everything configured, and then doing the first legitimate chunk of web development I’ve done in…god…almost two years of being a manager and not doing “real work”.

The archive has been yanked from Blogger into WordPress, and then from WordPress into Typo. More on that particular transition later.

It’s incredibly satisfying having my own live box on the internet again after four years in the desert. I used to have a DSL connection with a static IP and could run a Linux server right out of my bedroom: when I moved, I got cable, and that was the end of that.

There are a bunch of new technologies that I’ve been skimming over the last few years but haven’t really dug into (particularly Rails), because if you haven’t got someplace to put your code where somebody can see it, it’s like memorizing Hamlet and then delivering it in your bedroom with the door closed.

In case you can’t parse that tortured metaphor, I mean it’s a bunch of fucking work and then you feel like a dumbass for bellowing “I could be bounded in a nutshell, and count myself a king of infinite space” when you’re, well, bounded by a pile of socks and that poster of Alyssa Milano in a hockey jersey that you scraped your allowance together to buy when you were twelve, back when you imagined that some day you’d get laid…

You see, it’s not enough just to torture the metaphor. The metaphor will remember, and one day when you least expect it a hired simile will get you like a knife in the back. Consequently, you need to first torture the metaphor, and then shoot it once in the heart, and once in the head. It’s the Miller’s Crossing school of writing.

I suppose I could have just gotten some shared hosting somewhere, and in fact I did sign up with DreamHost for about fifteen seconds, but when you’ve been an admin, and you’re used to having that kind of control, it’s just not acceptable to be told you can only have five MySQL databases and that you can’t pick a name for them that someone else has already grabbed.

Ah, the sweet sweet smell of massive nerdery.