Re: [Rife-users] A bit frustrated

2006-06-23 Thread Geert Bevin

Hi Steve,

If someone can give the new material a quick read and make sure  
it's accurate and that my adaptation of Emmanuel's code is


I read over it and it looks very nice, just made a couple of minor  
modifications.


the right way to do things, that'd be super. In particular I tried  
and failed to make the Account object use the RIFE user ID as its  
identifier, which I feel is the right data model since it's a one- 
to-one mapping. If there's some way to do foreign primary keys I  
wouldn't mind knowing, but I couldn't get RIFE to stop trying to  
assign a fresh ID value to my Account object.


I think this should be possible by adding a 'sparse' constraint to  
your identifier property. I haven't tried it out yet in this  
situation, but that's what its intention is: allowing you to manage  
the ID values yourself. I'll try it out once I get back from  
Barcelona, next week.


I also didn't see a more elegant way to do the many-to-one  
constraint between Account and RoleUser, but it's entirely possible  
there is one I'm not aware of. At the very least I imagine there's  
a more elegant way to look up the RoleUser table name.


Best regards,

Geert

--
Geert Bevin
Uwyn "Use what you need" - http://uwyn.com
RIFE Java application framework - http://rifers.org
Music and words - http://gbevin.com


___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


Re: [Rife-users] A bit frustrated

2006-06-19 Thread Steven Grimm

Not sure if it's better to start a new thread or just extend this one, but:

Geert Bevin wrote:

http://thread.gmane.org/gmane.comp.java.rife.user/2767/focus=2767
...
Emmanuel also gives a good summary of how to use database 
authentication, with clear code snippets.


I am probably just slow, but it took me several readings of his code 
before I even figured out what it was for: he was demonstrating how to 
create a user and attach it to additional account data, not how to use 
an existing database of users. Once I figured that out, I took his 
example, expanded on it, and added lots of explanation and code comments 
which I hope are correct; the result is here:


http://rifers.org/wiki/display/RIFE/GuideCookbookAuthentication

(The new sections are "Creating users" and "Managing additional user 
data".) I also added a link to that page from the authentication chapter 
of the user's guide, since when I was first reading the guide it kind of 
felt like database authentication was mentioned in passing then 
forgotten and at first I didn't even notice it stuffed down in an 
appendix at the end of the guide.


If someone can give the new material a quick read and make sure it's 
accurate and that my adaptation of Emmanuel's code is the right way to 
do things, that'd be super. In particular I tried and failed to make the 
Account object use the RIFE user ID as its identifier, which I feel is 
the right data model since it's a one-to-one mapping. If there's some 
way to do foreign primary keys I wouldn't mind knowing, but I couldn't 
get RIFE to stop trying to assign a fresh ID value to my Account object.


I also didn't see a more elegant way to do the many-to-one constraint 
between Account and RoleUser, but it's entirely possible there is one 
I'm not aware of. At the very least I imagine there's a more elegant way 
to look up the RoleUser table name.


-Steve
___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


Re: [Rife-users] A bit frustrated

2006-06-18 Thread Steven Grimm

Geert Bevin wrote:
The tables are not 'automatically' created by the framework. It's up 
to you to call the install() methods on the manager classes that are 
involved. If you want to know the structure, either read the source 
code of the manager classes or look at what has been created during 
development. You can also set the SQL_DEBUG_TRACE configuration 
parameter to 'true' and you'll get a log of all the SQL statements 
that are executed.


Thanks. I've done that and added what I believe are correct descriptions 
of the database tables to the "GuideCookbookAuthentication" page -- if 
someone can double-check to make sure I got it right, that'd be swell.


Point taken on the "automatically" part -- I meant that the tables are 
created by the framework without an opportunity for a human DBA to 
review the schema and tweak, e.g., the storage parameters.


-Steve
___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


Re: [Rife-users] A bit frustrated

2006-06-18 Thread Geert Bevin

Hi Stefan,

Hmm, one example was, when I tried to send an email and I  
remembered RIFE had some functionality for this. After reading  
through the examples and looking at the code, I realized that RIFE  
only supported asynchronous sending of mails. Probably because  
synchronously sending mails was considered trivial. Still took me a  
while to figure it out. Not really a problem with the documentation  
though. What we need is a more structured approach, so you can go  
look at "RIFE > Mail" and if it's not there, it's not supported.  
Right now the only sure way is to use the search function of the  
Wiki. But what if you don't know the proper keywords?


Actually, I'm still planning of adding a "send" method to the  
MailQueueManager interface to send emails immediately. ;-)


Most features are somewhere. True. But ideally they should be  
documented everywhere. How to do user authentication should be  
discussed in the tutorial, but it should also be in the Cookbook  
with all variants. *)



1) A complete syntax manual for all XML config files and


Are you mainly talking about the site and the element files here?  
Normally the concepts of those are documented in the (old) users  
guide and the cookbook.


