Matt S Trout wrote:
On Mon, Aug 18, 2008 at 02:14:41PM -0500, Andrew Kornak wrote:
On Mon, 2008-08-18 at 10:48 +0100, Matt S Trout wrote:
On Fri, Aug 08, 2008 at 05:47:25PM -0500, Andrew Kornak wrote:
http://www.webmin.com/usermin.html

Not Cat based but is a fairly complete perl-based, modular, extensible
solution as well as a useful system administration tool. I have used
Webmin and Usermin for many years and highly recommend both.
How does that remotely relate to webmail?

As per the web sites I included, Usermin has a fairly complete mail
module that integrates with spam/virus filters and offers many options
regarding your mail delivery agent. Webmin and Usermin are BSD-like
licensed and offer RPM. DEB, and tar source packages. I thought it might
be a useful starting point or even a reference since it is written
entirely in perl and is a very mature and well supported project.

Ok. I last looked at webmin about three years ago and it was an appallingly
badly written pile of hacks that just happened to work, and had no webmail
related component at all.

Correction: It's an appallingly badly written pile of hacks that just happens to work on millions of production systems every single day.

I think we'd all like to have started a project that is as popular as Webmin. (~2 million downloads per year, just from SourceForge.)

Just for reference, Usermin (the project he linked to, which is the webmail and user-oriented variant of Webmin) has been around for about 7 years. It's an extremely full-featured mail client, if a little clunky in the UI (I'm working on that). It's not as popular as SquirrelMail, because it requires a root-level installation, but it's definitely more powerful.

It'd probably be wise to think of Webmin/Usermin in context: It is an 11 year old project with ~450,000 lines of code, written almost entirely by *one guy* (as a hobby a good deal of that time), that has to run on systems with very old Perl versions. And, because it is used in hundreds of embedded devices and commercial products, the standard API simply cannot change. There are 114 standard modules (last time I counted), and several hundred third party modules, and Webmin has never broken backward compatibility for those modules. A module written 10 years ago will work, unmodified, in last weeks Webmin release (it won't participate in logging or ACLs or notifications, but it'll work as well as it did 10 years ago).

So, sure, it's got some old-fashioned Perl code that hasn't seen a major overhaul in many years (Perl 4-isms abound, even), but it's not bad code. Perhaps it is unfamiliar looking, if you've been working with modern OO Perl style...but it's not particularly bad. Quite concise and clear, mostly, if a bit quirky. And, of course, with several million users banging on it every day, it's pretty damned well-tested.

We also accept patches. (Assuming they don't break backward compatibility and they work on Perl 5.005_4 and up.)

_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to