Re: [OT] Business Layer Ideas

2005-06-02 Thread Dakota Jack
My high school had mostly reformed teachers.  One once said, with
pride, that there had been no one in the trunk of his car for quite a
while.

On 6/1/05, Laurie Harper [EMAIL PROTECTED] wrote:
   (yes, my school actually had Fortran, COBOL and Pascal classes!)
 
 Your *high school* had multiple courses on different programming
 languages? My high school ('secondary school' actually, I'm originally
 from England) had exactly one 'O'-level computer course and one
 'A'-level course. There might bave been a pre--'O'-level required course
 too...
 
 Any which way, my first computer related course in school was so basic I
 walked away and never looked back until I got to university and realised
 that I was skipping too many physics classes to play around in the
 computer labs :-)
 
 I'm guessing (from other posts in this thread) you're a little older
 than I am. That would make your high school pretty impressively
 forard-looking...!
 
 L.
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-02 Thread Tom Dimock


On Jun 2, 2005, at 1:46 AM, Laurie Harper wrote:

I'm guessing (from other posts in this thread) you're a little  
older than I am. That would make your high school pretty  
impressively forard-looking...!


I attended the first computer class given at my high school in 1965.   
It was kind of a funny situation - one other student and I taught the  
teacher, who then taught the rest of the class.  The two of us had  
been messing about with computers for two years at that point, and  
knew a LOT more than the teacher.  The course was taught from an  
obscure little book which illustrated all of its concepts in an  
assembler code for a non-existent machine.  To facilitate the class,  
I wrote an emulator (in FORTRAN) for the assembler language which was  
used for several years after I graduated.  It was a fun time to be  
into computers - when most people still didn't know what a computer was.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-02 Thread Frank W. Zammetti
On Thu, June 2, 2005 1:29 am, Laurie Harper said:
 I have to admit that refactoring on butcher paper was a bitch though!

I would think refactoring on on butcher paper would be very easy... just
need a good pair of scissors and some Scotch tape.

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-02 Thread Frank W. Zammetti
On Thu, June 2, 2005 2:23 am, Dakota Jack said:
 My high school had mostly reformed teachers.  One once said, with
 pride, that there had been no one in the trunk of his car for quite a
 while.

Funny... the teachers in my school would say that with a damn, I miss the
good'ole days look on their face.

 On 6/1/05, Laurie Harper [EMAIL PROTECTED] wrote:
 I'm guessing (from other posts in this thread) you're a little older
 than I am. That would make your high school pretty impressively
 forard-looking...!

What's more amazing is that my high school was really pretty lousy
overall.  I remember when the school DISTRICT started their computer
program... they picked six of us that were doing well and asked if we
wanted to take some computer classes.  Four of us said sure, why not,
even though we didn't know what a computer was!  I remember it well... it
was 4th grade... our first assignment was to write a program to calculate
the area of a triangle... a couple of questions came to mind... what is a
triangle (ok, I got that one)... what is it's area... how does one
calculate it... how does one write a program?  Ah, fun days!

I also remember that by the end of the class, I was the only one left (it
was, after all, completely optional).  So, it's even *more* surprising
that the district pushed ahead with *any* kind of computer classes... 75%
attrition doesn't sound like too big a success to me!

Then again, as I discovered later, the teacher didn't have any more of a
clue than we students did, except he knew how to do the underlying math
problem.  The computer part?  I probably taught HIM! :)

I doubt I'm that much older than you by the way, but I have two kids, so
it might sound like I am :)

Frank

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-02 Thread Laurie Harper

Frank W. Zammetti wrote:

On Thu, June 2, 2005 1:29 am, Laurie Harper said:

I have to admit that refactoring on butcher paper was a bitch though!

I would think refactoring on on butcher paper would be very easy... just
need a good pair of scissors and some Scotch tape.


Yeah, but I was only allowed to use scissors made of plastic... ;-)


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-02 Thread Dave Newton

Laurie Harper wrote:


Frank W. Zammetti wrote:


On Thu, June 2, 2005 1:29 am, Laurie Harper said:


I have to admit that refactoring on butcher paper was a bitch though!


I would think refactoring on on butcher paper would be very easy... just
need a good pair of scissors and some Scotch tape.


Yeah, but I was only allowed to use scissors made of plastic... ;-)


I would have KILLED for scissors!

Which, erm, might be why I didn't get 'em.

Dave



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-02 Thread Frank W. Zammetti
Ok, ok, you win :) LOL

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com

On Thu, June 2, 2005 2:32 pm, Laurie Harper said:
 Frank W. Zammetti wrote:
 On Thu, June 2, 2005 1:29 am, Laurie Harper said:
I have to admit that refactoring on butcher paper was a bitch though!
 I would think refactoring on on butcher paper would be very easy... just
 need a good pair of scissors and some Scotch tape.

 Yeah, but I was only allowed to use scissors made of plastic... ;-)


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [OT] Business Layer Ideas

2005-06-01 Thread Pilgrim, Peter

 -Original Message-
 From: Dakota Jack [mailto:[EMAIL PROTECTED]
======
 
 Hi, Peter,
 
 I am not sure what you are saying here.  I had trouble 
 following you.  
 
 The Strategy Pattern is roughly the following:
 
 public class DefaultStrategyInterface implements StrategyInterface {
 private Helper helper;
 
 public void setHelper(Helper helper) {
 this.helper = helper;
 }
 
 public void doWork() {
 // Do business logic
 int value = hleper.calculateSomething(params);
 // Do more business logic
 }
 }
 
 The Template Method Pattern used in Struts which necessitates the use
 of the Chain of Responsibility Pattern, cf.
 http://www.onjava.com/pub/a/onjava/2005/03/02/commonchains.html, is
 roughly the following:
 
 public abstract class AbstractMethodInterface implements 
 MethodInterface {
 public void doWork() {
 // Do some business logic
 int value = calculateSomething(params);
 //  Do more business logic
 }
 
 protected abstract int calculateSomething(params);
 }
 
 So, in a real sense, the Strategy Pattern advocates, in comparison to
 the Template Method Pattern, composition over inheritance allowing for
 ease of testing and a host of other good results.
 
 Struts is based on the Template Method Pattern which Sigglelow rightly
 sees is rescued by the Chain of Responsibility Pattern.  This is the
 context in which I was addressing the Strategy Pattern.  Can you give
 a little demo of how CoR metamorphasis's into this?  I find your not
 interesting but cannot see what it means.
 
 Thanks
 

Consider a GUI algorithm that displays rows from the database. 
The typical problem is to work out the best column width for 
rendering the screen.

interface IFormatDatabaseColumnWidth {
public int calcColumnWidth( Object[][] data, MetaData metaData[], int
columnNo );
}

// Slowest and most accurate algorithm iterates all rows in the result set
class AllRowsFDCW implements IFrameDatabaseColumnWidth {  ... }
// Algorithm based on the first 100 rows
class First100FDCW implements IFrameDatabaseColumnWidth {  ... }
// Algorithm that calculates the column width for every N rows
class StepwiseFDCW implements IFrameDatabaseColumnWidth {  ... }

This is the classic strategy pattern, as I remember writing it in a Swing/JDBC
five years ago. (In fact Xenon-SQL is still out there somewhere, but it 
is broken against JDK 1.3 and 24/7/365 the time to fix it! )

You can rewrite the above strategy with Chain of Responsibility 
pedantically. If you have a very functional requirement for it.

class ChainFDCW implements IFrameDatabaseColumnWidth {

Catalog catalog;
String  commandName;

// IoC container friendly
public void setCatalog( catalog ) { ... }
public void setCommandName( name ) { ... }

public int calcColumnWidth( Object[][] data, MetaData metaData[], int
columnNo )
{
Context context = new FDCWContext( data, metaData, columnNo );
Command command = catalog.getCommand( commandName );
command.execute( context );
if ( context.isCalculatedOk() )
return context.getColumnWidth();
else
throw new StrategyRuntimeException( 
Failed to calculate column width );
}
}

Ok writing a CoR for calculating data width takes a bit of stretching
the imagination, but of course you can do it, which is the point.



 On 5/31/05, Pilgrim, Peter [EMAIL PROTECTED] wrote:
   -Original Message-
   From: Dakota Jack [mailto:[EMAIL PROTECTED]
  ====
  
  
   I should have added that Rod (Johnson) in the book cited pointedly
   advocates extensive use of the Strategy Pattern, see pp. 
 421 ff.  The
   use of CoR in Struts 1.3 for the extensible 
 RequestProcessor is not a
   feature but is a way of solving the problem created by 
 the original
   use of the Template Method Pattern in that context.  Had 
 the Strategy
   Pattern been used in the first instance, everything would 
 have worked
   better, in my opinion.  In many ways, I think in the future the
   Template Method Pattern may be seen as an Anti-Pattern.
  
   Just to forestall flamethrowers, I want to emphasize that others
   probably think differently and even the majority, i.e. 
 by definition
   the members ipsa facto of the meritocracy, may think 
 differently.
   But, Rod Johnson is no slouch on these matters.  He 
 thinks the use of
   Strategy Pattern is one of the reasons [Spring] is such 
 a flexible
   and extensible framework.
  
  
  Hello Jack
  
  It can be shown that ``Chain of Responsibility'' pattern can be
  metamorphed into the ``Strategy'' pattern. The first 
 proviso is that one
  of your commnds becomes a catalogy factory or invoker of other
  generic commands itself. The second proviso is you must pass all
  your information back and 

Re: [OT] Business Layer Ideas

2005-06-01 Thread Dakota Jack
Thanks, Peter,

This reply is in three parts: Oops, Ugh and GoF.

FIRST PART: Oops!

I am afraid there is a fatal flaw in your reasoning.  Your example of
the Strategy Pattern is *not* the Strategy Pattern.  It is merely two
differing implmentations of an interface.  The Strategy Pattern is a
client based pattern.  As the Gang of Four (GoF) in Design Patterns:
Elements of Reusable Object-Oriented Software said on the inside of
the cover:

Strategy (315) Define a family of algorithms encapsulate each
one, and make them
 interchangeable.  Strategy lets the algorithm vary independently
from clients that use
 it.

So, your point about the Strategy Pattern, of course, does not work
and is a non-starter.


A Strategy Pattern most importantly introduces some Helper utility
interface for the various implementations of an algorithm.  Thus, you
could have either

A.  

interface IFormatDatabaseColumnWidth {
public void setHelper(Helper helper);
public void doWork();
}

or

B.

Inteface IFormatDatabaseColumnWidth {
public void doWork();
}

But the implementations would have to be something like:

public class IFormatDatabaseColumnWidthImpl {
private Helper helper;

public void setHelper(Helper helper) {
this.helper = helper;
}

public void doWork() {
// Do business logic
int value = helper.calcColumnWidth(data,metaData[]),columnNo);
// Do more business logic
}
}

Thus, there would be a Helper interface:

interface Helper {
 int calcColumnWidth(Object [][] data, MetaData metaData[]) int columnNo);
}

The differing calculations, then, would go into the Helper interface
implementations and not into the IFormatDatabaseColumnWidth interface
implementations.  So, you might have

public class AllRowsFDCW implements Helper {
public int calcColumnWidth(Object [][] data, MetaData metaData[])
int columnNo) {
 // Slowest and most accurate algorithm iterates all rows in
the result set
}
}

and 

public class First100FDCW implements Helper {
public int calcColumnWidth(Object [][] data, MetaData metaData[])
int columnNo) {
 // Algorithm based on the first 100 rows
}
}

and 

public class class StepwiseFDCW implements Helper {
public int calcColumnWidth(Object [][] data, MetaData metaData[])
int columnNo) {
// Algorithm that calculates the column width for every N rows
}
}

Please note that the pattern essentially uses polymorphism and late
binding not through implementations of an interface but through a
composite pattern.

Thus, when inversion of control (IoC) is used with the Strategy
Pattern, whether you are doing Dependency Injection (DI) or Dependency
Lookup (DL), the Helper is what is the subject of the lookup or
injection.  (IoC, including DL, cannot be identified as DI merely.)

Your explanation of the Strategy Pattern leaves out what is essential
to the pattern.  Consequently, your explanation is merely how Chain of
Responsibiltiy (CoR) can be used instead of differing implementations
of an interface. See below for a short note on your CoR example.


On 6/1/05, Pilgrim, Peter [EMAIL PROTECTED] wrote:
 Consider a GUI algorithm that displays rows from the database.
 The typical problem is to work out the best column width for
 rendering the screen.
 
 interface IFormatDatabaseColumnWidth {
 public int calcColumnWidth( Object[][] data, MetaData metaData[], int
 columnNo );
 }
 
 // Slowest and most accurate algorithm iterates all rows in the result set
 class AllRowsFDCW implements IFrameDatabaseColumnWidth {  ... }
 // Algorithm based on the first 100 rows
 class First100FDCW implements IFrameDatabaseColumnWidth {  ... }
 // Algorithm that calculates the column width for every N rows
 class StepwiseFDCW implements IFrameDatabaseColumnWidth {  ... }
 
 This is the classic strategy pattern, as I remember writing it in a Swing/JDBC
 five years ago. (In fact Xenon-SQL is still out there somewhere, but it
 is broken against JDK 1.3 and 24/7/365 the time to fix it! )

SECOND PART: Ugh!

 In my opinion, by the way, as an aside, using the CoR to replace mere
implementations of an interface would be rather *nuts*.  This would
merely obfuscate and provide no benefit at all.  This is what our
fellow traveler Frank Zammettie finds inherently suspicious about the
*OOP nuts*.  This is, I am afraid, similar to some of the rather *knee
jerk* uses of CoR floating around.  How does that old saw go?  A boy
with a new hammer sees the whole world as a nail?

THIRD PART: GoF

The GoF used as their signal example a Composition class which
traversed and repaired (traverse(), repair()) and, much like your
algorithms with result sets, employed a field utility class Compositor
with the method compose() to implement various linebreaking strategies
(SimpleCompositor, TeXCompositor, and ArrayCompositor).

According to the GoF, who defined these things, the Strategy Pattern
must contain:

A Context interface holding a 

Re: [OT] Business Layer Ideas

2005-06-01 Thread Frank W. Zammetti
On Wed, June 1, 2005 9:47 am, Dakota Jack said:
 This is what our
 fellow traveler Frank Zammettie finds inherently suspicious about the
 *OOP nuts*.

Woah, leave me out of this.  I've purposely stayed away from this thread
all this time, now I have to get in...

I don't want anyone thinking I'm anti-OOP or anything remotely like that. 
I am very much an OOP proponent.  While I almost certainly have used the
term OOP nuts at some point because I think some people could probably
be described that way, that really sounds a lot more harsh than my opinion
actually is, so let me clarify...

What I have said is that I have seen many instances where people take the
OOP exercise so far in trying to get a perfect architectural structure in
place that they wind up writing code that is actually harder to understand
than it otherwise could be.  There is great benefit to writing code that
is composed of smaller, largely interchangeable pieces rather than large
monolithic pieces.  We all know this.  However, I have seen this taken so
far that it takes forever to grasp how all the pieces fit together to form
the larger whole, and this is just as bad as writing one larger whole
would have been.

Related to this, patterns are a wonderful invention, but I see day in and
day out people trying to find a pattern for every single situation. 
People seem to think that they have to solve every problem by finding a
suitable pattern.  The problem is, everyone seems to be so
pattern-gung-ho nowadays that they simply want to apply a pattern and if
it actually makes things more complex, too bad.  If it doesn't really fit
the problem but does happen to solve it, that's fine too.  A pattern
mismatch, or a pattern where none was truly needed, is just as bad as no
pattern at all in my experience.

