On Wed, 19 Sep 2007, Simon Wistow wrote:

SW>1) The package based design
SW>2) No pluggable backend

Wirebird suffers a bit from this, in that I haven't gotten enough into the 
finer points of building packages and such. (I keep hoping to add someone 
to the project who can fix that sort of thing for me. Along with an 
SQL-optimization type person, a Javascript person, a web designer... oh, 
and a pony.)

SW>Email::Store was tied closely to Class::DBI which was best of breed at 
SW>the time. It would have been nice if it could have pluggable backends so 
SW>that you could have used whatever storage engine you wanted - 
SW>Class::DBI, DBIx::Class, Data::ObjectDriver even IMAP or a maildir.

Best I've managed there is an SQL phrasebook. You can have any kind of 
storage engine you want as long as it's SQL (though really, it wouldn't be 
hard to make Wirebird::Resource replaceable. But as with the packages and 
pluggables, I've gone for "get it working" before "get it working 
*right*".)

SW>3) Always keep a pristine copy of the message around

Yes!  I learned the value of that many years ago, and can pull up Phoenyx 
inbound messages from... well, from the days of 5 1/4 floppies, if I can 
blow enough dust out of the drives to read them and if they haven't 
bitrotted. It started out as self-defense for mailing-list maintenance 
("UNSUSCIRBE ME NOW!!!111!!! I DIDN'T ASK FOR THIS! i'LL REPORT YOU AS A 
SPPAMER!!" "Um, here's your signup post, with full headers. Perhaps you're 
suggesting your account is compromised? I can help you notify your ISP if 
you'd like."  Sometimes I miss the days when you could bash the 
technically illiterate because they didn't belong on the Internet...)

In any case, it's been invaluable, especially as I experiment with 
converting email to HTML.  (And worse, already-HTML email to some kind of 
standardized HTML.)

SW>4) That said, convert everything to UTF-8

Yeah, I *really* need to work on this.  MIME handling, too.

SW>5) Watch your timezones.

I worked for an airline, and quickly learned the benefit of having 
everything in GMT. (Epochal time would have been even better. Don't even 
get me started on situations when the aircraft could be operating on one 
"day" and the crew on another, or different crew members on different 
days, or... you get the idea. Or the beginnings of. You have to work 
with/for the FAA to appreciate the full horror. And then move to the 
banking industry to appreciate the relative sanity of FDIC/FSLIC regs.)  
Eventually Wirebird will display in whatever timezone the user prefers, 
but right now it's all GMT, and petty humans can just cope. (Or move to 
Greenwich, if it really bothers them.)

SW>6) Think of conversations rather than emails

Very much so, yes. The web forum thing enforces this (one thread per page, 
not counting long-thread pagination).

SW>It might be worth architecting it as a series of conversations rather 
SW>than being email specific. That way later you could add in UseNet for a 
SW>Deja News style affair (ok so UseNet is very much like email but there 

I have a proto-NNTP server (which works perfectly with XNews, not so much 
with less-compliant newsreaders, which is most of them. Make that "a pony 
who wants to develop an NNTP server"), because when all is said and done, 
I'd prefer to read things via a newsreader. (At one point, XNews was the 
only thing tying me to Windows on the desktop.)

SW>are differences) and maybe even more exotic things like blog posts 
SW>(which let's face it, with comments, merely an email thread), IM 
SW>conversations or SMS.

Yes, to Wirebird a blog is just a discussion group with higher 
restrictions on thread-starters ("blog posts") than on replies 
("comments"). Slap a bloggish template on it and there's no difference.

IM/SMS (and especially IRC) is still speculative; there's more of a 
cultural gap there than I think there is between web forum and mailing 
list. 

I've also threatened to make Wirebird a wiki, though I haven't yet decided 
if the thread-starter is the wiki page and replies are the 
discussion/comment threads, or if they're all wiki pages and the reply 
structure is the breadcrumb trail. I'm leaning toward the former, since 
wiki pages tend toward a less structured document tree. But that's down 
the road anyway.

SW>So onto that (the forum/ml idea). I like the idea and it's something 
SW>I've toyed around with over the years - give the people who want forums 
SW>what they want and the people who want a mailing list what *they* want 
SW>and they can be blisfully ignorant of each other (Yahoo! Groups sort of 
SW>does this as far as I know).

Sort of, other than their web interface is still amazingly difficult to 
use, far more like a mailing list archive than a even a "proper" web 
forum. Unless, of course, my suspicions are true and Y! keeps a special 
extra-awful web interface around JUST FOR ME and lets other people use one 
that actually works. But AFAICT there's no provision for tracking what 
you've already read, etc.

SW>I'm interested to see your progress and design ideas.

http://forum.wirebird.com/ is the theoretical home of Wirebird, though 
right now we're in the middle of changing hosting services (currently 
we're spread across a local ADSL server, a Dreamhost server, *and* 
whatever the heck the new hosting service is) and right now it's got the 
Phoenyx templates with a faked-up header to match the Phoenyx colors 
(www.wirebird.com has the proper colors), so it doesn't have the blog 
template in there. Changing servers got interrupted by a round of fall 
colds (you don't want me trying to fix templates while on decongestants) 
so the email side of things isn't actually up and running over there. 
(It'll accept mail (I think; it's a pretty new installation and I might 
not have it all set up right yet), but it'll just sit in the folder unless 
I get the daemon running over on that server.)

http://forum.phoenyx.net/ is the in-use installation, though I think I'm 
the only one actually using it in web forum mode, and new-user 
registration is slightly (okay, very) awkward right now... it's kind of 
transitional between the old style and the newer "lazy" registration mode 
(which attempts to implement a sort of bloggish drive-by-commenting mode), 
and because we automatically converted the existing Phoenyx readership 
it's not really well tested.  (In addition to moving servers, we're also 
trying to move house. And like I said, I keep hoping to add someone, or a 
lot of someones, to the project, because this is really huge for just one 
person. Just a *little* overcommitted here.)

Need to pester my sysadmin (who is not-coincidentally my husband) to 
settle on a version-control package and install it so I can have a public 
repository. I tried putting the source in TWiki(!) but he didn't take the 
hint (he's overcommitted too, since his company just went to Linux on the 
desktop and he's dealing with Groupwise (yes, sympathy cards are in 
order). Of course, then I'm back to the overcommitment: before I let 
anybody else see the code, I'd like to clean the cruft left over from 
refactoring, and put in some better documentation, but as long as I'm the 
only one on the project, I don't have the time for it. Catch-22.

Reply via email to