Recently in Movable Type Category

7 MT Years

| 4 Comments

7 years ago today, I started using Movable Type. Back then it was Movable Type 2.21, which was much more basic than it is today - while nowadays it is almost a fully-capable content management system, version 2.21 just supported pure blogging. Comments were there, as was support for a new-fangled thing called Trackback, but no search, widgets, junk comment filtering, OpenID support, custom pages or tags.

7 years is a long time but I'm pleased to say that I still think Movable Type is one of the best blogging systems out there.

Movable Type 5 in beta

| 0 Comments

It wasn't that long ago that I upgraded to Movable Type 4.3 - in fact, MT 4.3 was only released about a month ago. However Six Apart have been developing Movable Type 5 in parallel and the first beta version was released yesterday. It will be around 2 months before the stable version goes live but the curious can look at this test version now.

By the looks of things, MT5 will steer the package more towards being a full-grown Content Management System, rather than a blogging package with some CMS features. There will be much greater pages support, redesigned control panels, and extra custom field support in Movable Type Pro. There's also better Theme support.

Unfortunately a change in the system requirements mean that MySQL 5.0 is now needed. My host only offers MySQL 4.1, so I won't be upgrading unless 4.1 is supported, or my host upgrades MySQL (version 5.0 has only been stable for 4 years...), or I find a new host.

Akismet vs TypePad Antispam

| 0 Comments

To keep this blog free of spam, I use a variety of plugins for Movable Type. As well as TypePad Antispam and SpamLookup, which come bundled with MT, I use Akismet and Real ;) Comment Throttle.

Akismet and TypePad Antispam both work in similar ways, in that they are external web services. All comments posted on this site, with the exception of those posted by people who sign in with OpenID/Facebook etc. and whose accounts I have trusted, are passed through both of these web services and each reports back as to whether they think the comment is spam.

Initially, I received basically the same results from both - i.e. both services would agree a legitimate comment is fine, and a spam comment is spam. More recently, Akismet would correctly identify spam but TypePad would bring up false negatives - i.e. it would pass spam messages as being legitimate. At the time I had the two weighted the same, using MT's junk scoring system, so any comments where the two services disagreed would be allowed through as each service would cancel each other out. As Akismet seemed more reliable, I increased its weighting.

But recently the tables have turned. More spam comments have been coming back negative from Akismet, but TypePad has been correctly identifying them as spam. Unfortunately as I have Akismet weighted more highly, the comments still tend to get through.

Both systems have a feedback mechanism, so I can manually mark messages as spam and this is reported back to the web services, which should help train them to be more accurate over time. And it may be that Akismet is just going through a 'blip' -. Thankfully neither service has resulted in a 'false positive' yet - i.e. a legitimate comment that it thinks are spam. Still, although the services may disagree from time to time, it's nice to have more than one opinion about a message - relying on one system alone would have probably let through more spam. If you have a blog, you should definitely consider using both.

(Incidentally, although TypePad Antispam was written by Six Apart, there is a Wordpress plugin available too)

Movable Type 4.3

| 1 Comment

Probably just worth mentioning that this blog is now running Movable Type 4.3, released yesterday. As well as a few new features, it apparently also boasts better performance, which is good.

One of the interesting new features is paginated search results, instructions for which are here. I may well check that out.

Melody

| 4 Comments

Just recently announced is Melody, a new open source content management system based around the blog concept that is derived from Movable Type, the software that has powered this site for nearly 7 years. It has been developed with Six Apart's blessing, and by several former 6A employees; its development is guided by the Open Melody Software Group which counts Anil Dash from 6A as one of its directors.

The system will stay API-compatible with MT, so that plugins will still work, but may drop support for lesser used features like Trackback and PostgreSQL databases (Update: These may be spun off into plugins, not dropped altogether - see comments). Focus will be on improving development and support of weblog themes (which has always been a little clunky in MT), but ultimately the aim is to generate a community around Melody which guides the development process. MT will stay on as a product of 6A, and while there will be some code-swapping between the two Melody is essentially a fork.

It all sounds like good news and I wish the team every success with the development of Melody - once a more stable release is available I may well switch to it. Wordpress has, rightly or wrongly, stolen the limelight from MT in recent years so a proper, community-driven open source alternative could pull users back to the MT/Melody platform.

(Incidentally the default user name for a new MT installation is 'Melody' - not sure whether that was used as an inspiration or not)

MT 4.26 and Facebook integration

| 0 Comments

I've upgraded Movable Type, the software which has powered this blog for almost 7 years, to the latest version 4.26 - full details about the update are here but beyond performance improvements and minor bug fixes it isn't earth-shattering.

The one other change I have implemented is that you can now comment using your Facebook account as a means of authentication. This alongside existing support for Yahoo, AOL and Google, plus any other site which provides OpenID support. I will still let people comment with just an email address for now since this site is not exactly a bastion of communication but it would be nice if you could authenticate yourself if possible. I reckon the vast majority of people using this site will have an account on at least one of those services.

In fact, I could enable Vox, LiveJournal, TypePad, Wordpress.com, mixi, Lavedoor and some others I've never heard of, but that would probably be overkill.

Note that when you comment with Facebook you'll have the option of posting the fact that you comment to your Facebook timeline.

Movable Type 4.2 and Pro

| 1 Comment

5 1/2 years - not bad!

Kidding aside, I will upgrade to the final version of Movable Type 4.2 very soon (since the release candidates rocked hard) but will probably pass on MT Pro as its social features are overkill for a site like this, which has recently gone for whole weeks with no comments. Admittedly there have also been weeks without entries too...

I am pleased that MT Pro is being released as a free (as in beer) upgrade as it essentially replaces the previously paid-for Movable Type Community Solution, and it makes MT stand out more over Wordpress, which would probably need all manner of plugins to match MT Pro's full functionality.

As per Jay Allen's comment, if you are using Movable Type 4, make sure you have a cronjob with this in it:

cd /path/to/mt; ./tools/run-periodic-tasks

(where /path/to/mt is where Movable Type is installed)

This will make sure Movable Type clears out its session data and so it won't eat your database for lunch. It also does a whole load of other magical things, especially if you have plugins, but keeping your session data in check is one of them. I thought I had this in place but it turns out I didn't - hence why I ended up with several hundred megabytes of session data.

Movable Type is eating my database

| 5 Comments

Image Hosted by ImageShack.us

Right now, my Movable Type database occupies well over half a gigabyte of space on my host's web server - 550 MB, to be exact. Obviously, 6 years of blogging with all of its comments and entries does result in a lot of data, but can it really be this much?

The thing is, not that long ago the database was only around 50 MB - 11 times smaller. A tweet by Gregor was what prompted me to look - he's a Wordpress user and the auto-save and post revision functions that have been added recently have contributed to "massive bloat fail", in his words. And it looks like Movable Type has the same problem - here's a pie chart to demonstrate:

Image Hosted by ImageShack.us

That big lump of hideous green is 'session data', which holds a variety of things but namely auto-saves of entries and templates. That alone is taking up 500 MB of data.

The problem is that MT doesn't seem to have a 'clean up session data' option anywhere, nor did a cursory Google search turn up much information about it. I'd like to know if I can get rid of it, as right now more than a quarter of my hosting plan is now set aside to this session data. I'd be also interested to hear if any Wordpress users are in the same boat since it too has this problem.

Fixing MT's Performance

| 2 Comments

I've mentioned a few times that I have been having problems with Movable Type's performance - high CPU usage and timeouts. The CPU usage turned out not to be caused by MT, but the timeouts were - most of the time when rebuilding pages I would get a blank page because it took so long.

Quack, at Does It Echo? just upgraded to MT4.1 and in doing so he installed Temper - short for Template Profiler. It counts how long each template takes to rebuild when entries are published and outputs the times to your activity log - this means you can then single out any templates which are taking too long.

It turns out that 2 templates were taking over 10 seconds each to rebuild. One was a category archive feed, easily fixed by limiting it to the previous 15 entries, and the other was a block which outputted the 'recently commented on entries' code that appears throughout the site, which I've disabled for the time being. This has solved the timeout problem, although some other pages are taking up to 4 seconds to build - I'll investigate these later

But it now means that using MT is much more bearable and it means I have one less reason to switch away from it.

Going Beta

| 1 Comment

I'm giving Movable Type 4.15 Beta 4 a whirl on here. It's supposed to deliver a large raft of performance improvements, which considering the recent issues I have had with performance should be very welcome. Time will tell if it makes it a difference.

I owe Movable Type an apology

| 2 Comments

Sometimes you should never jump to conclusions before looking at the evidence. I requested a list of scripts which were causing problems, and this was the result:

processcountCPU secsCPU minutes
php148715656.85s94.28 CPU minutes
mt-postacomment3927.70s0.46 CPU minutes
awstats.pl811.20s0.19 CPU minutes
imapd558.81s0.15 CPU minutes
mt-feed.cgi87.00s0.12 CPU minutes

So, as you can see, it's not Movable Type's comments after all - in 1 day, it was using a mere 30 seconds of CPU time, compared with an hour and a half for PHP. Now 'php' includes all PHP scripts on the site, which does include parts of Movable Type - namely the dynamically generated pages and the search results. But there are other scripts on here - my own tag search script and some bot-banning scripts. I have disabled these other scripts, and reduced the number of pages being served by dynamic publishing, to see if this makes any difference. Hopefully I will find out soon.

