Re: [Developers] post developers meeting(presentation tags)
On Sat, Jan 29, 2005 at 02:31:32PM +0100, Andr? van Toly wrote: > OK, but what would be a good MVC framework for MMBase? Good question :-) The only "generic" MVC framework that I've attempted to use with MMBase is struts, and I wasn't impressed - there is a lot of overlap in functionality between struts and mmbase, but they don't really interface nicely, so you end up with way too much code integrating the two. > > > One of the concepts, i believe, that laid the > >> fundament for the web was the iterative nature of > >> HTML. You could (can) at every moment change the > >> look of your page by fiddling with your > >> HTML-tags. And that's also the nature of the > >> current MMBase taglib, you can fiddle as much as > >> you like until it looks right ;-) > > > >MVC is not about the look - It's talking about how the data on > > You are twisting my words. With 'looks right', i > meant it works the way you want it to... > > >the page is retrieved from the database and how you get user input back > >in the database. You can still use jsp's and taglibs to query the model > >classes and display some nice html. In fact, that is basically what > > ... in the way it puts data on a page or gets it > from a user. Just like you are saying here. Ok, I misinterpreted you then. I agree it should be easy to adapt your code to changeing requirements and/or grow the system incrementally. > >MMBase is doing already, it just doesn't really have a controller > >(usually everything, including the cloud connector, is set up via the > > You mean like nobody has ever coded a controller > for MMBase? If i read you correctly, you are > suggesting a controller should be invented for > MMBase or it should be done with some other > software. MMBase is missing the c in mvc. I think there are probably a lot of controllers coded for mmbase; actually, controllers aren't really that hard to write - IMO the only thing a controller should do is: 1. decide what action should be performed on the data (if any) and 2. decide what view (jsp page) should be shown after the action has been performed, basically: Browser View Controller Model . . . . . HTTP Request. . . +-->+ . | . | update model . | . +-->+ | . | | | . | return status | | . +<--+ | . select view | . | +<+ . | | . . | | query state . . | +>+ | | . | | | . return state | | +<+ | HTTP Response | . . +<+ . . . . . . I'm not sure if there already is a _generic_ controller that works nicely with MMBase, though. Also, the schema above implies that the *Model* should probably be more capable than the standard MMBase nodes / nodemanagers are right now. The basic functionality is good enough, but IMHO they are too hard to extend by the programmer. Joost. ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
Rob van Maris wrote: > > > >The other thing that I would very much miss is the >escaper > >functionallity, which perhaps would be a detail, but actually quit > >essential, because generally it is wrong to just put your field to the > >page, > > HTML-escaping a field value: > ${newsitem.body} Which leaves little of the advantage of ${newsitem.body} above , IMHO, and still leaves away the page-wide scoping offered by Note: content/escaper functionality is easily implemented using tags > that take the tag body as input. Chances are a taglib that suits your > needs already exists. Perhaps I may note that the mmbase taglib also already exists. Michiel -- Michiel Meeuwissen mihxil' Mediacentrum 140 H'sum[] () +31 (0)35 6772979 nl_NL eo_XX en_US ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
First of all I'm happy to see my presentation was well-received, and has provoked some discussion. But, regarding my Presentation Taglib, keep in mind that what I presented was a mere sneak preview. It's really premature and pointless to start discussing it's features (or lack thereof) on the basis of this. I won't stop you if you do, but I won't bother either. What's more serious, is that people are making claims about (supposedly) shortcomings of JSTL/EL, based on poor knowledge or understanding. Therefore, I'll provide some counterexamples below to disprove these claims: the forEach tag can be useful. but when people start using it they will need the exact functions that are in the mmbase taglib -know the size of the list -know if the list is not empty -know if this is the first / last element those simple functions are not provided by the jstl (maybe the flow taglibs are for that purpose). Example 1: Size of the list: ${newsitems.size} Note: the List interface does not provide a method getSize(), but the wrapper-class used by the mp:list tag does. Test if the list is empty: ${empty newsitems} Note: empty is part of the EL syntax. It tests for null values and empty strings, collections or arrays. The first/last element: Print this in the first iteration only Print this in each iteration. Print this in the last iteration only The other thing that I would very much miss is the functionallity, which perhaps would be a detail, but actually quit essential, because generally it is wrong to just put your field to the page, HTML-escaping a field value: ${newsitem.body} Note: content/escaper functionality is easily implemented using tags that take the tag body as input. Chances are a taglib that suits your needs already exists. A good place to shop around for taglibs is this: http://wiki.java.net/bin/view/Projects/TagLibraries For a quick but comprehensive overview of EL/JSTL features I highly recomment this document: http://www.jadecove.com/jstl-quick-reference.pdf Regards, Rob van Maris ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
At 16:31 +0100 28-01-2005, Joost Diepenmaat wrote: How's that different from creating the builders and relations first before writing the jsp pages to display/edit them? If you need to change your model (move data from one table to the next, use different relations etc) that really is much easier to do when you have all the code that interacts with the data in one place (i.e. in the model classes) instead of having to grep through hundreds of jsp pages that query the cloud via getlists... And for simple modifications like adding tables, relations or properties I doubt that you need to do much more in a good MVC framework than you need to do right now. OK, but what would be a good MVC framework for MMBase? > One of the concepts, i believe, that laid the fundament for the web was the iterative nature of HTML. You could (can) at every moment change the look of your page by fiddling with your HTML-tags. And that's also the nature of the current MMBase taglib, you can fiddle as much as you like until it looks right ;-) MVC is not about the look - It's talking about how the data on You are twisting my words. With 'looks right', i meant it works the way you want it to... the page is retrieved from the database and how you get user input back in the database. You can still use jsp's and taglibs to query the model classes and display some nice html. In fact, that is basically what ... in the way it puts data on a page or gets it from a user. Just like you are saying here. MMBase is doing already, it just doesn't really have a controller (usually everything, including the cloud connector, is set up via the You mean like nobody has ever coded a controller for MMBase? If i read you correctly, you are suggesting a controller should be invented for MMBase or it should be done with some other software. MMBase is missing the c in mvc. Maybe someone could come up with an example? I mean, there is a lot of talk on this list about mvc but i am missing some good examples or proposals (project?) to try to come up with some solution that works in a more or less generic way with MMBase. Michael wrote about the possibilities of adding a controller to MMBase. He mentioned struts. And i regret having missed Rob van Maris presentation. I read in Kees his minutes (thanks) that he talked about a mvc approach. ---André -- André van Toly http://www.toly.nlmobile +31(0)627233562 -->><<-- ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
On Fri, Jan 28, 2005 at 12:43:35PM +0100, Andr? van Toly wrote: > At 11:30 + 28-01-2005, Kees Jongenburger wrote: [ ... ] > >I dislike MVC because it's anty OO and you have to do everything > >3 or more times. This is more of a problem with certain MVC frameworks than others. Struts makes you type a lot of code and xml files before you can do anything useful, but with perl's Maypole or ruby's Rails framework you can more or less specify everything in concise code (as an extreme example, Maypole can even create a generic CRUD application (something like the mmeditors) directly from the database schema, no editing of XML files, just a few lines of initialisation code to set up the relations between the tables) which is then easily extended and modified to your needs. Rails can do something similar, but I haven't had the time to experiment with it so I don't know how fast that can be done. > And, in my view, MVC presumes that you can > completely define your site's model beforehand. > Which is maybe the case in some high profile web > sites, but in most cases is not. It's not very > iterative. How's that different from creating the builders and relations first before writing the jsp pages to display/edit them? If you need to change your model (move data from one table to the next, use different relations etc) that really is much easier to do when you have all the code that interacts with the data in one place (i.e. in the model classes) instead of having to grep through hundreds of jsp pages that query the cloud via getlists... And for simple modifications like adding tables, relations or properties I doubt that you need to do much more in a good MVC framework than you need to do right now. > One of the concepts, i believe, that laid the > fundament for the web was the iterative nature of > HTML. You could (can) at every moment change the > look of your page by fiddling with your > HTML-tags. And that's also the nature of the > current MMBase taglib, you can fiddle as much as > you like until it looks right ;-) MVC is not about the look - It's talking about how the data on the page is retrieved from the database and how you get user input back in the database. You can still use jsp's and taglibs to query the model classes and display some nice html. In fact, that is basically what MMBase is doing already, it just doesn't really have a controller (usually everything, including the cloud connector, is set up via the taglibs) and for the model you use the bridge (cloud, nodemanagers, nodes etc) which is nice if you basically want to program against the database directly, but can become quite irritating if you want: * guarantees about input data for the whole application (currently, I think you need to override setValue or preCommit in MMObjectBuilder, while I would like to just extend a bridge node - at least then you can really add methods to your objects). * have "logical units" of data that are spread over multiple builders, like (sort of contrived example): Page -[ PosRel(s) ]- Paragraph(s). Ideally, I'd like to be able to do something like this: ${page.title} ${paragraph.number}. ${paragraph.title} ${paragraph.body} What I _don't_ like is having to change any of this code when I decide to store the paragraph's numbers from the paragraph table to the posrel.pos field or vice-versa, because that is the responsibility of the model, not of some jsp page that happens to display a page. I wrote an article about MVC frameworks (from a perl perspecive) which tries to explain what's so great about MVC: http://perlmonks.org/index.pl/?node_id=402070 > I think MMBase could use both kind of logics, > buth a taglib that is more suitable for > 'iteratively' building smaller sites will be my > favorite. Certainly taglibs can be useful, but having a good model in the first place can dramatically reduce the amount of (taglib) code that is actually needed to display something useful. What I'm trying to say is that the builder stuff makes it too hard to abstract things away. The current taglibs (the ones in mmbase 1.7) are probably the best you can do with the current model - hence the talk about wrapping bridge Nodes in something that can more easily interact with jstl. Just my 0.02 euros, anyway. Joost. ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
RE: [Developers] post developers meeting(presentation tags)
Hi, My thoughts about MVC: - you could start with adding a controller, which you can bypass if you just use the current way of building mmbase sites - it will be easier to add different all kinds of logic to the mix (handling double submit problems, back button etc). - it is possible to create controllers/actions in javascript which is stored in WEB-INF and compiled when needed (using Rhino) - in struts for example you would have: struts-config for page flow, javascript for retrieving and processing data, and taglibs to create the presentation. - the model and the way of creating a site doesn't change much (iterative development possible). - applications that need a controller can use and extend it For MMBase you'll need to make MVC as easy to use as possible (not loosing flexibility or speed of implementation). Adding MVC add's a concern, but it also add's room for extension. It's a trade-off, but most systems that are growing and are becoming more complex (in terms of flexibility, possible extension, etc) benefit from adopting MVC. My 2cts Michael -Oorspronkelijk bericht- Van: [EMAIL PROTECTED] namens Andrà van Toly Verzonden: vr 28-1-2005 12:43 Aan: developers@lists.mmbase.org CC: Onderwerp: Re: [Developers] post developers meeting(presentation tags) At 11:30 + 28-01-2005, Kees Jongenburger wrote: >It was a while ago but V2 proposed to define the data used in view in >xml. This would free us from the posrel problem in jsp pages. I think >(like rico said) that the "A" current way to do this might be to have >separates jsp (or jsp parts) to define the model used and to show the >data. The can be used for the global structure of pages. On the other >hand i dislike MVC because it's anty OO and you have to do everything >3 or more times. And, in my view, MVC presumes that you can completely define your site's model beforehand. Which is maybe the case in some high profile web sites, but in most cases is not. It's not very iterative. One of the concepts, i believe, that laid the fundament for the web was the iterative nature of HTML. You could (can) at every moment change the look of your page by fiddling with your HTML-tags. And that's also the nature of the current MMBase taglib, you can fiddle as much as you like until it looks right ;-) I think MMBase could use both kind of logics, buth a taglib that is more suitable for 'iteratively' building smaller sites will be my favorite. ---Andrà -- Andrà van Toly http://www.toly.nlmobile +31(0)627233562 -->><<-- ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers Disclaimer Dit bericht met eventuele bijlagen is vertrouwelijk en uitsluitend bestemd voor de geadresseerde. Indien u niet de bedoelde ontvanger bent, wordt u verzocht de afzender te waarschuwen en dit bericht met eventuele bijlagen direct te verwijderen en/of te vernietigen. Het is niet toegestaan dit bericht en eventuele bijlagen te vermenigvuldigen, door te sturen, openbaar te maken, op te slaan of op andere wijze te gebruiken. Ordina N.V. en/of haar groepsmaatschappijen accepteren geen verantwoordelijkheid of aansprakelijkheid voor schade die voortvloeit uit (de inhoud van) de verzending van dit bericht. This e-mail and any attachments are confidential and is solely intended for the addressee only. If you are not the intended recipient, please notify the sender and delete and/or destroy this message and any attachments immediately. It is prohibited to copy, to distribute, to disclose or to use this e-mail and any attachments in any other way. Ordina N.V. and/or its group companies do not accept any responsibility nor liability for any damage resulting from (the content of) the transmission of this message. <>___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
At 11:30 + 28-01-2005, Kees Jongenburger wrote: It was a while ago but V2 proposed to define the data used in view in xml. This would free us from the posrel problem in jsp pages. I think (like rico said) that the "A" current way to do this might be to have separates jsp (or jsp parts) to define the model used and to show the data. The can be used for the global structure of pages. On the other hand i dislike MVC because it's anty OO and you have to do everything 3 or more times. And, in my view, MVC presumes that you can completely define your site's model beforehand. Which is maybe the case in some high profile web sites, but in most cases is not. It's not very iterative. One of the concepts, i believe, that laid the fundament for the web was the iterative nature of HTML. You could (can) at every moment change the look of your page by fiddling with your HTML-tags. And that's also the nature of the current MMBase taglib, you can fiddle as much as you like until it looks right ;-) I think MMBase could use both kind of logics, buth a taglib that is more suitable for 'iteratively' building smaller sites will be my favorite. ---André -- André van Toly http://www.toly.nlmobile +31(0)627233562 -->><<-- ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
On Fri, 28 Jan 2005 12:03:54 +0100, Joost Diepenmaat <[EMAIL PROTECTED]> wrote: > On Fri, Jan 28, 2005 at 10:32:53AM +0100, Wouter Heijke wrote: > > To me using "news,posrel,images" notation inside a tag is already > > something that should then be done inside a controller. > > I disagree - this is something that should be done by the model: > news.getImages() or something should implement the query - it's annoying to > have to know that the relation is a posrel when what you want is an > ordered list of images related to the news object, and it makes it hard > to change the datamodel later. The news class/builder/whatever should > be the place to implement this. I think the answer is in the middle. displaying a page is a view of your data(other pages can show the same data in a different view), the news.getImages() will not work for every view It was a while ago but V2 proposed to define the data used in view in xml. This would free us from the posrel problem in jsp pages. I think (like rico said) that the "A" current way to do this might be to have separates jsp (or jsp parts) to define the model used and to show the data. The can be used for the global structure of pages. On the other hand i dislike MVC because it's anty OO and you have to do everything 3 or more times. ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
On Fri, Jan 28, 2005 at 10:32:53AM +0100, Wouter Heijke wrote: > To me using "news,posrel,images" notation inside a tag is already > something that should then be done inside a controller. I disagree - this is something that should be done by the model: news.getImages() or something should implement the query - it's annoying to have to know that the relation is a posrel when what you want is an ordered list of images related to the news object, and it makes it hard to change the datamodel later. The news class/builder/whatever should be the place to implement this. Ofcourse, right now it's not easy to extend a node (except sort of via the functions framework), and building a new model "on top of" the bride nodes (encapsulating the nodes and nodemanagers) gets you in all kinds of trouble, so I'm not sure how to do this "right" in MMBase... > With this in mind i have been using struts tiles. It puts 'queries' like > this in a config file, the query itself is executed by a struts controller > accessing MMBase through the bridge, in your presentation jsp you then > 'insert' this 'definition' which is just a name with a simple tag: > > I have never seen this part of struts, looks interesting, at least it shouold make it easier to re-use queries throughout your jsp's. though I still don't like the separation of the model and the queries - for reasons stated above. Joost. ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
Kees Jongenburger wrote: > I am not shure , but I did not find how to get the size of the list > and the current index so odd/even was not possible Actually I though I did it alreayd, but turned out that I used mm:index. ... ... Which I tough nicer then taglib code with mm:odd and mm:even inside an attribute. Indeed tags in attribute look extremely ugly. There should always be a way to avoid it, for the case that you use jspx. Michiel -- Michiel Meeuwissen mihxil' Mediacentrum 140 H'sum[] () +31 (0)35 6772979 nl_NL eo_XX en_US ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
> > jtsp:forEach tags: > > the forEach tag can be useful. but when people start using it they > > will need the exact functions that are in the mmbase taglib > > -know the size of the list > > -know if the list is not empty > > -know if this is the first / last element > > This partly overlaps with Wouter's argument of the missing 'container' > functionality, with which I also agree. Btw the 'first' element can be quite > easily determinged with something like ${item == 0} in EL. 'odd' and 'even' > are similary possible, and you'd also have 'dividable by 3' and so on; > features we have even talked about to support in taglib, but (happily) never > did. Knowing the last element I don't readily know how to do in EL either, > but are > you really sure that it can't be done? I am not shure , but I did not find how to get the size of the list and the current index so odd/even was not possible ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
To me using "news,posrel,images" notation inside a tag is already something that should then be done inside a controller. With this in mind i have been using struts tiles. It puts 'queries' like this in a config file, the query itself is executed by a struts controller accessing MMBase through the bridge, in your presentation jsp you then 'insert' this 'definition' which is just a name with a simple tag: Wouter >> What i'm missing too is the power of the recent mm:constraint tag and >> other tags that reside inside the various container tags like >> listnodescontainer. > > Yes , but RvM made very clear that the taglib is not an all purpose > taglib. > I think (and het is not completely wrong) that complicated queries > should not happen in the jsp. Perhaps he would create a contraint > attriute to the list tag and let the constroller create a constraint? > ___ > Developers mailing list > Developers@lists.mmbase.org > http://lists.mmbase.org/mailman/listinfo/developers > ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
Kees Jongenburger wrote: > other examples where false to > > > > > can also be written as > > > > but that is almost never used because it requires to define a test variable. That is not actually possible. The node attribute of field is meant for the following: So, access to other then 'direct' parent. I suppose using an EL syntax that would become ${news.title} ${url.url}, so quite straighforward as well. Also this use of 'node' is hardy every used, but _if_ you need it, things would get rather ugly if you would't have it. > jtsp:forEach tags: > the forEach tag can be useful. but when people start using it they > will need the exact functions that are in the mmbase taglib > -know the size of the list > -know if the list is not empty > -know if this is the first / last element This partly overlaps with Wouter's argument of the missing 'container' functionality, with which I also agree. Btw the 'first' element can be quite easily determinged with something like ${item == 0} in EL. 'odd' and 'even' are similary possible, and you'd also have 'dividable by 3' and so on; features we have even talked about to support in taglib, but (happily) never did. Knowing the last element I don't readily know how to do in EL either, but are you really sure that it can't be done? The other thing that I would very much miss is the So generally I think the idea of a new taglib with JSP2 has merits, but it feels a bit like the ammount of effort which was put in the current taglib to get all kind of details right, for which the need grew largely while _using_ it, is ignored. Michiel -- Michiel Meeuwissen mihxil' Mediacentrum 140 H'sum[] () +31 (0)35 6772979 nl_NL eo_XX en_US ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
> What i'm missing too is the power of the recent mm:constraint tag and > other tags that reside inside the various container tags like > listnodescontainer. Yes , but RvM made very clear that the taglib is not an all purpose taglib. I think (and het is not completely wrong) that complicated queries should not happen in the jsp. Perhaps he would create a contraint attriute to the list tag and let the constroller create a constraint? ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
Re: [Developers] post developers meeting(presentation tags)
Hello, What i'm missing too is the power of the recent mm:constraint tag and other tags that reside inside the various container tags like listnodescontainer. Wouter > Hello , > > RvM taglib: > > RvM gave a great presentation about what is possible with the 2.4 servlet > api > his goals where to use a few simple tags, use jstl and the EL as much > as possible. > (only 3 tags !!). He also discussed the MVC approach. I missed that > part of in the presentation of the presentation tags. If the data is > to be fetched by the controller > the tags should be even more simple > jaco's simpletags http://www.dynasol.com/simpletags/1.1.2/ should be > sufficient > (and even better) because there is not logic in them. and is't > possible to create things like a html table/calender. > > I think the presentation was great , but the examples not realistic. > The mmbase taglibs make use of the hierarchy of the tags , thats on > the the great powers of the taglib. > > > > > > > This makes is easy to cut and past code around (no need to declare > variables) > > other examples where false to > > > > > can also be written as > > > > but that is almost never used because it requires to define a test > variable. > > jtsp:forEach tags: > the forEach tag can be useful. but when people start using it they > will need the exact functions that are in the mmbase taglib > -know the size of the list > -know if the list is not empty > -know if this is the first / last element > > those simple functions are not provided by the jstl (maybe the flow > taglibs are for that purpose). > > We also discussed if it was not possible to create an other taglib > next to the presentation taglib. This taglib would be the data taglib, > and could be used as dataprovider for the presentation taglib. Still > having a controller is a good thing > for stuff like authorization and for global functions > ___ > Developers mailing list > Developers@lists.mmbase.org > http://lists.mmbase.org/mailman/listinfo/developers > ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers
[Developers] post developers meeting(presentation tags)
Hello , RvM taglib: RvM gave a great presentation about what is possible with the 2.4 servlet api his goals where to use a few simple tags, use jstl and the EL as much as possible. (only 3 tags !!). He also discussed the MVC approach. I missed that part of in the presentation of the presentation tags. If the data is to be fetched by the controller the tags should be even more simple jaco's simpletags http://www.dynasol.com/simpletags/1.1.2/ should be sufficient (and even better) because there is not logic in them. and is't possible to create things like a html table/calender. I think the presentation was great , but the examples not realistic. The mmbase taglibs make use of the hierarchy of the tags , thats on the the great powers of the taglib. This makes is easy to cut and past code around (no need to declare variables) other examples where false to can also be written as but that is almost never used because it requires to define a test variable. jtsp:forEach tags: the forEach tag can be useful. but when people start using it they will need the exact functions that are in the mmbase taglib -know the size of the list -know if the list is not empty -know if this is the first / last element those simple functions are not provided by the jstl (maybe the flow taglibs are for that purpose). We also discussed if it was not possible to create an other taglib next to the presentation taglib. This taglib would be the data taglib, and could be used as dataprovider for the presentation taglib. Still having a controller is a good thing for stuff like authorization and for global functions ___ Developers mailing list Developers@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/developers