Re:Java checked exceptions suck, but how to fix th
on
Java 1.5 vs C#
·
· Score: 4, Interesting
Yeah, there's a syntax for this. It's called "put the try and catch in the function, with an empty catch block, and a comment that indicates why the exception can't happen." Then your function doesn't have to be declared as throwing an exception, and someone who looks at your code will understand that you didn't just eat the exception for no reason.
And, before you whine about having to write the try/catch block, let me echo what somebody else said, that an IDE like IntelliJ will do it all for you (except for the comment).
Let me make sure I've got this right. The point of checked exceptions is to force you to think about the error cases. But they are a bad idea because having to think about the error cases gets in the way of meeting deadlines?!? Is that really what you are saying?
Yeah, the moderators were right - that's an interesting opinion, all right...
Free clue: Yes, some people want to ignore error conditions in the face of deadline pressure. That's their problem. Forcing people to explicitly think about exception cases is a good thing.
Re:Available application servers.
on
Java 1.5 vs C#
·
· Score: 1
All right, let me repeat the question. "What appservers are available for..." I don't really care whether you complete the question with C# or with.NET. What's available now? What can I use today?
"It's just a matter of time" may be true, but if I need it for something now, "someday" doesn't cut it.
Imagine a future where nobody gets paid for content. Ever.
Why imagine that? Well, it's the logical conclusion. DRM is fundamentally unworkable, for the reasons Cory Doctorow explains so eloquently. So the only thing that will stop unlimited copying is legal restrictions, and if enough people decide to ignore the law, the law doesn't work. So imagine this future because the real future may look a lot like it.
Now, would such a future be bad? If we didn't have 100,000 new romance novels published each year, would that be bad? If we didn't have Stephen King making millions of dollars on his books, would that be bad?
If the only people writing were people who just had to write, because they had a burning desire to say something that they thought mattered, it would not be the end of civilization. In fact, it might improve civilization, because the books that actually said something wouldn't get lost in the overwhelming flood of "no message, just plot" books written by people who didn't really care about saying something, but just wanted to make a buck...
I think he hit the brakes and the cruise control did not disengage. See, hitting your brakes is one of the normal ways of turning off cruise control (or, rather, temporarily inactivating it). He never tried overpowering the engine with the brakes. As others have pointed out, shifting into neutral should have worked also.
The problem is, if I'm a developer, and Microsoft lifted my code, and I want to stop them from shipping XP, I'd better have a lot of money and time for lawyers, because they're going to tie me up in court for years. And when I finally get a legal decision, then they will say, "Well, we removed that code years ago, so we can keep shipping XP." And, if the legal decision was that they couldn't ship XP because it contained my code, they would be right - they could keep shipping if they had removed my code in the intervening years of legal battles.
I read his reply. He does all right until his fourth point, where he says, "However, reverse engineering would still require the permission of the copyright holder."
This is total baloney. You only need permission of the copyright holder if you are copying, or if you are creating a derivative work within the meaning of the copyright law. It's not enough to say, "It does the same thing, it's by the same guy, so it must be a derivative." Reverse engineering is almost certainly not going to create a derivative work in copyright terms.
Now, reverse engineering could get you in trouble with patents. And if the same person did the work, there could be trade secret issues. But Connolly didn't argue those points; he yelled about copyrights. Sorry, it doesn't work that way. Copyright only applies if someone copies something. If I understand correctly, Salik says he didn't copy anything; he re-wrote it.
In point 5, Connolly claims, "The code committed to Mambo was done under contract and paid for by the Literati Group." If this is true, that's a big no-no. But if the code committed to Mambo does the same thing as the code written for Literati, but is in fact different code, re-written from scratch (it's only a few lines), then Connolly has nothing contractually to lean on.
Moving on to point 9: Connolly claims that the GPL doesn't require you to redistribute. This is true. What the GPL requires is that, if you distribute the program in any form, you must also distribute the source under the GPL. If you leave the program in-house running your web site, you don't have to distribute the code at all, ever, to anyone, under the GPL or under any other terms.
The questions are: First, did Salik contribute original code to Mambo, or did he contribute the code he wrote under contract for Literati or a derivative thereof? (Note well: "He wrote the one, and then he wrote the other, and they do the same things, so the second must be a derivative" is a fallacious argument.) And second, did Literati distribute the program under any terms to anybody, and does the program contain GPL'd code that is not owned by Literati? (Note that Literati can GPL a version of their code, and ship a version that contains the same code plus other code, without having to GPL all the code in the second version, as long as all the GPL'd code in the second version is owned by themselves.)
But Microsoft said the program is a first step in trying to provide a better experience for customers using legitimate copies of Windows.
I fail to see how asking me if Microsoft can snoop around in my PC is going to give me a "better experience". It will be a worse experience, if for no other reason than having the experience interrupted to ask the privacy-invading question.
"Every recount had him winning"? BULL. Or, more particularly, revisionist history.
For those with short memories: Gore asked for a recount of certain precincts. He got it. He gained a few votes, but was still losing Florida. In other words, after that recount, Gore lost the election.
Gore then asked for another recount of certain other precincts. He gained a few more votes, but still lost. So he asked for yet another recount. At this point, Bush filed suit, saying that Gore shouldn't get to selectively recount, cherry-picking his precincts. The Supreme Court agreed, 7-2. (They also ruled, 5-4, that it was too late to ask any more.)
The only recount Gore one was the one that the press conducted, which took months and recounted the whole state. Gore won that one by two votes. Ironically, Gore never actually asked for that recount.
So get off your rhetorical high horse and look at what actually happened. Every recount most certainly did NOT have Gore winning.
Look, it's one thing if we have to show ID to get on a plane because of terrorism. I don't think that showing ID is an excessive encroachment on my personal freedom. In particular, if it keeps some suicidal maniac off of my plane, yes, I'm perfectly willing to show my ID.
But it's a completely different thing when the government is saying that I, in a court case, can't hear the arguments and evidence against me. That's... frightening. It's also stomping on some pretty clear freedoms and, IIRC, Constitutional protections.
Even if the first battle isn't worth fighting, the second one is...
Once upon a time, we didn't have laws for every possible situation. Once upon a time, we expected people to be able to use reasonable judgment in applying a few laws.
But then people found out that they could make a fine-sounding argument for a horribly flawed position, and some people would be persuaded. If the people who were persuaded were a jury, that was a real problem. The "normal" (unpersuaded) people then felt that they had to have a law to cover that exact situation so that people couldn't win in court with that particular baloney any longer.
And so we "progressed" to the point where we had to have a rule, you couldn't rely on common sense any more. But also, the people with the fine-sounding nonsense started trying to persuade Congress instead of juries...
Abraham Lincoln once won a legal case just by sending a letter. It said, "Yes, it appears that you do have a legally enforcable claim against my client for $600. However, there is a difference between legal and moral, and so I would urge you to try to make $600 some other way." And the other guy accepted this and backed off! I doubt that such an approach would work very often today.
Times have changed, but I'm not sure it's progress...
Re:Next ten years better than the last ten?
on
Ballmer on Linux
·
· Score: 1
OTOH:
-1. Spam.
-2: Viruses (again, the previous decade is when it started hitting the common folk.)
-3: Microsoft dominance.
-4: Spyware.
-5: Identity theft.
-6: goats.cx
(BTW: Why is the parent moderated as Flamebait? I think it's a pretty good point that the last ten years have been miraculous, and they're going to be hard to beat.)
Re:Next ten years better than the last ten?
on
Ballmer on Linux
·
· Score: 2, Insightful
Yeah, true. But, you know, in 1994 I was working on, IIRC, 40 MHz 68040s. They were great chips, don't get me wrong, but: - 2.2 GHz sure kicks 40 MHz, and - The architectural garbage of the Intel line doesn't rear it's ugly head very often (when writing assembly or stepping through the actual assembly instructions). The rest of the time, the compiler protects you from the filth.
The world is going to end! Giant asteroids will destroy all life on earth!
Oops, wrong article. Um... The world is going to end! Global warming... um, well... the Patriot Act... umm...
Well, it's not that bad. Somebody might be able to flip four very carefully selected bits in a file, and still produce the same MD5 hash. This could let me, for example, create an executable that had a normal, benign behaviour, and an evil trojan behaviour, and have one of the bits that I flip change a conditional so that the trojan behaviour was activated. (Note that open source tends to be immune to this kind of nonsense, since in the source code, the actual trojan part - not the conditional that activates it, but the actual evil payload - tends to stick out like a sore thumb.)
Note well that this does not let me create an evil version of somebody else's file. It only lets me create two closely related files, one of which differs by four bits from the other. I have to be able to construct the benign file in such a way that I can turn it into an evil file by changing four bits. And it can't be just any four bits, either; it's a very specific four bits.
So this isn't the end of the world. What it means is that you can't quite trust MD5 to guarantee that you got exactly, bit-for-bit, what you think you got.
But really, this new situation isn't much worse than what we had before. I mean, I could simply have the evil behaviour activated by the date, or by the IP address of the installed machine, or whatever, and get somebody else (who never saw the evil part run) to state that the program did what it was supposed to. Having an MD5 hash doesn't guarantee that the program isn't evil. Bottom line: don't run code written by bad people, whether it has a valid MD5 or not. (I know, I know. How do you tell who the bad people are? That's a hard question, but my point is that a valid MD5 has never told you whether the authors were bad people or not.)
No, what he's saying has nothing to do with MS vs. Unix. He's saying that the effort/time/money required to create the code in the first place is less than the effort required to keep it running: - for the next decade or three - on hardware that wasn't even on the drawing boards when the program was written - for uses that, while within the program's theoretical capability, were never comprehended by the original creators.
Ever maintain a code base for a decade? It's painful - more painful than writing new code. That's his point.
Say I really want to place one of these bets. (I trust Ladbroke's - I know their reputation, even though they're in the UK and I'm not a gambler. I'd bet a lot of money that they will be around in 2010, and will pay up if needed.)
But I can't run down the street to the nearest Ladbroke's, because (AFAIK) the nearest one is 5000 miles away. How does a US person place one of these bets?
Yeah, there's a syntax for this. It's called "put the try and catch in the function, with an empty catch block, and a comment that indicates why the exception can't happen." Then your function doesn't have to be declared as throwing an exception, and someone who looks at your code will understand that you didn't just eat the exception for no reason.
And, before you whine about having to write the try/catch block, let me echo what somebody else said, that an IDE like IntelliJ will do it all for you (except for the comment).
Yeah, the moderators were right - that's an interesting opinion, all right... Free clue: Yes, some people want to ignore error conditions in the face of deadline pressure. That's their problem. Forcing people to explicitly think about exception cases is a good thing.
"It's just a matter of time" may be true, but if I need it for something now, "someday" doesn't cut it.
Why imagine that? Well, it's the logical conclusion. DRM is fundamentally unworkable, for the reasons Cory Doctorow explains so eloquently. So the only thing that will stop unlimited copying is legal restrictions, and if enough people decide to ignore the law, the law doesn't work. So imagine this future because the real future may look a lot like it.
Now, would such a future be bad? If we didn't have 100,000 new romance novels published each year, would that be bad? If we didn't have Stephen King making millions of dollars on his books, would that be bad?
If the only people writing were people who just had to write, because they had a burning desire to say something that they thought mattered, it would not be the end of civilization. In fact, it might improve civilization, because the books that actually said something wouldn't get lost in the overwhelming flood of "no message, just plot" books written by people who didn't really care about saying something, but just wanted to make a buck...
How fast do you think the runaway truck is going?
Just because an insane thing happened (9/11), does the whole world have to go insane?
Apparently so...
The problem is, if I'm a developer, and Microsoft lifted my code, and I want to stop them from shipping XP, I'd better have a lot of money and time for lawyers, because they're going to tie me up in court for years. And when I finally get a legal decision, then they will say, "Well, we removed that code years ago, so we can keep shipping XP." And, if the legal decision was that they couldn't ship XP because it contained my code, they would be right - they could keep shipping if they had removed my code in the intervening years of legal battles.
This is total baloney. You only need permission of the copyright holder if you are copying, or if you are creating a derivative work within the meaning of the copyright law. It's not enough to say, "It does the same thing, it's by the same guy, so it must be a derivative." Reverse engineering is almost certainly not going to create a derivative work in copyright terms.
Now, reverse engineering could get you in trouble with patents. And if the same person did the work, there could be trade secret issues. But Connolly didn't argue those points; he yelled about copyrights. Sorry, it doesn't work that way. Copyright only applies if someone copies something. If I understand correctly, Salik says he didn't copy anything; he re-wrote it.
In point 5, Connolly claims, "The code committed to Mambo was done under contract and paid for by the Literati Group." If this is true, that's a big no-no. But if the code committed to Mambo does the same thing as the code written for Literati, but is in fact different code, re-written from scratch (it's only a few lines), then Connolly has nothing contractually to lean on.
Moving on to point 9: Connolly claims that the GPL doesn't require you to redistribute. This is true. What the GPL requires is that, if you distribute the program in any form, you must also distribute the source under the GPL. If you leave the program in-house running your web site, you don't have to distribute the code at all, ever, to anyone, under the GPL or under any other terms.
The questions are: First, did Salik contribute original code to Mambo, or did he contribute the code he wrote under contract for Literati or a derivative thereof? (Note well: "He wrote the one, and then he wrote the other, and they do the same things, so the second must be a derivative" is a fallacious argument.) And second, did Literati distribute the program under any terms to anybody, and does the program contain GPL'd code that is not owned by Literati? (Note that Literati can GPL a version of their code, and ship a version that contains the same code plus other code, without having to GPL all the code in the second version, as long as all the GPL'd code in the second version is owned by themselves.)
I fail to see how asking me if Microsoft can snoop around in my PC is going to give me a "better experience". It will be a worse experience, if for no other reason than having the experience interrupted to ask the privacy-invading question.
A Beowulf Cluster of Linux standards? Don't we already have that?
"Would you like flies with that?"
For those with short memories: Gore asked for a recount of certain precincts. He got it. He gained a few votes, but was still losing Florida. In other words, after that recount, Gore lost the election.
Gore then asked for another recount of certain other precincts. He gained a few more votes, but still lost. So he asked for yet another recount. At this point, Bush filed suit, saying that Gore shouldn't get to selectively recount, cherry-picking his precincts. The Supreme Court agreed, 7-2. (They also ruled, 5-4, that it was too late to ask any more.)
The only recount Gore one was the one that the press conducted, which took months and recounted the whole state. Gore won that one by two votes. Ironically, Gore never actually asked for that recount.
So get off your rhetorical high horse and look at what actually happened. Every recount most certainly did NOT have Gore winning.
But it's a completely different thing when the government is saying that I, in a court case, can't hear the arguments and evidence against me. That's... frightening. It's also stomping on some pretty clear freedoms and, IIRC, Constitutional protections.
Even if the first battle isn't worth fighting, the second one is...
Gore lost. Simple as that. Get over it already.
When you swear to a court, under penalty of perjury, that something is true, you'd better not make a mistake...
Once upon a time, we didn't have laws for every possible situation. Once upon a time, we expected people to be able to use reasonable judgment in applying a few laws.
But then people found out that they could make a fine-sounding argument for a horribly flawed position, and some people would be persuaded. If the people who were persuaded were a jury, that was a real problem. The "normal" (unpersuaded) people then felt that they had to have a law to cover that exact situation so that people couldn't win in court with that particular baloney any longer.
And so we "progressed" to the point where we had to have a rule, you couldn't rely on common sense any more. But also, the people with the fine-sounding nonsense started trying to persuade Congress instead of juries...
Abraham Lincoln once won a legal case just by sending a letter. It said, "Yes, it appears that you do have a legally enforcable claim against my client for $600. However, there is a difference between legal and moral, and so I would urge you to try to make $600 some other way." And the other guy accepted this and backed off! I doubt that such an approach would work very often today.
Times have changed, but I'm not sure it's progress...
OTOH: -1. Spam. -2: Viruses (again, the previous decade is when it started hitting the common folk.) -3: Microsoft dominance. -4: Spyware. -5: Identity theft. -6: goats.cx (BTW: Why is the parent moderated as Flamebait? I think it's a pretty good point that the last ten years have been miraculous, and they're going to be hard to beat.)
Yeah, true. But, you know, in 1994 I was working on, IIRC, 40 MHz 68040s. They were great chips, don't get me wrong, but:
- 2.2 GHz sure kicks 40 MHz, and
- The architectural garbage of the Intel line doesn't rear it's ugly head very often (when writing assembly or stepping through the actual assembly instructions). The rest of the time, the compiler protects you from the filth.
But yes, those were really nice chips.
I wish I'd said what he said...
The world is going to end! Giant asteroids will destroy all life on earth!
Oops, wrong article. Um... The world is going to end! Global warming... um, well... the Patriot Act... umm...
Well, it's not that bad. Somebody might be able to flip four very carefully selected bits in a file, and still produce the same MD5 hash. This could let me, for example, create an executable that had a normal, benign behaviour, and an evil trojan behaviour, and have one of the bits that I flip change a conditional so that the trojan behaviour was activated. (Note that open source tends to be immune to this kind of nonsense, since in the source code, the actual trojan part - not the conditional that activates it, but the actual evil payload - tends to stick out like a sore thumb.)
Note well that this does not let me create an evil version of somebody else's file. It only lets me create two closely related files, one of which differs by four bits from the other. I have to be able to construct the benign file in such a way that I can turn it into an evil file by changing four bits. And it can't be just any four bits, either; it's a very specific four bits.
So this isn't the end of the world. What it means is that you can't quite trust MD5 to guarantee that you got exactly, bit-for-bit, what you think you got.
But really, this new situation isn't much worse than what we had before. I mean, I could simply have the evil behaviour activated by the date, or by the IP address of the installed machine, or whatever, and get somebody else (who never saw the evil part run) to state that the program did what it was supposed to. Having an MD5 hash doesn't guarantee that the program isn't evil. Bottom line: don't run code written by bad people, whether it has a valid MD5 or not. (I know, I know. How do you tell who the bad people are? That's a hard question, but my point is that a valid MD5 has never told you whether the authors were bad people or not.)
This isn't "a faster computer". This is "a better technique" or "a deeper understanding" - much more dangerous.
No message.
No, what he's saying has nothing to do with MS vs. Unix. He's saying that the effort/time/money required to create the code in the first place is less than the effort required to keep it running:
- for the next decade or three
- on hardware that wasn't even on the drawing boards when the program was written
- for uses that, while within the program's theoretical capability, were never comprehended by the original creators.
Ever maintain a code base for a decade? It's painful - more painful than writing new code. That's his point.
But I can't run down the street to the nearest Ladbroke's, because (AFAIK) the nearest one is 5000 miles away. How does a US person place one of these bets?