Experience tells me exactly the opposite. A custom DB will perform better, until you actually start to fill it with lots of data. When that happens, you will find that the many man-years spent developing the expensive proprietary DBMS systems actually resulted in something better than what you could quickly hack together over a few days.
That being said, there are still lot's of valid reasons not to use a real DBMS for every small project. The most important is simplicity. Bringing in hundreds of megabytes of third-party software to store a few kilobytes of data is not only overkill, it's also a maintenance nightmare!
Yup. It would be the most efficient way of eradicating jews forever. As we all know, jews are a matrilineal society, and thus they all share some common genes.
I only wish Hitler was still alive to see his dream come true.
It wasn't. You only explained "deep", not "wide". Since both words occured in the sentence you were trying to explain, you should try to do better than only explaining the one you remembered from college...
A compiler should be able to find all memory accesses that are parallel and provide the appropriate locks around that memory.
Yes, it should be able to. Whether it should do is a matter of taste. Paralell programming is still hard, and this doesn't make it significantly easier. It still doesn't tell you how to avoid deadlocks, how to structure your program for reasonable performance (too many locks, and you could just as well have a single-threaded program), how to make transactions (locking every memory access to each variable is not enough, sometimes you want to guarantee that a sequence of accesses is serialized), how to avoid starvation of resources, how to prove your algorithm correct (debuggers are more or less useless in multithreaded programs), how to design the algorithm in the first place, how the design of the interconnections between the processors should be and what this means for performance in the program, and of course the standard issues of priority inversion, cache coherency, thread cancellation, etc...
What stops a compiler from understanding that both threads access the memory location 'x' ?
In C, it's pointer arithmetic. In other languages, the complexity of global analysis (this can be fixed).
Yes, getting the military to sympathize with your cause, and not the government is certainly a wiser alternative... I'm doubtful of whether you need to carry a handgun to do that (being a general would certainly be more effective).
In general, it seems that the most effective ways of stopping suppression by government is this, not this.
Actually, I live in that "utopia". The streets where I live are mostly safe. And I hardly think allowing everyone to carry a gun would make them safer.
Well, only if your city is about the size of something you can only see in a microscope, and the computer is really large and complex, and you somehow manages to get the CO-molecules off the copper plate by cutting the power.
Yes, a few billion CO molecules are really going to kill you. In this test, it was probably more in the range of hundreds. A gram of CO is about 21499952344431130617588 molecules. I think you should be more worried about the stuff in current computers...
Do you honestly think that laws will stop criminals from aquiring them
Yes. That's the way it works in most of the world except Texas.
When Alchol was made illegal people didn't stop drinking. When drugs were made illegal people didn't stop doing drugs.
On the other hand, most countries in the world has gun-restrictions, and they seem to work pretty good.
Outlawing guns will just be a repeat of the boondogles of outlawing alchol and drugs.
While your rhetoric is fine, your arguments are bogus. You only need to look at e.g. Europe, Asia, Canada, or basically anywhere but Texas to see why.
There is also another point about gun ownership. The Second admendment isn't primarly...
Do you honestly believe that hand-guns will be effective in overthrowing the government if it ever decides to be tyrant? Whatever you do, the government will always have more fire-power and better organized troops than you. If you want to beat them, you'd better choose a wiser alternative.
Well, if that's the society you wants, then feel free to want it. However, I think the majority of people would be much happier in a society where there were fewer guns and less violence.
If you need to carry a gun in order to threaten people from shooting you, is that the same society you want your children or your grandmother to live in?
Do you honestly believe that having access to firearms will not be a temptation to some individuals? The reason for firearm licenses is not to make a bureaucratic pile of paper, it is to have fewer guns in circulation. And fewer guns means less chances of getting killed by guns.
Of course, if a person already is in posession of a gun, and want to kill someone, the license will not stop him. But the license will lessen the chances of him possessing a gun in the first place. First, because he doesn't have a license, and thus can't get hold of one legally. Second, because there will simply be fewer guns, both to steal, and in the black market.
No, those of you who don't like the NRA are reacting like someone who wants to ban computers to get rid of spam or music piricy.
Not at all. We are acting like someone who wants to regulate the Internet, to protect computer-users against spam and/or the music-industry against piracy. But even that isn't necessarily true, because there is a difference. Spam won't kill you. Music won't kill you. Guns do!
In fact, most crimes are committed by firearms obtained illegally anyway,
Most crimes are committed by people without guns. Most of them are also pretty minor. Most killings are done by highly disturbed people killing their (ex)wife, (ex)girlfriend, children, neighbour, etc... If a gun was involved, it is not likely to have been obtained illegally.
Second, if you were to obtain a gun illegally, which place would be the easiest place to get one. In an area where there are few guns, and those that exists are locked up properly, dismantled, with the parts stored separately, and the ammo somewhere else? Or one where most everyone have one at home, walks around with it, and/or keeps it in their car, preferably loaded?
No. The DMA fights for the rights of "legitimate spammers". The NRA fights for the rights of "legitimate killers". Most people don't want to be spammed or shot.
Now, you may not be aware of this, but guns are intended to kill people. There are a few exemptions, such as guns used to kill animals. Those should be allowed. Some guns are also used mostly as a hobby, where practitioners do target practice. That should also be allowed. But there is no reason why we should make it easier to keep a gun around so that you (or your children) can go about shooting people.
There are lots of things that are dangerous to the public that is regulated. One example would be a car. To drive a car, you must posess a license, so the rest of us know you will not kill us when you drive it. On the other hand, cars are also very useful for other purposes than running down people. In fact, their main utility is transport, not killing. For something that is mainly intended for killing, restrictions to protect the public should be much higher.
You can claim that guns are for personal protection as long as you want, it still doesn't make it so. If somebody decides to shoot you, a gun wouldn't help. A bullet-proof vest, a splint-helmet, a bunker or a tank might protect you, but a gun does not. Here is an interesting exercise for you: which of these can be classified as personal protective equipment? Tear-gas, explosives, buoyancy vest, helmet, nuclear bomb, knee-caps, knife, safety-toe footwear, gun, reflex-vest, parachute, anthrax, dust-filter, gloves, chainsaw, safety googles, scud-missile...
As much as I hate to shatter your imaginary world, I have to say that NAV is a completely useless program designed to suck money out of your pocket.
No it isn't. While a reasonably intelligent person with some experience with windows should easily be able to keep his windows box free of viruses, most users are not.
If you've ever been administering windows boxes for others, NAV corporate edition, or some other corporate antivirus software is really a life-saver.
There are no more viruses on Windows than there are on Linux. What gets media attention are the Outlook scripting worms, and the only reason Linux can't get them is because it doesn't have Outlook.
Last time I checked, there was about 3 viruses for Linux. I have heard some stories about new ones, so now there might be 10-15. The number of viruses on Windows increases with over 50 per month. As for the frequencies of those viruses: I've yet to actually discover a virus for linux (other than reading about it). On the other hand, with my windows box, I actually have to be careful.
What gets media attention are the Outlook scripting worms, and the only reason Linux can't get them is because it doesn't have Outlook. Run Outlook under wine, and you will get the same worms. It's not a fault of the OS, be it Linux+Wine or Windows, but a problem of the Outlook application.
Or outlook express, which is distributed as a part of the Windows OS. There are also problems with permissions (most linux distributions have somewhat sane permissions, most Windows installations have not (because after installing it, they are anything but sane).
And while there are few reasons to run anything as root under linux (except for the occasional sudo), the only practical way to use Windows is to be logged in with administrator rights (e.g. autocad requires this).
On the other hand, it is true that linux is susceptible to viruses just like Windows. The main thing going against that now is lack of popularity, and an educated user-base. But there are also lots of good technical reasons why it would be harder on linux. And the lack of outlook, default shares, IIS, and over-user-friendlyness certainly also help:-)
Does a bubble sort in hand optimized assembly language on 3GHz machine beat a quicksort written in GW Basic running on an antique 386?
That would depend on the data-size of course. Since GW-basic only supports 65k data, I would assume yes, even if the one for the fast machine was written in GW-basic...
Thanks, I forgot about that one. Although it isn't very interesting, in the sense that it is still just quicksort, always terminates successfully, and is simple to analyze;-) I guess I was thinking of probabilistic algorithms, of which I don't know anyone that can be applied to sorting on normal hardware and is actually better than a deterministic one.
Well, after reading your previous comment, I was a bit unsure about NerdSlayers harsh language. On the other hand, you have no proven that you are in fact dumb.
What you are effectively advocating is the waterfall model, a software methodology that hardly anyone considers a good idea anymore (it's only kept alive by stupid companies, I've yet to find a developer who prefer it).
If you have no idea what I'm talking about, the waterfall model is the old method of producing software: analyze, design, write, test, deliver. You will have no idea of whether your product actually works before you are in the test phase, and then it's too late to back out, so your company will have to spend a lot to pay for the delayed product (because problems will occur). By the time you actually deliver the product, the requirements will have changed, and it can no longer be used.
Modern software development methodologies advocate an iterative approach. You analyse, design and write a small part of the whole system, preferably the part that's most critical (thus you find out early if the product is feasible), test it, revise your plan, and then do the next part. This way, you will always have a working tested system, and you can focus on stability long before you have all the features in place. And, just as important, when requirements change, you can change the direction you are going in, without scrapping everything you've done so far.
Another epitome of good software engineering practice was best said by Edsger Dijkstra: "Premature optimization is the root of all evil". While C will give you better performance if you have the time for it, and assembler even better, it's much better to first write something that works, and then optimize the bottlenecks. This way, you will only have unmaintainable code in the few critical parts that needs it (90% of the time is spent in 10% of the code).
You should also read Richard P. Gabriels classic paper "Worse is Better for a better explanation of why this approach is sensible. After having done that, you can then consider rereading the part that says "if it was written in C we'd still be core dumping and our company would have probably gone out of business", and see if it makes more sense to you now.
PS: I've just made some dumb waterfall-like mistakes myself, so I know what I'm speaking of:-)
For example: IIRC, A bubble sort appears to be efficient if the data being sorted is already mostly sorted. But on mostly random data, it sucks.
Nope, that would be insertion sort. Bubble sort is O(n^2) both on average and in worst case. It's the archetypical bad sorting algorithm (well, except for the "1: try a random permutation 2: return if result sorted 3: goto 1" algorithm which requires O(n!) time on average, but may not terminate at all:-)
That being said, there are still lot's of valid reasons not to use a real DBMS for every small project. The most important is simplicity. Bringing in hundreds of megabytes of third-party software to store a few kilobytes of data is not only overkill, it's also a maintenance nightmare!
I only wish Hitler was still alive to see his dream come true.
(Yes, this is a joke...)
It wasn't. You only explained "deep", not "wide". Since both words occured in the sentence you were trying to explain, you should try to do better than only explaining the one you remembered from college...
And I thought CNN was a news agency!
Well, I wouldn't call a 3-sorter Turing complete. Or to be more presise: this is not a computer yet!
Yes, it should be able to. Whether it should do is a matter of taste. Paralell programming is still hard, and this doesn't make it significantly easier. It still doesn't tell you how to avoid deadlocks, how to structure your program for reasonable performance (too many locks, and you could just as well have a single-threaded program), how to make transactions (locking every memory access to each variable is not enough, sometimes you want to guarantee that a sequence of accesses is serialized), how to avoid starvation of resources, how to prove your algorithm correct (debuggers are more or less useless in multithreaded programs), how to design the algorithm in the first place, how the design of the interconnections between the processors should be and what this means for performance in the program, and of course the standard issues of priority inversion, cache coherency, thread cancellation, etc...
What stops a compiler from understanding that both threads access the memory location 'x' ?
In C, it's pointer arithmetic. In other languages, the complexity of global analysis (this can be fixed).
In general, it seems that the most effective ways of stopping suppression by government is this, not this.
Actually, I live in that "utopia". The streets where I live are mostly safe. And I hardly think allowing everyone to carry a gun would make them safer.
Well, only if your city is about the size of something you can only see in a microscope, and the computer is really large and complex, and you somehow manages to get the CO-molecules off the copper plate by cutting the power.
Yes, a few billion CO molecules are really going to kill you. In this test, it was probably more in the range of hundreds. A gram of CO is about 21499952344431130617588 molecules. I think you should be more worried about the stuff in current computers...
Because it is not radioactive.
And exactly how will you achieve massive parallelism without packing more logic per area? Making computers as big as houses again is not the answer.
Yes. That's the way it works in most of the world except Texas.
When Alchol was made illegal people didn't stop drinking. When drugs were made illegal people didn't stop doing drugs.
On the other hand, most countries in the world has gun-restrictions, and they seem to work pretty good.
Outlawing guns will just be a repeat of the boondogles of outlawing alchol and drugs.
While your rhetoric is fine, your arguments are bogus. You only need to look at e.g. Europe, Asia, Canada, or basically anywhere but Texas to see why.
There is also another point about gun ownership. The Second admendment isn't primarly...
Do you honestly believe that hand-guns will be effective in overthrowing the government if it ever decides to be tyrant? Whatever you do, the government will always have more fire-power and better organized troops than you. If you want to beat them, you'd better choose a wiser alternative.
If you need to carry a gun in order to threaten people from shooting you, is that the same society you want your children or your grandmother to live in?
Of course, if a person already is in posession of a gun, and want to kill someone, the license will not stop him. But the license will lessen the chances of him possessing a gun in the first place. First, because he doesn't have a license, and thus can't get hold of one legally. Second, because there will simply be fewer guns, both to steal, and in the black market.
Not at all. We are acting like someone who wants to regulate the Internet, to protect computer-users against spam and/or the music-industry against piracy. But even that isn't necessarily true, because there is a difference. Spam won't kill you. Music won't kill you. Guns do!
Most crimes are committed by people without guns. Most of them are also pretty minor. Most killings are done by highly disturbed people killing their (ex)wife, (ex)girlfriend, children, neighbour, etc... If a gun was involved, it is not likely to have been obtained illegally.
Second, if you were to obtain a gun illegally, which place would be the easiest place to get one. In an area where there are few guns, and those that exists are locked up properly, dismantled, with the parts stored separately, and the ammo somewhere else? Or one where most everyone have one at home, walks around with it, and/or keeps it in their car, preferably loaded?
Now, you may not be aware of this, but guns are intended to kill people. There are a few exemptions, such as guns used to kill animals. Those should be allowed. Some guns are also used mostly as a hobby, where practitioners do target practice. That should also be allowed. But there is no reason why we should make it easier to keep a gun around so that you (or your children) can go about shooting people.
There are lots of things that are dangerous to the public that is regulated. One example would be a car. To drive a car, you must posess a license, so the rest of us know you will not kill us when you drive it. On the other hand, cars are also very useful for other purposes than running down people. In fact, their main utility is transport, not killing. For something that is mainly intended for killing, restrictions to protect the public should be much higher.
You can claim that guns are for personal protection as long as you want, it still doesn't make it so. If somebody decides to shoot you, a gun wouldn't help. A bullet-proof vest, a splint-helmet, a bunker or a tank might protect you, but a gun does not. Here is an interesting exercise for you: which of these can be classified as personal protective equipment? Tear-gas, explosives, buoyancy vest, helmet, nuclear bomb, knee-caps, knife, safety-toe footwear, gun, reflex-vest, parachute, anthrax, dust-filter, gloves, chainsaw, safety googles, scud-missile...
No it isn't. While a reasonably intelligent person with some experience with windows should easily be able to keep his windows box free of viruses, most users are not.
If you've ever been administering windows boxes for others, NAV corporate edition, or some other corporate antivirus software is really a life-saver.
There are no more viruses on Windows than there are on Linux. What gets media attention are the Outlook scripting worms, and the only reason Linux can't get them is because it doesn't have Outlook.
Last time I checked, there was about 3 viruses for Linux. I have heard some stories about new ones, so now there might be 10-15. The number of viruses on Windows increases with over 50 per month. As for the frequencies of those viruses: I've yet to actually discover a virus for linux (other than reading about it). On the other hand, with my windows box, I actually have to be careful.
What gets media attention are the Outlook scripting worms, and the only reason Linux can't get them is because it doesn't have Outlook. Run Outlook under wine, and you will get the same worms. It's not a fault of the OS, be it Linux+Wine or Windows, but a problem of the Outlook application.
Or outlook express, which is distributed as a part of the Windows OS. There are also problems with permissions (most linux distributions have somewhat sane permissions, most Windows installations have not (because after installing it, they are anything but sane).
And while there are few reasons to run anything as root under linux (except for the occasional sudo), the only practical way to use Windows is to be logged in with administrator rights (e.g. autocad requires this).
On the other hand, it is true that linux is susceptible to viruses just like Windows. The main thing going against that now is lack of popularity, and an educated user-base. But there are also lots of good technical reasons why it would be harder on linux. And the lack of outlook, default shares, IIS, and over-user-friendlyness certainly also help :-)
That would be a wine-bug then. Windows (NT) file-protection should make it impossible to delete an already open file.
That would depend on the data-size of course. Since GW-basic only supports 65k data, I would assume yes, even if the one for the fast machine was written in GW-basic...
Thanks, I forgot about that one. Although it isn't very interesting, in the sense that it is still just quicksort, always terminates successfully, and is simple to analyze ;-) I guess I was thinking of probabilistic algorithms, of which I don't know anyone that can be applied to sorting on normal hardware and is actually better than a deterministic one.
What you are effectively advocating is the waterfall model, a software methodology that hardly anyone considers a good idea anymore (it's only kept alive by stupid companies, I've yet to find a developer who prefer it).
If you have no idea what I'm talking about, the waterfall model is the old method of producing software: analyze, design, write, test, deliver. You will have no idea of whether your product actually works before you are in the test phase, and then it's too late to back out, so your company will have to spend a lot to pay for the delayed product (because problems will occur). By the time you actually deliver the product, the requirements will have changed, and it can no longer be used.
Modern software development methodologies advocate an iterative approach. You analyse, design and write a small part of the whole system, preferably the part that's most critical (thus you find out early if the product is feasible), test it, revise your plan, and then do the next part. This way, you will always have a working tested system, and you can focus on stability long before you have all the features in place. And, just as important, when requirements change, you can change the direction you are going in, without scrapping everything you've done so far.
Another epitome of good software engineering practice was best said by Edsger Dijkstra: "Premature optimization is the root of all evil". While C will give you better performance if you have the time for it, and assembler even better, it's much better to first write something that works, and then optimize the bottlenecks. This way, you will only have unmaintainable code in the few critical parts that needs it (90% of the time is spent in 10% of the code).
You should also read Richard P. Gabriels classic paper "Worse is Better for a better explanation of why this approach is sensible. After having done that, you can then consider rereading the part that says "if it was written in C we'd still be core dumping and our company would have probably gone out of business", and see if it makes more sense to you now.
PS: I've just made some dumb waterfall-like mistakes myself, so I know what I'm speaking of :-)
But are you a good programmer? ;-)
Nope, that would be insertion sort. Bubble sort is O(n^2) both on average and in worst case. It's the archetypical bad sorting algorithm (well, except for the "1: try a random permutation 2: return if result sorted 3: goto 1" algorithm which requires O(n!) time on average, but may not terminate at all :-)