Forum upgraded

Posts   
1  /  2
 
    
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39615
Joined: 17-Aug-2003
# Posted on: 16-Nov-2006 09:11:30   

omar wrote:

Truly awesome work. If you are going to release the source code for Hnd, does that mean that its legal for us to use it to build our own forums.

Absolutely. We're currently debating about which open source license to pick. As it's an example and also as the sourcecode should stay open, we're considering a copyleft license, e.g. GPL or MPL 1.1

Otis wrote:

for webapplications like this one, I'd consider this a good way to do things: use dynamic lists for often-read often changing data with data from multiple tables and calculated aggregates, and use entities where manipulation is performed. validation is outside the entities as webapps are mostly request-response (this one is) so validation is done early-on in the call chain, not later on in the lower regions of the tier stack. We use a BL tier and selfservicing, though don't use lazy loading so you can look at the code as how to use it with adapter.

Why did you choose to use SelfService over Adapter? Can you please elaborate more about "validation done early-on in the call chain, not later-on in the lower regions"?

In a webapp, the typical call chain is form post -> code behind routine(s) handling the form post (i.e. postback) -> call to lower layer (BL tier)-> call to db -> data returns to lower layer -> lower layer handles data and sends it to its caller -> data arrives in page codebehind and is bound to page.

Now, it's IMHO easier to do validation before the lower layer (BL tier). This way, you can anticipate better on what do when the validation fails. If you do it later on, it's a problem, because the code behind also has to build the form / page again, plus as the data always comes through the page's code, why not validate there already? Of course, if the validation is shared among a lot of pages, the validation should be centralized. Though that's what I meant with early on validation. simple_smile

And selfservicing over adapter: I started TinyForum (which was the base for the HnD code) back in november 2002, even before llblgen pro. When I had finished llblgen pro v1.0.2003.1, I ported some code over to llblgen pro code, and selfservicing was the only paradigm supported at that point. As the code was already there, it was easier to keep it instead of rework it to adapter.

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39615
Joined: 17-Aug-2003
# Posted on: 16-Nov-2006 11:35:33   

It seems that Request.Cookies only contains cookies with paths which match with the url based on casing.

So if I specify as path '/TinyForum', and you type: www.llblgen.com/tinyforum, it wont match and the cookie isn't loaded. disappointed

In a way understandable, but annoying as you cant tell request to get all cookies case insensitive.

So switching from anonymous to logged in won't always give you the right session start date, as logged in users are always tracked in the db, and anonymous aren't, but as explained above, the cookie path isn't always matching. I'm thinking about setting the path to '/', to avoid this, the cookie already has a unique name.

Frans Bouma | Lead developer LLBLGen Pro
PilotBob
User
Posts: 105
Joined: 29-Jul-2005
# Posted on: 16-Nov-2006 18:00:01   

Otis wrote:

Absolutely. We're currently debating about which open source license to pick. As it's an example and also as the sourcecode should stay open, we're considering a copyleft license, e.g. GPL or MPL 1.1

Have you looked at the Apache license? It is supposed impose less requirements than the GPL on people creating derivitive works.

Creative Commons also has some nice, easily understandably licenses too.

BOb

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39615
Joined: 17-Aug-2003
# Posted on: 16-Nov-2006 18:13:01   

PilotBob wrote:

Otis wrote:

Absolutely. We're currently debating about which open source license to pick. As it's an example and also as the sourcecode should stay open, we're considering a copyleft license, e.g. GPL or MPL 1.1

Have you looked at the Apache license? It is supposed impose less requirements than the GPL on people creating derivitive works.

Creative Commons also has some nice, easily understandably licenses too.

BOb

Well, in general I'm not that fond of copyleft licenses like GPL, but there's an exception: when the code is important, because it's an example. I don't mind people running it without paying me a cent, it's that changes to this code shouldn't dissapear, but stay out there as it's an example. So in this particular case, I'm thinking of a copyleft license.

One example is the UBB parser. It's a full UBB parser to XML, and you can use it in various things other than this forum. A copyleft license leaves it a bit restricted to what you can rip out of the sourcecode to re-use elsewhere, which in this particular case I want to limit abit.

One thing indeed is a derivative work and how intrusive the license should be on that. That's also why I think the MPL 1.1 (Mozilla public license for the people who wonder what the MPL is wink ) is best, as it's copyleft, so it keeps our code open, but also doesn't require additions (like a new theme for example, it uses asp.net 2.0 themes) to be open as well: people can distribute their own additions as closed. Changes to the original code of course have to be opened, but for this particular case I don't think that's particularly bad, after all, it's a free system and an example (which is also useful simple_smile )

I'll check out creative commons' license(s). All BSD2 based licenses are too weak for this particular case, so these won't do.

