You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Leo Simons <le...@apache.org> on 2003/11/13 20:16:38 UTC

shameless plug: articles on COP, other stuff

Hi gang,

I've begun the process of collecting my RTs that I consider worth saving:

	http://lsd.student.utwente.nl/jicarilla/

perhaps of special interest:

	http://lsd.student.utwente.nl/jicarilla/InterestingQuotes

back to my corner!

- LSD



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Friday 14 November 2003 22:50, Stephen McConnell wrote:
> And the thing I'm not convinced about:

> 4. the tideiness of Leo's room


My boss came into my colleagues's room and was baffled over the mess. Every 
single elevated surface had at least 30cm / 1 foot of papers on it, except 
where the keyboard, mouse monitor were. Most of the floor was filled with 
"stuff", and there hadn't been a good clean-up for years.

The boss says;
"Your desk is a reflection of the state of your mind. Messy desk, messy head."

and the guy responded, making everyone laughing for a week;

"And your desk is empty!"


Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Jonathan Hawkes <jh...@adsnm.com>.
My $.02...

Day 3: Yes!
Day 4: No (on removing Configurable)!  I like having the stricter interface
definition and less type-casting.
Day 5: No!!!  I like the ServiceManager (and ServiceManager.release)
Day 6: No?  I've thought about this before, but I like the LogEnabled
interface for convenience reasons.
Day 7: No.  I like my no-arg constructor (again, convenience).

I don't think we should be thinking simply in terms of what a component
needs "bare-minimum", but perhaps the bare-minimum of what a
simple-to-implement (and well defined) component needs.

I would actually make one suggestion.  Where the story suggests removing the
ServiceManager in favor of the Context, I would propose the opposite.  The
Context is indeed the most abstract interface in the Avalon framework, but I
think that is a weakness, not a strength.  The ServiceManager is used to
locate services adhering to a particular interface.  The Context, uh, ...
Well, the Context.... umm.  What the hell is the Context?  Any component
that uses the Context is tied too tightly to a particular container (IMHO).

Jonathan Hawkes


----- Original Message ----- 
From: "Stephen McConnell" <mc...@apache.org>
To: "Avalon Developers List" <de...@avalon.apache.org>
Sent: Friday, November 14, 2003 7:50 AM
Subject: Re: shameless plug: articles on COP, other stuff


>
> Here are things that I like:
>
> 1. the story
>
> Heres the thing I think are valid points:
>
> 1. the collapse of parameters and configuration (day 3)
> 2. the collapse of service and context (day 5)
> 3. the principal of context by constructor (day 7)
>
> And the thing I'm not convinced about:
>
> 1. merging config into context (day 4)
> 2. disolving logging (day 6)
> 3. the principal of context by constructor (day 7)
> 4. the tideiness of Leo's room
>
> Cheers, Steve.
>
>
>
> Ulrich Mayring wrote:
>
> > Stephen McConnell wrote:
> >
> >>
> >> I like this page:
> >> http://lsd.student.utwente.nl/jicarilla/StoryOfThe6LifecycleMethods
> >
> >
> > I don't.
> >
> > The idea of the lifecycle methods is that they are called from outside
> > at various points in their lifetime. Constructors can only be called
> > once, so it seems not very useful to put the lifecycle methods in a
> > constructor.
> >
> > Also, the detailed strategy reminds me of my childhood:
> >
> > Mother: You've got to clean up that mess you call your room!
> >
> > Ulrich: Ok, I'll do that... *shuffle, shuffle, shuffle* ... DONE!!!
> >
> > Mother: Well, it looks neat now. But you just took everything and
> > shoved it under the bed.
> >
> > Ulrich: Yeah, that's called refactoring.
> >
> >
> > cheers,
> >
> > Ulrich (who grew up a bit since then ;-)
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> > For additional commands, e-mail: dev-help@avalon.apache.org
> >
> >
>
> -- 
>
> Stephen J. McConnell
> mailto:mcconnell@apache.org
>
> |------------------------------------------------|
> | Magic by Merlin                                |
> | Production by Avalon                           |
> |                                                |
> | http://avalon.apache.org/merlin                |
> | http://dpml.net/                               |
> |------------------------------------------------|
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> For additional commands, e-mail: dev-help@avalon.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Stephen McConnell <mc...@apache.org>.
Here are things that I like:

1. the story

Heres the thing I think are valid points:

1. the collapse of parameters and configuration (day 3)
2. the collapse of service and context (day 5)
3. the principal of context by constructor (day 7)

And the thing I'm not convinced about:

1. merging config into context (day 4)
2. disolving logging (day 6)
3. the principal of context by constructor (day 7)
4. the tideiness of Leo's room

Cheers, Steve.



Ulrich Mayring wrote:

> Stephen McConnell wrote:
>
>>
>> I like this page:
>> http://lsd.student.utwente.nl/jicarilla/StoryOfThe6LifecycleMethods
>
>
> I don't.
>
> The idea of the lifecycle methods is that they are called from outside 
> at various points in their lifetime. Constructors can only be called 
> once, so it seems not very useful to put the lifecycle methods in a 
> constructor.
>
> Also, the detailed strategy reminds me of my childhood:
>
> Mother: You've got to clean up that mess you call your room!
>
> Ulrich: Ok, I'll do that... *shuffle, shuffle, shuffle* ... DONE!!!
>
> Mother: Well, it looks neat now. But you just took everything and 
> shoved it under the bed.
>
> Ulrich: Yeah, that's called refactoring.
>
>
> cheers,
>
> Ulrich (who grew up a bit since then ;-)
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> For additional commands, e-mail: dev-help@avalon.apache.org
>
>

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org

|------------------------------------------------|
| Magic by Merlin                                |
| Production by Avalon                           |
|                                                |
| http://avalon.apache.org/merlin                |
| http://dpml.net/                               |
|------------------------------------------------|





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Ulrich Mayring <ul...@denic.de>.
Niclas Hedhman wrote:
> 
> Ok... I think we have had this argument before, but the "best thing" of UT (to 
> me) is not so much the capturing of bugs but that I quicker find good 
> use-cases, and know that this design is not well-structured.

ACK. But to that end other techniques can be utilized, which have the 
additional advantage that you get documentation from them.

> The "second best thing" actually drives back to your 99%... If a user finds a 
> problem, you need to spend time to set up a test rig. If all UTs are already 
> in place is faster to get going on the particular case to be found...

Ok, but for those 99% it takes me one minute without UT :)

Ulrich



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


RE: shameless plug: articles on COP, other stuff

Posted by Leo Sutic <le...@inspireinfrastructure.com>.

On Monday 17 November 2003 17:08, Ulrich Mayring wrote:
> Niclas Hedhman wrote:
> > On Saturday 15 November 2003 05:41, Ulrich Mayring wrote:
> >>And I hate unit-testing, I'd rather prove my code correct ;-)
> >
 > You never miss an opportunity to point this out, LOL...
> >
> > Curious, how can you "prove" anything without running it?
>
> Very hard, but all I said was I'd rather do that than do unit-testing 

Prove the algorithm, but unit test the implementation - just to make 
sure you really implemented what you proved, and that your algorithm
works as expected.

For example, I may have proven that my algorithm will provide output o
for input i. But:

 + Did I implement it correctly (maybe some Java construct I used
doesn't
   work the way I think it does).

 + Was my proof correct?

 + Do I really want this algorithm? I.e. when run on the actual data it
   will process, do I get the output I want?

The prove versus unit-test Wrestlemania was fought when XP was new at
my university. The above is what I walked away with.

/LS


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Monday 17 November 2003 17:08, Ulrich Mayring wrote:
> Niclas Hedhman wrote:
> > On Saturday 15 November 2003 05:41, Ulrich Mayring wrote:
> >>And I hate unit-testing, I'd rather prove my code correct ;-)
> >
> > You never miss an opportunity to point this out, LOL...
> >
> > Curious, how can you "prove" anything without running it?
>
> Very hard, but all I said was I'd rather do that than do unit-testing ;-)
>
> The thing is that of the bugs I have in my software, 99% would not have
> been caught by unit tests, because they are runtime bugs (integration,
> error management, external resources etc.). The remaining 1% are trivial
> bugs such as typos, which take me about 1 minute to fix.

Ok... I think we have had this argument before, but the "best thing" of UT (to 
me) is not so much the capturing of bugs but that I quicker find good 
use-cases, and know that this design is not well-structured.
The "second best thing" actually drives back to your 99%... If a user finds a 
problem, you need to spend time to set up a test rig. If all UTs are already 
in place is faster to get going on the particular case to be found...

