[Catalyst] [SOT] cat webmail app?
Joe Cooper
joe at virtualmin.com
Fri Aug 22 20:38:14 BST 2008
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.)
More information about the Catalyst
mailing list