Simplicity is a beautiful thing.  That is always my underlying design goal
for two reasons...

One, in a corporate environment as I work in, you never know when someone
else is going to have to come along and maintain your code.  You aren't
doing them any favors by writing code that, while architecturally sound,
is more complex to grasp.  If after three months they say wow, this guy
architected this code perfectly!, that's great, but if those three months
are spent not being especially productive while they try and understand
what you built, then the code wasn't well-written in the end.

Two, when you jump around between many different projects, you tend to
forget your own work quickly.  I sometimes look at code I wrote just last
year and go I don't remember how or why I did this.  Fortunately I
comment the hell out of everything I do, but more importantly I try to
code in straight-forward ways.  Sometimes that means *NOT* creating that
helper class to encapsulate 10 lines of code, even though that might
architecturally be better and fit some pattern, but instead just inline it
(assuming I don't expect it to be shared of course).

In a nuthshell, my point is absolutely *USE* OOP and patterns, and other
related techniques, think in those ways all the time, but don't
over-engineer things!!  Don't make design decisions because you CAN do
something, make them because it is the RIGHT thing to do.  And don't
over-complicate things for the sake of achieving some theoretical design
utopia.  Make your code easy to understand, even if sometimes at the cost
of design trade-offs.  Naturally there is a balance to be struck...
architecture *IS* after all important!

Frank

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Dakota Jack
Sorry, Frank.  I did not mean to misrepresent you in any way but
merely to use a jocular reference out of good nature.  I know you are
into OOP.

On 6/1/05, Frank W. Zammetti [EMAIL PROTECTED] wrote:
 On Wed, June 1, 2005 9:47 am, Dakota Jack said:
  This is what our
  fellow traveler Frank Zammettie finds inherently suspicious about the
  *OOP nuts*.
 
 Woah, leave me out of this.  I've purposely stayed away from this thread
 all this time, now I have to get in...
 
 I don't want anyone thinking I'm anti-OOP or anything remotely like that.
 I am very much an OOP proponent.  While I almost certainly have used the
 term OOP nuts at some point because I think some people could probably
 be described that way, that really sounds a lot more harsh than my opinion
 actually is, so let me clarify...
 
 What I have said is that I have seen many instances where people take the
 OOP exercise so far in trying to get a perfect architectural structure in
 place that they wind up writing code that is actually harder to understand
 than it otherwise could be.  There is great benefit to writing code that
 is composed of smaller, largely interchangeable pieces rather than large
 monolithic pieces.  We all know this.  However, I have seen this taken so
 far that it takes forever to grasp how all the pieces fit together to form
 the larger whole, and this is just as bad as writing one larger whole
 would have been.
 
 Related to this, patterns are a wonderful invention, but I see day in and
 day out people trying to find a pattern for every single situation.
 People seem to think that they have to solve every problem by finding a
 suitable pattern.  The problem is, everyone seems to be so
 pattern-gung-ho nowadays that they simply want to apply a pattern and if
 it actually makes things more complex, too bad.  If it doesn't really fit
 the problem but does happen to solve it, that's fine too.  A pattern
 mismatch, or a pattern where none was truly needed, is just as bad as no
 pattern at all in my experience.
 
 Simplicity is a beautiful thing.  That is always my underlying design goal
 for two reasons...
 
 One, in a corporate environment as I work in, you never know when someone
 else is going to have to come along and maintain your code.  You aren't
 doing them any favors by writing code that, while architecturally sound,
 is more complex to grasp.  If after three months they say wow, this guy
 architected this code perfectly!, that's great, but if those three months
 are spent not being especially productive while they try and understand
 what you built, then the code wasn't well-written in the end.
 
 Two, when you jump around between many different projects, you tend to
 forget your own work quickly.  I sometimes look at code I wrote just last
 year and go I don't remember how or why I did this.  Fortunately I
 comment the hell out of everything I do, but more importantly I try to
 code in straight-forward ways.  Sometimes that means *NOT* creating that
 helper class to encapsulate 10 lines of code, even though that might
 architecturally be better and fit some pattern, but instead just inline it
 (assuming I don't expect it to be shared of course).
 
 In a nuthshell, my point is absolutely *USE* OOP and patterns, and other
 related techniques, think in those ways all the time, but don't
 over-engineer things!!  Don't make design decisions because you CAN do
 something, make them because it is the RIGHT thing to do.  And don't
 over-complicate things for the sake of achieving some theoretical design
 utopia.  Make your code easy to understand, even if sometimes at the cost
 of design trade-offs.  Naturally there is a balance to be struck...
 architecture *IS* after all important!
 
 Frank
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Frank W. Zammetti
Not a problem.  Just didn't want anyone else to get the wrong impression.

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com

On Wed, June 1, 2005 10:35 am, Dakota Jack said:
 Sorry, Frank.  I did not mean to misrepresent you in any way but
 merely to use a jocular reference out of good nature.  I know you are
 into OOP.

 On 6/1/05, Frank W. Zammetti [EMAIL PROTECTED] wrote:
 On Wed, June 1, 2005 9:47 am, Dakota Jack said:
  This is what our
  fellow traveler Frank Zammettie finds inherently suspicious about the
  *OOP nuts*.

 Woah, leave me out of this.  I've purposely stayed away from this thread
 all this time, now I have to get in...

 I don't want anyone thinking I'm anti-OOP or anything remotely like
 that.
 I am very much an OOP proponent.  While I almost certainly have used the
 term OOP nuts at some point because I think some people could probably
 be described that way, that really sounds a lot more harsh than my
 opinion
 actually is, so let me clarify...

 What I have said is that I have seen many instances where people take
 the
 OOP exercise so far in trying to get a perfect architectural structure
 in
 place that they wind up writing code that is actually harder to
 understand
 than it otherwise could be.  There is great benefit to writing code that
 is composed of smaller, largely interchangeable pieces rather than large
 monolithic pieces.  We all know this.  However, I have seen this taken
 so
 far that it takes forever to grasp how all the pieces fit together to
 form
 the larger whole, and this is just as bad as writing one larger whole
 would have been.

 Related to this, patterns are a wonderful invention, but I see day in
 and
 day out people trying to find a pattern for every single situation.
 People seem to think that they have to solve every problem by finding a
 suitable pattern.  The problem is, everyone seems to be so
 pattern-gung-ho nowadays that they simply want to apply a pattern and
 if
 it actually makes things more complex, too bad.  If it doesn't really
 fit
 the problem but does happen to solve it, that's fine too.  A pattern
 mismatch, or a pattern where none was truly needed, is just as bad as no
 pattern at all in my experience.

 Simplicity is a beautiful thing.  That is always my underlying design
 goal
 for two reasons...

 One, in a corporate environment as I work in, you never know when
 someone
 else is going to have to come along and maintain your code.  You aren't
 doing them any favors by writing code that, while architecturally sound,
 is more complex to grasp.  If after three months they say wow, this guy
 architected this code perfectly!, that's great, but if those three
 months
 are spent not being especially productive while they try and understand
 what you built, then the code wasn't well-written in the end.

 Two, when you jump around between many different projects, you tend to
 forget your own work quickly.  I sometimes look at code I wrote just
 last
 year and go I don't remember how or why I did this.  Fortunately I
 comment the hell out of everything I do, but more importantly I try to
 code in straight-forward ways.  Sometimes that means *NOT* creating that
 helper class to encapsulate 10 lines of code, even though that might
 architecturally be better and fit some pattern, but instead just inline
 it
 (assuming I don't expect it to be shared of course).

 In a nuthshell, my point is absolutely *USE* OOP and patterns, and other
 related techniques, think in those ways all the time, but don't
 over-engineer things!!  Don't make design decisions because you CAN do
 something, make them because it is the RIGHT thing to do.  And don't
 over-complicate things for the sake of achieving some theoretical design
 utopia.  Make your code easy to understand, even if sometimes at the
 cost
 of design trade-offs.  Naturally there is a balance to be struck...
 architecture *IS* after all important!

 Frank

 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




 --
 You can lead a horse to water but you cannot make it float on its back.
 ~Dakota Jack~

 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Simon Chappell
Good stuff Frank. Your point is a good one and well made.

I just spoke at a Java User Group here in Wisconsin on a similar
issue, about how most people don't need to improve their Java
programming skills, rather they need to improve their programming
skills!

I think that pattern use falls in the same area. There are folks that
use patterns religiously, thinking that they're being good
programmers. All the while not realising that they're reducing
themselves down to the level of a coding monkey.

Too much of the Java code that I see is not object-oriented, it's
object-obsessed. Objects defined for any small silly thing. Wrappers
upon wrappers, calls to super in multiple levels of inheritance.
Arrgh. It's like trying to follow the plot of one of Frank Herbert's
Dune novels. (Good for novels, bad for programs though!)

Simon

On 6/1/05, Frank W. Zammetti [EMAIL PROTECTED] wrote:
 On Wed, June 1, 2005 9:47 am, Dakota Jack said:
  This is what our
  fellow traveler Frank Zammettie finds inherently suspicious about the
  *OOP nuts*.
 
 Woah, leave me out of this.  I've purposely stayed away from this thread
 all this time, now I have to get in...
 
 I don't want anyone thinking I'm anti-OOP or anything remotely like that.
 I am very much an OOP proponent.  While I almost certainly have used the
 term OOP nuts at some point because I think some people could probably
 be described that way, that really sounds a lot more harsh than my opinion
 actually is, so let me clarify...
 
 What I have said is that I have seen many instances where people take the
 OOP exercise so far in trying to get a perfect architectural structure in
 place that they wind up writing code that is actually harder to understand
 than it otherwise could be.  There is great benefit to writing code that
 is composed of smaller, largely interchangeable pieces rather than large
 monolithic pieces.  We all know this.  However, I have seen this taken so
 far that it takes forever to grasp how all the pieces fit together to form
 the larger whole, and this is just as bad as writing one larger whole
 would have been.
 
 Related to this, patterns are a wonderful invention, but I see day in and
 day out people trying to find a pattern for every single situation.
 People seem to think that they have to solve every problem by finding a
 suitable pattern.  The problem is, everyone seems to be so
 pattern-gung-ho nowadays that they simply want to apply a pattern and if
 it actually makes things more complex, too bad.  If it doesn't really fit
 the problem but does happen to solve it, that's fine too.  A pattern
 mismatch, or a pattern where none was truly needed, is just as bad as no
 pattern at all in my experience.
 
 Simplicity is a beautiful thing.  That is always my underlying design goal
 for two reasons...
 
 One, in a corporate environment as I work in, you never know when someone
 else is going to have to come along and maintain your code.  You aren't
 doing them any favors by writing code that, while architecturally sound,
 is more complex to grasp.  If after three months they say wow, this guy
 architected this code perfectly!, that's great, but if those three months
 are spent not being especially productive while they try and understand
 what you built, then the code wasn't well-written in the end.
 
 Two, when you jump around between many different projects, you tend to
 forget your own work quickly.  I sometimes look at code I wrote just last
 year and go I don't remember how or why I did this.  Fortunately I
 comment the hell out of everything I do, but more importantly I try to
 code in straight-forward ways.  Sometimes that means *NOT* creating that
 helper class to encapsulate 10 lines of code, even though that might
 architecturally be better and fit some pattern, but instead just inline it
 (assuming I don't expect it to be shared of course).
 
 In a nuthshell, my point is absolutely *USE* OOP and patterns, and other
 related techniques, think in those ways all the time, but don't
 over-engineer things!!  Don't make design decisions because you CAN do
 something, make them because it is the RIGHT thing to do.  And don't
 over-complicate things for the sake of achieving some theoretical design
 utopia.  Make your code easy to understand, even if sometimes at the cost
 of design trade-offs.  Naturally there is a balance to be struck...
 architecture *IS* after all important!
 
 Frank
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [OT] Business Layer Ideas

2005-06-01 Thread Pilgrim, Peter



 -Original Message-
 From: Dakota Jack [mailto:[EMAIL PROTECTED]
====
 
 Strategy (315) Define a family of algorithms encapsulate each
 one, and make them
  interchangeable.  Strategy lets the algorithm vary independently
 from clients that use
  it.
 

This is exactly I always thought it was too.

 So, your point about the Strategy Pattern, of course, does not work
 and is a non-starter.
 
 

Yes I missed the ``StrategyContext'' the actual POJO or entity that
encapsulates the ``Strategy'' and de-couples from the POJO.
Because of this decoupling you can thus change the strategy and
therefore write a __crazy_frog__ implementation that calls chain
if you found a worthy cause for it.


 A Strategy Pattern most importantly introduces some Helper utility
 interface for the various implementations of an algorithm.  Thus, you
 could have either
 
 A.  
 
 interface IFormatDatabaseColumnWidth {
 public void setHelper(Helper helper);
 public void doWork();
 }
 
 or
 
 B.
 
 Inteface IFormatDatabaseColumnWidth {
 public void doWork();
 }
 
 But the implementations would have to be something like:
 
 public class IFormatDatabaseColumnWidthImpl {
 private Helper helper;
 
 public void setHelper(Helper helper) {
 this.helper = helper;
 }
 
 public void doWork() {
 // Do business logic
 int value = helper.calcColumnWidth(data,metaData[]),columnNo);
 // Do more business logic
 }
 }
 
 Thus, there would be a Helper interface:
 
 interface Helper {
  int calcColumnWidth(Object [][] data, MetaData 
 metaData[]) int columnNo);
 }
 
 The differing calculations, then, would go into the Helper interface
 implementations and not into the IFormatDatabaseColumnWidth interface
 implementations.  So, you might have
 
 public class AllRowsFDCW implements Helper {
 public int calcColumnWidth(Object [][] data, MetaData metaData[])
 int columnNo) {
  // Slowest and most accurate algorithm iterates all rows in
 the result set
 }
 }
 
 and 
 
 public class First100FDCW implements Helper {
 public int calcColumnWidth(Object [][] data, MetaData metaData[])
 int columnNo) {
  // Algorithm based on the first 100 rows
 }
 }
 
 and 
 
 public class class StepwiseFDCW implements Helper {
 public int calcColumnWidth(Object [][] data, MetaData metaData[])
 int columnNo) {
 // Algorithm that calculates the column width for every N rows
 }
 }
 
 Please note that the pattern essentially uses polymorphism and late
 binding not through implementations of an interface but through a
 composite pattern.
 
 Thus, when inversion of control (IoC) is used with the Strategy
 Pattern, whether you are doing Dependency Injection (DI) or Dependency
 Lookup (DL), the Helper is what is the subject of the lookup or
 injection.  (IoC, including DL, cannot be identified as DI merely.)
 
 Your explanation of the Strategy Pattern leaves out what is essential
 to the pattern.  Consequently, your explanation is merely how Chain of
 Responsibiltiy (CoR) can be used instead of differing implementations
 of an interface. See below for a short note on your CoR example.
 

Dependency injection can be used anywhere where there is a public constructor
or JavaBean setters. If you are using strategy pattern that you are right
you can inject the ``strategy'' into the ``StrategyContext'' at run-time.

And in this case if you want to use CoR inside the ``StrategyContext''
 of course you need to write an adaptor for your algorithm interface
