How to Install Movable Type 2.64 on macOS Sierra

I started this blog in May of 2003. I had a LiveJournal at one point, and even wrote my own blog system to teach myself a new language called PHP. But this blog, 90% Crud, started then. I used Movable Type, a Perl CGI application. I wrote some stuff, met some good folks and was inspired to do some neat stuff.

I started this blog in May of 2015. My friend Adam and I wound up looking at some old blog posts with one day and there were some good ones. I thought that maybe that was something worth doing again, even if I never really figured out what I was doing the first time around. I set up a WordPress site and started writing again.

Now that this site is at a new home and I’m working for the company I thought I should finally get my old archives into my new blog. And I did, I managed to export my old blog and import it here. But there was some manual work and I actually had to look at what my old blog was.

Screen Shot 2017-01-04 at 9.16.32 PM

For the record, I try to look at nostalgia as an indulgence. Too much time looking back keeps you from looking ahead. But its still something you should do, from time to time.

Seeing the old posts, I’m struck by how many comments there are. I guess there are plenty of comments on blogs these days, but now they’re all on the ephemeral social shares instead of the blog. 20 comments on Facebook, 0 on the blog. That makes sense in some ways.

I see some of the high points, especially this one, but I like some of the lower-key ones too. An old dog who chews earbuds. Old video games. Citizen journalism (as we called it at the time) with ancient snap-on cameraphones. Nerdy tomfoolery. I had completely forgotten that I had written a Movable Type plugin.

Looking back helps me figure out what I should put here in the future. I’ll be posting more personal stuff here. I’ll keep posting political stuff when I’m fired up. And I’ll try to keep doing projects, even as my free time dwindles.

Anyway, enough delay, I know you want to get Movable Type 2.64 running on macOS Sierra. Here’s how:

To start with, make sure you have a copy of Movable Type 2.64. Maybe in your backups somewhere. Do a find, because it’s not in the directory that you think. Look for mt.cgi. Put that in /Library/WebServer/CGI-Executables and the corresponding static assets in /Library/WebServer/Documents/.

Edit /etc/apache2/httpd.conf and uncomment AddHandler cgi-script .cgi. Marvel that we used to write Perl CGI scripts, ignorant of how slow it was to spin up a new process for each request. sudo apachectl restart

You’ll also need a MySQL dump of the database. You have it somewhere, even a decade and a dozen computers later.

Now you should brew install mariadb since you’ve heard thats what people use now instead of MySQL. Load that up with good old mysql -u root < mysql-dump.sql

Go to http://localhost/cgi-bin/mt/mt-check.cgi and realize you don’t have the DBD::mysql Perl module installed. Try sudo perl -MCPAN -e 'install DBD::mysql' but some of the tests fail for some reason. Find the directory in ~/.cpan/build, do a make install --force and hope those tests didn’t matter. Be glad for your time as a Perl guy.

Go to http://localhost/cgi-bin/mt/mt.cgi and see a login screen! Realize there’s no way you know your password. Here’s the query you need to change it. Now you’re in.

Time to start blogging.


