Two years of Mollom satisfaction

Davy started a meme: show off how well Mollom has been performing on your site over the past weeks, months or even years. I picked it up at Wim’s place. Here is the lowdown for my own blog.

2 years of Mollom satisfaction

To be more exact: Mollom was activated 703 days ago. Until now, 1,355 submissions were accepted and 23,999 rejected. Yesterday, Mollom blocked 12 spam attempts and accepted 0 ham messages. So far, Mollom blocked 13 spam attempts and 0 ham messages today.

Quite impressive.  The least I can say is that Mollom took away a big nag of mine. The gap in Q1 of 2009 was due to a critical bug which needed fixing in my code.  I ran Mollom in developer mode which means no real life statistics were recoreded during that particular timeframe. Apart from that, Mollom has been protecting my WordPress blog for the past 2 years and held on to it’s own.

Of course, you’re all probably eager to know whether I’m still maintaining the plugin. Yes, I am. Over the past few months, I’ve been working off and on to get a new version a the plugin ready. It will be a total rebuild with lots of improvements. I’m covering what’s to come and my own developer experience in depth in a future blog post.

So stay tuned!


Mollom goes onwards!

It’s been a few months since I’ve let anything out about the development of WP Mollom. Due to my freelancing activities, the project didn’t got the attention it really deserved. But now I’m shifting focus again, and I’ll be able to spend more time on this plugin in the near future.

First up: the development version contains a few fixes against several  bugs and typo’s.

The biggest issue I’ve fixed is a problem with non alphanumeric characters and foreign character sets which are not being rendered correctly. It’s quite an important fix actually so it needs some testing before I can release it with the next stable version. You can support me to achieve this in one of three ways:

If you’re just passing by:

I’m a firm believer in the old adage ‘eat your own dog food’ so I’ve installed the development version on my own blog. Just leave a comment and use the most weirdest characters you can find on your keyboard. Combinations of quotes, double quotes, slashes,… anything gives! If you’re native tongue uses a foreign character set: give it a try!

If you’re a blogger:

Download the latest development snapshot of the plugin, intall it on a your (test) blog, make a blogpost and use all kinds of exotic character sets (chinese, cyrillic, greek, arabic, vietnamese, etc.). Try to use the most weirdest characters and check for comments with missing or garbled content.

If you’re a developer:

Download the snapshot and review my code! The code which sanitizes the comment strings can be found around line 1377.

If everything works great, I hope to do a long overdue bug fix release later on this week.


Mollom 0.7.4 and more

One of my ongoing efforts is trying to get WP Mollom translated. I’ve put the plugin up on the wp-polyglots mailinglist and I’ve received several translations. Which was enough a reason to tag a new release. So, now you can enjoy the power of Mollom in these languages:

  • Vietnamese (vi)
  • Bulgarian (bg_BG)
  • Bangla (bn_BD)

I’ve already written about revising the codebase and making room for improvement. I’ve made a small list of things that are on my wanted/todo list.

  • More OO
    At this point, all the functionality is contained in 28 functions. These functions implement everything from the different calls to the Mollom API, over handling comment form input to showing a pretty graph. Although most functionality is comprised to it’s own function, there’s still lack of a good architectural design. I’ve come to a point now where adding new features or optimizing code means ripping apart large pieces of the plugin. For instance, the function that let’s the configuration page work contains code to handle the form but also to build and show the form. Boxing functionality limits the ability to reuse code or adapt it efficiently. Identifying separate segments of functionality and assigning them to their own classes and functions will make the plugin more agile and able to cope with change.
  • Implementing AJAX
    Over the last iterations, WordPress has incorporated loads of AJAX. This technology makes it possible to, for instance, moderate a comment without the need to reload the entire page. And as a bonus, add a nice colored fade effect. It would be nice to leverage the AJAX API of WordPress and make WP Mollom more userfriendly. AJAX in Mollom would not only be applied in the administration panel, but also made available front-end to theme developers.
  • Usability
    The current interface has already gone through several iterations but there’s still room for improvement. I’m thinking of several things. Instead of a percentage with no label, it should be a more visual indication of the spaminess of a comment. Comments that had a CAPTCHA should stand out more in the list. Pagination needs more refinement. The configuration page needs some rethinking. The quality indicator in the moderation module should be more verbose. I would also like to make the plugin more informative: a better breakdown of statistics and performance monitoring of the plugin.
  • Hooks
    Wordpress allows plugin developers to define their own hooks. This enables plugins to ‘hook’ onto each other. A nice example is Ozh’ Admin Dropdown Menu that allows plugin developers to define a custom icon through a hook. I would like to keep an eye out for places in the plugin code where functionality added through third party plugins can generate added value. Mollom is designed not only to protect comment forms, but any form that’s presented to an end user. So it would be a plus to make Mollom protection available to other plugins through well placed hooks.
  • Widgets
    Wordpress 2.8 will ship with a new improved Widget API. This enables plugin developers to write easy to create widgets which can display all kinds of neat things on your blog. An easy to install Mollom widget that displays the effectiveness of Mollom would be a nice-to-have.
  • WordPress MU support
    This is something I’ve been talking a long time about: adding support for WordPress MU. The current codebase doesn’t allow this in an easy fashion. Incorporating WordPress MU support is one of the main reasons to rethink the way the plugin should be designed.

It’s pretty clear this means going back to the drawingboard. Development should progress pretty fast though, since most of the code which is now in the current stable version, can be reused. One lesson I’ve learned is that I should to code the plugin against the development version of WordPress (in this case: bleeding-edge 2.8) to cope with the changes and make use of newest features in WordPress.