to call the first command of the Chain.

 
 On 6/1/05, Pilgrim, Peter [EMAIL PROTECTED] wrote:
  Consider a GUI algorithm that displays rows from the database.
  The typical problem is to work out the best column width for
  rendering the screen.
  
  interface IFormatDatabaseColumnWidth {
  public int calcColumnWidth( Object[][] data, 
 MetaData metaData[], int
  columnNo );
  }
  
  // Slowest and most accurate algorithm iterates all rows in 
 the result set
  class AllRowsFDCW implements IFrameDatabaseColumnWidth {  ... }
  // Algorithm based on the first 100 rows
  class First100FDCW implements IFrameDatabaseColumnWidth {  ... }
  // Algorithm that calculates the column width for every N rows
  class StepwiseFDCW implements IFrameDatabaseColumnWidth {  ... }
  
  This is the classic strategy pattern, as I remember writing 
 it in a Swing/JDBC
  five years ago. (In fact Xenon-SQL is still out there 
 somewhere, but it
  is broken against JDK 1.3 and 24/7/365 the time to fix it! )
 
 SECOND PART: Ugh!
 
  In my opinion, by the way, as an aside, using the CoR to replace mere
 implementations of an interface would be rather *nuts*.  This would
 merely obfuscate and provide no benefit at all.  This is what our
 fellow traveler Frank Zammettie finds inherently suspicious about the
 *OOP nuts*.  This is, I am afraid, similar to some of the rather *knee
 jerk* uses of CoR floating around.  How does that 

RE: [OT] Business Layer Ideas

2005-06-01 Thread Pilgrim, Peter

 -Original Message-
 From: Simon Chappell [mailto:[EMAIL PROTECTED]
 Sent: 01 June 2005 16:29
 To: Struts Users Mailing List
 Subject: Re: [OT] Business Layer Ideas
 
 
 Good stuff Frank. Your point is a good one and well made.
 
 I just spoke at a Java User Group here in Wisconsin on a similar
 issue, about how most people don't need to improve their Java
 programming skills, rather they need to improve their programming
 skills!
 
 I think that pattern use falls in the same area. There are folks that
 use patterns religiously, thinking that they're being good
 programmers. All the while not realising that they're reducing
 themselves down to the level of a coding monkey.
 
Patterns came from the recognition of common idioms, practices in the
industry. Religously following and applying patterns could condemn 
you not to discovering future oversights and other intuitions.

 Too much of the Java code that I see is not object-oriented, it's
 object-obsessed. Objects defined for any small silly thing. Wrappers
 upon wrappers, calls to super in multiple levels of inheritance.
 Arrgh. It's like trying to follow the plot of one of Frank Herbert's
 Dune novels. (Good for novels, bad for programs though!)

I wonder, if they will get over the dessert dunes onto 
lambda functions and tuples next?

 
 Simon

Well done, Craig, with restrospect. A simpler designed framework
like Struts is exactly the example, the proof, which Simon espouses 
above.

 
 On 6/1/05, Frank W. Zammetti [EMAIL PROTECTED] wrote:
  On Wed, June 1, 2005 9:47 am, Dakota Jack said:
   This is what our
   fellow traveler Frank Zammettie finds inherently 
 suspicious about the
   *OOP nuts*.
  
  Woah, leave me out of this.  I've purposely stayed away 
 from this thread
  all this time, now I have to get in...
  
  I don't want anyone thinking I'm anti-OOP or anything 
 remotely like that.
  I am very much an OOP proponent.  While I almost certainly 
 have used the
  term OOP nuts at some point because I think some people 
 could probably
  be described that way, that really sounds a lot more harsh 
 than my opinion
  actually is, so let me clarify...
  
  What I have said is that I have seen many instances where 
 people take the
  OOP exercise so far in trying to get a perfect 
 architectural structure in
  place that they wind up writing code that is actually 
 harder to understand
  than it otherwise could be.  There is great benefit to 
 writing code that
  is composed of smaller, largely interchangeable pieces 
 rather than large
  monolithic pieces.  We all know this.  However, I have seen 
 this taken so
  far that it takes forever to grasp how all the pieces fit 
 together to form
  the larger whole, and this is just as bad as writing one 
 larger whole
  would have been.
  
  Related to this, patterns are a wonderful invention, but I 
 see day in and
  day out people trying to find a pattern for every single situation.
  People seem to think that they have to solve every problem 
 by finding a
  suitable pattern.  The problem is, everyone seems to be so
  pattern-gung-ho nowadays that they simply want to apply a 
 pattern and if
  it actually makes things more complex, too bad.  If it 
 doesn't really fit
  the problem but does happen to solve it, that's fine too.  A pattern
  mismatch, or a pattern where none was truly needed, is just 
 as bad as no
  pattern at all in my experience.
  
  Simplicity is a beautiful thing.  That is always my 
 underlying design goal
  for two reasons...
  
  One, in a corporate environment as I work in, you never 
 know when someone
  else is going to have to come along and maintain your code. 
  You aren't
  doing them any favors by writing code that, while 
 architecturally sound,
  is more complex to grasp.  If after three months they say 
 wow, this guy
  architected this code perfectly!, that's great, but if 
 those three months
  are spent not being especially productive while they try 
 and understand
  what you built, then the code wasn't well-written in the end.
  
  Two, when you jump around between many different projects, 
 you tend to
  forget your own work quickly.  I sometimes look at code I 
 wrote just last
  year and go I don't remember how or why I did this.  Fortunately I
  comment the hell out of everything I do, but more 
 importantly I try to
  code in straight-forward ways.  Sometimes that means *NOT* 
 creating that
  helper class to encapsulate 10 lines of code, even though that might
  architecturally be better and fit some pattern, but instead 
 just inline it
  (assuming I don't expect it to be shared of course).
  
  In a nuthshell, my point is absolutely *USE* OOP and 
 patterns, and other
  related techniques, think in those ways all the time, but don't
  over-engineer things!!  Don't make design decisions because 
 you CAN do
  something, make them because it is the RIGHT thing to do.  And don't
  over-complicate things for the sake of achieving some 
 theoretical

Re: [OT] Business Layer Ideas

2005-06-01 Thread Leon Rosenberg
On Wed, 2005-06-01 at 10:31 -0400, Frank W. Zammetti wrote:

 ...
 Simplicity is a beautiful thing.  That is always my underlying design goal
 for two reasons...

Now this is really a perfect statement on architectures! 

Thanx Frank

Leon.



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Simon Chappell
 Patterns came from the recognition of common idioms, practices in the
 industry. Religously following and applying patterns could condemn
 you not to discovering future oversights and other intuitions.

Back when I was a young programmer we used to have to think. THINK! Oh
the humanity. No patterns for us. Just endless cups of tea, a pad of
paper (or the back of long listings on greenbar) and your flowchart
stencil. We had it rough I tell you, but I think that we wrote better
code back in those days. And those of us that came through them, still
have a tendency to do so.

When was the last time you had to worry about memory efficiency? I
have 1.5 Gb of RAM on my machine at home. Goodness, how do you use all
of that up? (Photoshop is the only thing that comes close to using
that much memory) My first computer had 1K, yes, that's 1024 bytes. To
get anything worthwhile to work in that, you had to think hard and
squeeze harder. It made us think. Many programmers today don't even
know that computers used to be that small.

 I wonder, if they will get over the dessert dunes onto
 lambda functions and tuples next?

We can only hope. Perhaps the prophesied return of Lisp will finally
happen and people will discover REAL programming, not this Teach
Yourself The Latest Junk in 24 Hours stuff. Real, worthwhile,
programming is hard, so if your going to do it, study for it, and
learn (LEARN I say) to do it well.

 Well done, Craig, with restrospect. A simpler designed framework
 like Struts is exactly the example, the proof, which Simon espouses
 above.

Yes. Yes. Yes. Thank you Craig.

Simon

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread gdeschen
I have these 2 phrases posted in my office as a reminder...

 Simplicity is the ultimate sophistication  - Leonardo da Vinci
 The ability to simplify means to eliminate the unnecessary so that the 
necessary may speak - Hans Hofmann

- Glenn





Leon Rosenberg [EMAIL PROTECTED] 
01/06/2005 11:42 AM
Please respond to
Struts Users Mailing List user@struts.apache.org


To
Struts Users Mailing List user@struts.apache.org
cc

Subject
Re: [OT] Business Layer Ideas






On Wed, 2005-06-01 at 10:31 -0400, Frank W. Zammetti wrote:

 ...
 Simplicity is a beautiful thing.  That is always my underlying design 
goal
 for two reasons...

Now this is really a perfect statement on architectures! 

Thanx Frank

Leon.



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





Re: [OT] Business Layer Ideas

2005-06-01 Thread Frank W. Zammetti
On Wed, June 1, 2005 12:15 pm, Simon Chappell said:
 Back when I was a young programmer we used to have to think. THINK!

Hey, I'm the resident bemoaner of how rough we used to have it!  How dare
you take my job?!? :) LOL

 Oh
 the humanity. No patterns for us. Just endless cups of tea, a pad of
 paper (or the back of long listings on greenbar) and your flowchart
 stencil.

Stencils?!?  I laugh at your stencils!  It was only freehand drawings for
us, and that was when we took the time to actually PLAN anything!

 We had it rough I tell you, but I think that we wrote better
 code back in those days. And those of us that came through them, still
 have a tendency to do so.

I have said on numerous occassions that programmers that have never
touched Assembly are, with few exceptions, not as good.  And although the
overall tone of my reply here is a joking one, this is a point I am
serious about.

I have actually rejected resumes because they had no Assembly experience. 
I'm not saying you have to be able to hand-code a 3D game engine, but at
least have had some exposure.

I spent a number of years doing absolutely nothing BUT Assembly, and while
I honestly haven't done anything beyond some very simple subfunctions in
the past 5-7 years or so, I wouldn't trade that experience for all the
algorithm classes and patterns knowledge in the world.  There is NOTHING
like understanding, at least at a conceptual level, what's going on down
there in the lower layers of your machine.  Assembly gives you this.

Like I said, there are exceptions to this rule, but I haven't met too many.

 My first computer had 1K, yes, that's 1024 bytes.

Timex Sinclair 1000 by any chance?  I loved that little thing!  So much so
that I spend $200 on one off eBay last year (three of them actually, with
a lot of extras).  The best thing about it was that if you could manage
anything decent on it you were learning... I crammed the entire catalog of
movie times for a week for Long Island in it... invented my own
rudimentary compression scheme (although I had no clue what compression
or algorithms were back then... never even heard the words... I was like
9 or so!).  And I didn't have the 16K expansion module because my dad
tried to solder it on because we could never get a good contact, but he
fried it in the process, so I was stuck with the 1K (actually, now that I
think about it, it might have been 2K.  I'm not sure).

 We can only hope. Perhaps the prophesied return of Lisp will finally
 happen and people will discover REAL programming, not this Teach
 Yourself The Latest Junk in 24 Hours stuff. Real, worthwhile,
 programming is hard, so if your going to do it, study for it, and
 learn (LEARN I say) to do it well.

I}hate}}}LISP.

LISP... ugh.  I can't stand any language that contains more parenthesis
per 1,000 lines of code than ACTUAL CODE! :)

 Well done, Craig, with restrospect. A simpler designed framework
 like Struts is exactly the example, the proof, which Simon espouses
 above.

 Yes. Yes. Yes. Thank you Craig.

I agree... There are probably architecural decisions in Struts I could
complain about, but I think it would quickly become nothing but
nitpicking.  Craig did a rather good job IMHO of straddling the line
between a good architecure that is flexible and extensible without making
it too complex.  Good job indeed, thank you!

Frank

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread gdeschen
Come on guys... it is much tougher today than back when you and I were 
young!
Programming is programming: things haven't changed that much. ;)

I started out doing Assembler. Then moved on to Cobol and CICS.
I remember the excitement when Cobol II came out wow 4 new 
instructions... learnt it in 15 seconds flat.
Followed the fashion to Client/Server applications in VB  C++
Moved on to Internet/Intranet/Extranet fashions... with Microsoft 
Technologies.
All of the tiers, architectures  infrastructures.
Now I'm on the Java side of things.
Think of all of the stuff happening today... APIs, Frameworks, Patterns, 
etc.
And the responsibility of being competent today is a never ending task.

I am smiling... knowing that I could probably go back to CICS/Cobol and be 
productive in half a day.
Walk out of the office and forget about my job... which is something I 
cannot do anymore.
But I am having a blast... and wouldn't change anything ah perhaps 
somethings that this is for another time!

My little trip down memory lane. :)
- Glenn




Frank W. Zammetti [EMAIL PROTECTED] 
01/06/2005 12:39 PM
Please respond to
Struts Users Mailing List user@struts.apache.org


To
Simon Chappell [EMAIL PROTECTED]
cc
Struts Users Mailing List user@struts.apache.org
Subject
Re: [OT] Business Layer Ideas






On Wed, June 1, 2005 12:15 pm, Simon Chappell said:
 Back when I was a young programmer we used to have to think. THINK!

Hey, I'm the resident bemoaner of how rough we used to have it!  How dare
you take my job?!? :) LOL

 Oh
 the humanity. No patterns for us. Just endless cups of tea, a pad of
 paper (or the back of long listings on greenbar) and your flowchart
 stencil.

Stencils?!?  I laugh at your stencils!  It was only freehand drawings for
us, and that was when we took the time to actually PLAN anything!

 We had it rough I tell you, but I think that we wrote better
 code back in those days. And those of us that came through them, still
 have a tendency to do so.

I have said on numerous occassions that programmers that have never
touched Assembly are, with few exceptions, not as good.  And although the
overall tone of my reply here is a joking one, this is a point I am
serious about.

I have actually rejected resumes because they had no Assembly experience. 
I'm not saying you have to be able to hand-code a 3D game engine, but at
least have had some exposure.

I spent a number of years doing absolutely nothing BUT Assembly, and while
I honestly haven't done anything beyond some very simple subfunctions in
the past 5-7 years or so, I wouldn't trade that experience for all the
algorithm classes and patterns knowledge in the world.  There is NOTHING
like understanding, at least at a conceptual level, what's going on down
there in the lower layers of your machine.  Assembly gives you this.

Like I said, there are exceptions to this rule, but I haven't met too 
many.

 My first computer had 1K, yes, that's 1024 bytes.

Timex Sinclair 1000 by any chance?  I loved that little thing!  So much so
that I spend $200 on one off eBay last year (three of them actually, with
a lot of extras).  The best thing about it was that if you could manage
anything decent on it you were learning... I crammed the entire catalog of
movie times for a week for Long Island in it... invented my own
rudimentary compression scheme (although I had no clue what compression
or algorithms were back then... never even heard the words... I was like
9 or so!).  And I didn't have the 16K expansion module because my dad
tried to solder it on because we could never get a good contact, but he
fried it in the process, so I was stuck with the 1K (actually, now that I
think about it, it might have been 2K.  I'm not sure).

 We can only hope. Perhaps the prophesied return of Lisp will finally
 happen and people will discover REAL programming, not this Teach
 Yourself The Latest Junk in 24 Hours stuff. Real, worthwhile,
 programming is hard, so if your going to do it, study for it, and
 learn (LEARN I say) to do it well.

I}hate}}}LISP.

LISP... ugh.  I can't stand any language that contains more parenthesis
per 1,000 lines of code than ACTUAL CODE! :)

 Well done, Craig, with restrospect. A simpler designed framework
 like Struts is exactly the example, the proof, which Simon espouses
 above.

 Yes. Yes. Yes. Thank you Craig.

I agree... There are probably architecural decisions in Struts I could
complain about, but I think it would quickly become nothing but
nitpicking.  Craig did a rather good job IMHO of straddling the line
between a good architecure that is flexible and extensible without making
it too complex.  Good job indeed, thank you!

