RE: MooseX::FSA::Simple

2011-09-21 Thread Ian.Docherty
Hmm, this seems to have stirred up a hornets' nest, sorry. Let me try to pull 
together a few threads.

doy, what *would* you name Moose::Role::Matcher if you were to release it today?

Dave Rolsky you said, 'there's multiple role systems on CPAN, so Role != 
Moose'. so, might we distinguish it by using MooseRole in the namespace perhaps?

Various people have suggested I drop 'Simple', so done.

'It should be named by what it *does* not what it *uses*', now you all point it 
out, agreed.

Does FSA::MooseRole satisfy everyone (or no-one)?

Kind Regards
Ian




This e-mail (including any attachments) is confidential, may contain
proprietary or privileged information and is intended for the named
recipient(s) only. Unintended recipients are prohibited from taking action
on the basis of information in this e-mail and must delete all copies.
Nomura will not accept responsibility or liability for the accuracy or
completeness of, or the presence of any virus or disabling code in, this
e-mail. If verification is sought please request a hard copy. Any reference
to the terms of executed transactions should be treated as preliminary only
and subject to formal written confirmation by Nomura. Nomura reserves the
right to monitor e-mail communications through its networks (in accordance
with applicable laws). No confidentiality or privilege is waived or lost by
Nomura by any mistransmission of this e-mail. Any reference to Nomura is
a reference to any entity in the Nomura Holdings, Inc. group. Please read
our Electronic Communications Legal Notice which forms part of this e-mail:
http://www.Nomura.com/email_disclaimer.htm



Re: MooseX::FSA::Simple

2011-09-21 Thread Hans Dieter Pearcey
On Wed, Sep 21, 2011 at 5:28 AM,  ian.doche...@nomura.com wrote:
 Does FSA::MooseRole satisfy everyone (or no-one)?

I hate it.  It seems like unnecessary noise.

If the distinguishing feature of this code is that it is a role, then
name it FSA::Role or FSA::Rules::Role or something.  In that case, I
don't think the fact that there are non-Moose roles matters very much;
you're encoding information about the API (this package needs a class
to consume it).

hdp.


Re: MooseX::FSA::Simple

2011-09-21 Thread Moritz Onken

Am 21.09.2011 um 13:18 schrieb Hans Dieter Pearcey:

 On Wed, Sep 21, 2011 at 5:28 AM,  ian.doche...@nomura.com wrote:
 Does FSA::MooseRole satisfy everyone (or no-one)?
 
 I hate it.  It seems like unnecessary noise.
 
 If the distinguishing feature of this code is that it is a role, then
 name it FSA::Role or FSA::Rules::Role or something.  In that case, I
 don't think the fact that there are non-Moose roles matters very much;
 you're encoding information about the API (this package needs a class
 to consume it).
 
 hdp.

The question is, how would someone name his dist who wants to release a
version of FSA::Role, which uses Role::Basic as Role framework?

I think we need something like Any::Role :-)

Cheers,
mo


Re: MooseX::FSA::Simple

2011-09-21 Thread Hans Dieter Pearcey
On Wed, Sep 21, 2011 at 7:24 AM, Moritz Onken on...@netcubed.de wrote:
 The question is, how would someone name his dist who wants to release a
 version of FSA::Role, which uses Role::Basic as Role framework?

FSA::Role::Basic

It's a useful piece of information at that point, unlike slapping
Moose or MooseRole into the name right away.

hdp.


RE: MooseX::FSA::Simple

2011-09-21 Thread Ian.Docherty
 mo wrote:
 The question is, how would someone name his dist who wants to release a
 version of FSA::Role, which uses Role::Basic as Role framework?

 I think we need something like Any::Role :-)

So that implies FSA::Role::Moose for my module, which I don't think would 
satisfy hdp.

If there is an objection about including 'Moose' in the namespace (because it 
is about how it is implemented, rather than what it *is*) then shouldn't the 
same argument apply to including 'Role' since this is also about how it is 
implemented?

FSA::Something, rather than FSA::Role?

I have done a survey of CPAN modules, (I should have done this previously, 
sorry)

CPAN modules with MooseRole in them (sorry hdp)

POE::Test::Helpers::MooseRole

We also have the 'Role' namespace used for Moose Roles or not Moose Roles as in.

Role::Log::Syslog::Fast
Role::Subsystem
Role::Log::Syslog::Fast

CPAN modules that have 'Role' in their namespace (referring to Moose Roles)

Javascript::Framework::jQuery::Role::Plugin
Antispam::Toolkit::Role::BerkeleyDB

And some with 'Role' that are *not* Moose