So this means I won't be switching to Wordpress right away. I will keep it on here for now, in case I want to take a look at it, but for now I'll stick with Movable Type. I will re-enable comments, and I have brought over the entries and discussions from the temporary Wordpress blog so that they're here to view.

New OpenID Server

Until now I've been using LiveJournal as my OpenID server, as it's convenient and at the time it was one of the few services that supported OpenID. But I've now switched to a server running on this box which latches onto Movable Type - it's called OpenID Server, unsurprisingly.

It's very simple to install and integrates seamlessly into Movable Type. To authenticate comments, you just log in with your MT username and password, and each author on the system can use it.

Having my OpenID hosted 'in-house', as it were, means I have more control over it as I know exactly what data is stored; though of course, should my web site go down, I'll lose access to my OpenID too.

Movable Type 4.1

Well, I finally got around to upgrading to Movable Type 4.1. It's not the massive change that 4.0 was, but there's some nice touches and I like the new entry composition screen. Not had much time to delve into what's new, however.

The upgrade wasn't without a hiccup - I originally installed it over the top of 4.01 (itself installed over the top of many other versions, including Betas) and upon finishing it didn't work. Installing to a new folder, and then copying my plugins over, seems to have done the trick, thankfully.

Fixed a template bug

I've fixed a long-standing template bug on the home page that came about as a result of me updating the OnThisDay plugin in the summer. It's one of the oldest plugins on here, and would have been installed in 2002/3 when I first began using MT, but version 2 was released last year with better MT 4 compatibility so I upgraded.

Anyway, it turns out that the update introduced a template change. Instead of doing this:

<MTOnThisDay>
<MTEntries>
...
</MTEntries>
</MTOnThisDay>

you just do this:

<MTOnThisDay>
...
</MTOnThisDay>

Keeping the <MTEntries/> tags in leads to some rather ugly recursion which is what you may have previously seen on the home page. It now looks as intended.

Incidentally I will be upgrading to the fully open source version of Movable Type 4.1, now that it is available.

Movable Type 4.01

| 3 Comments

As you can probably gather from the post title, I'm now running Movable Type 4.01, which is a 'recommended' update that fixes one potential XSS vulnerability and lots of bugs, some of which improve performance especially when rebuilding static pages. There are, however, no new features.

More OpenID Sign-in Goodness

Thanks to a couple of new plugins, I've added support for the Wordpress.com and AOL OpenID profiles. This means that you now only need to enter your wordpress.com username, or your AOL or AOL Instant Messenger username, to sign-in to post comments here. This is in addition to support for Livejournal and Vox, as well as any other OpenID service through the usual method.

More things working

| 5 Comments

Now that Movable Type 4 is stable, I've started upgrading some of the plugins that I have on here. Some of the plugins I used with 3.3x are now obsolete, as they're either included with MT or have been integrated with the application itself. But there's some that are still needed in MT4 and not all of them will work with the new version without being updated.

Though there is no new version, MTLJPost has been re-enabled so cross-posting to LiveJournal has recommenced, which should be good news for those of you who choose to read this blog over there. Fast Search has also been updated so that it works again, which means you can use the lovely fast PHP search system and not MT's own CGI-based system which is terribly slow (but that's because I don't have fast_cgi or mod_perl on here to make it faster).

There are still issues with TypeKey signins, I believe - quite whether this is a lingering template issue or what I don't yet know, but I'll look into it more as and when I have time.

Movable Type 4.0 is out

| 1 Comment

Movable Type 4.0 (the final edition) is out and so I've got it up on here. Seems to be working okay, but let me know of any issues. Still unsure whether TypeKey signins are working yet.

Movable Type 4.0 RC2

| 2 Comments

Since it came out last night, I've upgraded this blog to Movable Type 4.0 RC2. Not sure what's new as the changelogs haven't been published yet, but so far I've noticed that the rich text mode now produces properly valid XHTML.

I'm aware of an issue before the update of TypeKey basically not working at all, and some people can't use their OpenID sign-ins here either, so I'll look into those and report any remaining issues to SIx Apart.

Update: Feh, would appear that TypeKey still isn't working.

Update II: Still not working, even on a newly-created test blog. Even more exasperatingly, some other people have got TypeKey working in MT4, so I'm unsure what the problem is. In any case, I've reported it to Six Apart so hopefully they'll be able to work something out.

I'm also trying to get to the bottom of the reason why I haven't been receiving comment notification emails. I've added the Mail::Sendmail Perl module in the hope that it'll kick it into life.

Fixing things

| 3 Comments

So now that I've got Movable Type 4 running on here and the basics are working, I now need to get the bells and whistles that I had previously back up and running.

  • Smilies are now working in entries and comments :) .
  • I've fixed the issues with OpenID/TypeKey comments that appear when you preview your comment by updating the JavaScript used to MT4's version (and not a cannibalised version of the MT3 defaults like before)
  • At my end, I'm not receiving email confirmation of comments when they're posted, even though I should be and did before the upgrade. Not quite sure what's up there. Update: Just received one, so either it's a fluke or they're magically working again.
  • You may not be able to comment anonymously on some recent entries because the comment challenge box isn't there - that's because I forgot about it until late last night and didn't rebuild everything. Yes, I still use static pages for entries.
  • The purpose of the sign-in link isn't very obvious - it doesn't make it clear from the outset that you can sign-in with OpenID or whatever. I'll fix this with some images.

I would have kept a shorter version of this as an addition to the previous entry, but Google Reader doesn't show updates to posts and so quite a number of you wouldn't see it. To be fair you're probably not interested anyway but nevermind.

Movable Type 4.0 RC1

| 7 Comments

I'm now running Movable Type 4.0 RC1, and in doing so blatantly ignoring the advice about not installing over a production environment. That said, I have backed up all 20 megabytes of the database, just in case.

MT4 is big - around 13.5 MB when unzipped - and on my 2 megabit connection took around half an hour to upload. Thankfully it's pretty easy after that as the upgrade is very simple, although as this is an early release quite a few plugins haven't been updated yet and so I've had to disable quite a few of them; though none of them are particularly big or important.

So, if you can read this then the upgrade was a success and most things are working. The interface is very different but I'm liking it so far.

Update: It's taken me a little while to get things working properly, mainly because of a MT template tag used in the wrong context on one of my custom templates (<$MTArchiveDate$> in the Entry template) which MT 3.x had no problems with but MT 4 seems to throw it's toys out of the pram over. To be honest it's not really MT's fault as the tag was in the wrong context, but it would be nice if this was told to me when the entry was saved. As it happens, it just said everything was okay and then didn't rebuild me pages for me, though thankfully I found out when doing a manual rebuild what the problem was.

Of the plugins I've had to disable, Fast Search is the one I'm going to miss the most - until it's updated for MT 4.x we're back to MT's default CGI-based search which is much slower. I've also had to disable the plugin which crossposts entries to LiveJournal for the time being - sorry LiveJournal people.

Other plugins which I've previously used have been folded into MT's core. OpenID Comments is now built-in, and so when you sign-in you'll have the option of using OpenID, TypeKey, LiveJournal or Vox to authenticate your comment. There's also the ability to add user accounts and so you'll be able to have your own account with this site in future if I enable the option, but as I've previously mentioned I'm sticking with allowing anonymous comments for the time being. Markdown and Smartypants are now built-in, as is SCode for providing image CAPTCHAs, although I'll still be using Comment Challenge which still seems to work okay in 4.0. Some plugins that are still enabled may or may not work, such as MT-Notifier which sends out the email notifications of new comments.

