October 25, 2004

Jersey Girls and Spammer Jerks

I watched "Jersey Girl" on Saturday with Laurie and I must say I loved it :) I’ve seen other Kevin Smith movies like "Chasing Amy", "Dogma" and "Jay and Silent Bob Strike Back" and while they all had certain thought-provoking aspects, they never appealed to me emotionally the way "Jersey Girl" did. I don’t know if Keving Smith is growing as a writer and a director of if he is simply becoming one more "Hollywood" writer/director but what I can say is that I liked this one better than most of his previous works. It still had little touches which make it a non-run-of-the-mill movie – such as Gertie doing "Sweeny Todd" for the school (complete with slitting of throats and all :p) and Liv Tyler’s character which was so over-the-top and yet kind of true to life. Most people would probably say that Kevin Smith has sold out because this wasn’t a gritty, realistic, thought provoking movie but instead actually has a happy ending :p But I say, I loved it!!

Spammers seem to be evoking very harsh reactions these days. I’ve heard many people call them jerks (the title was just to go along with Jersey Girls – I really don’t think they are any more of jerks than the rest of humanity … people are just people :p) and even had a couple of users of WPBlacklist write to me and say that they should rot in hell :) I don’t particularly like spammers myself (notwithstanding me not thinking of them as jerks) and so I’ve been conducting my own one-man campaign to do what I can to stop people from being bugged by spam. I’ve been posting over at the WP support forums in response to every spam-related query and have even updated the WPBlacklist plugin in a frenzy of updates to make sure that it can do the best possible to combat spam comments. While I was doing all of this, I seemed to be safe from spam myself for the longest time except for a couple of comments every other day. That seems to have changed now :p Either somebody is determined to get me (no, I’m not paranoid :p) or the spammers have come up with a new set of scripts/tools which circumvent most of the spam deterrents that I’d already put in place. I’ve been getting a steady stream of spam comments since I woke up in the morning today – but the good news is that WPBlacklist has so far caught them all and deleted them instantly. So I sit here with a smug smile on my face saying "another spam comment gone" while the flood of spam continues to hammer at my site :p

Tags: , , ,
Posted by Fahim at 10:24 am  |  5 Comments

October 23, 2004

This week has been good coding-wise but unfortunately, none of it was on Blog :-( Speaking of Blog, the modified HTMLEdit component which fixes new entries losing all HTML tags when saved, is here. In fact, it has been here for over a week now. Unfortunately, I’ve been either too busy or too caught up in other stuff (like downloading and reading a whole bunch of comics :p) to really do much about it. The problem is not just laziness – it’s also the fact that I’ll have to work on a new area in Blog before I can do the next release. After I did my last set of changes, I thought I was ready for the next beta release but then Nigel ran that particular build through the mill and discovered a few problems – such as the fact that this new build of Blog does not make allowances for the More … tag. Any entry with a More … tag will publish fine if you publish via Blog but not on a remote blogging server like WP. I’ll need to introduce another change that I’d planned but hadn’t implemented yet – a different tab for extended entries and perhaps even another tab for excerpts – before I can do the next beta release of Blog.

Of course, while thinking about all these changes to Blog, I’ve been coding two new apps. I don’t know if either of them will ever be released publicly and would probably remain in that huge collection of half-done/non-public apps that I’m building up :p The first app is actually based on somebody else’s code and wasn’t coded from scratch as are my usual aps. Since I’ve been downloading a lot of comics recently, I found myself running out of hard disk space and needed to burn some stuff on to DVD. However, the nature of downloads being such, I really didn’t want to do a permanent burn because I knew that I might find a better version of the comic later or not want to keep it after a while because I didn’t like the art or the story. So, I decided to give packet writing another go. Packet writing, for those of you who might be wondering, involves formatting your rewritable DVD (or CD) disk in such a manner that you can use the disk as a hard disk – you can drag and drop files onto it from Explorer and you can even delete individual files instead of having to do another session for each burn you do. I had tried packet writing a few years back but hadn’t been happy with it but decided to give it another shot now that I had a DVD burner.

The packet writing actually seemed to work fine (touch wood) but I wasn’t sure if it had actually gone as smoothly as it seemed to :p I needed a way to verify that the files that I’d written to disk had indeed been written correctly. Now this was where my first application came in :-) I needed something which would create a checksum for files on my hard disk and then verify the checksum against the same files written to DVD and let me know if the files were copied over fine. You would think that was simple enough, wouldn’t you? Unfortunately, most of the software I found online wouldn’t do exactly what I wanted or wasn’t free or seemed to work but would end up telling me that all the copied files were invalid. I finally found the source for a Delphi app that I was originally going to modify to do what I wanted but once I got it compiled, I realized that it already did almost all the stuff I wanted and did it right :) So I just mucked around a bit with the interface since I wanted it to look a specific way and I was done.