In retrospect, the plugin has been a project which I’m working on little over a year now. The log of wp-mollom.php tells me that I started working on the plugin itself (after testing the Mollom API and very premature versions in february-march 2008)  on april, 2nd of last year. So, a bit late: but happy 1st birthday WP Mollom!


Mollom blocks fifty million spam attempts

Mollom blocked over fifty million spam attempts since its inception. Just over two months ago, that was little over twenty-five million. Just in the past 24 hours, Mollom caught 480,000 attempts. This shows how important it is to get the best protection that can guarantee a clear user experience. It also shows that Mollom is getting more and more traction with over 7,000 sites protected.

As for the WordPress plugin, the development has been on the slow side in the past weeks and months. The plugin can  use more fine tuning. It still doesn’t support WordPress MU (well, there’s a hack). I’m planning to revisit the code to give that some more attention.

Anyway, I would love to hear how the plugin is performing on your site and what I can do to make it even better!


WP Mollom 0.7.3

Another month, a new release. I just tagged WP Mollom 0.7.3. It’s got the shortest changelog up to date, but the translations that are included make up for that.

  • fixed: multiple moderation would incorrectly state ‘moderation failed’ due to incorrect set boolean.
  • added: german (de_DE) translation
  • added: italian (it_IT) translation

Many thanks go out to Alexander Langer and Gianni Diurno for sending me their translations. With only 88 strings, translating the plugin doesn’t take that much time. So, If you could spare the time and you know your way around POEdit (or you’re willing to learn), just go out there and make this plugin easier to use for non-english speaking users of WordPress!

Of course, if you don’t use the plugin already: you can get it right here!


WP Mollom 0.7.2

I just released version 0.7.2 of WP Mollom. Here’s the changelist

  • fixed: closing a gap that allowed bypassing checkContent through spoofing $_POST[‘mollom_sessionid’]
  • fixed: if mb_convert_encoding() is not available, the CAPTCHA would generate a PHP error. Now falls back to htmlentities().
  • improved: the check_trackback_content and check_comment_content are totally rewritten to make them more secure.
  • added: user roles capabilities. You can now exempt roles from a check by Mollom
  • added: simplified chinese translation

So, for the most part, this release is about security related under-the-hood changes. Another great adition is the use of user roles. With previous releases, you didn’t have to pass the Mollom check if you were logged in. Which was a bit of a security issue in it’s own. This release allows you to exempt certain user roles from Mollom scrutiny.

Finally, I owe a big thank you to Donald for the great work he did translating the interface into simplified chinese and his numerous suggestions. Thank you!! I would like to encourage others to translate the plugin! German, French and/or Spanish, if you know them, now is the time to put them to use!

So, go grab it from WordPress Extend or upgrade your installation through the famous one-step intaller in your Dashboard!


WP Mollom 0.7.1

I just released WP Mollom 0.7.1. Here’s the changelog:

  • fixed: all plugin panels are now shown in the new WP 2.7 administration interface menu
  • fixed: non-western character sets are now handled properly in the captcha form
  • fixed: handles threaded comments properly
  • fixed: multiple records in the manage module not correctly processed
  • improved: extra – non standard – fields added to the comment form don’t get dropped
  • improved: revamped the administration panel
  • improved: various smaller code improvements
  • added: the plugin is now compatible with the new plugin uninstall features in WordPress 2.7
  • added: the ‘quality’ of ‘spaminess’ of a comment is now logged and shown as an extra indicator

Wishing all the best in 2009!


WordPress 2.7

Yes. WordPress 2.7 is out. Your favorite blogging tool has gotten a serious overhaul: a totally new administration panel, loads of bugfixes and lots of new features.

The plugin API has been extended: you should now use a seperate file to store all uninstallation logic instead of relying on the deactivate callback, options should be registered with WP (mandatory in near future versions) and the submenu structure onto which you can hook your own settings is revamped.

If you haven’t already noticed, WP Mollom 0.7.0 has some minor issues with 2.7. Most notably, The management panel disappears. Between boxing my stuff, frantic phonecalls and spending countless hours commuting through Flanders, I’m trying to get the plugin up to speed.


WP Mollom “O my god I can’t believe” 0.7.0

I just tagged major version 0.7.0 of WP Mollom in the WordPress Plugin Repository. Why a major leap (0.6 > 0.7)? Over the past month or two, in between my traveling and all that, I got my plugin taking full advantage of the great translation support in WordPress. So, it’s possible now to translate (or localize) the plugin in your own language.

Translation is very important because not everybody on the planet speaks english. Localization helps make WordPress more accessible and enables more people to pick up blogging.

WordPress, and the plugin, use GNU Gettext support for transparant and easy translation. Through userfriendly tools like POEdit, it’s very easy to translate all the strings which are contained in the interface of the plugin. All translations are bundled in a single .mo file which you need to upload with the plugin file. The code will pick up your translation depending on your WordPress settings. Of course, you can distribute the .mo file yourself or, even better, send it to me so I can bundle it with the plugin. Of course, where credit is due…

How can you help? If you are proficient in your own particular native tongue, you could pick up a tool and start translating. If you want to know more, you can read up on this tutorial. I’ve made a – provisional – example tranlation for Dutch which is stored in the file that accompanies this version of the plugin.


BarcampGent 2

Zaterdag trek ook ik naar BarcampGent 2. De vorige editie in maart heeft me, via Bunker, mijn huidige job opgeleverd en mag dus terecht een succes worden genoemd. Alleen vond ik mijn eigen presentatie toen zelf wat tegen vallen. Gebrek aan een goed onderwerp en voorbereiding eigenlijk.

Voor deze editie liggen de kaarten anders. Deze keer hoop ik een timeslot te vullen met, hoe kan het ook anders, een korte toelichting over Mollom en WordPress.

Rendez-vous zaterdag in het IBBT!