Meh... I tried it in Opera just to see what would happen. It opens a flickering pop-up (singular -- not multiple) and manages to play the "I'm looking at gay porno" through the speakers. All that was necessary to fix it was a "close window" gesture.
Because by default, Windows 2K/XP comes with three scripting languages: cmd.exe (useful, but not COM-enabled), VBScript, and Javascript (well, technically it's "JScript", which is Microsoft's embraced and extended version of Javascript). I'd sooner scratch out my eyes than use VBScript for anything longer than five lines, so Javascript it is.
For example, some corporate environments think that disabling all the programs in system32 to be a "security feature"... which means you can't do things like fix corrupt registry entries in your own HKCU hive! So I wrote a command-line registry editor (similar to reg.exe) in Javascript+WSH+WMI. I also used it to write a little utility that basically replicated the remote installation feature of SMS. Except mine doesn't break all the fucking time on networks that aren't always up (SMS server was separated from all the clients by a TACLANE that's only brought up as-needed).
Oh, and I wrote a DB app in Javascript that just happened to use a browser for a GUI (but there was no webserver middle-ware). Again, mostly because I loathe anything VB-related (such as VBA usually used to script Access). See http://www.kuro5hin.org/story/2005/7/14/13942/7643.
He said the feature is "guaranteed to be misused". This has two possible meanings: 1. The feature will be misused every single time. There is NO POSSIBLE correct use. 2. The feature will be misused at least once.
Meaning 1 is completely indefensible, and the author doesn't even make an effort at substantiating it. He provides exactly one example of misuse. Chances that meaning 1 were intended: slim to none.
Meaning 2, on the other hand, actually fits with the rest of the article.
As the number of uses of a feature increases, the chance of a misusable feature actually being misused approaches unity. Therefore, any feature which CAN be misused, WILL be misused eventually. QED.
Grand-parent gave an example of built-in operator overloading, not user-defined operator overloading. So no, it isn't "obvious" that he means user-defined operator overloading.
From the linked-to article: Features that are guaranteed to be misused should be eliminated.
What a load of utter bollocks! Show me a feature that cannot be misused, and I'll show you a feature that isn't terribly useful.
If you dont know the difference between a group, a ring, and a field, you have no business overloading operators.
What an arrogant asshole! That's as non-sensical as an assertion that only parents have any business creating class hierarchies.
You're mostly wrong. You're technically right, but only because grandparent mentioned one directory too far up the tree. There is a directory that stores user data and configuration info, it's just not My Documents.
"c:\documents and settings\username" is what you want (commonly called the "profile"). Of course, you can change the location where profiles are stored -- I just gave the default. "My Documents" is a subdirectory under the profile directory, and the user's HKCU registry hive is even stored inside the profile.
They should get a massive loan from JP Morgan to keep themselves solvent. The bank wouldn't normally want to do this, of course, so have the Federal Reserve (read: the taxpayers) hold the collateral (read: bear all the risk).
Remember, that wouldn't be a "bail-out" but sound economic policy. We can't have all the counties going bankrupt like dominoes.
Now, I should note that they have configured a demo system for this client to use on the client's hardware. While I am most definitely not a lawyer, that could be construed as "distribution"
I think it certainly qualifies as distribution.
It seems that your recommendation (along with many others) is to just forget about it or to hire a lawyer.
My advice is to find out what they give to their customers. The lack of documentation in the demo install may have been an oversight; the only way to find out is to see a full installation.
You can disagree all you want; you're wrong. This isn't a matter of opinion, but of what the GPL says.
You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
Only recipients of the program have any rights under the GPL. If you are a potential recipient but haven't actually received anything yet, you're still not a recipient.
If you're going to continue the argument, please provide actual quotes (not made-up ones like in your earlier post) from the GPLv2 which supports your claim. (Hint: You won't find any.)
Potential customers don't have any rights under the GPL, so no notification is necessary. Only actual customers have rights under the GPL. Until you talk to an actual customer, you're wasting your time.
Earlier, you said, "Anytime you end up with something you didn't pay for, it's theft."
Later, you say, things like "it's okay if you cite a little bit" or "you didn't agree to pay before hand" or "but that's not illegal". So what?! You made a big deal of taking the moral high ground and screw all of us for seeing shades of grey. You said very clearly that ANYTIME you end up with something you didn't pay for, it's theft.
And now you're backpedalling, as expected. (And hurling insults to boot. Don't get mad at me because you made a ridiculous claim.)
Anytime you end up with something you didn't pay for, it's theft. Everyone focuses on the method of obtaining...[and not the lack of payment]
I imagine you'd feel that blocking advertisements with a proxy or similar would be stealing. If I don't install Flash, am I "stealing" from sites that have Flash-based ads? If I choose not to display/any/ images, am I "stealing" from all the sites with banner ads? If I'm browsing with Lynx (and thus can't display images), is it still stealing? What if I display the images and just choose to ignore them?
Do you ever borrow a book, CD, or movie from a friend or the library? THIEF! Do you ever skip the previews (aka commercials) on a DVD? THIEF! Do you ever get up to use the bathroom during TV commercials? THIEF! Do you ever pay your credit card bill in full, thereby depriving the CC company of any interest for their loan? THIEF! Have you ever walked by a street musician without dropping money in the case? THIEF! Have you ever written a research paper in which you cited material you did not personally own? THIEF! Have you ever sung "Happy Birthday" and forgotten to pay the royalties? THIEF!
Jeez, by your flawed definition of "stealing" (that any time you "deprive someone else of payment", you've stolen from them), Linus Torvalds has stolen millions of dollars from Microsoft for all the lost customers. And GM better watch out before they get arrested for stealing from Ford!
The current mess is partly as a result of the difficulties with DNA and other scientific evidence. In the 1920s, SCOTUS created the Frye standard, which required that any scientific method presented in court needed to be accepted by a majority of experts in the field. This was a very conservative standard, and it meant that investigators couldn't develop new methods ad hoc because those methods couldn't have been widely accepted at the time of use. In the 1990s, SCOTUS instituted a new Daubert standard which allows any scientific evidence -- regardless of its general acceptance -- to be presented at the judge's discretion, and it leads to the "competing experts" situation that we have today.
IMO, Daubert is a horrible precedent, as it forces non-experts to decide how to treat expert testimony. With the older Frye standard, some prosecutors might have a hard time prosecuting some individuals in difficult cases, but it does a much better job of maintaining the integrity of the system.
Just because it "manages rights" doesn't make it DRM. Neither a car key nor a EULA are DRM, yet they both "manage rights". Your mistake is trying to apply English language word definitions to jargon.
Sounds neat. De Morgan's law holds. But I'm not sure about another one (not sure of its name, but I call it the Boolean distributive property).
x ^ (y v z) = (x ^ y) v (x ^ z)
OK, so
y v z = y + z - yz
x ^ y = xy
x ^ z = xz
x ^ (y v z) = x(y v z) = x(y + z - yz)
(x ^ y) v (x ^ z) = (x ^ y) + (x ^ z) - (x ^ y)(x ^ z) = xy + xz - (xy)(xz)
So in order for the Boolean distributive property to hold, the algebraic equation
x(y + z - yz) = xy + xz - (xy)(xz) must hold as well. It trivially holds if x = 0; in cases where x =/= 0, we can divide through by x to simplify:
y + z - yz = y + z - xyz which does not hold when x =/= 1. Therefore, we can conclude that your definitions of the Boolean operators do not generally satisfy, or I made a mistake. If I made a mistake, please point it out to me.
I'm not sure, but I'm guessing you had angle brackets in there: sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long).
In addition, there are certain minimum ranges for values of each type. char must be at least 8 bits (CHAR_BIT must be at least 8), short and int must be at least 16 bits, long at least 32, and long long at least 64.
I don't own a copy of the standard, but from the draft:
[A strictly conforming program] shall not produce output dependent on any unspecified, undefined, or implementation-defined behavior, and shall not exceed any minimum implementation limit.
and
Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.... -- minimum value for an object of type short int
SHRT_MIN -32767// -(2^15-1)
-- maximum value for an object of type short int
SHRT_MAX +32767// 2^15-1
Since trying to store a value outside the minimum range for a short would rely on implementation-defined behavior, a program which attempts to do so is not strictly conforming.
"Legal" is not a C concept. A strictly conforming program "shall not produce output dependent on any unspecified, undefined, or implementation-defined behavior, and shall not exceed any minimum implementation limit."
A "correct" program may rely on implementation-defined (and even unspecified) behavior. Since use of those behaviors necessitates qualification, lack thereof (such as in my sig) implies strict conformance.
Basically, as I mentioned somewhere else, the sig as written sounds a lot better than something along the lines of, "A strictly conforming C program may not rely on storing the value 86400 into an object of type short to result in well-defined behavior."
A strictly-conforming program may only store values between -32767 and 32767 (inclusive) in an object of type short, regardless of the machine architecture.
I love it when people complain about the sig. Then I get to tell them that C guarantees that a short can store numbers between -32767 and 32767 (no, I didn't get the negative one wrong) inclusive, regardless of CHAR_BIT or the word size of the system.
I know exactly what TheRaven64 *meant*. But what he meant isn't what he *said*. What he actually said was wrong, and I commented on it.
Meh... I tried it in Opera just to see what would happen. It opens a flickering pop-up (singular -- not multiple) and manages to play the "I'm looking at gay porno" through the speakers. All that was necessary to fix it was a "close window" gesture.
The result is there [in cmd.exe] are funny (not always so) side effects where you have nested scopes (try nested loops for example).
Look up setlocal. You have to make a separate script for each scope, but you pretty much have to make a separate script for the body of loops anyway.
Just because you don't like it doesn't mean it's not really a scripting language. Check out, for example, the scripts in BCD.
It's better than resorting to insults when you can't come up with a cogent argument.
Because by default, Windows 2K/XP comes with three scripting languages: cmd.exe (useful, but not COM-enabled), VBScript, and Javascript (well, technically it's "JScript", which is Microsoft's embraced and extended version of Javascript). I'd sooner scratch out my eyes than use VBScript for anything longer than five lines, so Javascript it is.
For example, some corporate environments think that disabling all the programs in system32 to be a "security feature"... which means you can't do things like fix corrupt registry entries in your own HKCU hive! So I wrote a command-line registry editor (similar to reg.exe) in Javascript+WSH+WMI. I also used it to write a little utility that basically replicated the remote installation feature of SMS. Except mine doesn't break all the fucking time on networks that aren't always up (SMS server was separated from all the clients by a TACLANE that's only brought up as-needed).
Oh, and I wrote a DB app in Javascript that just happened to use a browser for a GUI (but there was no webserver middle-ware). Again, mostly because I loathe anything VB-related (such as VBA usually used to script Access). See http://www.kuro5hin.org/story/2005/7/14/13942/7643.
[U]nlike Java [emphasis added], you can also write Evil Javascript, and you can also write Broken CPU-sucking Javascript.
That's different from Java... how?
He said the feature is "guaranteed to be misused". This has two possible meanings:
1. The feature will be misused every single time. There is NO POSSIBLE correct use.
2. The feature will be misused at least once.
Meaning 1 is completely indefensible, and the author doesn't even make an effort at substantiating it. He provides exactly one example of misuse. Chances that meaning 1 were intended: slim to none.
Meaning 2, on the other hand, actually fits with the rest of the article.
As the number of uses of a feature increases, the chance of a misusable feature actually being misused approaches unity. Therefore, any feature which CAN be misused, WILL be misused eventually. QED.
Keep 'em coming. We're on a roll.
User-defined overloading, obviously.
Grand-parent gave an example of built-in operator overloading, not user-defined operator overloading. So no, it isn't "obvious" that he means user-defined operator overloading.
From the linked-to article:
Features that are guaranteed to be misused should be eliminated.
What a load of utter bollocks! Show me a feature that cannot be misused, and I'll show you a feature that isn't terribly useful.
If you dont know the difference between a group, a ring, and a field, you have no business overloading operators.
What an arrogant asshole! That's as non-sensical as an assertion that only parents have any business creating class hierarchies.
You're mostly wrong. You're technically right, but only because grandparent mentioned one directory too far up the tree. There is a directory that stores user data and configuration info, it's just not My Documents.
"c:\documents and settings\username" is what you want (commonly called the "profile"). Of course, you can change the location where profiles are stored -- I just gave the default. "My Documents" is a subdirectory under the profile directory, and the user's HKCU registry hive is even stored inside the profile.
Your comments are nice and all, but what I really want is coders who actually understand the difference between a language and a run-time environment.
I write CLI programs in Javascript, you insensitive clod!
Javascript has always had overloaded operators. Or do you really think that string concatenation and arithmetic are similar operations?
Here's an idea.
They should get a massive loan from JP Morgan to keep themselves solvent. The bank wouldn't normally want to do this, of course, so have the Federal Reserve (read: the taxpayers) hold the collateral (read: bear all the risk).
Remember, that wouldn't be a "bail-out" but sound economic policy. We can't have all the counties going bankrupt like dominoes.
You obviously misunderstood my earlier post.
OK.
Now, I should note that they have configured a demo system for this client to use on the client's hardware. While I am most definitely not a lawyer, that could be construed as "distribution"
I think it certainly qualifies as distribution.
It seems that your recommendation (along with many others) is to just forget about it or to hire a lawyer.
My advice is to find out what they give to their customers. The lack of documentation in the demo install may have been an oversight; the only way to find out is to see a full installation.
Only recipients of the program have any rights under the GPL. If you are a potential recipient but haven't actually received anything yet, you're still not a recipient.
If you're going to continue the argument, please provide actual quotes (not made-up ones like in your earlier post) from the GPLv2 which supports your claim. (Hint: You won't find any.)
Potential customers don't have any rights under the GPL, so no notification is necessary. Only actual customers have rights under the GPL. Until you talk to an actual customer, you're wasting your time.
>> Earlier, you said, "Anytime you end up with something you didn't pay for, it's theft."
> I said no such thing.
Pardon me. I thought you were the person to which I originally responded. The above assertion is the context of my earlier post.
See, I knew it wouldn't take long.
Earlier, you said, "Anytime you end up with something you didn't pay for, it's theft."
Later, you say, things like "it's okay if you cite a little bit" or "you didn't agree to pay before hand" or "but that's not illegal". So what?! You made a big deal of taking the moral high ground and screw all of us for seeing shades of grey. You said very clearly that ANYTIME you end up with something you didn't pay for, it's theft.
And now you're backpedalling, as expected. (And hurling insults to boot. Don't get mad at me because you made a ridiculous claim.)
Anytime you end up with something you didn't pay for, it's theft. Everyone focuses on the method of obtaining...[and not the lack of payment]
/any/ images, am I "stealing" from all the sites with banner ads? If I'm browsing with Lynx (and thus can't display images), is it still stealing? What if I display the images and just choose to ignore them?
I imagine you'd feel that blocking advertisements with a proxy or similar would be stealing. If I don't install Flash, am I "stealing" from sites that have Flash-based ads? If I choose not to display
Do you ever borrow a book, CD, or movie from a friend or the library? THIEF!
Do you ever skip the previews (aka commercials) on a DVD? THIEF!
Do you ever get up to use the bathroom during TV commercials? THIEF!
Do you ever pay your credit card bill in full, thereby depriving the CC company of any interest for their loan? THIEF!
Have you ever walked by a street musician without dropping money in the case? THIEF!
Have you ever written a research paper in which you cited material you did not personally own? THIEF!
Have you ever sung "Happy Birthday" and forgotten to pay the royalties? THIEF!
Jeez, by your flawed definition of "stealing" (that any time you "deprive someone else of payment", you've stolen from them), Linus Torvalds has stolen millions of dollars from Microsoft for all the lost customers. And GM better watch out before they get arrested for stealing from Ford!
Backpedalling begins in three... two... one...
The current mess is partly as a result of the difficulties with DNA and other scientific evidence. In the 1920s, SCOTUS created the Frye standard, which required that any scientific method presented in court needed to be accepted by a majority of experts in the field. This was a very conservative standard, and it meant that investigators couldn't develop new methods ad hoc because those methods couldn't have been widely accepted at the time of use. In the 1990s, SCOTUS instituted a new Daubert standard which allows any scientific evidence -- regardless of its general acceptance -- to be presented at the judge's discretion, and it leads to the "competing experts" situation that we have today.
IMO, Daubert is a horrible precedent, as it forces non-experts to decide how to treat expert testimony. With the older Frye standard, some prosecutors might have a hard time prosecuting some individuals in difficult cases, but it does a much better job of maintaining the integrity of the system.
Just because it "manages rights" doesn't make it DRM. Neither a car key nor a EULA are DRM, yet they both "manage rights". Your mistake is trying to apply English language word definitions to jargon.
Sounds neat. De Morgan's law holds. But I'm not sure about another one (not sure of its name, but I call it the Boolean distributive property).
x ^ (y v z) = (x ^ y) v (x ^ z)
OK, so
y v z = y + z - yz
x ^ y = xy
x ^ z = xz
x ^ (y v z) = x(y v z) = x(y + z - yz)
(x ^ y) v (x ^ z) = (x ^ y) + (x ^ z) - (x ^ y)(x ^ z) = xy + xz - (xy)(xz)
So in order for the Boolean distributive property to hold, the algebraic equation
x(y + z - yz) = xy + xz - (xy)(xz)
must hold as well. It trivially holds if x = 0; in cases where x =/= 0, we can divide through by x to simplify:
y + z - yz = y + z - xyz
which does not hold when x =/= 1. Therefore, we can conclude that your definitions of the Boolean operators do not generally satisfy, or I made a mistake. If I made a mistake, please point it out to me.
sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long).
In addition, there are certain minimum ranges for values of each type. char must be at least 8 bits (CHAR_BIT must be at least 8), short and int must be at least 16 bits, long at least 32, and long long at least 64.
I don't own a copy of the standard, but from the draft:
and
Since trying to store a value outside the minimum range for a short would rely on implementation-defined behavior, a program which attempts to do so is not strictly conforming.
"Legal" is not a C concept. A strictly conforming program "shall not produce output dependent on any unspecified, undefined, or implementation-defined behavior, and shall not exceed any minimum implementation limit."
A "correct" program may rely on implementation-defined (and even unspecified) behavior. Since use of those behaviors necessitates qualification, lack thereof (such as in my sig) implies strict conformance.
Basically, as I mentioned somewhere else, the sig as written sounds a lot better than something along the lines of, "A strictly conforming C program may not rely on storing the value 86400 into an object of type short to result in well-defined behavior."
A strictly-conforming program may only store values between -32767 and 32767 (inclusive) in an object of type short, regardless of the machine architecture.
I love it when people complain about the sig. Then I get to tell them that C guarantees that a short can store numbers between -32767 and 32767 (no, I didn't get the negative one wrong) inclusive, regardless of CHAR_BIT or the word size of the system.