Yes, but a tutorial is hard to use as a reference to look things  
up. The features of the site definition are all over the place,  
introduced one at a time throughout the tutorial. This is good when  
you first learn it, but extremely annoying, when you want to  
revisit something or try something that just doesn't happen in the  
tutorial. But don't bother, I'll condense the stuff and write  
something in the Wiki soon.


I agree, and thanks for planning on contributing!

I'm writing my books as a reference manual instead of a tutorial, so  
there might be something useful in there too.


The latter is needed to expand upon what RIFE can do today. My hope  
is that your upcoming books will fill this gap.


That is the plan ;-)

(Please note that while the JavaDocs are by principle concept- 
oriented, they are more meant to look something up than to  
methodically learn something.)


   o--oo
   | Methodical   |Reference   |
o---o--oo
| Bottom-Up | Live Users Guide |  Cookbook/Mailing List Archive |
o---o--oo
| Top-Down  |   ???| JavaDoc|
o---o--oo

But that's just how I see it. Hope it helps.


Very nice diagram and overview of how the documentation should be  
structured. Thanks a lot!


Another thing that comes to my mind is: Geert, could you recommend  
some non-RIFE-related reading that might help with the big picture?  
Maybe some books or articles about this whole concept of web data  
flow/web logic flow. Or about component-based framework in general.  
I feel like I'm lacking some of the basics and while it's not your  
job to explain this stuff to people you might be able to point them  
to valuable resources.


Sadly I'm not really aware of any reading material like this. RIFE's  
model really grew out of real-world problems that I had 5 years ago  
and it has been enhanced over the years. Nowadays though, it's nice  
to see other solutions pop up that adopt some of the same concepts.  
At least it validates the approach and allows for a common  
nomenclature to be used. I never read a book about them though.



There are some more points I really want to emphasize:
1) There's nothing "wrong" with the documentation. I like it and  
that learning RIFE takes a bit of time is just a logical  
consequence of it's sheer size and power. (Not to mention the fact  
that it is some of the most advanced technology on earth today. I  
mean, how easy can it be to learn it? If you want an easy way to  
create simple web sites, there are better tools out there. Tools  
like RIFE are meant to help you writing web-applications of a  
complexity that would just not be manageable without them. As a  
side effect, you can also become more sovereign in writing simpler  
apps.)


However, I think it's important to continuously strive for the  
initial learning curve to become lower all the time. RIFE has a lot  
to offer for the simple projects too. One of the key areas here is to  
reduce the declaration and configuration overhead. I think that  
annotations (for RIFE 1.5) and RIFE/Crud are doing a lot for that  
already.


2) What the documentation needs is more perspectives. So I  
encourage everyone currently learning RIFE to just go for it,  
create pages in the wiki, talk about what you're doing. If you're  
writing something dumb, others can correct it. Also, don't hesitate  
to change existing documentation in the Wiki to clarify it. The  
only way to make RIFE easier for a wide audience is to have the  
doc

Re: [Rife-users] A bit frustrated

2006-06-18 Thread Emmanuel Okyere

I like it... if only for the fact that two weeks down the line he'll
have to write again... only this time to say what a darling rife is ;P

On 6/18/06, Eddy Young <[EMAIL PROTECTED]> wrote:


On 18 Jun 2006, at 22:58, Steven Grimm wrote:
>
> Once again, though, I apologize if I've offended anyone. That is
> not the intent at all.

Steven,

My reply was meant to encourage you to post your questions on the
mailing list more than anything else.

Eddy
--
http://coding.mu
http://priscimon.com/blog



___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users




--
Sheik Hamza Yusuf - "A tree grows. If you're staying the same,
something is wrong. You're not alive."
___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


Re: [Rife-users] A bit frustrated

2006-06-18 Thread Eddy Young


On 18 Jun 2006, at 22:58, Steven Grimm wrote:


Once again, though, I apologize if I've offended anyone. That is  
not the intent at all.


Steven,

My reply was meant to encourage you to post your questions on the  
mailing list more than anything else.


Eddy
--
http://coding.mu
http://priscimon.com/blog



___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


Re: [Rife-users] A bit frustrated

2006-06-18 Thread Geert Bevin
It wasn't my first post on the list, but I will grant you that I am  
not a longtime participant -- which is kind of the point. The  
message in question was the perspective of someone who hasn't had a  
lot of experience with RIFE yet, which means someone who hasn't  
spent lots of time asking questions on the mailing list. By the  
time you've gotten all your questions answered on the list, you no  
longer have the perspective of a new user.


Very good point Steve, it's indeed difficult as an experienced user  
or contributor to understand the hurdles and stumbling blocks that a  
newcomer experiences. Your comments and suggestions are valuable.  
Sadly, they're as easily fixable as tending to a small bug that can  
quickly be resolved. However, making everyone in the RIFE community  
aware of this really increases the probability that someone will bite  
the bullet and kick the documentation into a better shape.


