It's not really "some senior people". Google's 0.9% of code contributed and 10.5% of patches signed off on exactly match the efforts of one employee, Andrew Morton. Aside from Andrew, they have a couple of other minor contributors but he is by far the most significant.
Six ascensions in a row? Yikes. For all outward appearances, you're grinding NetHack in real life for bragging rights
That was in tournament play--it didn't even make the top 3 list for the tournament. It puts me in sort of medium-beginner level for tournament players, a long way away from bragging rights--the top players have streaks in the 20-30 games range, with multiple conducts, extremely low scores, and other really tough facets.
Nethack is an odd game, learning-curve wise. After you put in 10 years of random deaths (or a much shorter amount of time studying spoilers assiduously and playing) to learn the game, it gets much easier very quickly.
If you ever find yourself in a situation where death is close, you are playing wrong, in order to succeed in Nethack (or any roguelike for that matter), you have to play conservatively, beating up on things that pose no threat to you while escaping anything that might pose a challenge. Even if you can beat a challenging monster 95% of the time, eventually that 5% will catch up to you and all of your progress will be erased by a small handful of bad rolls. This is why only obsessives play Nethack, nobody else has the patience to grind their way up to the godlike levels required to survive the games final challenges.
I don't agree. Players going for their first ascension often grind out incessantly, altar camping forever and making sure they have a whole exact set of items before starting the ascension run. But you don't _have_ to do that, and there are plenty of players who can ascend 60% or so of their games while moving through quickly (20,000 turns per game). Even the ultra-high percentage guys like marvin don't do much grinding and usually finish in a quarter the time most newbies take.
My best streak was 6 consecutive ascensions (with different roles in each), and they were all fairly quick without any altar camping or other grinding behavior. You learn to use your "outs" so that you can move quickly but still have plenty of tools to evade anything that presents a serious threat.
Typically forensic investigations (i.e. admissible evidence) are carried out using special hardware that prevents any possibility of writing to the media under investigation. This is to avoid any challenges that there's a possibility that the person who "found" the evidence put it there.
If evidence was "found" by Circuit City techs, there is no way to prove that they themselves did not put the evidence there.
That's a separate issue, though. Police go to great lengths to document evidence immediately (by using forensics tools like you mention, or photos of physical evidence, or other means), and then keep a documented chain of custody through trial.
That is generally _not_ for the purpose of establishing admissibility--admissibility speaks to whether the jury will even be allowed to see the evidence in the first place.
But once evidence is admitted, it's up to the jury to determine how reliable it is. If there wasn't a good chain of custody, the defense will point that out, and if they think that there was a plant or contamination or something they can raise that issue with the jury. It's one of the jury's main jobs to act as arbiters of the facts, and evaluate how reliable they are and so forth.
Admissibility is just about--regardless of how strong or weak, true or false a piece of evidence is--there's some reason that the jury shouldn't even be allowed to see it in the first place.
The point here is that the evidence should be rejected. If he is willing to behave unethically in the first place, why wouldn't he be able to plant the evidence as well?
That gets to the reliability of the evidence, not its admissibility. It's something that a competent defense lawyer should be able to argue to the jury (explain how the evidence might be planted and give info as to why that's a real possibility), but not a procedural reason to exclude the evidence from the courtroom in the first place.
Just because a piece of evidence is allowed doesn't mean that it's going to be very convincing.
There's a difference between what they're "allowed to access" and what's admissible in court once they've seen it. The techs aren't the government--things they've seen don't automatically get excluded because they shouldn't have seen them.
If a private citizen breaks into my house and sees something illegal, they can usually alert the cops and have knowledge of that thing be admitted in court, even though they themselves can still be prosecuted for trespassing and breaking and entering.
Isn't that _backwards_? I mean, I know AOL is a laughingstock now, but they paid $164 billion to purchase Time-Warner in 2001. AOL bought Time-Warner, not the other way around. Doesn't the owner spin off the subsidiary?
It was a brilliant move by them at the time to turn Internet bubble money into real money.
While the spy satellites are indeed owned by the military, no military troops are being deployed to meet up with the smugglers. While I haven't exactly read the act lately, I thought it just prohibited the active deployment of troops... I was not under the impression it prohibited cooperation between the military and DoJ.
The posse comitatus act prohibits military cooperation with law enforcement fairly broadly, but additional laws passed in 1981 give the effect you note when dealing with drug cases--the military can't actively arrest and so forth, but they can operate in support roles (up to having a Navy vessel pull up alongside a smuggler's boat, and then Coast Guard units handle the actual arrest)--the Coast Guard has always been exempt from posse comitatus, as it's sort of a hybrid military/police force.
I get the feeling that this is mainly for Microsoft internally developed code which conforms to their security guidelines. As such, it's probably mainly intended to help in code reviews. Still pretty dubious.
Now the coders that have been using something like
MIN(sizeof(dst), bytes_to_copy)
for the last parameter for years will have to change their code.
That fails in the common case of dst being a real pointer (whether it's indexing into a static array or dynamically allocated memory or whatever).
Okay, I'm obviously missing something here. How is having an extra parameter for the destination size any safer? I always thought the third parameter to memcpy was the amount of data to copy, and since obviously it should never be set to anything larger than the size of the destination, how will having the destination size explicitly passed in help any?
That's the error that this is trying to fix. I'm skeptical as to how much this will help; if you're that lazy, you can just set the destination size parameter to the same value as the amount to copy.
But it might be easier to enforce at a code-review level in the organization: destination size always has to be a size tracked based on memory allocation.
Do you find this having a negative impact on the flexibility of the language, and do you think it will restrict the creativity of the programmer?"
You can replace memcpy entirely with memmove (the latter is slightly slower and handles overlaps), and nothing in the article suggests that memmove is banned.
But, no, it shouldn't hurt creativity--they're introducing a memcpy_s, which is the same aside from taking a size parameter for the destination. That's something that is generally easy to track in new code (obviously this secure developement lifecycle is not backwards compatible).
I'm not sure I understand. Server names aren't routable. Presumably the internal DNS servers aren't going to resolve them for external queries, and their IP addresses aren't publically routable (unless they're intended for public use).
The danger is that the names themselves may be valuable, depending on the internal naming scheme. A lot of places have names that include details about platforms (EXCHANGE_SERVER1), or number of servers (WEB1...WEB23), or which branches handle certain things (USHQ-ACCOUNTING), or whatever.
If you have more abstract names, you still want to protect them. Someone doing social networking is a lot less likely to be asked questions when they call up IT and say "hey, I forgot my password on TweetyBird--can you reset it?" or otherwise demonstrate internal knowledge than if they're coming in cold.
The more general point is that it's just good practice that if you're going to have a VPN, it should _be_ a VPN--anything that is meant to be internal should never be sent over the public internet. The more you leak, the worse off you are.
It may be that the list of DNSes for the computer to check starts with ISP DNS first, then if that fails it next tries the VPN's DNS.
That's a misconfiguration. You can't route any internal traffic outside of the VPN. You're publicizing internal server names if you set it up that way.
Some VPNs only route traffic meant for certain destinations through the VPN as one network interface and allow traffic to the public Internet use the actual established connection.
They should be checking the internal DNS servers first (which should not promulgate requests up to public servers), and then the public servers.
Doing in the other order sends internal information (server names) over the public network.
They're okay against bar hacks. Against even an average rookie-level tournament player, both systems get totally smoked.
His "anyone with a fast pull shot" includes bottom-tier players from local city tournament, let alone anyone with a shot of breaking even in amateur events on tour.
It'd be like saying a computer chess program is "intermediate" because it does okay against the average joe off the street, when even a poor tournament player beats it easily. Or like saying it's an intermediate level baseball player when it can hit better than the last player picked in gym class but not as well as an average Little Leaguer.
Legally. These girls are also being tried in the court of public opinion.
And public opinion appears to be that the threatened charges are ludicrous unless there's some real evidence.
The media's take seems to be pretty much summarized:
"Well, this is a case of young girls taking pictures of themselves in bras at a slumber party," said CBS News legal analyst Lisa Bloom. "To think they'd be prosecuted for child pornography, face years in prison, register as sex offenders for the rest of their lives - have we lost our minds?
Actually, here in America, you don't have to "prove your innocence." You're presumed innocent, and it's up to the prosecution to prove you guilty. Not always. Just ask Richard Jewell.
He was never found guilty of anything and never did any jail time. Certainly the judicial system gave him a presumption of innocence.
Now, some media incorrectly treated him as a guilty party. That resulted in a half million dollar payout from NBC and an undisclosed sums from the NY Post, CNN, and others. That's different from not receiving state presumption of innocence, and given that those outlets wound up paying a lot of money for their actions it's hard to say that the legal system encouraged them.
Besides, after verifying name/position/dates of employment, the final question is always "Would you hire this person again?"
It's a well established code phrase that everyone uses to find out that someone sucked without anyone actually saying anything about their performance.
The first thing I do when I get a new phone is turn off roaming. I've never seen one that didn't allow that. If I have an emergency, I can always turn it on. But in the normal case, I'd rather stick to my plan's fees.
See the note on redistributing which I posted above.
All the people who _do_ define libre explicitly (the Open Source Definition, the Debian Free Software Guide, etc) are pretty clear about it: if redistributing the work or distributing derivate works is not allowed, then it's not a "libre" license.
It's possible that you've created some strained reading of the FSF's marketing that supports you, but I guarantee you that if you asked someone like Eban Moglen (let alone Richard Stallman) they'd let you know that without allowing redistribution of derived works it ain't libre by the intention of the Free Software movement. Anyone reading their info without an agenda can see that. It's not even open-source, which is the much less radically ideological ideal of the two.
That said, you have every right to distribute your work as you see fit--as far as I'm concerned, it's perfectly reasonable to slap a commercial license on it or to do what you're seeking. I'm just trying to point out that it's not at all "libre but not gratis".
Something that gives the customer the freedom to modify the product as they want, but prohibits them from creating derivative works, or redistributing it in any fashion?"
This question shows a total lack of understanding for what "libre" software is.
A license along those lines would not be "libre but not gratis". Being freely redistributable and allowing derived works are core parts of "libre" software.
All the common definitions of "libre" software (OSF, DFSG, etc) include statements like:
"Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale."
and:
"The license must allow modifications and derived works"
Eric Holder was Janet Reno's right hand man that went on a rampage against all forms of private firearms ownership.
Holder filed an amicus brief in support of DC's right to regulate gun ownership in DC vs. Heller. That's clearly a liberal position, but it's also far from going on a rampage against all forms of private gun ownership.
He also supports closing Gitmo.
Those positions are well within the mainstream wing of the Democratic platform. You can disagree with them (and I do disagree with the stance on gun control), but trying to paint him (or any of the nominees for major cabinet/advisory positions) as "extreme left wingers" is completely polemical.
I'm not saying he's a staunch conservative. He's very far from being some crazy lefty. The guy's career in public service started with a Ronald Reagan appointment to Superior Court.
The media consensus has been similar, whether you look at FOX News or the Washington Post or sources ideologically in between.
FOX News wrote: "Barack Obama's Cabinet lineup, completed Friday with a month to spare, sends a signal that the fresh-faced president-elect will lean on experienced hands and moderate voices to steer the nation through turbulent times."
CBS's Bob Schieffer wrote "...a lot of people said this is going to be a very extremist president and all that, that he's a very liberal Democrat, but as we have seen in appointment after appointment, he's hewing to the center. He's picking a bunch of flaming moderates here".
Politico wrote "President-elect Barack Obama spent the campaign fighting the notion that he's an unabashed liberal. Now he can point to Exhibit A: a Cabinet that's a middle-of-the-roader's dream".
The Washington Post wrote: "But many of Obama's other picks reflect his apparent preference for practical-minded centrists who have straddled big policy debates rather than staking out the strongest pro-reform positions. Their reputations as moderates have won Obama plaudits from even some Republicans"
There's been far too little scrutiny of a number of Obama appointees... he seems to be stacking the cabinet with nothing but extreme left-wingers every chance he gets.
Aside from low-level appointments to things like HUD and the EPA, this is pretty much backwards. The major positions are being filled by some moderate Democrats (with Napolitano and Richardson being the only thing to approach "extreme left-wingers"), some independents, and some Republicans.
More than half of the major defense, foreign affairs, and economic appointees served in significant positions in Republican administrations (mainly under George W. Bush and/or Ronald Reagan)
Of the "big 3" cabinet positions, 2 are Bush appointees: Secretary of State: Hillary Clinton (D). Leftie, but hardly extremist. Secretary of Defense: Robert Gates (R). Republican, Bush cabinet member Secretary of Treasury: Timothy Geithner (I). Generally conservative. Bush appointed him chairman of the New York Fed.
Of the "next 2", one's a Reagan appointee: Attorney General: Eric Holder (D). A moderate Democrat, Holder is a Reagan appointee (Superior court) most famous for prosecuting Dan Rostenkowski (D). Secretary of Commerce: Bill Richardson (D). Somewhat of a leftie.
Other major appointments The other major names on his economic team are Reagan CEA member Lawrence Summers and Reagan Fed Charman Paul Volcker
The other major defense names are 4-star general Jim Jones (recipient of multiple Bush administration appointments and special Middle East envoy under Condaleeza Rice) and Arizona Gov Janet Napolitano.
Napolitano, Richardson, and Hillary Clinton are the 3 most "leftie" of the major appointees.
The other 6 (Gates, Geithner, Holder, Summers, Volcker, and Jones) are all significant Reagan/Bush adminstration figures.
If moving to a functional programming language breaks your algorithms, then you are somehow doing it wrong. That line doesn't even make sense to me. Algorithms are mathematical constructs that have nothing to do with programming paradigm. Assuming the language is Turing complete, how is that even possible?
First, a Turing complete language can't implement everything a computer does, and I'd argue that the vast majority of the programs people actually use rely on a lot of features outside of Turing computability. Vi keyboard macros are Turing complete (and there there are some cool examples of implementing URMs, Turing tapes, etc in them), but you can't play an mp3, locate the mouse cursor or display an bitmap with them without outside assistance. Those aren't functional problems, but they are real-world computing problems; it's not uncommon for certain steps in your program to be "move the mouse cursor", "look at the user input", "make a network request", etc that aren't Turing-computable and are often non-functional.
Second, strict functional programming absolutely limits algorithms--if an algorithm has side effects, it isn't functional. An algorithm is just a series of steps to accomplish a task, and might start off by initializing a global variable to some value and then incrementing it within various methods. That algorithm certainly isn't functional by any reasonable definition.
More to the point, a heapsort isn't easily parallelizable. Unlike quicksort or merge sort, it is both in-place and has a worst-case run time of O(n log n). It also requires a data change at the bottom layer that affects higher layers (a side effect, the swap function), which makes it difficult to come up with a functional version of.
That's a solved problem (though it was far from trivial), but the functional version isn't easy to parallelize. I suspect that even if it were, if you know that you're going to be running on large multicore machines then you'd be better off with another sort algorithm. That doesn't mean that heapsort was "wrong", it means that different architectures benefit from different algorithms.
This is not easily parallelizable in general, though many trivial cases are (and are common enough to be worth optimizing). But greedy regexes (most common non-static search strings) are notoriously difficult to parallelize.
It's not really "some senior people". Google's 0.9% of code contributed and 10.5% of patches signed off on exactly match the efforts of one employee, Andrew Morton. Aside from Andrew, they have a couple of other minor contributors but he is by far the most significant.
Six ascensions in a row? Yikes. For all outward appearances, you're grinding NetHack in real life for bragging rights
That was in tournament play--it didn't even make the top 3 list for the tournament. It puts me in sort of medium-beginner level for tournament players, a long way away from bragging rights--the top players have streaks in the 20-30 games range, with multiple conducts, extremely low scores, and other really tough facets.
Nethack is an odd game, learning-curve wise. After you put in 10 years of random deaths (or a much shorter amount of time studying spoilers assiduously and playing) to learn the game, it gets much easier very quickly.
If you ever find yourself in a situation where death is close, you are playing wrong, in order to succeed in Nethack (or any roguelike for that matter), you have to play conservatively, beating up on things that pose no threat to you while escaping anything that might pose a challenge. Even if you can beat a challenging monster 95% of the time, eventually that 5% will catch up to you and all of your progress will be erased by a small handful of bad rolls. This is why only obsessives play Nethack, nobody else has the patience to grind their way up to the godlike levels required to survive the games final challenges.
I don't agree. Players going for their first ascension often grind out incessantly, altar camping forever and making sure they have a whole exact set of items before starting the ascension run. But you don't _have_ to do that, and there are plenty of players who can ascend 60% or so of their games while moving through quickly (20,000 turns per game). Even the ultra-high percentage guys like marvin don't do much grinding and usually finish in a quarter the time most newbies take.
My best streak was 6 consecutive ascensions (with different roles in each), and they were all fairly quick without any altar camping or other grinding behavior. You learn to use your "outs" so that you can move quickly but still have plenty of tools to evade anything that presents a serious threat.
Typically forensic investigations (i.e. admissible evidence) are carried out using special hardware that prevents any possibility of writing to the media under investigation. This is to avoid any challenges that there's a possibility that the person who "found" the evidence put it there.
If evidence was "found" by Circuit City techs, there is no way to prove that they themselves did not put the evidence there.
That's a separate issue, though. Police go to great lengths to document evidence immediately (by using forensics tools like you mention, or photos of physical evidence, or other means), and then keep a documented chain of custody through trial.
That is generally _not_ for the purpose of establishing admissibility--admissibility speaks to whether the jury will even be allowed to see the evidence in the first place.
But once evidence is admitted, it's up to the jury to determine how reliable it is. If there wasn't a good chain of custody, the defense will point that out, and if they think that there was a plant or contamination or something they can raise that issue with the jury. It's one of the jury's main jobs to act as arbiters of the facts, and evaluate how reliable they are and so forth.
Admissibility is just about--regardless of how strong or weak, true or false a piece of evidence is--there's some reason that the jury shouldn't even be allowed to see it in the first place.
The point here is that the evidence should be rejected. If he is willing to behave unethically in the first place, why wouldn't he be able to plant the evidence as well?
That gets to the reliability of the evidence, not its admissibility. It's something that a competent defense lawyer should be able to argue to the jury (explain how the evidence might be planted and give info as to why that's a real possibility), but not a procedural reason to exclude the evidence from the courtroom in the first place.
Just because a piece of evidence is allowed doesn't mean that it's going to be very convincing.
There's a difference between what they're "allowed to access" and what's admissible in court once they've seen it. The techs aren't the government--things they've seen don't automatically get excluded because they shouldn't have seen them.
If a private citizen breaks into my house and sees something illegal, they can usually alert the cops and have knowledge of that thing be admitted in court, even though they themselves can still be prosecuted for trespassing and breaking and entering.
Isn't that _backwards_? I mean, I know AOL is a laughingstock now, but they paid $164 billion to purchase Time-Warner in 2001. AOL bought Time-Warner, not the other way around. Doesn't the owner spin off the subsidiary?
It was a brilliant move by them at the time to turn Internet bubble money into real money.
While the spy satellites are indeed owned by the military, no military troops are being deployed to meet up with the smugglers. While I haven't exactly read the act lately, I thought it just prohibited the active deployment of troops... I was not under the impression it prohibited cooperation between the military and DoJ.
The posse comitatus act prohibits military cooperation with law enforcement fairly broadly, but additional laws passed in 1981 give the effect you note when dealing with drug cases--the military can't actively arrest and so forth, but they can operate in support roles (up to having a Navy vessel pull up alongside a smuggler's boat, and then Coast Guard units handle the actual arrest)--the Coast Guard has always been exempt from posse comitatus, as it's sort of a hybrid military/police force.
Now developers will write
memcpy_s(dst, sizeof(dst), src, sizeof(dst));
I get the feeling that this is mainly for Microsoft internally developed code which conforms to their security guidelines. As such, it's probably mainly intended to help in code reviews. Still pretty dubious.
Now the coders that have been using something like
MIN(sizeof(dst), bytes_to_copy)
for the last parameter for years will have to change their code.
That fails in the common case of dst being a real pointer (whether it's indexing into a static array or dynamically allocated memory or whatever).
Okay, I'm obviously missing something here. How is having an extra parameter for the destination size any safer? I always thought the third parameter to memcpy was the amount of data to copy, and since obviously it should never be set to anything larger than the size of the destination, how will having the destination size explicitly passed in help any?
That's the error that this is trying to fix. I'm skeptical as to how much this will help; if you're that lazy, you can just set the destination size parameter to the same value as the amount to copy.
But it might be easier to enforce at a code-review level in the organization: destination size always has to be a size tracked based on memory allocation.
Do you find this having a negative impact on the flexibility of the language, and do you think it will restrict the creativity of the programmer?"
You can replace memcpy entirely with memmove (the latter is slightly slower and handles overlaps), and nothing in the article suggests that memmove is banned.
But, no, it shouldn't hurt creativity--they're introducing a memcpy_s, which is the same aside from taking a size parameter for the destination. That's something that is generally easy to track in new code (obviously this secure developement lifecycle is not backwards compatible).
I'm not sure I understand. Server names aren't routable. Presumably the internal DNS servers aren't going to resolve them for external queries, and their IP addresses aren't publically routable (unless they're intended for public use).
The danger is that the names themselves may be valuable, depending on the internal naming scheme. A lot of places have names that include details about platforms (EXCHANGE_SERVER1), or number of servers (WEB1...WEB23), or which branches handle certain things (USHQ-ACCOUNTING), or whatever.
If you have more abstract names, you still want to protect them. Someone doing social networking is a lot less likely to be asked questions when they call up IT and say "hey, I forgot my password on TweetyBird--can you reset it?" or otherwise demonstrate internal knowledge than if they're coming in cold.
The more general point is that it's just good practice that if you're going to have a VPN, it should _be_ a VPN--anything that is meant to be internal should never be sent over the public internet. The more you leak, the worse off you are.
It may be that the list of DNSes for the computer to check starts with ISP DNS first, then if that fails it next tries the VPN's DNS.
That's a misconfiguration. You can't route any internal traffic outside of the VPN. You're publicizing internal server names if you set it up that way.
Some VPNs only route traffic meant for certain destinations through the VPN as one network interface and allow traffic to the public Internet use the actual established connection.
They should be checking the internal DNS servers first (which should not promulgate requests up to public servers), and then the public servers.
Doing in the other order sends internal information (server names) over the public network.
Yes, and the "intermediate" tag is wrong.
They're okay against bar hacks. Against even an average rookie-level tournament player, both systems get totally smoked.
His "anyone with a fast pull shot" includes bottom-tier players from local city tournament, let alone anyone with a shot of breaking even in amateur events on tour.
It'd be like saying a computer chess program is "intermediate" because it does okay against the average joe off the street, when even a poor tournament player beats it easily. Or like saying it's an intermediate level baseball player when it can hit better than the last player picked in gym class but not as well as an average Little Leaguer.
Legally. These girls are also being tried in the court of public opinion.
And public opinion appears to be that the threatened charges are ludicrous unless there's some real evidence.
The media's take seems to be pretty much summarized:
He was never found guilty of anything and never did any jail time. Certainly the judicial system gave him a presumption of innocence.
Now, some media incorrectly treated him as a guilty party. That resulted in a half million dollar payout from NBC and an undisclosed sums from the NY Post, CNN, and others. That's different from not receiving state presumption of innocence, and given that those outlets wound up paying a lot of money for their actions it's hard to say that the legal system encouraged them.
Besides, after verifying name/position/dates of employment, the final question is always "Would you hire this person again?"
It's a well established code phrase that everyone uses to find out that someone sucked without anyone actually saying anything about their performance.
The first thing I do when I get a new phone is turn off roaming. I've never seen one that didn't allow that. If I have an emergency, I can always turn it on. But in the normal case, I'd rather stick to my plan's fees.
See the note on redistributing which I posted above.
All the people who _do_ define libre explicitly (the Open Source Definition, the Debian Free Software Guide, etc) are pretty clear about it: if redistributing the work or distributing derivate works is not allowed, then it's not a "libre" license.
It's possible that you've created some strained reading of the FSF's marketing that supports you, but I guarantee you that if you asked someone like Eban Moglen (let alone Richard Stallman) they'd let you know that without allowing redistribution of derived works it ain't libre by the intention of the Free Software movement. Anyone reading their info without an agenda can see that. It's not even open-source, which is the much less radically ideological ideal of the two.
That said, you have every right to distribute your work as you see fit--as far as I'm concerned, it's perfectly reasonable to slap a commercial license on it or to do what you're seeking. I'm just trying to point out that it's not at all "libre but not gratis".
Something that gives the customer the freedom to modify the product as they want, but prohibits them from creating derivative works, or redistributing it in any fashion?"
This question shows a total lack of understanding for what "libre" software is.
A license along those lines would not be "libre but not gratis". Being freely redistributable and allowing derived works are core parts of "libre" software.
All the common definitions of "libre" software (OSF, DFSG, etc) include statements like:
"Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale."
and:
"The license must allow modifications and derived works"
Eric Holder was Janet Reno's right hand man that went on a rampage against all forms of private firearms ownership.
Holder filed an amicus brief in support of DC's right to regulate gun ownership in DC vs. Heller. That's clearly a liberal position, but it's also far from going on a rampage against all forms of private gun ownership.
He also supports closing Gitmo.
Those positions are well within the mainstream wing of the Democratic platform. You can disagree with them (and I do disagree with the stance on gun control), but trying to paint him (or any of the nominees for major cabinet/advisory positions) as "extreme left wingers" is completely polemical.
I'm not saying he's a staunch conservative. He's very far from being some crazy lefty. The guy's career in public service started with a Ronald Reagan appointment to Superior Court.
The media consensus has been similar, whether you look at FOX News or the Washington Post or sources ideologically in between.
FOX News wrote: "Barack Obama's Cabinet lineup, completed Friday with a month to spare, sends a signal that the fresh-faced president-elect will lean on experienced hands and moderate voices to steer the nation through turbulent times."
CBS's Bob Schieffer wrote "...a lot of people said this is going to be a very extremist president and all that, that he's a very liberal Democrat, but as we have seen in appointment after appointment, he's hewing to the center. He's picking a bunch of flaming moderates here".
Politico wrote "President-elect Barack Obama spent the campaign fighting the notion that he's an unabashed liberal. Now he can point to Exhibit A: a Cabinet that's a middle-of-the-roader's dream".
The Washington Post wrote: "But many of Obama's other picks reflect his apparent preference for practical-minded centrists who have straddled big policy debates rather than staking out the strongest pro-reform positions. Their reputations as moderates have won Obama plaudits from even some Republicans"
There's been far too little scrutiny of a number of Obama appointees... he seems to be stacking the cabinet with nothing but extreme left-wingers every chance he gets.
Aside from low-level appointments to things like HUD and the EPA, this is pretty much backwards. The major positions are being filled by some moderate Democrats (with Napolitano and Richardson being the only thing to approach "extreme left-wingers"), some independents, and some Republicans.
More than half of the major defense, foreign affairs, and economic appointees served in significant positions in Republican administrations (mainly under George W. Bush and/or Ronald Reagan)
Of the "big 3" cabinet positions, 2 are Bush appointees:
Secretary of State: Hillary Clinton (D). Leftie, but hardly extremist.
Secretary of Defense: Robert Gates (R). Republican, Bush cabinet member
Secretary of Treasury: Timothy Geithner (I). Generally conservative. Bush appointed him chairman of the New York Fed.
Of the "next 2", one's a Reagan appointee:
Attorney General: Eric Holder (D). A moderate Democrat, Holder is a Reagan appointee (Superior court) most famous for prosecuting Dan Rostenkowski (D).
Secretary of Commerce: Bill Richardson (D). Somewhat of a leftie.
Other major appointments
The other major names on his economic team are Reagan CEA member Lawrence Summers and Reagan Fed Charman Paul Volcker
The other major defense names are 4-star general Jim Jones (recipient of multiple Bush administration appointments and special Middle East envoy under Condaleeza Rice) and Arizona Gov Janet Napolitano.
Napolitano, Richardson, and Hillary Clinton are the 3 most "leftie" of the major appointees.
The other 6 (Gates, Geithner, Holder, Summers, Volcker, and Jones) are all significant Reagan/Bush adminstration figures.
If moving to a functional programming language breaks your algorithms, then you are somehow doing it wrong. That line doesn't even make sense to me. Algorithms are mathematical constructs that have nothing to do with programming paradigm. Assuming the language is Turing complete, how is that even possible?
First, a Turing complete language can't implement everything a computer does, and I'd argue that the vast majority of the programs people actually use rely on a lot of features outside of Turing computability. Vi keyboard macros are Turing complete (and there there are some cool examples of implementing URMs, Turing tapes, etc in them), but you can't play an mp3, locate the mouse cursor or display an bitmap with them without outside assistance. Those aren't functional problems, but they are real-world computing problems; it's not uncommon for certain steps in your program to be "move the mouse cursor", "look at the user input", "make a network request", etc that aren't Turing-computable and are often non-functional.
Second, strict functional programming absolutely limits algorithms--if an algorithm has side effects, it isn't functional. An algorithm is just a series of steps to accomplish a task, and might start off by initializing a global variable to some value and then incrementing it within various methods. That algorithm certainly isn't functional by any reasonable definition.
More to the point, a heapsort isn't easily parallelizable. Unlike quicksort or merge sort, it is both in-place and has a worst-case run time of O(n log n). It also requires a data change at the bottom layer that affects higher layers (a side effect, the swap function), which makes it difficult to come up with a functional version of.
That's a solved problem (though it was far from trivial), but the functional version isn't easy to parallelize. I suspect that even if it were, if you know that you're going to be running on large multicore machines then you'd be better off with another sort algorithm. That doesn't mean that heapsort was "wrong", it means that different architectures benefit from different algorithms.
Find&Replace
This is not easily parallelizable in general, though many trivial cases are (and are common enough to be worth optimizing). But greedy regexes (most common non-static search strings) are notoriously difficult to parallelize.