Rich text editing is now included, so you can format posts without having to use HTML, and it seems to work pretty well too - I'm using it for this post. In particular, adding images to entries is far easier than it used to be. There's also the ability to preview your entries as they would appear when posted (i.e. with your blog's design) and not just how the text will look.

I haven't had a lot of time to play with it, mainly because I've spent most of the evening retro-fitting my templates into the new software, but so far I'm really impressed.

Comment Challenge challenged

| 2 Comments

It looks like some of the spam bots out there are now taking the Comment Challenge plugin into account, as I've had some automated spam where the extra question has been answered correctly. Though I've always had some spam get through, until now it looks as if it had all been typed in manually by a human, and not the work of a spam bot. Comment Challenge, by the way, is the thing that makes you type 'elephant' when you post a comment here.

Considering it's been over 10 months since I installed the plugin I'm impressed that it has taken until now for the automated bots to work around it - I thought that something so simple would be trivial to work around. Obviously it wasn't.

As it happens, only 4 spam comments got through, and they were all junked by other anti-spam plugins (namely Akismet and SpamLookup) so they never appeared on the site. But it's a slightly concerning new development.

Timeouts

| 1 Comment

Those of you who have commented on this blog recently may have experienced timeouts when posting - i.e. you get a blank page rather than one saying thank you. This probably means that Movable Type is trying to do lots of stuff, and gets its processes killed by the server before it has chance to return something. It happens on the back-end a lot too.

So I'm trying out Six Apart's RebuildQueue plugin, which means that page rebuilds don't necessarily happen straight-away, but may be delayed for a few seconds. Though much of this site is dynamically generated, some parts are not and so hopefully this plugin will sort those aspects out.

Update: Scratch that - now the pages don't seem to rebuild at all. Back to normal now.

I also installed Subversion on my MacBook today, from source. It took a while, but seems to work.

Trying new LJ cross-posting plugin

| 5 Comments

As you may well know, entries I post to my blog also get cross-posted to my LiveJournal, since some people prefer to read it that way, and it's possible.

Up until now I've been using the ljcrosspost plugin, which works okay, but it's rather old (not updated in nearly 2 years) and not too easy to set up. However, I've now found MTLJPost, which does a similar job but actually hooks into the Movable Type user interface making it much easier to configure.

Feature-wise ljcrosspost lets you set the mood, music and avatar with your entries (though to do so really requires an additional plugin such as RightFields - see my guide) whereas MTLJPost just lets you associate a category on your blog with an avatar.

MTLJPost requires an additional Perl library called LJ:Simple which isn't included, but ljcrosspost also requires the complete Frontier-RPC libraries, again which are not included.

I'll give MTLJPost a try to see how well it performs. Overall it's a bit easier to install and use, and it certainly seems to work okay.

Plugin housekeeping

| 1 Comment

I've finally got around to installing the Fast Search plugin for Movable Type. It replaces the existing built-in search, which like the rest of the MT application uses Perl, with one written in PHP which tends to run much faster on most servers, particularly those like mine which do not have mod_perl or FastCGI available.

It's a nice plugin, and makes good use of MT's support for dynamic templates which makes the results page easy to customise. And it's much faster than the built-in search tool, which frequently times out on this site.

I've also updated OpenID Comments to version 1.7, and fixed a bug which was preventing the plugin from working. If you notice the following message in your activity log:

Plugin error: /var/www/mt/plugins/openid-comment/openid-comment.pl Can't locate object method "add_tag" via package "MT::Template::Context" at /var/www/mt/plugins/openid-comment/openid-comment.pl ...

...then open the file openid-comment.pl and add the line use MT::Template::Context; after use MT; - this seemed to solve the problem for me.

Threaded Comments.... sort of

| 4 Comments

I've implemented something resembling threaded comments here, which means that you can reply to specific comments previously posted on an entry. Each comment now has a small 'reply' link next to it - clicking that will let you post a response to that comment.

It's not true comment threading since the comments are still displayed in a flat form, but it should be easier to monitor discussions now. The legwork is done by Arvind's Simply Threaded plugin for Movable Type, which is in beta (but not readily available), and it's supposed to resemble the comment structure on Vox.

Go on, have some fun with it.

Movable Type 3.33

| 2 Comments

In what has to be the first security fix in a very long time, Movable Type 3.33 has been released to patch up several currently-undisclosed flaws which were found internally by Six Apart themselves. Though you can download the whole shebang again, in reality the changes only seem to affect a few files and therefore downloading a patch instead should make things easier. As you can probably guess, 3.33 is now running on here.

Note that the vulnerabilities also affect Movable Type 3.2, and possibly even older versions if they're still being used. Remember that as with the 2.6x series, the personal edition MT 3.3x has no limits on how many authors or blogs you can have, so there's little reason not to upgrade.

Movable Type 3.32

| 3 Comments

Movable Type 3.32 is available and so I've upgraded. It's a bug fix release, but one that supposedly fixes the annoying text-wrapping bug in comment and trackback notification emails, which is nice.

I'm also considering trying out FastSearch, which replaces MT's search system with one in PHP that's much faster and doesn't kill puppies use up all of your server's CPU.

On a totally different note, apparently yesterday was a bad day for relationships - somehow someone has worked out that August 30th is the day couples are most likely to have an argument. Hari and I didn't, but then she's over a hundred miles away and I only spoke to her briefly on the phone yesterday.

Sausages are required

| 7 Comments

Along with the upgrade to MT 3.31, I also installed Jay Allen's Comment Challenge plugin. It's a very simple, and at least for the time being, very effective anti-spam plugin for Movable Type, that adds an extra compulsory field to the comment form.

Right now, this means that when commenting, there's an extra box where you need to type the word 'sausage' in order to allow your comment to be accepted. Spambots aren't yet intelligent enough to pick up on these and so the field either gets left blank or isn't even submitted at all, which the plugin then marks the comment down as junk.

At present, you can miss the field out and your comment will still be submitted, however, it's likely that I'll have to fish it out of the junk folder (and I've already mentioned today just how many junk comments I'm getting). I will probably change this soon though - in future, you'll be told that your comment wasn't submitted and asked to fill the field in. This should mean a lot less work on my part.

It's not a silver bullet against spam - in fact, it's pretty crude - but it works for now, and gives me time to look for more permanent solutions. I'm pained to use JavaScript or image verification because of the accessibility implications. I may investigate the use of magic tokens as well, but I don't yet know of a plugin which offers it.

But, for now, please remember to serve a side order of sausage with your comments.

Update: This morning I fixed a bug which meant that the sausage was silently deleted if you previewed the comment before submitting, which meant that I had to fish 3 comments out of the junk folder this morning.

I'm also now mandating that you type the word in, as otherwise you'll get an error message.

Movable Type 3.31

| 2 Comments

I'm now running Movable Type 3.31 on here. It's been out for a few days now but I've waited until the majority of the plugins I use have been updated for it. Although some plugins from the MT 2.x era will still work, those that offer more advanced features won't, but thankfully all but one of the plugins I have seems to work correctly; the exception being OpenID Comments, so signing in with OpenID may mot work for the time being.

Part of the fun of upgrading has been moving my quickly cummudged tag implementation to fit in with 3.31's built-in tag support, which is rather more complex (but also more scalable). I ended up writing a PHP script, which seemd to work at first glance but actually hasn't - not all of the tags have copied over and some entries have tags that they shouldn't (articles about Internet Explorer 7 getting tagged with 'aceofbase', for example), which is nice. I'll get it sorted soon enough.

Overall I have to say I like the new release, and seems to feel faster too. I'm unsure whether I'll do a full review, considering that I don't have a lot of free time at present, but if you're using an older version of Movable Type (especially if it's older than 3.2) then you may well appreciate the update.

Making the most of SpamLookup 2.1

| 7 Comments

With the release of Movable Type 3.3 approaching, I felt it was time I updated my Making the most of SpamLookup guide to feature the enhancements made with the new release. Most of the information here still applies to version 2.0 of SpamLookup, included in MT 3.2, but I've expanded some bits so it's probably worth a read again even if you're not contemplating a move to MT 3.3 just yet.

More tinkering with MT 3.3

| 1 Comment

I've had more time to play around with Movable Type 3.3 Beta 1 on my Mac. The bugs I mentioned last time seem to have gone away, despite my best efforts at reproducing them - I'm guessing it may have been some cached JavaScript or some other FastCGI problem that was fixed after a reboot of my system. So it's now working fine, which is nice.

The tags support offered by MT 3.3 is actually very good - it creates another field on your 'edit entry' pages and tags can be separated either using spaces or commas. They do not affect the use of categories, meaning that you can add entries to a category and also assign tags to them, nor do they replace the keywords field which is still there. I'm currently using the keywords field for my bespoke tags system on this site, but I can easily move over to the new field with a few SQL queries. Each weblog also has a tag management screen where tags can be batch-deleted or changed. Currently, visitors cannot assign tags to entries but by the sounds of things every plugin author and his dog is currently trying to change that.

The search system has seen some attention, and fixes one huge gripe that I've had with it ever since it was introduced in Movable Type 2.5, back in 2003. Until now, the template for the search result pages has been stored in a file which has to be modified over FTP or in the file system, as it's not reachable through the MT admin interface. Now, a 'System' template has been added to edit this, thus making it much easier to edit. The search system has also been updated to allow for tag searching, and you can subscribe to feeds of search results.

In fact, feeds are everywhere. Weblog administrators can subscribe to feeds for new comments, entries, trackback pings and activity log entries, and search results can also be subscribed to, as can new tags. My only worry is that these feeds use CGI scripts which for some sites may lead to greatly increased load if an environment like FastCGI or mod_perl isn't available - a PHP version of this using dynamic publishing may have been a better method.

Importing entries has been made a bit easier, as you can now use a form to upload entries from your computer rather than needing to transfer them by FTP. And the settings default to a 'simplified' view which hides many of the less-important settings. They're easily available to view if needed.

Many of the other changes have happened behind the scenes - new template tags are available, particularly for tags and search results, and there's some new stuff that plugins can do.

As I said, it's not a huge update like 3.2 was over 3.1, but there's some nice changes there. I'll be upgrading this site to it in the coming weeks.

Running Movable Type 3.3 beta 1

| 1 Comment

I now have Movable Type 3.3 Beta 1 running.

But not here. Since this is the first beta, I'm not going to install it on this site just yet, in case it happens to be majorly unstable or something. Instead, I upgraded the copy of MT on my Mac, which only has a few entries and a couple of test comments.

The upgrade experience is basically the same as last time, which was a huge improvement over prior MT versions. You upload the new files, then run MT as normal, however it'll detect that your database needs updating and do that for you. Then you just return to the application and you're off.

There are a few bugs in this release - admin pages not loading properly seems to be the main one - and the update is not quite as seismic as the upgrade from 3.1 to 3.2 was. In a nutshell, you get Atom feeds of things like your activity log, new entries and comments, the ability to tag entries without needing plugins and resizable text areas, but that was only after looking for about 5 minutes so I'm sure there is more to it than that.

The bugs may well be down to my somewhat non-typical setup - a locally-hosted copy of MT on Mac OS X using SQLite and FastCGI - a 'MASP' system, as opposed to LAMP which is what most people use. Hopefully they'll be fixed through the course of the beta. I'll upgrade this site later in the beta cycle.

Screenshot of Movable Type's spam analysis

Here's why I like the junk filtering in Movable Type 3.2. The screenshot is from an item of trackback spam, and though most of my comment and trackback spam doesn't trigger so many rules, when configured, MT will not rely on one sole rule for marking something as junk. It also actually tells the blog administrator why a comment was marked as spam, or otherwise.

In other words, say Akismet said that this was 'ham', i.e. not spam - SpamLookup's rules would work against it, and as the overall average feedback score would be less than 0 it would be marked as junk (comments which Akismet thinks are not spam get +1 instead of -1). And vice-versa.

The Movable Type Plugin Manager

| 3 Comments

Byrne Reese, Six Apart's Manager of Platform Technology, has released Plugin Manager - a Movable Type 'über-plugin' for managing plugins. It goes beyond Movable Type 3.2's existing plugin management system, which only lets you configure or disable plugins, and adds a simple install plugin install system and a 'Find Updates' button which lets you easily update existing plugins. It's modelled on Firefox's Extension Manager.

Such a plugin has been long-awaited - I seem to recall David Raynes attempting something similar in the MT 2.x days but not getting very far - and though Movable Type's built-in plugin support has improved considerably recently it's a welcome addition.

That said, the plugin is a bit of a pain to install, especially if you do not have shell access to your server. There are quite a lot of prerequisite Perl modules to install, with some having further prerequesites of their own, which may mean a lot of downloading and uploading. Also, only a handful of plugins actually work with Plugin Manager right now so it's usefulness is somewhat limited until the various plugin authors update their offerings to integrate with it.

But then, this is the first pre-release and things may well change in future.

New Movable Type plugins

| 6 Comments

A couple of interesting new Movable Type plugins came to light over the weekend, which I'm going to review here just in case you haven't picked up on them.

Mt-Akismet

This plugin allows MT to check comments and trackback pings with Akismet, a hosted web service by the authors of Wordpress which can help to verify if a message is spam, or otherwise. It integrates with Movable Type's junk scoring system - comments which are junk get 1 added to their junk score, and comments which are not get 1 subtracted from their junk score.

To use it, you'll need a wordpress.com account with an API key - see this page for details, but installation is simple. I have only been able to do some limited testing so far but I have had 2 false-negatives from it (spam comments which it said were not spam). However, because it integrates with MT's junk scoring system, other plugins such as SpamLookup can also affect the total junk score and in both cases neither comment was approved. It's still worth having though.

NotifyWho?!

When a comment or trackback ping is posted to an entry, normally it's the entry's author who receives email notification of this. But if you have a blog with several authors, only one of whom is the administrator, it means that the administrator does not get notified of comments. NotifyWho?! lets you specify precisely who gets notified about comments. I haven't installed this one yet since I'm the sole author here, but if, for example, I gave Hari an account and she posted a couple of entries, then she'd get the notifications and not me. NotifyWho?! would allow me to force all notifications to come to me.

What MT plugins do you use?

| 8 Comments | 1 TrackBack

Yesterday I mentioned that I have 39 plugins installed in my Movable Type installation. Jake asked which ones they were, so here's a list:

Disabling plugins

| 1 Comment

Although this site is due to move to a new server next weekend, I've managed to alleviate the timeout problems somewhat simply by disabling any plugins that I don't need. I have a grand total of 39 plugins in this Movable Type installation, and when a page is loaded the active plugins are loaded into memory in case they need processing. As you can imagine, this puts a lot of strain on the server and lately has lead to many operations, especially rebuilds, timing out.

Thankfully, I don't actually need all of those plugins. Some are installed merely for convinience - I've used them in the past and may use them in the future but right now they're not doing anything, so I could easily disable them. Even disabling just 5 plugins was enough to stop my pages timing out on this occasion. Unfortunately, I need the other 34 plugins for various reasons - cross-posting to LiveJournal, managing spam, adding acronyms and emoticons, OpenID and a whole load of template add-ons.

The situation should improve with future releases as apparently Six Apart are planning a code change that would only load the necessary plugins into memory, not all of them. This should make the MT experience much zippier, and will stop web servers breaking into a mild sweat every time someone rebuilds an entry.

Yesterday, I told you how to get your Movable Type blog cross-posting to LiveJournal, but at the moment it only sends across the entry and title. Today I'll show you how to get it posting your current mood and what music you are currently listening to, like you can using the LiveJournal interface.

To do this, we're going to use RightFields, an incredibly powerful plugin from Kevin Shay which lets you add extra fields to your MT entry screens and use the fields in your templates. The plugin is shareware, so if you decide to keep it then you should pay Kevin $15 (for personal use), but it's such a great power-user plugin I'm sure you'll see that it's worth it. You'll also need to be using Movable Type 3.2 for this step - using ljcrosspost on its own will work on older versions, however.

As previously mentioned, I've set up cross-posting so that everything posted to this blog also get posted to my LiveJournal. Here's how I did it.

Update (18th Jan 2007): Since this article was written in December 2005, Six Apart have released Movable Type 3.34 which has much improved FastCGI support and a better set of instructions for running it under FastCGI. I would therefore suggest that you follow Six Apart's guide, rather than my own, but it will remain here for reference or if you wish to try this with an older copy of MT.

This is probably a bit niche, but it is in fact possible to run Movable Type under FastCGI on Mac OS X, since I've just got it up and running. For the curious, the guide is presented in the extended entry.

Anniversary

| 1 Comment | 1 TrackBack

Today, by the way, is the third anniversary of my switch to Movable Type and the neilturner.me.uk domain. Previously I was on a random subdomain donated by a friend and using Blogger, with the RSS feed and comments being provided by external services. Back then I was using MT 2.21, which had only recently started supporting plugins and didn't have search, Typekey, dynamic templates, spam prevention or many of the other niceties that I now use regularly on here. I was also on a different host - I've since changed twice but been with the current provider for nearly 2 years.

The next big anniversary should be my fourth blogiversary, in January.

Making the most of SpamLookup

| 6 Comments | 1 TrackBack

Note: This guide has now been superseded by Making the most of SpamLookup 2.1, which is the version included in Movable Type 3.3. The new guide also covers SpamLookup 2.0 which ships with MT 3.2 and so you should read that instead. This page is archived here for convinience.

Since upgrading to Movable Type 3.2 I've dumped Jay Allen's MT-Blacklist and instead made SpamLookup handle comment/trackback spam on its own. The plugin is included by default on MT 3.2, and while it can do a good job as it is, you might like to try some tune-ups to make it more effective.

Running 3.2

| 9 Comments

Movable Type 3.2 Beta Tester Now that the final release of Movable Type 3.2 is out, I've upgraded. It seems a little zippier than the beta version I was running previously and should be more stable (not that I was aware of any stability issues).

If you're still debating whether to upgrade, or left MT for another CMS but are debating a return, here's what rocks about 3.2:

  • Plugins can now be enabled/disabled from within the interface, and it's possible to view a list of any MT tags that the plugin adds. Settings can be adjusted in the same screen, which means that installing simple plugins is now much easier since it's no longer necessary to give the CGI script executable permissions
  • Lists, like the List Entries screen, have some cool JavaScript stuff that lets you select multiple items with one click by holding down Shift, like in other programs.
  • The SpamLookup plugin is included by default, which when configured properly offers some pretty good spam protection. I'd suggest adding some or all of these Common Spam Words to the keyword filter (and yes, I know that's a link to Wordpress' Wiki)
  • New documentation
  • Trackback moderation and a new 'Junk' rating system which SpamLookup supports. Plugins can alter a comment or trackback's rating to be either positive or negative - those with a negative rating get put in the Junk folder where they can be easily deleted. This, combined with trackback moderation means that false positives can be saved more easily.
  • Redesigned interface with a new 'System overview' tool, allowing you to view all entries, comments and trackbacks across your weblogs.
  • Much improved installation and upgrading. Upgrading is now just a case of running the main mt.cgi script and no longer requires choosing the correct mt-upgrade-x.cgi script.

And I'm still scratching the surface. 3.2 is a very nice piece of work and well worth the upgrade, especially if you're still on 2.6x.

Update: I've installed MT-Notifier 3.0 as an alternative to the comments web feeds (which will be converted to Atom at some point). When you comment, you are given the option of subscribing to that entry's comments so that you'll be notified if any more are posted.

Abundance of blogs

| 2 Comments | 1 TrackBack

Although full details haven't yet been made available, starting with MT 3.2, all users can have unlimited weblogs on their installations. Back in May last year, with the launch of MT 3.0D, Six Apart limited you to 3 blogs in the free version and charged $70 if you wanted up to 5. The following month, this was changed; you still could only have 3 blogs (although 'blogs' was redefined as being 'websites' so a sideblog wouldn't be counted as another blog) but the $70 license brought with it unlimited blogs and $100 bought you unlimited authors too. The launch of ProNet also brought a free 5-author, 5-weblog license. Now, all licenses will have unlimited weblogs, although I'm guessing the author limits will still apply.

The software has never stopped you creating more weblogs and authors than the license allows, nor has it even warned you (other than in the included license document) - it's been purely based on an honour system.

In her post, Mena Trott says:

A lot of the rationale behind this was that the multiple weblog management is so good in 3.2, that we didn't want to have the limit anymore.

This is quite true. It is very handy to be able to have an overview of all comments and trackbacks on all the weblogs on my installation and be able to remove spam from all of them at the same time. I'm intending to do an overview of the bits of 3.2 that I like the most very soon, though first an upgrade to beta 5 is warranted...

Movable Type on OS X

| 3 Comments

I followed this guide yesterday to get a local copy of Movable Type running on my Mac. I'm looking into developing some of my template hacks into plugins so I need a test environment, and it lets me do development at home since we're still without internet.

The guide is pretty thorough and I did get it working, but here's a few pointers that might help you:

  • If you type 'make' in the terminal and get a bad command error, it's because you haven't installed Xcode. On my Mac the installer was in /Applications/Installers, but it may be on your Tiger CD. Be aware that XCode takes up 1.5GB of space.
  • The DBD and DBI::mysql modules have been updated since the article was written. Bear this in mind when typing in commands as the version numbers will be different.
  • You don't need to run mt-load.cgi in Movable Type 3.2 - just run mt.cgi and follow the on-screen instructions.
  • If your machine isn't connected to the internet (like mine), add the line NewsboxURL none to the end of your mt.cfg or mt-config.cgi file; otherwise, in MT3.0D and above, the Main Menu (and System Overview in 3.2) will take an age to load while MT tries to unsuccessfully contact Six Apart's server to update the news box.

Despite this, it is pretty easy to install MT on OS X, mainly because it includes Apache, Perl and SQLite out of the box.

If you notice the URL of this entry is different to the title. This is because I've followed these instructions and converted my file templates to use the Entry Basename instead of a 'dirified' title like before. Basenames are MT's equivalent of Post Slugs in Wordpress - if you have a really long entry title, you can replace it with something shorter so that the URL isn't miles long. MT has actually supported basenames since 3.0D was released last year, but they were set internally and couldn't be edited (well, not without manually hacking the database). Now, they can be edited along with the entry, so that you can customise them to your hearts content. Or stick with the default. Jay Allen explains the feature here and here's Mark Pilgrim's original 'slugs' entry from almost exactly 2 years ago explaining how to do something similar using the Keywords field in older versions.

The instructions I linked to at the start of the post are necessary to ensure that when you convert your file templates to use basenames the permalinks for your entries don't all get changed (and become not-so-permalinks).

Finally, if you upgrade to Movable Type 3.2 and don't see the Basename field, open an Edit Entry screen, scroll down to the bottom and click 'Customize the display of this page.' then enable Basenames. I had to do this to get the field to display - if you've previously customised your edit entry screens it won't display automatically.

3.2 Beta 3

| 4 Comments | 1 TrackBack

I'm now running Movable Type 3.2 beta 3 on this blog. Beta 4 is due out soon but I wanted to make sure that upgrading works okay on a large installation like mine.

So far everything seems to be working okay, bar two plugins: the one that inserts photos from Flickr, which I've disabled; and MT-Blacklist - the admin screen isn't accessible from the main interface (but works if you type the URL in manually). Certainly the upgrade went much better than last time. The upgrade screen is also now much prettier and uses some cool Javascript.

I'll need to have more of a play around with the system but so far I'm impressed with what I've seen.

Update: There was some funkiness with the FeedBurner feed which looked like a barf from the MTCollect plugin, however that seems to be working normally now, and the comments RSS feed initially wasn't working but should be now. I installed 3.2 into a separate folder to 3.17 and so I hadn't yet migrated the PHP plugin tags over.

Oh, and Beta 4 is out. Will now download.

Three point two take two

I now have MT 3.2 beta running, but as a separate install and a separate database. I've imported most of the entries into it and will gradually migrate over as time goes on. It certainly looks better and feels more powerful, but I've yet to really sink my teeth into the new system. Even Matt Mullenweg sounds impressed. :)