The second application wasn’t that easy. Since I was downloading a lot of comics and most of them were in CBR or CBZ format, I needed something to read the comics with. While CBR and CBZ files are simply RAR or ZIP files and you can always rename them, extract them and then go through the individual JPG files, I just didn’t want to go through all that hassle. There is an existing application called CDisplay which lets you view CBR and CBZ files with ease and it’s free to boot but I don’t like CDisplay since it displays each page in fullscreen mode and I hate having any app in fullscreen mode :p So, I decided to write my own app which would work with CBR and CBZ files or even directories full of images and will work as a window. The app, which I named Tapestry, was easy enough to write and it seems to work fine but I’m not sure that I will release it publicly since it seems to be a bit slow in changing pages and that might be slightly irritating for any other user but me :p

While writing all of the above, I’ve noticed another problem with the new build of Blog – it seems to slow down the machine quite a bit and this is a fairly hefty, workhorse kind of machine too! I guess I’ll have to look into that before the next release as well …

Posted by Fahim at 7:50 am  |  No Comments

October 20, 2004

Blacklists keep on rolling :p

After the release of WPBlacklist 2.6, I got a couple of reports about a problem with the path in the installer utility. I had put the path in for my server where the WP installation is in the root server and had not tested things out thoroughly enough to catch the fact that this code would fail if somebody had WP installed in a sub-folder. I’d created a fix and was about to release a bug-fix release when a few other problems caught my eye. So I fixed all of them but then got caught up in some other stuff and didn’t have the time to test any of the changes till today. I guess comment spam is on the rise again because I’ve been getting a lot of reports from people who’ve tried the WPBlacklist plugin and found the error. So, to stem the tide of complaints, I decided to quickly test my changes and release WPBlacklist 2.6.1 :p Enjoy!

Update: Since everybody seems to link to this entry for WPBlacklist, I thought I’d add an update to point to the WPBlacklist page which actually has the latest version, which at the time of this update had a release of WPBlacklist which was 3 sub-versions ahead :p

Tags: , ,
Posted by Fahim at 9:49 am  |  54 Comments

October 12, 2004

Onwards and upwards

I can’t seem to stop working on the WPBlacklist plugin :p Now that it seems to work so well in combating the spam on my site, I wanted to add a few more features to make it even better. So, I added the option to allow the plugin to harvest spammer details from comments it automatically deletes. Then, I thought, "hey, wouldn’t it be good to allow the plugin to delete other messages which have already been held for moderation by the WP core?" So I added an option for that too – though I’ve actually turned that option off on my own site because I kinda like seeing what item on the blacklist triggered the deletion of the comment and I can’t get an exact item when the comment has been held by the core :p Anyway, it all seems to work fairly well.

I was about to release the plugin when I was notified by a user of another problem – the fact that if they added a URL manually to the blacklist, that it sometimes results in problems. This turned out to be due to another one of those regular expression related errors and so I fixed that as well and in the process, created another file to the growing list of WPBlacklist files – this time, to hold common functions. Since now I had a lot of files all over the place and the install instructions were getting complicated by different locations for the files to go to, I decided to make things simple by including the directory structure in the ZIP file so that all a user had to do was extract the ZIP file contents and then upload things just as they were :) So that’s all there is to the new release – which I’ve called WPBlacklist 2.6. Enjoy :)

Tags: ,
Posted by Fahim at 10:01 am  |  12 Comments

October 9, 2004

Funky Dung reminded me over on the RookSoft Forums that I had promised to make available a new version of Cee which supports categorization of fortune cookies. Now while categorization does nothin in the Cee app itself, the reason for introducing categories was so that people could display more than one cookie in Blog – yes, there are people out there who like the fortune cookie feature so much that they want to use it more than once on the same blog :p I had suggested that I could add a new attribute to the blog cookie tag so that you could specify which category to use for each cookie instance and this is where the categorization feature in Cee came in. I had forgotten to implement this and since Funky Dung reminded me and since there still seems to be no new release of HTMLEdit available so that I could get the next release of Blog out the door, I decided to work on Cee instead. So, yesterday I started on the categorization feature and it is more or less done. There are a few UI matters to be resolved so that all categories would display on the UI correctly but once that gets done, I guess I can release Cee 2.1 :)

However, I haven’t integrated the new change into Blog. So that would mean that I’d then have to go back to Blog and implement a category attribute for the cookie tag. Hopefully, I should be able to get that done in a day or less but as always, you can never be sure how things turn out till they are actually done …

Posted by Fahim at 9:13 am  |  No Comments

Spam free at last!

WPBlacklist 2.5 works like a charm, even if I do say so myself :p For the last couple of days, it has been catching and deleting all spam comments posted to my site without me having to lift a finger :-) I get e-mail notifications of comments deleted and what entry in the blacklist triggered the deletion and this lets me refine my blacklist even further by adding any missing stuff (like the author IP or e-mail) to my blacklist so that if the spammer tries again with a different set of URLs or something, he’d still get tagged by WPBlacklist. Yes, as you can see, I’m really pleased with my own work :p Now, all I can think of to add to WPBlacklist is a feature which would automatically harvest details such as author IP, e-mail, URL etc. from automatically deleted entries and add them to the blacklist so that I don’t have to even worry about doing that bit manually based on the e-mails that I receive. That’s not a top priority at the moment though since so far WPBlacklist 2.5 has been 100% effective in combating all comment spam posted to my site …