> I do think that for developing frameworks with many well-defined
> interfaces there may be some value in unit testing.
>
> Although there is probably a good reason why it's not done
> systematically at Avalon ;-)

TDD requires a lot of discipline. I don't have it. As soon as TDD becomes 
tricky (like the GUI I'm working on), TDD is dropped quickly because you want 
to get on with it (I think this is the main reason why not everyone do TDD).


Cheers,
Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Ulrich Mayring <ul...@denic.de>.
Niclas Hedhman wrote:
> On Saturday 15 November 2003 05:41, Ulrich Mayring wrote:
> 
> 
>>And I hate unit-testing, I'd rather prove my code correct ;-)
> 
> 
> You never miss an opportunity to point this out, LOL...
> 
> Curious, how can you "prove" anything without running it?

Very hard, but all I said was I'd rather do that than do unit-testing ;-)

The thing is that of the bugs I have in my software, 99% would not have 
been caught by unit tests, because they are runtime bugs (integration, 
error management, external resources etc.). The remaining 1% are trivial 
bugs such as typos, which take me about 1 minute to fix.

I do think that for developing frameworks with many well-defined 
interfaces there may be some value in unit testing.

Although there is probably a good reason why it's not done 
systematically at Avalon ;-)

Ulrich



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Saturday 15 November 2003 05:41, Ulrich Mayring wrote:

> And I hate unit-testing, I'd rather prove my code correct ;-)

You never miss an opportunity to point this out, LOL...

Curious, how can you "prove" anything without running it?


Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Friday 14 November 2003 21:59, Leo Simons wrote:
> Ulrich Mayring wrote:
> > Also, the detailed strategy reminds me of my childhood:
> >
> > Mother: You've got to clean up that mess you call your room!
> >
> > Ulrich: Ok, I'll do that... *shuffle, shuffle, shuffle* ... DONE!!!
> >
> > Mother: Well, it looks neat now. But you just took everything and shoved
> > it under the bed.
> >
> > Ulrich: Yeah, that's called refactoring.
>
> ROTFL! I love it...you should elaborate on that somewhat and post it
> somewhere for the whole world to see :D. It's a nice example of how
> different you and I really think...power of unit testing:
>
> 	Mother: but you won't be able to find anything!
>
> 	Leo: well, I just tried that for everything in my room, and I
>               can still find everything within a second-and-a-half.
>
> :D. I could go on and on and on...programmer time vs resource cost:
>
>          Mother: but what if nothing more will fit under your bed!
>
>          Leo: well, I can always get myself a bigger bed, can't I?
>               Besides, I feel going out to play soccer is more important
>               than saving floor space. I'll worry about floor space when
>               I grow up :D
>

ROTFOAOAIL !!!!!!!!!!!!!!!!!!!!!!


> > Ulrich (who grew up a bit since then ;-)
>
> - Leo (who, after looking around the total mess scattered throughout his
> room, somewhat radially organized around his desk, decides he hasn't
> grown up just yet ;-)

Ditto.... Difference is Leo, I am nearly twice your age ;o)
Soon time for me to start wearing dipers again .....


Cheers
Niclas


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Stephen McConnell <mc...@apache.org>.

Leo Simons wrote:

>> Ulrich (who grew up a bit since then ;-)
>
>
> - Leo (who, after looking around the total mess scattered throughout 
> his room, somewhat radially organized around his desk, decides he 
> hasn't grown up just yet ;-) 


ROTFLOL

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org

|------------------------------------------------|
| Magic by Merlin                                |
| Production by Avalon                           |
|                                                |
| http://avalon.apache.org/merlin                |
| http://dpml.net/                               |
|------------------------------------------------|





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Ulrich Mayring <ul...@mayring.de>.
Leo Simons wrote:
> 
> Indeed! Catch: the resource delivery methods are, in fact, in practice,
> all called exactly once, in a specific order, right after each other, at
> startup. I bought the "seperation theme" for several years, then
> realized I had never seen a component that benefited from it!

I don't buy that these methods can only be called once. It may be
implemented this way currently, but it is not ideal. Just prefix the
lifecycle methods with a "re" and you'll see which ones would benefit
from being called again (e.g. reconfigurable).

> The same applies, by-the-way, to initialize()/start() and
> dispose()/stop(). In practice, they're all only ever called once, and
> right after each other.

> ROTFL! I love it...you should elaborate on that somewhat and post it
> somewhere for the whole world to see :D. It's a nice example of how
> different you and I really think...power of unit testing:
> 
>         Mother: but you won't be able to find anything!
> 
>         Leo: well, I just tried that for everything in my room, and I
>               can still find everything within a second-and-a-half.

But I can take something and replace it with a better and newer version
without affecting the position of anything else - because I keep my
things nice and seperate and not lumped together :)

