Interesting, and a bit of checking shows the compiler is doing some optimizations. Compiling it with -O3 goes even further - it does away with all the adds and muls, just an immediate load of either 1 or 9 into a register (iow, the compiler has completely optimized away the ++i * ++i or i++ * i++). Maybe if we went to a zero point something release...
Anyway, taking it one step further, I split the file into 2 identical ones, one with ++i, and one with i++, but taking the extra step of declaring i as "volatile int i" so the compiler can't fully optimize it. Here's what happened:
Oops, you're right - I got 1 and 9. Its because I changed it from + to * to make the example a bit clearer. It was originally i++ + i++, and ++i + ++i, which was just TOO confusing, with all those + signs. So, after previewing it, I changed the two solitary + to *, and changed the 6 to a 9, but forgot to change the 2 to a 1.
int main(int argc, char* argv[], char* env[]) {
int i = 1;
printf("%d\n", i++ * i++);
i = 1;
printf("%d\n", ++i * ++i);
return 0x00; }
The first gives 2, the second gives 9.
In the second, both pre-increment statements are executed, then the result multiplied.
incremnt i increment i multiply i by itself
In the first, its a bit more complicated The first case needs to keep the old values of i stashed somewhere for the multiply step
store old value of i increment i store old value of i increment i multiply old value of i)
There's no way to do #1 without keeping a copy of the old value hanging around, whereas the ++i never needs the old value for anything... see the difference?
I know what you mean about the anti-DRM stuff in GPLv3 being confusing. The GPL is supposed to be a software license, and totally hardware-agnostic. Personally, I think they've over-reacted to Tivo. Yes, Tivo pulled a stunt, but there is absolutely nothing preventing anyone else from taking Tivo's source, modifying it, and shipping their own boxes... except that the barrier of entry into hardware is higher (which is the real reason for all the whining - I'm amazed at how important TV is to people, but maybe that's just me). The actual "barrier to entry" even in hardware is now quite low (hello, China) so even that's not a real excuse.
but that doesn't mean I don't own MY COPY. I do, I just don't own the copyright to it. But it's still MY copy, and I can do whatever I want with it within the limits of what copyright law allows (mostly thou shall not copy this and redistribute it).
It amazes me to see people who believe that you *have* to sell an old computer with the original OS intact. Microsoft at one point tried to claim it was illegal to wipe out the hard drive and install linux before donating old boxes to schools - the school board where my sister works was one of those they FUDded with that line of BS. They really are evil, because money that could be saved by recycling older PCs could go into school lunch programs - they're in effect taking food out of the mouths of children. Even affluent areas have pockets of poverty, kids who go to school hungry, or don't have proper winter coats. A couple of thousand extra can make a real difference in a local school... (okay, enough of that).
post-increments are part of the "evaluating the whole line".., to increment i "after" evaluating the whole line, you'd have to "take out the i and put it in a temp" so you *could* increment it afterwards... right? Whereas with the pre-increment, no other term "sees" or "needs" the old value, so its just incremented immediately.
a good book is "Compiler design in C" by Holub - it's not for the faint of heart, but it does a good job of explaining what really goes on inside.
Interestingly enough, while I had never heard of either, I'm definitely going to check out LedgerSMB and see if I can recommend it to people. Their approach just makes more sense (and certainly inspires more confidence).
"the author appears to have the idea that the insider threat is nothing to worry about."
Users can screw things up intentionally or accidentally - either way, the end result is a mess, and you have to guard against it. To think otherwise is naive, to say the least.
Poster wrote:
You realize that n++ and ++n do different things right?
Not necessarily. If there is no additional code between the sequence points, the two do the exact same thing, and the compiler will emit the exact same code (we had this discussion in another thread where someone was trying to claim that ++n is quicker than n++).
To prove this, I used g++ to compile the following 2 pieces of code
int main (int argc, char* argv[], char* env[]) {
int j = 1;
for ( int i=0; i<10; i++ )// used post-increment operator
j += j;
return 0x00; }... and...
int main (int argc, char* argv[], char* env[]) {
int j = 1;
for ( int i=0; i<10; ++i )// used pre-increment operator
j += j;
return 0x00; }
I then ran the resulting binaries through diff - they were identical.
The compiler was free to treat both the pre-increment and the post-increment the same because, as I pointed out in that discussion, without any additional code between the sequence points, the code is in fact the same in its functionality. Any good compiler will recognize this, and realize that there is no need for a temporary (which i++ would normally require, but which ++i doesn't). It silently changes i++ so that it becomes the same as ++i, doing away with the temporary.
Think about it for a bit and you'll see why this is "the right thing to do".
i++ returns the value of i before incrementing it, so that value is stored in a temporary. ++i increments i, then returns the new value - no temporary required to store the old value
However, in this case, there is no additional code between the semicolon, the term (i++ or ++i) and the closing parenthesis, so the two statements are, in the compiler's view, identical, and the compiler will optimize i++ to ++i.
Note: I also tested this against i += 1 (it was a weird thread), and in THAT case, the compiler didn't emit the same code. That's because i += 1 is shorthand for i = i + 1, which requires a temporary (to store i+1). I guess the next step in optimization would be to do a check for the term being 1, in which case, emit the same code as i++ and ++i in those circumstance... maybe in the next revision:-)
In the above cases, in assembler i++ and ++i can both be done with an inc; i+(insert amount) can't. that's why i += 1 doesn't compile to the same code.
I would be very surprised if most compilers didn't perform the same optimization.
I'll say it again - you aren't getting off that easily for trying to BS your way out of it:
You said:
Copyright law prohibits distribution of copyright material and derived works entirely.
This is SO wrong.
Again, show me ONE country where this is true. Just ONE.
Oh, you can't.
Because you were wrong, but you can't admit it. And yet, after being caught pulling factiods out your rectum, you still have the temerity to post this:
Back under your bridge, troll.
Hmmmm... methinks the "gentleman" doth protest too much...
Look, just admit that copyright law doesn't "prohibit distribution of copyright material and derived works entirely" before everyone starts laughing at you. I mean, really, are you still going to persist in claiming something that is so obviously not true? Everyone else here knows about the fair use, first sale doctrine, editorial review, parody as derived work, and educational exceptions, just to name just five off the top of my head. Even ONE exception is enough to show you're wrong.
Again, show us just ONE country where "Copyright law prohibits distribution of copyright material and derived works entirely"
... or admit you were wrong.
Just.
. one
. . . lousy
. . . . . . country.
Heck, I'll make it easier for you - lets make it one lousy country, county, state, province, city, town, borough, district, or municipality where "copyright law prohibits distribution of copyright material and derived works entirely." Some little backwater of 5,000 people. Out of a population of 6-1/2 billion, certainly you can find one...
Copyright law does NOT do what you said. You wrote:
Copyright law prohibits distribution of copyright material and derived works entirely.
No matter how much you try to twist and turn, that statement is a total untruth.
Just to make sure you don't accuse me of misquoting you, here again is what you said, word for word...
Copyright law prohibits distribution of copyright material and derived works entirely. The GPL grants exceptions to that prohibition under certain circumstances. It does not add restrictions - it functions entirely to remove them.
Either you really don't have a clue, or you're a troll (and a pretty lame one at that).
Again, I challenge you to find ONE country, just ONE, where "Copyright law prohibits distribution of copyright material and derived works entirely." - your words, not mine. Or did you mis-speak. Or are you going to hide behind a "you know what I meant," imputing that its other people's responsibility to read your mind as well as what you wrote?
Its the same with the question of the GPL and restrictions. The post didn't say "USE" of the software. You keep harping about how "it doesn't pretend to or attempt to limit your rights to *use* the software" which is NOT what the post said... it went much further. Read it again:
"Neither GPL or BSD put *any* sort of restriction about what you do with the software !"
There's a world of difference between using software on your computer, and "no restriction about what you do with the software", which would include not-so-incidental things like redistribution - where the GPL does in fact impose its requirements. The post goes on to contradict itself, acknowledging this in a back-handed way by then saying that the GPL is a distribution license. Distribution is something you do with software, and the statement that the GPL imposes no restrictions on what you do with software is therefore false on its face.
So is you broad assertion that the GPL "does not add restrictions - it functions entirely to remove them." Again, your words, not mine. SCO would be very happy to believe that the GPL doesn't impose any restrictions - IBM is countersuing them for SCO's violations of redistributing IBM's copyright GPL material outside of the restrictions imposed by the GPL. Perhaps you're confusing the GPL with the BSD license? The original poster mentioned both...
Anyway, why not provide some concrete evidence to back up your claims? Where is this mythical country where "Copyright law prohibits distribution of copyright material and derived works entirely"?
The point is that you can't copyright something as trivial as ++n (instead of n++), especially when it has ZERO impact on the final binary. Copyright does not extend to trifles - "non minimus lex."
Apex ad-1200 - region free, plays mp3, vcd, kvcd, svcd, pal, ntsc, jpg... and it was region-free right out of the box (found the "hidden menu", but didn't need to do anything).
I'll never buy a Sony anything. Paying more for fewer features and (in the case of their TVs) poorer picture quality is jut stupid.
the poster claimed "Neither GPL or BSD put *any* sort of restriction about what you do with the software !"
Redistribution is something you can do with gpl software - but it IS restricted - you must comply with the restrictions laid down in the gpl.
Or are you now going to claim that redistribution is somehow not something you can do with gpl and bsd software? Even the original posters' "hint that the gpl is a distribution license" implies that there are some "restriction(s) about what you do with the software".
2
Copyright law prohibits distribution of copyright material and derived works entirely
Think about what you wrote - its probably not what you meant, and its certainly not true, in any country, even the former Soviet Russia, where copyright distributes YOU.
"That doesn't mean I don't feel sorry for the original author, but I think he may need a bit of a spokesperson between him and the rest of the world.."
... like Theo de Raadt?... or maybe Hans Reiser?... or (to keep it even) Monkeyboy chair(throwing)man "the Balminator" "I'm gonna fucking kill google" Ballmer?
Deiter may have switched the license back to GPLv2, but at this point, why bother... he's done more to promote the competing fork as being the "legit, safe" one than anything else.
"Some viciously maintain that a patch that changes "n++" to "++n" is sufficient to to kick in the GPL viral clauses."
At the risk of being a bit off-topic, if n++ is a statement by itself, the compiler will emit the same code as ++n (at leastusing gnu c++), so the change isn't even "trivial" - its non-existent (same as adding some white space)
For example, diff says that:
for ( i=1 ; i... results in the same binary code as...
for ( i=1 ; i... so everyone who believes that ++i is "faster" than i++ are barking up the wrong tree - the compiler applies the same optimizations.
So, back to licensing... I don't think that changing i++ to ++i, when that's all that's in that sequence point, and results iin the same binary, can ever be a copyrightable change... unless you're in the SCOniverse;-)
Interestingly enough, there's no hard studies showing that dvorak is better overall... and since most of us can probably type more or less as quickly as we can think anyway (hey, how else do you get a frost pist in soviet russia with old koreans and hot grits:-), there's no real advantage to switching, unless you're into "stream-of-conscience" blogging on myspace:-)
If dvorak really were that much better, I'd expect more people to have made the change, since the barriers to change are so small (just change your keymap). But switching to dvorak won't make me code any faster - its not my typing speed that limits my output, but my thinking speed.
I included the "hint" part in the above reply to another comment, but at the risk of being redundant, and to make it quite clear that, even including it, the post is wrong, I'll quote tht reply in full here, so maybe you'll "get it" - note I included, in that reply, the fact that your "hint" contradicts the rest of the statement:
[====Quote====]
The statement was clear and unequivocal, and wrong. Here is the original post in question:
sorry for the rant, I'm just sick to death about this 'licensing' nonsense, GPL, BSD and friends included.
Neither GPL or BSD put *any* sort of restriction about what you do with the software ! (hint: they are distributions licenses, not use licenses).
The "hint" contradicts the prior statement. Distribution is a limitation on what you can "do" with the software. The hint in fact invalidates the prior statement that the GPL doesn't put any restriction on what you "do" with the software. If the poster had said "Neither GPL or BSD put *any* sort of restriction about what you do with the software on your own computer", which is not the same thing, even then they would be wrong.
For example, if you set up your computer with gpl'd software, then give/sell the computer to someone else, you have "distributed." The GPLv2 doesn't allow you to "pass on" the need to distribute the source upstream, by pointing to the download site where you got it from (this is one of the "fixes" proposed for GPLv3).
In other words, BSD != GPL, and its very easy to accidently end up "distributing" under GPLv2.
[==== End Quote ====]
That english isn't your first language is possibly at the root of the misunderstanding. Its quite clear that the GPL does in fact put restrictions on what you can do with the software; you said it doesn't and I pointed out you were wrong.
You also wrote:
Hey, fucker, first don't confuse me (the original AC) and the guy you are replying to.
...
but you KNOW from the context of my post and your previous one that the meaning of "what you do" was "how you use", because, little asshole, you original post said:
"How can they tell you how to use a product in your home?"
What can I say - I'm a lefty. And I took (and passed) touch typing in high school. But I won't go back to the "home row keys" method - it doesn't make sense on 105-key keyboards, and contributes to rsi by forcing the pinky fingers to do unnatural extensions. Better to shift the hands slightly, and get more coverage with the other three fingers.
The statement was clear and unequivocal, and wrong. Here is the original post in question:
sorry for the rant, I'm just sick to death about this 'licensing' nonsense, GPL, BSD and friends included.
Neither GPL or BSD put *any* sort of restriction about what you do with the software ! (hint: they are distributions licenses, not use licenses).
The "hint" contradicts the prior statement. Distribution is a limitation on what you can "do" with the software. The hint in fact invalidates the prior statement that the GPL doesn't put any restriction on what you "do" with the software. If the poster had said "Neither GPL or BSD put *any* sort of restriction about what you do with the software on your own computer", which is not the same thing, even then they would be wrong.
For example, if you set up your computer with gpl'd software, then give/sell the computer to someone else, you have "distributed." The GPLv2 doesn't allow you to "pass on" the need to distribute the source upstream, by pointing to the download site where you got it from (this is one of the "fixes" proposed for GPLv3).
In other words, BSD != GPL, and its very easy to accidently end up "distributing" under GPLv2.
Perhaps you need to look at what you wrote again. You didn't say that the "GPL doesn't restrict how you use it" - you said it has NO restrictions or any type.
Here, word for word, is what you wrote:
Neither GPL or BSD put *any* sort of restriction about what you do with the software !
The GPL does in fact put restrictions on what you can do with it. Distribution is one such restriction.
So when you now try to refute me by writing:
I'm sorry, you seem to be the one that is having trouble with reading comprehension. The restriction you mention is one on *distribution* - it's not a use restriction.
... that's quite a back-pedal you're doing... its b your reading comprehension, or your logic, or both, that need to be revisited, because even you admit that distribution is a restriction. That you now feel the need to narrow the scope of your claims, from "no restriction" to "no restriction on use" is just more proof that you were wrong in your original statement.
Years of usage can give one the ability to type without looking, but the real touch typing method is more than that.
The "home row of keys" was okay for 44-key typewriters - its just plain stupid for 105-key keyboards. I'll never go back to the traditional way of typing, just as I'll never go back to a plain typewriter with less than half as many keys. Times change, and so does the meaning of the term "touch-type"
Also, the Drovak keyboard is biased against left-handers: "The right hand should do more of the typing, because most people are right-handed."
No offense, but I've never met a hunt-and-peck typist that's any good at coding. I strongly advise you to learn to touch type, whether on QUERTY or DVORAK. Seriously: Learn to touch type. It only takes one day, and it'll be worth 10s of thousands of dollars if they sit you down at a keyboard for an interview.
REAL programmers have to touch-type - we've worn the labels off the keycaps on too many keyboards...
What's funny is watching people who claim to be such "hotshots" and still don't know the keyboard shortcuts for selecting, cutting, and pasting, in ANY editor.
THIS JUST IN - APPLE requiring MORE EXPENSIVE PC if running MAC OS!
Actually, the TCO of a mac is now (much) lower than a windows box. No antivirus/spyware to subscribe to, and you won't have to junk your computer twice as often as with a Windows box (slashdot has run several articles about how the average useful lifespan of a mac is twice that of a Windows box). Factor in the time savings from things "just working", the ease of use, etc., and there is no way that you can justify a Windows Vista box to an end user from a TCO perspective, even if Vista were free.
Of course, linux/bsd boxes are even cheaper, but that's beside the point.
Interesting, and a bit of checking shows the compiler is doing some optimizations. Compiling it with -O3 goes even further - it does away with all the adds and muls, just an immediate load of either 1 or 9 into a register (iow, the compiler has completely optimized away the ++i * ++i or i++ * i++). Maybe if we went to a zero point something release ...
.LCFI5:
...
...
Anyway, taking it one step further, I split the file into 2 identical ones, one with ++i, and one with i++, but taking the extra step of declaring i as "volatile int i" so the compiler can't fully optimize it. Here's what happened:
#include <stdio.h>
int main(int argc, char* argv[], char* env[]) {
volatile int i = 1;
printf("%d\n", i++ * i++);
return 0x00;
}
movl $1, -8(%ebp)
movl -8(%ebp), %edx
movl -8(%ebp), %ecx
leal 1(%edx), %eax
imull %ecx, %edx
movl %eax, -8(%ebp)
leal 1(%ecx), %eax
movl %eax, -8(%ebp)
movl $.LC0, (%esp)
movl %edx, 4(%esp)
call printf
addl $36, %esp
xorl %eax, %eax
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
#include <stdio.h>
int main(int argc, char* argv[], char* env[]) {
volatile int i = 1;
printf("%d\n", ++i * ++i);
return 0x00;
}
LCFI5:
movl $1, -8(%ebp)
movl -8(%ebp), %eax
addl $1, %eax
movl %eax, -8(%ebp)
movl -8(%ebp), %edx
movl -8(%ebp), %eax
addl $1, %eax
movl %eax, -8(%ebp)
movl -8(%ebp), %eax
movl $.LC0, (%esp)
imull %eax, %edx
movl %edx, 4(%esp)
call printf
addl $36, %esp
xorl %eax, %eax
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret.
Interesting how the compiler generates 2 extra instructions in the case of ++i
I'd try a few other test cases, but we're having 70-80km/h winds, and the first 2 times I tried to post this, the power went out
Oops, you're right - I got 1 and 9. Its because I changed it from + to * to make the example a bit clearer. It was originally i++ + i++, and ++i + ++i, which was just TOO confusing, with all those + signs. So, after previewing it, I changed the two solitary + to *, and changed the 6 to a 9, but forgot to change the 2 to a 1.
My bad :-(
Think about i++ * i++, compared to ++i * ++i.
... see the difference?
#include <stdio.h>
int main(int argc, char* argv[], char* env[]) {
int i = 1;
printf("%d\n", i++ * i++);
i = 1;
printf("%d\n", ++i * ++i);
return 0x00;
}
The first gives 2, the second gives 9.
In the second, both pre-increment statements are executed, then the result multiplied.
incremnt i
increment i
multiply i by itself
In the first, its a bit more complicated
The first case needs to keep the old values of i stashed somewhere for the multiply step
store old value of i
increment i
store old value of i
increment i
multiply old value of i)
There's no way to do #1 without keeping a copy of the old value hanging around, whereas the ++i never needs the old value for anything
I know what you mean about the anti-DRM stuff in GPLv3 being confusing. The GPL is supposed to be a software license, and totally hardware-agnostic. Personally, I think they've over-reacted to Tivo. Yes, Tivo pulled a stunt, but there is absolutely nothing preventing anyone else from taking Tivo's source, modifying it, and shipping their own boxes ... except that the barrier of entry into hardware is higher (which is the real reason for all the whining - I'm amazed at how important TV is to people, but maybe that's just me). The actual "barrier to entry" even in hardware is now quite low (hello, China) so even that's not a real excuse.
It amazes me to see people who believe that you *have* to sell an old computer with the original OS intact. Microsoft at one point tried to claim it was illegal to wipe out the hard drive and install linux before donating old boxes to schools - the school board where my sister works was one of those they FUDded with that line of BS. They really are evil, because money that could be saved by recycling older PCs could go into school lunch programs - they're in effect taking food out of the mouths of children. Even affluent areas have pockets of poverty, kids who go to school hungry, or don't have proper winter coats. A couple of thousand extra can make a real difference in a local school ... (okay, enough of that).
You're right about objects as well. Same problem - the compiler will usually generate 2 copies for a post-increment.
post-increments are part of the "evaluating the whole line" .., to increment i "after" evaluating the whole line, you'd have to "take out the i and put it in a temp" so you *could* increment it afterwards ... right? Whereas with the pre-increment, no other term "sees" or "needs" the old value, so its just incremented immediately.
a good book is "Compiler design in C" by Holub - it's not for the faint of heart, but it does a good job of explaining what really goes on inside.
Interestingly enough, while I had never heard of either, I'm definitely going to check out LedgerSMB and see if I can recommend it to people. Their approach just makes more sense (and certainly inspires more confidence).
"the author appears to have the idea that the insider threat is nothing to worry about."
Users can screw things up intentionally or accidentally - either way, the end result is a mess, and you have to guard against it. To think otherwise is naive, to say the least.
Poster wrote:
// used post-increment operator
... and ...
// used pre-increment operator
... maybe in the next revision :-)
You realize that n++ and ++n do different things right?
Not necessarily. If there is no additional code between the sequence points, the two do the exact same thing, and the compiler will emit the exact same code (we had this discussion in another thread where someone was trying to claim that ++n is quicker than n++).
To prove this, I used g++ to compile the following 2 pieces of code
int main (int argc, char* argv[], char* env[]) {
int j = 1;
for ( int i=0; i<10; i++ )
j += j;
return 0x00;
}
int main (int argc, char* argv[], char* env[]) {
int j = 1;
for ( int i=0; i<10; ++i )
j += j;
return 0x00;
}
I then ran the resulting binaries through diff - they were identical.
The compiler was free to treat both the pre-increment and the post-increment the same because, as I pointed out in that discussion, without any additional code between the sequence points, the code is in fact the same in its functionality. Any good compiler will recognize this, and realize that there is no need for a temporary (which i++ would normally require, but which ++i doesn't). It silently changes i++ so that it becomes the same as ++i, doing away with the temporary.
Think about it for a bit and you'll see why this is "the right thing to do".
i++ returns the value of i before incrementing it, so that value is stored in a temporary.
++i increments i, then returns the new value - no temporary required to store the old value
However, in this case, there is no additional code between the semicolon, the term (i++ or ++i) and the closing parenthesis, so the two statements are, in the compiler's view, identical, and the compiler will optimize i++ to ++i.
Note: I also tested this against i += 1 (it was a weird thread), and in THAT case, the compiler didn't emit the same code. That's because i += 1 is shorthand for i = i + 1, which requires a temporary (to store i+1). I guess the next step in optimization would be to do a check for the term being 1, in which case, emit the same code as i++ and ++i in those circumstance
In the above cases, in assembler i++ and ++i can both be done with an inc; i+(insert amount) can't. that's why i += 1 doesn't compile to the same code.
I would be very surprised if most compilers didn't perform the same optimization.
I'll say it again - you aren't getting off that easily for trying to BS your way out of it:
You said:
This is SO wrong.
Again, show me ONE country where this is true. Just ONE.
Oh, you can't.
Because you were wrong, but you can't admit it. And yet, after being caught pulling factiods out your rectum, you still have the temerity to post this:
Hmmmm ... methinks the "gentleman" doth protest too much ...
Look, just admit that copyright law doesn't "prohibit distribution of copyright material and derived works entirely" before everyone starts laughing at you. I mean, really, are you still going to persist in claiming something that is so obviously not true? Everyone else here knows about the fair use, first sale doctrine, editorial review, parody as derived work, and educational exceptions, just to name just five off the top of my head. Even ONE exception is enough to show you're wrong.
Again, show us just ONE country where "Copyright law prohibits distribution of copyright material and derived works entirely"
Just.
. one
. . . lousy
. . . . . . country.
Heck, I'll make it easier for you - lets make it one lousy country, county, state, province, city, town, borough, district, or municipality where "copyright law prohibits distribution of copyright material and derived works entirely." Some little backwater of 5,000 people. Out of a population of 6-1/2 billion, certainly you can find one ...
Copyright law does NOT do what you said. You wrote:
No matter how much you try to twist and turn, that statement is a total untruth. Just to make sure you don't accuse me of misquoting you, here again is what you said, word for wordEither you really don't have a clue, or you're a troll (and a pretty lame one at that).
Again, I challenge you to find ONE country, just ONE, where "Copyright law prohibits distribution of copyright material and derived works entirely." - your words, not mine. Or did you mis-speak. Or are you going to hide behind a "you know what I meant," imputing that its other people's responsibility to read your mind as well as what you wrote?
Its the same with the question of the GPL and restrictions. The post didn't say "USE" of the software. You keep harping about how "it doesn't pretend to or attempt to limit your rights to *use* the software" which is NOT what the post said ... it went much further. Read it again:
There's a world of difference between using software on your computer, and "no restriction about what you do with the software", which would include not-so-incidental things like redistribution - where the GPL does in fact impose its requirements. The post goes on to contradict itself, acknowledging this in a back-handed way by then saying that the GPL is a distribution license. Distribution is something you do with software, and the statement that the GPL imposes no restrictions on what you do with software is therefore false on its face.So is you broad assertion that the GPL "does not add restrictions - it functions entirely to remove them." Again, your words, not mine. SCO would be very happy to believe that the GPL doesn't impose any restrictions - IBM is countersuing them for SCO's violations of redistributing IBM's copyright GPL material outside of the restrictions imposed by the GPL. Perhaps you're confusing the GPL with the BSD license? The original poster mentioned both ...
Anyway, why not provide some concrete evidence to back up your claims? Where is this mythical country where "Copyright law prohibits distribution of copyright material and derived works entirely"?
The point is that you can't copyright something as trivial as ++n (instead of n++), especially when it has ZERO impact on the final binary. Copyright does not extend to trifles - "non minimus lex."
Apex ad-1200 - region free, plays mp3, vcd, kvcd, svcd, pal, ntsc, jpg ... and it was region-free right out of the box (found the "hidden menu", but didn't need to do anything).
I'll never buy a Sony anything. Paying more for fewer features and (in the case of their TVs) poorer picture quality is jut stupid.
You're wrong, badly wrong, on two counts
1.
- the poster claimed "Neither GPL or BSD put *any* sort of restriction about what you do with the software !"
- Redistribution is something you can do with gpl software - but it IS restricted - you must comply with the restrictions laid down in the gpl.
Or are you now going to claim that redistribution is somehow not something you can do with gpl and bsd software? Even the original posters' "hint that the gpl is a distribution license" implies that there are some "restriction(s) about what you do with the software".2
Think about what you wrote - its probably not what you meant, and its certainly not true, in any country, even the former Soviet Russia, where copyright distributes YOU.
"That doesn't mean I don't feel sorry for the original author, but I think he may need a bit of a spokesperson between him and the rest of the world.."
Deiter may have switched the license back to GPLv2, but at this point, why bother ... he's done more to promote the competing fork as being the "legit, safe" one than anything else.
"Some viciously maintain that a patch that changes "n++" to "++n" is sufficient to to kick in the GPL viral clauses."
At the risk of being a bit off-topic, if n++ is a statement by itself, the compiler will emit the same code as ++n (at leastusing gnu c++), so the change isn't even "trivial" - its non-existent (same as adding some white space)
For example, diff says that:
Interestingly enough, there's no hard studies showing that dvorak is better overall ... and since most of us can probably type more or less as quickly as we can think anyway (hey, how else do you get a frost pist in soviet russia with old koreans and hot grits :-), there's no real advantage to switching, unless you're into "stream-of-conscience" blogging on myspace :-)
If dvorak really were that much better, I'd expect more people to have made the change, since the barriers to change are so small (just change your keymap). But switching to dvorak won't make me code any faster - its not my typing speed that limits my output, but my thinking speed.
http://slashdot.org/comments.pl?sid=230833&cid=187 42007
I included the "hint" part in the above reply to another comment, but at the risk of being redundant, and to make it quite clear that, even including it, the post is wrong, I'll quote tht reply in full here, so maybe you'll "get it" - note I included, in that reply, the fact that your "hint" contradicts the rest of the statement:
[====Quote====]
The statement was clear and unequivocal, and wrong. Here is the original post in question:
The "hint" contradicts the prior statement. Distribution is a limitation on what you can "do" with the software. The hint in fact invalidates the prior statement that the GPL doesn't put any restriction on what you "do" with the software. If the poster had said "Neither GPL or BSD put *any* sort of restriction about what you do with the software on your own computer", which is not the same thing, even then they would be wrong.For example, if you set up your computer with gpl'd software, then give/sell the computer to someone else, you have "distributed." The GPLv2 doesn't allow you to "pass on" the need to distribute the source upstream, by pointing to the download site where you got it from (this is one of the "fixes" proposed for GPLv3).
In other words, BSD != GPL, and its very easy to accidently end up "distributing" under GPLv2.
[==== End Quote ====]
That english isn't your first language is possibly at the root of the misunderstanding. Its quite clear that the GPL does in fact put restrictions on what you can do with the software; you said it doesn't and I pointed out you were wrong.
You also wrote:
Ironic, because that's not me, and that's not my post ...
What can I say - I'm a lefty. And I took (and passed) touch typing in high school. But I won't go back to the "home row keys" method - it doesn't make sense on 105-key keyboards, and contributes to rsi by forcing the pinky fingers to do unnatural extensions. Better to shift the hands slightly, and get more coverage with the other three fingers.
The "hint" contradicts the prior statement. Distribution is a limitation on what you can "do" with the software. The hint in fact invalidates the prior statement that the GPL doesn't put any restriction on what you "do" with the software. If the poster had said "Neither GPL or BSD put *any* sort of restriction about what you do with the software on your own computer", which is not the same thing, even then they would be wrong.
For example, if you set up your computer with gpl'd software, then give/sell the computer to someone else, you have "distributed." The GPLv2 doesn't allow you to "pass on" the need to distribute the source upstream, by pointing to the download site where you got it from (this is one of the "fixes" proposed for GPLv3).
In other words, BSD != GPL, and its very easy to accidently end up "distributing" under GPLv2.
Perhaps you need to look at what you wrote again. You didn't say that the "GPL doesn't restrict how you use it" - you said it has NO restrictions or any type.
Here, word for word, is what you wrote:
The GPL does in fact put restrictions on what you can do with it. Distribution is one such restriction. So when you now try to refute me by writing:
The "home row of keys" was okay for 44-key typewriters - its just plain stupid for 105-key keyboards. I'll never go back to the traditional way of typing, just as I'll never go back to a plain typewriter with less than half as many keys. Times change, and so does the meaning of the term "touch-type"
Also, the Drovak keyboard is biased against left-handers: "The right hand should do more of the typing, because most people are right-handed."
Sounds perfect for japanese pr0n chat!
REAL programmers have to touch-type - we've worn the labels off the keycaps on too many keyboards ...
What's funny is watching people who claim to be such "hotshots" and still don't know the keyboard shortcuts for selecting, cutting, and pasting, in ANY editor.
I took an old keyboard and rearranged the key caps so they said "FUCKBILGATES".
Oddly enough, none of the Windows users could type with it - even after years of computer use, they're not touch typists ...
Actually, the TCO of a mac is now (much) lower than a windows box. No antivirus/spyware to subscribe to, and you won't have to junk your computer twice as often as with a Windows box (slashdot has run several articles about how the average useful lifespan of a mac is twice that of a Windows box). Factor in the time savings from things "just working", the ease of use, etc., and there is no way that you can justify a Windows Vista box to an end user from a TCO perspective, even if Vista were free.
Of course, linux/bsd boxes are even cheaper, but that's beside the point.