If all the mailing list ever hears is reports from long-time users  
about how wonderful everything is and specific questions that  
aren't covered in the documentation, there will be no way to know  
what the overall experience is like for a new user. I wrote what I  
wrote not because I want to upset people or bash RIFE, but because  
I actually *like* RIFE and I want it to be successful. If I didn't  
care about it at all, I wouldn't have bothered. Was I frustrated at  
the time, and therefore not as diplomatic as I might have been?  
Yeah, probably. But the fact remains that there is value in an  
outsider's evaluation of RIFE's strengths (very clean and  
internally consistent conceptual model, fabulous template system,  
and helpful user community, to name three) and its shortcomings.


Once again, though, I apologize if I've offended anyone. That is  
not the intent at all.


You haven't offended me in any case ... I know out of experience (I  
went through a very similar scenario as an initial OpenLaszlo  
criticizer who become an advocate) that when you take the trouble to  
write out such a detailed blog entry, you're actually motivated into  
the problems to be fixed and the technology to improve, otherwise you  
wouldn't have bothered at all and just moved on.


Take care,

Geert

--
Geert Bevin
Uwyn "Use what you need" - http://uwyn.com
RIFE Java application framework - http://rifers.org
Music and words - http://gbevin.com


___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


Re: [Rife-users] A bit frustrated

2006-06-18 Thread Steven Grimm

Eddy Young wrote:
It is unfortunate that your first post on the mailing list is to 
announce a blog entry ranting about your irks with RIFE. Most of us 
use the mailing list as a second source of documentation when the Wiki 
does not provide the answer.


It wasn't my first post on the list, but I will grant you that I am not 
a longtime participant -- which is kind of the point. The message in 
question was the perspective of someone who hasn't had a lot of 
experience with RIFE yet, which means someone who hasn't spent lots of 
time asking questions on the mailing list. By the time you've gotten all 
your questions answered on the list, you no longer have the perspective 
of a new user.


The fact that at least one person wrote to agree with what I said tells 
me that it wasn't a completely unjustified rant. I have to believe there 
are at least a few others who just gave up and moved on to a different 
framework after running into what I described; you will never hear from 
those people since they will never bother to join the mailing list and 
won't consider it worth the time to write up their experiences.


Actually, I *know* such people exist, because I was one of them until 
recently; I read through the user guide last year and was puzzled that 
it didn't even hint at all the "don't repeat yourself" constraint stuff 
I'd heard RIFE had. I saw some of that mentioned in the cookbook, but it 
didn't look like the description was all that complete (and it seemed to 
be kind of scattered around in bits and pieces in different parts of the 
documentation, as Stefan alluded to). I quickly realized I was going to 
have to really hunt around and do a lot of reading of the source to 
figure out how to use the framework. So I put RIFE on my "come back and 
look at this later" list rather than my "learn this right now" list.


If all the mailing list ever hears is reports from long-time users about 
how wonderful everything is and specific questions that aren't covered 
in the documentation, there will be no way to know what the overall 
experience is like for a new user. I wrote what I wrote not because I 
want to upset people or bash RIFE, but because I actually *like* RIFE 
and I want it to be successful. If I didn't care about it at all, I 
wouldn't have bothered. Was I frustrated at the time, and therefore not 
as diplomatic as I might have been? Yeah, probably. But the fact remains 
that there is value in an outsider's evaluation of RIFE's strengths 
(very clean and internally consistent conceptual model, fabulous 
template system, and helpful user community, to name three) and its 
shortcomings.


Once again, though, I apologize if I've offended anyone. That is not the 
intent at all.


-Steve
___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


Re: [Rife-users] A bit frustrated

2006-06-18 Thread Geert Bevin

Hi Steven,

I'm glad to hear the first part of that, and yes, I did notice a  
lot of examples in the release notes, which are great. My harsh  
comment was based solely on the parts of the framework I've tried  
to use. The template system is quite well documented, enough so  
that I felt confident editing the Wiki to clarify the one thing I  
found I had to ask on the list about. And the simple blog movie, as  
I mentioned, is a very good introduction. It was therefore pretty  
jarring that the first thing I tried to do after finishing the  
tutorial (add database authentication) was essentially undocumented.


Indeed. I hope that someone has the time to document it properly and  
otherwise I'll try to take a crack at it when I come back from TSSJS  
Europe.


As was the thing I tried to do after that (get rid of the URL  
decoration). And the thing after that (beefing up my model with  
some more complex database access).


It is entirely possible that I just happened to hit the worst- 
documented three parts of the framework all in a row.


You sorta did :-/