Bitten by a beta

| 10 Comments

I'm back to running MT 3.17 after a failed upgrade to MT 3.2 Beta. Although Six Apart do not recommend installing 3.2b over your production blog because it's, err, a beta, I did anyway. Unfortunately it froze while modifying the database tables to enable 3.2's new features and so I ended up with a part-upgraded database that made MT throw wobblies (that being the technical term).

Thankfully I'd done a dump of the tables beforehand so I just had to restore them, and then reinstall 3.17 over 3.2. This underlines why making backups is such a good thing, especially when doing silly things like this. I might try 3.2 beta again but I'll create a separate installation instead of upgrading.

I did, however, file a bug report with Six Apart as hopefully this will be fixed for the final version of 3.2 and so someone else in the same situation as me won't have to suffer from this.

Movable Type 3.2 Beta Test

| 1 Comment

You probably know that Movable Type 3.2 is on its way (especially since I blogged about it earlier). The final release is likely to be a few weeks away, but the good news is that beta test starts tomorrow. The better news is that, unlike previous beta tests, this one is public and not limited to a small set of beta testers picked out at random. This is arguably a good move - in the past, many of the beta testers have been running MT on LAMP servers which has meant it hasn't had enough testing in other environments and so not all of the bugs have been ironed out in those cases.