Frank

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





Re: [OT] Business Layer Ideas

2005-06-01 Thread Dave Newton

Frank W. Zammetti wrote:


Related to this, patterns are a wonderful invention, but I see day in and
day out people trying to find a pattern for every single situation. 
People seem to think that they have to solve every problem by finding a

suitable pattern.  The problem is, everyone seems to be so
pattern-gung-ho nowadays that they simply want to apply a pattern and if
it actually makes things more complex, too bad.  If it doesn't really fit
the problem but does happen to solve it, that's fine too.  A pattern
mismatch, or a pattern where none was truly needed, is just as bad as no
pattern at all in my experience.
 

This practice is not only common, but institutionalized. For example, 
in the OO world you hear a good deal about patterns. I wonder if these 
patterns are not sometimes evidence of case (c), the human compiler, at 
work. When I see patterns in my programs, I consider it a sign of 
trouble. The shape of a program should reflect only the problem it needs 
to solve. Any other regularity in the code is a sign, to me at least, 
that I'm using abstractions that aren't powerful enough-- often that I'm 
generating by hand the expansions of some macro that I need to write. 
-- Paul Graham


Dave No, really, he's not a cult Newton



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Martin Gainty

Dave-
could you give us an example of over-using a weak abstraction ?
Martin-

- Original Message - 
From: Dave Newton [EMAIL PROTECTED]

To: Struts Users Mailing List user@struts.apache.org
Sent: Wednesday, June 01, 2005 2:19 PM
Subject: Re: [OT] Business Layer Ideas



Frank W. Zammetti wrote:


Related to this, patterns are a wonderful invention, but I see day in and
day out people trying to find a pattern for every single situation. People 
seem to think that they have to solve every problem by finding a

suitable pattern.  The problem is, everyone seems to be so
pattern-gung-ho nowadays that they simply want to apply a pattern and if
it actually makes things more complex, too bad.  If it doesn't really fit
the problem but does happen to solve it, that's fine too.  A pattern
mismatch, or a pattern where none was truly needed, is just as bad as no
pattern at all in my experience.

This practice is not only common, but institutionalized. For example, in 
the OO world you hear a good deal about patterns. I wonder if these 
patterns are not sometimes evidence of case (c), the human compiler, at 
work. When I see patterns in my programs, I consider it a sign of trouble. 
The shape of a program should reflect only the problem it needs to solve. 
Any other regularity in the code is a sign, to me at least, that I'm using 
abstractions that aren't powerful enough-- often that I'm generating by 
hand the expansions of some macro that I need to write. -- Paul Graham


Dave No, really, he's not a cult Newton



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Dave Newton

Simon Chappell wrote:


Back when I was a young programmer we used to have to think. THINK!


Ah, a man after my own heart.

In those days, if we wanted the computer to do _anything_, we generally 
had to write it ourselves, and nobody had ever done it before, so we 
couldn't even cheat. And like you say, we were not blessed with an 
abundance of memory (although I had a luxurious 4K, giving me 3K of 
bloat over you ;)


When was the last time you had to worry about memory efficiency? 

I actually still get to worry sometimes, as I work from time to time 
with small embedded systems, but even those are pretty extreme compared 
to stuff I was programming on even ten years ago. The game machine I 
programmed on rarely had more than 16K, into which we would cram 
(limited) AI, sound, voice, and graphics.



We can only hope. Perhaps the prophesied return of Lisp will finally
happen and people will discover REAL programming, not this Teach
Yourself The Latest Junk in 24 Hours stuff. 


Mmmm, Creamy Lisp Goodness.

One major problem lies with how programmers are educated today. A lot of 
schools teach a language or a design philosophy but rarely are in-depth 
enough to actually breed the abstract skills necessary for the 
programmer to become useful. It's a shame, really. I went to college in 
1986 (and had been programming since 1978) and within a few years of my 
graduation in 1990 the curriculum at most schools had been watered down 
to the point of near uselessness.


Dave



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Dave Newton

Frank W. Zammetti wrote:


And I didn't have the 16K expansion module because my dad
tried to solder it on because we could never get a good contact


No no, you wanted it a little loose, for paging :D


I}hate}}}LISP.

LISP... ugh.  I can't stand any language that contains more parenthesis
per 1,000 lines of code than ACTUAL CODE! :)
 

Sounds like why I hate Java; I dislike having more boilerplate than 
actual problem-solving material.



I agree... There are probably architecural decisions in Struts I could
complain about, but I think it would quickly become nothing but
nitpicking.  Craig did a rather good job IMHO of straddling the line
between a good architecure that is flexible and extensible without making
it too complex.  Good job indeed, thank you!
 


+1

Pretty lean and mean, all things considered.

Dave



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Tom Dimock


On Jun 1, 2005, at 12:39 PM, Frank W. Zammetti wrote:


Timex Sinclair 1000 by any chance?


Agh, you youngsters...  My first program ran on a Burroughs 220 that  
was a vacuum tube based computer!  But seriously, I agree fully that  
having learned on machines that had very limited memory, and having  
spent a lot of time writing assembler made me a much better  
programmer.  But what I think contributed the most was that all of my  
early programming was done on mainframes where one compile and run  
(actually compile, link and run; remember link editors and overlay  
structures?) per day was considered pretty good turnaround.  If you  
were going to get your programming assignments done on time, you  
learned to debug code by reading it and thinking until you found the  
errors.  I still make very little use of debuggers to this day, and  
find the younger programmers completely mystified as to how I ever  
get code to work.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Frank W. Zammetti
On Wed, June 1, 2005 2:55 pm, Tom Dimock said:
 I still make very little use of debuggers to this day, and
 find the younger programmers completely mystified as to how I ever
 get code to work.

I frequently get the same reaction... I rarely use a debugger either, yet
I seem to have very little trouble tracking down problems.  In fact, I
dare say I am a more efficient bug hunter than many people I know who DO
use them.

I don't bemoan anyone using a debugger by the way, or any other advanced
tool.  Maybe at one point I would have, but no longer.  I realize that
each person works at peak efficiency in their own way, with their own
preferred tools.  That's one of the reasons I am a big believer in not
forcing any given IDE on anyone and in fact I'll buy my guys virtually any
tool they tell me they need (as long as they are convincing!)...
especially in the Java world where it's relatively simple to make
applications agnostic about development environments (except for those
damned Websphere-specific files!), let each work in the way they are most
comfortable and will be most efficient.  As long as it all boils down to
an Ant script and each can reproduce a build in their environment, I'm
cool with it.  For me, it's UltraEdit and a command line, for some it's
WSAD or Eclipse or IntelliJ or whatever else.

Here's a cool story (which illustrates just how pitiful my life is, but I
digress)... back in high school one day a fellow student came to me... he
was taking a Pascal class (yes, my school actually had Fortran, COBOL and
Pascal classes!)... he was having endless trouble getting a program of his
to work.  He showed me the listing, and it took me about 10 minutes of
looking at it, just reading the code, but I finally pointed out the
problem.  I don't remember exactly what the problem was, but it wasn't a
simple syntactic error, it was a logic/flow issue.

The thing is, I had never to that point even SEEN Pascal code!  But, I
knew enough about the structure of programming languages in general and
about program construction in general and about logic in general that I
could figure it out.

sarcasmNow bow before me!/sarcasm

Frank

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Dave Newton

Frank W. Zammetti wrote:


On Wed, June 1, 2005 2:55 pm, Tom Dimock said:
 


I still make very little use of debuggers to this day, and
find the younger programmers completely mystified as to how I ever
get code to work.
   


I frequently get the same reaction... I rarely use a debugger either, yet
I seem to have very little trouble tracking down problems.  In fact, I
dare say I am a more efficient bug hunter than many people I know who DO
use them.
 

Debuggers seem useful for only a small range of bug types. When you need 
one, they're awesome, but generally a good reading and understanding is 
more than enough. Or some simple logging :)


