Simple Matter of Programming

Up until this morning, twenty people had checked the little button on my Comments page that was labeled “email me when someone replys to this”

Not one of those people had mentioned that it didn’t seem to make any difference.

It does now.

One of the things about the orignal Epistula concept was that of “triggers”, that whenever anything happened (A comment, an entry, a trackback) a number of things would be automatically triggered. In most cases, this would involve deleting the cache of the pages it affected so that they would be regenerated next time they were viewed (Epistula being a fried – as opposed to raw or baked – system, meaning that the first time anything is generated it is saved and instead of being generated next time it’s just lifted from the cache). That, along with the major work in the “seperating design from display from data” fields and a large number of other things were abandoned in favour of going back online when I was getting withdrawal symptoms from writing non-code things…

Anyway, the final result was that the trigger system got replaced by three things: deleteCache($item, $id), which deletes the stored versions related to any item, and two functions in the comments subsystem, one which emailed me whenever someone made a comment, and the other that sent me a Jabber message at the same time. That has been the state of play since December 2002 (October ‘03 in the case of the Jabber interface) with minimal tweaks. Now I’m working on the Triggers thing, which is fun.

The difficult bit (and the bit I’m still working on) is stopping it being abused. My current solution is to give two links at the end of the sent email (Currently it only does Email. Eventually triggers will include XML-RPC pings, SMS messages, Jabber messages, and deleting bits from the cache. Obviously the last won’t be available as a general preference, and the second (and possibly others) will only be available after some kind of authenication mechanism (Which all ties back to the istic.net plan, which proceeds apace). The two links (At the end of the sent email, pay attention at the back) contain options to a) delete the trigger or b) ban the action point (Which, in this case, is the email address) from ever being a trigger again (To stop serial griefers from creating triggers that match things that might happen lots and just recreating them when you delete them).

I think that this is enough to stop the thing being used as a harrasment tool, but would obviously welcome improvements…