puploki has asked for the wisdom of the Perl Monks concerning the following question:

Howdy,

I had a little natter on the CB with some of the other monks about this, and I've pretty much made up my mind but thought I'd ask a wider audience too.

I'm nearly finished with the first draft of a module that talks to the Nike+ API which allows you to pull out details of your runs and similar such. I'm going to submit this to CPAN but I'm not sure what name to give my module:

I'm leaning towards the latter myself, mainly because there are lots of other modules in that namespace already. What are the monastery's thoughts?

Replies are listed 'Best First'.
Re: CPAN module name for Nike+ API
by naikonta (Curate) on May 16, 2007 at 10:47 UTC
    I can only make a wild guess based on your short description since I can't enter the site due to lack of newest flash player. The WWW namespace is filled with modules provide interfaces to various web services, including the very tool WWW::Mechanize. So, IMO, this is enough justification to put your module under that namespace. Since the + part seems to be very attached to the Nike part as a web service, combining the parts is more appropriate so NikePlus is what comes to mind.

    However, it might be better if you can narrow a category under WWW itself. Beside this can avoid cluttering the namespace further, it will give an instant hint about what can be done with Nike+, especially for people who have no idea what Nike+ is. Examples are WWW::Search or WWW::Scraper. Similiarly, WWW::Blog::WordPress would be more appropriate instead of WWW::WordPress.

    You can make new category to put under WWW if no existing ones matching your modules to form WWW::NewCategory::NikePlus. Or, if you think the service can be extented in the future with distinct set of features, feel free to just use WWW::NikePlus. The precedence for this are WWW::Google and WWW:Yahoo.

    The very last, I think you still need to talk to modules@cpan.org before making your final decision. Good luck, puploki :-)


    Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!

Re: CPAN module name for Nike+ API
by kyle (Abbot) on May 15, 2007 at 21:03 UTC

    I might suggest NikePlus::API or API::NikePlus, but WebService::NikePlus looks fine to me too. If I were going to look for it, I'd probably search for Nike on CPAN, so anything with that in there would work.

Re: CPAN module name for Nike+ API
by Moron (Curate) on May 16, 2007 at 12:09 UTC
    I couldn't find any existing CPAN modules with a Nike-related namespace. On the other hand the WWW precedence is a convincing argument already made.

    The only thing I would add is that it would make sense for WWW namespaces to follow the URL they support as closely as possible to prevent conflict of naming conventions. It is too late to do that exactly right because ambiguity of .com versus .net or .co.uk etc has already taken precedence in these namespaces.

    It is legally possible for two companies to have different APIs with the same name in which case the second field of the URL would be the only distinguishing feature.

    The only way I can see to follow the strongest existing precedents and respect the need for close-to-unique URL mapping is to take the second field of the URL first and follow it with the '/'-delimited path after that, separateing each field with '::'.

    In this case, such analysis produces WWW::Nike::NikePlus, so that if some other API appears on www.nike.com/Foo it could take the namespace WWW::Nike::Foo.

    __________________________________________________________________________________

    ^M Free your mind!

      That sounds very sensible, thanks Moron.

      Thanks to everyone that contributed as well - perhaps I should've run a vote :)

Re: CPAN module name for Nike+ API
by damog (Novice) on May 16, 2007 at 03:54 UTC
    WWW::NikePlus would be my suggestion.
Re: CPAN module name for Nike+ API
by 2xlp (Sexton) on May 20, 2007 at 05:39 UTC
    I don't think a 'brand name' warrants a top-level CPAN hierarchy. 'what' it does (www) means more than 'who' it does it for.

    I'd also consider naming it something else, and putting Nike in the description: a good friend maintains an open source project that is integral to implementing some of adobe's technology on the internet. his open source project was so much better than what adobe offered, that they began using it themselves -- while also politely suggesting that he remove all references to the brand / company from the name of his software, lest he want a legal problem.

    That said, i'd suggest something like www::N___RunningAPI or given their corporate practices perhaps even WWW::RunningWithShoesMadeByChildrenInDevelopingNations