(Although I have to admit, when game programming or the Sega GameGear I 
would have had to pull off my own hea if I hadn't had the ICE.)



(except for those damned Websphere-specific files!)


Weblogic, too :(

I'm still not sure why it needs .JSPF files; if anybody knows, tell me, 
because it's causing me a headache right now.



The thing is, I had never to that point even SEEN Pascal code!

I did the same thing with COBOL once. And immediately swore I'd never 
learn COBOL. *shudder*


Of course, I did the same thing with Java, and just look at me now... :/

Dave



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Martin Gainty
There is always a cost As Leon pointed IDE button clickers are now called 
Software Engineers
What happens when a requirement comes along which is not acomodated by 
clicking 2 buttons?
The entire project comes to an immediate HALT..the child prodigy sheepishly 
walks into his bosses office
and cries he cannot do it since the IDE does not accomodate this feature..it 
is time to call the 'dreaded consultant'

The forgotten rule of Extensibility means that however you build your app
you must always be able to take on any features and functionality that the 
client may desire
Always best to Read/update and understand the caveats of the requirements 
doc carefully before pushing *any* limited scoped solution into production..
Those who remember rolling your own customised solution know this is a lost 
artform

Martin-
- Original Message - 
From: Leon Rosenberg [EMAIL PROTECTED]

To: 'Struts Users Mailing List' user@struts.apache.org
Sent: Wednesday, June 01, 2005 2:44 PM
Subject: AW: [OT] Business Layer Ideas




One major problem lies with how programmers are educated
today. A lot of schools teach a language or a design
philosophy but rarely are in-depth enough to actually breed
the abstract skills necessary for the programmer to become
useful. It's a shame, really. I went to college in
1986 (and had been programming since 1978) and within a few
years of my graduation in 1990 the curriculum at most schools
had been watered down to the point of near uselessness.



Well, make a stop... You can't compare things programmed back in the Dark
Ages with nowerdays programming.
We make far more complicated programms in far less time and for lesser 
cost.


You can critisize overusage of patterns, but under-usage of patterns is
clearly at least as bad.
Patterns make code understanding simplier, because everyone (should) know
them, and
simplicity is the goal as many of us stated before.
You can't reinvent the wheel each time you write a piece of code, it's
simply waste of your time and customers/companies money.

Regards
Leon



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Frank W. Zammetti
On Wed, June 1, 2005 3:42 pm, Dave Newton said:
 (Although I have to admit, when game programming or the Sega GameGear I
 would have had to pull off my own hea if I hadn't had the ICE.)

That's a good point... I do PocketPC game development, and I'd hate to
think about doing it without a good debugger at the ready.  Especially for
those gee, I just switched to release mode and now this stupid array
bounds is being overflowed because the optimzation switches are a bit too
aggressive by default problems.  Ugh.

(except for those damned Websphere-specific files!)

 Weblogic, too :(

I suppose it's true of any app server, save Tomcat :)  The ironic thing
about the Websphere files is that I am now the only one around here that
can understand and edit them by hand!  I let RAD generate them to begin
with, then hacked the hell out of them to trim them down to the basics
that I could easily understand, now I don't need RAD any more.

Frank

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Frank W. Zammetti
Leon, I meant to ask, what does the AW prefix on messages signify?  I've
seen it plenty of times but never really thought to ask until now.

Oh yeah... IDE button-clickers... I HATE THEE!  I have no problem with a
person that uses convenience tools so long as they can do without them.  I
have no problem with using a tool to generate getters and setters for a
bean class, but if you can't do it by hand then you have no business
coding.  I actually know people that have no business coding, sorry as
that is.

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com

On Wed, June 1, 2005 3:43 pm, Martin Gainty said:
 There is always a cost As Leon pointed IDE button clickers are now called
 Software Engineers
 What happens when a requirement comes along which is not acomodated by
 clicking 2 buttons?
 The entire project comes to an immediate HALT..the child prodigy
 sheepishly
 walks into his bosses office
 and cries he cannot do it since the IDE does not accomodate this
 feature..it
 is time to call the 'dreaded consultant'
 The forgotten rule of Extensibility means that however you build your app
 you must always be able to take on any features and functionality that the
 client may desire
 Always best to Read/update and understand the caveats of the requirements
 doc carefully before pushing *any* limited scoped solution into
 production..
 Those who remember rolling your own customised solution know this is a
 lost
 artform
 Martin-
 - Original Message -
 From: Leon Rosenberg [EMAIL PROTECTED]
 To: 'Struts Users Mailing List' user@struts.apache.org
 Sent: Wednesday, June 01, 2005 2:44 PM
 Subject: AW: [OT] Business Layer Ideas



 One major problem lies with how programmers are educated
 today. A lot of schools teach a language or a design
 philosophy but rarely are in-depth enough to actually breed
 the abstract skills necessary for the programmer to become
 useful. It's a shame, really. I went to college in
 1986 (and had been programming since 1978) and within a few
 years of my graduation in 1990 the curriculum at most schools
 had been watered down to the point of near uselessness.


 Well, make a stop... You can't compare things programmed back in the
 Dark
 Ages with nowerdays programming.
 We make far more complicated programms in far less time and for lesser
 cost.

 You can critisize overusage of patterns, but under-usage of patterns is
 clearly at least as bad.
 Patterns make code understanding simplier, because everyone (should)
 know
 them, and
 simplicity is the goal as many of us stated before.
 You can't reinvent the wheel each time you write a piece of code, it's
 simply waste of your time and customers/companies money.

 Regards
 Leon



 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Leon Rosenberg
AW = RE in german :-)
 
It's standart by outlook...

 -Ursprüngliche Nachricht-
 Von: Frank W. Zammetti [mailto:[EMAIL PROTECTED] 
 Gesendet: Mittwoch, 1. Juni 2005 21:55
 An: Martin Gainty
 Cc: Struts Users Mailing List
 Betreff: Re: [OT] Business Layer Ideas
 
 Leon, I meant to ask, what does the AW prefix on messages 
 signify?  I've seen it plenty of times but never really 
 thought to ask until now.
 
 Oh yeah... IDE button-clickers... I HATE THEE!  I have no 
 problem with a person that uses convenience tools so long as 
 they can do without them.  I have no problem with using a 
 tool to generate getters and setters for a bean class, but if 
 you can't do it by hand then you have no business coding.  I 
 actually know people that have no business coding, sorry as that is.
 
 --
 Frank W. Zammetti
 Founder and Chief Software Architect
 Omnytex Technologies
 http://www.omnytex.com
 
 On Wed, June 1, 2005 3:43 pm, Martin Gainty said:
  There is always a cost As Leon pointed IDE button clickers are now 
  called Software Engineers What happens when a requirement 
 comes along 
  which is not acomodated by clicking 2 buttons?
  The entire project comes to an immediate HALT..the child prodigy 
  sheepishly walks into his bosses office and cries he cannot do it 
  since the IDE does not accomodate this feature..it is time 
 to call the 
  'dreaded consultant'
  The forgotten rule of Extensibility means that however you 
 build your 
  app you must always be able to take on any features and 
 functionality 
  that the client may desire Always best to Read/update and 
 understand 
  the caveats of the requirements doc carefully before pushing *any* 
  limited scoped solution into production..
  Those who remember rolling your own customised solution 
 know this is a 
  lost artform
  Martin-
  - Original Message -
  From: Leon Rosenberg [EMAIL PROTECTED]
  To: 'Struts Users Mailing List' user@struts.apache.org
  Sent: Wednesday, June 01, 2005 2:44 PM
  Subject: AW: [OT] Business Layer Ideas
 
 
 
  One major problem lies with how programmers are educated today. A 
  lot of schools teach a language or a design philosophy but rarely 
  are in-depth enough to actually breed the abstract skills 
 necessary 
  for the programmer to become useful. It's a shame, 
 really. I went to 
  college in
  1986 (and had been programming since 1978) and within a 
 few years of 
  my graduation in 1990 the curriculum at most schools had been 
  watered down to the point of near uselessness.
 
 
  Well, make a stop... You can't compare things programmed 
 back in the 
  Dark Ages with nowerdays programming.
  We make far more complicated programms in far less time and for 
  lesser cost.
 
  You can critisize overusage of patterns, but under-usage 
 of patterns 
  is clearly at least as bad.
  Patterns make code understanding simplier, because 
 everyone (should) 
  know them, and simplicity is the goal as many of us stated before.
  You can't reinvent the wheel each time you write a piece of code, 
  it's simply waste of your time and customers/companies money.
 
  Regards
  Leon
 
 
 
  
 -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
  
 -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Leon Rosenberg
AW = RE in german :-)
 
It's standart by outlook...

 -Ursprüngliche Nachricht-
 Von: Frank W. Zammetti [mailto:[EMAIL PROTECTED] 
 Gesendet: Mittwoch, 1. Juni 2005 21:55
 An: Martin Gainty
 Cc: Struts Users Mailing List
 Betreff: Re: [OT] Business Layer Ideas
 
 Leon, I meant to ask, what does the AW prefix on messages 
 signify?  I've seen it plenty of times but never really 
 thought to ask until now.
 
 Oh yeah... IDE button-clickers... I HATE THEE!  I have no 
 problem with a person that uses convenience tools so long as 
 they can do without them.  I have no problem with using a 
 tool to generate getters and setters for a bean class, but if 
 you can't do it by hand then you have no business coding.  I 
 actually know people that have no business coding, sorry as that is.
 
 --
 Frank W. Zammetti
 Founder and Chief Software Architect
 Omnytex Technologies
 http://www.omnytex.com
 
 On Wed, June 1, 2005 3:43 pm, Martin Gainty said:
  There is always a cost As Leon pointed IDE button clickers are now 
  called Software Engineers What happens when a requirement 
 comes along 
  which is not acomodated by clicking 2 buttons?
  The entire project comes to an immediate HALT..the child prodigy 
  sheepishly walks into his bosses office and cries he cannot do it 
  since the IDE does not accomodate this feature..it is time 
 to call the 
  'dreaded consultant'
  The forgotten rule of Extensibility means that however you 
 build your 
  app you must always be able to take on any features and 
 functionality 
  that the client may desire Always best to Read/update and 
 understand 
  the caveats of the requirements doc carefully before pushing *any* 
  limited scoped solution into production..
  Those who remember rolling your own customised solution 
 know this is a 
  lost artform
  Martin-
  - Original Message -
  From: Leon Rosenberg [EMAIL PROTECTED]
  To: 'Struts Users Mailing List' user@struts.apache.org
  Sent: Wednesday, June 01, 2005 2:44 PM
  Subject: AW: [OT] Business Layer Ideas
 
 
 
  One major problem lies with how programmers are educated today. A 
  lot of schools teach a language or a design philosophy but rarely 
  are in-depth enough to actually breed the abstract skills 
 necessary 
  for the programmer to become useful. It's a shame, 
 really. I went to 
  college in
  1986 (and had been programming since 1978) and within a 
 few years of 
  my graduation in 1990 the curriculum at most schools had been 
  watered down to the point of near uselessness.
 
 
  Well, make a stop... You can't compare things programmed 
 back in the 
  Dark Ages with nowerdays programming.
  We make far more complicated programms in far less time and for 
  lesser cost.
 
  You can critisize overusage of patterns, but under-usage 
 of patterns 
  is clearly at least as bad.
  Patterns make code understanding simplier, because 
 everyone (should) 
  know them, and simplicity is the goal as many of us stated before.
  You can't reinvent the wheel each time you write a piece of code, 
  it's simply waste of your time and customers/companies money.
 
  Regards
  Leon
 
 
 
  
 -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
  
 -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Leon Rosenberg

 -Ursprüngliche Nachricht-
 Von: Dave Newton [mailto:[EMAIL PROTECTED] 
 Gesendet: Mittwoch, 1. Juni 2005 21:37
 An: Struts Users Mailing List
 Betreff: Re: AW: [OT] Business Layer Ideas
 
 Leon Rosenberg wrote:
 
 We make far more complicated programms in far less time and 
 for lesser cost.
   
 
 Complicated is a pretty loaded term... I don't see much 
 complication in the majority of web apps. Big, sure. 
 Complicated? Sometimes. The most complicated stuff I've 
 worked on lately is rules engines, for which I used Jess, 
 which looked suspiciously like a combination of Lisp and 
 Prolog. Interaction between existing systems can get hairy 
 fairly quickly as well.
 


By complicated I mean following:

Modern OSes, office suites or business software.
Modern guis, with integrated media support, integrated audio/video broad-
and unicasts, animations, sounds, and so on...

Would you be able to code them with c? Forget it. 

What we have had was mostly alpha-numeric based terminals (remember borlands
gdi?) with maybe 10-20 business functions.
Now, a pissy web-portal has more functionallity then the whole supercalc
suite. 

Nostalgic talking about old times is ok, but you shouldn't forget reality...

And talking about complicated and simplicity... What is simplier to
read, 10 classes a 20 lines java code, or 5000 lines of assembler code doing
the same?

Regards
Leon



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Leon Rosenberg

 -Ursprüngliche Nachricht-
 Von: Dave Newton [mailto:[EMAIL PROTECTED] 
 Gesendet: Mittwoch, 1. Juni 2005 21:37
 An: Struts Users Mailing List
 Betreff: Re: AW: [OT] Business Layer Ideas
 
 Leon Rosenberg wrote:
 
 We make far more complicated programms in far less time and 
 for lesser cost.
   
 
 Complicated is a pretty loaded term... I don't see much 
 complication in the majority of web apps. Big, sure. 
 Complicated? Sometimes. The most complicated stuff I've 
 worked on lately is rules engines, for which I used Jess, 
 which looked suspiciously like a combination of Lisp and 
 Prolog. Interaction between existing systems can get hairy 
 fairly quickly as well.
 


By complicated I mean following:

Modern OSes, office suites or business software.
Modern guis, with integrated media support, integrated audio/video broad-
and unicasts, animations, sounds, and so on...

Would you be able to code them with c? Forget it. 

What we have had was mostly alpha-numeric based terminals (remember borlands
gdi?) with maybe 10-20 business functions.
Now, a pissy web-portal has more functionallity then the whole supercalc
suite. 

Nostalgic talking about old times is ok, but you shouldn't forget reality...

And talking about complicated and simplicity... What is simplier to
read, 10 classes a 20 lines java code, or 5000 lines of assembler code doing
the same?

Regards
Leon



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Dakota Jack
When I was going to programming school we had to walk to school and
back and it was uphill both ways.

On 6/1/05, Frank W. Zammetti [EMAIL PROTECTED] wrote:
 On Wed, June 1, 2005 12:15 pm, Simon Chappell said:
  Back when I was a young programmer we used to have to think. THINK!
 
 Hey, I'm the resident bemoaner of how rough we used to have it!  How dare
 you take my job?!? :) LOL
 
  Oh
  the humanity. No patterns for us. Just endless cups of tea, a pad of
  paper (or the back of long listings on greenbar) and your flowchart
  stencil.
 
 Stencils?!?  I laugh at your stencils!  It was only freehand drawings for
 us, and that was when we took the time to actually PLAN anything!
 
  We had it rough I tell you, but I think that we wrote better
  code back in those days. And those of us that came through them, still
  have a tendency to do so.
 
 I have said on numerous occassions that programmers that have never
 touched Assembly are, with few exceptions, not as good.  And although the
 overall tone of my reply here is a joking one, this is a point I am
 serious about.
 
 I have actually rejected resumes because they had no Assembly experience.
 I'm not saying you have to be able to hand-code a 3D game engine, but at
 least have had some exposure.
 
 I spent a number of years doing absolutely nothing BUT Assembly, and while
 I honestly haven't done anything beyond some very simple subfunctions in
 the past 5-7 years or so, I wouldn't trade that experience for all the
 algorithm classes and patterns knowledge in the world.  There is NOTHING
 like understanding, at least at a conceptual level, what's going on down
 there in the lower layers of your machine.  Assembly gives you this.
 
 Like I said, there are exceptions to this rule, but I haven't met too many.
 
  My first computer had 1K, yes, that's 1024 bytes.
 
 Timex Sinclair 1000 by any chance?  I loved that little thing!  So much so
 that I spend $200 on one off eBay last year (three of them actually, with
 a lot of extras).  The best thing about it was that if you could manage
 anything decent on it you were learning... I crammed the entire catalog of
 movie times for a week for Long Island in it... invented my own
 rudimentary compression scheme (although I had no clue what compression
 or algorithms were back then... never even heard the words... I was like
 9 or so!).  And I didn't have the 16K expansion module because my dad
 tried to solder it on because we could never get a good contact, but he
 fried it in the process, so I was stuck with the 1K (actually, now that I
 think about it, it might have been 2K.  I'm not sure).
 
  We can only hope. Perhaps the prophesied return of Lisp will finally
  happen and people will discover REAL programming, not this Teach
  Yourself The Latest Junk in 24 Hours stuff. Real, worthwhile,
  programming is hard, so if your going to do it, study for it, and
  learn (LEARN I say) to do it well.
 
 I}hate}}}LISP.
 
 LISP... ugh.  I can't stand any language that contains more parenthesis
 per 1,000 lines of code than ACTUAL CODE! :)
 
  Well done, Craig, with restrospect. A simpler designed framework
  like Struts is exactly the example, the proof, which Simon espouses
  above.
 
  Yes. Yes. Yes. Thank you Craig.
 
 I agree... There are probably architecural decisions in Struts I could
 complain about, but I think it would quickly become nothing but
 nitpicking.  Craig did a rather good job IMHO of straddling the line
 between a good architecure that is flexible and extensible without making
 it too complex.  Good job indeed, thank you!
 
 Frank
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Dakota Jack
Getting the patterns wrong is typical.  Is everyone SURE (?) that
Struts 1.3 is actually using the CoR pattern or is it just called
that?

On 6/1/05, Leon Rosenberg [EMAIL PROTECTED] wrote:
 
  One major problem lies with how programmers are educated
  today. A lot of schools teach a language or a design
  philosophy but rarely are in-depth enough to actually breed
  the abstract skills necessary for the programmer to become
  useful. It's a shame, really. I went to college in
  1986 (and had been programming since 1978) and within a few
  years of my graduation in 1990 the curriculum at most schools
  had been watered down to the point of near uselessness.
 
 
 Well, make a stop... You can't compare things programmed back in the Dark
 Ages with nowerdays programming.
 We make far more complicated programms in far less time and for lesser cost.
 
 You can critisize overusage of patterns, but under-usage of patterns is
 clearly at least as bad.
 Patterns make code understanding simplier, because everyone (should) know
 them, and
 simplicity is the goal as many of us stated before.
 You can't reinvent the wheel each time you write a piece of code, it's
 simply waste of your time and customers/companies money.
 
 Regards
 Leon
 
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Dakota Jack
I had to use an abacus with only one bead per string for binarry. 
Flippity, flip, flip, flip.  Gates were hell.  I had to have an
assembly of 12 abaci around my neck.

On 6/1/05, Tom Dimock [EMAIL PROTECTED] wrote:
 
 On Jun 1, 2005, at 12:39 PM, Frank W. Zammetti wrote:
 
  Timex Sinclair 1000 by any chance?
 
 Agh, you youngsters...  My first program ran on a Burroughs 220 that
 was a vacuum tube based computer!  But seriously, I agree fully that
 having learned on machines that had very limited memory, and having
 spent a lot of time writing assembler made me a much better
 programmer.  But what I think contributed the most was that all of my
 early programming was done on mainframes where one compile and run
 (actually compile, link and run; remember link editors and overlay
 structures?) per day was considered pretty good turnaround.  If you
 were going to get your programming assignments done on time, you
 learned to debug code by reading it and thinking until you found the
 errors.  I still make very little use of debuggers to this day, and
 find the younger programmers completely mystified as to how I ever
 get code to work.
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [OT] Business Layer Ideas

2005-06-01 Thread Scott Piker
We had to walk in the snow.  And we couldn't afford snow boots, so we
had to wrap newspapers around our feet!

...and they made us use Macs!!!  ;-)

-Original Message-
From: Dakota Jack [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, June 01, 2005 4:54 PM
To: Struts Users Mailing List
Subject: Re: [OT] Business Layer Ideas

When I was going to programming school we had to walk to school and
back and it was uphill both ways.

On 6/1/05, Frank W. Zammetti [EMAIL PROTECTED] wrote:
 On Wed, June 1, 2005 12:15 pm, Simon Chappell said:
  Back when I was a young programmer we used to have to think. THINK!
 
 Hey, I'm the resident bemoaner of how rough we used to have it!  How 
 dare you take my job?!? :) LOL
 
  Oh
  the humanity. No patterns for us. Just endless cups of tea, a pad of

  paper (or the back of long listings on greenbar) and your flowchart 
  stencil.
 
 Stencils?!?  I laugh at your stencils!  It was only freehand drawings 
 for us, and that was when we took the time to actually PLAN anything!
 
  We had it rough I tell you, but I think that we wrote better code 
  back in those days. And those of us that came through them, still 
  have a tendency to do so.
 
 I have said on numerous occassions that programmers that have never 
 touched Assembly are, with few exceptions, not as good.  And although 
 the overall tone of my reply here is a joking one, this is a point I 
 am serious about.
 
 I have actually rejected resumes because they had no Assembly
experience.
 I'm not saying you have to be able to hand-code a 3D game engine, but 
 at least have had some exposure.
 
 I spent a number of years doing absolutely nothing BUT Assembly, and 
 while I honestly haven't done anything beyond some very simple 
 subfunctions in the past 5-7 years or so, I wouldn't trade that 
 experience for all the algorithm classes and patterns knowledge in the

 world.  There is NOTHING like understanding, at least at a conceptual 
 level, what's going on down there in the lower layers of your machine.
Assembly gives you this.
 
 Like I said, there are exceptions to this rule, but I haven't met too
many.
 
  My first computer had 1K, yes, that's 1024 bytes.
 
 Timex Sinclair 1000 by any chance?  I loved that little thing!  So 
 much so that I spend $200 on one off eBay last year (three of them 
 actually, with a lot of extras).  The best thing about it was that if 
 you could manage anything decent on it you were learning... I crammed 
 the entire catalog of movie times for a week for Long Island in it... 
 invented my own rudimentary compression scheme (although I had no clue
what compression
 or algorithms were back then... never even heard the words... I was 
 like
 9 or so!).  And I didn't have the 16K expansion module because my dad 
 tried to solder it on because we could never get a good contact, but 
 he fried it in the process, so I was stuck with the 1K (actually, now 
 that I think about it, it might have been 2K.  I'm not sure).
 
  We can only hope. Perhaps the prophesied return of Lisp will finally

  happen and people will discover REAL programming, not this Teach 
  Yourself The Latest Junk in 24 Hours stuff. Real, worthwhile, 
  programming is hard, so if your going to do it, study for it, and 
  learn (LEARN I say) to do it well.
 
 I}hate}}}LISP.
 
 LISP... ugh.  I can't stand any language that contains more 
 parenthesis per 1,000 lines of code than ACTUAL CODE! :)
 
  Well done, Craig, with restrospect. A simpler designed framework 
  like Struts is exactly the example, the proof, which Simon espouses

  above.
 
  Yes. Yes. Yes. Thank you Craig.
 
 I agree... There are probably architecural decisions in Struts I could

 complain about, but I think it would quickly become nothing but 
 nitpicking.  Craig did a rather good job IMHO of straddling the line 
 between a good architecure that is flexible and extensible without 
 making it too complex.  Good job indeed, thank you!
 
 Frank
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