"nofollow" seems to be the name people are giving for the new anti-PageRank tool, it’s been pretty well received but there has been some criticism.
nofollow is not a panacea. Large-scale social problem don’t have easy answers, like stopping the spread of STDs (which I’ve heard comment spammers have plenty of). One person implementing it on their own doesn’t remove enough incentive to stop a comment spammer. Everyone using it removes the incentive for comment spammers. I’m hoping that enough people use nofollow that comment spammers will see a negligible PageRank boost (I use PageRank only because I don’t know the name for Yahoo! juice or MSN juice) and stop spending their time spamming and their money on spambots. E pluribus unam and all that.
On the plus side, the blogs with the highest PageRank are the best cared for and most likely to use nofollow. I assume software that allows comments will start shipping with nofollow in the default template, so the new blogs (and wikis, and guestbooks, and…) are taken care of. Hosted services like TypePad, LiveJournal, MSN Spaces and Blogger are deploying nofollow site-wide, which takes care of a lot of bloggers.
That leaves the abandoned blogs and the legacy blogs run by people who don’t keep up with this sort of thing. For the people who are unaware, get in touch with them and let them know how to help protect against comment spam. Reach out and touch someone and smack them upside the head until they fix their site.
Abandoned blogs are a tougher problem. Comment spammers already gravitate towards the abandoned blogs; how do we deal with a site that isn’t maintained anymore? I suspect that abandoned blogs that are self-hosted are in the minority due to the fact that it usually requires regular cash infusions to keep running, so it’s possible that we don’t need to reach those people.
One criticism I’m hearing is that removing PageRank from comments will lower the PageRank for commenting users. Guess what – if I want to support your site by linking to it from my own I’ll do it in a post. If you leave a comment on my site, that doesn’t mean your site is any good, it just means you left a comment. PageRank for comments artificially inflates a site’s worth and I think that losing that will make Google more useful. You can still earn PageRank the old fashioned way — post something interesting that people link to.
nofollow does have a fatal flaw though. When 90% Crud gets comment spam, the comments on the post are closed, and Google ads show up on posts with closed comments. It was a nice coping strategy, I could take comfort in the fact that comment spam was encouraging me to earn money on this site. If nofollow does succeed and comment spammers move on to greener pastures, I won’t be encouraged to make my 7 cents per day. Luckily it’ll take a while for the benefits of nofollow to appear, so I’ll have plenty of time to buy my yacht.
[Update: In the area of security there is a mantra: “Deny by default.” That means that the default action should be to deny access, and then if they meet the conditions, allow. nofollow is a deny-by-default approach to PageRank in comments. If you’re responsible enough to delete comment spam with whatever tool your blogging system provides, you’re already preventing comment spammers from getting PageRank (unless Google indexes your site before you get a chance to delete them…). For people who forget about or abandon their blogs, the comment spam can pile up. If no action is taken, nofollow will default to deny comment spammers PageRank.
This won’t stop comment spam overnight, but once weblog tools ship with this as the standard configuration, and once those tools are widely deployed, then comment spammers will not receive PageRank by default, it will be the exception, not the rule. At a certain point, the time spent developing and configuring spambot software would be better used doing some other sort of Google spam and we’ll see the number of comment spammers stop increasing. Then, as existing comment spammers stop and their cron jobs get broken, we’ll see a gradual decline of comment spam. In order to stop an epidemic, you need to inoculate everyone.]


Another day, another Movable Type plugin. This one is kind of complex, so let’s start with the problem as outlined by Matt Haughey:

In spring of 2003, I started an experiment where I would trackback all the comments I left on other sites back to a special category here, so I could keep a public, running tally of offsite comments. It was a pain and as much as I tried to automate it with custom submit forms and javascript bookmarklets, it was a manual operation and I am busy/lazy enough where anything remotely manual gets dropped eventually.

He later suggests that RSD be used to collect these TrackBacks.

PostedElsewhere sends those TrackBacks automagically. It uses RSD to identify where to send a TrackBack when someone comments on your site. It’s up to you to set yourself up to receive the comment TrackBacks.

Download PostedElsewhere 0.1

Because it uses Movable Type 3’s callbacks, and because I haven’t upgraded yet, you can’t test it out here. However, I set up a blog with it installed at Leave a comment there if you want to test out your RSD file and TrackBack handler.

Continue reading “PostedElsewhere”


Technorati announced their new tag search engine recently (more info on that), so I’ve written a Movable Type plugin that will take an entry’s Keywords field and turn them into Technorati tags. If you want to see it in action, look at the sidebar on the top right of this entry.

Download TechnoratiTags 0.3 (zip)

Update: If you have the PerlScript plugin already installed you can achieve the same effect with these instructions.

Update 2: If you’re looking for a more general purpose keyword plugin, check out MTKeywordList which loops over the keywords.

Update 2005-05-05: Jan Theofel created a PHP function for Movable Type 3’s dynamic publishing, which is now included. Thanks Jan!

Continue reading “TechnoratiTags”