Although this is only a point release, from the looks of things this could easily be seen as MT 4.0 because of the range of new features - better comment and trackback administration, trackback moderation built-in, better tools for administrators, a plugin manager that lets you disable unwanted plugins and better documentation. And that's just what has been announced already.

Plugging into Flickr

| 3 Comments

I've installed the FlickrPublicPhotos which, despite doing the seemingly rudimentary task of just displaying the most recent images a particular user has posted to Flickr, is what I've been looking for for a while now. It replaces a bit of JavaScript that Flickr offers, so it means that if you browse with JavaScript disabled the images will now display. I'm also now displaying 3 images instead of just the one, and have changed the display a little.

Tagadelic Type

| 3 Comments

There's now an official tags plugin for Movable Type that allows you to add Flickr/Technorati/Delicious-style tags to your posts. I was about to start work on a plugin myself, using dynamic templates and based on the current implementation on here, but it looks like the work's been done for me and probably to a higher standard, too :) .

I'll certainly need to have a play with this plugin when I have some free time.

Movable Type 3.17

| 1 Comment

If you're not already aware, Movable Type 3.17 is out. Unlike 3.16 it is a comparitively minor release that just corrects a few specific bugs, and may not be necessary for all users. I've upgraded anyway.

If you are upgrading, here's a list of files that have changed - if you're already running 3.16, you only need to upload new copies of those files, rather than the whole shhbang.

Movable Type 3.16 on the way

| 3 Comments

Just had word that MT 3.16 is on its way next week. It fixes a couple of security flaws, but also has many, many bug fixes to fix niggles in the interface, as well as a few under-the-hood changes. It also promises to be a little faster.

If you're on the Six Apart Professionals Network, you can view the changelog here - otherwise you'll have to wait until next week. But I will say it certainly looks like a worthwhile upgrade.

Update: It's out. You can read the long list of changes here.

Brad Choate rocks!

| 4 Comments

Brad Choate has just released a beta of SpamLookup, a Movable Type plugin that builds on MT-DBSL to turn it into an all-round spam fighting beast. About to download and install it now, but it looks awesome.

Hacking Movable Type

| 2 Comments | 1 TrackBack

Hacking Movable Type is now available for pre-ordering. This was the book that I was involved with last summer but unfortunately had to pull out of due to other commitments (and my comparitive lack of MT talent...). However, Jay Allen, Brad Choate, David Raynes, Matt Haughey and Ben Hammersley have managed to pull it off without me, and if what I've seen of the book as an insider is anything to go by it will be a must-have for anyone interested in getting a little deep-down-and-dirty with MT.

Brits can pre-order all 300+ pages of it for a mere £14.44 (+P&P), Americans get it even cheaper at $19.79. I've just ordered my copy.

If you're still not convinced, have a read of an early draft of Chapter 9, which is all about the Atom API.

Pagination Nation

Thanks to Chad Everett's Pagination articles, the category archives are now paginated - you'll notice 'previous' and 'next' links at the bottom now. It's done using dynamic publishing and a bit of extra Smarty code.

One point that Chad didn't make is that this won't work if you have enabled caching, so you either need to disable it, or do what I did and only have it enabled for the other archives where pagination isn't desired. I did this by way of a regular expression:

if (!preg_match('/entries/',$_SERVER['REQUEST_URI'])) { $mt->caching = true; }

That code is somewhat specific to my MT installation - replace '/entries/' with the path to the archives that are paginated. Or turn caching off altogether.

Now if you'll excuse me I need to reboot again - Critical Updates has delivered its second not-particularly-critical update of the morning and keeps annoying me every 5 minutes because I haven't rebooted yet. The updates are, incidentally, a release candidate (!!!) of Windows Installer 3.1 and support for WPA 2.

Trackback Moderation in MT

| 7 Comments | 2 TrackBacks

One feature that, until now, was sorely missing from Movable Type, was trackback moderation - the ability to hold trackbacks in a queue before they are published to ensure that they're not spam (or simply unwanted).

Now Chad Everett has come along and created a new version of MT-Moderate which enabled moderation for trackback pings in a similar way to how comments are handled in MT3.x. Now, if you receive a trackback ping to an old an entry, it can be held in a queue instead of being posted immediately.

I would use it here but at the moment there's an incompatibility between it and SimpleComments, which is what I use for displaying comments and trackback pings together - under SimpleComments, unmoderated pings also show up. But it's still a very welcome plugin.

A few stats

| 4 Comments

