What's a record company supposed to do with an artist whose album has a slim chance of even going gold?
1) Make copies 2) Sell copies 3) Profit!
If it takes RIAA members 1,000,000 copies to make a profit, something is way off... that's $15,000,000 gross profit at today's CD prices... Maybe half is lost to retail markup, but still! There is no way in the 21st century that it should cost even 1/100th that much to set up a production run of CD's. Perhaps the record industry needs to take a lesson from cheapbytes.
I never said garbage collection had to be done in the same thread as everything else. It's true, threads are difficult to implement in C, but there are other languages out there.
How much do you know about garbage collection? Do you realize that it's a requirement that the whole VM (or at least all code that potentially has access to the data being cleaned up) must be "paused" throughout the process? Threads don't help one little bit here because you can't find which are stale references when some are being passed around. Perhaps you've met a garbage collector that begins to solve some of these issues, I certainly haven't.
As to the rest, You're the one that seems to think dictating languages to other developers is a good idea. I'm merely trying to point out that both sides have a lot to learn from one another.
I read it the first time, the implication in "at least twice as many" is that "only twice as many" is one possible subset. 2 times, 10 times, 100 times. If you have some source of statistics for comparing the copies of Redhat to the copies of Lindows floating around, I'd certainly like to hear it.
Only twice as many people use Red Hat compared with Lindows? If that were true (as opposed to made up on the spot) then Lindows might be very promising indeed, considering they haven't been around very long...
ie: Is anyone actually buying and using these Walmart PC's? Are they a big hit? If they are a hit, are people running Lindows on them or pirated versions of Windows? I haven't seen a lot of hard statistics on this stuff...
I could talk for hours about the good and bad points of any of several langauges...
If you think that C is merely "obsolete" and "needs to be replaced" you are quite simply uneducated.
If you think that C is inappropriately pushed on projects that would better be served by more modern and higher level languages, or if you think that its niche is ever shrinking and that it is less relevant than it was 20 years ago, then you're absolutely correct.
I don't love too much any language, because other than syntactic sugar they all amount to a Turing machine.
I, by contrast, love different things about every language I use. I should also point out that a Turing machine, quite simply, does not exist.
What I would like is to stop hearing these religiuos wars from people unable to accept change.
Well, getting involved is about the worst way to get them to go away... Personally, I'm tired of people who blindly think that "newer=better" without any hard assesment to go along with it.
Well, I certainly agree with that statement, but I hear there are those who wouldn't...
incompatibilities, security problems, and memory leaks seen in many programs are a direct consequence of the many flaws in C.
If those problems are slowing (or will slow) a particular project down, then C may not be the right choice.
All languages have good and bad sides.
One of the most important features in C#, Java, and D (garbage collection) is also one of the biggest drawbacks. How can you seriously write a program and call what you release professional if it pauses unpredictably for indeterminate amounts of time every so often?
Of course, the low level, power and flexibility of C is also one of its greatest drawbacks. How can you seriously write a program and call what you release professional if it leaks memory, crashes, and/or needs frequent retrofitting to handle larger data spaces?
I work on medium to medium-large (100,000 to 1,000,000 line) programs written by other developers. Most of my time is spent fixing problems in other people's code. Believe me, when you get into this environment less is far, far more. Less, components, less code per component, more flexible and powerful, yet small and efficient components... Basically the fewer operations the better. Don't get me wrong, when coding for fun or education, do exactly as you please, or whatever is most useful, and write as much code as you like. It's only getting into a "production environment" that I'm a minimalist.
For me personally, "ideas" work well at the fundamental language level, or at the well established library level. However, when the "ideas" come from comments or the author's intent, they are too often not what they seem.
As to operations per page (or fitting a lot on one "screen"), I tend to like to see as much in one shot as is reasonable, but that's a personal preference not shared by all of my collegues...
When I read code I don't memorize it line by line, I remember the ideas behind it. The amount of code doesn't have much to do with it, for me at least.
When I go into "hack mode" I begin building a mental picture including all the significant pieces of the system I'm working on. I often get into a state where I'm fairly un-interruptable, my breathing pattern changes and just recently I've had problems with my monitor hurting my eyes as the pupils dilate (which I don't notice till afterwards). I haven't ever hit a "limit" in complexity yet, but the number of operations and general complexity of the code I'm reading tends to directly effect how much time it takes me to build a picture of what's going on. Hence, the amount of time before a hack session ends can be a limiting factor.
Actually that code is a work of art as far as I'm concerned.
Obviously, it wasn't originally written in the form that it shows up on that web page. In fact, the author wrote it in a much cleaner way and then used well known techniques for shrinking code size in C (with the help of a second author) to make a point.
The main point was: This is not a tough probably to solve, in fact 434 bytes is enough! ("lines" has always been a poor measure of complexity, so he chose bytes...)
A secondary point may have been: If Perl is supposed to be a compact and general language, C seems to beat the pants off of it in this problem space.
If you actually want to read the code and understand what it does, I'd suggest running it through a beatifier and then possibly changing variable names as you feel is appropriate. Or you could email the author and ask him for the original version...
As for the scamming, it's done to everyone who doesn't project an air of hollier than thou condescension that will burn the face off of the trangressor with a single glance...
Is *that* why I never have much problem with people assuming I'm dumb? You leave behind 3 faceless corpses and you're branded for life.
Whenever I think about language utility I always think of the gallery of CSS descramblers. Here we see a CSS descrambler in C that is 434 bytes long and runs at better than 10 times the speed of the next smallest implementation (472 bytes of perl code).
Is there another general purpose language around that can solve this problem with equivalent portions of simplicity and performance?
I think incompatability, lack of design work and other general language misuse are more to blame for problems in most C code than the language itself. Nearly any language can be used successfully and effectively and nearly any language can be abused.
Will C be the most widely used programming language for the next 20 years? Hopefully not. Will C continue to be used effectively in the next 20 years when appropriate? Hopefully so.
Men and algoritms both tend to be judged by their fruits. This line from the article was probably the best argument for tossing out the technique at this point:
"There are no proficiency tests, there are no independent studies to say that this works or that it's reliable," Heyer said.
The same arguement would be made about absolutely any automated system for doing the same thing. Computers don't drive cars. Not because they *can't* drive cars, but because they can't do it better, or even as well, as humans.
Any algorithm written by a human being on a platform made by human beings ought to be just as suspect as a human being. If the basic algorithm were public knowledge and seperate open source implementations were created all with the same results on different platforms, then perhaps hard analysis could be brought against it. But a single implementation especially in poorly understood binary is subject to no such analysis.
This ACM classic on trusting trust does a great job of explaining one major loophole. How hard do you think it would be for a malicious coder to insert an algorithm that biased all results away from a specific set of prints?
As to software bias... deviation of the expected value of a statistical estimate from the quantity it estimates
What is a data mining technique if not a synthetic statistical estimate? Bias in an alogorithm doesn't have to be about purposely favoring (or disfavoring) one outcome. Choose 10 completely different methods (or algorithms) for solving a particular problem (spam filtering would be a good example). Each solution to the problem will have different results even for the same input data. I would tend to call that difference a "bias". This bias would exist even with the most "trusted" algorithms and computing platforms.
But I sure couldn't be trusted with an image and expected to come up with a totally unbiased, objective enhancement of it.
Actually, if you were given a "rough print" you'd never seen before and had no idea what it was going to be matched against and had instructions only to "enhance" it, you might come up with something a lot less biased than you might think. As the technician stated himself, if he knew what he was trying to match against, it would be a lot harder to create an unbiased enhancement.
I'm saying [an algorithm] is more trustworthy, repeatable and does not introduce external variables
The algorithm itself *is* an external variable. The bigger and more complex it is, the more external variables it introduces. I'd argue about trustworthy, but I doubt we agree on the definitions of words like "trust" and "truth".
Resolution?
In the sense that an alogirthm in the right circumstances can be better understood than a human, and that a single algorithm could process more fingerprints than a single human, you may be correct that an algorithm could be more appropriate in something approaching an ideal situation. On different fingers, it should be quite plain that a human is vastly more capable than any set of algorithms yet contrived.
As to "enhancing" fingerprints in general. I have faith that our legal system can fully bung up either method. Human directed or computer controlled.
You seem to "trust" a deterministic algorithm to come up with a reliable and reasonable solution to some problem.
You seem to "distrust" a human being to come up with a reliable and reasonable solution to the same problem.
Does this mean in any problem set where a deterministic solution is viable and the answer "matters" the deterministic solution should always be chosen over a more human approach? If so, I'd have to wonder why humans still drive cars, fly airplanes and write algorithms.
Processes don't think. They are not biased! is that clear?
As a programmer, I assure you, I can write algorithms that show bias. Of course, you are correct that none of them think.
From www.m.w.com on bias:
3 a : BENT, TENDENCY b : an inclination of temperament or outlook; especially : a personal and sometimes unreasoned judgment : PREJUDICE c : an instance of such prejudice d (1) : deviation of the expected value of a statistical estimate from the quantity it estimates (2) : systematic error introduced into sampling or testing by selecting or encouraging one outcome or answer over others
A computer works on the data and does not have prejudice for/against it.
Maybe not, but programs often work better on one set of data than another... In this way they can be just as random as poor "human subjectivity". To think that a process is better just because it is wholly deterministic is silly. Actually, worse than silly, it is one of the original assumptions made by many modern scientists.
There have been numerous instances when a correlation between factors was suspected, and data mining was used to prove/disprove the correlation or give a score to it.
Interesting. "proving" something with data? Either that wasn't science or verificationism must not be dead after all... Regardless, different data mining techniques would each give a different "score" would they not? What should that difference be called if not a "bias"?
I saw the show, and no it should not be perfectly legal. The resultant image will be different based upon how the user conducts his technique. That means its more art than science.
So engineering is an art form eh? Assign 20 developers to write a large program with a given set of requirements. You won't find two solutions alike, unless someone cheated. Science is all about reproducibility, not "identical results". Even an undergraduate student of science should know that no two expirements will ever produce the same raw data... The goal of science is to "understand" or "accurately predict" those results with the "simplest" theories possible in a repeatable fashion.
A better measure of reproducibility in this case should be who is matched and with what degree of certainty after applying the technique on a given set of "test" prints. If different technicians generally end up with the same matches, then it is "good science" regardless if the intermediate steps differ.
So, um pardon me for being dumb, but what exactly is different about this "reference" board than a typical ATX board? (Yes, you get schematics, but that doesn't make the board any different!)
It seems if I wanted to build my own laptop from scratch, I'd need a whole lot more than this board to play with (like a whole bin of laptop parts and some method of integrating them or building the missing pieces to fit it all together).
Further, how do I program the chip itself? The crusoe code morphing software sits on a ROM chip...does the board come with a way to reprogram that sucker?
"drastic addition" "total rewrite". Those phrases are definitely not in my PHB's vocabulary. With great effort I've actually gotten him to hear "take the time to do it right" once or twice...
Programmers (one would think) are supposed to know the code and the product better than anyone else. So, sometimes when they think "this code sucks" and a piece of the system ought to be reworked they're exactly right. Then again, sometimes not. So, should refactoring occur in any given situation? Maybe.
Like the Mythical Man Month said: "There is no silver bullet."
But how many people you know use that extra time for something wise?
The same could be said about faster processors, available computing resources and other modern improvements in computers. In fact, maybe developers would write better code if we went back to batch-processing and punch cards, where people had to think before they wrote a line of code.
Then again maybe not.
Just because not everyone has found a use for the commodity yet, or learned how to use it properly yet, doesn't mean it is not useful. I know I was hating life when I lost broadband for 1.5 years (due to ISP bankruptcy) until I got it back again. Even my wife (who is not a very savvy computer user, but does leave her computer on all the time) really missed having readily available internet.
It's the little things that make a big difference, like being able to search google for recipes while cooking, or being able to check out www.m-w.com easily when playing boggle.
Pretty close to dictionary defintion 1. (And btw, just because your definition #1 state the item has to be physical, don't mean it is so!).
Definition #1 doesn't say a single thing about "physical". Neither do my comments other than as an added distinction. My whole point about definition #1 (and you seem to agree on this) is that when copyright infringement occurs only a part of what is owned is affected, not the whole enchilada. This effectively means that copyright infringement is much more akin to trespass than to actual theft. What is infringed is of value, but is not diminished (much) by the mere unauthorized presence of a few copies.
It feels far more natural to me to say that it is a subset of stealing, with some unique attributes
I can't argue about what does or doesn't feel natural. Saying that copyright is a subset of stealing with unique qualities will certainly get you a lot more mileage than simply saying "infringement=theft".
When I take something of value without paying for it, over P2P, I think I have met dictionary definition #3.
I don't well understand item #3. But I'll give you that *something* has been wholly subverted without proper authorization over P2P. The problem is that something is different than the something Jack Valenti would like us to think is stolen over and over again.
I could be happy with the following definition. When copyright is infringed, a "copy" is stolen in the sense that it is "taken without permission". However, in making such use, it is very important to point out that a "work" is NOT stolen in such a situation. A whole work can be stolen, or subverted by plaguerism which is a far worse crime (I would think) than copyright infringement. It is also important to point out that "taken without permission" is a very loose definition of stealing. I can pass gass in your presence (taking liberty without permission) but I have not really commited a theft in that situation, though it would be appropriate to say I had "stolen" that liberty.
I would further argue that when a copy is stolen, it is not stolen from the copyright holder, it is instead stolen from society at large (or the government as society's proxy) because that is where the exclusive right that is being subsumed is derived in the first place. From this it is also plain that Copyright infringement is "stealing a copy" whereas plaguerism is "stealing a whole work". I don't think I have to point out which of those is less likely to get prosecuted or which is more likely to be committed by the RIAA or MPAA.
So if stealing and copies are used together to denote copyright infringement I think I can manage to keep things corked up. When stealing alone is used things feel a bit muddy, so my ears perk up. Of course, whenever someone attempts to push the "stealing" paradigm in the wrong direction I tend to feel a need to whip out the old flame thrower... In your case, I may have been a tad trigger happy.
To say somebody committed copyright infrigement is to only faintly damn them. Joe Sixpack would say "WTF is copyright infringement"
Isn't that exactly what he should be saying at this point?
Is that a rhetorical question?
What's a record company supposed to do with an artist whose album has a slim chance of even going gold?
1) Make copies
2) Sell copies
3) Profit!
If it takes RIAA members 1,000,000 copies to make a profit, something is way off... that's $15,000,000 gross profit at today's CD prices... Maybe half is lost to retail markup, but still! There is no way in the 21st century that it should cost even 1/100th that much to set up a production run of CD's. Perhaps the record industry needs to take a lesson from cheapbytes.
I never said garbage collection had to be done in the same thread as everything else. It's true, threads are difficult to implement in C, but there are other languages out there.
How much do you know about garbage collection? Do you realize that it's a requirement that the whole VM (or at least all code that potentially has access to the data being cleaned up) must be "paused" throughout the process? Threads don't help one little bit here because you can't find which are stale references when some are being passed around. Perhaps you've met a garbage collector that begins to solve some of these issues, I certainly haven't.
As to the rest, You're the one that seems to think dictating languages to other developers is a good idea. I'm merely trying to point out that both sides have a lot to learn from one another.
I read it the first time, the implication in "at least twice as many" is that "only twice as many" is one possible subset. 2 times, 10 times, 100 times. If you have some source of statistics for comparing the copies of Redhat to the copies of Lindows floating around, I'd certainly like to hear it.
Only twice as many people use Red Hat compared with Lindows? If that were true (as opposed to made up on the spot) then Lindows might be very promising indeed, considering they haven't been around very long...
ie: Is anyone actually buying and using these Walmart PC's? Are they a big hit? If they are a hit, are people running Lindows on them or pirated versions of Windows? I haven't seen a lot of hard statistics on this stuff...
Well, keep speaking up. I'll be careful not to sound too much like a language biggot...
I could talk for hours about the good and bad points of any of several langauges...
If you think that C is merely "obsolete" and "needs to be replaced" you are quite simply uneducated.
If you think that C is inappropriately pushed on projects that would better be served by more modern and higher level languages, or if you think that its niche is ever shrinking and that it is less relevant than it was 20 years ago, then you're absolutely correct.
I don't love too much any language, because other than syntactic sugar they all amount to a Turing machine.
I, by contrast, love different things about every language I use. I should also point out that a Turing machine, quite simply, does not exist.
What I would like is to stop hearing these religiuos wars from people unable to accept change.
Well, getting involved is about the worst way to get them to go away... Personally, I'm tired of people who blindly think that "newer=better" without any hard assesment to go along with it.
Perl isn't a real language.
Well, I certainly agree with that statement, but I hear there are those who wouldn't...
incompatibilities, security problems, and memory leaks seen in many programs are a direct consequence of the many flaws in C.
If those problems are slowing (or will slow) a particular project down, then C may not be the right choice.
All languages have good and bad sides.
One of the most important features in C#, Java, and D (garbage collection) is also one of the biggest drawbacks. How can you seriously write a program and call what you release professional if it pauses unpredictably for indeterminate amounts of time every so often?
Of course, the low level, power and flexibility of C is also one of its greatest drawbacks. How can you seriously write a program and call what you release professional if it leaks memory, crashes, and/or needs frequent retrofitting to handle larger data spaces?
I work on medium to medium-large (100,000 to 1,000,000 line) programs written by other developers. Most of my time is spent fixing problems in other people's code. Believe me, when you get into this environment less is far, far more. Less, components, less code per component, more flexible and powerful, yet small and efficient components... Basically the fewer operations the better. Don't get me wrong, when coding for fun or education, do exactly as you please, or whatever is most useful, and write as much code as you like. It's only getting into a "production environment" that I'm a minimalist.
For me personally, "ideas" work well at the fundamental language level, or at the well established library level. However, when the "ideas" come from comments or the author's intent, they are too often not what they seem.
As to operations per page (or fitting a lot on one "screen"), I tend to like to see as much in one shot as is reasonable, but that's a personal preference not shared by all of my collegues...
When I read code I don't memorize it line by line, I remember the ideas behind it. The amount of code doesn't have much to do with it, for me at least.
When I go into "hack mode" I begin building a mental picture including all the significant pieces of the system I'm working on. I often get into a state where I'm fairly un-interruptable, my breathing pattern changes and just recently I've had problems with my monitor hurting my eyes as the pupils dilate (which I don't notice till afterwards). I haven't ever hit a "limit" in complexity yet, but the number of operations and general complexity of the code I'm reading tends to directly effect how much time it takes me to build a picture of what's going on. Hence, the amount of time before a hack session ends can be a limiting factor.
I think that's enough random rambling for now.
Actually that code is a work of art as far as I'm concerned.
Obviously, it wasn't originally written in the form that it shows up on that web page. In fact, the author wrote it in a much cleaner way and then used well known techniques for shrinking code size in C (with the help of a second author) to make a point.
The main point was: This is not a tough probably to solve, in fact 434 bytes is enough! ("lines" has always been a poor measure of complexity, so he chose bytes...)
A secondary point may have been: If Perl is supposed to be a compact and general language, C seems to beat the pants off of it in this problem space.
If you actually want to read the code and understand what it does, I'd suggest running it through a beatifier and then possibly changing variable names as you feel is appropriate. Or you could email the author and ask him for the original version...
As for the scamming, it's done to everyone who doesn't project an air of hollier than thou condescension that will burn the face off of the trangressor with a single glance...
Is *that* why I never have much problem with people assuming I'm dumb? You leave behind 3 faceless corpses and you're branded for life.
C is a powerful language
Whenever I think about language utility I always think of the gallery of CSS descramblers. Here we see a CSS descrambler in C that is 434 bytes long and runs at better than 10 times the speed of the next smallest implementation (472 bytes of perl code).
Is there another general purpose language around that can solve this problem with equivalent portions of simplicity and performance?
I think incompatability, lack of design work and other general language misuse are more to blame for problems in most C code than the language itself. Nearly any language can be used successfully and effectively and nearly any language can be abused.
Will C be the most widely used programming language for the next 20 years? Hopefully not. Will C continue to be used effectively in the next 20 years when appropriate? Hopefully so.
Fundamental right to share (copy) information? Never been such a beast. And for good reason.
What... like freedom of speech?
Here are links to a couple articles I found on google searching first for "scientific naturalism", then for "philosophical naturalism".
Scientific Naturalism
Philosophical Naturalism
Men and algoritms both tend to be judged by their fruits. This line from the article was probably the best argument for tossing out the technique at this point:
"There are no proficiency tests, there are no independent studies to say that this works or that it's reliable," Heyer said.
The same arguement would be made about absolutely any automated system for doing the same thing. Computers don't drive cars. Not because they *can't* drive cars, but because they can't do it better, or even as well, as humans.
Any algorithm written by a human being on a platform made by human beings ought to be just as suspect as a human being. If the basic algorithm were public knowledge and seperate open source implementations were created all with the same results on different platforms, then perhaps hard analysis could be brought against it. But a single implementation especially in poorly understood binary is subject to no such analysis.
This ACM classic on trusting trust does a great job of explaining one major loophole. How hard do you think it would be for a malicious coder to insert an algorithm that biased all results away from a specific set of prints?
As to software bias...
deviation of the expected value of a statistical estimate from the quantity it estimates
What is a data mining technique if not a synthetic statistical estimate? Bias in an alogorithm doesn't have to be about purposely favoring (or disfavoring) one outcome. Choose 10 completely different methods (or algorithms) for solving a particular problem (spam filtering would be a good example). Each solution to the problem will have different results even for the same input data. I would tend to call that difference a "bias". This bias would exist even with the most "trusted" algorithms and computing platforms.
But I sure couldn't be trusted with an image and expected to come up with a totally unbiased, objective enhancement of it.
Actually, if you were given a "rough print" you'd never seen before and had no idea what it was going to be matched against and had instructions only to "enhance" it, you might come up with something a lot less biased than you might think. As the technician stated himself, if he knew what he was trying to match against, it would be a lot harder to create an unbiased enhancement.
I'm saying [an algorithm] is more trustworthy, repeatable and does not introduce external variables
The algorithm itself *is* an external variable. The bigger and more complex it is, the more external variables it introduces. I'd argue about trustworthy, but I doubt we agree on the definitions of words like "trust" and "truth".
Resolution?
In the sense that an alogirthm in the right circumstances can be better understood than a human, and that a single algorithm could process more fingerprints than a single human, you may be correct that an algorithm could be more appropriate in something approaching an ideal situation. On different fingers, it should be quite plain that a human is vastly more capable than any set of algorithms yet contrived.
As to "enhancing" fingerprints in general. I have faith that our legal system can fully bung up either method. Human directed or computer controlled.
You seem to "trust" a deterministic algorithm to come up with a reliable and reasonable solution to some problem.
You seem to "distrust" a human being to come up with a reliable and reasonable solution to the same problem.
Does this mean in any problem set where a deterministic solution is viable and the answer "matters" the deterministic solution should always be chosen over a more human approach? If so, I'd have to wonder why humans still drive cars, fly airplanes and write algorithms.
Processes don't think. They are not biased! is that clear?
As a programmer, I assure you, I can write algorithms that show bias. Of course, you are correct that none of them think.
From www.m.w.com on bias:
A computer works on the data and does not have prejudice for/against it.
Maybe not, but programs often work better on one set of data than another... In this way they can be just as random as poor "human subjectivity". To think that a process is better just because it is wholly deterministic is silly. Actually, worse than silly, it is one of the original assumptions made by many modern scientists.
There have been numerous instances when a correlation between factors was suspected, and data mining was used to prove/disprove the correlation or give a score to it.
Interesting. "proving" something with data? Either that wasn't science or verificationism must not be dead after all... Regardless, different data mining techniques would each give a different "score" would they not? What should that difference be called if not a "bias"?
I saw the show, and no it should not be perfectly legal. The resultant image will be different based upon how the user conducts his technique. That means its more art than science.
So engineering is an art form eh? Assign 20 developers to write a large program with a given set of requirements. You won't find two solutions alike, unless someone cheated. Science is all about reproducibility, not "identical results". Even an undergraduate student of science should know that no two expirements will ever produce the same raw data... The goal of science is to "understand" or "accurately predict" those results with the "simplest" theories possible in a repeatable fashion.
A better measure of reproducibility in this case should be who is matched and with what degree of certainty after applying the technique on a given set of "test" prints. If different technicians generally end up with the same matches, then it is "good science" regardless if the intermediate steps differ.
You say "monopoly" I say "trust", you say "cartel" I say "conglomerate". Let's call the whole thing off.
So, um pardon me for being dumb, but what exactly is different about this "reference" board than a typical ATX board? (Yes, you get schematics, but that doesn't make the board any different!)
It seems if I wanted to build my own laptop from scratch, I'd need a whole lot more than this board to play with (like a whole bin of laptop parts and some method of integrating them or building the missing pieces to fit it all together).
Further, how do I program the chip itself? The crusoe code morphing software sits on a ROM chip...does the board come with a way to reprogram that sucker?
Isn't this the same RIAA press release that spawned a recent Reg article?
What the heck to I really *need* a 2.4GHZ box for???
Unreal tournament?
Rendering the next great digital animation?
Running most large Java applications?
"drastic addition" "total rewrite". Those phrases are definitely not in my PHB's vocabulary. With great effort I've actually gotten him to hear "take the time to do it right" once or twice...
Programmers (one would think) are supposed to know the code and the product better than anyone else. So, sometimes when they think "this code sucks" and a piece of the system ought to be reworked they're exactly right. Then again, sometimes not. So, should refactoring occur in any given situation? Maybe.
Like the Mythical Man Month said: "There is no silver bullet."
But how many people you know use that extra time for something wise?
The same could be said about faster processors, available computing resources and other modern improvements in computers. In fact, maybe developers would write better code if we went back to batch-processing and punch cards, where people had to think before they wrote a line of code.
Then again maybe not.
Just because not everyone has found a use for the commodity yet, or learned how to use it properly yet, doesn't mean it is not useful. I know I was hating life when I lost broadband for 1.5 years (due to ISP bankruptcy) until I got it back again. Even my wife (who is not a very savvy computer user, but does leave her computer on all the time) really missed having readily available internet.
It's the little things that make a big difference, like being able to search google for recipes while cooking, or being able to check out www.m-w.com easily when playing boggle.
Pretty close to dictionary defintion 1. (And btw, just because your definition #1 state the item has to be physical, don't mean it is so!).
Definition #1 doesn't say a single thing about "physical". Neither do my comments other than as an added distinction. My whole point about definition #1 (and you seem to agree on this) is that when copyright infringement occurs only a part of what is owned is affected, not the whole enchilada. This effectively means that copyright infringement is much more akin to trespass than to actual theft. What is infringed is of value, but is not diminished (much) by the mere unauthorized presence of a few copies.
It feels far more natural to me to say that it is a subset of stealing, with some unique attributes
I can't argue about what does or doesn't feel natural. Saying that copyright is a subset of stealing with unique qualities will certainly get you a lot more mileage than simply saying "infringement=theft".
When I take something of value without paying for it, over P2P, I think I have met dictionary definition #3.
I don't well understand item #3. But I'll give you that *something* has been wholly subverted without proper authorization over P2P. The problem is that something is different than the something Jack Valenti would like us to think is stolen over and over again.
I could be happy with the following definition. When copyright is infringed, a "copy" is stolen in the sense that it is "taken without permission". However, in making such use, it is very important to point out that a "work" is NOT stolen in such a situation. A whole work can be stolen, or subverted by plaguerism which is a far worse crime (I would think) than copyright infringement. It is also important to point out that "taken without permission" is a very loose definition of stealing. I can pass gass in your presence (taking liberty without permission) but I have not really commited a theft in that situation, though it would be appropriate to say I had "stolen" that liberty.
I would further argue that when a copy is stolen, it is not stolen from the copyright holder, it is instead stolen from society at large (or the government as society's proxy) because that is where the exclusive right that is being subsumed is derived in the first place. From this it is also plain that Copyright infringement is "stealing a copy" whereas plaguerism is "stealing a whole work". I don't think I have to point out which of those is less likely to get prosecuted or which is more likely to be committed by the RIAA or MPAA.
So if stealing and copies are used together to denote copyright infringement I think I can manage to keep things corked up. When stealing alone is used things feel a bit muddy, so my ears perk up. Of course, whenever someone attempts to push the "stealing" paradigm in the wrong direction I tend to feel a need to whip out the old flame thrower... In your case, I may have been a tad trigger happy.
To say somebody committed copyright infrigement is to only faintly damn them. Joe Sixpack would say "WTF is copyright infringement"
Isn't that exactly what he should be saying at this point?
I'm sure he'll run his next post by his editor. (unless he's a she... but you get the idea)