Posts filed under 'Programming'

Caveat Emptor

a hammer

an unsupported tool

‘Buyer beware!’ I’ve been editing the pages to do with the plugins I wrote for WordPress some time ago, making it clear they are officially unsupported (having spent years unofficially unsupported!). That’s what I’ve been saying on each page: Caveat Emptor. Though no one is actually buying them people are still downloading and using my plugins and I feel bad not being able to offer support, or bring them into line with new WordPress conventions and capabilities, or develop them further.

But the plugins still work if you don’t push them too hard — kind of like me!

Add comment May 28th, 2014


I’ve just posted a plugin update with some requested features and an obscure bug-fix (or a fix for an obscure bug?).

  • a new option to include attachment posts in the listings
  • a new output tag, {authorurl}, to point to the archive of an author’s posts
  • a beefed up {php} tag which can now include other output tags in the code
  • a fix for a variety of Similar Posts ‘none found’ bug: in some non-English locales MySQL was being fed ‘0,5’ instead of ‘0.5’

10 comments July 12th, 2008

Image Shadow: A New WordPress Plugin

I’ve released a new plugin, Image Shadow, which creates soft, realistic drop-shadows (frames too) for the jpeg images in your posts.

Thanks to David at PhotoLinkLove for the inspiration. You can see the plugin in action with the beautiful photographs on his blog.

9 comments June 28th, 2008

Post Plugins Ready for WordPress 2.6