The installation of Movable Type that I have on here has:

  • 5 weblogs (3 public, 1 private, 1 testing)
  • 3844 entries
  • 4068 comments
  • 630 trackback pings
  • 47 categories
  • 143 registered Typekey users
  • 7489 documents (both static and dynamic)
  • 24 plugins
  • 3159 MT-Blacklist entries
  • 105 templates

The database is 8.9MB in size. That's nothing compared to some sites but considering it hasn't shown signs of slowing down is quite impressive.

Blocking ASCII Comments

| 4 Comments

Last Saturday I was hit by a comment spam using the wrong character set. Well, it now appears that I can block ASCII comments. So comments made using the ISO-8859-1 character set will get blocked, whereas comments made using Unicode UTF-8 will be permitted. As this is what the comment form insists on, this would, in theory stop some of the comment spam getting through. I haven't yet implemented it but may consider it.

TypeKey and MT-DBSL incompatibility

| 2 Comments

It looks like there's a bug in Brad Choate's MT-DBSL plugin which affects TypeKey users. I have this plugin set up so that if someone posts a comment from an IP address that is on DBSL's list of open proxies, their post isn't shown immediately but put in a queue for moderation.

The problem is, if they're an 'approved' TypeKey author, MT doesn't recognise this. The comment will show as approved in the MT backend, but it won't appear on the site. In the comments table in the MT database, the comment appears like any other unmoderated comment, but there's no option in the MT backend to approve it since it reckons it's already been approved.

Currently the only workaround is manually editing the relevant field in the comments table to make MT show the comment. I could make a slighlty more elegant solution via a plugin, once I know some Perl, but for now I'd consider this a bug.

I am actually considering not using MT-DBSL in future as it seems to be causing more problems than it's solving - it doesn't seem to catch much spam at all in my case, but has been catching legitimate comments from a couple of regular commenters.

Movable Type 3.15

I'm a little late here, since most people blogged about this hours ago, but Movable Type 3.15 has been released to fix a security flaw which would allow some of the publicly accessible scripts, such as mt-comments.cgi, to be used for spamming. There is also a plugin available for users of other versions (including 2.6x) which will achieve the same effect, available from that link. If you're using MT, I would upgrade or install the plugin ASAP.

I would, however, like to congratulate Jay Allen and Six Apart for fixing this so quickly - it was only reported 3 days ago.

PHP TypeKey and Dynamic Publishing

| 3 Comments

I've spent part of this afternoon trying to get PHP TypeKey to work with Dynamic Publishing, which is a lot easier said than done.

I have now got it to work but not with the standard code. This is because you can't use standard MT tags inside PHP code blocks; instead, you have to express the tags as PHP object functions. PHP TypeKey needs this because the <$MTRemoteSignInLink$> and <$MTRemoteSignOutLink$> tags both produce output that is invalid HTML, so I use the htmlentities() PHP function to correct the character entities to make them valid. This means that htmlentities(<$MTRemoteSignInLink static="1"$>); becomes htmlentities($this->tag('MTRemoteSignInLink', array('static' => '1')));.

Another problem I encountered was with caching, which I had enabled as a way of reducing database load when generating the dynamic pages. With caching enabled, the message that said whether you were signed in or not would not be accurate, so that had to be disabled.

Once the above had been done, the system seemed to work okay, and I'm now using it over at Smaller World. I'll try to get a separate Dynamic-compatible version out at some point for those interested in deploying it themselves.

PHP-TypeKey 0.2

| 2 Comments

For those of you who implemented my PHP-TypeKey modification in November, you might like to check out version 0.2, in its new home at PHP-TypeKey page. It fixes the bugs in the original version and also comes as a ready-made template, adapted from the default MT template.

Movable Type 3.14

| 6 Comments | 1 TrackBack

No idea where 3.13 went, but Movable Type 3.14 has been released. This is the official version of MTpi that I've been running for the past few days. If you're using any version of MT, please upgrade, as it'll save your server from being driven into the ground during a spam attack.

My anti-spam arsenal

| 4 Comments

Elise is collecting together tips about how to combat comment and trackback spam for Movable Type users. To continue the theme, I'm going to use this entry to list the ways in which I prevent spam from getting through.

Six Apart speaks out

| 4 Comments

Over at movabletype.org, Jay Allen makes his first post as a Six Apart employee on the recent comment spam problems. Comment spam has been a problem for some time now, but the past few weeks have seen the problem rise to a level that some hosts are having to disable user's accounts because the load on the server caused by a spam hammering is causing problems for other users.

The article is very thorough, but that does make it a little lengthy, so here it is summarised into bullet points:

  • Six Apart thought the problem was caused by old versions of MT (pre-3.0). This wasn't the case.
  • There are two main bugs causing the unnecessary high load:
    1. Static pages are rebuilt even if a comment is moderated
    2. Lots of unnecessary database connections if dynamic templates are used.
  • These bugs have been fixed in development (so hopefully should be fixed in the next release).
  • For now, Six Apart recommends switching to dynamic templating and considering adopting TypeKey.

You can tell I've been working on PowerPoint presentations lately, can't you?

PHP TypeKey

| 10 Comments | 6 TrackBacks

This is something I've kept meaning to do but never got around to implementing - using PHP instead of JavaScript for managing TypeKey user information on the comments forms.

The current method is, to me, a bit of a hack. It involves calling a CGI script to read a cookie which checks to see if the user is signed in, and then some document.write() statements to vary the look of the comment form depending on whether the user is signed in to TypeKey or not. This can all be done using PHP.

Update: PHP-TypeKey is now located here.

Movable Type 3.12

Movable Type 3.12 Movable Type 3.12 is out, offering a variety of fixes to niggling bugs and faster rebuilds (and believe me, they are noticably faster).

The Entry Composition screen has also had an overhaul (see full size screenshot) and now has more styling buttons which apply to both the 'entry body' and 'extended entry' fields. While it's perhaps not as intuitive as the equivalent buttons in Wordpress, it's a step forward.

Securing your weblog

| 1 Comment

Movalog has a great article about securing your MT weblog using CGIwrap and suEXEC. Many hosts now offer this, mine included, and if they do it is a very good idea to take advantage of it for the reasons quoted in the article. Setting it up isn't too difficult and it will make your files a lot harder to hack if you do.

incidentally of the four servers my host runs, one of them uses suEXEC on all CGI scripts and phpSuExec, and the others will have it running soon. I'll be needing to make a couple of alterations to ensure everything still works but it's reassuring to know that everything is protected.

Going dynamic with MT

| 2 Comments

If you're debating over whether to make some of your Movable Type pages dynamic, have a read of this guide by Phil Ringnalda. It explains how it works in a non-technical way and how users on the front-end will see very little difference between the static and dynamic output. It's a must-read.

So now that I've upgraded I can fill you in on what you should do to make MT 3.1x work fast. I've covered some aspects in other entries but I'm repeating them here for the sake of completeness.

Waiting a bit

| 2 Comments

You should know by now that Movable Type 3.1 is out, and this time it's a proper release and not a developer edition. That said, having read through some of the commentary on it, it seems as if this release is somewhat rough around the edges and there are things like the new dynamic templating support, when combined with add-in plugins, simply don't work. This is something I'm keen to implement here so I'm naturally a bit concerned.

Therefore, I'm waiting a bit. Normally this is against my nature - you should know by now that I'm almost always the first to install anything new and usually end up facing the consequences. But with the recent computer problems I've been having I'm simply not going to have the time to clean up if something goes horribly wrong. I'm sure it won't but I do have a lot of plugins on here and some, like those that Adam kalsey created, may well not get updated for MT3.1's dynamic templating system which could make things very difficult.

Once I'm more confident that everything will be okay, I'll make the change. I don't know when that will be, whether it's the result of MT3.11 or just that all the plugins I need now work. It will happen, just not now.

Update: Well, whaddya know. Movable Type 3.11 released :)

Going into print

| 12 Comments | 6 TrackBacks

Cover of 'Hacking Movable Type' If you read Ben Hammersley and Jay Allen, you may have seen references to "the book" recently. This is Hacking Movable Type, a 500+ page guide to getting deep down and dirty with MT and customising it to the extreme. And now I think it's time to let you know that I'm writing a couple of chapters for it.

It's very much a group effort - as well as myself, Jay and Ben, there are contributions from Matt Haughey, Brad Choate and David Raynes amongst others, and the foreword to the book is being written by Ben and Mena Trott themselves. As arguably the least known of any of those, I'm naturally flattered to be involved in such a project.

The book is still very much a work in progress but will be out later this year. I'll keep you posted. In the meantime, if you want to pre-order it, the ISBN is 076457499X and the publisher is John Wiley & Sons.

MT-Blacklist 2.0e is out

| 1 Comment | 2 TrackBacks

It's the news you've all been waiting for - MT-Blacklist 2.0 is out. This is an 'emergency' release for those using MT3.x to stop the tide of spam - it doesn't include all features just yet, although it does include everything I featured in my tour plus a couple of new options. It's also without any technical support at this stage, although there is a forum if you need any help.

That said, it is an utterly brilliant bit of programming and is pretty much mandatory for anyone who runs Movable Type and who has comments and trackbacks turned on.

Anil Dash has posted the new features of Movable Type 3.1. Unlike 3.0/3.01, this will be a full release and not a developer release, so there will be fewer backend changes and more new features on the frontend. Which is good :) .

Here's a summary of what to expect:

