If your data set has to join a trillion rows to a billion rows, you can throw all the parallelism you want at it and you will just have a thousand boxen trying to perform the same join a thousand times and performance will not improve.
No, you split your billion row table into a thousand pieces so each piece fits in memory on one of your thousand machines, and then multicast your trillion row table to all thousand machines and have them match the stream against the million rows they have in memory.
You'd NEVER be able to trust anything from those fools. So any task you'd assign them, you'd have to assign someone SMARTER than them to check it.
There are some problems where finding a solution is difficult, while checking that solution is easy. A lot of these are funny math problems you'd have a computer solve, but maybe there are some useful similar problems that are sufficiently poorly defined to require a human (or strong AI, which we don't currently have). I suppose "either write a machine-checkable proof that this code is secure, or demonstrate that it isn't" might be such a problem, assuming anyone wanted to pay for that amount of verification.
Wrong. It creates an incentive for creating software that seemingly requires support, but doesn't require that support in reality. In other words, it creates an incentive to build software that is better than it looks.
How long could such an illusion be kept up? I mean, the IT/sysadmin folks will know that they never actually call support, and as they talk and move between companies the software will get a stronger and stronger reputation of never actually needing support. At what point do the suits become aware of this reputation and stop insisting on buying support?
It is human nature to dig in one's ideological heels against change, especially when money is involved. Substantial changes or the oft-cited paradigm shift often have to wait for an older generation to die off.
What are you saying here, I only need a source of income because of the influence of old people?
Funny thing is, I've actually had days (or even weeks on rare occasions) just like that. Of course, there's also days when I'll stop programming for a minute to stretch, and suddenly realize it's after lunch time or everyone else is packing up to go home.
(-) "But it's against our ideals, people should learn for the sake of learning!"
That's what graduate school and some educational hobbies are for. Grade school and to some extent undergrad at college/university are more about teaching what you need in order to be an effective member of a modern society (and do a rather poor job of it, going by our foreclosure/bankruptcy rates and popular politics).
Frankly, I'm up for anything which improves the effectiveness of our education system at this point as long as it doesn't constitute an outright human rights violation. The system is broken. If you can prove that X provides significant gains, then we should at least look into it.
Yes. And then if we can prove that using X in place of something we currently do produces significantly better gains for the same $$ spent, we should make sure we have a decent idea of why X works (so we can implement it reliably), and then mandate X in place of whatever it was.
Yes, it has less restrictions. (ie, more freedom to do different things)
Also, unless you get mono exclusively from Novell, you are (potentially) infringing on Microsoft intellectual property.
/me rolleyes
Remember a while back they were claiming to have some triple-digit number of patents that the Linux kernel infringes on? Remember IBM warning off that mainframe emulator a couple days ago? I'm not convinced that mono infringes significantly more or stronger potentially-hostile patents than any other similarly complex piece of software.
And Gnome has been adopting mono like it doesn't matter.
I thought they only used it for a couple of trivial/perhiperal things?
Yes, Gnome is less free now. Gnome fans totally miss the irony.
Yes, true freedom is an OS that will refuse to run anything except locally-compiled programs, with a compiler which will only compile code that has the GPL licensing headers.
couldn't figure out why a string named string was a problem
You know something? I ran that code through g++, and after adding an #include for cstdlib (to get "system()") it compiled just fine. Having a string named string is actually perfectly valid c++, compilers that can't handle it are just broken.
You were lied to if you were told that you'd walk out of college with a 50K job offer.
It probably depends on what part of the country you're in. I got $23/hour (so about $46k/year) in the midwest a couple months after graduating (graduated December 2006), and then $51k/year about 8 months later when I went from being a contractor to being an employee. (And then they re-did the job descriptions, and the whole department got bumped up a pay grade.) This being the midwest, it doesn't seem at all unreasonable to expect $50k+ for entry-level positions in some of the more expensive coastal areas. Especially for people with better internships and social skills than I had.
And is there anything on it besides your grades in various college classes and a highschool GPA?
What work have you done (internships or open-source)? What have you actually accomplished? For self-motivated projects, why did you pick what you did? For public projects, where can the records of your involvement be found?
I can program! (See how I put that link in?)
If that's really your idea of "programming", then you are part of the problem Jeff is talking about in that post.
IIRC Wikipedia also says you can only write about things you don't actually have any real knowledge of, because learning about something necessarily means you acquire some biases about it. Slashdot can be pretty dumb at times, but I don't think we're quite that bad. Yet.
No, but it might be time for people to start using Perspectives. Which I'd guess is a better version of the new extension these people are making, although I can't really tell due to the PDF being broken (slashdotted?).
If you RTFA, they don't really address Brook's point. They all worked on small projects. Where the mythical man-month applies is in the combined effort on a large, sufficiently complex project. The real breakdown comes in the collaboration and communication.
They addressed Brooks' point by having lots of small projects instead of one big ball of spaghetti code.
Here's a quote from the 20th anniversary edition ("The Mythical Man-Month after 20 years" chapter):
Parnas Was Right, and I Was Wrong about Information Hiding
In Chapter 7 I contrast two approaches to the question of how much each team member should be allowed or encouraged to know about each other's designs and code. In the Operating System/360 project, we decided that all programmers should see all the material -- i.e., each programmer having a copy of the project workbook, which came to number over 10,000 pages. Harlan Mills has argued persuasively that "programming should be a public process," that exposing all the work to everybody's gaze helps quality control, both by peer pressure to do things well and by peers actually spotting flaws and bugs.
This view contrasts sharply with Davin Parnas's teaching that modules of code should be encapsulated with well-defined interfaces, and that the interior of such a module should be the private property of its programmer, not discernible from outside. Programmers are most effective if shielded from, not exposed to, the innards of modules not their own.
I dismissed Parnas's concept as a "recipe for disaster" in Chapter 7. Parnas was right, and I was wrong. I am now convinced that information hiding, today often embodied in object-oriented programming, is the only way of raising the level of software design.
The underlying reason that man-months are mythical is because of communication overhead; if everyone has to know what everyone else is working on, your team can not scale. In the section I quoted Brooks goes on to talk about easier reuse and fewer errors, but proper encapsulation also has the effect of dramatically reducing the overhead of extra people -- now instead of operating on the system as a whole, the law operates on individual subsystems or modules.
In this case Brooks' Law was addressed by whatever design or happenstance led to (1) the projects being independent instead of intertwingled, and (2) there being enough of these independent projects for all the interns.
...I'm going to have to side with the ISPs on this one. I think requiring them to offer high-speed internet to that many people is realistic by 2020, but at that speed? That's pushing it...
At worst, I suppose it amounts to "um, yeah, we're gonna make you replace all those ancient copper lines with fiber now, kthxbye". Which, given their government-granted monopoly status and subsidies, doesn't seem like such a bad idea.
AMD processors and the newer (i3, i5, i7) Intel processors have the memory (DRAM) controller built in. The ECC here is for the DRAM, I have no idea about internal cache. Google released a study a few months ago with various information about actual observed memory error rates... after a bit of crunching on their numbers, I came up with an expected 1/5 chance of a single random bit-flip over a 6-year lifespan, and a 1/3 chance of part of your memory going bad (and causing crashes, corruption, etc, if not caught with ECC) after a couple years.
You wouldn't happen to know the sorts or reductions in errors running registered memory brings (compared to just ECC)? If you must run registered as well, it's a comparison between Opterons and Xeons.
My understanding is that registered memory is less about error correction and more about being able to plug in way too many DIMMs per memory channel, so you don't want it unless you need ridiculous amount of memory.
If you are concerned about data integrity you might also want to look at an operating system that has ZFS - which means OpenSolaris or FreeBSD, and running mirrored or RAIDZ.
Or use Btrfs; ZFS isn't the only option with integrity checks.
To regulate Commerce with foreign Nations, and among the several States, and with the Indian Tribes;
What does it mean to "regulate commerce"? It seems to be read as "exercise arbitrary control over anything with even the most tenuous hypothetical effect on any sort of economic activity".
A well regulated Militia, being necessary to the security of a free State, the right of the People to keep and bear Arms, shall not be infringed.
Have you been living under a rock the past couple hundred years? This is clearly ambiguous, as nobody agrees on what it means.
Why not simply host the servers in a country that doesn't have brain-dead restrictions on the "export" of ones and zeros? One that doesn't classify encryption/decryption code as a "munition"?
I'd imagine that not working too well if the company responsible is still located in the US. Hm, maybe if the non-US servers wouldn't accept uploads from US IP addresses?
If your data set has to join a trillion rows to a billion rows, you can throw all the parallelism you want at it and you will just have a thousand boxen trying to perform the same join a thousand times and performance will not improve.
No, you split your billion row table into a thousand pieces so each piece fits in memory on one of your thousand machines, and then multicast your trillion row table to all thousand machines and have them match the stream against the million rows they have in memory.
Well, for one thing I thought that big underwater explosions tend to make some rather large waves.
You'd NEVER be able to trust anything from those fools. So any task you'd assign them, you'd have to assign someone SMARTER than them to check it.
There are some problems where finding a solution is difficult, while checking that solution is easy. A lot of these are funny math problems you'd have a computer solve, but maybe there are some useful similar problems that are sufficiently poorly defined to require a human (or strong AI, which we don't currently have). I suppose "either write a machine-checkable proof that this code is secure, or demonstrate that it isn't" might be such a problem, assuming anyone wanted to pay for that amount of verification.
Unless one sat in on the whole trial, slandering the jury is inappropriate.
Jury (noun): twelve people too stupid to get out of jury duty
Making fun of our government (which includes the courts and therefore the jury selection process and juries) is always appropriate.
Wrong. It creates an incentive for creating software that seemingly requires support, but doesn't require that support in reality. In other words, it creates an incentive to build software that is better than it looks.
How long could such an illusion be kept up? I mean, the IT/sysadmin folks will know that they never actually call support, and as they talk and move between companies the software will get a stronger and stronger reputation of never actually needing support. At what point do the suits become aware of this reputation and stop insisting on buying support?
It is human nature to dig in one's ideological heels against change, especially when money is involved. Substantial changes or the oft-cited paradigm shift often have to wait for an older generation to die off.
What are you saying here, I only need a source of income because of the influence of old people?
Funny thing is, I've actually had days (or even weeks on rare occasions) just like that. Of course, there's also days when I'll stop programming for a minute to stretch, and suddenly realize it's after lunch time or everyone else is packing up to go home.
Well, other than Orson Wells War of the Worlds, how have UFOs been involved in shaping any actual events on planet earth?
What about the UFO cults?
(-) "But it's against our ideals, people should learn for the sake of learning!"
That's what graduate school and some educational hobbies are for. Grade school and to some extent undergrad at college/university are more about teaching what you need in order to be an effective member of a modern society (and do a rather poor job of it, going by our foreclosure/bankruptcy rates and popular politics).
Frankly, I'm up for anything which improves the effectiveness of our education system at this point as long as it doesn't constitute an outright human rights violation. The system is broken. If you can prove that X provides significant gains, then we should at least look into it.
Yes. And then if we can prove that using X in place of something we currently do produces significantly better gains for the same $$ spent, we should make sure we have a decent idea of why X works (so we can implement it reliably), and then mandate X in place of whatever it was.
It's called the "Lesser" GPL for a reason.
Yes, it has less restrictions. (ie, more freedom to do different things)
Also, unless you get mono exclusively from Novell, you are (potentially) infringing on Microsoft intellectual property.
/me rolleyes
Remember a while back they were claiming to have some triple-digit number of patents that the Linux kernel infringes on? Remember IBM warning off that mainframe emulator a couple days ago? I'm not convinced that mono infringes significantly more or stronger potentially-hostile patents than any other similarly complex piece of software.
And Gnome has been adopting mono like it doesn't matter.
I thought they only used it for a couple of trivial/perhiperal things?
Yes, Gnome is less free now. Gnome fans totally miss the irony.
Yes, true freedom is an OS that will refuse to run anything except locally-compiled programs, with a compiler which will only compile code that has the GPL licensing headers.
#include <iostream>
::Fnord(9);
class Fnord {
int x;
public:
Fnord(int x) : x(x) { }
int operator ()() const { return x; }
operator int() const { return 2*x; }
};
int x() {
Fnord Fnord(3);
return Fnord() *
}
bool Fnord(double x) {
return x > 5;
}
int main(int argc, char **argv) {
std::cout<<x()<<" "<<Fnord(4)<<"\n";
class Fnord Fnord(7);
std::cout<<Fnord<<" "<<Fnord()<<"\n";
return 0;
}
couldn't figure out why a string named string was a problem
You know something? I ran that code through g++, and after adding an #include for cstdlib (to get "system()") it compiled just fine. Having a string named string is actually perfectly valid c++, compilers that can't handle it are just broken.
You were lied to if you were told that you'd walk out of college with a 50K job offer.
It probably depends on what part of the country you're in. I got $23/hour (so about $46k/year) in the midwest a couple months after graduating (graduated December 2006), and then $51k/year about 8 months later when I went from being a contractor to being an employee. (And then they re-did the job descriptions, and the whole department got bumped up a pay grade.) This being the midwest, it doesn't seem at all unreasonable to expect $50k+ for entry-level positions in some of the more expensive coastal areas. Especially for people with better internships and social skills than I had.
And is there anything on it besides your grades in various college classes and a highschool GPA?
What work have you done (internships or open-source)? What have you actually accomplished? For self-motivated projects, why did you pick what you did? For public projects, where can the records of your involvement be found?
I can program! (See how I put that link in?)
If that's really your idea of "programming", then you are part of the problem Jeff is talking about in that post.
IIRC Wikipedia also says you can only write about things you don't actually have any real knowledge of, because learning about something necessarily means you acquire some biases about it. Slashdot can be pretty dumb at times, but I don't think we're quite that bad. Yet.
For the return to tin can and string?
No, but it might be time for people to start using Perspectives. Which I'd guess is a better version of the new extension these people are making, although I can't really tell due to the PDF being broken (slashdotted?).
If slavery were more cost-effective than paid employees, then slavery would still be legal....
If it were less cost-effective, why would it need to be illegal? The slave owners would have had to stop on their own or go out of business.
If you RTFA, they don't really address Brook's point. They all worked on small projects. Where the mythical man-month applies is in the combined effort on a large, sufficiently complex project. The real breakdown comes in the collaboration and communication.
They addressed Brooks' point by having lots of small projects instead of one big ball of spaghetti code.
Here's a quote from the 20th anniversary edition ("The Mythical Man-Month after 20 years" chapter):
The underlying reason that man-months are mythical is because of communication overhead; if everyone has to know what everyone else is working on, your team can not scale. In the section I quoted Brooks goes on to talk about easier reuse and fewer errors, but proper encapsulation also has the effect of dramatically reducing the overhead of extra people -- now instead of operating on the system as a whole, the law operates on individual subsystems or modules.
In this case Brooks' Law was addressed by whatever design or happenstance led to (1) the projects being independent instead of intertwingled, and (2) there being enough of these independent projects for all the interns.
100X better than simply web hosting... Linode
Far better, yes. But you have to know a little about the command line and some sysadmin kind of stuff, or at least have time to learn as you go.
"Or use Btrfs; ZFS isn't the only option with integrity checks."
Oh yeah, because nothing screams "reliable" like filesystem that is still in beta.
Hey, silent corruption and catastrophic failure are very different risk scenarios!
...I'm going to have to side with the ISPs on this one. I think requiring them to offer high-speed internet to that many people is realistic by 2020, but at that speed? That's pushing it...
At worst, I suppose it amounts to "um, yeah, we're gonna make you replace all those ancient copper lines with fiber now, kthxbye". Which, given their government-granted monopoly status and subsidies, doesn't seem like such a bad idea.
AMD processors and the newer (i3, i5, i7) Intel processors have the memory (DRAM) controller built in. The ECC here is for the DRAM, I have no idea about internal cache. Google released a study a few months ago with various information about actual observed memory error rates... after a bit of crunching on their numbers, I came up with an expected 1/5 chance of a single random bit-flip over a 6-year lifespan, and a 1/3 chance of part of your memory going bad (and causing crashes, corruption, etc, if not caught with ECC) after a couple years.
You wouldn't happen to know the sorts or reductions in errors running registered memory brings (compared to just ECC)? If you must run registered as well, it's a comparison between Opterons and Xeons.
My understanding is that registered memory is less about error correction and more about being able to plug in way too many DIMMs per memory channel, so you don't want it unless you need ridiculous amount of memory.
If you are concerned about data integrity you might also want to look at an operating system that has ZFS - which means OpenSolaris or FreeBSD, and running mirrored or RAIDZ.
Or use Btrfs; ZFS isn't the only option with integrity checks.
To regulate Commerce with foreign Nations, and among the several States, and with the Indian Tribes;
What does it mean to "regulate commerce"? It seems to be read as "exercise arbitrary control over anything with even the most tenuous hypothetical effect on any sort of economic activity".
A well regulated Militia, being necessary to the security of a free State, the right of the People to keep and bear Arms, shall not be infringed.
Have you been living under a rock the past couple hundred years? This is clearly ambiguous, as nobody agrees on what it means.
Why not simply host the servers in a country that doesn't have brain-dead restrictions on the "export" of ones and zeros? One that doesn't classify encryption/decryption code as a "munition"?
I'd imagine that not working too well if the company responsible is still located in the US. Hm, maybe if the non-US servers wouldn't accept uploads from US IP addresses?