Benjamin Howarth

Code Gecko

Happy birthday to me... bye-bye spam

Happy birthday to me... bye-bye spam

As a lot of you know, I've been busy refactoring Blog4Umbraco over the last few weeks and months, trying to drastically improve it's fortunes to support lots of new features.

One of the things that has bugged me is that Akismet, the included comment spam protection service, is only licensed for non-commercial usage, and if you want to run a "commercial" blog (however you want to define that), then you have to pay them some money. Now, that's all well and good, but as a true Socialist (I vote Lib Dem, for anyone who wants to know) I believe that certain basics in life should either be free or be at substantially reduced cost - healthcare, education, anti-virus software, operating systems, CMS software... OK mostly software. I think spam-fighting kit, with 87% of the Internet's traffic being made up of spam in one form or another, is now a basic essential, and the right of every good Internet citizen to possess at the very least basic security to guard against it.
Anyway, I've found Akismet's "commercial" clause a little wooly in the past, as a site that isn't e-commerce, nor has adverts, may still be run by a company (hey, we're putting a blog on the new Code Gecko site), and therefore is techncially "commercial" in nature. Where does one draw the line? Answer: by making it free - as in both free speech and free beer.

So on this note, I decided to hunt out some free blog comment spam systems that would gladly allow commercial use, and found two of particular note:

  • BlogSpam.net - a nice open-source option, with a hosted service for those who don't want to run their own service, written by Steve Kemp. I reckon this'd be ideal for high-traffic sites, cause it gives you the option of running your own, which you can then performance-tweak as and when you want. 
    • Pros - no API keys;
    • Cons - few .NET wrappers (see below).
  • TypePad AntiSpam by the guys from Six Apart. These are the same guys that introduced the concept of TrackBacks, letting bloggers "ping" each other instead of just pinging blog aggregate services - an implementation of this is coming in Blog4Umbraco v3. Their implementation is great cause it's the identical API to Akismet, but with the "commercial use allowed" clause - great. 
    • Pros - Can use Joel.Net's Akismet API library with a simple modification;
    • Cons - said library requires recompilation, it's a hosted service, and requires API keys.

Now, both of these are lovely, but there's no .NET wrappers for either of them. And as Scott Hanselman and Linus Torvalds say, "talk is cheap, show me the code".

BlogSpam.net API wrapper

Joel.Net's Akismet wrapper for TypePad AntiSpam

The BlogSpam.net API wrapper is MIT-licensed, as is pretty much all my open-source stuff.
Joel.Net's Akismet wrapper is 3-clause-BSD-licensed, so I can't take credit for anything except one line of code which changes the API URL from api.akismet.com to api.antispam.typepad.com - look Ma, no hands.

I gladly released this on March 14th - aka International Pi Day (3/14... *groan*), and the birthday of Albert Einstein (14/3/1879, 132nd anniversary), Quincy Jones Jr. and Sir Michael Caine (both 14/3/1933, aged 78), Jerry Greenfield of Ben & Jerry's (14/3/1951, aged 60), and yours truly (14/3/1987, aged 24).

Happy birthday to me, and enjoy!