Tags: ,
Posted by Fahim at 9:05 am  |  1 Comment

October 6, 2004

Another day, another release

My work on WPBlacklist 2.5 (yes, I upped the version to 2.5 since there are a couple of major features in there as well as a complete revamp of the installation system :p) continued much faster than I thought and I now have a fully working release which has been tested on this very blog :-) So what’s new you ask? Well, the major feature is the ability to automatically delete comments which are marked as spam by the WPBlacklist plugin. Now while some people would like anything that is blocked to be simply deleted without them having to bother about it, I tend to be a bit cautious about stuff which is automatically deleted. So, I added multiple options to the WPBlacklist plugin so that the administrator can specify what exactly is deleted – whether only matching IPs or IPs marked as spam sources by a real-time blacklist (RBL) or an author e-mail which is marked as spam and so on. You can turn on only the options that you are comfortable with and have the plugin automatically delete comments which match.

But what if something accidentally gets deleted even under those conditions that you really wanted, you ask. Fear not because I thought of this too :p I simply added another option which tells the WPBlacklist plugin to e-mail you with the full comment contents when a comment is automatically deleted. If you don’t want to be bothered by e-mail, all you have to do is turn the option off (it is off by default anyway :p) but if you want to be careful, then you can still get e-mails of all deleted comments but not have to bother with comment moderation on your WP install – best of both worlds? I think so :)

I also had to update the WPBlacklist installer since this new release made it necessary for me to do some table structure changes. When I looked at the installer, I realized how unfamiliar with WP I had been when I first started coding the WPBlacklist plugin – because it was clunky and really bad code :p So, I went back and cleaned up the code and made the installer much more simpler and also better suited to upgrades as well. Now you can run the installer to update your database structures without having the installer delete your existing data. Yes, yes, I know that by now you’re probably wondering where you can download the new release from (if you’re reading this at all, that is :p) and so, without much ado, here is the link – enjoy :)

Tags: ,
Posted by Fahim at 8:54 am  |  8 Comments

October 5, 2004

Those persnickety bugs …

I’ve been using WPBlacklist 2.0 for a few days now and today all of a sudden, I discover not one but two bugs in it! The first one was something that has bothered me a lot with the original WPBlacklist 1.2 – the fact that you can use regular expressions in the blacklist but not all URLs that you add to the blacklist are regular expression safe :p So I’d added a bit of code to make the URLs regular expression safe but forgot to use that same code in some parts of WPBlacklist 2.0 :-( I corrected that mistake but at that point realized that the MT blacklist import code wasn’t working properly since it wasn’t taking in new entries even though there were new entries in Jay Allen’s centralized blacklist. I investigated the problem and discovered that a new bug had crept into the code due to some variable name changes. Fixed that too and then I had WPBlacklist 2.01 :p

In the meantime, I’ve been hit by comment spam again. It looks as if this particular spammer has a robot which is smarter than the usual ones – it goes through the index.php file, finds the comment script, parses the comments script and finds the particular variables that are used in the comment script and then submits spam using the information it just discovered. Of course, all this spam is being held for moderation by either the WP moderation system or WPBlacklist but I am getting tired of having to delete all that stuff off the queue later. So, I’m thinking of adding a configurable option to WPBlacklist where the user can specify whether to hold comments identified via IP, e-mail, URL etc. or to delete them immediately. I’d like to make the option individually configurable so that you can specify a different action based on the identification type but am not sure exactly how I’ll end up setting the whole thing up. This probably will be WPBlacklist 2.1 – no idea on an ETA yet though.

Tags: ,
Posted by Fahim at 10:38 am  |  No Comments

October 1, 2004

Oooh, that dirty, rotten spam!

I’ve been working on the next release of the WPBlacklist plugin whenever opportunity permitted the last few days. I’ve not been able to do as much as I would have liked due to the fact that I have guest at home at the moment and they take precedence. Fortunately, I’d done most of the work over the weekend on Saturday and Sunday and all that remained was to add the finishing touches and do some testing. I haven’t really tested the plugin as much as I’d like but it seems to work fairly well and so I think I’ll release it now since I probably won’t get the chance to do much more for a week or so :p

So what is new? I don’t have the time to do a full post here and so, I’ll basically copy over the feature list from the post I made to the WordPress Forum :p The new features are as follows:

  1. Better blacklist management (the ability to delete blacklist entries for instance)
  2. The ability to filter out comments based on not just a full IP but a partial IP as well
  3. The ability to check a real-time blacklist for spam IPs
  4. The ability to search existing comments using the blacklist or a given IP or search expression and then delete the found comments, if necesary
  5. The ability to mass-delete comments in the moderation queue while harvesting details from those comments (such as poster IP, URL, e-mail address) and to add them to the blacklist

If you want to get your hands on the plugin after reading all that, you can download it from here :p

Tags: ,
Posted by Fahim at 9:43 am  |  4 Comments