You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Todd O'Bryan <to...@mac.com> on 2004/02/15 20:30:26 UTC

Reducing the slope of the learning curve (was: Re: Home page in a library)

As a complete newbie to Tapestry who is trying to find a comfortable  
webapp framework, I can say that at least Tapestry has some current  
documentation, a major accomplishment compared to other open source  
tools.

As a thought, though, something that should probably be shouted from  
the tops of every open source mountain is this basic idea:

It should be easy to start.

By that, I mean, there should be minimal setup, configuration,  
programming, and general futzing about to get *ANY* project up and  
doing something. This includes setting up properties and such. If your  
project requires lots of pieces before it can do anything reasonable,  
provide decent defaults so that someone can start without having to  
understand them all, and specific instructions about how to get it  
working with those defaults.

It is a fact of human learning and motivation that people like to see  
results for their effort, and they like to understand what they're  
doing. If you create a framework that allows people to begin quickly,  
and slowly evolve their system to good behavior as they learn about  
things that they didn't know existed in the beginning, you're likely to  
attract them and keep them as users. If they have to read a book to get  
started, they'll be put off by the fact that they don't know if reading  
the book will be worth the effort in the end.

Todd

On Feb 15, 2004, at 11:35 AM, Harish Krishnaswamy wrote:

> When I was straying the land of web frameworks I came across Tapestry  
> and knew from a 30000' level that this is the way to go. I agree it  
> took some perseverance to get comfortable but I have never once  
> questioned my decision. When HiveMind is integrated, the already  
> better Tapestry will be the ultimate framework. Just sharing my  
> instincts then and now :)
>
> -Harish
>
> David Moran wrote:
>
>> I concur.  After wandering in the Tapestry desert for 40 days and 40
>> nights, I am starting to reach the promised land.
>>
>> On Sun, 2004-02-15 at 10:36, Larry Streepy wrote:
>>
>>> Thanks for the help Erik.
>>>
>>> I'd like to make a general observation regarding Tapestry's steep  
>>> learning
>>> curve.  I've been studying Tapestry for a while now and I think I'm  
>>> finally
>>> getting the hang of it.  However, if more things were configurable,  
>>> instead
>>> of requiring class creation and extension, then I think it would be  
>>> easier
>>> to learn.
>>>
>>> Seriously, having to implement a service just to specify the name of  
>>> the
>>> home page seems onerous.  Just like the whole discussion regarding  
>>> access to
>>> properties from the Global object.  Things that should be easy seem  
>>> very
>>> difficult and require learning a lot about the internals of Tapestry.
>>>
>>> All in all, I think Tapestry is a good approach to web applications,  
>>> but I'm
>>> sure that the learning curve does drive some people away.  With a  
>>> little
>>> effort, I think that some of that could be addressed by making the  
>>> default
>>> service implementations a little more configurable.
>>>
>>> Just some friendly criticism.
>>> Larry.
>>>
>>>
>>>> -----Original Message-----
>>>> From: Erik Hatcher [mailto:erik@ehatchersolutions.com]
>>>> Sent: Sunday, February 15, 2004 4:09 AM
>>>> To: Tapestry users
>>>> Subject: Re: Home page in a library
>>>>
>>>> We actually employed a trick with a custom "Home" service the other
>>>> day.  We have several Tapestry .application's in a single web
>>>> application.  We use message resources a lot.  We could override the
>>>> "Home" <page> just fine, but the page name stays "Home" when asking  
>>>> for
>>>> message resources so the page title was the same for each different
>>>> application.
>>>>
>>>> I added a custom home service that looks for a <property> of
>>>> "HomePage", uses "Home" by default, and directs that way.  This  
>>>> would
>>>> actually be a harmless 3-line addition to HomeService and add some
>>>> flexibility.  Although I'm not going to touch anything until 3.0 is
>>>> released.  I suspect HiveMind integration will enhance  
>>>> configurability
>>>> dramatically anyway, so this type of hack might not be necessary at
>>>> that point.
>>>>
>>>> 	Erik
>>>>
>>>>
>>>> On Feb 14, 2004, at 8:13 PM, Larry Streepy wrote:
>>>>
>>>>> I had that part working, but due to the namespace issues, it was  
>>>>> still
>>>>> looking for Home.html in the root context, not next to the  
>>>>> Home.page
>>>>> file.
>>>>> By putting them in a library, all the artifacts are kept together.
>>>>>
>>>>> And thanks Erik - I tried your suggestion and it worked perfectly.
>>>>>
>>>>>
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Byrne, Steven [mailto:SByrne@dorado.com]
>>>>>> Sent: Saturday, February 14, 2004 4:51 PM
>>>>>> To: Tapestry users
>>>>>> Subject: RE: Home page in a library
>>>>>>
>>>>>> The easier, if somewhat more hacky solution is to just point the  
>>>>>> Home
>>>>>> page element to the location in the class path of the page in the
>>>>>> library that you want to be the home page.  E.g.
>>>>>>
>>>>>> <page name="Home" specification="/mylib/LibHome.page">
>>>>>>
>>>>>> If the library was in
>>>>>>
>>>>>> WEB-INF/classes/mylib
>>>>>>
>>>>>> (or on a jar with top level directory "mylib").
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: Erik Hatcher [mailto:erik@ehatchersolutions.com]
>>>>>>> Sent: Saturday, February 14, 2004 3:58 PM
>>>>>>> To: Tapestry users
>>>>>>> Subject: Re: Home page in a library
>>>>>>>
>>>>>>>
>>>>>>> You could override the HomeService.  To do this, create an engine
>>>>>>> service that does what HomeService does, but goes to the page
>>>>>>> you want.
>>>>>>>  Register it in the .application as a <service> with the
>>>>>>> name "home".
>>>>>>> There may be other options, but this one will definitely work.
>>>>>>>
>>>>>>> 	Erik
>>>>>>>
>>>>>>> On Feb 14, 2004, at 6:47 PM, Larry Streepy wrote:
>>>>>>>
>>>>>>>
>>>>>>>> Is it legal to have the Home page for a tapestry
>>>>>>>>
>>>>>>> application reside in
>>>>>>>
>>>>>>>> a
>>>>>>>> library referenced from the application specification?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> I've tried a lot of permutations that result in various
>>>>>>>>
>>>>>>> errors trying
>>>>>>>
>>>>>>>> to
>>>>>>>> load either the html or the page, so I thought I'd make
>>>>>>>>
>>>>>>> sure I wasn't
>>>>>>>
>>>>>>>> racing
>>>>>>>> down a dead end first.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> Larry.
>>>>>>>>
>>>>>>>>
>>>>>>> ----------------------------------------------------------------- 
>>>>>>> ----
>>>>>>> To unsubscribe, e-mail:  
>>>>>>> tapestry-user-unsubscribe@jakarta.apache.org
>>>>>>> For additional commands, e-mail:
>>>>>>> tapestry-user-help@jakarta.apache.org
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> ------------------------------------------------------------------ 
>>>>>> ---
>>>>>> To unsubscribe, e-mail:  
>>>>>> tapestry-user-unsubscribe@jakarta.apache.org
>>>>>> For additional commands, e-mail:  
>>>>>> tapestry-user-help@jakarta.apache.org
>>>>>>
>>>>> ------------------------------------------------------------------- 
>>>>> --
>>>>> To unsubscribe, e-mail:  
>>>>> tapestry-user-unsubscribe@jakarta.apache.org
>>>>> For additional commands, e-mail:  
>>>>> tapestry-user-help@jakarta.apache.org
>>>>>
>>>> -------------------------------------------------------------------- 
>>>> -
>>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail:  
>>>> tapestry-user-help@jakarta.apache.org
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail:  
>>> tapestry-user-help@jakarta.apache.org
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org