Dynamic publishing in PHP
you can have certain templates be generated on the fly (like in Wordpress) rather than having to rebuild them all the time. You can also make templates like your RSS feed static as before. Very cool.
Post scheduling
allows you to post entries that will automatically appear in the future.
Subcategories
This time, support for them is built-in.

The 6 winners of the plugin contest will also be available in an optional plugin pack, so you can get MT-Blacklist, XSearch/Plus, KoalaRainbow, MultiBlog, Markdown and Notifier all at once.

The release isn't due until the very end of August so there's a bit of waiting yet. There's no news on whether there will be a beta test like before, though.

Six Apart have announced the winners of the Plug in to Movable Type contest, and the first prize went to Jay for MT-Blacklist 2.0 (Here's his reaction). Jay gets a dual 2GHz PowerMac G5 with a 23" cinema display and Adobe Creative Suite CS, the lucky guy... :)

Other winners included third prizes for MultiBlog by David Raynes' and Markdown John Gruber - they both win 40GB iPods.

Well done to those who won, especially Jay. MT-Blacklist 2.0 is an awesome piece of programming - 1.x pales in comparison.

Auto-moderation

| 3 Comments

I'm now using MT-Blacklist's auto-moderation feature as a further spam deterrent. This is a new feature that comes with version 2 of the plugin which is in beta at the moment. Auto-moderation kicks in when your comment appears to fall into the grey area between a legitimate comment and spam, based on the following tests:

  1. You post a URL for a page on blogspot.com (as mentioned, Blog*Spot blogs are being used by spammers as doorways to their sites)
  2. You use swearing in a post. This is mostly to stop flames.
  3. You post a large number of URLs.
  4. You post a comment on an entry that is more than 6 weeks old. Comments are closed entirely on entries that are 8 weeks old.

If you do one of the above, rather than being posted right away your comment will require approval from me before it will appear on then site. If you use any other blacklisted URL then your comment will be rejected outright. This applies to trackbacks and comments from TypeKey users too.

MT-Blacklist will also allow you to block duplicate comments and trackback pings - in MT2.x, this required a couple of hacks to the MT source code.

Note that MT-Blacklist 2 is still beta quality so it's possible that there will be some hiccups. Bear with me.

MT-Blacklist installed

| 2 Comments

As promised, Jay has delivered a pre-release version of the new MT-Blacklist for MT3 users. It's not yet officially out as this is a private test, and there are some quite big bugs with it. However, for the most part, it appears to work.

It's been rushed because it needed to be ready for the Plug into Movable Type 3 Developer's Contest, the deadline for which has now passed. I'm sure a public release will come soon once the bugs are ironed out. In any case, it's installed here, there shouldn't be so much trackback spam around, although thankfully the spammers haven't been so prolific over the past few days.

This new version of MT-Blacklist is awesome. There are some very nice new features in it, and it integrates much more closely with the MT interface.

The new MT Blacklist

| 2 Comments | 2 TrackBacks

Very soon (as in a matter of days), I'll be testing the new MT3-compatible version of Jay Allen's MT-Blacklist. Jay has sent me, and a few others, details of the new system and I have to say I'm pretty excited about it. I won't reveal anything much more than that, but, suffice to say, when it comes out I'm sure you will all be pleasantly surprised by what it can do :) .

It will be needed as I have been getting quite a bit of comment spam lately, which I've had to remove manually. Having something automated again will make the experience much nicer.

NetPBM working

Thanks to this guide I've got NetPBM working on here. For the uninitiated, NetPBM is a replacement for ImageMagick which lets scripts manipulate images. In Movable Type, this allows you to create thumbnails of uploaded images. I actually got it working fine for Scrapie some time ago but for some reason I never got it working here until today.

In any case, if you want to set it up on your site, I'd recommend using this distribution of NetPBM which is somewhat more up-to-date than the one offered in the tutorial (by 3 years... ).

Six Apart have announced a new pricing structure for MT3. The article has the full details, but in a nutshell, the licenses are as follows:

  • Free Edition - free, limited to 3 weblogs and 1 author (unchanged)
  • Personal Edition - $69.95, now has unlimited weblogs and up to 5 authors
  • Unlimited Personal Edition - $99.95, a new package with unlimited authors and unlimited weblogs
  • Commercial editions - now licensed solely based on the number of users, starting at $199.95. Includes unlimited weblogs on all levels.
  • New pricing for Non-profit organisations and educational institutions

The Personal Edition prices are for the lifetime of the 3.x release, so updates to (for example) 3.1 would be free, and discounts for version 4.x will be offered too.

The new structure should satisfy many of those with large installations who were facing several-hundred dollar fees - I especially like the 'unlimited personal edition' package.

I promised this a few days ago, so here it is - a review of Movable Type 3.0 Developer Edition. Screenshots are included - click on them to see them full size.

Movable Type 2.661

| 1 Comment

Yes, yet another update. Just a few minor changes but worth getting because it means the redirect script uses comment IDs as opposed to actual URLs, further diluting any pagerank boost.

A tip - I'd suggest going extracting the archive to a folder, then running a file search on it to show only those files modified in the past month. There's no need to replace everything there.

Movable Type 2.66

| 3 Comments

There's been a new, and somewhat unexpected maintenance release to Movable Type, which is now at 2.66. The new features aim to combat spamming, and include:

  1. A throttling measure so that comments from the same IP address can only be posted every N seconds, where N is configurable
  2. A measure to automatically ban an IP address based on an abnormal number of comments from the same address in a short period of time
  3. Changed the behavior of <$MTCommentAuthorLink$> to use redirects when linking to URLs given in comments. The goal of this is to defeat the PageRank boost given to spammers by posting in the comments on a weblog

(this was taken from the official announcement)

These fixes are very much welcome, and while they won't end comment spam on their own, if everyone was to upgrade it would perhaps take away the main benefit of spamming - the pagerank boost.

Of course, this is no comfort to Kim, who has just relaunched her blog today and will now have to upgrade MT... :)

Trimming your titles II

Sian, bless her little heart, passed on a few links from Brainstorms and Raves which has all manner of resources for fixing your links in MT so that they're a bit more user friendly.

(Actually that site has linked to me in the past)

It did inspire me to investigate which sites have been linking to some of my outdated not-so-permalinks, and setting up permanent redirects for them so that they work again. I'll also have a mosey through the trackbacks table in the database and pick up any more that I missed. Because the entry IDs have changed up to three times for some entries, setting up redirects for all 1300 or so entries I made before what I hope was the final change at the beginning of November will take days of tediousness, so, instead, I'm just doing it for the entries that have actually been linked by people.

Fortunately, Google, my largest source of traffic, has already rinsed its listings of any old URLs and replaced them with current ones.

I also had a look through the MT documentation and found that the <MTEntryBody> tag can take a words="n" attribute. This would be really useful for using in the URL - you can use, say, the first three words of the title, rather than the full thing, and you wouldn't get half words, like you would if you used trim_to="n". Alas, it only works with that tag and isn't a global attribute. Still, if you have a particular disposition to using long words it wouldn't make the situation much better - if one of the first three words is something like 'antidisestablishmentarianism' then the URL will still be long, in which case trim_to="n" will probably work better for you.

(and yes, I checked the spelling of that)

Trimming your titles

| 6 Comments

Although this is about blogging, I've also posted this to Rants because I haven't had chance to rant in a while. My rant is about blog permalinks with super-long URLs - 'Sending TrackBack pings indiscriminately makes you a TrackBack spammer' on Redemption in a Blog is an example of this. (side note: the article is worth a read)

Firstly, I'll admit this: since changing to using URLs which have the title in, the URLs have got longer, but then I tend to keep my titles pretty short. But, if I were to post an entry called 'The rather fantastic entry with the unnecessarily long name', I'd end up with an url like http://www.neilturner.me.uk/2003/Dec/28/ the_rather_fantastic_entry_with_the_unnecessarily_long_name.html. Catchy, isn't it?

So, ladies and gentlemen, I present to you the trim_to="x" attribute. This global attribute, which should certainly work in Movable Type 2.6+ and probably older versions too, will let you specify x, which is the maximum number of characters to use in the tag's output. I've used it on my template blog since I could forsee the URLs getting quite long, although I made the mistake of selecting 15 characters - 20 is probably a better number.

How do you implement it? Here's how I would do it: <$MTArchiveDate format="%Y/%b/%d"$>/<$MTEntryTitle dirify="1" trim_to="20"$>.html . Bung that into your archiving configuration and you're done. I'd do it on this blog if it were not for the fact that it would probably break all the permalinks yet again (if someone can tell me how to implement without doing that then I'd be most greatful).

There's also the matter of underscores, which I'd love to do without if I could. I'm sure I could use Brad's Regex plugin to do it but a more basic plugin which would allow me to add a removechars="_" attribute or something would be nice.

Closing comments en-masse

You may remember I closed comments for most of the old entries back in November by using a line of SQL which changed a value directly in the MT database. While this is fine if you're using an SQL database, there are a number of MT users who use BerkeleyDB, in which case that method would be totally useless to you.

Fortunately, David Raynes has a solution, albeit with a little help from Jeremy Zawodny. It adds another CGI script to your MT installation, where you can select an age (in days) of posts where you would like to keep comments open, and then it closes the rest. It can even disable trackback pings. And, crucially, it should work regardless of what database you're using. It's also nicer too.

Movable Type 2.65 and 3.0