A project with the momentum of Spring, with their amount of  
contributors and commercial companies behind it, is of course able  
to provide a lot more in terms of books and user guides. There's  
only so much that a small team of motivated developers can do for  
free in their spare time. However, if you do feel that some areas  
need to be improved quicker, you're always welcome to contribute  
to the effort and document your findings either in articles or  
Javadoc additions that you can send to me as patches.


I am happy to update the documenation in places where I feel like I  
have a solid enough understanding of the subject to make a useful  
contribution. And FYI, my comment about Spring was more about the  
Javadoc than the books and user guides (though those are nice too).  
Sounds like you have that problem under control for new code, but  
as a new RIFE user I have no way of knowing in advance what code is  
new and what code is old, so from my perspective the documentation  
is a random roll of the dice: will there or won't there be any  
documentation for what I want to do?


I hear you, really do, though good documentation is very time- 
consuming to write. Many open-source projects just add one-liners as  
Javadocs, which doesn't really benefit you much as a user. Once in a  
while me or someone else takes out some days and completes the  
Javadocs of older APIs that were committed without. Sadly it's very  
difficult to dedicate time to that since there's no real benefit for  
it during customer projects. Other advancements that I and others  
make to RIFE are mostly driven by real problems in real projects, and  
writing Javadocs for those along the way can be justified during the  
implementation. Even in those cases there are limits though.  
Interface21 on the other hand, solely bases their business on Spring- 
related things. They give courses, seminars, on-site training,  
audits, ... they have a real business incentive to invest money in  
people writing extensive documentation and even have paid developers  
that only do things like that. For RIFE, this is at the moment really  
on a voluntary basis. I try to take out a lot of time that I could  
otherwise spend on additional paying projects, but the day-to-day  
follow-up of the mailing list, the web site, the examples, the  
release notes, bug fixes, advocacy, and moving the framework forward  
really takes up already more time than it should.


You're right that database authentication isn't documented in  
detail and it really needs to receive some love since imho it's  
*the* area that is the most confusing to people. I think that you  
can find what you need here though:

http://thread.gmane.org/gmane.comp.java.rife.user/2767/focus=2767


I read that thread when it came by. It does not answer a single one  
of the questions I posed in my blog post.


It does cover in detail the design of the authentication layer and  
allows you to understand how it ties in with any customization that  
you'd want to make (including the clustered cache question you have  
later on). Emmanuel also gives a good summary of how to use database  
authentication, with clear code snippets.


Which I'll repeat here with some clarifications so people don't  
have to go over there:


What table does the authentication system use for user data, and  
what are its columns? (In development mode, it's fine to have the  
framework auto-create tables. Not so in production; I want to  
control exactly where and how each table is created, make sure I  
understand all the integrity constraints, have administrative tools  
in place to manipulate the data in a safe way, etc.)


The tables are not 'automatically' created by the framework. It's up  
to you to call the install() methods on the manager classes that are  
involved. If you want to know the structure, either read the source  
code of the man

Re: [Rife-users] A bit frustrated

2006-06-18 Thread Eddy Young


On 18 Jun 2006, at 09:20, Steven Grimm wrote:

I feel like I'm fumbling around in the dark with RIFE. How are  
other people coming up to speed on this framework? I'm finding  
myself spending five times as long searching (often fruitlessly)  
for documentation as I'm spending actually getting work done. (It's  
the "fruitlessly" part that really irks me.) Right now my bugaboo  
is database authentication; there seems to be very little  
documentation on how it actually works in practice, just an example  
element configuration in the user's guide.


I've written a blog entry on my experience so far:

http://www.plaintivemewling.com/articles/rife-with-frustration

Hopefully nothing too unwarranted there; sorry if it raises  
anyone's hackles, but I'm not a very happy RIFE camper at the moment.


-Steve


Steve,

It is unfortunate that your first post on the mailing list is to  
announce a blog entry ranting about your irks with RIFE. Most of us  
use the mailing list as a second source of documentation when the  
Wiki does not provide the answer.


In the future, feel free to ask your questions here, and you will be  
amazed how responsive the mailing list members are.


Regards,

Eddy

--
http://coding.mu
http://priscimon.com/blog



___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


Re: [Rife-users] A bit frustrated

2006-06-18 Thread Steven Grimm

Geert Bevin wrote:
Also, since three years, no public APIs get committed anymore without 
Javadocs. Additionally, as you probably saw, each release contains 
extremely detailed release notes with examples that are afterwards 
aggregated in the wiki's cookbook. I think that there is no 
open-source project out there that does this as extensively. Stating 
that documentation is an afterthought thus feels really very harsh to me.


I'm glad to hear the first part of that, and yes, I did notice a lot of 
examples in the release notes, which are great. My harsh comment was 
based solely on the parts of the framework I've tried to use. The 
template system is quite well documented, enough so that I felt 
confident editing the Wiki to clarify the one thing I found I had to ask 
on the list about. And the simple blog movie, as I mentioned, is a very 
good introduction. It was therefore pretty jarring that the first thing 
I tried to do after finishing the tutorial (add database authentication) 
was essentially undocumented. As was the thing I tried to do after that 
(get rid of the URL decoration). And the thing after that (beefing up my 
model with some more complex database access).