--
You can lead a horse to water but you cannot make it float on its
back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Leon Rosenberg
At least you had newspapers!!!  

 -Ursprüngliche Nachricht-
 Von: Scott Piker [mailto:[EMAIL PROTECTED] 
 Gesendet: Mittwoch, 1. Juni 2005 22:59
 An: Struts Users Mailing List; Dakota Jack
 Betreff: RE: [OT] Business Layer Ideas
 
 We had to walk in the snow.  And we couldn't afford snow 
 boots, so we had to wrap newspapers around our feet!
 
 ...and they made us use Macs!!!  ;-)
 
 -Original Message-
 From: Dakota Jack [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, June 01, 2005 4:54 PM
 To: Struts Users Mailing List
 Subject: Re: [OT] Business Layer Ideas
 
 When I was going to programming school we had to walk to 
 school and back and it was uphill both ways.
 
 On 6/1/05, Frank W. Zammetti [EMAIL PROTECTED] wrote:
  On Wed, June 1, 2005 12:15 pm, Simon Chappell said:
   Back when I was a young programmer we used to have to 
 think. THINK!
  
  Hey, I'm the resident bemoaner of how rough we used to have 
 it!  How 
  dare you take my job?!? :) LOL
  
   Oh
   the humanity. No patterns for us. Just endless cups of 
 tea, a pad of
 
   paper (or the back of long listings on greenbar) and your 
 flowchart 
   stencil.
  
  Stencils?!?  I laugh at your stencils!  It was only 
 freehand drawings 
  for us, and that was when we took the time to actually PLAN 
 anything!
  
   We had it rough I tell you, but I think that we wrote better code 
   back in those days. And those of us that came through them, still 
   have a tendency to do so.
  
  I have said on numerous occassions that programmers that have never 
  touched Assembly are, with few exceptions, not as good.  
 And although 
  the overall tone of my reply here is a joking one, this is 
 a point I 
  am serious about.
  
  I have actually rejected resumes because they had no Assembly
 experience.
  I'm not saying you have to be able to hand-code a 3D game 
 engine, but 
  at least have had some exposure.
  
  I spent a number of years doing absolutely nothing BUT 
 Assembly, and 
  while I honestly haven't done anything beyond some very simple 
  subfunctions in the past 5-7 years or so, I wouldn't trade that 
  experience for all the algorithm classes and patterns 
 knowledge in the
 
  world.  There is NOTHING like understanding, at least at a 
 conceptual 
  level, what's going on down there in the lower layers of 
 your machine.
 Assembly gives you this.
  
  Like I said, there are exceptions to this rule, but I 
 haven't met too
 many.
  
   My first computer had 1K, yes, that's 1024 bytes.
  
  Timex Sinclair 1000 by any chance?  I loved that little thing!  So 
  much so that I spend $200 on one off eBay last year (three of them 
  actually, with a lot of extras).  The best thing about it 
 was that if 
  you could manage anything decent on it you were learning... 
 I crammed 
  the entire catalog of movie times for a week for Long 
 Island in it...
  invented my own rudimentary compression scheme (although I 
 had no clue
 what compression
  or algorithms were back then... never even heard the 
 words... I was 
  like
  9 or so!).  And I didn't have the 16K expansion module 
 because my dad 
  tried to solder it on because we could never get a good 
 contact, but 
  he fried it in the process, so I was stuck with the 1K 
 (actually, now 
  that I think about it, it might have been 2K.  I'm not sure).
  
   We can only hope. Perhaps the prophesied return of Lisp 
 will finally
 
   happen and people will discover REAL programming, not this Teach 
   Yourself The Latest Junk in 24 Hours stuff. Real, worthwhile, 
   programming is hard, so if your going to do it, study for it, and 
   learn (LEARN I say) to do it well.
  
  I}hate}}}LISP.
  
  LISP... ugh.  I can't stand any language that contains more 
  parenthesis per 1,000 lines of code than ACTUAL CODE! :)
  
   Well done, Craig, with restrospect. A simpler designed framework 
   like Struts is exactly the example, the proof, which 
 Simon espouses
 
   above.
  
   Yes. Yes. Yes. Thank you Craig.
  
  I agree... There are probably architecural decisions in 
 Struts I could
 
  complain about, but I think it would quickly become nothing but 
  nitpicking.  Craig did a rather good job IMHO of straddling 
 the line 
  between a good architecure that is flexible and extensible without 
  making it too complex.  Good job indeed, thank you!
  
  Frank
  
  
 -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  
  
 
 
 --
 You can lead a horse to water but you cannot make it float 
 on its back.
 ~Dakota Jack~
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED

Re: [OT] Business Layer Ideas

2005-06-01 Thread Leon Rosenberg
At least you had newspapers!!!  

 -Ursprüngliche Nachricht-
 Von: Scott Piker [mailto:[EMAIL PROTECTED] 
 Gesendet: Mittwoch, 1. Juni 2005 22:59
 An: Struts Users Mailing List; Dakota Jack
 Betreff: RE: [OT] Business Layer Ideas
 
 We had to walk in the snow.  And we couldn't afford snow 
 boots, so we had to wrap newspapers around our feet!
 
 ...and they made us use Macs!!!  ;-)
 
 -Original Message-
 From: Dakota Jack [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, June 01, 2005 4:54 PM
 To: Struts Users Mailing List
 Subject: Re: [OT] Business Layer Ideas
 
 When I was going to programming school we had to walk to 
 school and back and it was uphill both ways.
 
 On 6/1/05, Frank W. Zammetti [EMAIL PROTECTED] wrote:
  On Wed, June 1, 2005 12:15 pm, Simon Chappell said:
   Back when I was a young programmer we used to have to 
 think. THINK!
  
  Hey, I'm the resident bemoaner of how rough we used to have 
 it!  How 
  dare you take my job?!? :) LOL
  
   Oh
   the humanity. No patterns for us. Just endless cups of 
 tea, a pad of
 
   paper (or the back of long listings on greenbar) and your 
 flowchart 
   stencil.
  
  Stencils?!?  I laugh at your stencils!  It was only 
 freehand drawings 
  for us, and that was when we took the time to actually PLAN 
 anything!
  
   We had it rough I tell you, but I think that we wrote better code 
   back in those days. And those of us that came through them, still 
   have a tendency to do so.
  
  I have said on numerous occassions that programmers that have never 
  touched Assembly are, with few exceptions, not as good.  
 And although 
  the overall tone of my reply here is a joking one, this is 
 a point I 
  am serious about.
  
  I have actually rejected resumes because they had no Assembly
 experience.
  I'm not saying you have to be able to hand-code a 3D game 
 engine, but 
  at least have had some exposure.
  
  I spent a number of years doing absolutely nothing BUT 
 Assembly, and 
  while I honestly haven't done anything beyond some very simple 
  subfunctions in the past 5-7 years or so, I wouldn't trade that 
  experience for all the algorithm classes and patterns 
 knowledge in the
 
  world.  There is NOTHING like understanding, at least at a 
 conceptual 
  level, what's going on down there in the lower layers of 
 your machine.
 Assembly gives you this.
  
  Like I said, there are exceptions to this rule, but I 
 haven't met too
 many.
  
   My first computer had 1K, yes, that's 1024 bytes.
  
  Timex Sinclair 1000 by any chance?  I loved that little thing!  So 
  much so that I spend $200 on one off eBay last year (three of them 
  actually, with a lot of extras).  The best thing about it 
 was that if 
  you could manage anything decent on it you were learning... 
 I crammed 
  the entire catalog of movie times for a week for Long 
 Island in it...
  invented my own rudimentary compression scheme (although I 
 had no clue
 what compression
  or algorithms were back then... never even heard the 
 words... I was 
  like
  9 or so!).  And I didn't have the 16K expansion module 
 because my dad 
  tried to solder it on because we could never get a good 
 contact, but 
  he fried it in the process, so I was stuck with the 1K 
 (actually, now 
  that I think about it, it might have been 2K.  I'm not sure).
  
   We can only hope. Perhaps the prophesied return of Lisp 
 will finally
 
   happen and people will discover REAL programming, not this Teach 
   Yourself The Latest Junk in 24 Hours stuff. Real, worthwhile, 
   programming is hard, so if your going to do it, study for it, and 
   learn (LEARN I say) to do it well.
  
  I}hate}}}LISP.
  
  LISP... ugh.  I can't stand any language that contains more 
  parenthesis per 1,000 lines of code than ACTUAL CODE! :)
  
   Well done, Craig, with restrospect. A simpler designed framework 
   like Struts is exactly the example, the proof, which 
 Simon espouses
 
   above.
  
   Yes. Yes. Yes. Thank you Craig.
  
  I agree... There are probably architecural decisions in 
 Struts I could
 
  complain about, but I think it would quickly become nothing but 
  nitpicking.  Craig did a rather good job IMHO of straddling 
 the line 
  between a good architecure that is flexible and extensible without 
  making it too complex.  Good job indeed, thank you!
  
  Frank
  
  
 -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  
  
 
 
 --
 You can lead a horse to water but you cannot make it float 
 on its back.
 ~Dakota Jack~
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED

Re: [OT] Business Layer Ideas

2005-06-01 Thread Simon Chappell
On 6/1/05, Leon Rosenberg [EMAIL PROTECTED] wrote:
*snip*
 Would you be able to code them with c? Forget it.

Actually, I suspect that alot of these have been coded with C/C++.

 What we have had was mostly alpha-numeric based terminals (remember borlands
 gdi?) with maybe 10-20 business functions.
 Now, a pissy web-portal has more functionallity then the whole supercalc
 suite.

I think that I doubt this assertion.

 Nostalgic talking about old times is ok, but you shouldn't forget reality...

I work with reality every day.

 And talking about complicated and simplicity... What is simplier to
 read, 10 classes a 20 lines java code, or 5000 lines of assembler code doing
 the same?

Now, I don't know what the accepted conversion factor is for Java to
assembler, but I think that this question/comparison is flawed.

As a technical lead, if you show me ten classes each containing only
20 lines of code, then you'd better be prepared to explain yourself.
I'm all for using the OO aspects of Java, but not at the expense of
clear, concise code. Most less-experienced Java developers have too
many objects, especially for their logic. I hate crawling around a
million objects with short methods where the thread bounces around
between them and leaves you feeling cross-eyed by the time you get it
figured out.

Simon

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Dave Newton

Leon Rosenberg wrote:


Modern OSes, office suites or business software.
Modern guis, with integrated media support, integrated audio/video broad-
and unicasts, animations, sounds, and so on...

Would you be able to code them with c? Forget it. 
 

Why wouldn't I? We used to code most anything of importance in C, yanno, 
including some pretty fancy stuff.


BeOS was written in C/C++, and that was pretty nifty. Plato and Lotus 
Notes was all or mostly C, at least at the beginning, wasn't it?


Now, a pissy web-portal has more functionallity then the whole supercalc suite. 
 

Really? Depends on what you mean by functionality, I suppose. Supercalc 
could (and did) run businesses. I can't run a business with a portal.



And talking about complicated and simplicity... What is simplier to
read, 10 classes a 20 lines java code, or 5000 lines of assembler code doing
the same?
 

Guess that depends on what you know. Just like I'd avoid reading 5000 
lines of assembly, I'd avoid reading 200 lines of Java, and read the 
documentation. A lot of the assembly coding I did ended up being 
mini-languages that would assemble to the actual code (sort of like a 
JVM, I suppose) so I didn't have to read 5000 lines, I just read the 200 
lines that actually solved the problem, just like in the Java: I only 
read the code that's important.


That said, the majority of low-level programming I did on bare-metal 
systems was in Forth, so I rarely had to look at my assembly code once 
it was written and tested.


Nobody has said that modern* languages don't give you anything. All I 
said was that _I_ think patterns can be over-used, that _I_ was more 
productive using 15-year old SmallTalk and Lisp environments, and that I 
have yet to be convinced that much of what people think is so great 
about today's languages, platforms, tools, etc. is necessarily a Good 
Thing: I am consistently more impressed by programmers that learned to 
program in my era than today. Relax, it's okay.


Dave

* What's a modern language, anyway? What features does a modern 
language have? I don't think Java is as widely used as it is because 
it's interesting or powerful, it was just a better C++ with marketing.


(And I'm only partially playing devil's advocate here.)



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Dakota Jack
On 6/1/05, Leon Rosenberg [EMAIL PROTECTED] wrote:
 Java is actually the first component-oriented language.

SmallTalk?  My Smalltalk/V 32-Bit Object-Oriented Programming System
book circa 1994 has a Smalltalk link library (.sll) full of components
called components which you could dynamically bind and unbind.

-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Leon Rosenberg
Actually smalltalk was a very good candidate, and java sells some
technologies as modern, which were developed in/for smalltalk decades ago...


Ok, let's say: java is the first component-oriented language accepted by
masses (or powered by a huge company)?

