From: Leif W <war...@us...> - 2004-10-18 22:44:11
|
Congratulations! > ----- Original Message ----- > From: "Clemens Eisserer" <lin...@we...> > To: <dyn...@li...> > Sent: Monday, October 18, 2004 14:29 > Subject: it WORKS - Re: [Dynapi-Help] Need some help with IOElement, please. > > Not really needed now, however I dont want to stop you if you planed to > test with it. Well, I've been curious for years but if I don't actually decide to do it at some point, I'll never find the time. :p it's just coincidence. > It would be maybe better to catch Exceptions and write it into the > logger - should I add this? I can't speak in specific, but in general, if it helps debug something to either log on the server, or encapsulate and send to the browser, then it may be helpful. I'd probably be very paranoid about what I send to a browser for security reasons, or else give away too much info about the server side things. Probably best to have a generic error message (or table of messages, "file permissions", "code syntax error", "network timeout", etc.) sent to browser, and the specific information logged somewhere reasonably secure on the server. > PS: I have one question about licensing. > I want to use DynApi in an half/half project: Code that stands under GPL > may use it for free but others should pay a small fee. Is this O.K. with > dynapi (not only licensing - but aren't developers angry about that?). > What I want to do should be quite a small breakthrough in client/server > programming, however I may not tell more :-( Ehh, I tend to ramble abut the GPL, this message could get long. First I'd suggest reading the GPL and LGPL more thoroughly, maybe look for a translation if parts are unclear. I'm not exactly a lawyer, but tend to be a GPL zealot. :-) The DynAPI is LGPL. I'm not exactly a lawyer so this may or may not be legally correct, may be too strict, but I do think it would be in full compliance with GPL. Generally it is my understanding that the GPL allows you to do some things, requires you to do other things, and prevents you from doing certain things. * It allows you to take GPL code, make whatever modifications you want, sell for as much as you can get. If you have done something unique and you are in a position to get paid, then you have a right to get what you can. :-) * It requires you to release all your code under the GPL (no exceptions), to keep the GPL copyright notices in each original and modified or derivative file, to give full credit to the original authors at least in each source file (i.e. if there are author's listed in code comments, just leave them there), to clearly state that it is GPL software (in the product itself, on the distribution channels, or at the very least by leaving all the licenses in the code comments intact), and to provide FREE access to your modified source code upon request (usually by submitting patches to the main project, or providing web or FTP access to your modifications). * It prevents you from calling the derived work your own original work, prevents you from hiding any modifications you have made and prevents you from removing the GPL, prevents you from preventing others these same rights that were freely given to you. There's also the LGPL, which I've heard called either the Lesser GPL or the Library GPL, which is what it is conceptually, and what it is typically used for, respectively. That allows more flexibility so you can write a non-free application using the library, yet keep the library free. In this case, you obviously would keep your private data and business logic separate from the API. If you need a feature in the API, you add a generic solution which everyone could use, and let others know here, and people will play with it and break it and fix it and generally have fun. :-) Or perhaps you develop your own non-free API which calls the unmodified DynAPI, which may be less efficient. But the same laws of tainting apply: a coder can't directly submit GPL code after looking at non-free code, so too you can't look at GPL code and turn and use the exact same technique and call it non-free. Maybe it's commonly done but it's just not right and helps no-one. GPL coders get around the problem by having two groups: one person becomes tainted, learns the non-free code, codes nothing, but instead writes down a specification or a general description which is somewhat original, then this document is sent to the coding group, which writes original code. :-) You can imagine the extra work involved. Develop your own API, and think how much longer it will take, and how much money that costs, it pushes back the project until maybe the client goes somewhere else. Now think of the people who did all the work and didn't even ask for any money and offer it for free to you. You can simultaneously save time and show appreciation by starting with GPL software, adding for your needs, and returning the modifications. :-) Most clients won't even understand the code or the difference between licenses,but will be scared and prejudiced against anything "free". They won't be able to do it themselves, so they have to pay someone who knows how to code, to build the site. It's "Free Software, not Free Beer", is the common phrase. Competitive businesses may learn how to do this unique thing you are doing, and may use it on their site, and eventually you'renot just unique, but a worldwide internet phenomenon. ;-) That is called progress, which is good, as it can change the world and benefit everyone, a little at a time. The valid concern for businesses is to make enough money to offset the initial development costs before the competition steals the technology, improves it and undercuts your price. But if the service or feature makes website use easier or more efficient or more powerful for the user, then the user will keep using the website no matter what the liecense, which could have tremendous positive effect for revenue if it's ecommerce or subscription driven. :-) And so what if someone else does the same thing. It just means you have to do it better, which is the essence of competition and progress. It is a process that continues for life, not a mountain you climb once and never slide down. > Of course I am willed to help dynapi te become even better, fix bugs > etc. For now I am not very happy with javascript because I come from the > java-world but after some time JS should be quite normal for me. JavaScript is very ugly sometimes. It's slow (when you use more than a few dozen layers), buggy, has minimalistic debugging ability (even in Firefox 1.0PR1 many syntax errors aren't even reported), not always consistent across browsers (a bloody nightmare), has limitations on what data it can access (for security reasons), and as you've discovered, can be a nightmare to debug when talking to server-side applications ("Live HTTP Headers" plugin may or may not offer some help). > E.G. I plan to create a table-widget (table with add, get, remove, ....) > which I also of course plan to contribute back. > The issue with IOElement and opera, konqueror is also in my interrest to Sounds cool! > be solved, I just say this to tell you that I also want to give > something back and not only want to use dynapi code. It will be a > library but not a rival - it has a quite diffenet goal. I'm not sure what you mean, and you may not wish to describe in any more detail due to business plans, non-disclosure agreements and business men with money to give you and lawyers to watch over you. ;-) The LGPL definition in the LICENSE file describes the LGPL best. ;-) It's difficult to understand without at least 100 lawyer-years of experience (10 lawyers with 10 years experience each). ANything outside of the scope of the GPL or LGPL just makes a nightmare for everyone, lawyers need to get involed to even understand what anything means, lawyers tend to be greedy and selfish and may misrepresent either side as greedy or selfish and create more problems than anything. A compromise of some sort of limited restriction would be ideal, where one business entity could purchase "time" from the project, and the coders split the money based on their contributions to the code in question, and could modify GPL or LGPL code, and the company keeps the modified code for no more than 3 months or 6 months to recover well-earned development money, and then all modifications manditorily become GPL or LGPL again. But setting up such a legal agreement would add so many lawyer costs to outweigh the benefits, and progress and development would lag 3-6 months ormore, which is an eternity online. Leif > I thought it would be better to ask before coding instead to make > developers angry. Always a good idea. :-) > Do you think this would be o.k? I have no idea. :p Others have ideas? I wonder if the Free Software Foundation has tutorials, FAQs, or other assistive resources to help people better understand the GPL and LGPL. It doesn't make much sense for JavaScript to be proprietary because full source code is always distributed and always obtainable every time the page is accessed. :p The server-side libraries are another matter. Java can be obfuscated but can be reverse engineered much easier than other machine-dependent compiled languages. So for applets, I consider them potentially accessible to the public because there's no absolute method to hiding the code. Leif |