Frans Bouma | Lead developer LLBLGen Pro
PilotBob
User
Posts: 105
Joined: 29-Jul-2005
# Posted on: 16-Nov-2006 22:08:29   

Otis wrote:

the MPL is wink ) is best, as it's copyleft, so it keeps our code open, but also doesn't require additions (like a new theme for example, it uses asp.net 2.0 themes) to be open as well: people can distribute their own additions as closed. Changes to the original code of course have to be opened, but for this particular case I don't think that's particularly bad, after all, it's a free system and an example (which is also useful simple_smile )

Yes, I think that is part of the main difference between GPL and Apache (APL). With APL if you write some additional code to use with APL licensed code your code doesn't have to be APL.

I'm not a lawyer, nor do I play on on TV. wink

BOb

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39615
Joined: 17-Aug-2003
# Posted on: 17-Nov-2006 12:44:33   

PilotBob wrote:

Otis wrote:

the MPL is wink ) is best, as it's copyleft, so it keeps our code open, but also doesn't require additions (like a new theme for example, it uses asp.net 2.0 themes) to be open as well: people can distribute their own additions as closed. Changes to the original code of course have to be opened, but for this particular case I don't think that's particularly bad, after all, it's a free system and an example (which is also useful simple_smile )

Yes, I think that is part of the main difference between GPL and Apache (APL). With APL if you write some additional code to use with APL licensed code your code doesn't have to be APL.

I'm not a lawyer, nor do I play on on TV. wink

The APL also allows closed source changes which can then be distributed closed source if I'm not mistaken, something which I don't want for this particular project.

After discussing this with a good friend of mine who works on a lot of open source software (GPL and other licenses), I'm more and more convinced the GPL is best for this particular project, also because it's an application, so it's not as if you're using it in another app which would make the GPL viral, it's already a standalone app.

Frans Bouma | Lead developer LLBLGen Pro
Answer
User
Posts: 363
Joined: 28-Jun-2004
# Posted on: 18-Nov-2006 01:12:18   

Correct me if i am wrong, but the GPL will not allow me to do this,

Lets say i want to change the code so that i can integrate it into another app, IE, use the users from an ecommerce site....this might be a weak example, but hopefully you get the idea...

With the GPL i would have to provide those changes in source form correct? which is something that of course that i dont want to do....

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39615
Joined: 17-Aug-2003
# Posted on: 18-Nov-2006 08:59:48   

Answer wrote:

Correct me if i am wrong, but the GPL will not allow me to do this,

Lets say i want to change the code so that i can integrate it into another app, IE, use the users from an ecommerce site....this might be a weak example, but hopefully you get the idea...

With the GPL i would have to provide those changes in source form correct? which is something that of course that i dont want to do....

You change something to HnD's code, which runs in its own virtual folder, so it's a standalone app, and if you then distribute your entire app, you've to distribute the changes you made to HnD in sourcecode. That's indeed a limitation, but intended: the forum cost a lot of time to make, and we didn't work on it to just give away, we meant it to be a real-life example which is also really useful. So yes, you've to distribute the sourcecode of the changes to HnD as well, though not your own site, as that's a different app.

The only way you would not have to do that is by us not using a copyleft license, which would result in closed source distributions of our work pretty soon. For this particular project I don't want that, as it's an example project and also we don't give away a lot of work for free to just see it become a closed source project so it will mitigate the sole reason why we give it away in sourceform simple_smile

However, as said: you make changes to the forum code, so only these changes have to be distributed in source form, not your own app's code. THat's a different app.

As we're the copyrightholders, you can always negociate with us a different license if you want to, but that's not our goal.

Frans Bouma | Lead developer LLBLGen Pro
Answer
User
Posts: 363
Joined: 28-Jun-2004
# Posted on: 19-Nov-2006 19:33:17   

Yeah, i understand your POV...

how exactly would we have to make the source available? Like, how would someone else go about obtaining say changes i made?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39615
Joined: 17-Aug-2003
# Posted on: 19-Nov-2006 22:21:06   

Answer wrote:

Yeah, i understand your POV...

how exactly would we have to make the source available? Like, how would someone else go about obtaining say changes i made?

The license only says that you have to open the sourcecode if you distribute it, so if you distribute it publicly, you've to distribute the source publicly (and then your chances are known), if you're distributing the app privately to your customer, the customer is entitled to the source and can ask you for it.

A copyleft license leads to less proprietry forking than say a bsd based license. This means that if people change the source, they're more willing to send the project maintainer the patches so the changes are included in the public sourcetree so they will get the changes automatically next time they upgrade. With proprietry forking (you download the initial source and from then on that's your code you work on, you don't share changes), you don't have that often as you already work on the code as if it's your code.

Frans Bouma | Lead developer LLBLGen Pro
1  /  2