Reflex::Role
Class::Role
Chloro::Role::Form

Some CPAN modules I have found that are Moose Roles, but which don't have 
either Moose or Role in their name are.

CatalystX::DynamicComponent
Nagios::Plugin::OverHTTP::Parser
Simulation::discreteEvent::Recorder
Graphics::Color::Equal
Norma::ORM::Mappable
Data::Serializable.


I think this survey has shown me that every possible way of doing has been done 
in CPAN. But perhaps the best way is to avoid both 'Moose' and 'Role' in the 
namespace, but put in the description 'A Moose Role to ...'.

So, that boils down to

FSA::Something

Which to avoid the existing FSA::Rules gives me a bit of a problem. Perhaps

FSA::StateMachine

Sorry for the long post but perhaps some recommendations may come out of this 
for naming conventions in the future?

Kind regards
Ian

-- 




This e-mail (including any attachments) is confidential, may contain
proprietary or privileged information and is intended for the named
recipient(s) only. Unintended recipients are prohibited from taking action
on the basis of information in this e-mail and must delete all copies.
Nomura will not accept responsibility or liability for the accuracy or
completeness of, or the presence of any virus or disabling code in, this
e-mail. If verification is sought please request a hard copy. Any reference
to the terms of executed transactions should be treated as preliminary only
and subject to formal written confirmation by Nomura. Nomura reserves the
right to monitor e-mail communications through its networks (in accordance
with applicable laws). No confidentiality or privilege is waived or lost by
Nomura by any mistransmission of this e-mail. Any reference to Nomura is
a reference to any entity in the Nomura Holdings, Inc. group. Please read
our Electronic Communications Legal Notice which forms part of this e-mail:
http://www.Nomura.com/email_disclaimer.htm



Re: MooseX::FSA::Simple

2011-09-21 Thread Hans Dieter Pearcey
On Wed, Sep 21, 2011 at 9:04 AM,  ian.doche...@nomura.com wrote:
 So you are implying that

 FSA::Role::Moose

 Would be acceptable to you too?

Yes, if there were some existing non-Moose FSA::Role that you needed
to distinguish your version from.

Otherwise it's pointless.  Imagine if everyone jumped immediately to
being as specific as possible with their names; we'd have
Net::SMTP::Object and Class::URI and Hash::Config and lots of similar
garbage.

Only be as verbose as you need to be.  Let the next author worry about
how to differentiate his or her module from yours.

hdp.


Re: MooseX::FSA::Simple

2011-09-21 Thread Shawn H Corey

On 11-09-21 07:24 AM, Moritz Onken wrote:

The question is, how would someone name his dist who wants to release a
version of FSA::Role, which uses Role::Basic as Role framework?


If it inherits from Role::Basic, shouldn't it be named Role::FSA?



I think we need something like Any::Role :-)



Well, I did suggest Rocky::* but nobody seems keen on it.  :(


--
Just my 0.0002 million dollars worth,
  Shawn

Confusion is the first step of understanding.

Programming is as much about organization and communication
as it is about coding.

The secret to great software:  Fail early  often.

Eliminate software piracy:  use only FLOSS.

Make something worthwhile.  -- Dear Hunter


Re: MooseX::FSA::Simple

2011-09-21 Thread Stevan Little

 On Wed, Sep 21, 2011 at 5:28 AM,  ian.doche...@nomura.com wrote:
 Does FSA::MooseRole satisfy everyone (or no-one)?

So I am wondering, why have 'Role' in the name at all?

On Sep 21, 2011, at 7:18 AM, Hans Dieter Pearcey wrote:
 If the distinguishing feature of this code is that it is a role, then ...

I suspect that actually, that the distinguishing feature of this code is that 
it is an FSA and not a Role. The fact it is a Role only means you can not 
instantiate it directly and must compose it into a class. This actually strikes 
me as a drawback more then a benefit. 

Why not call it Something::FSA (or something similar, your choice) and slap a 
simple concrete class that consumes the role into it. THe result might look 
something like this:

lib/Something/FSA.pm # simple concrete class
lib/Something/FSA/Role.pm # your role

This (IMO) solves two problems:

1) Your module is more usable because people can jump right in with a fully 
functioning class.
2) You don't need to worry about naming it Something::FSA::Role and all the 
complexity that goes with it (and people still can just use the role if they 
want).

Thoughts?

- Stevan

Disclaimer: I didn't really look too closely at your code yet, so if this idea 
make no sense, feel free to ignore it.



Re: MooseX::FSA::Simple

