I disagree. That is one of many. A database is also a business modeling tool: it stores attributes (facts) about the domain being modeled.
It's pointless to store things that look like facts but aren't. If there's no such thing in the system as a product that costs -$5, a customer with no name, or an order row floating around in the void unrelated to any company, then it mustn't be possible to store such a thing in the first place.
Well, tracking money is probably NOT the best use for this kind of tool. However, for AI-based search engines or rapid prototyping I still think it could be useful. There are some niches where getting more right answers is more important than avoiding wrong answers.
In my experience, most of the time, rapid prototyping isn't. Whatever you "prototype" gets promoted to production, because nobody wants to wait for you to rewrite it in a real DB.
Besides, RDBMS should probably not be your primary validation tool anyhow; for their error messages are too cryptic and too divorced from the app's perspective. And there are ways to write nightly batch reports that point out accounts with suspicious info.
The application should of course validate input, but there can be multiple applications and multiple versions of them, as well as multiple people with direct access to the DB. The database has to verify correctness because that's your last chance of making sure of it.
Nightly batch reports won't cut it. Ok, report comes out and it says that nothing makes sense. If the database had rejected it immediately you'd very obviously see it at that moment, instead of having a lot of fun trying to trace back bizarre results produced by running calculations on bad data, which was bad because it was calculated on other bad data, which happened because the programmer made a typo and the application inserted something nonsensical.
It's the same thing as with bug fixes. It's cheapest to fix a bug when you find it during coding. It's more expensive to fix it when QA finds it. It's much more expensive to fix it when a customer finds it. In the same way, it's cheapest to fix a bug when the database refuses to accept incorrect data, and very expensive when you have to figure out what made a report produced from 50 tables not make any sense.
The whole point of a database is that it safely manages data. It's not any good to have a heap of bits when what they represent doesn't match reality.
With this model you'll end up with tables and columns created due to typos in the source, misunderstanding between what is the datatype for a column supposed to be. Is column called "item" a boolean (the row's type is "item"), or is it an integer (item number), or is it a varchar (item code), etc?
Lockdown later won't work well, because at lockdown time you'll likely find that something in the database doesn't make sense and you can't tell what it was supposed to actually be. Eg, if your organization has no concept of a product with a negative price, and you find one that has it (due to the lack of a constraint on the column), what do you do with it? Such things could fairly easily result in finding that the sales statistics for your past 3 months were actually incorrect, and the true amount can't be calculated.
If you want to keep your sanity, you need to design your database well first of all, not leave it for later.
If your plugin still works as described, then I'd say it's very imperfect. I don't think the approach is completely wrong though, but it could use improvements.
This reminds me of the old idea of randomly embedding key words like "president", "nuke", etc in mail and usenet posts, to mess with with Echelon/Carnivore. A mail with random key words inserted in places would work for triggering the data gathering, but look obviously unrelated to a human who reads the message, as the extra stuff would be inserted in nonsensical places.
Now if your plugin happens to google for "raping virgins" how will you prove this wasn't a real search you tried to hide among a heap of a lot of grammatically incorrect ones? Searches that make grammatical sense will be a minority, and with a list like that there's a high chance that they won't be things normal people google about.
Then there's that it doesn't seem it actually follows any links from the searches, so if the ISP is doing logging it's easy enough to tell what is being actually used.
This seems to me like going to a library, and borrowing 20 books at once, including the Anarchist Cookbook and Mein Kampf, to try hide your actual and much more harmless interest in reading a book on say, Neopaganism. If your history is checked, all that extra stuff you didn't read isn't going to help you any, because there's no way to tell that most of your history was intended to be padding and you haven't even opened it.
BTW, your example of buying from $COMPANY because it's cool is a little weak. People don't buy RAM, chargers or hard drives from their laptop vendor because the company's cool, they do it because it's convenient. And FWIW, I was a fan of Apple when they weren't cool.
Well, it was a bit of a bad example. From another thread:
Listening to the news on BBC radio 1 yesterday, they interviewed some guy and asked him why it was so important - "Because it's Apple".
This is what I mean -- somebody who considers it a must-have item not because it meets the necessary requirements at a good price, but simply because Apple makes it.
Rephrasing it a bit, I'd say a true fan is somebody who considers the brand to have much more weight than the characteristics of the actual hardware they're getting. For example I met an Intel fan, who was set on buying an Intel CPU because Intel is good, and AMD isn't for some unexplained reason. At that time the equivalent AMD hardware ran cooler, faster and cost noticeably less.
Track record means that as a quite happy owner of an HP laptop, I'll probably be slightly more likely to buy from HP next time as well. But that doesn't mean I won't look for reviews of multiple manufacturer's hardware, and definitely doesn't mean I'll buy the first HP laptop I see.
I also generally favor AMD hardware, but bought an Intel laptop because at that time the Intel option was clearly superior.
A true fan, IMO, is somebody that buys from $COMPANY because it's from $COMPANY and therefore cool, even if much better options exist. For instance, I'm not going to order RAM, a charger or a hard disk from HP's site, as it's much more expensive than buying the same stuff elsewhere.
This is a major turnoff. Travel in Europe is very easy and many people do it. My parents just noticed that it's a 3 day weekend, and decided to visit Portugal. A weather check, a bit of googling to see how much the hotel might cost, and they left. When you can easily travel on a whim without doing any real planning, how will the phone do abroad becomes pretty significant.
Well, the legality of the worker in question is related with that.
An illegal immigrant isn't going to get insurance, sue you, get a pension, etc. AFAIK, illegal immigrants here are paid with cash, which means no taxes to pay either.
That sort of thing is dangerous to try with a legal resident, as they can sue you, while an illegal immigrant probably would get deported before anything happened.
No, I think you're misunderstanding what the grandparent is saying.
What he's saying is that we had this tech for a long time, why is it suddenly starting to get used now? He says it's because of the crackdown on illegal immigrants. If the immigrant will work for $4 and hour, the native worker will ask for $7, and the robot's sales guy shows up and tells you it'll cost you an equivalent of a $6 an hour worker, who will you go with? The immigrant of course.
Now as soon as you get rid of the immigrants, the robots come in. The legal labor asks higher than that, and so they still don't get hired. While you can hire immigrants for peanuts with a low startup cost, the robots aren't very attractive. But once that is gone, the robot suddenly becomes a very attractive option. And perhaps the cost of the initial installation is equivalent to $6 an hour, but as your business grows, the expansion of the hardware might bring it down to $3 an hour.
But anyway, that's not important. Point still stands, traffic analysis is possible, but the advantage is not on the ISP's side. Once you use encryption, reuse of common ports and immitate the proper protocols used over them, pretty much all an ISP has left is analyzing the flow and timing of traffic and that's not easy and error prone.
An ISP risks a large amount of angry customers every time they mess with something like this should something go wrong, while whoever works on the P2P program has it very easy to get it right, and cares much less about unhappy users.
Get this: your ISP doesn't care two spits if you're running BitTorrent. They care that you are using what they consider to be excessive amounts bandwidth.
Get this: There's no such thing. If they agreed to provide 1MBps without monthly limits, then they agreed to provide 1MBps without monthly limits.
No, they want to throttle because they know people won't sign up for a "30GB/month max" account, and they can't offer 512Kbps when everybody else is offering 4MBps. They can't sell you a 4Mbps account and then throttle your whole connection to 512K either.
The remaining solutions are kicking you out/throttling after you reach a limit, which doesn't make for good PR, or only throttling P2P to avoid affecting normal usage, like say, youtube.
So obfuscate it some more. Make the initial conversation be with a different computer than the one you will connect to.
It's an arms race indeed, but the winning side is going to be the P2P side. An ISP has to be very, very careful when deploying something like this. Meanwhile an open source P2P client could quickly release an update.
But I'm not talking about using a command and control channel. My idea is:
First, establish a normal HTTPS connection. Use it to exchange say, AES keys, port number, etc. ISP throttles this one, but the amount of data sent is very small. Once this is done you don't need this connection anymore.
Next, you establish a connection to the data port, using the previously agreed keys. Since the keys are already on there's no standard session establishment, it all looks like random junk from the first byte. Now do everything needed through this connection.
Encrypted data simply looks random. So does compressed data.
You could of course detect SSL connections (since the protocol is predictable), but that only works if you have some sort of detectable handshake or metadata around the compressed stuff.
Here's one workaround that comes to mind, for example: Establish a completely normal SSL session by HTTPS with another computer, exchange keys, close that connection, then start an encrypted connection using those keys, without any standard magic numbers of any sort.
For example, this account is named after my Second Life avatar. I have another much older account as well. I keep nearly separated identities in SL, an IRC channel and RL, and people who know me in one of those rarely know who I am in one of the others.
My main reason is that I like peace and quiet, and separation makes sure that arguments and drama from one place don't propagate to the other.
Then there's some completely legal activity that people don't like to advertise much. Drawing pokemon porn, or having virtual sex with a furry avatar in SL (I don't do that) is completely legal, but that's not the sort of thing people would like their boss or coworkers to find.
Encryption prevents traffic analysis, which means that a router can't easily detect that something is a BitTorrent connection and throttle it.
Really this seems to be a case of "the more you tighten your grip, the more will slip through your fingers". The excessive amount of filtering first made sure that about everything learned to talk over port 80. Now they'll add encryption over that, so that ultimately a large percentage of traffic will be completely opaque and going through port 80, making it pretty much impossible to filter.
There might be a consequence for the RIAA though: It means that no traffic analysis will tell you what somebody is downloading. Sure you can see which computers and tracker are involved, but you don't know what's the file being transferred. So no way to tell anything by listening to traffic at strategic points, now you need to maintain a connection with a tracker for every file you want to monitor.
As an user this doesn't seem like such a bad thing, but as a sysadmin it has the potential of becoming quite annoying. Read on what it takes to stop Skype from working for a preview of what might become universal eventually.
But then the "statement" of it fizzled, and more and more users opted to pay nothing at all.
Wikipedia has some history on that, let's see:
After hackers cracked the encryption to the e-book version of King's Riding the Bullet, the publishing of The Plant in January 2000 was reported by King's representatives to be a means to circumvent copyright infringement by offering the book unencrypted and in installments. People could pay a one-dollar fee for each installment using the honor system. He threatened, however, to drop the project if the percentage of paying readers fell below 75 percent.
More than 200,000 customers downloaded free copies of the story in a 24-hour promotion through the Barnes and Noble website.
It received over the desired 75 percent for its first installment, but this fell to 70 percent after installment two. With the third installment, the numbers surged back up to 75 percent.
So it started very well
King and his publisher held fast to their ideal rate of return at 75 percent, and they decided to double the cost of the fourth part of the novel to two dollars. King tried to offset this price increase by also doubling the number of pages to 54 pages for the fourth installment. He also promised to cap the total cost of the entire book at a total of 13 dollars. Paying readers dropped to 46 percent of downloads. The number of downloads decreased overall as well.
Several problems here.
The variable price. The doubling of the price (regardless of the amount of pages) can be taken as a sign of that "Aha! Now that I got them hooked, I'll charge through the nose". Not good.
The overall $13 cost is way too high. New books on Amazon can be bought for less than that. There's no good reason to pay an amount sufficient to pay for the production of a book, which is more comfortable to read than on a computer screen, and end up reading it on the computer.
Unrealistic expectations. Radiohead succeeded with a much lower percentage.
Problem for the future: Now that he's got a track record of selling part of a book and stopping before the ending, why would anybody pay for the first chapter if they have no guarantee of that the ending will be ever written? Books aren't music. If Radiohead decided to make an album with the same method, if they decided to give up in the middle, it wouldn't be a big problem. You paid for say, 5 songs, you got 5, and that 10 were originally were planned isn't that big a deal. Now with a book this is absolutely maddening. Not only people have much less incentive to pay in this way for any future creation of his, but all the paying customers got screwed. Great job.
For example, when working on source code, I have a source tree in SVN which doesn't include various external components, of which there are several. So I have a directory with all those components arranged in the structure they should be in inside the source tree.
When I check out a new copy of the source, I just overwrite it with the folder with the libraries, and this merges both trees. This way I don't need to go through manually putting every component in the right place.
It's the same as untarring or unzipping in Linux. Untarring over an existing directory doesn't remove its current contents. In fact that behavior is used to make primitive packaging systems for distributions.
On my machine, I'm the end user. I'm perfectly fine with the current layout.
The Mac system is nice for some things, but not really practical for Linux. Do you really want to see a/Applications directory with 400 folders for things like awk, grep, bash, OpenOffice, etc? The big/Applications model works well so long it's limited to large, end-user oriented applications. If you shove everything there then it'll be just as confusing as the current layout.
Also, this "drag folder to/Applications" model relies on a lack of dependencies. It's all nice and good if it's self-contained, but gets more complicated otherwise. For example take something like Java. On Linux, no end user really needs to care about what Java is, whether it comes preinstalled and what version. If there's an Azureus package it'll automatically result in the installation of a suitable JVM if needed.
This model also doesn't work for the OS itself. You may be able to install Firefox by just putting a folder in the right place, but you can't upgrade OS components in the same manner.
In the way that files that belong to applications are spread over a dozen directories. To name just one example: why is it considered a good idea to have a single directory with all the help files for everything that is installed? Just put them in the application directory already.
That's because the Linux filesystem layout comes from Unix, and that was made to be optimal for system administration. Meaning, having part of the filesystem be shared through NFS./etc,/bin,/sbin and/lib are needed for the system to boot./usr may be mounted from a share, and can be readonly.
The different locations for binaries, settings, etc, makes it very easy to share data between a hundred boxes, but not the configuration, or the configuration as well if you want it.
Even if you don't need a network, this is still nice for system administration. For example my general layout is root FS on plain RAID-1, then/usr,/var and/home mounted from LVM. This ensures that even if LVM gets messed up somehow, the box still boots, and in fact it boots from any surviving drive since it's a software RAID-1. Since a functional system is already in place, recovery is much easier.
But you do believe we should stick with the original UNIX model of storing files all over the place? I guess you must: you are violently attacking me when I support a proposed change to the original model.
The thing is that you don't understand the original model. You seem to think that the layout is the way it is because people just threw stuff into the first place they could think of. Learn why it's the way it is, then come up with a good reason why the original reasons are no longer good, and only then there can be a sensible discussion of the subject.
Of course, I realize this represents a Change From The Way Things Were. I understand the fear and uncertainty ANY change causes. Really! But rather than simply be an uber-arrogant asshole and say "rejected" without ANY consideration or discussion of the merits of the stated idea, we could and should have had a civilized discussion why this is good or bad.
If I wanted OS X, I'd use OS X. Your idea isn't new, and has been discussed hundreds of times before. That Ubuntu still keeps the old layout should be a hint.
It's pointless to store things that look like facts but aren't. If there's no such thing in the system as a product that costs -$5, a customer with no name, or an order row floating around in the void unrelated to any company, then it mustn't be possible to store such a thing in the first place.
In my experience, most of the time, rapid prototyping isn't. Whatever you "prototype" gets promoted to production, because nobody wants to wait for you to rewrite it in a real DB.
The application should of course validate input, but there can be multiple applications and multiple versions of them, as well as multiple people with direct access to the DB. The database has to verify correctness because that's your last chance of making sure of it.
Nightly batch reports won't cut it. Ok, report comes out and it says that nothing makes sense. If the database had rejected it immediately you'd very obviously see it at that moment, instead of having a lot of fun trying to trace back bizarre results produced by running calculations on bad data, which was bad because it was calculated on other bad data, which happened because the programmer made a typo and the application inserted something nonsensical.
It's the same thing as with bug fixes. It's cheapest to fix a bug when you find it during coding. It's more expensive to fix it when QA finds it. It's much more expensive to fix it when a customer finds it. In the same way, it's cheapest to fix a bug when the database refuses to accept incorrect data, and very expensive when you have to figure out what made a report produced from 50 tables not make any sense.
Eeew.
The whole point of a database is that it safely manages data. It's not any good to have a heap of bits when what they represent doesn't match reality.
With this model you'll end up with tables and columns created due to typos in the source, misunderstanding between what is the datatype for a column supposed to be. Is column called "item" a boolean (the row's type is "item"), or is it an integer (item number), or is it a varchar (item code), etc?
Lockdown later won't work well, because at lockdown time you'll likely find that something in the database doesn't make sense and you can't tell what it was supposed to actually be. Eg, if your organization has no concept of a product with a negative price, and you find one that has it (due to the lack of a constraint on the column), what do you do with it? Such things could fairly easily result in finding that the sales statistics for your past 3 months were actually incorrect, and the true amount can't be calculated.
If you want to keep your sanity, you need to design your database well first of all, not leave it for later.
How do you do a SELECT DISTINCT name, or an OUTER JOIN in that model? What if you need to search by a non-key column?
Key/value systems have their place, but doing very normal RDBMS things in them is a pain.
Have you seen Bruce Schneier's opinion on your plugin?
If your plugin still works as described, then I'd say it's very imperfect. I don't think the approach is completely wrong though, but it could use improvements.
This reminds me of the old idea of randomly embedding key words like "president", "nuke", etc in mail and usenet posts, to mess with with Echelon/Carnivore. A mail with random key words inserted in places would work for triggering the data gathering, but look obviously unrelated to a human who reads the message, as the extra stuff would be inserted in nonsensical places.
Now if your plugin happens to google for "raping virgins" how will you prove this wasn't a real search you tried to hide among a heap of a lot of grammatically incorrect ones? Searches that make grammatical sense will be a minority, and with a list like that there's a high chance that they won't be things normal people google about.
Then there's that it doesn't seem it actually follows any links from the searches, so if the ISP is doing logging it's easy enough to tell what is being actually used.
This seems to me like going to a library, and borrowing 20 books at once, including the Anarchist Cookbook and Mein Kampf, to try hide your actual and much more harmless interest in reading a book on say, Neopaganism. If your history is checked, all that extra stuff you didn't read isn't going to help you any, because there's no way to tell that most of your history was intended to be padding and you haven't even opened it.
Well, it was a bit of a bad example. From another thread:
This is what I mean -- somebody who considers it a must-have item not because it meets the necessary requirements at a good price, but simply because Apple makes it.
Rephrasing it a bit, I'd say a true fan is somebody who considers the brand to have much more weight than the characteristics of the actual hardware they're getting. For example I met an Intel fan, who was set on buying an Intel CPU because Intel is good, and AMD isn't for some unexplained reason. At that time the equivalent AMD hardware ran cooler, faster and cost noticeably less.
There's track record, and there's being a fan.
Track record means that as a quite happy owner of an HP laptop, I'll probably be slightly more likely to buy from HP next time as well. But that doesn't mean I won't look for reviews of multiple manufacturer's hardware, and definitely doesn't mean I'll buy the first HP laptop I see.
I also generally favor AMD hardware, but bought an Intel laptop because at that time the Intel option was clearly superior.
A true fan, IMO, is somebody that buys from $COMPANY because it's from $COMPANY and therefore cool, even if much better options exist. For instance, I'm not going to order RAM, a charger or a hard disk from HP's site, as it's much more expensive than buying the same stuff elsewhere.
Everybody knows roaming is expensive.
Everybody also assumes that when a phone looks off, that it's actually off and not accumulating roaming charges by checking mail.
But good to know it was fixed
No, it isn't.
This is a major turnoff. Travel in Europe is very easy and many people do it. My parents just noticed that it's a 3 day weekend, and decided to visit Portugal. A weather check, a bit of googling to see how much the hotel might cost, and they left. When you can easily travel on a whim without doing any real planning, how will the phone do abroad becomes pretty significant.
Well, the legality of the worker in question is related with that.
An illegal immigrant isn't going to get insurance, sue you, get a pension, etc. AFAIK, illegal immigrants here are paid with cash, which means no taxes to pay either.
That sort of thing is dangerous to try with a legal resident, as they can sue you, while an illegal immigrant probably would get deported before anything happened.
No, I think you're misunderstanding what the grandparent is saying.
What he's saying is that we had this tech for a long time, why is it suddenly starting to get used now? He says it's because of the crackdown on illegal immigrants. If the immigrant will work for $4 and hour, the native worker will ask for $7, and the robot's sales guy shows up and tells you it'll cost you an equivalent of a $6 an hour worker, who will you go with? The immigrant of course.
Now as soon as you get rid of the immigrants, the robots come in. The legal labor asks higher than that, and so they still don't get hired. While you can hire immigrants for peanuts with a low startup cost, the robots aren't very attractive. But once that is gone, the robot suddenly becomes a very attractive option. And perhaps the cost of the initial installation is equivalent to $6 an hour, but as your business grows, the expansion of the hardware might bring it down to $3 an hour.
It leads to irrational actions and purchases.
I try to be a fan of as few things as possible, and instead buy on the technical merit.
Furry bots ;-)
Actually, I wonder if anybody tried that yet. Probably less disturbing than human-like and easy to do. Probably would have cooling issues though.
The first computer talks to the second.
But anyway, that's not important. Point still stands, traffic analysis is possible, but the advantage is not on the ISP's side. Once you use encryption, reuse of common ports and immitate the proper protocols used over them, pretty much all an ISP has left is analyzing the flow and timing of traffic and that's not easy and error prone.
An ISP risks a large amount of angry customers every time they mess with something like this should something go wrong, while whoever works on the P2P program has it very easy to get it right, and cares much less about unhappy users.
Get this: There's no such thing. If they agreed to provide 1MBps without monthly limits, then they agreed to provide 1MBps without monthly limits.
No, they want to throttle because they know people won't sign up for a "30GB/month max" account, and they can't offer 512Kbps when everybody else is offering 4MBps. They can't sell you a 4Mbps account and then throttle your whole connection to 512K either.
The remaining solutions are kicking you out/throttling after you reach a limit, which doesn't make for good PR, or only throttling P2P to avoid affecting normal usage, like say, youtube.
So obfuscate it some more. Make the initial conversation be with a different computer than the one you will connect to.
It's an arms race indeed, but the winning side is going to be the P2P side. An ISP has to be very, very careful when deploying something like this. Meanwhile an open source P2P client could quickly release an update.
But I'm not talking about using a command and control channel. My idea is:
First, establish a normal HTTPS connection. Use it to exchange say, AES keys, port number, etc. ISP throttles this one, but the amount of data sent is very small. Once this is done you don't need this connection anymore.
Next, you establish a connection to the data port, using the previously agreed keys. Since the keys are already on there's no standard session establishment, it all looks like random junk from the first byte. Now do everything needed through this connection.
It's not hard at all to work around that by actually talking HTTP. Send "GET /files/backup.zip", the other side sends a data block instead.
If they disable UDP they'll break DNS, nearly every game in existence, voice chat and other streaming services... the list is pretty long.
And how do you detect encrypted traffic?
Encrypted data simply looks random. So does compressed data.
You could of course detect SSL connections (since the protocol is predictable), but that only works if you have some sort of detectable handshake or metadata around the compressed stuff.
Here's one workaround that comes to mind, for example: Establish a completely normal SSL session by HTTPS with another computer, exchange keys, close that connection, then start an encrypted connection using those keys, without any standard magic numbers of any sort.
Some of us just like to keep things separate.
For example, this account is named after my Second Life avatar. I have another much older account as well. I keep nearly separated identities in SL, an IRC channel and RL, and people who know me in one of those rarely know who I am in one of the others.
My main reason is that I like peace and quiet, and separation makes sure that arguments and drama from one place don't propagate to the other.
Then there's some completely legal activity that people don't like to advertise much. Drawing pokemon porn, or having virtual sex with a furry avatar in SL (I don't do that) is completely legal, but that's not the sort of thing people would like their boss or coworkers to find.
It's not for that.
Encryption prevents traffic analysis, which means that a router can't easily detect that something is a BitTorrent connection and throttle it.
Really this seems to be a case of "the more you tighten your grip, the more will slip through your fingers". The excessive amount of filtering first made sure that about everything learned to talk over port 80. Now they'll add encryption over that, so that ultimately a large percentage of traffic will be completely opaque and going through port 80, making it pretty much impossible to filter.
There might be a consequence for the RIAA though: It means that no traffic analysis will tell you what somebody is downloading. Sure you can see which computers and tracker are involved, but you don't know what's the file being transferred. So no way to tell anything by listening to traffic at strategic points, now you need to maintain a connection with a tracker for every file you want to monitor.
As an user this doesn't seem like such a bad thing, but as a sysadmin it has the potential of becoming quite annoying. Read on what it takes to stop Skype from working for a preview of what might become universal eventually.
Wikipedia has some history on that, let's see:
So it started very well
Several problems here.
The variable price. The doubling of the price (regardless of the amount of pages) can be taken as a sign of that "Aha! Now that I got them hooked, I'll charge through the nose". Not good.
The overall $13 cost is way too high. New books on Amazon can be bought for less than that. There's no good reason to pay an amount sufficient to pay for the production of a book, which is more comfortable to read than on a computer screen, and end up reading it on the computer.
Unrealistic expectations. Radiohead succeeded with a much lower percentage.
Problem for the future: Now that he's got a track record of selling part of a book and stopping before the ending, why would anybody pay for the first chapter if they have no guarantee of that the ending will be ever written? Books aren't music. If Radiohead decided to make an album with the same method, if they decided to give up in the middle, it wouldn't be a big problem. You paid for say, 5 songs, you got 5, and that 10 were originally were planned isn't that big a deal. Now with a book this is absolutely maddening. Not only people have much less incentive to pay in this way for any future creation of his, but all the paying customers got screwed. Great job.
Why inconsistent? It can come useful.
For example, when working on source code, I have a source tree in SVN which doesn't include various external components, of which there are several. So I have a directory with all those components arranged in the structure they should be in inside the source tree.
When I check out a new copy of the source, I just overwrite it with the folder with the libraries, and this merges both trees. This way I don't need to go through manually putting every component in the right place.
It's the same as untarring or unzipping in Linux. Untarring over an existing directory doesn't remove its current contents. In fact that behavior is used to make primitive packaging systems for distributions.
On my machine, I'm the end user. I'm perfectly fine with the current layout.
/Applications directory with 400 folders for things like awk, grep, bash, OpenOffice, etc? The big /Applications model works well so long it's limited to large, end-user oriented applications. If you shove everything there then it'll be just as confusing as the current layout.
/Applications" model relies on a lack of dependencies. It's all nice and good if it's self-contained, but gets more complicated otherwise. For example take something like Java. On Linux, no end user really needs to care about what Java is, whether it comes preinstalled and what version. If there's an Azureus package it'll automatically result in the installation of a suitable JVM if needed.
The Mac system is nice for some things, but not really practical for Linux. Do you really want to see a
Also, this "drag folder to
This model also doesn't work for the OS itself. You may be able to install Firefox by just putting a folder in the right place, but you can't upgrade OS components in the same manner.
That's because the Linux filesystem layout comes from Unix, and that was made to be optimal for system administration. Meaning, having part of the filesystem be shared through NFS.
The different locations for binaries, settings, etc, makes it very easy to share data between a hundred boxes, but not the configuration, or the configuration as well if you want it.
Even if you don't need a network, this is still nice for system administration. For example my general layout is root FS on plain RAID-1, then
The thing is that you don't understand the original model. You seem to think that the layout is the way it is because people just threw stuff into the first place they could think of. Learn why it's the way it is, then come up with a good reason why the original reasons are no longer good, and only then there can be a sensible discussion of the subject.
If I wanted OS X, I'd use OS X. Your idea isn't new, and has been discussed hundreds of times before. That Ubuntu still keeps the old layout should be a hint.