It is entirely possible that I just happened to hit the worst-documented 
three parts of the framework all in a row.


A project with the momentum of Spring, with their amount of 
contributors and commercial companies behind it, is of course able to 
provide a lot more in terms of books and user guides. There's only so 
much that a small team of motivated developers can do for free in 
their spare time. However, if you do feel that some areas need to be 
improved quicker, you're always welcome to contribute to the effort 
and document your findings either in articles or Javadoc additions 
that you can send to me as patches.


I am happy to update the documenation in places where I feel like I have 
a solid enough understanding of the subject to make a useful 
contribution. And FYI, my comment about Spring was more about the 
Javadoc than the books and user guides (though those are nice too). 
Sounds like you have that problem under control for new code, but as a 
new RIFE user I have no way of knowing in advance what code is new and 
what code is old, so from my perspective the documentation is a random 
roll of the dice: will there or won't there be any documentation for 
what I want to do?


I'm working on a series of three short books for O'Reilly though, so 
soon there will be a source with more centralized information.


Looking forward to those!

You're right that database authentication isn't documented in detail 
and it really needs to receive some love since imho it's *the* area 
that is the most confusing to people. I think that you can find what 
you need here though:

http://thread.gmane.org/gmane.comp.java.rife.user/2767/focus=2767


I read that thread when it came by. It does not answer a single one of 
the questions I posed in my blog post. Which I'll repeat here with some 
clarifications so people don't have to go over there:


What table does the authentication system use for user data, and what 
are its columns? (In development mode, it's fine to have the framework 
auto-create tables. Not so in production; I want to control exactly 
where and how each table is created, make sure I understand all the 
integrity constraints, have administrative tools in place to manipulate 
the data in a safe way, etc.)


How does one add or remove a user? (The XML user data gets cached in 
memory, so if I just update or insert a database row in the users table, 
do I need to notify a cache manager? Is there a way to disable a user 
without deleting the row entirely?)


Does the user table have to be completely managed by the authentication 
system -- no touching it allowed -- or can it be a user-supplied table 
that has data other than login names and passwords? If so, how does one 
tell the code to use the alternate table, and how does one get at the 
additional data?


Is it possible to store session data somewhere other than a database, 
e.g. in a clustered cache?


Other posts on the mailing list cover this too. You don't really have 
to be following the list for a long time, since a simple search should 
reveal all the posts that are relevant to you.


I did search and I did not find the answers to my (relatively common, I 
believe) questions. But I guess a larger point is that if I have to 
search a mailing list archive on a regular basis, it's a sign of an 
inadequately-documented system. A mailing list is a very inefficient 
reference book -- even if what you want is there, you have to dig 
through a lot of noise to get an answer, especially if it's something 
that might match a variety of different sets of keywords.


I will pledge to do my part on this and update the Wiki with any answers 
I get from the list. I suppose if everyone, or even most people, did 
that, the need to search the mailing list would be much less.

Re: [Rife-users] A bit frustrated

2006-06-18 Thread Steven Grimm
Sorry about that -- it should be fixed now. My comment-spam defense was 
broken.


-Steve


Geert Bevin wrote:
Comments on your blog seem to be broken, would you mind looking into 
that so that I can reply there too?


___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


Re: [Rife-users] A bit frustrated

2006-06-18 Thread Stefan Thomas

Hi Geert,


Thanks for sharing your thoughts.

I must say that feel exactly the same way as Steven and most of the 
time when I want to learn something new with RIFE, I end up reading 
sources for hours.


It would be interesting to know which areas were the main problem for 
you and why the current documentation didn't suffice.


Hmm, one example was, when I tried to send an email and I remembered 
RIFE had some functionality for this. After reading through the examples 
and looking at the code, I realized that RIFE only supported 
asynchronous sending of mails. Probably because synchronously sending 
mails was considered trivial. Still took me a while to figure it out. 
Not really a problem with the documentation though. What we need is a 
more structured approach, so you can go look at "RIFE > Mail" and if 
it's not there, it's not supported. Right now the only sure way is to 
use the search function of the Wiki. But what if you don't know the 
proper keywords?


Most features are somewhere. True. But ideally they should be documented 
everywhere. How to do user authentication should be discussed in the 
tutorial, but it should also be in the Cookbook with all variants. *)



1) A complete syntax manual for all XML config files and


Are you mainly talking about the site and the element files here? 
Normally the concepts of those are documented in the (old) users guide 
and the cookbook.


