You're still confusing your rights and someone elses rights. You have all the right in the world to distribute your code. You do not have any rights to distribute someone elses code. Therefore, the thing that is supposedly "removing" your right is actually no such thing - the sticking point is that you do not have, and never had, the right to distribute anyone elses code. You're thinking of your rights as applying to a whole, which they do not and never have. The right of control to the whole is the union of the rights to the parts. If the whole is not soley yours, then you don't have a right of control. And more importantly, you *never did*. Your rights are not restricted.
We add a line of code that requires a per copy licence fee. We no longer have the right to use that code without paying the fee.
This line perfectly describes your confusion. It's wrong. You have every right to use *your* code without paying a fee. You have no right to use that 1 line of code without paying a fee. There is not just one "code" that was yours and becomes not yours - there's simply the aggregation of all the code. When the "whole" that you're talking about is your code + someone elses code it should be obvious that it's not wholey yours. Your rights to your own code are never restricted. I don't know how to be any more clear here. Whats supposedly stopping you from distributing your "own" code is the other code you're trying to distribute with it. You can't distribute OTHER peoples code without permission, pure and simple, and thats all thats happening with the GPL.
The point about removing the line of GPL code is true, but has nothing to do with your rights over the code, and it's not the GPL affecting that. Basically you're saying that you can't retroactively re-license your code, which is true with pretty much everything.
Maybe one more analagy will make it clear.
Lets say you have a bag of apples. If I ask you for an apple, you can give me an apple or not, as you desire. Now lets say you license a caramel-apple-maker from someone and he says you have to give him a quarter for each caramel apple you give away. If I ask you for an apple, you can still give me an apple. Those are your apples. But you can't give me a caramel apple, because the guy who owns the caramel wants his quarter. Thats his caramel. You can't give me his caramel without agreeing to his terms. Sure, you own the apple thats under the caramel - but you can't give it to me with the caramel on it, because you don't own the whole candy apple. You only own the plain apple part.
No. If you create a derived work of a GPL product - or, for that matter *any* copyrighted work - you have no distribution right. Period. You may aquire such a right via licensing, but you do not "lose" it, because you never had it. The hyothetical situaion you imply, where you have an application that you suddenly lose rights to because you include GPL code, isn't accurate and doesn't match reality. You always have full rights over your own code. When you "lose" the rights is when what you're distributing isn't yours anymore - for example, when you include GPL code. The hypothetical application *isn't yours*, and you never had the right to distribute it in that form. It's like making an album, and then taking another bands album onto the end. You always have the rights to *your* album. But you do not, and never did, have the right to distribute your album AND the other bands album.
If you could compile a version of your application which contained no GPL code, then you could distribute that all you want - thats yours, and you have the rights to it. You're claiming that somehow you lose rights because you can't distribute GPL code alongside yours, which is false. Do you feel that you lose rights because you can't distribute your application without having paid money to commercial library vendors? It's the same thing. You aren't losing a right because you never had one in the first place.
Of course, if you actually read the EULA for the Beta (including the Express edition Betas), you'll see that they're distributed for informational and testing purposes only, and you're specifically excluded from distributing anything you compile with them, or for using them for commercial applications. So while you may be able to (for a limited time) get the software for "free", you most certainly cannot use them as a free platform for Windows Mobile development.
We do. I just disagree with the suggestion that the GPL is the only license that grants rights. I argue that in some cases it takes away rights.
It's certainly not the only license that grants rights - when stated like this, people are normally comparing the GPL to an EULA from a users perspective, rather than to a commercial library license from a developers perspective. However, it does *not* take away rights. Ever. If you're creating a derived work, you *never* had the right to distribute that work. This, of course, is true of any license for a software library - it'd be pretty useless otherwise. From a developers perspective, the GPL restricts the developer in order to presever the freedom of the user. This is something that a great many people do not understand, and many people who do understand it don't like it because they want to sell closed source applications. Which is fine with me, as far as it goes, because I'm not as extreme as RMS is. But understanding why the GPL does what it does is important to using it properly.
Quite a few licenses are incompatible with each other. But you're missing one of the major points of the GPL. Which is fine, since you aren't interested in using it. But anyway. The creators of the GPL, and many(most?) of the programmers using it, believe that open source is better than closed source - not that it generates better code, or as a development technique, neccesarily. But that an application you have the source to is better than an application you don't have the source to. Like a car you can fix yourself rather than a car you have to take to a dealership. The GPL is designed to retain this freedom for software USERS, which is why it is, intentionally, incompatible with other licenses that prevent you from releasing source. Such a license would defeat the purpose of the GPL. Naturally, if you want to create software that relies on closed source components, the GPL will seem restricting to you.
By the way, quite a few licenses restrict what you can and cannot do with the resulting work. I've seen several commercial licenses that prevent you from releasing your source code. Heck, thats exactly what SCOs take on the original UNIX license is. I've seen (many) component-ware licenses (ActiveX controls and the like) that forbid you from release products that use them as freeware or open source, even if the control is royalty-free. Many licenses forbid you from exposing the functionality of the library to user code - the Qt license is a good example. You can't use a commercial Qt license to simply write a wrapper layer around Qt and expose the functionality to your users. It's not common now, but licenses for compilers and associated libraries, like the C standard library, contained clauses preventing you from using them to create competing products.
I'm curious what kind of libraries you're using where theres no GPL/open source equivilent. Perhaps not as good, or as polished. But none? Certainly all the tools/libraries you'd want for normal off-the-shelf application development are there.
Lastly, I find it amusing and somewhat sad, although not entirely suprising, that the idea that people will react badly to you violating the license is considered a problem with the license.
This is something that could use some clarification, but my reading of is that you have to provide the source to any third party. You indicate your willingness to do this by putting a notice in your packaging. A third party without your product is entitled to the source - presumably, this is because they could have recieved the binary from someone who got the binary (but not the source) from you. It's strange to me that people do this when you can just include a CD with the source on it with your product.
And yet, in this very thread you've proven that your spelling ability is even worse than the GPs. So by your own standard, you must have even less experience working at a university than you do. Which is good, because he's right and you're wrong anyway.
It's safer for the company, too, because you can't come back with a wrongful termination suit if you weren't terminated. Being asked to resign is essentially the company paying you to leave.
His lecture wasn't denied twice, and if he was fired over it he'd have an open and shut wrongful termination suit, assuming that they have such a thing in Spain. His *request for a venue* was denied twice. So he gave the lecture in a place where he didn't have to ask for permission. As a trivial example, you get turned down twice trying to reserve a school field for your baseball game. So you have it at the next door park instead, where you don't have to ask.
I don't think he meant your IDE writing that block for you. I think he meant your IDE retrieving that information for you. Tools to get a list of callers/calless from code have existed for decades. Listing the parameters of a function is even easier. The only thing you're missing is the description of what each parameter does, which a) the need for can be vastly reduced with careful naming and b) can be easily documented per-parameter, and a good IDE/object browser can even show you those comments. If you're maintaing all that information like a call tree by hand, you're wasting a lot of time. Sharpen the saw, man.
and speculating falsely about something that can effect stock prices is prosecutable, by the way
I am almost positive that this is total bunk, unless you're an insider or have access to insider information. Certainly as you phrase it it's untrue - otherwise it'd be illegal to speculate on the outcome of litigation. Or the merit of a new product. Or the potential success of an advertising campaign. Or whether or not the AC on the trading floor is broken.
Theres a fine line between protecting yourself from the rare case that someone is/becomes unhinged, and letting these "protections" become the sort of annoying, morale-draining, hate-inducing petty nazism we all know and love.
Of course, if people like you, you're more likely to get laid off gently. When the office asshole was fired, they waited for him to go to lunch, revoked all his passwords and user ids, collected his PC, and revoked his access badge. He was met by security on his way back into the building after lunch, escorted to his desk to get his things, and then taken right back out.
Patents cover end users, as well (no fair use in the patent world). So, if, for example, GCC shipped an infringing version, users of GCC would be liable as well as the GCC project itself (this is where the indemnification the SCO guys were always blathering about comes in). Borland would have to essentially give up it's patent rights in order to allow a free project like GCC to support SEH.
I think a more obvious answer here is that GWA is exposing web security bugs on a wide variety of applications. It's worth noting that if GWA can compromise your security, then it can be done intentionally as well. Which is not to say that caching issues should be ignored, or that there may not be a real problem with users getting some other users cookies. But if GWA can seriously affect your website, then instead of bitching that GWA is breaking your website like SomethingAwful did, you need to realize that your security was already flawed and you need to fix it.
There's more than one loophole. The one that jumps out at me is the removal of the phrase "natural explanation", which precludes supernatural explanations like intelligent design or creationism.
So, what you're saying is that TigerDirect is a bunch of whiny bastards? Theres a bookstore called the Bookloft. There's actually a whole bunch of them. There's a product called the Bookloft which is a shelving system. One is a product. One is a business. Most people are not especially confused. What TigerDirect is doing is looking for a handout because they're expecting that Apple won't risk an injuction at a really critical moment.
It's a good thing Apple doesn't have a "Tiger Online Store", then. Because TigerDirects trademark is on it's business, whereas Apple is calling a product tiger. TigerDirect does not sell a "Tiger" branded OS - they sell Tiger branded PCs, although it's a really minor sideline. And they don't have a trademark on selling Tiger branded product. This suit is a huge stretch by TigerDirect, and it'll be (yet another) sad day for trademark law if they win.
It's pretty common to use signed ints to allow for the easy use of magic numbers like -1. It might even have been simpler - assume a function like changeCrew(), which returns the number of crew changes or a negative error code. It's unfortunate that this sort of thing gets done in high reliability enterprise systems, because the alternatives are more robust even if they are more awkward to use, but they're such common C idioms that I suppose it's to be expected.
It's not quite that open and shut, but the GP is totally correct that the reason they're waiting till right now is to ensure that Apple won't try to fight it out, but will just toss them some money.
Don't forget that it's a shield against not-so-frivolous lawsuits, too, as well as a widespread social acceptance of immoral or even sociopathic behavior. The freedom we grant to the almighty corporation, both legally and socially, are ridiculous. "Corporations" don't make decisions, people do - holding people responsible for decisions is important and doing it might help curb some of the more extreme abuses we see.
You only get the opportuntity to clean up if you catch the exception. Terminating your method by throwing an exception does not give you the opportunity to clean up after the error condition.
RAII is used specifically to address this. If you don't know what it is, you've got no business writing C++ code with exceptions anyway. The typical use of GOTO in C code (see the Linux kernel for some good examples) is to simulate this sort of handling - you do some stuff, something fails, so you jump to cleanup and return. In C++, you create objects to manage the lifetime of whatever work you're doing (these are generally lightweight objects created on the stack, and therefore no real performance hit), and in an error condition all you have to do is return - cleanup code is automatically executed when you leave the block.
SEH is a specific mechanism, which is actually intended to be used from C, although I believe the MS compiler implements C++ exceptions on top of SEH. It's not really relevent, unless you make a point of using SEH instead of the language level exception mechanism, in which case you should expect to deal with the C legacy crap problems.
Exceptions shouldn't be used to terminate normal flow for many of the same reasons you shouldn't use GOTO - it's harder to reason where the code goes. Exceptions are for exceptional circumstances, although there's a great amount of debate over how exceptional something needs to be before you throw. I tend closer to trivial than you do, although not as much as Java does.
CSS *was* created by morons. The terrible existing implementations drag it down even further, but 100% compliant CSS 1 is totally useless for more than trivial layout. 100% compliant CSS 2 is just barely adequate. 100% compliant CSS 3 (5 years out, at best) is about the minimum you would need to approach the styling abilities of TeX. Furthermore, the idiotic cascade model of CSS means you have all these ridiculous selectors (most of which don't work in current implementations), which means you end up filling your page with all sorts of *non-semantic* markup just to get your page to render right - because you need "hooks" for the CSS. I do not understand how all these self-righteous morons who blather about the semantic web and "valid XTHML only" can, with a straigh face, tell me that their 8 level nested divs are some sort of improvement over table based layouts. If we all accepted the fact that HTML is a rich text markup language (and always has been) and not a semantic markup language, then maybe we could move forward. If you want semantic markup, store it in XML and do a transform to get your rendered output.
Theres a couple differences between this and sex.com:
1) The original of sex.com is quite wealthy in his own right (porn king) and was able to pursue years of litigation and
2) The sex.com domain was immensely lucrative, worth over a million dollars a year in advertising revenue. Payment for this lost money was the majority of the damages the original owner received.
We add a line of code that requires a per copy licence fee. We no longer have the right to use that code without paying the fee.
This line perfectly describes your confusion. It's wrong. You have every right to use *your* code without paying a fee. You have no right to use that 1 line of code without paying a fee. There is not just one "code" that was yours and becomes not yours - there's simply the aggregation of all the code. When the "whole" that you're talking about is your code + someone elses code it should be obvious that it's not wholey yours. Your rights to your own code are never restricted. I don't know how to be any more clear here. Whats supposedly stopping you from distributing your "own" code is the other code you're trying to distribute with it. You can't distribute OTHER peoples code without permission, pure and simple, and thats all thats happening with the GPL.
The point about removing the line of GPL code is true, but has nothing to do with your rights over the code, and it's not the GPL affecting that. Basically you're saying that you can't retroactively re-license your code, which is true with pretty much everything.
Maybe one more analagy will make it clear. Lets say you have a bag of apples. If I ask you for an apple, you can give me an apple or not, as you desire. Now lets say you license a caramel-apple-maker from someone and he says you have to give him a quarter for each caramel apple you give away. If I ask you for an apple, you can still give me an apple. Those are your apples. But you can't give me a caramel apple, because the guy who owns the caramel wants his quarter. Thats his caramel. You can't give me his caramel without agreeing to his terms. Sure, you own the apple thats under the caramel - but you can't give it to me with the caramel on it, because you don't own the whole candy apple. You only own the plain apple part.
If you could compile a version of your application which contained no GPL code, then you could distribute that all you want - thats yours, and you have the rights to it. You're claiming that somehow you lose rights because you can't distribute GPL code alongside yours, which is false. Do you feel that you lose rights because you can't distribute your application without having paid money to commercial library vendors? It's the same thing. You aren't losing a right because you never had one in the first place.
Of course, if you actually read the EULA for the Beta (including the Express edition Betas), you'll see that they're distributed for informational and testing purposes only, and you're specifically excluded from distributing anything you compile with them, or for using them for commercial applications. So while you may be able to (for a limited time) get the software for "free", you most certainly cannot use them as a free platform for Windows Mobile development.
It's certainly not the only license that grants rights - when stated like this, people are normally comparing the GPL to an EULA from a users perspective, rather than to a commercial library license from a developers perspective. However, it does *not* take away rights. Ever. If you're creating a derived work, you *never* had the right to distribute that work. This, of course, is true of any license for a software library - it'd be pretty useless otherwise. From a developers perspective, the GPL restricts the developer in order to presever the freedom of the user. This is something that a great many people do not understand, and many people who do understand it don't like it because they want to sell closed source applications. Which is fine with me, as far as it goes, because I'm not as extreme as RMS is. But understanding why the GPL does what it does is important to using it properly.
By the way, quite a few licenses restrict what you can and cannot do with the resulting work. I've seen several commercial licenses that prevent you from releasing your source code. Heck, thats exactly what SCOs take on the original UNIX license is. I've seen (many) component-ware licenses (ActiveX controls and the like) that forbid you from release products that use them as freeware or open source, even if the control is royalty-free. Many licenses forbid you from exposing the functionality of the library to user code - the Qt license is a good example. You can't use a commercial Qt license to simply write a wrapper layer around Qt and expose the functionality to your users. It's not common now, but licenses for compilers and associated libraries, like the C standard library, contained clauses preventing you from using them to create competing products.
I'm curious what kind of libraries you're using where theres no GPL/open source equivilent. Perhaps not as good, or as polished. But none? Certainly all the tools/libraries you'd want for normal off-the-shelf application development are there.
Lastly, I find it amusing and somewhat sad, although not entirely suprising, that the idea that people will react badly to you violating the license is considered a problem with the license.
FYI: Parent is a standard cut & paste troll that gets posted in pretty much any Linux/GPL related story.
This is something that could use some clarification, but my reading of is that you have to provide the source to any third party. You indicate your willingness to do this by putting a notice in your packaging. A third party without your product is entitled to the source - presumably, this is because they could have recieved the binary from someone who got the binary (but not the source) from you. It's strange to me that people do this when you can just include a CD with the source on it with your product.
And yet, in this very thread you've proven that your spelling ability is even worse than the GPs. So by your own standard, you must have even less experience working at a university than you do. Which is good, because he's right and you're wrong anyway.
It's safer for the company, too, because you can't come back with a wrongful termination suit if you weren't terminated. Being asked to resign is essentially the company paying you to leave.
His lecture wasn't denied twice, and if he was fired over it he'd have an open and shut wrongful termination suit, assuming that they have such a thing in Spain. His *request for a venue* was denied twice. So he gave the lecture in a place where he didn't have to ask for permission. As a trivial example, you get turned down twice trying to reserve a school field for your baseball game. So you have it at the next door park instead, where you don't have to ask.
I don't think he meant your IDE writing that block for you. I think he meant your IDE retrieving that information for you. Tools to get a list of callers/calless from code have existed for decades. Listing the parameters of a function is even easier. The only thing you're missing is the description of what each parameter does, which a) the need for can be vastly reduced with careful naming and b) can be easily documented per-parameter, and a good IDE/object browser can even show you those comments. If you're maintaing all that information like a call tree by hand, you're wasting a lot of time. Sharpen the saw, man.
I am almost positive that this is total bunk, unless you're an insider or have access to insider information. Certainly as you phrase it it's untrue - otherwise it'd be illegal to speculate on the outcome of litigation. Or the merit of a new product. Or the potential success of an advertising campaign. Or whether or not the AC on the trading floor is broken.
Prepare to be suprised. It's not even as compliant as IE, overall. It doesn't have nearly the manpower that any of the major browers do.
Theres a fine line between protecting yourself from the rare case that someone is/becomes unhinged, and letting these "protections" become the sort of annoying, morale-draining, hate-inducing petty nazism we all know and love. Of course, if people like you, you're more likely to get laid off gently. When the office asshole was fired, they waited for him to go to lunch, revoked all his passwords and user ids, collected his PC, and revoked his access badge. He was met by security on his way back into the building after lunch, escorted to his desk to get his things, and then taken right back out.
Patents cover end users, as well (no fair use in the patent world). So, if, for example, GCC shipped an infringing version, users of GCC would be liable as well as the GCC project itself (this is where the indemnification the SCO guys were always blathering about comes in). Borland would have to essentially give up it's patent rights in order to allow a free project like GCC to support SEH.
I think a more obvious answer here is that GWA is exposing web security bugs on a wide variety of applications. It's worth noting that if GWA can compromise your security, then it can be done intentionally as well. Which is not to say that caching issues should be ignored, or that there may not be a real problem with users getting some other users cookies. But if GWA can seriously affect your website, then instead of bitching that GWA is breaking your website like SomethingAwful did, you need to realize that your security was already flawed and you need to fix it.
There's more than one loophole. The one that jumps out at me is the removal of the phrase "natural explanation", which precludes supernatural explanations like intelligent design or creationism.
So, what you're saying is that TigerDirect is a bunch of whiny bastards? Theres a bookstore called the Bookloft. There's actually a whole bunch of them. There's a product called the Bookloft which is a shelving system. One is a product. One is a business. Most people are not especially confused. What TigerDirect is doing is looking for a handout because they're expecting that Apple won't risk an injuction at a really critical moment.
It's a good thing Apple doesn't have a "Tiger Online Store", then. Because TigerDirects trademark is on it's business, whereas Apple is calling a product tiger. TigerDirect does not sell a "Tiger" branded OS - they sell Tiger branded PCs, although it's a really minor sideline. And they don't have a trademark on selling Tiger branded product. This suit is a huge stretch by TigerDirect, and it'll be (yet another) sad day for trademark law if they win.
It's pretty common to use signed ints to allow for the easy use of magic numbers like -1. It might even have been simpler - assume a function like changeCrew(), which returns the number of crew changes or a negative error code. It's unfortunate that this sort of thing gets done in high reliability enterprise systems, because the alternatives are more robust even if they are more awkward to use, but they're such common C idioms that I suppose it's to be expected.
It's not quite that open and shut, but the GP is totally correct that the reason they're waiting till right now is to ensure that Apple won't try to fight it out, but will just toss them some money.
Don't forget that it's a shield against not-so-frivolous lawsuits, too, as well as a widespread social acceptance of immoral or even sociopathic behavior. The freedom we grant to the almighty corporation, both legally and socially, are ridiculous. "Corporations" don't make decisions, people do - holding people responsible for decisions is important and doing it might help curb some of the more extreme abuses we see.
RAII is used specifically to address this. If you don't know what it is, you've got no business writing C++ code with exceptions anyway. The typical use of GOTO in C code (see the Linux kernel for some good examples) is to simulate this sort of handling - you do some stuff, something fails, so you jump to cleanup and return. In C++, you create objects to manage the lifetime of whatever work you're doing (these are generally lightweight objects created on the stack, and therefore no real performance hit), and in an error condition all you have to do is return - cleanup code is automatically executed when you leave the block.
SEH is a specific mechanism, which is actually intended to be used from C, although I believe the MS compiler implements C++ exceptions on top of SEH. It's not really relevent, unless you make a point of using SEH instead of the language level exception mechanism, in which case you should expect to deal with the C legacy crap problems.
Exceptions shouldn't be used to terminate normal flow for many of the same reasons you shouldn't use GOTO - it's harder to reason where the code goes. Exceptions are for exceptional circumstances, although there's a great amount of debate over how exceptional something needs to be before you throw. I tend closer to trivial than you do, although not as much as Java does.
CSS *was* created by morons. The terrible existing implementations drag it down even further, but 100% compliant CSS 1 is totally useless for more than trivial layout. 100% compliant CSS 2 is just barely adequate. 100% compliant CSS 3 (5 years out, at best) is about the minimum you would need to approach the styling abilities of TeX. Furthermore, the idiotic cascade model of CSS means you have all these ridiculous selectors (most of which don't work in current implementations), which means you end up filling your page with all sorts of *non-semantic* markup just to get your page to render right - because you need "hooks" for the CSS. I do not understand how all these self-righteous morons who blather about the semantic web and "valid XTHML only" can, with a straigh face, tell me that their 8 level nested divs are some sort of improvement over table based layouts. If we all accepted the fact that HTML is a rich text markup language (and always has been) and not a semantic markup language, then maybe we could move forward. If you want semantic markup, store it in XML and do a transform to get your rendered output.
1) The original of sex.com is quite wealthy in his own right (porn king) and was able to pursue years of litigation and
2) The sex.com domain was immensely lucrative, worth over a million dollars a year in advertising revenue. Payment for this lost money was the majority of the damages the original owner received.