There's a subtle distinction there that you may have missed.
I "missed" it because the distinction is purely imaginary. There is no line between them. It's a matter of degree.
There is no "right to own cannons" in the 2nd amendment There is also no right to bear guns. Just a right to bear "arms" - a very generic term.
The argument you present is that you wish to have the right to shoot at Marines or US Army soldiers should you choose to do so. I have no tolerance for assholes who try to win arguments by lying about what I said. It's not "should you choose to do so". It's "should the government send them after me".
permit me to point out the idiocy of opposing B-52s with M-16s or AK-47s. Permit me to point out the idiocy of thinking a corrupt government would attack a dissident with an area-effect weapon that takes out the whole city block like a B-52 instead of with a person-to-person weapon like a rifle or machine gun.
A nuke kills the dissidents and productive useful citizens alike and is thus something a government would not want to use on its own citizens - it weakens the country. A gun is more selective and lets the government kill just whom they want to.
engaging in reasonable compromises that would remove military weaponry from the hands of civilians.
Just the opposite is true. Citizens being capable of forming up a militia is the explicitly defined purpose of the 2nd Amendment. Hunting is not. The pro-gun argument that guns are merely innocent tools and someone using one to kill a person is misusing it is utter bullcrap. That's what a lot of them are designed for (a hand pistol is generally not for hunting). The pro-gun argument that actually holds water is this: Yes, guns are designed for the purpose of being a weapon. They are designed to be able to harm people. And, since governments want militaries, guns will exist in the world, like it or not. So given that they will always exist, do you want them to be ONLY in the hands of the government? That way leads to totalitarian governments who pass any law they feel like without regard for whether it enrages their citizens or not, since the enraged citizens are impotent to resist the government.
Individuals end up making judgements like that. Is it legal to make it an official institutionalized policy, though? If the business is insurance the answer is yes. If it is anything else, the answer is no. Why? Why is there such a difference? Insurance gets away with doing blatantly, publicly, in the open, what other businesses have to try to hide or mask if they want to get away with it.
Here's a novel idea - try actually reading what I wrote. Here's a relevant line I'll quote from my post above: The only fair way to adjust someone's insurance is based on things they themselves have done,
The three examples you gave are precisely that sort of thing - treating people differently because they are from a commercial account, or treating people differently because they THEMSELVES have racked up a bad credit rating. To be a good analogy to my insurance rant, it would have had to have been, say, treating people differently because they are the same gender as people with bad credit ratings, or because they are living in the same neighborhood as people with bad credit ratings.
Not two weeks ago, she crashed the side of her car into a poll while parking.
Yikes!! I do hope the ballot box remained intact and none of the voters were injured.
(I do agree with your point, though. Insurance is the only industry where discriminatorally treating individuals as if they are responsible for the actions of others in their demographic is legal, and in fact is the norm.)
It is illegal for a company to change the prices they charge based on demographic data *even if it is true* because it is predjudiced to assume that an individual you meet will follow that pattern. At least that is the case everywhere EXCEPT insurance. I don't see why insurance gets to be the one exception. Even if a restaurant can prove statisticly that more of their problem customers that waste the staff's time and thus drain profits are men rather than women, it would still be wrong for them to thus add a "testosterone surcharge" to the bill for all male customers. If a private college discovers that female math students tend to spend more time going to see the professors with questions then male math students, it would still be wrong for them to tack on a "girls suck at math" surcharge to Women's tuitions. And yet this is precisely the kind of bullshit an insurance company does, and gets away with every single day.
The alternative would be to charge everybody the highest rate.
No. Charge them the middle rate when they first sign up with you as a youngster with a brand new driver's license. Then build a history of THAT ONE INDIVIDUAL ONLY and adjust the rate as time goes on. If after five years that individual has had no accidents, by then the rate will have gone down. If after five hears that individual has had a lot of accidents, by then he's being charged a gigantic rate.
The only fair way to adjust someone's insurance is based on things they themselves have done, not based on things other people in a similar demographic have done.
Being an insurance actuary is the only job where not only is discrimination allowed, it's actually the main purpose of your job.
I really hated it when people started calling "directories" "folders". The real-world analogy is less correct with "folders". A directory (a list of things indexed for your convenience) can contain a reference to another directory, which can contain a reference to another directory, and so on, and doing that does not make the original directory "stuffed full". That is a perfect analogy to a filesystem with subdirectories. On the other hand, a folder that contains a folder that contains a folder is going to get really stuffed and disorganized. The analogy fails here. Also, a thingy can be referenced in two different ways by two different directories. A business phone number might be in BOTH the yellow pages and in the blue pages. This is a perfect analogy to links in filesystems. But in a filing cabinet, when you put something in both folder A and folder B, you have to make a copy of it to do that.
I like Einstein's quote that everything should be made as simple as possible BUT no simpler. A lot of UI "experts" are trying to make things simpler than possible, and in the process of doing that they mis-educate the users.
A lightbulb costs less than $1, and does only one thing.
A computer costs a thousand or so, and is perhaps the most generic open-ended appliance in the world capable of nearly infinite types of task.
For the first, a simple interface is appropriate. For the second, it is not.
And the lightswitch is not the interface to the powergrid. It's the interface to the lightbulb. The interface to the powergrid is that big ugly box on the side of the house with the spinny dials metering your usage, and the line going out to the pole on the street. And *THAT*, you will notice, is in fact very complicated, and not meant to be user servicable.
When people argue that the complexity of a computer should be made invbisble to the user IF THE USER WANTS THAT, then I agree. But what they usually advocate is that it should be mandatory that it is made invisible to the user no matter what, and I cannot agree.
What makes a gui better for jpegs selective deletion is the inherent graphical nature of jpegs. If they are called "camera image a001.jpg" and "camera image a002.jpg" and so on, as often happens with digital cameras, then the only quick way to identify the files' contents is with a thumbnail preview list - an inherently GUI task.
But it is a deliberately contrived example to make the GUI appear better. In most normal circumstances, the CLI is faster for the person who knows it well than the GUI is for the person who knows IT well.
Consider the futuristic voice interface to computers predicted by so many sci-fi movies. If that ever happens, it will be the same thing as a CLI. A CLI is a syntax-dependant one-dimensional stream of data that only varies over time. So is speech - the exact same thing. And all the same problems will occur and the same kinds of solutions will occur, solutions that the UI "experts" of today claim are what makes the CLI bad:
computer: "Hello, user. What would you like me to do?" user: "delete my example..." computer: bing. Deleted. user: "..and explanation. Oh crap, not the file called my example, the one called "my example and explanation". Damn. I guess I need a way to tell the computer when I'm done speaking the command. Let's change that part of the interface.' (a few source code changes later...) user: "delete my example and explanation. commit." computer: "bing. bing. Both files deleted." user: "Both files??? Oh, crap - I had a file called "example" and a file caled "explanation". I guess I'll have to be able to tell the computer how to quote a whole section..." (a few source code changes later...) user: "Delete quote example and explanation unquote. commit." computer: "bing. file deleted." user: "There, finally. At least it didn't go off and delete the whole directory and commit." computer: "bing directory deleted." user: "ah crap... Now I gotta put in something to tell the computer when the command is starting...Remind me again why I thought this would be easier to use than a command-line???
There is only one way to save Enterprise - fire Rick Berman - and then use that plot-killing, continutity-destroying time travel technology one last time - to go back and restart the series and give us the cool storyline it could have, and should have, been - one that doesn't try to teach the lesson that letting people walk all over you is the only morally correct thing to do.
Of the list you gave, ONLY "some people even use it for databases" would make it a random-access format. For everything else in that big list (open office, markup, dia, conf files), it's used serially. (OpenOffice does not access the file randomly - it writes it from start to finish, or reads it from start to finish, only when loading or saving. The rest of the time, it does not use the file.)
Now, once it's been parsed into something in memory, THEN it might access it randomly, but the parsing or unparsing are sequential.
The biggest reason for considering using XML is that it "bought" us access to some useful standard libraries and tools that others could use to look at our data. Get rid of that, and there's also no reason to bother with XML anymore and we might as well go with something we invent on our own.
You are correct that your scheme would work to fix the problem I described. I made the mistake of describing the problem as being a lot simpler than it really is, however.
The root cause of the problems is the open architecture of the Internet, initially inhabited and managed by a collaborative community from government and universities.
I just wanted to stand up and scream, LIAR! at that point. The internet did just fine under that open archetecture. The problem was when closed archetecture like Windows was added to the internet. Spam increase is directly due to people getting their Windows computers "0Wn3d" - not a failure of open archetecture at all. Adware increase is directly due to people not having total control over their own computers - again NOT a failure of open archetecture at all.
Compressing will not add one iota of security if it uses a well-known open compression scheme. And if it doesn't use a well-known compression scheme, then it defeats the purpose of having an open standard of file exchange and thus doesn't belong in XML.
If the data needs to be hidden for security, then encrypt the transmission via https instead of http. But don't go ruining the openness of the XML file format to do it.
The more compression that is done, the greater the CPU usage. Eventually it reaches a point of diminishing returns where there is no point in trying to compress a network stream any further because you are merely turning it from an I/O bound task to a CPU bound task. Also, to get really good compression, you need to look ahead and see a lot of the bytes of the file to look for similarites. But in a stream application, you don't have the luxury of holding giant buffers for each stream of bytes - so you have to make do with finding what compression you can in the smaller buffered chunks of the data that you pass through a little at a time. Therefore, although compression is used, it's not going to be the really good kind of compression we're used to seeing with something like "gzip -9".
The existence of the TCP/IP protocol proves that it is possible to have a binary format still be open. The header data in the packets is totally binary - but in a well-defined way. It is a standard, for example, that all integers exchanged on the network will have their bytes (oh, I'm sorry I mean "octects") arranged in big-endian order. The 32-bit IP address scheme is a binary standard. The 32-bit timestamps are binary standards...etc
The real problem with XML is that it adds the extra verbosity of the metadata text tag for EACH INSTANCE of a pice of data even in cases where that metadata is identical for row after row of data. In the case of table data, that is really stupid. There should be some sort of XML means to handle a table of values better. A way to say "Column 1 has the following XML properties: name, etc", then "Column 2 has the following XML properties: name, etc".... and then after that section, a way to syntactically list just the values up until the end of the loop.
This is what made us balk at using XML for storing NMR spectroscopy data, even though it is already in a textual form to begin with. The current textual form is whitespace-separated, little short numbers less than 5 digits long, for hundreds of thousands of rows. That isn't really that big in ascii form. But turn it into XML, and a 1 meg ascii file turns into a 150 meg XML file because of the extra repetative tag stuff.
In another bit of irony, we can't find an in-memory representation of the data as a table which is more compact than the ascii file is. The original ascii file is even more compact than a 2-D array in RAM. (because it takes 4 bytes to store an int even when that int is typically just one digit and is only larger on rare occasions.)
Due to the fact that English grammer is a mixture of three different languages, there are multiple ambiguous ways to order the words and parse the words. There are sometimes great statements that have a completely different meaning than intended.
I read this headline with the wrong association the first several times I saw it. Instead of:
(Microsoft Releases) (Malicious Software) (Removal Tool) I read it as:
(Microsoft Releases) (Malicious) (Software Removal Tool) i.e. a software removal tool that is malicious.
For me it was Theif and Theif 2 - After a long session in a dark room lit by nothing other than the computer monitor, sneaking my way past guards and trying not to be seen, I'd go to work the next morning and I couldn't help but notice where every shadow on the ground was, and I'd start mentally planning my path for how to walk to the next room witout leaving any of the shadowed spots on the ground. - that and feeling an odd irritation that all the lights are electrical.
There's a subtle distinction there that you may have missed.
I "missed" it because the distinction is purely imaginary. There is no line between them. It's a matter of degree.
There is no "right to own cannons" in the 2nd amendment
There is also no right to bear guns. Just a right to bear "arms" - a very generic term.
The argument you present is that you wish to have the right to shoot at Marines or US Army soldiers should you choose to do so.
I have no tolerance for assholes who try to win arguments by lying about what I said. It's not "should you choose to do so". It's "should the government send them after me".
permit me to point out the idiocy of opposing B-52s with M-16s or AK-47s.
Permit me to point out the idiocy of thinking a corrupt government would attack a dissident with an area-effect weapon that takes out the whole city block like a B-52 instead of with a person-to-person weapon like a rifle or machine gun.
A nuke kills the dissidents and productive useful citizens alike and is thus something a government would not want to use on its own citizens - it weakens the country. A gun is more selective and lets the government kill just whom they want to.
"get involved in party organizations" equals "become part of the problem".
engaging in reasonable compromises that would remove military weaponry from the hands of civilians.
Just the opposite is true. Citizens being capable of forming up a militia is the explicitly defined purpose of the 2nd Amendment. Hunting is not. The pro-gun argument that guns are merely innocent tools and someone using one to kill a person is misusing it is utter bullcrap. That's what a lot of them are designed for (a hand pistol is generally not for hunting). The pro-gun argument that actually holds water is this: Yes, guns are designed for the purpose of being a weapon. They are designed to be able to harm people. And, since governments want militaries, guns will exist in the world, like it or not. So given that they will always exist, do you want them to be ONLY in the hands of the government? That way leads to totalitarian governments who pass any law they feel like without regard for whether it enrages their citizens or not, since the enraged citizens are impotent to resist the government.
Individuals end up making judgements like that. Is it legal to make it an official institutionalized policy, though? If the business is insurance the answer is yes. If it is anything else, the answer is no. Why? Why is there such a difference? Insurance gets away with doing blatantly, publicly, in the open, what other businesses have to try to hide or mask if they want to get away with it.
Here's a novel idea - try actually reading what I wrote.
Here's a relevant line I'll quote from my post above:
The only fair way to adjust someone's insurance is based on things they themselves have done,
The three examples you gave are precisely that sort of thing - treating people differently because they are from a commercial account, or treating people differently because they THEMSELVES have racked up a bad credit rating. To be a good analogy to my insurance rant, it would have had to have been, say, treating people differently because they are the same gender as people with bad credit ratings, or because they are living in the same neighborhood as people with bad credit ratings.
Not two weeks ago, she crashed the side of her car into a poll while parking.
Yikes!! I do hope the ballot box remained intact and none of the voters were injured.
(I do agree with your point, though. Insurance is the only industry where discriminatorally treating individuals as if they are responsible for the actions of others in their demographic is legal, and in fact is the norm.)
It is illegal for a company to change the prices they charge based on demographic data *even if it is true* because it is predjudiced to assume that an individual you meet will follow that pattern. At least that is the case everywhere EXCEPT insurance. I don't see why insurance gets to be the one exception. Even if a restaurant can prove statisticly that more of their problem customers that waste the staff's time and thus drain profits are men rather than women, it would still be wrong for them to thus add a "testosterone surcharge" to the bill for all male customers. If a private college discovers that female math students tend to spend more time going to see the professors with questions then male math students, it would still be wrong for them to tack on a "girls suck at math" surcharge to Women's tuitions. And yet this is precisely the kind of bullshit an insurance company does, and gets away with every single day.
The alternative would be to charge everybody the highest rate.
No. Charge them the middle rate when they first sign up with you as a youngster with a brand new driver's license. Then build a history of THAT ONE INDIVIDUAL ONLY and adjust the rate as time goes on. If after five years that individual has had no accidents, by then the rate will have gone down. If after five hears that individual has had a lot of accidents, by then he's being charged a gigantic rate.
The only fair way to adjust someone's insurance is based on things they themselves have done, not based on things other people in a similar demographic have done.
Being an insurance actuary is the only job where not only is discrimination allowed, it's actually the main purpose of your job.
I really hated it when people started calling "directories" "folders". The real-world analogy is less correct with "folders". A directory (a list of things indexed for your convenience) can contain a reference to another directory, which can contain a reference to another directory, and so on, and doing that does not make the original directory "stuffed full". That is a perfect analogy to a filesystem with subdirectories. On the other hand, a folder that contains a folder that contains a folder is going to get really stuffed and disorganized. The analogy fails here. Also, a thingy can be referenced in two different ways by two different directories. A business phone number might be in BOTH the yellow pages and in the blue pages. This is a perfect analogy to links in filesystems. But in a filing cabinet, when you put something in both folder A and folder B, you have to make a copy of it to do that.
I like Einstein's quote that everything should be made as simple as possible BUT no simpler. A lot of UI "experts" are trying to make things simpler than possible, and in the process of doing that they mis-educate the users.
A lightbulb costs less than $1, and does only one thing.
A computer costs a thousand or so, and is perhaps the most generic open-ended appliance in the world capable of nearly infinite types of task.
For the first, a simple interface is appropriate. For the second, it is not.
And the lightswitch is not the interface to the powergrid. It's the interface to the lightbulb. The interface to the powergrid is that big ugly box on the side of the house with the spinny dials metering your usage, and the line going out to the pole on the street. And *THAT*, you will notice, is in fact very complicated, and not meant to be user servicable.
When people argue that the complexity of a computer should be made invbisble to the user IF THE USER WANTS THAT, then I agree. But what they usually advocate is that it should be mandatory that it is made invisible to the user no matter what, and I cannot agree.
What makes a gui better for jpegs selective deletion is the inherent graphical nature of jpegs. If they are called "camera image a001.jpg" and "camera image a002.jpg" and so on, as often happens with digital cameras, then the only quick way to identify the files' contents is with a thumbnail preview list - an inherently GUI task.
But it is a deliberately contrived example to make the GUI appear better. In most normal circumstances, the CLI is faster for the person who knows it well than the GUI is for the person who knows IT well.
Consider the futuristic voice interface to computers predicted by so many sci-fi movies. If that ever happens, it will be the same thing as a CLI. A CLI is a syntax-dependant one-dimensional stream of data that only varies over time. So is speech - the exact same thing. And all the same problems will occur and the same kinds of solutions will occur, solutions that the UI "experts" of today claim are what makes the CLI bad:
computer: "Hello, user. What would you like me to do?"
user: "delete my example..."
computer: bing. Deleted.
user: "..and explanation. Oh crap, not the file called my example, the one called "my example and explanation". Damn. I guess I need a way to tell the computer when I'm done speaking the command. Let's change that part of the interface.'
(a few source code changes later...)
user: "delete my example and explanation. commit."
computer: "bing. bing. Both files deleted."
user: "Both files??? Oh, crap - I had a file called "example" and a file caled "explanation". I guess I'll have to be able to tell the computer how to quote a whole section..."
(a few source code changes later...)
user: "Delete quote example and explanation unquote. commit."
computer: "bing. file deleted."
user: "There, finally. At least it didn't go off and delete the whole directory and commit."
computer: "bing directory deleted."
user: "ah crap... Now I gotta put in something to tell the computer when the command is starting...Remind me again why I thought this would be easier to use than a command-line???
And that is why the CLI will not die.
There is only one way to save Enterprise - fire Rick Berman - and then use that plot-killing, continutity-destroying time travel technology one last time - to go back and restart the series and give us the cool storyline it could have, and should have, been - one that doesn't try to teach the lesson that letting people walk all over you is the only morally correct thing to do.
Of the list you gave, ONLY "some people even use it for databases" would make it a random-access format. For everything else in that big list (open office, markup, dia, conf files), it's used serially. (OpenOffice does not access the file randomly - it writes it from start to finish, or reads it from start to finish, only when loading or saving. The rest of the time, it does not use the file.)
Now, once it's been parsed into something in memory, THEN it might access it randomly, but the parsing or unparsing are sequential.
that's your fault for using DOM/SAX as an API
The biggest reason for considering using XML is that it "bought" us access to some useful standard libraries and tools that others could use to look at our data. Get rid of that, and there's also no reason to bother with XML anymore and we might as well go with something we invent on our own.
You are correct that your scheme would work to fix the problem I described. I made the mistake of describing the problem as being a lot simpler than it really is, however.
I just wanted to stand up and scream, LIAR! at that point. The internet did just fine under that open archetecture. The problem was when closed archetecture like Windows was added to the internet. Spam increase is directly due to people getting their Windows computers "0Wn3d" - not a failure of open archetecture at all. Adware increase is directly due to people not having total control over their own computers - again NOT a failure of open archetecture at all.
XML is mostly about transmission over the wire - an inherently sequential operation.
Compressing will not add one iota of security if it uses a well-known open compression scheme. And if it doesn't use a well-known compression scheme, then it defeats the purpose of having an open standard of file exchange and thus doesn't belong in XML.
If the data needs to be hidden for security, then encrypt the transmission via https instead of http. But don't go ruining the openness of the XML file format to do it.
The more compression that is done, the greater the CPU usage. Eventually it reaches a point of diminishing returns where there is no point in trying to compress a network stream any further because you are merely turning it from an I/O bound task to a CPU bound task. Also, to get really good compression, you need to look ahead and see a lot of the bytes of the file to look for similarites. But in a stream application, you don't have the luxury of holding giant buffers for each stream of bytes - so you have to make do with finding what compression you can in the smaller buffered chunks of the data that you pass through a little at a time. Therefore, although compression is used, it's not going to be the really good kind of compression we're used to seeing with something like "gzip -9".
The existence of the TCP/IP protocol proves that it is possible to have a binary format still be open. The header data in the packets is totally binary - but in a well-defined way. It is a standard, for example, that all integers exchanged on the network will have their bytes (oh, I'm sorry I mean "octects") arranged in big-endian order. The 32-bit IP address scheme is a binary standard. The 32-bit timestamps are binary standards...etc
The real problem with XML is that it adds the extra verbosity of the metadata text tag for EACH INSTANCE of a pice of data even in cases where that metadata is identical for row after row of data. In the case of table data, that is really stupid. There should be some sort of XML means to handle a table of values better. A way to say "Column 1 has the following XML properties: name, etc", then "Column 2 has the following XML properties: name, etc".... and then after that section, a way to syntactically list just the values up until the end of the loop.
This is what made us balk at using XML for storing NMR spectroscopy data, even though it is already in a textual form to begin with. The current textual form is whitespace-separated, little short numbers less than 5 digits long, for hundreds of thousands of rows. That isn't really that big in ascii form. But turn it into XML, and a 1 meg ascii file turns into a 150 meg XML file because of the extra repetative tag stuff.
In another bit of irony, we can't find an in-memory representation of the data as a table which is more compact than the ascii file is. The original ascii file is even more compact than a 2-D array in RAM. (because it takes 4 bytes to store an int even when that int is typically just one digit and is only larger on rare occasions.)
Due to the fact that English grammer is a mixture of three different languages, there are multiple ambiguous ways to order the words and parse the words. There are sometimes great statements that have a completely different meaning than intended.
I read this headline with the wrong association the first several times I saw it.
Instead of:
(Microsoft Releases) (Malicious Software) (Removal Tool)
I read it as:
(Microsoft Releases) (Malicious) (Software Removal Tool)
i.e. a software removal tool that is malicious.
For me it was Theif and Theif 2 - After a long session in a dark room lit by nothing other than the computer monitor, sneaking my way past guards and trying not to be seen, I'd go to work the next morning and I couldn't help but notice where every shadow on the ground was, and I'd start mentally planning my path for how to walk to the next room witout leaving any of the shadowed spots on the ground. - that and feeling an odd irritation that all the lights are electrical.