I’ve just posted new releases (v. of the various post plugins. There are some bug fixes and several developments to Similar Posts including an optional new algorithm for choosing key terms to match and the ability to override automatic matching by making manual links between posts. I’ve also taken account of the new post-versioning system in WordPress 2.6.

June 28th, 2008

Still Adapting to Automatic WordPress Plugin Updates

I’m realising how differently plugin development goes when my plugins are hosted with WordPress Extend. Having the SVN repository has really simplified some things and made maintenance a lot less time consuming but I’m finding a big downside. My plugins seem to be perpetually in beta! I guess before I could upload a new feature or a bug fix and, if there was a problem with it, I could sort it out before more than a handful of users had been inconvenienced. Now, however, every new version gets wide distribution and every error has a wide public.

Yesterday, for example, I was puzzling over one person’s problem installing Similar Posts. It seemed the plugin activation code wasn’t working. I couldn’t see why until I noticed he was using WordPress 2.0. I installed the same version locally and quickly discovered the problem was with the function ‘plugin_basename’. Apparently it didn’t work correctly on Windows servers until WordPress 2.2. So I thought ‘Easy! I’ll create my own version that does work’.

It seemed obvious to me at the time that, since it was being used by each of the four post plugins, the new function ppl_plugin_basename should go into the Post-Plugin Library where the shared code lives. And so the nightmare began…

I had managed to create a circular dependency between the installation of the plugins. If I tried updating the Library the other plugins blew up. If I tried first to update one of the plugins the Library exploded.

The solution was to manually delete the plugins from the server and upload new versions with the dependency removed. Easy enough but I’m waiting for the deluge of disgruntled users who downloaded version during its brief lifetime and can’t use the automatic updater.

The WordPress Extend repository gives developers a wider audience: great … but that’s all the more people to mess up in front of!

How do all you other plugin developers use the repository to the best advantage?

1 comment June 4th, 2008

Post Plugins 2.5.0

Why does this release of Similar Posts, Recent Posts, Random Posts and Recent Comments get a clean new number instead of being called a beta? I guess it’s arbitrary! I can’t stop tinkering so in a sense the plugins are perpetually in beta but on the other hand bug reports are drying up (apart from the ones I keep introducing!).

I want to concentrate some more on Similar Posts for a while and try out some ideas that have emerged from reading on the subject. It is a challenge to find good matching algorithms that can be made speedy enough in PHP and not too demanding in memory usage. A few months ago I had a great system running but had to drop it when I moved from my local development server to my live hosted server which immediately froze from lack of memory.

The current release improves the Chinese/Japanese/Korean language matching by searching on bigrams instead of single characters. There are some much better algorithms in the literature but they cost too much in time and memory to be useful here. I hope the bigram scheme is good enough to be useful.

3 comments May 16th, 2008

Similar Posts and Pentecost

Similar Posts v.2.5b28 has just been posted.

Working on Similar Posts I have learned more than I care to know about the vagaries of MySQL, PHP, and Unicode. One particular issue that has so far resisted my attempts has been the satisfactory handling of content in Chinese, Korean, or Japanese (CJK).

Similar Posts uses the full-text indexes provided by MySQL to compare one post with another and the MySQL index is word-based. The CJK languages (I am told) are not based on discrete words — at least not words delimited by ‘white space’ — so they pose a big problem to full-text indexing.

My workaround (hack?/fiddle?/trick?) is to separate the CJK text into individual characters (while leaving single-byte encoded text alone) and use them as the basis for similarity matching. It is clearly not an ideal solution but I would love to hear from the users of WordPress blogs in Chinese, Korean, or Japanese if it is better than no solution at all.

The experiment has a couple of limitations: although not the ideal encoding for CJK languages, this method only works for now on blogs using UTF-8 encoding; also, to get around MySQL’s habit of ignoring words shorter than 4 characters long, each CJK ‘word’ is padded to that length, making for a rather large index.

To try this approach, use the Settings | Similar Posts | Manage the Index screen, set the option, and re-index. This setting overrides the other settings on that screen.

The reference to Pentecost in this post’s title is because today’s Feast celebrates the undoing of Babel.

2 comments May 11th, 2008

Some Big(-gish) Changes to the Post Plugins

Since bug reports for the post plugins have dwindled to a slow drip I thought I ought to make some substantial changes in the latest version (2.5b25) and get the flow going again…

In previous versions the {image} tag did its resizing just by changing the <img> tag’s width and height attributes. Now, in addition, it serves properly resized thumbnails.

For a long time Recent Comments has allowed you to sort its output by post or by commenter and include group headings in the output list. This capacity has been generalised and extend to all the post plugins. The plugin output can now be sorted according to any output tag. For example, you might want to sort similar posts by date rather than score — to do so you sort by {date:raw}.

Recent Comments retains the ‘group_by’ option (which simply overrides any other sort options) but other sort schemes can be used.

Both the changes above probably need some cleaning up so please mess about with them and find any bugs.

Finally, I have replaced the ‘trim_before’ option with the ‘divider’ option. This will break some existing output templates I am sure but they should be even easier to fix.

May 7th, 2008

New Beta for Similar Posts Plugin

The latest beta (2.5b22) attempts to address some of the issues users have been running into when upgrading. It fixes various conflicts with various configurations and tries to be give the upgrader as little work as possible. I will be very interested to hear whether the attempt has worked! If you run into problems (new or ones or old) please use the bug report screen under settings | similar posts to let me know.

One issue that I have addressed concerned indexing the blog. In an attempt to simplify matters I have made the initial indexing on first activation automatic and I have brought the index management under the settings subpages as some users found the separate Manage page complicated things.

I have had the occasional report of Similar Posts not working when the WP-Cache plugin is installed. I’d like to hear more, either way, if you try to run both. I can confirm that Similar Posts is working fine alongside WP-SuperCache on my development site.

Anyway… as the fireworks say ‘light the blue touchpaper and retire’!

April 19th, 2008

Post Plugins Almost out of Beta

I’ve just published version 2.5b15 of the post plugins: Similar Posts, Recent Posts, Random Posts, and Recent Comments. Thank you to all who have found bugs and especially for those who have tested and re-tested when I couldn’t reproduce the bug myself.

There have been particular problems with the installation of Similar Posts on some systems and with the behaviour of Random Posts as a widget (seems to be a language issue). If anyone has difficulties with these or any other bugs please contact me. The best way is via the Bug Report screen in the plugins’ options/settings pages but a comment or email will do if you remember to give me enough information about your setup to help me debug.

4 comments April 8th, 2008

Previous Posts


January 2020
« Dec    

Posts by Month