Yes, but a tutorial is hard to use as a reference to look things up. The 
features of the site definition are all over the place, introduced one 
at a time throughout the tutorial. This is good when you first learn it, 
but extremely annoying, when you want to revisit something or try 
something that just doesn't happen in the tutorial. But don't bother, 
I'll condense the stuff and write something in the Wiki soon.


2) Some best practices to save other people from making design 
mistakes that have already been made. If I can find the time, I'd do 
(1), but (2) is definitely something for some more experienced guys.


Hmm, honestly there are little things that I regret from my older 
projects. Everything that I do differently now is because features 
were contributed back into the framework to do the same things much 
more easily (like constraints, continuations, pathinfo mapping, 
annotations, ...). Conceptually-wise I still do a lot of the things I 
did 3 years ago.


Hehe, I understand that very well. There was a point where I had pretty 
wicked PHP mastery and wrote my own framework for this language. And if 
somebody would have asked me about best practices for it back then, I 
would have answered exactly what you just said. You have the complete 
overview of RIFE. However, someone just learning it has a completely 
different perspective, somewhat like this: I want to do something and I 
know I could do it using method A or method B, but I don't know which 
one is supported better in RIFE. Or maybe I might even miss out method C 
that might be hidden in the framework somewhere.


Basically this problem just means that I have little experience with the 
framework and no amount of documentation can magically change that. But 
there are a few things that might help. There are a few undocumented 
features in the framework (at least the scheduler was one). These should 
be tackled with priority, even if they seem useful only for a small 
amount of users. The second thing is, that while I like both the 
tutorial and the cookbook format, both are very problem-oriented 
approaches, i.e. "How do I do X?", the bottom-up perspective. What I'm 
missing is more structured information that is concept-oriented, i.e. 
"What areas can RIFE functionality be divided in? What are the concepts 
behind?", the top-down perspective. The first one is needed to get 
simple things done fast. The latter is needed to expand upon what RIFE 
can do today. My hope is that your upcoming books will fill this gap. 
(Please note that while the JavaDocs are by principle concept-oriented, 
they are more meant to look something up than to methodically learn 
something.)


   o--oo
   | Methodical   |Reference   |
o---o--oo
| Bottom-Up | Live Users Guide |  Cookbook/Mailing List Archive |
o---o--oo
| Top-Down  |   ???| JavaDoc|
o---o--oo

But that's just how I see it. Hope it helps.

Another thing that comes to my mind is: Geert, could you recommend some 
non-RIFE-related reading that might help with the big picture? Maybe 
some books or articles about this whole concept of web data flow/web 
logic flow. Or about component-based framework in general. I feel like 
I'm lacking some of the basics and while it's not your job to explain 
this stuff to people you might 

Re: [Rife-users] A bit frustrated

2006-06-18 Thread Geert Bevin

Hi Stefan,

Thanks for sharing your thoughts.

I must say that feel exactly the same way as Steven and most of the  
time when I want to learn something new with RIFE, I end up reading  
sources for hours.


It would be interesting to know which areas were the main problem for  
you and why the current documentation didn't suffice.


By now, I can almost always tell the year some code was written,  
just by looking at the RIFE-features it utilizes. :)


However, I understand why it is that way and Geert and other rifers  
deliver awesome support here on the list, so it can be learned.  
What I often miss about the docs are two things: 1) A complete  
syntax manual for all XML config files and


Are you mainly talking about the site and the element files here?  
Normally the concepts of those are documented in the (old) users  
guide and the cookbook.


2) Some best practices to save other people from making design  
mistakes that have already been made. If I can find the time, I'd  
do (1), but (2) is definitely something for some more experienced  
guys.


Hmm, honestly there are little things that I regret from my older  
projects. Everything that I do differently now is because features  
were contributed back into the framework to do the same things much  
more easily (like constraints, continuations, pathinfo mapping,  
annotations, ...). Conceptually-wise I still do a lot of the things I  
did 3 years ago.


Take care,

Geert




Regards

Stefan :)



Geert Bevin schrieb:

Hi Steven,

I'm sorry that you're bumping into this block.

I agree that documentation is lacking in some areas, mostly for  
code that was initiated earlier than three years ago. We've tried  
to fill in the Javadocs holes and I think that in the areas that  
we did cover, we're doing an excellent job at this. In contrast to  
what you're saying, there have been many compliments about the  
quality of the current documentation (even though there are  
lacunas). Also, since three years, no public APIs get committed  
anymore without Javadocs. Additionally, as you probably saw, each  
release contains extremely detailed release notes with examples  
that are afterwards aggregated in the wiki's cookbook. I think  
that there is no open-source project out there that does this as  
extensively. Stating that documentation is an afterthought thus  
feels really very harsh to me. A project with the momentum of  
Spring, with their amount of contributors and commercial companies  
behind it, is of course able to provide a lot more in terms of  
books and user guides. There's only so much that a small team of  
motivated developers can do for free in their spare time. However,  
if you do feel that some areas need to be improved quicker, you're  
always welcome to contribute to the effort and document your  
findings either in articles or Javadoc additions that you can send  
to me as patches.