2011-09-21 Thread Hans Dieter Pearcey
On Wed, Sep 21, 2011 at 9:20 AM, Stevan Little
stevan.lit...@iinteractive.com wrote:
 I suspect that actually, that the distinguishing feature of this code is that 
 it is an FSA and not a Role. The fact it is a Role only means you can not 
 instantiate it directly and must compose it into a class. This actually 
 strikes me as a drawback more then a benefit.

 Why not call it Something::FSA (or something similar, your choice) and slap a 
 simple concrete class that consumes the role into it. THe result might look 
 something like this:

 lib/Something/FSA.pm # simple concrete class
 lib/Something/FSA/Role.pm # your role

++

Similar concept: Data::Visitor shipping with Data::Visitor::Callback.

hdp.


RE: MooseX::FSA::Simple

2011-09-21 Thread Dave Rolsky

On Wed, 21 Sep 2011, ian.doche...@nomura.com wrote:


CPAN modules that have 'Role' in their namespace (referring to Moose Roles)

Antispam::Toolkit::Role::BerkeleyDB


Well, this is part of a larger distro called Antispam::Toolkit. Nobody is 
going to try to install Antispam::Toolkit::Role::BerkeleyDB directly.



And some with 'Role' that are *not* Moose

Chloro::Role::Form


That's a Moose role. I know, cause I wrote it ;)


-dave

/*
http://VegGuide.org   http://blog.urth.org
Your guide to all that's veg  House Absolute(ly Pointless)
*/


RE: MooseX::FSA::Simple

2011-09-21 Thread Ian.Docherty
Sorry Dave, I read the pod, not the code, to come to that conclusion. :(

From your own example however, it seems you are happy with 'Role' appearing in 
the namespace?

For what it is worth, I am now almost certain the name for my module will be.

FSA::Engine 'A Moose Role to convert an object into a Finite State Machine'

(since the word 'State' in FSA::StateEngine simply repeats part of Finite State 
Machine)

Regards
Ian

From: Dave Rolsky [mailto:auta...@urth.org] 

 And some with 'Role' that are *not* Moose

 Chloro::Role::Form

That's a Moose role. I know, cause I wrote it ;)

-- 




This e-mail (including any attachments) is confidential, may contain
proprietary or privileged information and is intended for the named
recipient(s) only. Unintended recipients are prohibited from taking action
on the basis of information in this e-mail and must delete all copies.
Nomura will not accept responsibility or liability for the accuracy or
completeness of, or the presence of any virus or disabling code in, this
e-mail. If verification is sought please request a hard copy. Any reference
to the terms of executed transactions should be treated as preliminary only
and subject to formal written confirmation by Nomura. Nomura reserves the
right to monitor e-mail communications through its networks (in accordance
with applicable laws). No confidentiality or privilege is waived or lost by
Nomura by any mistransmission of this e-mail. Any reference to Nomura is
a reference to any entity in the Nomura Holdings, Inc. group. Please read
our Electronic Communications Legal Notice which forms part of this e-mail:
http://www.Nomura.com/email_disclaimer.htm



RE: MooseX::FSA::Simple

2011-09-21 Thread Dave Rolsky

On Wed, 21 Sep 2011, ian.doche...@nomura.com wrote:


Sorry Dave, I read the pod, not the code, to come to that conclusion. :(

From your own example however, it seems you are happy with 'Role' appearing in 
the namespace?


Again, this is a different case. I put Role in the namespace when the 
module is part of a larger distro that uses those roles.



For what it is worth, I am now almost certain the name for my module will be.

FSA::Engine 'A Moose Role to convert an object into a Finite State Machine'


I think that's best.


-dave

/*
http://VegGuide.org   http://blog.urth.org
Your guide to all that's veg  House Absolute(ly Pointless)
*/


RE: MooseX::FSA::Simple

2011-09-21 Thread Ian.Docherty
From: Dave Rolsky [mailto:auta...@urth.org] 

 For what it is worth, I am now almost certain the name for my module will be.

 FSA::Engine 'A Moose Role to convert an object into a Finite State Machine'

I think that's best.

[Ian replied.]

Finally! :)

Thanks everyone for your very helpful input.

Kind Regards
Ian

-- 





This e-mail (including any attachments) is confidential, may contain
proprietary or privileged information and is intended for the named
recipient(s) only. Unintended recipients are prohibited from taking action
on the basis of information in this e-mail and must delete all copies.
Nomura will not accept responsibility or liability for the accuracy or
completeness of, or the presence of any virus or disabling code in, this
e-mail. If verification is sought please request a hard copy. Any reference
to the terms of executed transactions should be treated as preliminary only
and subject to formal written confirmation by Nomura. Nomura reserves the
right to monitor e-mail communications through its networks (in accordance
with applicable laws). No confidentiality or privilege is waived or lost by
Nomura by any mistransmission of this e-mail. Any reference to Nomura is
a reference to any entity in the Nomura Holdings, Inc. group. Please read
our Electronic Communications Legal Notice which forms part of this e-mail:
http://www.Nomura.com/email_disclaimer.htm



Re: MooseX::FSA::Simple

2011-09-19 Thread Richard Simões
I think a MooseX::Role::* module would be generally understood to be
an extension of the Moose role API. Thus an actual role offered up on
CPAN wouldn't have Role in its namespace.

-- 
Richard Simões
Internet


On Mon, Sep 19, 2011 at 8:01 AM,  ian.doche...@nomura.com wrote:
 I have written a new module along the lines of FSA::Rules, only as a Moose 
 Role.

 Is it convention that Moose Roles are in the MooseX::Role namespace so I 
 would call the module MooseX::Role::FSA::Simple, or can I call it 
 MooseX::FSA::Simple?

 Regards
 Ian

 --



 This e-mail (including any attachments) is confidential, may contain
 proprietary or privileged information and is intended for the named
 recipient(s) only. Unintended recipients are prohibited from taking action
 on the basis of information in this e-mail and must delete all copies.
 Nomura will not accept responsibility or liability for the accuracy or
 completeness of, or the presence of any virus or disabling code in, this
 e-mail. If verification is sought please request a hard copy. Any reference
 to the terms of executed transactions should be treated as preliminary only
 and subject to formal written confirmation by Nomura. Nomura reserves the
 right to monitor e-mail communications through its networks (in accordance
 with applicable laws). No confidentiality or privilege is waived or lost by
 Nomura by any mistransmission of this e-mail. Any reference to Nomura is
 a reference to any entity in the Nomura Holdings, Inc. group. Please read
 our Electronic Communications Legal Notice which forms part of this e-mail:
 http://www.Nomura.com/email_disclaimer.htm




Re: MooseX::FSA::Simple

2011-09-19 Thread Dave Rolsky

On Mon, 19 Sep 2011, ian.doche...@nomura.com wrote:


I have written a new module along the lines of FSA::Rules, only as a Moose Role.

Is it convention that Moose Roles are in the MooseX::Role namespace so I 
would call the module MooseX::Role::FSA::Simple, or can I call it 
MooseX::FSA::Simple?


I'd really prefer that MooseX _only_ be used for extensions to Moose (at 
the meta level).


