On Wed, Sep 25, 2002 at 03:34:26PM -0500, James Edward Gray II wrote: > '2.1 Do similar modules already exist in some form?' [snip] > My newly coded module is a Multiplexed Non-blocking I/O Telnet Server. > It was written with an eye towards serving MUDs, MUSHes, and similar > games, because that's what I intend to write with it, but it's not > really limited to those. Knowing that, here's what I found: > > IO::NonBlocking - (Found via search, but I can't seem to locate it in > the module list.) This pretty close to what I built, excepting wildly > different interfaces. This module seems very generic, though it does > mention 'game servers' once in the README.
You mention your module is a telnet server. Is that accurate? Does it actually understand the telnet protocol? IO::NonBlocking isn't a server, it's a method of implementing a server; there's quite a bit more you'd have to add to do so. It appears you could implement Server::MUServer using IO::NonBlocking, but Server::MUServer isn't a replacement for IO::NonBlocking. Thus, they fit two different problems, though they do cover some common ground. > That's the only match I can be sure on. I admit that my CPAN skills > are still very poor though, so if I missed 5,000 matches or even 1, > please enlighten me. I looked for telnet servers and found a few things. There's an OurNet namespace for some sort of BBS system, and an Anarres::Mud::Driver namespace for some MUD modules. The last one is an oddity; there are no modules below Anarres::Mud::Driver as far as I could tell. It makes me wonder what the Anarres namespace is for. > So, my question (Finally!) is, should I even bother submitting this? > I'm not trying to add to module confusion, I just thought others might > like to use my code. If it will help, I'll submit it. If it's already > been covered, I'll keep it to myself. I have no experience here > though, so I could use opinions. Should I maybe even consider slanting > mine more towards game serving and then submit it? Any opinions are > appreciated. It's hard to say without more specific information. It sounds like it does something slightly different from what's available. That doesn't necessarily mean you should submit it, though. The criteria I would use in this case is whether or not the module is basically a program or a module; i.e. can the module be mixed in with others easily, or do you call it with whatever parameters it needs, and then let it do its thing? For a specific example, what happens when a user sends data? Does Server::MUServer call back (at some point) to subroutines you've given it, or does it handle it all internally, with some sort of hard-wired logic? Notice how IO::NonBlocking calls back to predefined methods for events; something like that would be required to make it generic enough for general use. > '2.5 Select a name for the module.' > > I thought I had this under control, but after reading a little, I'm not > so sure. (Since it seems to change the rules here a little, I should > probably mention that my module is object oriented.) I've been calling > my package 'Server::MUServer'. > > After reading a bit, I can't tell if 'Server::' is the proper category, > though it feels right to me. Any other suggestions? > > Also, MUServer seems pretty dead wrong according to this section. I'm > guessing it should become a couple of complete words and lose its > "cute/acronym/jargon" qualities. Any suggestions as to what would be > better? I'd suggest something in the Net:: hierarchy. Perhaps Net::Telnet::Server, or something under Net::Daemon (though that has the pitfall of associating it with the Net::Daemon module, so maybe that's not such a good idea). MUServer is a little compact; something a little more clear would be a good idea. Whether or not a module is object-oriented usually has little to do with its name on CPAN. > Thanks for suffering through all this babble. Any pointers on my > questions or the CPAN process in general will be greatly appreciated. The CPAN modules mailing list archive is a good reference mostly for discussion on naming issues. A link to it should be listed in the document you're reading. Michael -- Administrator www.shoebox.net Programmer, System Administrator www.gallanttech.com -- -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]