As usual, almost as soon as I have to do a reinstall of Movable Type, a new version comes out. The full announcement is on the MT site.

2.65 is the latest version, which fixes another security flaw found in MT's XMLRPC server system. It also includes the fix to last month's notification flaw. As for additional features, an Atom 0.3 feed is included as one of the default templates, and a selection of new tags are provided to integrate that (removing the need for add-on plugins).

There's also an announcement for Movable Type 3.0, the next major version, which is expected early next year. We can expect a whole new interface, written in standards-compliant CSS (like TypePad already is), along with the ability to require registration for posting comments, better features for managing comments and trackback pings, more extensible plugin architecture and support for the Atom API, among other possible features which haven't been announced yet. It'll be a free upgrade, too. Looks good :).

Update: As you'd expect, every blogger and his dog is talking about it - read contributions from Andy, Frank, Jake and Jay plus Finally Atom and naturally Six Log.

Moving comments

| 1 Comment

You can't move comments between posts in Movable Type, right? Wrong. You can.

If you're running it through MySQL and have phpMyAdmin, then log in to it, select the 'mt_comment' table and then click 'Browse'. Find the comment you want to move and change the comment_entry_id to the entry ID of the entry you want to move it to. Then rebuild, and Bob's your uncle.

Chris Burkhardt will know exactly why I posted this :).

Ooops

| 1 Comment

I made a booboo. And, as such, I've had to re-install MT :(

Of course, after I'd wiped the database and run the re-install script it dawned on me what the problem was, but by this time it was too late. This means that all entries now have new URLs, so any links you have made to the site in the past year will need changing again.

That said, I do have a new URL format that should make Google like me even more - since the entry IDs would all have been different anyway, I thought this would be an ideal time to introduce the new format.

Another change is that comments won't have to be reviewed before they are added. I'm hoping that MT-Blacklist will be able to put a stop to any troublemakers. Now all I need to do is get everything back to how it was...

Worshipping at the altar of SQL

This morning I said that I would turn off the posting of new comments on all old entries. And I've done it already, thanks to SQL. If you want to do this yourself, and are running Movable Type hooked into an SQL database, then read on.

Getting a list of posts with no category

This was useful to me, so I thought I'd share. I've been trying to assign all my entries to categories - while all new entries since May (or thereabouts) were assigned categories when they were published, older entries were not. Over the past few months, when I've had the inclination, I've been trying to add categories, to posts, but I'm finding it increasingly hard to find entries lacking a category, and there seems to be no way in the MT interface to just show category-less entries.

Unique words

| 1 Comment

Here is a list of unique words. They are all words that have only appeared once on the blog (as of before this entry), generated using the MTWordStats plugin. I won't be generating this file very often as it takes well over a minute to build.

It is quite interesting though. Some words are so common, you wonder why they only appeared once (unless they weren't spelled correctly...). Some are so obscure, you wonder why you mentioned them. And some are just plain peculiar.

It's not an original idea - I've seen another blog with it, but I can't remember the URL.

Let's face it, creating backups is annoying, so we don't do it very often. And then when the system goes belly-up, you always find that the backup you have is too old. I had this problem some time ago when my host disabled my account without warning, leaving me to manually re-import around 100 entries from the raw HTML files that I managed to salvage. Unfortunately, I also lost about 6 weeks of comments and pings too.

While I was on holiday, however, I had a brilliant idea. When you export your entries for a backup, you are merely producing a flat text file. Why not create a template which can create this file on the fly? That way, every time you edit an entry, a backup copy is created that can easily be re-imported if the system fails on you. After a bit of tinkering, I think I've got it sussed, so here is what you need to do:

I'm feeling rather MT

There's a new Movable Type out - they're up to version 2.64 now. It's mostly a maintenance release but it finally sees the phasing out of RSS 0.91 and the introduction of RSS 2.0 by default. Yay.

It also has a fix for the CSS 'bug' that caused horizontal scrolling in IE in the default template - if you're using said template you may want to update the stylesheet to the latest version since it probably won't happen automatically.

Full list of changes is in the changelog. I'm downloading the update now. It's hard to believe it's been 3 months since the last release, but then I did have to reinstall everything a couple of months back when I changed hosts.

Supporting Movable Type

Another part of my birthday money went on a donation to Movable Type. I gave over the $20 (£12.50) to get a recently updated key, so when I update this blog it should poll to the MT home page, and I'll appear on the list of project donors.

Why did I donate? Well, firstly, Movable Type is something that I use every day - you can see that by how often I post. If I only used it once or twice then I may not be so inclined, but I almost rely on it, so I felt it was only right to show my gratitude for the effort put into it.

The fact that it is open source, and that donations are optional, was another factor - had this been shareware, I doubt I'd have even thought about using it. It's well programmed and I haven't uncovered any major bugs in it (apart from a few Trackback quirks in earlier versions).

The fact that I get greater publicity and possibly money off Movable Type Pro when it is released was also a factor in my decision. But £12.50 isn't much, really, considering what I've got out of it.

No more duping!

Kymberlie, I owe you one. She's just linked to an article on ScriptyGoddess which links to this article which explains a hack for Movable Type to force comments to only appear once, even if they are submitted several times. This was, of course, what crashed the server last time - some prat submitting the same thing hundreds of times.

The caveats are that it may only work on Movable Type 2.5+ and you need to be using an SQL-based database (so it wouldn't have worked on the old server where I was stuck using BerkerleyDB). But if anything it'll save me from having remove duplicate comments that some impatient people leave, despite the 'click the post button once' notice above the 'post' button...

Cleaning up XML-RPC with SOAP

When I had my old Blogger Blog, I used w.bloggar to post to it, since it offered a nice interface. But then, when I got to university, it stopped working - I'm guessing it was blocked by the firewall (no, I don't know why either...).

When I joined the Lockergnome B&B team, Chris recommended that I use it. So I downloaded it again, and tried to run it . It had no problem with LG's MT system, but when it came to hooking it up with my own, I was getting nowhere - all it would give me were HTTP 500 Internal Server Errors.

I couldn't immediately find any answer to the problem until today, when, by chance, I happened to have a brainwave. I remembered that the server didn't have SOAP support, which I knew was linked to XML-RPC - the communication method used by w.bloggar and other API clients. As my other methods of removing 500 errors had failed (checking that the file had been uploaded as ASCII, fiddling with the file permissions etc), I decided that it was worth a try.

And you know what? It works! In fact, this post is coming to you from w.bloggar. The interface has certainly got better than when I last used it (which was over six months ago), and it means I have a common interface for posting to both my own blogs and to LG. I'll still use the web interface primarily though, as that lets me edit comments and fiddle with the templates, but I'm happy that I've finally solved the problem.

The guide to adding SOAP to MT is detailed in the Movable Type installation guide. Note that the link it gives is dead - instead, visit this page on cpan.org and then select 'Download', or download it directly.

Movable Power

| 1 Comment

An interesting blogroll statistic: 75% of the blogs on there are powered by Movable Type. Of the 7 that aren't, 1 is powered by Blogger, 1 by Blogger pro, 2 by Ciaran's Journal Script and 1 by Blog - I have no idea what the other two (MozillaZine and Google Weblog) use.

By the way, here's a slightly amusing banner ad from the indespensible Dictionary.com.

Movable Type 2.62

Six Apart have found security vunerabilities in Movable Type 2.6 and 2.61. If you upgraded to either of these, then you either need to apply a patch, or upgrade to 2.62, which is the latest version and includes all of the fixes from 2.61.

It was typical that I chose to reinstall MT just before 2.62 was released...

Movable Type 2.6

| 1 Comment

This blog is now powered by the newly released Movable Type 2.6, bringing a few minor enhancements. You won't see much on the public side, but on the backend, I'll be able to 'close' the commenting on certain posts (so the existing comments will be shown but none more can be added). Support for PostgreSQL and SQLite may also appeal to some people. RSD support is now native.

It probably means that ComeBack won't work, but I don't see this as a big thing since I don't think anyone actually uses it yet. I'll keep an eye on the recently launched MT Plugin Directory for any updates to it.

Back up your MT files!

| 3 Comments

I'm not a big reader of Ain't too proud to blog, but I did take a look today to see if Robyn had posted anything about yesterday's space shuttle mishap. Sure enough, she has.

Anyway, in the entry before that one, she posts a timely reminder to back up your MT files (that's your templates and your entries), just in case your database files go belly up. It's based on an original article from The Girlie Matters, a blog that I've never read before, but one that looks quite good.

This is particularly important for me since I only have 20MB space, and it's likely I'm going to run out soon. However, the quota counter has been clobbered for some months now - it's been stuck at 5.16MB. I'm tempted to download everything to my HD and then measure how much space it's taking up.

Of course, if I do run out of space, I can top it up to 50MB, but then I'll have pay another £24 per year on top of the £37 I pay already (but it was a £37 well spent, IMO). But it's better to be safe than sorry.

Powered by Movable Type 4.34-en

Archives

About this blog

This is the blog of Neil Turner, a computing graduate in his mid-twenties living and working in Yorkshire, England. He is a Mac user, and interested in open source software, new media and internet culture. He also occasionally speaks in the third person, like in this paragraph.

You can also follow him on Twitter.

Subscribe to Blog

Powered by MT-Notifier

About this Archive

This page is a archive of recent entries in the Movable Type category.

Find recent content on the main index or look in the archives to find all content.