RE: Reducing the slope of the learning curve

Posted by Petter Måhlén <pe...@chello.se>.
I very much agree with Todd, except I am not sure if it is feasible or a
good idea to "hide stuff until it is needed" in Tapestry. My impression so
far of Tapestry is that it is very complex and extremely flexible. Just look
at the number of possible solutions suggested when I asked about
initialisation a week ago, or at the number of different ways to change the
location of the Home page. This flexibility is probably both the strength
and the weakness of Tapestry. Strength because it allows the experienced
user freedom to choose a solution that works for his needs, and weakness
because it is very hard to know what to do to get going when all the options
are open.

I think that Harish has a good point - maybe what is needed is a Getting
Started guide, which illustrates one way (a good way) of doing all the basic
things needed for a normal web application, without explaining all the
possible options to do things in other ways? Not really shutting off
options, just sort of not pointing them out. :) Maybe that's the same as
what Todd is saying.

/ Petter

> -----Original Message-----
> From: Harish Krishnaswamy [mailto:hkrishnaswamy@comcast.net] 
> Sent: den 15 februari 2004 23:26
> To: Tapestry users
> Subject: Re: Reducing the slope of the learning curve
> 
> 
> I would agree with your point. May be we should put together a quick 
> start guide. My original document "Illustrating Tapestry" was 
> actually 
> aimed at newbies for this kind of a quick start. We can 
> probably smooth 
> its edges and use it. Suggestions/comments? You may find the 
> document at 
> http://myworkspace.sf.net.
> 
> -Harish
> 
> Todd O'Bryan wrote:
> 
> > Oh. That's good to know. The fact that I didn't know it 
> after having 
> > spent several hours on the website and having read about 50 
> pages of 
> > Tapestry in Action may suggest that it's not easy to find out that 
> > it's easy to start.
> >
> > Don't get me wrong. Everything looks good, and I'm not 
> sorry I've dug 
> > in, but there's a lot here that I'm just glossing over 
> because I don't 
> > know how it fits into the big picture and I don't even want 
> to know at 
> > this point. Hiding that stuff until I need to see it would make 
> > getting started easier.
> >
> > Todd
> >
> > On Feb 15, 2004, at 3:35 PM, Erik Hatcher wrote:
> >
> >> On Feb 15, 2004, at 2:30 PM, Todd O'Bryan wrote:
> >>
> >>> It should be easy to start.
> >>>
> >>> By that, I mean, there should be minimal setup, configuration, 
> >>> programming, and general futzing about to get *ANY* 
> project up and 
> >>> doing something. This includes setting up properties and such. If 
> >>> your project requires lots of pieces before it can do anything 
> >>> reasonable, provide decent defaults so that someone can start 
> >>> without having to understand them all, and specific instructions 
> >>> about how to get it working with those defaults.
> >>
> >>
> >> The interesting thing with Tapestry is that all you need is the 
> >> servlet mapping in web.xml to get a project started.  No 
> .application 
> >> file is needed.  No .page files are needed until binding 
> to Java is 
> >> required.  In fact, you can set Global and Visit classes 
> in web.xml 
> >> as config parameters if you like instead of .application (although 
> >> I'd recommend against that).  .page files require very little 
> >> generally, especially with the implicit @syntax.
> >>
> >> I just wanted to point out that Tapestry is actually quite easy to 
> >> start with.  The things we need to work hard on is making it stay 
> >> easy, and as we've seen recently there are some rough 
> edges requiring 
> >> some inside know-how.  What I am happy to see is more and more 
> >> discussion pointing out these rough edges, which means 
> there are more 
> >> folks giving Tapestry a try.
> >>
> >>     Erik
> >>
> >>
> >> 
> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: 
> tapestry-user-unsubscribe@jakarta.apache.org
> >> For additional commands, e-mail: 
> tapestry-user-help@jakarta.apache.org
> >>
> >
> >
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: 
> tapestry-user-help@jakarta.apache.org
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org


Re: Reducing the slope of the learning curve

Posted by Harish Krishnaswamy <hk...@comcast.net>.
I would agree with your point. May be we should put together a quick 
start guide. My original document "Illustrating Tapestry" was actually 
aimed at newbies for this kind of a quick start. We can probably smooth 
its edges and use it. Suggestions/comments? You may find the document at 
http://myworkspace.sf.net.

-Harish

Todd O'Bryan wrote:

> Oh. That's good to know. The fact that I didn't know it after having 
> spent several hours on the website and having read about 50 pages of 
> Tapestry in Action may suggest that it's not easy to find out that 
> it's easy to start.
>
> Don't get me wrong. Everything looks good, and I'm not sorry I've dug 
> in, but there's a lot here that I'm just glossing over because I don't 
> know how it fits into the big picture and I don't even want to know at 
> this point. Hiding that stuff until I need to see it would make 
> getting started easier.
>
> Todd
>
> On Feb 15, 2004, at 3:35 PM, Erik Hatcher wrote:
>
>> On Feb 15, 2004, at 2:30 PM, Todd O'Bryan wrote:
>>
>>> It should be easy to start.
>>>
>>> By that, I mean, there should be minimal setup, configuration, 
>>> programming, and general futzing about to get *ANY* project up and 
>>> doing something. This includes setting up properties and such. If 
>>> your project requires lots of pieces before it can do anything 
>>> reasonable, provide decent defaults so that someone can start 
>>> without having to understand them all, and specific instructions 
>>> about how to get it working with those defaults.
>>
>>
>> The interesting thing with Tapestry is that all you need is the 
>> servlet mapping in web.xml to get a project started.  No .application 
>> file is needed.  No .page files are needed until binding to Java is 
>> required.  In fact, you can set Global and Visit classes in web.xml 
>> as config parameters if you like instead of .application (although 
>> I'd recommend against that).  .page files require very little 
>> generally, especially with the implicit @syntax.
>>
>> I just wanted to point out that Tapestry is actually quite easy to 
>> start with.  The things we need to work hard on is making it stay 
>> easy, and as we've seen recently there are some rough edges requiring 
>> some inside know-how.  What I am happy to see is more and more 
>> discussion pointing out these rough edges, which means there are more 
>> folks giving Tapestry a try.
>>
>>     Erik
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org


Re: Reducing the slope of the learning curve (was: Re: Home page in a library)

Posted by Todd O'Bryan <to...@mac.com>.
Oh. That's good to know. The fact that I didn't know it after having 
spent several hours on the website and having read about 50 pages of 
Tapestry in Action may suggest that it's not easy to find out that it's 
easy to start.

Don't get me wrong. Everything looks good, and I'm not sorry I've dug 
in, but there's a lot here that I'm just glossing over because I don't 
know how it fits into the big picture and I don't even want to know at 
this point. Hiding that stuff until I need to see it would make getting 
started easier.

Todd

On Feb 15, 2004, at 3:35 PM, Erik Hatcher wrote:

> On Feb 15, 2004, at 2:30 PM, Todd O'Bryan wrote:
>> It should be easy to start.
>>
>> By that, I mean, there should be minimal setup, configuration, 
>> programming, and general futzing about to get *ANY* project up and 
>> doing something. This includes setting up properties and such. If 
>> your project requires lots of pieces before it can do anything 
>> reasonable, provide decent defaults so that someone can start without 
>> having to understand them all, and specific instructions about how to 
>> get it working with those defaults.
>
> The interesting thing with Tapestry is that all you need is the 
> servlet mapping in web.xml to get a project started.  No .application 
> file is needed.  No .page files are needed until binding to Java is 
> required.  In fact, you can set Global and Visit classes in web.xml as 
> config parameters if you like instead of .application (although I'd 
> recommend against that).  .page files require very little generally, 
> especially with the implicit @syntax.
>
> I just wanted to point out that Tapestry is actually quite easy to 
> start with.  The things we need to work hard on is making it stay 
> easy, and as we've seen recently there are some rough edges requiring 
> some inside know-how.  What I am happy to see is more and more 
> discussion pointing out these rough edges, which means there are more 
> folks giving Tapestry a try.
>
> 	Erik
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org


Re: Reducing the slope of the learning curve (was: Re: Home page in a library)

Posted by Erik Hatcher <er...@ehatchersolutions.com>.
On Feb 15, 2004, at 2:30 PM, Todd O'Bryan wrote:
> It should be easy to start.
>
> By that, I mean, there should be minimal setup, configuration, 
> programming, and general futzing about to get *ANY* project up and 
> doing something. This includes setting up properties and such. If your 
> project requires lots of pieces before it can do anything reasonable, 
> provide decent defaults so that someone can start without having to 
> understand them all, and specific instructions about how to get it 
> working with those defaults.

The interesting thing with Tapestry is that all you need is the servlet 
mapping in web.xml to get a project started.  No .application file is 
needed.  No .page files are needed until binding to Java is required.  
In fact, you can set Global and Visit classes in web.xml as config 
parameters if you like instead of .application (although I'd recommend 
against that).  .page files require very little generally, especially 
with the implicit @syntax.

I just wanted to point out that Tapestry is actually quite easy to 
start with.  The things we need to work hard on is making it stay easy, 
and as we've seen recently there are some rough edges requiring some 
inside know-how.  What I am happy to see is more and more discussion 
pointing out these rough edges, which means there are more folks giving 
Tapestry a try.

	Erik


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org