History and Acknowledgements
From MemberPlugin
This is like the credits section of a film - some lame song is playing that wasn't good enough to be in the movie, nobody cares who was the Best Boy unless it was their second cousin, and in this case there aren't even any outtakes with people falling over.
No wonder half of you have already left the cinema.
Contents |
Background
The member plugin came out of the Firefox Moderation Extension, which helps people moderate Freecycle groups. That was written by Edward Hibbert, one of the moderators in Edinburgh, in the UK. Originally Edinburgh was a Freecycle group, but as of September 2009 is a Freegle group:
The story of my life is one of turning a low boredom threshold into something constructive. Once I started moderating Freecycle groups I decided all those mouse clicks were far too tedious, and were seriously affecting the time I could spend drinking lattes in groovy cafes. So I wrote a little Firefox gizmo to help make moderating Freecycle easier. Now that’s snowballed wildly out of control, and I’m too busy working on that to drink any more lattes. That’s progress.
Having to moderate messages is not just something that gets in the way of lattes - it's an admission of failure, because it means we're not giving members good enough tools to get messages right in the first place. One successful such tool is the Message Maker, and this project takes that further, integrating that kind of function into people's browsers.
Erm, yes, moving on...?
This project is a collaboration between Edward and Nigel Mundy, who's a moderator on Eastbourne Freecycle. Edward handles the GUI and coding side (the froth, if you will, on the latte) and Nigel does invaluable backend infrastructure (such as hosting domains, this wiki and Subversion code management). Steve Fairbairn, who was a moderator on Bournemouth Freecycle, wrote the pages for editing preferences, before he was tragically killed in a car crash.
The group has been extremely helpful in trying out early versions of this plugin, testing on a variety of operating systems and browser versions, and suggesting which features should be included - and just as importantly, which shouldn't, to avoid making this nightmarishly complicated. Special mentions to Bill, Em, Ian, Ken, Nick, Ray, Steve and Trevor for helping test the very early versions, and Chris for some help with certificates.
The Techy Stuff
And I'm not kidding about the 'techy' part.
Internet Explorer
This is a Browser Helper Object, which is Microsoft's equivalent to Firefox extensions. It ain't pretty.
This article talks about how to build a basic BHO using Visual Studio. Pete Warden has collected some examples of how to write BHOs, including how to make HTTP requests. John Lister has an example BHO for catching refresh events. After experimenting with one way to handle cookies I added cookie support for that.
This gave me a basic working version - but I very rapidly got bored of implementing code easily in Javascript for Firefox and painfully slowly in C++ for Internet Explorer. So I reworked the BHO to provide a framework which loaded the same Javascript as the Firefox version, which means the bulk of the code is shared between Internet Explorer and Firefox.
Firefox
The Mozilla Firefox version is a straightforward Firefox extension. There are plenty of resources for writing these, and it's like walking barefoot over rose petals in dappled sunlight rather than, say, wading through 10 foot deep treacle with both legs tied behind your back and no snorkel.