That said, another namespace for modules designed to work with other 
Moose _using_ modules might be useful. No good names come to mind right 
now, though.



-dave

/*
http://VegGuide.org   http://blog.urth.org
Your guide to all that's veg  House Absolute(ly Pointless)
*/


Re: MooseX::FSA::Simple

2011-09-19 Thread Nick Perez

+1

On Mon, 19 Sep 2011 10:19:37 -0700
Karen Etheridge p...@froods.org wrote:

 On Mon, Sep 19, 2011 at 12:13:06PM -0500, Dave Rolsky wrote:
  I'd really prefer that MooseX _only_ be used for extensions to
  Moose (at the meta level).
 
 Strongly agree. Although this depends on the cooperation of the
 individual authors, I'd like to try approaching the owners of the
 existing modules in this namespace and encouraging them to rename.
 
  That said, another namespace for modules designed to work with
  other Moose _using_ modules might be useful. No good names come to
  mind right now, though.
 
 IMHO the name should primarily represent what it *does*, not what it
 *uses*, so for example a role that is meant to be used in Catalyst
 should start with Catalyst::Role::, not Role::Catalyst::.
 
 So for the original subject of this thread, I'd suggest
 FSA::Role::Rules or FSA::Role::Rules::Simple.
 
 



Re: MooseX::FSA::Simple

2011-09-19 Thread Dave Rolsky

On Mon, 19 Sep 2011, Karen Etheridge wrote:


That said, another namespace for modules designed to work with other
Moose _using_ modules might be useful. No good names come to mind right
now, though.


IMHO the name should primarily represent what it *does*, not what it
*uses*, so for example a role that is meant to be used in Catalyst should
start with Catalyst::Role::, not Role::Catalyst::.

So for the original subject of this thread, I'd suggest FSA::Role::Rules or
FSA::Role::Rules::Simple.


Good point. I agree.

I do think putting Role in the name is useful, since roles are 
fundamentally different than standalone classes. Unfortunately, there's 
multiple role systems on CPAN, so Role != Moose.



-dave

/*
http://VegGuide.org   http://blog.urth.org
Your guide to all that's veg  House Absolute(ly Pointless)
*/