In many newspapers, the headlines are written by somebody different than the story's author. The headline writer quickly skims the story, and puts down whatever he thinks will be good.
Here, that process gave us the headline: "Disabilities Act doesn't cover Web, court says" on cnet. The/. headline is essentially just a rephrasal of that: "Appeals Court Says ADA Doesn't Cover the Web".
But this isn't what happened. The cnet article starts off saying: "Acting largely on procedural grounds," indicating something rather different. The article says that the appeal was disallowed because there was a procedural error. In particular, the plantiffs used a different argument in appeallate court than they did in the district court, which is generally a no-no. So the appeallate court had no choice but to dismiss the appeal.
But it's clear that this isn't them saying that the ADA doesn't cover the web. "In declining to evaluate the merits of this case, we are in no way unmindful that the legal questions raised are significant," wrote one of the three judges. That's in the article. If you read the judgement itself, it says in the introduction, "Unfortunately, we are unable to reach the merits of this case, however, because none of the issues on appeal are properly before us. Accordingly, we are constrained to dismiss the appeal."
From reading the judgement, I get the impression that the judges are sorry they didn't get to decide the issue. It's almost apologetic in tone, and comes close to giving the plantiffs "hints" on how they might argue a similar case next time. But they're not allowed to review issues that weren't raised in the district court, unless there's a really good reason. You can read the judgement for details; it spends most of its length discussing why it can't examine this case.
The headline here is just plain wrong; the appeallate court said nothing of the kind. Don't believe headlines.
You might want to bind *print-length* and *print-level* fairly low when you're printing repr; that may eliminate some of the [...]s. For that matter, you may want to wrap that whole thing in a with-standard-io-syntax, in case some print variables happen to have funky values when it's called.
Me, I tend to use (print `(foo before processing ->,foo)) instead, but everybody's got their own style.
Just in case anybody interested hasn't heard of it, the ATLAS library is a C / Fortran 77 library for linear algebra (which is a significant part of scientific programming). It tunes itself at compile-time, to your particular processor and number of CPUs (and whatever else might be affecting your FP performance) by doing tests.
AMD and Intel both subscribe to the IEEE 754 standard for FPU units,
This is true for "normal" floating-point operations and SSE, but 3DNow! is not IEEE-compliant. There are also some ways to introduce non-compliance in SSE, such as the LDMXCSR, RCP, and RSQRT instructions. (The former can change over/underflow behavior, and the other two are approximation functions.)
A couple of years ago, I was at Defcon. A Russian gentleman started his talk, when he was interrupted by the man who organizes Defcon. The speaker was asked to say "nuclear wessels". The speaker was clearly confused by the request, but the organizer persisted. I doubt the speaker knew what he was saying: he was working from a script that he'd prepared before, and obviously was not able to speak conversational English, let alone understand "nuclear wessels". Finally, after much prodding, the speaker said "nuclear wessels" into the mic, with a very confused expression on his face. The organizer sat down and the talk began.
The next day, that speaker was arrested. I keep wondering if he considered that the two events were somehow related.
Of course, now we all know that Dmitri was in fact arrested for a DMCA violation, but until somebody explained that to him...
Reading your post is like one of those "How Many Mistakes Are In This Picture" things you see in Highlights.
The salt doesn't have anything to with protecting against dictionary attacks,
The salt is exactly to prevent against dictionary attacks. A dictionary attack (using the term old-school) is where I prepare, in advance, a dictionary of passwords and their hash values, indexed by the latter. Then, when you're making your attack, you look up the hashed password and voila! you know the password. In a world without salts, I expect that many security folks would be able to recognize many common passwords' hash values on sight.
it is used to make the algorithm computationaly harder to break.
The salt does nothing (or rather an insignificant amount) to make the computation harder. It's specifically used to prevent a dictionary attack.
The salt is simply the first two characters in your hash,
The salt is a randomly-generated sequence. It's stored as the first two characters of the encrypted password in traditional crypt() passwords, and is followed by the hash. But it's not the first two characters of the hash.
all of the subsequent characters are based from the salt.
They're based off of both the salt and the password. Your post makes it sound like the password is hashed, the first two characters of the hash are the salt, and the rest of the password entry are generated from that. This is not at all what happens.
The salt is generated randomly (from the time of day, number of processes running, etc), to get 12 bits of randomness (note that the salt is isomorphic with the space [A-Za-z0-9/.]{2}). The password is hashed using a DES, with the password as the key and a string of 0s as the plaintext. Partway through the DES operation (specifically, after the E-box), some of the bits are swapped based on the salt.
After DES outputs the hash value (its ciphertext), it is appended to the salt. This concatenated value is stored in the passwd field of your passwd file. So the salt is the first two characters of that output, but it's not the first two characters of the hash. It's used to perturb the hash in one of 2^12 ways.
Note that the specifics I gave (length of salt, use of DES) only applies to traditional Unix passwords. Most modern Unixes use a different hash scheme by default, such as MD5. The role of the salt still applies: it's used to perturb the hash function to prevent dictionary attacks. There are differences in how it's stored and how it perturbs the hash.
XOR is a perfectly legitimate method for combining the key, or key-generated data, with the plaintext.
If you're using the key, it has to be an OTP. As soon as you repeat your message using the same key, your cipher's busted.
In the case of key-generated data, that's pretty much what a stream cipher does. But then you don't refer to the cipher as XOR, you refer to it as a stream cipher. You could just as easily use mod-256 addition as XOR if you wanted; the point of the cipher isn't the combination technique, but the stream generator.
The grandparent was referring to XOR as the only cipher method. In the case of an OTP (like you used), it's okay, but that's the only case. This is clearly not an OTP we're dealing with here.
What's worse (and aside from your point), it's open to a chosen-plaintext attack: buy another JumpDrive, set the password, observe. A chosen-plaintext attack can reveal the key of a simple XOR cipher in a single attack (assuming you can ascertain the maximum key length, which is probably something that the password entry dialog gives you). Even without chosen-plaintext, it doesn't take many samples to reveal the key of an XOR cipher, but with chosen-plaintext it's just too trivial.
Depending on what kind of web development work you father is doing, the Web Developer extension might be a lifesaver.
Not to mention the DevEdge Sidebar. I use the MultiBar... all the references for web pages in one convenient, easy-to-reference table. It's what convinced a friend of mine to embrace the Mozilla.
Actually, what Miller did was give a passionate speech about an issue and BACKED IT UP WITH FACT.
What facts did he use to back up this, the central point of his speech:
No one should dare to even think about being the Commander in Chief of this country if he doesn't believe with all his heart that our soldiers are liberators abroad and defenders of freedom at home.
Yes, he did list weapons which Kerry had voted against. He also did note that, "As a war protester, Kerry blamed our military." However, he failed to list any facts to support his the idea that the "soldiers are liberators abroad and defenders of freedom at home", and he failed to list any facts to support the notion that anybody applying for the job of CINC should believe this.
While Kerry's voting record regarding the war has been well-publicised, I am not aware of any facts that are as well publicised that indicate that the war is a necessary thing. Since that point was central to his thesis, Miller should have listed facts to back that up.
If I tell you that washing machines cause cancer, and back it up by giving the cancer mortality rate, I haven't addressed the issue that washing machines cause cancer. I've only explained why cancer is bad.
As for the interview afterwords, that fat pig chris mathews had it coming to him after he AMBUSHED a fine young reporter named Michelle Malkin a few nights before and basically screamed at her for the whole interview. Old Zell was just being man and fighting for that poor girl.
Whether Matthews deserved a tongue lashing from Sen. Miller or not because of his actions with Malkin is up for debate, but Miller wasn't chastising Matthews for his actions re Malkin
until the end of the interview. He was behaving quite aggressively before bringing that up.
MATTHEWS: Jim Jeffords switched parties after getting elected.
MILLER: If you're going to ask a question...
MATTHEWS: Well, it's a tough question. It takes a few words.
MILLER: Get out of my face.
MILLER: If you are going to ask me a question, step back and let me answer.
(LAUGHTER)
MATTHEWS: Senator, please.
MILLER: You know, I wish we...
MILLER: I wish we lived in the day where you could challenge a person to a duel.
MILLER: Now, that would be pretty good.
Don't ask me--don't pull that...
(CROSSTALK)
MATTHEWS: Can you can come over? I need you, Senator. Please come over.
MILLER: Wait a minute. Don't pull that kind of stuff on me, like you did that young lady when you had her there, browbeating her to death. I am not her. I am not her.
That was the first time that Miller brought up Malkin. He expressed a desire to challenge Matthews to a duel prior to Malkin becoming an issue.
Again, the entire transcript is available online, so everybody can read the whole thing and make up their own minds.
Yes, I would say the Republicans shook off their loony right. "Loonies" here are people who consider a person or position 100% evil with no chance of facts changing their mind.
That actually struck me as a pretty good description of Zell Miller, after he spoke at the RNC and the interview afterwards.
First, stop giving so much power to the federal government.
Have you ever played Nomic? It's a game where you change the rules. That's the whole game, at least at first, although it can change to something else if the new rules say it should.
It was invented by a multi-disciplined professor named Peter Suber, in a paper entitled "The Paradox of Self-Amendment: A Study of Law, Logic, Omnipotence, and Change". One sort of thing that I always think about when I read this is how the Federal Gum'mint has granted itself so much power, particularly since McCulloch v. Maryland. The federal courts decided that the federal government had supremacy over the state governments in all matters. Of course, Article VI of the Constitution says that the Constitution and the laws made in accordance with it are the supreme law of the land, and all of the states' legislators have sworn to uphold that. But when the federal government oversteps the bounds its given by the Constitution, what then? The states have taken no oath to uphold them, but the federal courts have said they must.
I'm not phrasing my point very well, I'm afraid. I suppose it's clear that in the Jefferson/Hamilton debate, I side with Jefferson, and feel that the federal government has usurped power that is not rightly its, and has no authority to claim it. It's not a matter of the people giving power to the feds, it's a matter of the feds claiming powers which they are not entitled to.
Our founding fathers left us with a brilliant system, a way to make sure that the invidual states and their preferences could be respected.
A friend of mine, on his first day of Constitutional law class, was instructed by the prof: "Turn in your books to the Constitution. Now, you see the 10th amendment? Rip it out; it's been dead since the Civil War."
"...a representative owes the People not only his industry, but his judgment, and he betrays them if he sacrifices it to their opinion."
Edmond Burke of the British Parliament
Quoted by Dr. Lyman Hall (GA), and thus was the Declaration of Independence signed, contrary to the vote in Georgia
RSS feed on voting?
on
Hacking Congress
·
· Score: 2, Interesting
As for myself, I think it'd be good to have an RSS feed for votes. I'd like to be able to watch the bills as they're voted on, and how my senator voted (all this goes for the House too). Ideally, it should include information on the bill #, title, and abstract; how my senator voted, and the vote's outcome; and for bonus points include information in the feed about how long the bill was debated on the floor (so you can note contriversial ones), how long the text of the bill is, and the top N words used in the text of the bill, from a list of keywords ("military", "law enforcement", "copyright", etc), all just so you can take special note of bills that are more significant to you.
I think that being able to get an overall sense of how my senator votes would be a very good thing. It'd be nice to get this information to the public. It seems that most people have no idea how their congresscritters vote. I think if we make that information trivial to see, it'll be a Good Thing.
I've got a mental picture of a scrolling vote bar on every geeks' desktop, and every now and then our congressional representatives get a bunch of "T4I5 V073 SUXX0RZ!" emails.
I keep hearing this argument. However, I am not all that convinced that modularity will improve stability. After all, things tend to break around the edges. More modules means more edges, thus more opportunities to break.
Okay, if we're using this metaphor...
I disagree. When you look at the structure of most bigmonolithic software, it's not like the monolith in 2001. It's more like a Koch curve, with lots of twists and turns everywhere filling the space we call the monolith. You end up with edges all over the place.
But with a Koch curve, when you locate a spot that you need to fix, you have a hard time telling where it is along the whole curve. The space is filled with one very twisty curve, so all you can say is, "It's part of the monolith".
On the other hand, with modules, everything you can point to is identifiable, so it's easier to maintain.
Also, modules only work by virtue of well-defined interfaces. What if some of the interfaces turn out to be suboptimal? Retaining the interface can severely burden development and innovation. Changing the interface can require massive code changes.
The alternative is poorly-defined interfaces within the program, and those end up being much harder to change. When you modify the meaning of a flag here, it breaks five things over there because there was no rule saying they couldn't use it. The interrelationships of a monolith become very hard to track.
You still have to maintain interfaces in a monolith, it's just that everything you do becomes part of the interface, so you can't change anything.
If an employer finds that people aren't doing their job when working from home, either make them come into the office, or fire them and hire someone more responsible.
Or possibly figure out why they're not being productive at home. In my case, my chair broke once so that the back wouldn't stay up. I didn't think much of it, but it was so uncomfortable that I couldn't concentrate for more than 10-15 minutes. My productivity was hurt severely. It took me a while to identify the problem, but once I did, a quick bit of dealing on craigslist and I was back in business.
Just because somebody isn't working effectively from home doesn't necessarily mean that they're irresponsible.
Many of the XP stories I've heard have been tales of woe, so I'm interested in hearing about your project. Has somebody on your team written up this success story somewhere?
In this case there is the gettext library which is released under the GPL, not the LGPL.
The tools (such as xgettext) are under the GPL, but the library is under the LGPL. That's why I was careful to refer only to libintl, not gettext as a whole.
I'll respond to the remainder without taking that into account.
The act then of dynamically linking to that library is then the other question, but I would say that that does not require a license either. Libraries by their definition are intended to be linked to, and thus dynamic linking is simply using the library and not copying it in any way.
To address the particular case: although the binary was dynamically linked to libiconv, it was statically linked to glib and gtk. Since you have to provide a way to relink the LGPL'd libraries, then that's a problem.
To address the general case: the issue of dynamic linking and the GPL has been debated at some length for several years. Here's my take on it, which is fairly similar to what GNU seems to feel.
The GPL doesn't discuss "executable files", it talks about "programs". It doesn't matter that the program is separated among multiple files, any more than it matters that it may have multiple code segments in an executable. You have to discuss the program as a whole.
If the libraries are intertwined with the program, so as to make them effectively a single unit, then it's a single program that happens to be in multiple files. To use your book analogy, consider a story that's in three volumes. The beginning of each sentence is in the first volume, the middle is in the second volume, and the end is in the third volume. To read the story, you have to switch between the volumes constantly. This is effectively a single book, despite being in three volumes; no volume is useful by itself.
On the other hand, a book which mentions another book is not the same story. I frequently am able to read and understand books without even looking at the bibliography. In this case, the book stands on its own.
This differs from your example of a proprietary program using a GPL'd library: the executable won't stand on its own without the library.
There's the alternate example of using a proprietary library with a GPL's executable. This is not very different, from a technical standpoint: the only difference between an executable and a dynamic library is where the _start symbol is, and whether the file can be stripped. From a higher perspective, they're still part of the same program.
If dynamic linking was to be clearly seen as requiring a license, consider all the operating system libraries.
That is specifically covered by the GPL:
However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs
In fact, you could even consider the act of running a program to require a license, as it depends on the operating system itself.
There's a similar issue in some case law. (Note: I'm not a lawyer.) Since the act of running a program requires making a copy (from disk to memory), it requires a license from the manufacturer. This is the legal basis on which EULAs were once formed, more or less. However, it's quite shaky, and I believe the current copyright law has a particular exception: copying that happens as a necessary part of the work being used in its normal way is exempt. But that's not really relevant to this issue anyway.
Of course, the library issue is fairly irrelevant to this case. The main issue is, who owns the copyrights to the contributed code? XChat's author feels that he can do what he wishes with that code (in particular, release a binary of it without offering source), while others disagree. They feel that the contributions are necessarily under the GPL, since they were modifications to GPL'd code, and the contributors never assigned copyright to the XChat author.
So, they cant release thier own code under whatever different licenses they want and they just package the other necessary pieces with it and make the source for like gtk or whatever availible?
Since GTK (and libintl, the other lib they use) are under the LGPL, they can. If they were under the full GPL, they couldn't.
But this isn't about GTK or libintl, or the author's original code; it's about contributions made to the main source tree. The author says that those are implicitly his to do with as he pleases. Those on the other side say that they are not his, and that they were implicitly under the GPL.
The price he's charging has nothing to do with it. It's that he's not distributing source, even though the contributors' source is (implicitly, according to the arguments) GPL.
But it's fine if he gives the binaries away or charges $5000/ea for them, just so long as he also includes the source or an offer for the source. (And doesn't restrict further distribution, of course.)
Here, that process gave us the headline: "Disabilities Act doesn't cover Web, court says" on cnet. The /. headline is essentially just a rephrasal of that: "Appeals Court Says ADA Doesn't Cover the Web".
But this isn't what happened. The cnet article starts off saying: "Acting largely on procedural grounds," indicating something rather different. The article says that the appeal was disallowed because there was a procedural error. In particular, the plantiffs used a different argument in appeallate court than they did in the district court, which is generally a no-no. So the appeallate court had no choice but to dismiss the appeal.
But it's clear that this isn't them saying that the ADA doesn't cover the web. "In declining to evaluate the merits of this case, we are in no way unmindful that the legal questions raised are significant," wrote one of the three judges. That's in the article. If you read the judgement itself, it says in the introduction, "Unfortunately, we are unable to reach the merits of this case, however, because none of the issues on appeal are properly before us. Accordingly, we are constrained to dismiss the appeal."
From reading the judgement, I get the impression that the judges are sorry they didn't get to decide the issue. It's almost apologetic in tone, and comes close to giving the plantiffs "hints" on how they might argue a similar case next time. But they're not allowed to review issues that weren't raised in the district court, unless there's a really good reason. You can read the judgement for details; it spends most of its length discussing why it can't examine this case.
The headline here is just plain wrong; the appeallate court said nothing of the kind. Don't believe headlines.
You might want to bind *print-length* and *print-level* fairly low when you're printing repr; that may eliminate some of the [...]s. For that matter, you may want to wrap that whole thing in a with-standard-io-syntax, in case some print variables happen to have funky values when it's called.
Me, I tend to use (print `(foo before processing -> ,foo)) instead, but everybody's got their own style.
Just in case anybody interested hasn't heard of it, the ATLAS library is a C / Fortran 77 library for linear algebra (which is a significant part of scientific programming). It tunes itself at compile-time, to your particular processor and number of CPUs (and whatever else might be affecting your FP performance) by doing tests.
The author also has some quick n' dirty notes for floating-point issues.
AMD and Intel both subscribe to the IEEE 754 standard for FPU units,
This is true for "normal" floating-point operations and SSE, but 3DNow! is not IEEE-compliant. There are also some ways to introduce non-compliance in SSE, such as the LDMXCSR, RCP, and RSQRT instructions. (The former can change over/underflow behavior, and the other two are approximation functions.)
Incidentally, there's an expiration date on the back of these things (I just thought to check).
That's an expiration date? I'm glad you told me that... it's in the middle of my vacation next month!
A couple of years ago, I was at Defcon. A Russian gentleman started his talk, when he was interrupted by the man who organizes Defcon. The speaker was asked to say "nuclear wessels". The speaker was clearly confused by the request, but the organizer persisted. I doubt the speaker knew what he was saying: he was working from a script that he'd prepared before, and obviously was not able to speak conversational English, let alone understand "nuclear wessels". Finally, after much prodding, the speaker said "nuclear wessels" into the mic, with a very confused expression on his face. The organizer sat down and the talk began.
The next day, that speaker was arrested. I keep wondering if he considered that the two events were somehow related.
Of course, now we all know that Dmitri was in fact arrested for a DMCA violation, but until somebody explained that to him...
On a completely and totally unrelated topic, does anybody know where I can buy lots of banner ad space in bulk?
Reading your post is like one of those "How Many Mistakes Are In This Picture" things you see in Highlights.
The salt doesn't have anything to with protecting against dictionary attacks,
The salt is exactly to prevent against dictionary attacks. A dictionary attack (using the term old-school) is where I prepare, in advance, a dictionary of passwords and their hash values, indexed by the latter. Then, when you're making your attack, you look up the hashed password and voila! you know the password. In a world without salts, I expect that many security folks would be able to recognize many common passwords' hash values on sight.
it is used to make the algorithm computationaly harder to break.
The salt does nothing (or rather an insignificant amount) to make the computation harder. It's specifically used to prevent a dictionary attack.
The salt is simply the first two characters in your hash,
The salt is a randomly-generated sequence. It's stored as the first two characters of the encrypted password in traditional crypt() passwords, and is followed by the hash. But it's not the first two characters of the hash.
all of the subsequent characters are based from the salt.
They're based off of both the salt and the password. Your post makes it sound like the password is hashed, the first two characters of the hash are the salt, and the rest of the password entry are generated from that. This is not at all what happens.
The salt is generated randomly (from the time of day, number of processes running, etc), to get 12 bits of randomness (note that the salt is isomorphic with the space [A-Za-z0-9/.]{2}). The password is hashed using a DES, with the password as the key and a string of 0s as the plaintext. Partway through the DES operation (specifically, after the E-box), some of the bits are swapped based on the salt.
After DES outputs the hash value (its ciphertext), it is appended to the salt. This concatenated value is stored in the passwd field of your passwd file. So the salt is the first two characters of that output, but it's not the first two characters of the hash. It's used to perturb the hash in one of 2^12 ways.
Note that the specifics I gave (length of salt, use of DES) only applies to traditional Unix passwords. Most modern Unixes use a different hash scheme by default, such as MD5. The role of the salt still applies: it's used to perturb the hash function to prevent dictionary attacks. There are differences in how it's stored and how it perturbs the hash.
For further study, I recommend reading Password Security: A Case History by Robert Morris and Ken Thompson.
XOR is a perfectly legitimate method for combining the key, or key-generated data, with the plaintext.
If you're using the key, it has to be an OTP. As soon as you repeat your message using the same key, your cipher's busted.
In the case of key-generated data, that's pretty much what a stream cipher does. But then you don't refer to the cipher as XOR, you refer to it as a stream cipher. You could just as easily use mod-256 addition as XOR if you wanted; the point of the cipher isn't the combination technique, but the stream generator.
The grandparent was referring to XOR as the only cipher method. In the case of an OTP (like you used), it's okay, but that's the only case. This is clearly not an OTP we're dealing with here.
What's worse (and aside from your point), it's open to a chosen-plaintext attack: buy another JumpDrive, set the password, observe. A chosen-plaintext attack can reveal the key of a simple XOR cipher in a single attack (assuming you can ascertain the maximum key length, which is probably something that the password entry dialog gives you). Even without chosen-plaintext, it doesn't take many samples to reveal the key of an XOR cipher, but with chosen-plaintext it's just too trivial.
Depending on what kind of web development work you father is doing, the Web Developer extension might be a lifesaver.
Not to mention the DevEdge Sidebar. I use the MultiBar... all the references for web pages in one convenient, easy-to-reference table. It's what convinced a friend of mine to embrace the Mozilla.
Actually, what Miller did was give a passionate speech about an issue and BACKED IT UP WITH FACT.
What facts did he use to back up this, the central point of his speech:
Yes, he did list weapons which Kerry had voted against. He also did note that, "As a war protester, Kerry blamed our military." However, he failed to list any facts to support his the idea that the "soldiers are liberators abroad and defenders of freedom at home", and he failed to list any facts to support the notion that anybody applying for the job of CINC should believe this.
While Kerry's voting record regarding the war has been well-publicised, I am not aware of any facts that are as well publicised that indicate that the war is a necessary thing. Since that point was central to his thesis, Miller should have listed facts to back that up.
If I tell you that washing machines cause cancer, and back it up by giving the cancer mortality rate, I haven't addressed the issue that washing machines cause cancer. I've only explained why cancer is bad.
Fortunately, the text of Miller's speech is available online.
As for the interview afterwords, that fat pig chris mathews had it coming to him after he AMBUSHED a fine young reporter named Michelle Malkin a few nights before and basically screamed at her for the whole interview. Old Zell was just being man and fighting for that poor girl.
Whether Matthews deserved a tongue lashing from Sen. Miller or not because of his actions with Malkin is up for debate, but Miller wasn't chastising Matthews for his actions re Malkin until the end of the interview. He was behaving quite aggressively before bringing that up.
That was the first time that Miller brought up Malkin. He expressed a desire to challenge Matthews to a duel prior to Malkin becoming an issue.
Again, the entire transcript is available online, so everybody can read the whole thing and make up their own minds.
Yes, I would say the Republicans shook off their loony right. "Loonies" here are people who consider a person or position 100% evil with no chance of facts changing their mind.
That actually struck me as a pretty good description of Zell Miller, after he spoke at the RNC and the interview afterwards.
Of course, he's a Democrat.
First, stop giving so much power to the federal government.
Have you ever played Nomic? It's a game where you change the rules. That's the whole game, at least at first, although it can change to something else if the new rules say it should.
It was invented by a multi-disciplined professor named Peter Suber, in a paper entitled "The Paradox of Self-Amendment: A Study of Law, Logic, Omnipotence, and Change". One sort of thing that I always think about when I read this is how the Federal Gum'mint has granted itself so much power, particularly since McCulloch v. Maryland. The federal courts decided that the federal government had supremacy over the state governments in all matters. Of course, Article VI of the Constitution says that the Constitution and the laws made in accordance with it are the supreme law of the land, and all of the states' legislators have sworn to uphold that. But when the federal government oversteps the bounds its given by the Constitution, what then? The states have taken no oath to uphold them, but the federal courts have said they must.
I'm not phrasing my point very well, I'm afraid. I suppose it's clear that in the Jefferson/Hamilton debate, I side with Jefferson, and feel that the federal government has usurped power that is not rightly its, and has no authority to claim it. It's not a matter of the people giving power to the feds, it's a matter of the feds claiming powers which they are not entitled to.
Our founding fathers left us with a brilliant system, a way to make sure that the invidual states and their preferences could be respected.
A friend of mine, on his first day of Constitutional law class, was instructed by the prof: "Turn in your books to the Constitution. Now, you see the 10th amendment? Rip it out; it's been dead since the Civil War."
"...a representative owes the People not only his industry, but his judgment, and he betrays them if he sacrifices it to their opinion."
Edmond Burke of the British Parliament
Quoted by Dr. Lyman Hall (GA), and thus was the Declaration of Independence signed, contrary to the vote in Georgia
I think that being able to get an overall sense of how my senator votes would be a very good thing. It'd be nice to get this information to the public. It seems that most people have no idea how their congresscritters vote. I think if we make that information trivial to see, it'll be a Good Thing.
I've got a mental picture of a scrolling vote bar on every geeks' desktop, and every now and then our congressional representatives get a bunch of "T4I5 V073 SUXX0RZ!" emails.
I keep hearing this argument. However, I am not all that convinced that modularity will improve stability. After all, things tend to break around the edges. More modules means more edges, thus more opportunities to break.
Okay, if we're using this metaphor...
I disagree. When you look at the structure of most bigmonolithic software, it's not like the monolith in 2001. It's more like a Koch curve, with lots of twists and turns everywhere filling the space we call the monolith. You end up with edges all over the place.
But with a Koch curve, when you locate a spot that you need to fix, you have a hard time telling where it is along the whole curve. The space is filled with one very twisty curve, so all you can say is, "It's part of the monolith".
On the other hand, with modules, everything you can point to is identifiable, so it's easier to maintain.
Also, modules only work by virtue of well-defined interfaces. What if some of the interfaces turn out to be suboptimal? Retaining the interface can severely burden development and innovation. Changing the interface can require massive code changes.
The alternative is poorly-defined interfaces within the program, and those end up being much harder to change. When you modify the meaning of a flag here, it breaks five things over there because there was no rule saying they couldn't use it. The interrelationships of a monolith become very hard to track.
You still have to maintain interfaces in a monolith, it's just that everything you do becomes part of the interface, so you can't change anything.
It's not like sudo's a particularly difficult-to-use program. What's the point?
If an employer finds that people aren't doing their job when working from home, either make them come into the office, or fire them and hire someone more responsible.
Or possibly figure out why they're not being productive at home. In my case, my chair broke once so that the back wouldn't stay up. I didn't think much of it, but it was so uncomfortable that I couldn't concentrate for more than 10-15 minutes. My productivity was hurt severely. It took me a while to identify the problem, but once I did, a quick bit of dealing on craigslist and I was back in business.
Just because somebody isn't working effectively from home doesn't necessarily mean that they're irresponsible.
Many of the XP stories I've heard have been tales of woe, so I'm interested in hearing about your project. Has somebody on your team written up this success story somewhere?
Firstly, the halting problem is trivially decidable for any particular program, the program either halts or it doesn't.
Excellent! Then let's trivially decide whether this program halts or not.
This was taken from "Godel Escher Bach", which discusses this sort of thing and related problems. It sounds like you might enjoy it.
You don't think Dolby is a monopoly? What other sound formats are there besides DTS?
On DVDs? PCM, MPEG-2, and SDDS are allowed, although I'm not aware of any SDDS-capable home equipment.
In this case there is the gettext library which is released under the GPL, not the LGPL.
The tools (such as xgettext) are under the GPL, but the library is under the LGPL. That's why I was careful to refer only to libintl, not gettext as a whole.
I'll respond to the remainder without taking that into account.
The act then of dynamically linking to that library is then the other question, but I would say that that does not require a license either. Libraries by their definition are intended to be linked to, and thus dynamic linking is simply using the library and not copying it in any way.
To address the particular case: although the binary was dynamically linked to libiconv, it was statically linked to glib and gtk. Since you have to provide a way to relink the LGPL'd libraries, then that's a problem.
To address the general case: the issue of dynamic linking and the GPL has been debated at some length for several years. Here's my take on it, which is fairly similar to what GNU seems to feel.
The GPL doesn't discuss "executable files", it talks about "programs". It doesn't matter that the program is separated among multiple files, any more than it matters that it may have multiple code segments in an executable. You have to discuss the program as a whole.
If the libraries are intertwined with the program, so as to make them effectively a single unit, then it's a single program that happens to be in multiple files. To use your book analogy, consider a story that's in three volumes. The beginning of each sentence is in the first volume, the middle is in the second volume, and the end is in the third volume. To read the story, you have to switch between the volumes constantly. This is effectively a single book, despite being in three volumes; no volume is useful by itself.
On the other hand, a book which mentions another book is not the same story. I frequently am able to read and understand books without even looking at the bibliography. In this case, the book stands on its own.
This differs from your example of a proprietary program using a GPL'd library: the executable won't stand on its own without the library.
There's the alternate example of using a proprietary library with a GPL's executable. This is not very different, from a technical standpoint: the only difference between an executable and a dynamic library is where the _start symbol is, and whether the file can be stripped. From a higher perspective, they're still part of the same program.
If dynamic linking was to be clearly seen as requiring a license, consider all the operating system libraries.
That is specifically covered by the GPL:
In fact, you could even consider the act of running a program to require a license, as it depends on the operating system itself.
There's a similar issue in some case law. (Note: I'm not a lawyer.) Since the act of running a program requires making a copy (from disk to memory), it requires a license from the manufacturer. This is the legal basis on which EULAs were once formed, more or less. However, it's quite shaky, and I believe the current copyright law has a particular exception: copying that happens as a necessary part of the work being used in its normal way is exempt. But that's not really relevant to this issue anyway.
Of course, the library issue is fairly irrelevant to this case. The main issue is, who owns the copyrights to the contributed code? XChat's author feels that he can do what he wishes with that code (in particular, release a binary of it without offering source), while others disagree. They feel that the contributions are necessarily under the GPL, since they were modifications to GPL'd code, and the contributors never assigned copyright to the XChat author.
Okay, I'll agree with that.
I live in the SF Bay Area now, and would much rather watch a UT game than a Raiders game.
Although I'd rather watch the MOB than much anything else on the field. :-)
So, they cant release thier own code under whatever different licenses they want and they just package the other necessary pieces with it and make the source for like gtk or whatever availible?
Since GTK (and libintl, the other lib they use) are under the LGPL, they can. If they were under the full GPL, they couldn't.
But this isn't about GTK or libintl, or the author's original code; it's about contributions made to the main source tree. The author says that those are implicitly his to do with as he pleases. Those on the other side say that they are not his, and that they were implicitly under the GPL.
How on earth did this get modded to +5?
The price he's charging has nothing to do with it. It's that he's not distributing source, even though the contributors' source is (implicitly, according to the arguments) GPL.
But it's fine if he gives the binaries away or charges $5000/ea for them, just so long as he also includes the source or an offer for the source. (And doesn't restrict further distribution, of course.)