Regards
Leon

 -Ursprüngliche Nachricht-
 Von: Dakota Jack [mailto:[EMAIL PROTECTED] 
 Gesendet: Mittwoch, 1. Juni 2005 23:43
 An: Struts Users Mailing List
 Betreff: Re: [OT] Business Layer Ideas
 
 On 6/1/05, Leon Rosenberg [EMAIL PROTECTED] wrote:
  Java is actually the first component-oriented language.
 
 SmallTalk?  My Smalltalk/V 32-Bit Object-Oriented Programming System
 book circa 1994 has a Smalltalk link library (.sll) full of 
 components called components which you could dynamically 
 bind and unbind.
 
 --
 You can lead a horse to water but you cannot make it float 
 on its back.
 ~Dakota Jack~
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Leon Rosenberg
Actually smalltalk was a very good candidate, and java sells some
technologies as modern, which were developed in/for smalltalk decades ago...


Ok, let's say: java is the first component-oriented language accepted by
masses (or powered by a huge company)?

Regards
Leon

 -Ursprüngliche Nachricht-
 Von: Dakota Jack [mailto:[EMAIL PROTECTED] 
 Gesendet: Mittwoch, 1. Juni 2005 23:43
 An: Struts Users Mailing List
 Betreff: Re: [OT] Business Layer Ideas
 
 On 6/1/05, Leon Rosenberg [EMAIL PROTECTED] wrote:
  Java is actually the first component-oriented language.
 
 SmallTalk?  My Smalltalk/V 32-Bit Object-Oriented Programming System
 book circa 1994 has a Smalltalk link library (.sll) full of 
 components called components which you could dynamically 
 bind and unbind.
 
 --
 You can lead a horse to water but you cannot make it float 
 on its back.
 ~Dakota Jack~
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Dave Newton

Leon Rosenberg wrote:


Actually smalltalk was a very good candidate, and java sells some
technologies as modern, which were developed in/for smalltalk decades ago...
 


And Lisp, don't forget Lisp.


Ok, let's say: java is the first component-oriented language accepted by
masses (or powered by a huge company)?
 


Accepted by masses might work for me.

Not that this is necessarily a Good Thing, of course, and might, in 
fact, be just the opposite.


Dave



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Frank W. Zammetti

At least you had FEET!

:)

Leon Rosenberg wrote:
At least you had newspapers!!!  




-Ursprüngliche Nachricht-
Von: Scott Piker [mailto:[EMAIL PROTECTED] 
Gesendet: Mittwoch, 1. Juni 2005 22:59

An: Struts Users Mailing List; Dakota Jack
Betreff: RE: [OT] Business Layer Ideas

We had to walk in the snow.  And we couldn't afford snow 
boots, so we had to wrap newspapers around our feet!


...and they made us use Macs!!!  ;-)

-Original Message-
From: Dakota Jack [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 01, 2005 4:54 PM
To: Struts Users Mailing List
Subject: Re: [OT] Business Layer Ideas

When I was going to programming school we had to walk to 
school and back and it was uphill both ways.


On 6/1/05, Frank W. Zammetti [EMAIL PROTECTED] wrote:


On Wed, June 1, 2005 12:15 pm, Simon Chappell said:

Back when I was a young programmer we used to have to 


think. THINK!

Hey, I'm the resident bemoaner of how rough we used to have 


it!  How 


dare you take my job?!? :) LOL



Oh
the humanity. No patterns for us. Just endless cups of 


tea, a pad of


paper (or the back of long listings on greenbar) and your 


flowchart 


stencil.


Stencils?!?  I laugh at your stencils!  It was only 


freehand drawings 

for us, and that was when we took the time to actually PLAN 


anything!

We had it rough I tell you, but I think that we wrote better code 
back in those days. And those of us that came through them, still 
have a tendency to do so.


I have said on numerous occassions that programmers that have never 
touched Assembly are, with few exceptions, not as good.  


And although 

the overall tone of my reply here is a joking one, this is 


a point I 


am serious about.

I have actually rejected resumes because they had no Assembly


experience.

I'm not saying you have to be able to hand-code a 3D game 


engine, but 


at least have had some exposure.

I spent a number of years doing absolutely nothing BUT 


Assembly, and 

while I honestly haven't done anything beyond some very simple 
subfunctions in the past 5-7 years or so, I wouldn't trade that 
experience for all the algorithm classes and patterns 


knowledge in the


world.  There is NOTHING like understanding, at least at a 


conceptual 

level, what's going on down there in the lower layers of 


your machine.
Assembly gives you this.

Like I said, there are exceptions to this rule, but I 


haven't met too
many.


My first computer had 1K, yes, that's 1024 bytes.


Timex Sinclair 1000 by any chance?  I loved that little thing!  So 
much so that I spend $200 on one off eBay last year (three of them 
actually, with a lot of extras).  The best thing about it 


was that if 

you could manage anything decent on it you were learning... 


I crammed 

the entire catalog of movie times for a week for Long 


Island in it...

invented my own rudimentary compression scheme (although I 


had no clue
what compression

or algorithms were back then... never even heard the 


words... I was 


like
9 or so!).  And I didn't have the 16K expansion module 


because my dad 

tried to solder it on because we could never get a good 


contact, but 

he fried it in the process, so I was stuck with the 1K 


(actually, now 


that I think about it, it might have been 2K.  I'm not sure).


We can only hope. Perhaps the prophesied return of Lisp 


will finally


happen and people will discover REAL programming, not this Teach 
Yourself The Latest Junk in 24 Hours stuff. Real, worthwhile, 
programming is hard, so if your going to do it, study for it, and 
learn (LEARN I say) to do it well.


I}hate}}}LISP.

LISP... ugh.  I can't stand any language that contains more 
parenthesis per 1,000 lines of code than ACTUAL CODE! :)



Well done, Craig, with restrospect. A simpler designed framework 
like Struts is exactly the example, the proof, which 


Simon espouses



above.


Yes. Yes. Yes. Thank you Craig.


I agree... There are probably architecural decisions in 


Struts I could


complain about, but I think it would quickly become nothing but 
nitpicking.  Craig did a rather good job IMHO of straddling 


the line 

between a good architecure that is flexible and extensible without 
making it too complex.  Good job indeed, thank you!


Frank




-


To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
You can lead a horse to water but you cannot make it float 
on its back.

~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED

Re: [OT] Business Layer Ideas

2005-06-01 Thread Dakota Jack
Fortran
 |

|  |
Pascal  Algol
| |
--   CPL
| ||
Ada   Modula-2   BCPL
| ||
Ada 95   Modula-3  B
  |
 C
   Simula
 
||
  |   
  --
 C++  
  |  |
  |   
  Eiffel   Smalltalk
Java

Here are the object -oriented programming languages of note: Ada 95,
Modula-3, C++, Eiffel, Smalltalk and Java.  Right?
I think Lisp along with Prolog, Scheme, Guile and CLOS (Common Lisp)
as children of Logic and Fortran is considered to be Functional and
Logic Programming Languages.

On 6/1/05, Dave Newton [EMAIL PROTECTED] wrote:
 Leon Rosenberg wrote:
 
 Actually smalltalk was a very good candidate, and java sells some
 technologies as modern, which were developed in/for smalltalk decades ago...
 
 
 And Lisp, don't forget Lisp.
 
 Ok, let's say: java is the first component-oriented language accepted by
 masses (or powered by a huge company)?
 
 
 Accepted by masses might work for me.
 
 Not that this is necessarily a Good Thing, of course, and might, in
 fact, be just the opposite.
 
 Dave
 
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Shey Rab Pawo
On 6/1/05, Pilgrim, Peter [EMAIL PROTECTED] wrote:
 
 
 
  -Original Message-
  From: Dakota Jack [mailto:[EMAIL PROTECTED]
 ====
 
  Strategy (315) Define a family of algorithms encapsulate each
  one, and make them
   interchangeable.  Strategy lets the algorithm vary independently
  from clients that use
   it.
 
 
 This is exactly I always thought it was too.

The point is that whatever you thought it was you code was merely
three implementations of an interface having nothing to do with the
Strategy Pattern.  This is not mere nitpicking or picnicing.  If you
look at some of the patterns without a careful eye you will miss
everything.  For example, you can do a UML diagram of a State Pattern
and a Strategy Pattern and get the exact same diagram.  Indeed, the
GoF book does just that.  This does not mean at all, however, that
those two patterns are the same.  They could not be more different. 
Also, I am of the opinion that commons chain is not a Chain of
Responsibility Pattern even if it is interesting and helpful.  I will
say more about on a rainy day.  ///;-)

Pace Vobiscum and Capre Diem



-- 
No one ever went blind looking at the bright side of life.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Laurie Harper

Simon Chappell wrote:

Back when I was a young programmer we used to have to think. THINK! Oh
the humanity. No patterns for us. Just endless cups of tea, a pad of
paper (or the back of long listings on greenbar) and your flowchart


Too funny; I remember when my 'IDE' was a sheaf of butcher's paper and a 
pencil. I could debug a program by writing a list of variables down the 
left side of the page, and enumerating their values in columns as I 
single stepped through (i.e. 'read') the souce code on an adjacent page. 
 The 'edit' phase was where I transcribed the code from paper into the 
computer or editted the progam interactively (imagine!) in an editor. I 
was working in BASIC back then, so I didn't have to worry about 
compiling or linking -- I cut my teath on a 'dynamic programming 
language', bet you never thought of BASIC that way before!


I have to admit that refactoring on butcher paper was a bitch though!

:-)

L.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-06-01 Thread Laurie Harper

 (yes, my school actually had Fortran, COBOL and Pascal classes!)

Your *high school* had multiple courses on different programming 
languages? My high school ('secondary school' actually, I'm originally 
from England) had exactly one 'O'-level computer course and one 
'A'-level course. There might bave been a pre--'O'-level required course 
too...


Any which way, my first computer related course in school was so basic I 
walked away and never looked back until I got to university and realised 
that I was skipping too many physics classes to play around in the 
computer labs :-)


I'm guessing (from other posts in this thread) you're a little older 
than I am. That would make your high school pretty impressively 
forard-looking...!


L.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [OT] Business Layer Ideas

