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------------------o--------------------------------o
           |     Methodical   |            Reference           |
o-----------o------------------o--------------------------------o
| Bottom-Up | Live Users Guide |  Cookbook/Mailing List Archive |
o-----------o------------------o--------------------------------o
| Top-Down  |       ???        |             JavaDoc            |
o-----------o------------------o--------------------------------o

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 be able to point them to valuable resources.

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.)

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 docs written by a wide audience. It can't hurt, it's a Wiki goddammit.

Damn, I think I have to set a good example. I'll go forth and write a few things in the next days. And, just for the protocol: I really, really, really don't have the time to do this, but I'm gonna do it anyway. So guys, don't rationalize your shyness to contribute with "I don't have time to do this." ;)


Cheers

Stefan :)

*) This is not a job for the RIFE gurus. This is something everyone can contribute. See my call to action at the end of this mail. :)

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
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users


_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users


--
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
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users


_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users

Reply via email to