Re: Email::Store is dead! Long live Email::Store!
Christopher Nehren wrote: I've been working on cobbling together a modern mailing list manager written in Perl (Saddlebags), because I find it absolutely unacceptable that things like the dbic list are running on mailman. As a part of this, the subject of storing emails in databases came up. Obviously, we turned to Email::Store. Did anything happen with rewriting Email::Store and/or Saddlebags? My last write a mailing list manager was an attempt at porting the parts of ezmlm I don't like to Perl, but I couldn't find a good place between stick with how it works and redo everything to make it nice to work with. (Like all half-assed MLMs, it does run a few lists, of course). - ask
Re: Email::Store is dead! Long live Email::Store!
On Dec 19, 2007, at 3:36 AM, Ask Bjoern Hansen wrote: Did anything happen with rewriting Email::Store and/or Saddlebags? My last write a mailing list manager was an attempt at porting the parts of ezmlm I don't like to Perl, but I couldn't find a good place between stick with how it works and redo everything to make it nice to work with. (Like all half-assed MLMs, it does run a few lists, of course). You know, I could really use some help with Dada Mail - the last time this thread was active, my message I sent telling people about it was never posted. Anyways, the next alpha release of Dada Mail is looking pretty killer. If anyone is interested in helping with development, let me know what your pet project may be. Dada Mail is on its 8th year of development and is quite mature. It's userbase is in the tens of thousands. It's not a Mailman replacement (nor is it trying to be), but it does support discussion lists, archiving and can be installed by anyone who can tackle something like phpBB. It's not the tool for everything, but it's a good tool for lots of things. One of the projects I'd really love help on is getting a proper, make, make test, make install distribution and having it hosted on CPAN. Right now, I've just been working on the test suite, which has about 5,000 tests already. I'm personally not a comp sci guy - I graduated with an art degree, but I've managed to do quite a heap of work already. A lot of the code isn't up to the pep spec, but a lot of the code was written before pep's recommended CPAN modules existed. Another project may be to get it working with those modules - for example, replacing the MIME-Tools stuff with other things. One of the main goals of Dada Mail is to have it installed without needing any XS perl modules, so people who do not have CPAN (or don't know how to use) or a compiler can install it. Anyways, the homepage for it is here: http://mojo.skazat.com There's a discussion list about it here: http://mojo.skazat.com/cgi-bin/dada/mail.cgi/list/dadadev/ Sourceforge: http://sourceforge.net/projects/mojomail And the CVS: http://mojomail.cvs.sourceforge.net/mojomail/dada_mail_stable/ Development is getting pretty lonely, esp. since the codebase is getting so large - it's getting hard for me to be the only person hacking away at it. Anyways, just throwing that out there. I don't mean to take over the thread, but if anyone has any questions about the project, I'll be happy to answer them personally, -- Justin Simoni http://justinsimoni.com :: Art Portfolio http://skazat.com :: Sketchbook On Dec 19, 2007, at 3:36 AM, Ask Bjoern Hansen wrote: Christopher Nehren wrote: I've been working on cobbling together a modern mailing list manager written in Perl (Saddlebags), because I find it absolutely unacceptable that things like the dbic list are running on mailman. As a part of this, the subject of storing emails in databases came up. Obviously, we turned to Email::Store. Did anything happen with rewriting Email::Store and/or Saddlebags? My last write a mailing list manager was an attempt at porting the parts of ezmlm I don't like to Perl, but I couldn't find a good place between stick with how it works and redo everything to make it nice to work with. (Like all half-assed MLMs, it does run a few lists, of course). - ask
Re: Email::Store is dead! Long live Email::Store!
On Tue, Sep 18, 2007 at 07:40:04PM -0500, Karen Cravens wrote: Aside from Yahoogroups (they seem to have a personal grudge against me; most people don't have the same freaky issues that my account seems to), most of them work fine... as mailing lists. The problem comes when you try to maintain a community that includes a lot of nontechnical people, who are bizarrely attached to web forums. You end up with a split community, because sooner or later someone pops up and says I just set up a webforum! Let's go! and they do. Yes... I've definitely experienced that, and I definitely hope that someone comes up with a GOOD bi-directional forum / email list type thing. I think google groups has done a good job of doing this with USENET and with their mailing list system... I don't think too many other attempts have had as much success (that's perhaps because Google Groups is more like a webmail client than like a web forum). It seems to me that the gap here is cultural more than technical; the conventions and norms (as well as posting format) are one thing on mailing lists and newsgroups, and totally different on forums. And also there's the push vs. pull thing. I would love to see some software that does a good job of bridging the gap, though, because I have seen the split in community you describe. But that's a totally different matter from how I understood the original topic (let's create a perl based MLM just because). w
Re: Email::Store is dead! Long live Email::Store!
On Tue, Sep 18, 2007 at 07:40:04PM -0500, Karen Cravens said: So, uh, anyway. Where were we? Oh yeah. How 'bout that Email::Store? (Email::Archive?) There are a bunch of lessons that I learnt from working on Email::Store (I wasn't the original author) that I wanted to correct with a putative rewrite that I never got round to. 1) The package based design This was partly fallout of being based on Class::DBI but I diskliked everything being based on Package variables so use Email::Store 'dbi:mysql:mailstore'; Email::Store-setup; # Do this once Email::Store::Mail-store( $rfc822 ); Email::Store::Mail-retrieve( $msgid ); what I would have preferred was my $store = Email::Store-new(%opts); my $mess = $store-message($id); my $top = $mess-thread-top; which would have made $store2-add($mess); possible. 2) No pluggable backend Email::Store was tied closely to Class::DBI which was best of breed at the time. It would have been nice if it could have pluggable backends so that you could have used whatever storage engine you wanted - Class::DBI, DBIx::Class, Data::ObjectDriver even IMAP or a maildir. To be fair, I'm not exactly sure how this would work - some sort of declarative schema like Jifty::DBI maybe. 3) Always keep a pristine copy of the message around Err, that's pretty much it. It may mean that you bloat you index size but I think it's worth it in the long run. It means you can install plugins (if yours is going to be plugin based) or upgrade the system and add new functionality that you no is going to work and you never have to reindex your dataset. 4) That said, convert everything to UTF-8 Apart from the pristine copy (which should be outputted in ASCII) try and do everything in UTF8. It just makes things easier. 5) Watch your timezones. Another tricky problem that it's always best to be thinking of from the start rather than trying to retrofit. 6) Think of conversations rather than emails It might be worth architecting it as a series of conversations rather than being email specific. That way later you could add in UseNet for a Deja News style affair (ok so UseNet is very much like email but there are differences) and maybe even more exotic things like blog posts (which let's face it, with comments, merely an email thread), IM conversations or SMS. Especially given your webboard-meets-mailing-list aspirations that might be especially useful. So onto that (the forum/ml idea). I like the idea and it's something I've toyed around with over the years - give the people who want forums what they want and the people who want a mailing list what *they* want and they can be blisfully ignorant of each other (Yahoo! Groups sort of does this as far as I know). I think it may be worth keeping the three pieces loosely coupled i.e Mailing List Manager (like MailMan, Majordomo, Siesta or Sympa), Archive (Email::Store or Email::Archive) and web front end (e.g sort of Buscador or to an even lesser extent Pipermail, MHonArc or Mariachi). I'm interested to see your progress and design ideas. Simon
Re: Email::Store is dead! Long live Email::Store!
On Wed, 19 Sep 2007, Hans Dieter Pearcey wrote: HDPClose enough, I think. It's a really interesting conversation to have; web Oh, good, because clearly Sudafed (plus Diet Dew to combat the drowsiness) clearly makes me chatty. It would be nice to be able to say Let's take this conversation over to the Wirebird mailing list except, like I just said (buried in the lengthy, lengthy post to Simon), it's not fully moved yet. So I'm left with saying I just set up a webforum! Let's go! which sounds vaguely familiar somehow. But if this conversation *does* bother anyone, soon as I get past this sinus yuck and can focus on finishing the install, we can move over there. (Guess I could just turn on the daemon and hope for the best...) Of course, once I get off the Sudafed+Dew I probably won't be so inclined toward lengthy rants. Then again, get me started on what webforums do wrong and I'll rant without any chemical incentives. As evidenced in the PEPBOF at YAPCNA, though here it's harder to throw magnetic business cards at people. And beer. http://flickr.com/photos/gamehawk/655094745/ http://flickr.com/photos/gamehawk/708043939/ (I see that Boulevard isn't available in Chicago, so I reckon I'll be bringing another trunkful to YAPC2008. Not sure about Flying Monkey, but probably that too.)
Re: Email::Store is dead! Long live Email::Store!
On Wed, 19 Sep 2007, Ricardo SIGNES wrote: RSNo, I think enough of us have a vested interest in seeing this kind of thing RSdone properly. Don't encourage me. I'll start posting SQL schemas and stuff. And assigning tasks. And setting up a repository (thereby terrifying my husband/sysadmin; periodically I ask him things like Can't I just chmod 0777 everything now? or I'm going to set up Apache to run as root, is that okay? (Hey, *my* code is secure, it shouldn't be a problem, right? Heh.)) RSSeriously, I still think about that Boulevard beer from time to time. I wonder RSif my local beverage distributor could acquire a case for me. Hey, I'll happily ship whatever you want. (In better packaging than USPS Priority Flat-Rate, even. Though you can fit 9 bottles, I think it was, in one of those, if you don't bother with niceties like padding.) Cheaper, but probably less legal, than having your distributor do it. Speak now if you want any ZON, since they stop making it in August and I'm not even sure there's any in circulation now (might be able to reacquire a couple from the in-laws). Bob's 47(?) (Munich lager) is supposedly in production now, though I haven't gone looking for it or anything, and the Nutcracker (winter ale) is scheduled to show up in November.
Re: Email::Store is dead! Long live Email::Store!
On Wed, Sep 19, 2007 at 02:30:24 EDT, Simon Wistow scribbled these curious markings: On Tue, Sep 18, 2007 at 07:40:04PM -0500, Karen Cravens said: So, uh, anyway. Where were we? Oh yeah. How 'bout that Email::Store? (Email::Archive?) There are a bunch of lessons that I learnt from working on Email::Store (I wasn't the original author) that I wanted to correct with a putative rewrite that I never got round to. 1) The package based design This was partly fallout of being based on Class::DBI but I diskliked everything being based on Package variables so use Email::Store 'dbi:mysql:mailstore'; Email::Store-setup; # Do this once Email::Store::Mail-store( $rfc822 ); Email::Store::Mail-retrieve( $msgid ); what I would have preferred was my $store = Email::Store-new(%opts); my $mess = $store-message($id); my $top = $mess-thread-top; which would have made $store2-add($mess); possible. 2) No pluggable backend Email::Store was tied closely to Class::DBI which was best of breed at the time. It would have been nice if it could have pluggable backends so that you could have used whatever storage engine you wanted - Class::DBI, DBIx::Class, Data::ObjectDriver even IMAP or a maildir. To be fair, I'm not exactly sure how this would work - some sort of declarative schema like Jifty::DBI maybe. 3) Always keep a pristine copy of the message around Err, that's pretty much it. It may mean that you bloat you index size but I think it's worth it in the long run. It means you can install plugins (if yours is going to be plugin based) or upgrade the system and add new functionality that you no is going to work and you never have to reindex your dataset. 4) That said, convert everything to UTF-8 Apart from the pristine copy (which should be outputted in ASCII) try and do everything in UTF8. It just makes things easier. 5) Watch your timezones. Another tricky problem that it's always best to be thinking of from the start rather than trying to retrofit. 6) Think of conversations rather than emails All excellent points that I'm hoping can be addressed for Email::Archive. You've given me a great deal of food for thought, Simon. I especially appreciate the comments on breaking from CDBI's interface style. May I have your permission to (with full attribution, of course) reproduce this as part of an Email::Archive design document in the SVN repo? Best regards, Christopher Nehren
Re: Email::Store is dead! Long live Email::Store!
On Mon, Sep 17, 2007 at 03:18:08PM -0700, Steve Atkins said: I'd like a perl-based mailing list manager myself Myself and a couple of other people wrote a Perl based MLM called Siesta about 5 years ago. We did it for four reasons 1) To shut people up who said that there was no Perl based MLM 2) It allowed per user Reply-To munging settings thus shutting up even more whiners 3) Mailman can be kind of sucky, especially if you want to extend it. Siesta was plugin based which kept things clean and simple. 4) We were employment-challenged at the time and bored. Article here http://www.perl.com/pub/a/2004/02/05/siesta.html Code on CPAN. It should be noted that the the latest changes to various module in the Email:: namespace break it. I don't have time to debug so I just downgraded instead. It's a bit rough around the edges and it has no web frontend (I hate doing web stuff) although there was a prototype that got knocked up in PHP (long story) but I've been using it for 4 years to run various mailing lists and it works fine and there's some neat ideas - I particularly like, for some reason, that when you create a backup using the command line tool it generates a shell script which will reimport everything again using the command line tool. Anyway, that's just a data point but I thought I'd mention it. As it turns out that, despite what most people say, even if there *is* a Perl MLM they probably won't use it - see also: Sympa. Simon
Re: Email::Store is dead! Long live Email::Store!
On Tue, 18 Sep 2007, Simon Wistow wrote: SW1) To shut people up who said that there was no Perl based MLM Did majordomo switch from Perl? I mean, that's the granddaddy of all MLMs, isn't it? SW2) It allowed per user Reply-To munging settings thus shutting up SW even more whiners Heh. I'm writing one because: 1) Web forums suck because they ignore the last, oh, 25 years of electronic-community development (they lack features that freakin' FIDONET had, never mind Usenet and mailing lists), but these days only hardcore geeks use mailing lists (I blame spammers), so clearly there's a need for community software that does both well. At the same time. 2) Um, that's about it.
Re: Email::Store is dead! Long live Email::Store!
Karen Cravens wrote: On Tue, 18 Sep 2007, Simon Wistow wrote: SW1) To shut people up who said that there was no Perl based MLM Did majordomo switch from Perl? I mean, that's the granddaddy of all MLMs, isn't it? Have you looked at the source code for majordomo? Are you _sure_ that's Perl :) Maybe Simon mean to say To shut people up who said that there was no sane Perl based MLM Dave...
Re: Email::Store is dead! Long live Email::Store!
On Tue, 18 Sep 2007, Dave Cross wrote: DCHave you looked at the source code for majordomo? Are you _sure_ that's DCPerl :) Heh. Yeah, here's where I admit I wrote a mailing list program myself (some ten-ish years ago) because I couldn't figure out how to modify majordomo. Here's where I also admit that NONE of its code is inherited by the one I'm writing now, because what I wrote was no saner than majordomo (it looked, not coincidentally, like Visual Basic ported into Perl. Badly).
Re: Email::Store is dead! Long live Email::Store!
On Tue, Sep 18, 2007 at 11:38:49AM -0500, Karen Cravens wrote: On Tue, 18 Sep 2007, Simon Wistow wrote: 1) To shut people up who said that there was no Perl based MLM Did majordomo switch from Perl? I mean, that's the granddaddy of all MLMs, isn't it? And I think Sympa and Majordomo v2 (total rewrite) are in Perl as well. Personally, I like Mailman just fine, and it works well for all of the things I've needed to use it for. w
Re: Email::Store is dead! Long live Email::Store!
On Mon, 17 Sep 2007, William Yardley wrote: WYSeems kind of overkill to write a new tool just because the one WYbeing used isn't written in Perl. Isn't there a project to rewrite all the Debian utilities in Python instead of Perl because some Python people are offended by the presence of Perl in the distro? Somebody's gotta maintain the cosmic Perl/Python balance.
Re: Email::Store is dead! Long live Email::Store!
On Fri, Sep 14, 2007 at 05:00:51PM -0400, Christopher Nehren said: I've been working on cobbling together a modern mailing list manager written in Perl (Saddlebags), because I find it absolutely unacceptable that things like the dbic list are running on mailman. As a part of this, the subject of storing emails in databases came up. Obviously, we turned to Email::Store. I'm all in favour of rewriting Email::Store - I've never got round to doing all the work I needed to do rewriting it. Everytime I sit down to do it something else gets in the way. As for Perl MLMs - have you looked at Siesta? It's a bit rough and ready in some places but I've been running mailing lists off it for years.
Re: Email::Store is dead! Long live Email::Store!
On 14/09/2007, Ricardo SIGNES [EMAIL PROTECTED] wrote: * Christopher Nehren [EMAIL PROTECTED] [2007-09-14T17:00:51] We've got a (mostly empty for the moment) repo at http://www.coitusmentis.info/repos/email-archive/ , hosted on my home cable Would you like to host this on emailproject.perl.org, on a nice Sun server at a datacenter? Oh, most certainly! That'd definitely make things easier for me, and would probably make my ISP a far deal happier too. There's only a couple of files there now -- been spending my time writing tests for (and finding subtle bugs in!) Saddlebags.