And I hate unit-testing, I'd rather prove my code correct ;-)

Ulrich


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Leo Simons <le...@apache.org>.
Ulrich Mayring wrote:
> Stephen McConnell wrote:
> 
>> I like this page:
>> http://lsd.student.utwente.nl/jicarilla/StoryOfThe6LifecycleMethods
> 
> I don't.
> 
> The idea of the lifecycle methods is that they are called from outside 
> at various points in their lifetime. Constructors can only be called 
> once, so it seems not very useful to put the lifecycle methods in a 
> constructor.

Indeed! Catch: the resource delivery methods are, in fact, in practice, 
all called exactly once, in a specific order, right after each other, at 
startup. I bought the "seperation theme" for several years, then 
realized I had never seen a component that benefited from it!

In other words: these methods are called from the outside exactly after 
construction, and only once. So it seems not very useful to have an 
artificial seperation, when, in fact, there is none :D

The same applies, by-the-way, to initialize()/start() and 
dispose()/stop(). In practice, they're all only ever called once, and 
right after each other.

> Also, the detailed strategy reminds me of my childhood:
> 
> Mother: You've got to clean up that mess you call your room!
> 
> Ulrich: Ok, I'll do that... *shuffle, shuffle, shuffle* ... DONE!!!
> 
> Mother: Well, it looks neat now. But you just took everything and shoved 
> it under the bed.
> 
> Ulrich: Yeah, that's called refactoring.

ROTFL! I love it...you should elaborate on that somewhat and post it 
somewhere for the whole world to see :D. It's a nice example of how 
different you and I really think...power of unit testing:

	Mother: but you won't be able to find anything!

	Leo: well, I just tried that for everything in my room, and I
              can still find everything within a second-and-a-half.

:D. I could go on and on and on...programmer time vs resource cost:

         Mother: but what if nothing more will fit under your bed!

         Leo: well, I can always get myself a bigger bed, can't I?
              Besides, I feel going out to play soccer is more important
              than saving floor space. I'll worry about floor space when
              I grow up :D

cheers!

> Ulrich (who grew up a bit since then ;-)

- Leo (who, after looking around the total mess scattered throughout his 
room, somewhat radially organized around his desk, decides he hasn't 
grown up just yet ;-)



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Ulrich Mayring <ul...@denic.de>.
Stephen McConnell wrote:
> 
> I like this page:
> http://lsd.student.utwente.nl/jicarilla/StoryOfThe6LifecycleMethods

I don't.

The idea of the lifecycle methods is that they are called from outside 
at various points in their lifetime. Constructors can only be called 
once, so it seems not very useful to put the lifecycle methods in a 
constructor.

Also, the detailed strategy reminds me of my childhood:

Mother: You've got to clean up that mess you call your room!

Ulrich: Ok, I'll do that... *shuffle, shuffle, shuffle* ... DONE!!!

Mother: Well, it looks neat now. But you just took everything and shoved 
it under the bed.

Ulrich: Yeah, that's called refactoring.


cheers,

Ulrich (who grew up a bit since then ;-)



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: shameless plug: articles on COP, other stuff

Posted by Stephen McConnell <mc...@apache.org>.
I like this page:
http://lsd.student.utwente.nl/jicarilla/StoryOfThe6LifecycleMethods
Some of the others are grounds for debate ;-)
Cheers, Steve.

Leo Simons wrote:

> Hi gang,
>
> I've begun the process of collecting my RTs that I consider worth saving:
>
>     http://lsd.student.utwente.nl/jicarilla/
>
> perhaps of special interest:
>
>     http://lsd.student.utwente.nl/jicarilla/InterestingQuotes
>
> back to my corner!
>
> - LSD
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> For additional commands, e-mail: dev-help@avalon.apache.org
>
>

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org

|------------------------------------------------|
| Magic by Merlin                                |
| Production by Avalon                           |
|                                                |
| http://avalon.apache.org/merlin                |
| http://dpml.net/                               |
|------------------------------------------------|





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org