I'm working on a series of three short books for O'Reilly though,  
so soon there will be a source with more centralized information.


You're right that database authentication isn't documented in  
detail and it really needs to receive some love since imho it's  
*the* area that is the most confusing to people. I think that you  
can find what you need here though:

http://thread.gmane.org/gmane.comp.java.rife.user/2767/focus=2767

Other posts on the mailing list cover this too. You don't really  
have to be following the list for a long time, since a simple  
search should reveal all the posts that are relevant to you.


With regards to the query building, the methods of the Select  
class are mostly the same as the SQL methods and should need  
little documentation if you know SQL. I agree though that there  
should be Javadocs there. It's one of the missing parts of early  
code that never received the documentation care that it deserves.
One of the points of the query builders is that the order is not  
fixed at all. The real statements are only created when the SQL is  
obtained from the builder manually, or when it's executed. This  
also means that you can partial query builder objects that you  
prepare in one location of your code and complete elsewhere.


I hope this information lets you climb out of the dip you're in  
and get back up to speed. Otherwise, feel free to mail the list  
with any additional questions you have, you'll see that a lot of  
people here are very helpful.


Best regards,

Geert

On 18 Jun 2006, at 10:20, Steven Grimm wrote:

I feel like I'm fumbling around in the dark with RIFE. How are  
other people coming up to speed on this framework? I'm finding  
myself spending five times as long searching (often fruitlessly)  
for documentation as I'm spending actually getting work done.  
(It's the "fruitlessly" part that really irks me.) Right now my  
bugaboo is database authentication; there seems to be very little  
documentation on how it actually works in practice, just an  
example element configuration in the us

Re: [Rife-users] A bit frustrated

2006-06-18 Thread Stefan Thomas

Hi Steven, hi Geert,

I must say that feel exactly the same way as Steven and most of the time 
when I want to learn something new with RIFE, I end up reading sources 
for hours. By now, I can almost always tell the year some code was 
written, just by looking at the RIFE-features it utilizes. :)


However, I understand why it is that way and Geert and other rifers 
deliver awesome support here on the list, so it can be learned. What I 
often miss about the docs are two things: 1) A complete syntax manual 
for all XML config files and 2) Some best practices to save other people 
from making design mistakes that have already been made. If I can find 
the time, I'd do (1), but (2) is definitely something for some more 
experienced guys.



Regards

Stefan :)



Geert Bevin schrieb:

Hi Steven,

I'm sorry that you're bumping into this block.

I agree that documentation is lacking in some areas, mostly for code 
that was initiated earlier than three years ago. We've tried to fill 
in the Javadocs holes and I think that in the areas that we did cover, 
we're doing an excellent job at this. In contrast to what you're 
saying, there have been many compliments about the quality of the 
current documentation (even though there are lacunas). Also, since 
three years, no public APIs get committed anymore without Javadocs. 
Additionally, as you probably saw, each release contains extremely 
detailed release notes with examples that are afterwards aggregated in 
the wiki's cookbook. I think that there is no open-source project out 
there that does this as extensively. Stating that documentation is an 
afterthought thus feels really very harsh to me. A project with the 
momentum of Spring, with their amount of contributors and commercial 
companies behind it, is of course able to provide a lot more in terms 
of books and user guides. There's only so much that a small team of 
motivated developers can do for free in their spare time. However, if 
you do feel that some areas need to be improved quicker, you're always 
welcome to contribute to the effort and document your findings either 
in articles or Javadoc additions that you can send to me as patches.


I'm working on a series of three short books for O'Reilly though, so 
soon there will be a source with more centralized information.


You're right that database authentication isn't documented in detail 
and it really needs to receive some love since imho it's *the* area 
that is the most confusing to people. I think that you can find what 
you need here though:

http://thread.gmane.org/gmane.comp.java.rife.user/2767/focus=2767

Other posts on the mailing list cover this too. You don't really have 
to be following the list for a long time, since a simple search should 
reveal all the posts that are relevant to you.


With regards to the query building, the methods of the Select class 
are mostly the same as the SQL methods and should need little 
documentation if you know SQL. I agree though that there should be 
Javadocs there. It's one of the missing parts of early code that never 
received the documentation care that it deserves.
One of the points of the query builders is that the order is not fixed 
at all. The real statements are only created when the SQL is obtained 
from the builder manually, or when it's executed. This also means that 
you can partial query builder objects that you prepare in one location 
of your code and complete elsewhere.


I hope this information lets you climb out of the dip you're in and 
get back up to speed. Otherwise, feel free to mail the list with any 
additional questions you have, you'll see that a lot of people here 
are very helpful.


Best regards,

Geert

On 18 Jun 2006, at 10:20, Steven Grimm wrote:

I feel like I'm fumbling around in the dark with RIFE. How are other 
people coming up to speed on this framework? I'm finding myself 
spending five times as long searching (often fruitlessly) for 
documentation as I'm spending actually getting work done. (It's the 
"fruitlessly" part that really irks me.) Right now my bugaboo is 
database authentication; there seems to be very little documentation 
on how it actually works in practice, just an example element 
configuration in the user's guide.


I've written a blog entry on my experience so far:

http://www.plaintivemewling.com/articles/rife-with-frustration

Hopefully nothing too unwarranted there; sorry if it raises anyone's 
hackles, but I'm not a very happy RIFE camper at the moment.


--
Geert Bevin
Uwyn "Use what you need" - http://uwyn.com
RIFE Java application framework - http://rifers.org
Music and words - http://gbevin.com


___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users



___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


Re: [Rife-users] A bit frustrated

2006-06-18 Thread Geert Bevin

Hi Steven,

I'm sorry that you're bumping into this block.

I agree that documentation is lacking in some areas, mostly for code  
that was initiated earlier than three years ago. We've tried to fill  
in the Javadocs holes and I think that in the areas that we did  
cover, we're doing an excellent job at this. In contrast to what  
you're saying, there have been many compliments about the quality of  
the current documentation (even though there are lacunas). Also,  
since three years, no public APIs get committed anymore without  
Javadocs. Additionally, as you probably saw, each release contains  
extremely detailed release notes with examples that are afterwards  
aggregated in the wiki's cookbook. I think that there is no open- 
source project out there that does this as extensively. Stating that  
documentation is an afterthought thus feels really very harsh to me.  
A project with the momentum of Spring, with their amount of  
contributors and commercial companies behind it, is of course able to  
provide a lot more in terms of books and user guides. There's only so  
much that a small team of motivated developers can do for free in  
their spare time. However, if you do feel that some areas need to be  
improved quicker, you're always welcome to contribute to the effort  
and document your findings either in articles or Javadoc additions  
that you can send to me as patches.


I'm working on a series of three short books for O'Reilly though, so  
soon there will be a source with more centralized information.


You're right that database authentication isn't documented in detail  
and it really needs to receive some love since imho it's *the* area  
that is the most confusing to people. I think that you can find what  
you need here though:

http://thread.gmane.org/gmane.comp.java.rife.user/2767/focus=2767

Other posts on the mailing list cover this too. You don't really have  
to be following the list for a long time, since a simple search  
should reveal all the posts that are relevant to you.


With regards to the query building, the methods of the Select class  
are mostly the same as the SQL methods and should need little  
documentation if you know SQL. I agree though that there should be  
Javadocs there. It's one of the missing parts of early code that  
never received the documentation care that it deserves.
One of the points of the query builders is that the order is not  
fixed at all. The real statements are only created when the SQL is  
obtained from the builder manually, or when it's executed. This also  
means that you can partial query builder objects that you prepare in  
one location of your code and complete elsewhere.


I hope this information lets you climb out of the dip you're in and  
get back up to speed. Otherwise, feel free to mail the list with any  
additional questions you have, you'll see that a lot of people here  
are very helpful.


Best regards,

Geert

On 18 Jun 2006, at 10:20, Steven Grimm wrote:

I feel like I'm fumbling around in the dark with RIFE. How are  
other people coming up to speed on this framework? I'm finding  
myself spending five times as long searching (often fruitlessly)  
for documentation as I'm spending actually getting work done. (It's  
the "fruitlessly" part that really irks me.) Right now my bugaboo  
is database authentication; there seems to be very little  
documentation on how it actually works in practice, just an example  
element configuration in the user's guide.


I've written a blog entry on my experience so far:

http://www.plaintivemewling.com/articles/rife-with-frustration

Hopefully nothing too unwarranted there; sorry if it raises  
anyone's hackles, but I'm not a very happy RIFE camper at the moment.


--
Geert Bevin
Uwyn "Use what you need" - http://uwyn.com
RIFE Java application framework - http://rifers.org
Music and words - http://gbevin.com


___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users


[Rife-users] A bit frustrated

2006-06-18 Thread Steven Grimm
I feel like I'm fumbling around in the dark with RIFE. How are other 
people coming up to speed on this framework? I'm finding myself spending 
five times as long searching (often fruitlessly) for documentation as 
I'm spending actually getting work done. (It's the "fruitlessly" part 
that really irks me.) Right now my bugaboo is database authentication; 
there seems to be very little documentation on how it actually works in 
practice, just an example element configuration in the user's guide.


I've written a blog entry on my experience so far:

http://www.plaintivemewling.com/articles/rife-with-frustration

Hopefully nothing too unwarranted there; sorry if it raises anyone's 
hackles, but I'm not a very happy RIFE camper at the moment.


-Steve
___
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users