2005-05-31 Thread Pilgrim, Peter
 -Original Message-
 From: Dakota Jack [mailto:[EMAIL PROTECTED]
====
 
 
 I should have added that Rod (Johnson) in the book cited pointedly
 advocates extensive use of the Strategy Pattern, see pp. 421 ff.  The
 use of CoR in Struts 1.3 for the extensible RequestProcessor is not a
 feature but is a way of solving the problem created by the original
 use of the Template Method Pattern in that context.  Had the Strategy
 Pattern been used in the first instance, everything would have worked
 better, in my opinion.  In many ways, I think in the future the
 Template Method Pattern may be seen as an Anti-Pattern.
 
 Just to forestall flamethrowers, I want to emphasize that others
 probably think differently and even the majority, i.e. by definition
 the members ipsa facto of the meritocracy, may think differently. 
 But, Rod Johnson is no slouch on these matters.  He thinks the use of
 Strategy Pattern is one of the reasons [Spring] is such a flexible
 and extensible framework.
 

Hello Jack

It can be shown that ``Chain of Responsibility'' pattern can be 
metamorphed into the ``Strategy'' pattern. The first proviso is that one
of your commnds becomes a catalogy factory or invoker of other
generic commands itself. The second proviso is you must pass all
your information back and forward the ``strategy command'' using
a general context object.

fyi

 On 5/27/05, David Whipple [EMAIL PROTECTED] wrote:
  This is an off topic post, but there seem to be a lot of 
 people with good
  opinions here.
  
  I am trying to provide a framework (based on Stuts and 
 Spring) for our
  company
  to use.  I'd like to make a reinforcement of the business layer in
  applications.
  
  We do not use EJBs, so a lot of the patterns that are out 
 there do not seem
  to
  apply.  I have not been able to find any references I like.
  
  The goal is to encourage better program design and development by
  having a clear definition of what are the business objects 
 in the program.
  
  We want to come up with a way through patterns to help 
 programmers avoid
  poor
  programming practices.  Clear separation into layers is one 
 basic idea
  behind
  this.  We want to come up with some interface to the 
 business layer which
  will
  force programmers to know what are to be the business 
 objects in their
  architecture.
  
  Does anyone have any ideas and/or know of any references for this?
  
  Thanks,
  Dave

====


--
Peter Pilgrim
Operations/IT - Credit Suisse First Boston, 
Floor 15, 5 Canada Square, London E14 4QJ, United Kingdom
Tel: +44-(0)207-883-4497


==
This message is for the sole use of the intended recipient. If you received 
this message in error please delete it and notify us. If this message was 
misdirected, Credit Suisse, its subsidiaries and affiliates (CS) do not 
waive any confidentiality or privilege. CS retains and monitors electronic 
communications sent through its network. Instructions transmitted over this
system are not binding on CS until they are confirmed by us. Message 
transmission is not guaranteed to be secure. 
==


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-05-31 Thread Dakota Jack
Hi, Peter,

I am not sure what you are saying here.  I had trouble following you.  

The Strategy Pattern is roughly the following:

public class DefaultStrategyInterface implements StrategyInterface {
private Helper helper;

public void setHelper(Helper helper) {
this.helper = helper;
}

public void doWork() {
// Do business logic
int value = hleper.calculateSomething(params);
// Do more business logic
}
}

The Template Method Pattern used in Struts which necessitates the use
of the Chain of Responsibility Pattern, cf.
http://www.onjava.com/pub/a/onjava/2005/03/02/commonchains.html, is
roughly the following:

public abstract class AbstractMethodInterface implements MethodInterface {
public void doWork() {
// Do some business logic
int value = calculateSomething(params);
//  Do more business logic
}

protected abstract int calculateSomething(params);
}

So, in a real sense, the Strategy Pattern advocates, in comparison to
the Template Method Pattern, composition over inheritance allowing for
ease of testing and a host of other good results.

Struts is based on the Template Method Pattern which Sigglelow rightly
sees is rescued by the Chain of Responsibility Pattern.  This is the
context in which I was addressing the Strategy Pattern.  Can you give
a little demo of how CoR metamorphasis's into this?  I find your not
interesting but cannot see what it means.

Thanks

On 5/31/05, Pilgrim, Peter [EMAIL PROTECTED] wrote:
  -Original Message-
  From: Dakota Jack [mailto:[EMAIL PROTECTED]
 ====
 
 
  I should have added that Rod (Johnson) in the book cited pointedly
  advocates extensive use of the Strategy Pattern, see pp. 421 ff.  The
  use of CoR in Struts 1.3 for the extensible RequestProcessor is not a
  feature but is a way of solving the problem created by the original
  use of the Template Method Pattern in that context.  Had the Strategy
  Pattern been used in the first instance, everything would have worked
  better, in my opinion.  In many ways, I think in the future the
  Template Method Pattern may be seen as an Anti-Pattern.
 
  Just to forestall flamethrowers, I want to emphasize that others
  probably think differently and even the majority, i.e. by definition
  the members ipsa facto of the meritocracy, may think differently.
  But, Rod Johnson is no slouch on these matters.  He thinks the use of
  Strategy Pattern is one of the reasons [Spring] is such a flexible
  and extensible framework.
 
 
 Hello Jack
 
 It can be shown that ``Chain of Responsibility'' pattern can be
 metamorphed into the ``Strategy'' pattern. The first proviso is that one
 of your commnds becomes a catalogy factory or invoker of other
 generic commands itself. The second proviso is you must pass all
 your information back and forward the ``strategy command'' using
 a general context object.
 
 fyi
 
  On 5/27/05, David Whipple [EMAIL PROTECTED] wrote:
   This is an off topic post, but there seem to be a lot of
  people with good
   opinions here.
  
   I am trying to provide a framework (based on Stuts and
  Spring) for our
   company
   to use.  I'd like to make a reinforcement of the business layer in
   applications.
  
   We do not use EJBs, so a lot of the patterns that are out
  there do not seem
   to
   apply.  I have not been able to find any references I like.
  
   The goal is to encourage better program design and development by
   having a clear definition of what are the business objects
  in the program.
  
   We want to come up with a way through patterns to help
  programmers avoid
   poor
   programming practices.  Clear separation into layers is one
  basic idea
   behind
   this.  We want to come up with some interface to the
  business layer which
   will
   force programmers to know what are to be the business
  objects in their
   architecture.
  
   Does anyone have any ideas and/or know of any references for this?
  
   Thanks,
   Dave
 
 ====
 
 
 --
 Peter Pilgrim
 Operations/IT - Credit Suisse First Boston,
 Floor 15, 5 Canada Square, London E14 4QJ, United Kingdom
 Tel: +44-(0)207-883-4497
 
 
 ==
 This message is for the sole use of the intended recipient. If you received
 this message in error please delete it and notify us. If this message was
 misdirected, Credit Suisse, its subsidiaries and affiliates (CS) do not
 waive any confidentiality or privilege. CS retains and monitors electronic
 communications sent through its network. Instructions transmitted over this
 system are not binding on CS until they are confirmed by us. Message
 transmission is not guaranteed to be secure.
 ==
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL 

Re: [OT] Business Layer Ideas

2005-05-31 Thread Dakota Jack
I meant I find your note interesting and not I find your not interesting.

On 5/31/05, Dakota Jack [EMAIL PROTECTED] wrote:
 Hi, Peter,
 
 I am not sure what you are saying here.  I had trouble following you.
 
 The Strategy Pattern is roughly the following:
 
 public class DefaultStrategyInterface implements StrategyInterface {
 private Helper helper;
 
 public void setHelper(Helper helper) {
 this.helper = helper;
 }
 
 public void doWork() {
 // Do business logic
 int value = hleper.calculateSomething(params);
 // Do more business logic
 }
 }
 
 The Template Method Pattern used in Struts which necessitates the use
 of the Chain of Responsibility Pattern, cf.
 http://www.onjava.com/pub/a/onjava/2005/03/02/commonchains.html, is
 roughly the following:
 
 public abstract class AbstractMethodInterface implements MethodInterface {
 public void doWork() {
 // Do some business logic
 int value = calculateSomething(params);
 //  Do more business logic
 }
 
 protected abstract int calculateSomething(params);
 }
 
 So, in a real sense, the Strategy Pattern advocates, in comparison to
 the Template Method Pattern, composition over inheritance allowing for
 ease of testing and a host of other good results.
 
 Struts is based on the Template Method Pattern which Sigglelow rightly
 sees is rescued by the Chain of Responsibility Pattern.  This is the
 context in which I was addressing the Strategy Pattern.  Can you give
 a little demo of how CoR metamorphasis's into this?  I find your not
 interesting but cannot see what it means.
 
 Thanks
 
 On 5/31/05, Pilgrim, Peter [EMAIL PROTECTED] wrote:
   -Original Message-
   From: Dakota Jack [mailto:[EMAIL PROTECTED]
  ====
  
  
   I should have added that Rod (Johnson) in the book cited pointedly
   advocates extensive use of the Strategy Pattern, see pp. 421 ff.  The
   use of CoR in Struts 1.3 for the extensible RequestProcessor is not a
   feature but is a way of solving the problem created by the original
   use of the Template Method Pattern in that context.  Had the Strategy
   Pattern been used in the first instance, everything would have worked
   better, in my opinion.  In many ways, I think in the future the
   Template Method Pattern may be seen as an Anti-Pattern.
  
   Just to forestall flamethrowers, I want to emphasize that others
   probably think differently and even the majority, i.e. by definition
   the members ipsa facto of the meritocracy, may think differently.
   But, Rod Johnson is no slouch on these matters.  He thinks the use of
   Strategy Pattern is one of the reasons [Spring] is such a flexible
   and extensible framework.
  
 
  Hello Jack
 
  It can be shown that ``Chain of Responsibility'' pattern can be
  metamorphed into the ``Strategy'' pattern. The first proviso is that one
  of your commnds becomes a catalogy factory or invoker of other
  generic commands itself. The second proviso is you must pass all
  your information back and forward the ``strategy command'' using
  a general context object.
 
  fyi
 
   On 5/27/05, David Whipple [EMAIL PROTECTED] wrote:
This is an off topic post, but there seem to be a lot of
   people with good
opinions here.
   
I am trying to provide a framework (based on Stuts and
   Spring) for our
company
to use.  I'd like to make a reinforcement of the business layer in
applications.
   
We do not use EJBs, so a lot of the patterns that are out
   there do not seem
to
apply.  I have not been able to find any references I like.
   
The goal is to encourage better program design and development by
having a clear definition of what are the business objects
   in the program.
   
We want to come up with a way through patterns to help
   programmers avoid
poor
programming practices.  Clear separation into layers is one
   basic idea
behind
this.  We want to come up with some interface to the
   business layer which
will
force programmers to know what are to be the business
   objects in their
architecture.
   
Does anyone have any ideas and/or know of any references for this?
   
Thanks,
Dave
 
  ====
 
 
  --
  Peter Pilgrim
  Operations/IT - Credit Suisse First Boston,
  Floor 15, 5 Canada Square, London E14 4QJ, United Kingdom
  Tel: +44-(0)207-883-4497
 
 
  ==
  This message is for the sole use of the intended recipient. If you received
  this message in error please delete it and notify us. If this message was
  misdirected, Credit Suisse, its subsidiaries and affiliates (CS) do not
  waive any confidentiality or privilege. CS retains and monitors electronic
  communications sent through its network. Instructions transmitted over this
  system are not binding on CS until they are confirmed by us. Message
  transmission is not guaranteed to 

Re: [OT] Business Layer Ideas

2005-05-31 Thread Dakota Jack
Just one last little thing, Peter, so that there is no
misunderstanding.  It is absolutely critical in the Strategy Pattern
that we deal with a Java Bean.  A great proportion of the fruits of
the Strategy Pattern rely on that so that if your metamophasis does
not retain this feature, it is not a true metamorphasis.

On 5/31/05, Pilgrim, Peter [EMAIL PROTECTED] wrote:
  -Original Message-
  From: Dakota Jack [mailto:[EMAIL PROTECTED]
 ====
 
 
  I should have added that Rod (Johnson) in the book cited pointedly
  advocates extensive use of the Strategy Pattern, see pp. 421 ff.  The
  use of CoR in Struts 1.3 for the extensible RequestProcessor is not a
  feature but is a way of solving the problem created by the original
  use of the Template Method Pattern in that context.  Had the Strategy
  Pattern been used in the first instance, everything would have worked
  better, in my opinion.  In many ways, I think in the future the
  Template Method Pattern may be seen as an Anti-Pattern.
 
  Just to forestall flamethrowers, I want to emphasize that others
  probably think differently and even the majority, i.e. by definition
  the members ipsa facto of the meritocracy, may think differently.
  But, Rod Johnson is no slouch on these matters.  He thinks the use of
  Strategy Pattern is one of the reasons [Spring] is such a flexible
  and extensible framework.
 
 
 Hello Jack
 
 It can be shown that ``Chain of Responsibility'' pattern can be
 metamorphed into the ``Strategy'' pattern. The first proviso is that one
 of your commnds becomes a catalogy factory or invoker of other
 generic commands itself. The second proviso is you must pass all
 your information back and forward the ``strategy command'' using
 a general context object.
 
 fyi
 
  On 5/27/05, David Whipple [EMAIL PROTECTED] wrote:
   This is an off topic post, but there seem to be a lot of
  people with good
   opinions here.
  
   I am trying to provide a framework (based on Stuts and
  Spring) for our
   company
   to use.  I'd like to make a reinforcement of the business layer in
   applications.
  
   We do not use EJBs, so a lot of the patterns that are out
  there do not seem
   to
   apply.  I have not been able to find any references I like.
  
   The goal is to encourage better program design and development by
   having a clear definition of what are the business objects
  in the program.
  
   We want to come up with a way through patterns to help
  programmers avoid
   poor
   programming practices.  Clear separation into layers is one
  basic idea
   behind
   this.  We want to come up with some interface to the
  business layer which
   will
   force programmers to know what are to be the business
  objects in their
   architecture.
  
   Does anyone have any ideas and/or know of any references for this?
  
   Thanks,
   Dave
 
 ====
 
 
 --
 Peter Pilgrim
 Operations/IT - Credit Suisse First Boston,
 Floor 15, 5 Canada Square, London E14 4QJ, United Kingdom
 Tel: +44-(0)207-883-4497
 
 
 ==
 This message is for the sole use of the intended recipient. If you received
 this message in error please delete it and notify us. If this message was
 misdirected, Credit Suisse, its subsidiaries and affiliates (CS) do not
 waive any confidentiality or privilege. CS retains and monitors electronic
 communications sent through its network. Instructions transmitted over this
 system are not binding on CS until they are confirmed by us. Message
 transmission is not guaranteed to be secure.
 ==
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-05-29 Thread Ted Husted
On 5/27/05, Duong BaTien [EMAIL PROTECTED] wrote:
 We use Chain of Responsibility (CoR) implemented by commons-chain and
 its Agility to construct a Request/Response framework to connect a
 request to its designated service, whether the designated service is in
 a web-application service container, a portlet container, auth for
 authentication/authorization, or a Jcr container. 

I'm also finding that, for my applications, a service orientated
architecture based on a Chain of Responsibility works quite well. I've
started work on a framework that pushes a lot of what we do now in
Struts into the business layer. It's in C# now, because that what we
are using at work, but it's all plain old objects and should be an
easy port back to Java.

* http://wiki.apache.org/struts/StrutsOverDrive

We're using a nearly-complete prototype at work, so I've a good handle
on where this is going. It's just hard to find the time to clean it up
for public consumption :)

The essential idea is that the presentation tier should focus on
collecting and display values, and leave the rest to the business
layer. Right now, a lot of us slide down a slipperly slope that pushes
too much code into the presentation layer, where it is difficult to
test. And, by test, I really mean share with other presentation
layers. Unit tests are a presentation layer too :)

-Ted.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [OT] Business Layer Ideas

2005-05-27 Thread Barnett, Brian W.
http://www.whitesandsolutions.com/wssBase-Framework%20Architecture.htm
http://www.whitesandsolutions.com/wssBase-Patterns.htm (Two images here. Use
navigation in left frame.)

View the above links with Microsoft Internet Explorer so you can use the pan
and zoom features.


-Original Message-
From: David Whipple [mailto:[EMAIL PROTECTED] 
Sent: Friday, May 27, 2005 2:00 PM
To: Struts Users Mailing List
Subject: [OT] Business Layer Ideas


This is an off topic post, but there seem to be a lot of people with good
opinions here.

I am trying to provide a framework (based on Stuts and Spring) for our
company to use.  I'd like to make a reinforcement of the business layer in
applications.

We do not use EJBs, so a lot of the patterns that are out there do not seem
to apply.  I have not been able to find any references I like.

The goal is to encourage better program design and development by having a
clear definition of what are the business objects in the program.

We want to come up with a way through patterns to help programmers avoid
poor programming practices.  Clear separation into layers is one basic idea
behind this.  We want to come up with some interface to the business layer
which will force programmers to know what are to be the business objects in
their architecture.

Does anyone have any ideas and/or know of any references for this?

Thanks,
Dave


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

 
This email may contain confidential material. 
If you were not an intended recipient, 
Please notify the sender and delete all copies. 
We may monitor email to and from our network. 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-05-27 Thread Duong BaTien
On Fri, 2005-05-27 at 16:00 -0400, David Whipple wrote:
 This is an off topic post, but there seem to be a lot of people with good
 opinions here.
 
 I am trying to provide a framework (based on Stuts and Spring) for our
 company
 to use.  I'd like to make a reinforcement of the business layer in
 applications.
 
 We do not use EJBs, so a lot of the patterns that are out there do not seem
 to
 apply.  I have not been able to find any references I like.
 
 The goal is to encourage better program design and development by
 having a clear definition of what are the business objects in the program.
 
 We want to come up with a way through patterns to help programmers avoid
 poor
 programming practices.  Clear separation into layers is one basic idea
 behind
 this.  We want to come up with some interface to the business layer which
 will
 force programmers to know what are to be the business objects in their
 architecture.
 
 Does anyone have any ideas and/or know of any references for this?
 
 Thanks,
 Dave
 
Greetings:

We use Chain of Responsibility (CoR) implemented by commons-chain and
its Agility to construct a Request/Response framework to connect a
request to its designated service, whether the designated service is in
a web-application service container, a portlet container, auth for
authentication/authorization, or a Jcr container. At the business layer,
the designated service may use other services in other containers. e.g.
the personalization of auth container uses UserDaoImpl of DAO container.

We use Spring IoC to assemble chain Catalogs and their commands. Hence
the request/response framework is based on CoR/IoC integrated with your
presentation engine at the front. We use Jsf+Tiles as our presentation
engine.

The good thing is that available infrastructure takes care of detailed
connections while isolating the dependencies of itemized services within
1 container and among containers. Developers just need to plug in the
required specified functionality based on design contract.

We integrate the Request/Response with workflow using Shale Dialog and
Spring WebFlow to produce Request/Response/Workflow Business Application
Framework.

More detailed discussion is in the following link, which will be updated
by 2nd week of June after the release of RedHat Fedora 4.

http://www.dbgroups.com/docs/architecture.html#BusinessApplicationsFramework


Hope this may help.

BaTien
DBGROUPS

 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-05-27 Thread Dakota Jack
A really wonderful book is J2EE Development without EJB by Rod
Johnson, the original architect for Spring.On the whole, however,
outside the issues associated with EJBs, there is a dirth of buisness
layers patterns, so far as I know.  I think some thought about
developing a separate framework for the business layer alone would be
worthwhile.  I have been thinking and trying to get discussion going
on this a long time.  I like the way you think.

On 5/27/05, David Whipple [EMAIL PROTECTED] wrote:
 This is an off topic post, but there seem to be a lot of people with good
 opinions here.
 
 I am trying to provide a framework (based on Stuts and Spring) for our
 company
 to use.  I'd like to make a reinforcement of the business layer in
 applications.
 
 We do not use EJBs, so a lot of the patterns that are out there do not seem
 to
 apply.  I have not been able to find any references I like.
 
 The goal is to encourage better program design and development by
 having a clear definition of what are the business objects in the program.
 
 We want to come up with a way through patterns to help programmers avoid
 poor
 programming practices.  Clear separation into layers is one basic idea
 behind
 this.  We want to come up with some interface to the business layer which
 will
 force programmers to know what are to be the business objects in their
 architecture.
 
 Does anyone have any ideas and/or know of any references for this?
 
 Thanks,
 Dave
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-05-27 Thread Dakota Jack
I should have added that Rod (Johnson) in the book cited pointedly
advocates extensive use of the Strategy Pattern, see pp. 421 ff.  The
use of CoR in Struts 1.3 for the extensible RequestProcessor is not a
feature but is a way of solving the problem created by the original
use of the Template Method Pattern in that context.  Had the Strategy
Pattern been used in the first instance, everything would have worked
better, in my opinion.  In many ways, I think in the future the
Template Method Pattern may be seen as an Anti-Pattern.

Just to forestall flamethrowers, I want to emphasize that others
probably think differently and even the majority, i.e. by definition
the members ipsa facto of the meritocracy, may think differently. 
But, Rod Johnson is no slouch on these matters.  He thinks the use of
Strategy Pattern is one of the reasons [Spring] is such a flexible
and extensible framework.

On 5/27/05, David Whipple [EMAIL PROTECTED] wrote:
 This is an off topic post, but there seem to be a lot of people with good
 opinions here.
 
 I am trying to provide a framework (based on Stuts and Spring) for our
 company
 to use.  I'd like to make a reinforcement of the business layer in
 applications.
 
 We do not use EJBs, so a lot of the patterns that are out there do not seem
 to
 apply.  I have not been able to find any references I like.
 
 The goal is to encourage better program design and development by
 having a clear definition of what are the business objects in the program.
 
 We want to come up with a way through patterns to help programmers avoid
 poor
 programming practices.  Clear separation into layers is one basic idea
 behind
 this.  We want to come up with some interface to the business layer which
 will
 force programmers to know what are to be the business objects in their
 architecture.
 
 Does anyone have any ideas and/or know of any references for this?
 
 Thanks,
 Dave
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [OT] Business Layer Ideas

2005-05-27 Thread Dakota Jack
http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764558315,descCd-download_code.html

On 5/27/05, David Whipple [EMAIL PROTECTED] wrote:
 This is an off topic post, but there seem to be a lot of people with good
 opinions here.
 
 I am trying to provide a framework (based on Stuts and Spring) for our
 company
 to use.  I'd like to make a reinforcement of the business layer in
 applications.
 
 We do not use EJBs, so a lot of the patterns that are out there do not seem
 to
 apply.  I have not been able to find any references I like.
 
 The goal is to encourage better program design and development by
 having a clear definition of what are the business objects in the program.
 
 We want to come up with a way through patterns to help programmers avoid
 poor
 programming practices.  Clear separation into layers is one basic idea
 behind
 this.  We want to come up with some interface to the business layer which
 will
 force programmers to know what are to be the business objects in their
 architecture.
 
 Does anyone have any ideas and/or know of any references for this?
 
 Thanks,
 Dave
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-- 
You can lead a horse to water but you cannot make it float on its back.
~Dakota Jack~

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]