IBM's DOS was Microsoft's, i.e. it was MS-DOS with a different name and a few trivial differences such as GW-BASIC (also Microsoft's) being included on the disks with MS-DOS, whereas the same command in PC-DOS launched the ROM-based GW-BASIC that was only present on IBM's machines.
"Your application *will* break when a future version of the OS comes out."
An excellent point, which I gladly concede.
NB: The Registry isn't immune to breakage problems of this sort. Microsoft's programming guidelines for example used to tell developers that they should use HKEY_LOCAL_MACHINE as the root for storing application info, and this has resulted in lots of older software breaking for users without write privileges to it.
"Manifests go there because they never change. At least not until the application is patched or upgraded, which requires admin permissions anyway."
Some types of manifests are meant to be modified by users whenever they feel the need to, e.g. Application Configuration Files (which, despite the name, are XML files just like all other manifests).
"You were implying that the recommendation was that *all* application-specific data should go into the registry."
It would be ludicrous for me to imply that MS said this, because applications generate plenty of internal data that only ever exists in memory, while some use RDBMS systems for storing certain types of data, others generate data for processing by completely unrelated pieces of software such as compilers and media playing software, still others process that data, and whole classes of programs exist that don't read or write any persistent information at all.
"I'm trying to figure out why one file would be more or less prone to being corrupted than another file."
That part of my post was a refutation of your insistence that the Registry was superior because XML is kept in files, so I pointed out that the same is true of the Registry, and in fact most things in Windows, so they both share a common set of weaknesses in this regard. It was for this reason that I found your reply puzzling.
"The point is that if you do it with a batch file, you can only make the change at login."
Or you could use the Windows Task Scheduler to do it at login, and then at a user-specified interval. It's a very flexible tool that ships with all versions of XP and Vista, and can be downloaded from MS' web site for earlier variants of Windows.
"Wow, an actual point. Except that it only applies for software run as administrator"
i.e. every Windows XP system that isn't being used on one of the corporate networks that force lower privilege settings on users (which, if the number of them whose entire networks have been brought to their knees by a worm is anything to go by, is a long way from being all corporates).
"Microsoft's customers are corporations."
Please explain the existence of the following products if corporates are their customers:
Windows-95 Windows-98 Windows XP Home Windows XP Media Center Edition Windows Vista Home Basic Windows Vista Home Premium DirectX A large selection of PC games that they began producing long before the XBox appeared (Flight Simulator, Age Of Empires, Close Combat, etc). Lots of other stuff that corporate customers not only have no use for, but probably don't want anywhere near their systems.
"f software makers don't document their registry keys, how is that Microsoft's fault?"
This is a blatant straw man, because I didn't say or imply that it was Microsoft's fault.
"f software makers don't document their registry keys, how is that Microsoft's fault?"
I fail to see why you're so obsessed with INI files. I am claiming that application data that isn't meant to be shared doesn't belong in a global repository, but should be stored locally instead. Nothing about this requires the use of the old INI file format.
"Well, first of all, configuration information..."
My last post clarified the fact that I'm not just talking about configuration information, so why are you harping about configuration information again?
"...is meant to be "read or modified" by products from other vendors and end users. The product from other vendors being tools like group policies, and the end users being people who select Tools->Options."
This depends entirely on the market an application is meant for. The vast majority of Windows software isn't aimed at corporate users with Active Directory setups, so why should the people who write it spend time and effort supporting group policies if none of their customers will ever use them?
"In fact, by your definition, the AppData directory is exactly where you should put that data, since it's data the that (by your own definition) isn't meant to be modified by other vendors or end users."
Why not keep things simple and put it in the same directory as the application instead? it's what Microsoft do with their manifest files, so why shouldn't we be allowed to follow their lead?
"First of all, I'm pretty sure Microsoft never required local data to be stored in the registry."
You're wrong. There aren't any web links to Microsoft's own documentation about Windows-95 logo requirements because nobody wants Windows-95 logos anymore, but there's plenty of other stuff on the web from that period, e.g.;
Quote: "So for Windows 95, Microsoft advised its supporting manufacturers that applications that qualify for the Windows 95 logo should disavow any use of.INI files, in favor of the Registry instead."
"The registry is, and always has been, for configuration only."
If this is the case, then why does it support volatile keys that are never written to the Registry hive?
"Are you seriously suggesting that IE4 stored (or should have stored) the browser cache in the registry? That's ridiculous."
It is indeed ridiculous, hence the fact that i didn't suggest it.
"If they want to make quality software, they'll spend two days writing the abstraction layer, or just finding one already written. If they don't give a shit about making quality software, then they can do whatever the hell they want. But it won't be quality software."
I'm actually rather taken aback by the fact that anyone would write a piece of utter tripe like this on a forum which is read by many professional programmers.
"The reason not to use XML isn't because "Microsoft doesn't support it." You don't need to convince me that Microsoft has a MSXML library, because, see, I'm not a retard."
I humbly suggest that the piece of tripe you wrote above would seem to contradict your assessment of yourself.
"The point of using the registry is that it's simply better at storing configuration information than XML in several important ways, all of which Raymond Chen outlined in the post that started this stupid conversation."
I would appreciate it if you could include a link to the article where Raymond Chen says the Registry is better than XML, because the one in your original post was about it being better than Windows INI files, which don't use XML.
"The registry has locks and transactions, so if the program is written
"part of the point is that [application private data] is relevant for corporate networks using active directory and group policies."
Hence the fact that so much application-specific data is stored in the Registry as undocumented groups of numbers with meaningful names such as "Hrrlh99_07014". The people who wrote that software were obviously thinking "Hey, this private stuff may well be used to set group policies in a corporate network, so we'll support that by using names and data formats that don't make sense to anyone else for our Registry entries, and give further assistance by working hard to ensure that we don't let customers know anything about what it's used for and how it's laid out".
"You're not talking about local information (like web cache), you're talking about configuration information."
I'm talking about _any_ information applications store during installation, updating, or between sessions that's not meant to be read or modified by either products from other vendors, or end users.
"There already is a place for local information that isn't configuration: [user]/Local Settings/Application Data."
You obviously didn't read the paragraph you're replying to, because that particular structure was not part of Windows/NT 4.X or Windows-95 when MS required local data to be stored in the Registry for Windows logo compliance.
"Most applications used installers, from my experience, before the registry came about."
But using them was far from compulsory because all they did was create some directories and copy files from the distribution media into them, hence the fact that most vendors included extremely simple instructions for doing the same things by hand if the installer failed for some reason.
"Why is this a "political" reason? What does Microsoft get out of this?"
They gain the ability to prevent non-technical people from cloning installed applications by the simple expedient of copying directory structures to media or across a network.
"They couldn't [find out what's installed on a system} before by scanning the filesystem?"
Scanning entire file systems tends to bring computers to their knees for long periods of time, so people tend to get pretty shirty when their work gets interrupted because some process they have no control over starts doing it without asking.
"Assuming you're paranoid enough to think Microsoft actually cares about what apps you're using."
If Microsoft don't care what apps people use, then why do they have schemes like Windows Genuine Advantage and Office Genuine Advantage?
"Ok, here you might have a valid point, if it weren't so mind-numbingly simple to abstract this away."
I doubt that people writing portable software would bother to spend time and money designing, writing, and testing such an abstraction layer just to store local data when they can do the same thing with an existing well-defined multi-language multi-platform standard such as XML's DOM or SAX, both of which are fully supported by Windows itself (Google for "MSXML" or "Microsoft XML Core Services" for more info).
"I don't see how XML could possibly solve the concurrency problem-- XML files are basically just text, and have to be fully loaded and parsed by each program using them, so how do you prevent one instance from stomping over another instance's settings when it writes the XML file back out?"
The Registry doesn't prevent multiple instances of the same application being run by the same user from overwriting each others' settings, so as with XML, any application-specific values in it will be those that the last instance put there. Multiple users can be handled trivially in XML by using a similar strategy to those of the Registry, i.e. having separate sections for each user's settings.
NB: as with just about everything in Windows, the Registry is kept in files called "Registry hives", so there's nothing magical about it that makes it immune to the problems that can affect files in general. Badly
That's nothing: I bricked the Internet by changing a setting in my router, and now none of my machines will connect to it. It doesn't matter what they're running: XP, Ubuntu, OS X -- all of them fail, which obviously wouldn't happen to the Mac if all those claims about "just working" weren't caused by Steve's famous Reality Distortion Field.
""Bricked" is currently in the processing of being remapped to just mean "broken"."
it's actually being remapped to mean "certain functionality has been temporarily lost. Normal service can be restored by end users with IQs that cannot be expressed by a single decimal digit".
Paragraph 1 of your reply shows that it is you who is hopelessly confused, because the bit you quoted from my post made it quite clear that I was claiming _most cultures_ believe sharing is a positive trait and greed is a negative one, not that I believed it (there is nothing anywhere in my post that says what my own position is).
"The Slashdot community is pissed whenever anybody violates the GPL"
You really are confused if you think that Slashdot is a community with a single coherent opinion on any topic.
" IIRC, there was (some) outrage when some small distro tried distributing compiled ISOs and linking to the source code instead of providing it from their server."
There was indeed "Some outrage", just as there's "some outrage" in Slashdot discussions about any topics that _some people_ feel strongly about. And the ones who have the strongest feelings tend to be both the most polarised and prolific posters when topics they care about are being discussed, hence the fact that these topics also attract more trolls and sock-puppets than less controversial ones.
Slashdot has around a million members, yet even the rare topics that get more than a thousand posts have contributors who number in the low hundreds, and the vast bulk of the discussions on them usually come from a couple of dozen people with either opposed but equally strongly held viewpoints, or posters who are playing "devil's advocate", trolling, etc. (I'm not implying that trolling and playing Devil's Advocate are in any way equivalent here).
So the "Slashdot community" that you claim is "pissed whenever anybody violates the GPL" is in fact a few tens or hundreds of people, while 99.9% of Slashdotters either completely ignore the entire topic because it isn't something they're interested in, or are only interested enough to read what others have to say about it.
"I do agree that it's harder than it should be to export registry entries for a specific application"
My point wasn't about how difficult (or otherwise) its is, but the fact that I and many, many other developers don't think that a centralised global repository is an appropriate place for storing persistent information which is only relevant to the application that wrote it, or other applications by the same vendor.
Global repositories should be used for information that's globally relevant, and everything else should be stored in files locally.
"As Raymond Chen's post shows, it wasn't some random malicious implementation designed to make your life worse, it was a solution that was better in almost every way to the existing solution."
As I said in my last post, this is solely due to the fact that Microsoft decided to deprecate using files to store local information. They pretty much forced professional developers to use the Registry for this by making it a requirement for any applications that wanted to use the Windows-95 and / or Windows/NT logos, and their reasons for this were political and commercial rather than technical:
1) The Registry makes people use installers and uninstallers instead of simply moving or deleting directories like they did with Windows 3.X.
2) MS can easily find out precisely what's on customers' machines.
3) It helps lock applications into Windows by adding to the amount of Windows-specific code in them.
If the above isn't true, and Microsoft's reasons really were due to the inherent technical superiority of the Registry, then please explain how Microsoft and others have managed to write APIs for reading and writing XML (a file-based format) that have none of the limitations Chen claims as reasons for the Registry being better.
NB: one of Chen's points about file size limitations with INI files is a bit rich considering the fact that the entire Registry had to fit into 64K on Windows-9X, which caused notable problems when installing Visual Studio 6 due to it's unusually large number of extremely long paths (there was a technical note with a workaround distributed with the product). The fact that this has never been an issue with NT-based systems only serves to highlight the fact that there is no technical reason for the 32K limit on INI file size in any true 32-bit version of Windows.
"I've seen people WILLINGLY buy spyware (e.g. winantivirus), and even pay monthly subscription fees for it (e.g. e-anthology). Having them enter a password won't make any difference."
Especially when a UK survey that was run a couple of years back showed that a significant proportion of people using IT systems at work were happy to part with their user names and passwords in exchange for a bar of chocolate.
"Thieves dont break into unsecure and secure houses with an even statistica spread. They look for the easy target."
Opportunists look for easy targets, while skilled professional thieves hit high value targets that tend to be pretty well protected. A decent domestic security system (good locks, solid doors, alarms) on an ordinary house will deter most opportunistic thieves who are trying to steal TVs, cameras, and other domestic items, but those who live in mansions full of valuable artworks, jewellery, and safes with lots of money in them are likely to attract the attention of people to whom considerably better security systems are a minor inconvenience.
"11 reasons why the registry is better than.ini files:"
Which are actually 11 reasons why Microsoft's INI file APIs suck due to not having been updated since the days of Windows 3.X.
The Registry made sense as it was implemented in Windows 3.X, i.e. as a way of sharing OLE automation data etc. between programs. It does however suck donkey balls as a mechanism for storing persistent information that's only relevant to a single program, which could have been much better handled by an updated set of INI file APIs specifically designed for the job.
"Listen to the blues; it's such a regular formula, anyone can play it."
There is a vast range of music that qualifies as blues, ranging from simple 8 and 12 bar 3 chord stuff through New Orleans blues, some of which has an extremely complex harmonic structure, right up to stuff like Gershwin's Rhapsody In Blue, which isn't an easy piece to play by any stretch of the imagination.
We'd have given anything for punched cards. We had to lay out binary code using rocks that we quarried with our bare hands, and carried on our backs up hills, one ton rocks for 0, and two ton rocks for ones. Then they'd be smashed to bits by men with hammers called Digital Rights Managers, and we'd have to go down to the quarry and start again.
" the prevailing attitude on/. seems to be that it doesn't matter because music is just data, and sharing data is easy/cheap, so file sharing should be okay."
The problem for those whose livelihoods or businesses depend on copyright isn't what a few Slashdot geeks say and think, but the fact that most cultures believe sharing what one has with others is a positive trait (generosity), while hoarding stuff that isn't actually scarce by nature so one can charge for it is a negative one (greed). This is why every major survey that's been done indicates that the public sees nothing morally wrong whatsoever in sharing files as long as it isn't being done for profit.
"every time a story breaks about some company violating the GPL, the/. crowd throws a hissy fit"
The key here is "company", i.e. commercial piracy, which most Slashdotters agree with the vast majority of non-Slashdotters is wrong, irrespective of what's being pirated.
"they did not have copyright or IP in ancient Rome and look what happened to them - where are they now?"
A better question is where will our civilisation and its trappings be 800 years in the future, because theirs lasted over a thousand years, while ours is less than 300 years old, and the cracks are already showing.
"I for one think this is madness. Why? because there's no way to be 100% secure on the internet."
There's no way to be 100% secure anywhere, but people are still expected to take reasonable precautions against predictable mishaps. What the banks are doing here isn't really any different from insurance companies expecting people not to leave their homes unlocked with everything valuable in a sack on the doorstep marked "swag" because the police say no security systems will stop a determined and skilled thief, so they've decided that trying to prevent theft is completely pointless.
People who use online banking will now be told that they're expected to install some basic protection against online nasties, so those didn't know about such things previously will now be better informed. As with physical locks, alarms, etc., they won't stop those with determination and skill, but this doesn't mean that systems with them aren't better protected than those without, especially when they're being used by people who don't know very much about computers.
If this is the case, then please explain how Saddam Hussein managed to rule Iraq with a fist of iron when gun ownership was not only allowed during his hegemony, but so common that volleys of AK-47 shots were (and still are) a common sight at weddings and other celebrations.
Clue stick: Saddam's boys fielded tanks, artillery, attack helicopters, poison gas, and all sorts of other things that even crappy armies tend to have, let alone really amazing ones like that of the US. So unless your right to bear arms includes RPGs, RADAR-guided AAA, and other sorts of devices that can be used against heavy armour and attacks from the air, any potential dictator and his forces will roll over a group that's wielding hand weapons in a few seconds without taking any casualties at all.
Christopher Lee, another old timer, also has an amazingly resonant and distinctive voice, although it's debatable whether he's not really part of Hollywood.
"Also non-USA citizens are subject to this crazy law, when they post material on a US based server. "
I fail to see how anyone could reasonably expect any country's laws not to apply to content that's in that country by virtue of being on servers that are physically located there.
"Or not even necessarily that it seems, do legal reverse-engineering or encryption related work in your own country, visit the USA, get arrested, it's possible, no?"
It only happens if you reverse engineer stuff that would be covered by the DMCA, which means it has to be from a company which has rights to the item in question within the US who have complained about your actions, and managed to get an arrest warrant issued. They have no more jurisdiction over things that aren't legally distributed there (beyond banning them, of course) than the European Commission does over things that aren't distributed within the EC, unless of course they're acting on behalf of a country that they have treaty obligations to. This will however only happen if said country has made a formal request to the relevant US authorities.
"How about a facebook.de, or a youtube.nl, fully hosted in that country, and incorporated there as well."
How would they finance themselves? Advertisers on the US versions have a potential audience of hundreds of millions, the vast majority of whom can read or write English, so AT&T for example will pay a lot more for a spot on a popular US site than a Polish phone company would to a Dutch or German one. You only have to look at how much UK ISPs are squealing about the extra bandwidth costs that the BBCs media players are lumping them with to see how difficult things could be for a European YouTube, especially when one considers the fact that the UK is one of largest EU countries in terms of population, and that the BBC don't let people from outside access its content.
"Yet all these video-sharing and other creative enterprises on the Internet seem to sprout and flourish mostly in the USA."
The size and nature of the US market has resulted in all sorts of companies and services that are rare elsewhere, but the Internet is the only place that it becomes obvious to those who haven't spent a fair amount of time there.
"Those people in a different country chose a communist government that shot their economy to hell, not to mention killing millions of their best citizens in progress. Why should I prop their economy at the cost of my salary and job security when they still didn't admit any mistakes?"
Because the government _you chose_ to run your country (which also refuses to admit it's made any mistakes) has said that you're going to, and there's nothing you can do about it because you have a two party system, and both of them are paid by big business to do what's best for big business, i.e. increase profits by paying cheap foreign labour to do the same jobs that they used to give to expensive American labour.
"We are creating a country of ownership of ideas and not of production. That in of itself is a loss of power if we ever have a military action against those countries of of an ally of them."
There's also a fundamental economic problem with basing everything on IP: it assumes that the countries who are being outsourced to will continue to be IP consumers rather than IP producers. We had the same ideas about Japan in the 1950s and 1960s, when we were telling ourselves that they could only make cheap rip-offs of Western products because they weren't capable of inventing things for themselves, and we all know how accurate that prediction-born-of-arrogance ended up being.
"Unless we rebuild our nation, starting with our currency, then to manufacturing, and on, I can see us economically dying to countries like China and India that have almost 2 billion between them."
By 2007 estimates, they have considerably more than 2 billion people between them (around 1.3 billion each), which means that either of them has about the same population as the US, Canada, Australia, New Zealand, Japan, and Europe put together.
"I wonder how high the Chinese could push oil? 200$ a barrel? 300$ a barrel? Or even our worst nightmare of switching OPEC to the Euro?"
China isn't pushing oil prices up except indirectly by competing for supplies. Oil producers and petrochemical commodities traders dictate the price it sells at, and oil producers will be also the ones who decide what currency they want in exchange for it. China is as much a victim here as we are, possibly more so, because their low labour costs mean that raw materials (many of which are directly or indirectly derived from petrochemicals) and transport are a much bigger part of their overall production costs than is the case with products made in Western countries.
"when you're a country of people who eat frogs' legs and snails"
Instead of one where they eat rattlesnakes and alligators.
"many students won't have a reason to do this"
They'll have several excellent reasons from a student viewpoint:
1) To prove that they can do it.
2) Because it'll upset someone.
3) For the hell of it.
"Many of them ran IBM's dos, not Microsoft's. "
IBM's DOS was Microsoft's, i.e. it was MS-DOS with a different name and a few trivial differences such as GW-BASIC (also Microsoft's) being included on the disks with MS-DOS, whereas the same command in PC-DOS launched the ROM-based GW-BASIC that was only present on IBM's machines.
Thanks to you, Microsoft's marketing types have a new slogan to renew interest in Vista, and prove that Gartner are blowing hot air:
Windows Vista from Microsoft. It's not terrible.
"Your application *will* break when a future version of the OS comes out."
An excellent point, which I gladly concede.
NB: The Registry isn't immune to breakage problems of this sort. Microsoft's programming guidelines for example used to tell developers that they should use HKEY_LOCAL_MACHINE as the root for storing application info, and this has resulted in lots of older software breaking for users without write privileges to it.
"Manifests go there because they never change. At least not until the application is patched or upgraded, which requires admin permissions anyway."
Some types of manifests are meant to be modified by users whenever they feel the need to, e.g. Application Configuration Files (which, despite the name, are XML files just like all other manifests).
"You were implying that the recommendation was that *all* application-specific data should go into the registry."
It would be ludicrous for me to imply that MS said this, because applications generate plenty of internal data that only ever exists in memory, while some use RDBMS systems for storing certain types of data, others generate data for processing by completely unrelated pieces of software such as compilers and media playing software, still others process that data, and whole classes of programs exist that don't read or write any persistent information at all.
"I'm trying to figure out why one file would be more or less prone to being corrupted than another file."
That part of my post was a refutation of your insistence that the Registry was superior because XML is kept in files, so I pointed out that the same is true of the Registry, and in fact most things in Windows, so they both share a common set of weaknesses in this regard. It was for this reason that I found your reply puzzling.
"The point is that if you do it with a batch file, you can only make the change at login."
Or you could use the Windows Task Scheduler to do it at login, and then at a user-specified interval. It's a very flexible tool that ships with all versions of XP and Vista, and can be downloaded from MS' web site for earlier variants of Windows.
"Wow, an actual point. Except that it only applies for software run as administrator"
i.e. every Windows XP system that isn't being used on one of the corporate networks that force lower privilege settings on users (which, if the number of them whose entire networks have been brought to their knees by a worm is anything to go by, is a long way from being all corporates).
"Microsoft's customers are corporations."
Please explain the existence of the following products if corporates are their customers:
Windows-95
Windows-98
Windows XP Home
Windows XP Media Center Edition
Windows Vista Home Basic
Windows Vista Home Premium
DirectX
A large selection of PC games that they began producing long before the XBox appeared (Flight Simulator, Age Of Empires, Close Combat, etc).
Lots of other stuff that corporate customers not only have no use for, but probably don't want anywhere near their systems.
"f software makers don't document their registry keys, how is that Microsoft's fault?"
.INI files, in favor of the Registry instead."
This is a blatant straw man, because I didn't say or imply that it was Microsoft's fault.
"f software makers don't document their registry keys, how is that Microsoft's fault?"
I fail to see why you're so obsessed with INI files. I am claiming that application data that isn't meant to be shared doesn't belong in a global repository, but should be stored locally instead. Nothing about this requires the use of the old INI file format.
"Well, first of all, configuration information..."
My last post clarified the fact that I'm not just talking about configuration information, so why are you harping about configuration information again?
"...is meant to be "read or modified" by products from other vendors and end users. The product from other vendors being tools like group policies, and the end users being people who select Tools->Options."
This depends entirely on the market an application is meant for. The vast majority of Windows software isn't aimed at corporate users with Active Directory setups, so why should the people who write it spend time and effort supporting group policies if none of their customers will ever use them?
"In fact, by your definition, the AppData directory is exactly where you should put that data, since it's data the that (by your own definition) isn't meant to be modified by other vendors or end users."
Why not keep things simple and put it in the same directory as the application instead? it's what Microsoft do with their manifest files, so why shouldn't we be allowed to follow their lead?
"First of all, I'm pretty sure Microsoft never required local data to be stored in the registry."
You're wrong. There aren't any web links to Microsoft's own documentation about Windows-95 logo requirements because nobody wants Windows-95 logos anymore, but there's plenty of other stuff on the web from that period, e.g.;
http://www.informit.com/guides/content.aspx?g=windowsserver&seqNum=26
Quote: "So for Windows 95, Microsoft advised its supporting manufacturers that applications that qualify for the Windows 95 logo should disavow any use of
"The registry is, and always has been, for configuration only."
If this is the case, then why does it support volatile keys that are never written to the Registry hive?
"Are you seriously suggesting that IE4 stored (or should have stored) the browser cache in the registry? That's ridiculous."
It is indeed ridiculous, hence the fact that i didn't suggest it.
"If they want to make quality software, they'll spend two days writing the abstraction layer, or just finding one already written. If they don't give a shit about making quality software, then they can do whatever the hell they want. But it won't be quality software."
I'm actually rather taken aback by the fact that anyone would write a piece of utter tripe like this on a forum which is read by many professional programmers.
"The reason not to use XML isn't because "Microsoft doesn't support it." You don't need to convince me that Microsoft has a MSXML library, because, see, I'm not a retard."
I humbly suggest that the piece of tripe you wrote above would seem to contradict your assessment of yourself.
"The point of using the registry is that it's simply better at storing configuration information than XML in several important ways, all of which Raymond Chen outlined in the post that started this stupid conversation."
I would appreciate it if you could include a link to the article where Raymond Chen says the Registry is better than XML, because the one in your original post was about it being better than Windows INI files, which don't use XML.
"The registry has locks and transactions, so if the program is written
"part of the point is that [application private data] is relevant for corporate networks using active directory and group policies."
Hence the fact that so much application-specific data is stored in the Registry as undocumented groups of numbers with meaningful names such as "Hrrlh99_07014". The people who wrote that software were obviously thinking "Hey, this private stuff may well be used to set group policies in a corporate network, so we'll support that by using names and data formats that don't make sense to anyone else for our Registry entries, and give further assistance by working hard to ensure that we don't let customers know anything about what it's used for and how it's laid out".
"You're not talking about local information (like web cache), you're talking about configuration information."
I'm talking about _any_ information applications store during installation, updating, or between sessions that's not meant to be read or modified by either products from other vendors, or end users.
"There already is a place for local information that isn't configuration: [user]/Local Settings/Application Data."
You obviously didn't read the paragraph you're replying to, because that particular structure was not part of Windows/NT 4.X or Windows-95 when MS required local data to be stored in the Registry for Windows logo compliance.
"Most applications used installers, from my experience, before the registry came about."
But using them was far from compulsory because all they did was create some directories and copy files from the distribution media into them, hence the fact that most vendors included extremely simple instructions for doing the same things by hand if the installer failed for some reason.
"Why is this a "political" reason? What does Microsoft get out of this?"
They gain the ability to prevent non-technical people from cloning installed applications by the simple expedient of copying directory structures to media or across a network.
"They couldn't [find out what's installed on a system} before by scanning the filesystem?"
Scanning entire file systems tends to bring computers to their knees for long periods of time, so people tend to get pretty shirty when their work gets interrupted because some process they have no control over starts doing it without asking.
"Assuming you're paranoid enough to think Microsoft actually cares about what apps you're using."
If Microsoft don't care what apps people use, then why do they have schemes like Windows Genuine Advantage and Office Genuine Advantage?
"Ok, here you might have a valid point, if it weren't so mind-numbingly simple to abstract this away."
I doubt that people writing portable software would bother to spend time and money designing, writing, and testing such an abstraction layer just to store local data when they can do the same thing with an existing well-defined multi-language multi-platform standard such as XML's DOM or SAX, both of which are fully supported by Windows itself (Google for "MSXML" or "Microsoft XML Core Services" for more info).
"I don't see how XML could possibly solve the concurrency problem-- XML files are basically just text, and have to be fully loaded and parsed by each program using them, so how do you prevent one instance from stomping over another instance's settings when it writes the XML file back out?"
The Registry doesn't prevent multiple instances of the same application being run by the same user from overwriting each others' settings, so as with XML, any application-specific values in it will be those that the last instance put there. Multiple users can be handled trivially in XML by using a similar strategy to those of the Registry, i.e. having separate sections for each user's settings.
NB: as with just about everything in Windows, the Registry is kept in files called "Registry hives", so there's nothing magical about it that makes it immune to the problems that can affect files in general. Badly
That's nothing: I bricked the Internet by changing a setting in my router, and now none of my machines will connect to it. It doesn't matter what they're running: XP, Ubuntu, OS X -- all of them fail, which obviously wouldn't happen to the Mac if all those claims about "just working" weren't caused by Steve's famous Reality Distortion Field.
""Bricked" is currently in the processing of being remapped to just mean "broken"."
it's actually being remapped to mean "certain functionality has been temporarily lost. Normal service can be restored by end users with IQs that cannot be expressed by a single decimal digit".
Paragraph 1 of your reply shows that it is you who is hopelessly confused, because the bit you quoted from my post made it quite clear that I was claiming _most cultures_ believe sharing is a positive trait and greed is a negative one, not that I believed it (there is nothing anywhere in my post that says what my own position is).
"The Slashdot community is pissed whenever anybody violates the GPL"
You really are confused if you think that Slashdot is a community with a single coherent opinion on any topic.
" IIRC, there was (some) outrage when some small distro tried distributing compiled ISOs and linking to the source code instead of providing it from their server."
There was indeed "Some outrage", just as there's "some outrage" in Slashdot discussions about any topics that _some people_ feel strongly about. And the ones who have the strongest feelings tend to be both the most polarised and prolific posters when topics they care about are being discussed, hence the fact that these topics also attract more trolls and sock-puppets than less controversial ones.
Slashdot has around a million members, yet even the rare topics that get more than a thousand posts have contributors who number in the low hundreds, and the vast bulk of the discussions on them usually come from a couple of dozen people with either opposed but equally strongly held viewpoints, or posters who are playing "devil's advocate", trolling, etc. (I'm not implying that trolling and playing Devil's Advocate are in any way equivalent here).
So the "Slashdot community" that you claim is "pissed whenever anybody violates the GPL" is in fact a few tens or hundreds of people, while 99.9% of Slashdotters either completely ignore the entire topic because it isn't something they're interested in, or are only interested enough to read what others have to say about it.
"I do agree that it's harder than it should be to export registry entries for a specific application"
My point wasn't about how difficult (or otherwise) its is, but the fact that I and many, many other developers don't think that a centralised global repository is an appropriate place for storing persistent information which is only relevant to the application that wrote it, or other applications by the same vendor.
Global repositories should be used for information that's globally relevant, and everything else should be stored in files locally.
"As Raymond Chen's post shows, it wasn't some random malicious implementation designed to make your life worse, it was a solution that was better in almost every way to the existing solution."
As I said in my last post, this is solely due to the fact that Microsoft decided to deprecate using files to store local information. They pretty much forced professional developers to use the Registry for this by making it a requirement for any applications that wanted to use the Windows-95 and / or Windows/NT logos, and their reasons for this were political and commercial rather than technical:
1) The Registry makes people use installers and uninstallers instead of simply moving or deleting directories like they did with Windows 3.X.
2) MS can easily find out precisely what's on customers' machines.
3) It helps lock applications into Windows by adding to the amount of Windows-specific code in them.
If the above isn't true, and Microsoft's reasons really were due to the inherent technical superiority of the Registry, then please explain how Microsoft and others have managed to write APIs for reading and writing XML (a file-based format) that have none of the limitations Chen claims as reasons for the Registry being better.
NB: one of Chen's points about file size limitations with INI files is a bit rich considering the fact that the entire Registry had to fit into 64K on Windows-9X, which caused notable problems when installing Visual Studio 6 due to it's unusually large number of extremely long paths (there was a technical note with a workaround distributed with the product). The fact that this has never been an issue with NT-based systems only serves to highlight the fact that there is no technical reason for the 32K limit on INI file size in any true 32-bit version of Windows.
"I've seen people WILLINGLY buy spyware (e.g. winantivirus), and even pay monthly subscription fees for it (e.g. e-anthology). Having them enter a password won't make any difference."
Especially when a UK survey that was run a couple of years back showed that a significant proportion of people using IT systems at work were happy to part with their user names and passwords in exchange for a bar of chocolate.
"Thieves dont break into unsecure and secure houses with an even statistica spread. They look for the easy target."
Opportunists look for easy targets, while skilled professional thieves hit high value targets that tend to be pretty well protected. A decent domestic security system (good locks, solid doors, alarms) on an ordinary house will deter most opportunistic thieves who are trying to steal TVs, cameras, and other domestic items, but those who live in mansions full of valuable artworks, jewellery, and safes with lots of money in them are likely to attract the attention of people to whom considerably better security systems are a minor inconvenience.
"11 reasons why the registry is better than .ini files:"
Which are actually 11 reasons why Microsoft's INI file APIs suck due to not having been updated since the days of Windows 3.X.
The Registry made sense as it was implemented in Windows 3.X, i.e. as a way of sharing OLE automation data etc. between programs. It does however suck donkey balls as a mechanism for storing persistent information that's only relevant to a single program, which could have been much better handled by an updated set of INI file APIs specifically designed for the job.
"Or you get malware that starts up in your .bash_profile and sits around waiting for you to run sudo."
Wouldn't work very well with OS X, where the vast majority of people never use the CLI for anything, and will therefore never know that SUDO exists.
"Listen to the blues; it's such a regular formula, anyone can play it."
There is a vast range of music that qualifies as blues, ranging from simple 8 and 12 bar 3 chord stuff through New Orleans blues, some of which has an extremely complex harmonic structure, right up to stuff like Gershwin's Rhapsody In Blue, which isn't an easy piece to play by any stretch of the imagination.
We'd have given anything for punched cards. We had to lay out binary code using rocks that we quarried with our bare hands, and carried on our backs up hills, one ton rocks for 0, and two ton rocks for ones. Then they'd be smashed to bits by men with hammers called Digital Rights Managers, and we'd have to go down to the quarry and start again.
" the prevailing attitude on /. seems to be that it doesn't matter because music is just data, and sharing data is easy/cheap, so file sharing should be okay."
/. crowd throws a hissy fit"
The problem for those whose livelihoods or businesses depend on copyright isn't what a few Slashdot geeks say and think, but the fact that most cultures believe sharing what one has with others is a positive trait (generosity), while hoarding stuff that isn't actually scarce by nature so one can charge for it is a negative one (greed). This is why every major survey that's been done indicates that the public sees nothing morally wrong whatsoever in sharing files as long as it isn't being done for profit.
"every time a story breaks about some company violating the GPL, the
The key here is "company", i.e. commercial piracy, which most Slashdotters agree with the vast majority of non-Slashdotters is wrong, irrespective of what's being pirated.
"they did not have copyright or IP in ancient Rome and look what happened to them - where are they now?"
A better question is where will our civilisation and its trappings be 800 years in the future, because theirs lasted over a thousand years, while ours is less than 300 years old, and the cracks are already showing.
"I for one think this is madness. Why? because there's no way to be 100% secure on the internet."
There's no way to be 100% secure anywhere, but people are still expected to take reasonable precautions against predictable mishaps. What the banks are doing here isn't really any different from insurance companies expecting people not to leave their homes unlocked with everything valuable in a sack on the doorstep marked "swag" because the police say no security systems will stop a determined and skilled thief, so they've decided that trying to prevent theft is completely pointless.
People who use online banking will now be told that they're expected to install some basic protection against online nasties, so those didn't know about such things previously will now be better informed. As with physical locks, alarms, etc., they won't stop those with determination and skill, but this doesn't mean that systems with them aren't better protected than those without, especially when they're being used by people who don't know very much about computers.
"armed = citizen
unarmed = subject"
If this is the case, then please explain how Saddam Hussein managed to rule Iraq with a fist of iron when gun ownership was not only allowed during his hegemony, but so common that volleys of AK-47 shots were (and still are) a common sight at weddings and other celebrations.
Clue stick: Saddam's boys fielded tanks, artillery, attack helicopters, poison gas, and all sorts of other things that even crappy armies tend to have, let alone really amazing ones like that of the US. So unless your right to bear arms includes RPGs, RADAR-guided AAA, and other sorts of devices that can be used against heavy armour and attacks from the air, any potential dictator and his forces will roll over a group that's wielding hand weapons in a few seconds without taking any casualties at all.
Christopher Lee, another old timer, also has an amazingly resonant and distinctive voice, although it's debatable whether he's not really part of Hollywood.
"Also non-USA citizens are subject to this crazy law, when they post material on a US based server. "
I fail to see how anyone could reasonably expect any country's laws not to apply to content that's in that country by virtue of being on servers that are physically located there.
"Or not even necessarily that it seems, do legal reverse-engineering or encryption related work in your own country, visit the USA, get arrested, it's possible, no?"
It only happens if you reverse engineer stuff that would be covered by the DMCA, which means it has to be from a company which has rights to the item in question within the US who have complained about your actions, and managed to get an arrest warrant issued. They have no more jurisdiction over things that aren't legally distributed there (beyond banning them, of course) than the European Commission does over things that aren't distributed within the EC, unless of course they're acting on behalf of a country that they have treaty obligations to. This will however only happen if said country has made a formal request to the relevant US authorities.
"How about a facebook.de, or a youtube.nl, fully hosted in that country, and incorporated there as well."
How would they finance themselves? Advertisers on the US versions have a potential audience of hundreds of millions, the vast majority of whom can read or write English, so AT&T for example will pay a lot more for a spot on a popular US site than a Polish phone company would to a Dutch or German one. You only have to look at how much UK ISPs are squealing about the extra bandwidth costs that the BBCs media players are lumping them with to see how difficult things could be for a European YouTube, especially when one considers the fact that the UK is one of largest EU countries in terms of population, and that the BBC don't let people from outside access its content.
"Yet all these video-sharing and other creative enterprises on the Internet seem to sprout and flourish mostly in the USA."
The size and nature of the US market has resulted in all sorts of companies and services that are rare elsewhere, but the Internet is the only place that it becomes obvious to those who haven't spent a fair amount of time there.
"Those people in a different country chose a communist government that shot their economy to hell, not to mention killing millions of their best citizens in progress. Why should I prop their economy at the cost of my salary and job security when they still didn't admit any mistakes?"
Because the government _you chose_ to run your country (which also refuses to admit it's made any mistakes) has said that you're going to, and there's nothing you can do about it because you have a two party system, and both of them are paid by big business to do what's best for big business, i.e. increase profits by paying cheap foreign labour to do the same jobs that they used to give to expensive American labour.
"We are creating a country of ownership of ideas and not of production. That in of itself is a loss of power if we ever have a military action against those countries of of an ally of them."
There's also a fundamental economic problem with basing everything on IP: it assumes that the countries who are being outsourced to will continue to be IP consumers rather than IP producers. We had the same ideas about Japan in the 1950s and 1960s, when we were telling ourselves that they could only make cheap rip-offs of Western products because they weren't capable of inventing things for themselves, and we all know how accurate that prediction-born-of-arrogance ended up being.
"Unless we rebuild our nation, starting with our currency, then to manufacturing, and on, I can see us economically dying to countries like China and India that have almost 2 billion between them."
By 2007 estimates, they have considerably more than 2 billion people between them (around 1.3 billion each), which means that either of them has about the same population as the US, Canada, Australia, New Zealand, Japan, and Europe put together.
"I wonder how high the Chinese could push oil? 200$ a barrel? 300$ a barrel? Or even our worst nightmare of switching OPEC to the Euro?"
China isn't pushing oil prices up except indirectly by competing for supplies. Oil producers and petrochemical commodities traders dictate the price it sells at, and oil producers will be also the ones who decide what currency they want in exchange for it. China is as much a victim here as we are, possibly more so, because their low labour costs mean that raw materials (many of which are directly or indirectly derived from petrochemicals) and transport are a much bigger part of their overall production costs than is the case with products made in Western countries.