I love that site. If you didn't read this when it was linked from the OMGWTF contest winner announcement (Raymond Chen was one of the judges), you might be interested. It's a bonus chapter from Chen's book The Old New Thing (collected from his blog and expanded) called Tales Of Application Compatibility. Some of the stories are pretty hilarious. I got a lot of new appreciation for the extent to which MS tries to maintain compatibility too... I had no idea they would go to the extents that they do for some of the things there.
One of my friends was telling me that there is an enormous colo located in central NYC. This struck me as being pretty strange... after all, NYC real estate is through the roof, it's in the middle of the city, yadda yadda yadda. But turns out that it's at the end of (one of?) the transatlantic fibre cables, and is sitting plop on top of massively huge telecom switching stations that one article said half of US internet traffic flows through. So there are benefits for being in one central place. I don't know what San Francisco has to offer, but there could conceivably be something similar.
Imagine Windows Vista running Windows Classic XP, Windows Classic 2000, Windows Classic 98 and Windows Classic 95 all at once, all the time, without the option of turning them all off, and that's kind of the situation now.
Except that MS doesn't use anywhere near the same technique as Apple to maintain this compatibility, and it doesn't impose the same overhead. Almost to a T, the APIs haven't changed since they were introduced, so there doesn't *need* to be any translation or anything like that in general. So it's not sitting there bogging down the running of your system in the general case.
For some specific examples, this isn't true. MS has introduced "compatibility shims" to work around cases where they have made changes (usually either bug fixes that nevertheless broke programs relying on the buggy behavior, or to compensate for programs using undocumented interfaces that changed), but like Apple's VM, these only come into play for the programs they affect.
The problem isn't really one of efficiency; it's a matter of it affecting the architecture of Windows, because MS is tied to what they have. This is their main security problem regarding running as admin. Had they made users non-admin by default, either it would have broken way too many programs for it to be acceptable or they would have had to go with a VMish approach to work around them. They chose to make admin default. With Vista, they have started to swing the other way, but from what I understand there is still some way to go.
My Intel mac can't run any Classic apps, but those are all ten years old; why would I need any of them?
You might, but look around at how many businesses are running DOS programs. MS *can't* break compatibility for them, or they would lose a TON of customers they would get without it.
I think it's interesting that the backwards compatibility fetish is so extreme with MS. I don't think it's too unreasonable to ask software makers to keep their stuff up to date or face obsolescence when the OS gets upgraded a few versions later.
Again, it's companies that have mission-critical software that was written in 1985 that's the biggest drive. Most of them probably don't have the source code and can't update it, and if they do, it's probably more of an undertaking than most companies would commit to. If MS stopped support, they would stop upgrading.
(You might argue that they shouldn't be bothered upgrading anyway, but that's another matter.)
MS has such a compatibility fetish because that's Windows's biggest draw.
..create MORE 'Windows Legacy?' This is one of the major, abyssmal design choices in current Windows versions responsible for truck loads of the issues every Windows user and their grandma have come to hate said OS
This is at least somewhat correct. Legacy support is responsible for a lot of Windows's problems.
However, it's also perhaps the biggest single reason for its success.
Okay, so where's the Wikipedia article listing all the times that someone found something wrong with Wikipedia, and corrected it with information from E.B.? I'm sure that's not an uncommon occurrence either.
Both Wikipedia and EB have their place. Wikipedia is great for getting a quick overview of something while you're sitting at your desk, or looking up random information like the plot of an individual TV episode. EB is better at having a bit more academic cred (at the very least, EB's mistakes are actual mistakes and not outright vandalism, which may or may not be true for Wikipedia). If I were to give up one, I'd keep WP in an instant.
But neither should be considered the definitive source for anything.
I don't think so. It's not theft of services... the only thing along that line would be failure to provide the service for which they are contracted, namely internet access.
Heck, if this is theft of services, my ISP should be indicted for grand larceny. (If you're ever in Ithaca, NY and have a chance to subscribe to Clarity Connect, run away as fast as you can. Their service sucks donkey balls.)
As a side note, I love how the only copy of the PA Crimes code online is on some personal page at AOL.com.
In this case the server has already been compromised to some degree... and the only password in jeopardy is one to the very server you are connected to....
Um, or the site doesn't do proper sandboxing of user input.
For instance, if you get a LiveJournal paid account, you can create your own page templates. Does it let you include javascript? I don't know. It's at least not unreasonable that they would, and I bet some people would expect it. But now they have opened their users to this vulnerability, despite the LJ server not being compromised.
And even if we want the exact same music for the exact same instruments, there is STILL a TON of latitude about how you present it. How do you space the notes? If you make them a little further apart, it might make it easier to read but might force a page turn at the exact wrong moment. If there's a brief high section, do you change clefs, or will that do more harm than good? If the original has a note that seems out of place (if it doesn't match with the harmony everyone else is playing for instance), was it intended or was it an error in the original, and should you "correct" it to what you think it should be, or reproduce the error? Merely laying out the piece on the page is enough of a creative endeavor that it is (rightly) easily copyrightable.
("waaah, it's not the same menu, I have to use the second button of the mouse, the horror")...
My main complaint about the Gimp UI is the multiple windows. It's cliche, but it's still true.
2.0 helped a great deal because they group things together so there are less, but it's still a pain. Now instead of raising just one window (Photoshop) I have to raise three (the photo, the toolkit, and the navigator/layers/other stuff panel). On Linux this isn't horrible because I can dedicate a virtual desktop to it, but (1) on Windows it's a downright pain in the ass and (2) I shouldn't have to dedicate a virtual desktop to a program to make it usable!
Why can't I link or embed graphics, or charts, or whole TeX documents?
This is a feature wish of mine too. There's a poster above you who said something along these lines. I think it would be very useful to have a mini-HTML interpreter in the editor. You could include graphics (even better if you can include the description inline, as dot code or something), hyperlink to other places in the source, etc. And it's easily stored in textual format, so it plays nicely with legacy tools.
Why can't I hide comments once I've read them, so I can see the code more easily?
Some editors will let you do this.
And why do I still have to manually encode the whitespace between tokens? As coders, I think that we obsess about code layout so much because we always have to do it manually. Editors could be (and have been) created which flow code automatically--much the same way browsers flow text.
And... I think it sucks. There's a lot that can be encoded in just the layout. If I have two related calls to the same function (or similar functions), I like to line up the arguments, especially if most of them are the same. It brings out the differences between the calls very easily, and at the same time conveys that there is something related between them. Or in code that's outputting text, it's nice to break the list of things being output at the same places line breaks will occur in the actual output.
These are things that the autoformatters don't do. I know you argue later that it doesn't actually help, but I disagree. Formatters can do an okay job, or even a pretty good one; but they can't (IMO) make it as clear as a human coder will (or at least can).
Those who throw grammar stones might want to check that they are not standing in a glass house.
Arguably, either:
I followed the same philosophy as many coding conventions that say that consistency is the prime directive
or
I followed the same philosophy as many coding conventions, which say that consistency is the prime directive
is correct. However, your suggestion is just flat out wrong. When using word "which" in that sense, it should (almost?) always be preceeded by a comma (and "that" should never be proceeded by a comma).
What happens if you are doing an ASCII-art diagram that goes beyond 80 characters, and your editor decides to wrap it? Now it doesn't make sense.
If you have a line of code as such:
int foo;// this variable does such and such
and the comment goes beyond the wrapping, what should it do? Should it reformat it as
int foo;// this variable does // such and such
or
// this variable does int foo;// such and such
or
// this variable does such and such int foo;
?
Sure, you could have a preference for these sort of things, but now if the editor does this, how should it save it? Should it put it back to the way it was before? But what if the programmer went to some effort to line things up for easier reading? Should it leave it with the line break in the new place? Now you've broken source control diff, even if you ignore white space.
You might be able to get an editor to do an okay job at this, but I don't think it's possible to make one that does a good job.
There are a couple others, like ext2cow and versionfs (I think that's the one), and elephant for BSD, but I don't think any of them have gone through the testing that would let them be used in many production environments.
2) File versioning - you could "bring back" previous copies of any file in the system simply by specifying its revision NN times back. EG: "edit myfile.txt" could be replaced with "edit myfile.txt:1" to see the previous edition. This was simply awesome and I've not seen this elsewhere.
This, as another poster said, is starting to make a comeback again, though mostly in the form of file system snapshots instead of explicit file versioning. They tend to be coarse-grained though timewise instead of triggered by saves, which is unfortunate. An exception to this (I think) is WAFL, which IIRC takes snapshots every second or so. (I could be wrong there, I've never used it.)
I too would really like to see this feature done right.
I love that site. If you didn't read this when it was linked from the OMGWTF contest winner announcement (Raymond Chen was one of the judges), you might be interested. It's a bonus chapter from Chen's book The Old New Thing (collected from his blog and expanded) called Tales Of Application Compatibility. Some of the stories are pretty hilarious. I got a lot of new appreciation for the extent to which MS tries to maintain compatibility too... I had no idea they would go to the extents that they do for some of the things there.
Oh look, it's now delivering a 404. What a surprise.
We were always at war with Eastasia.
One of my friends was telling me that there is an enormous colo located in central NYC. This struck me as being pretty strange... after all, NYC real estate is through the roof, it's in the middle of the city, yadda yadda yadda. But turns out that it's at the end of (one of?) the transatlantic fibre cables, and is sitting plop on top of massively huge telecom switching stations that one article said half of US internet traffic flows through. So there are benefits for being in one central place. I don't know what San Francisco has to offer, but there could conceivably be something similar.
Imagine Windows Vista running Windows Classic XP, Windows Classic 2000, Windows Classic 98 and Windows Classic 95 all at once, all the time, without the option of turning them all off, and that's kind of the situation now.
Except that MS doesn't use anywhere near the same technique as Apple to maintain this compatibility, and it doesn't impose the same overhead. Almost to a T, the APIs haven't changed since they were introduced, so there doesn't *need* to be any translation or anything like that in general. So it's not sitting there bogging down the running of your system in the general case.
For some specific examples, this isn't true. MS has introduced "compatibility shims" to work around cases where they have made changes (usually either bug fixes that nevertheless broke programs relying on the buggy behavior, or to compensate for programs using undocumented interfaces that changed), but like Apple's VM, these only come into play for the programs they affect.
The problem isn't really one of efficiency; it's a matter of it affecting the architecture of Windows, because MS is tied to what they have. This is their main security problem regarding running as admin. Had they made users non-admin by default, either it would have broken way too many programs for it to be acceptable or they would have had to go with a VMish approach to work around them. They chose to make admin default. With Vista, they have started to swing the other way, but from what I understand there is still some way to go.
My Intel mac can't run any Classic apps, but those are all ten years old; why would I need any of them?
You might, but look around at how many businesses are running DOS programs. MS *can't* break compatibility for them, or they would lose a TON of customers they would get without it.
I think it's interesting that the backwards compatibility fetish is so extreme with MS. I don't think it's too unreasonable to ask software makers to keep their stuff up to date or face obsolescence when the OS gets upgraded a few versions later.
Again, it's companies that have mission-critical software that was written in 1985 that's the biggest drive. Most of them probably don't have the source code and can't update it, and if they do, it's probably more of an undertaking than most companies would commit to. If MS stopped support, they would stop upgrading.
(You might argue that they shouldn't be bothered upgrading anyway, but that's another matter.)
MS has such a compatibility fetish because that's Windows's biggest draw.
..create MORE 'Windows Legacy?' This is one of the major, abyssmal design choices in current Windows versions responsible for truck loads of the issues every Windows user and their grandma have come to hate said OS
This is at least somewhat correct. Legacy support is responsible for a lot of Windows's problems.
However, it's also perhaps the biggest single reason for its success.
Really? "Any" errors? (Or do you define 4 months as "quickly"?) How many other errors lurk on rarely-read pages?
Okay, so where's the Wikipedia article listing all the times that someone found something wrong with Wikipedia, and corrected it with information from E.B.? I'm sure that's not an uncommon occurrence either.
Both Wikipedia and EB have their place. Wikipedia is great for getting a quick overview of something while you're sitting at your desk, or looking up random information like the plot of an individual TV episode. EB is better at having a bit more academic cred (at the very least, EB's mistakes are actual mistakes and not outright vandalism, which may or may not be true for Wikipedia). If I were to give up one, I'd keep WP in an instant.
But neither should be considered the definitive source for anything.
Ha, didn't know that. Thanks for the link. I've been out of PA for about a year now, so I missed that news.
I don't think so. It's not theft of services... the only thing along that line would be failure to provide the service for which they are contracted, namely internet access.
Heck, if this is theft of services, my ISP should be indicted for grand larceny. (If you're ever in Ithaca, NY and have a chance to subscribe to Clarity Connect, run away as fast as you can. Their service sucks donkey balls.)
As a side note, I love how the only copy of the PA Crimes code online is on some personal page at AOL.com.
In this case the server has already been compromised to some degree... and the only password in jeopardy is one to the very server you are connected to....
Um, or the site doesn't do proper sandboxing of user input.
For instance, if you get a LiveJournal paid account, you can create your own page templates. Does it let you include javascript? I don't know. It's at least not unreasonable that they would, and I bet some people would expect it. But now they have opened their users to this vulnerability, despite the LJ server not being compromised.
No, a password manager doesn't make passwords behave like client sertificates. It makes passwords available to javascript.
Is this an innate feature of password memories? I don't think so. It's just a buggy implementation.
I bet you could do it right, or at least right enough to protect against most attacks.
Or simply don't use such websites, as they clearly don't think much about user's security.
Because it's always clear what sites these are?
As a recent Duke graduate, I've been in a number of classes where tests are administered over the WLAN using Blackboard (burn BB to hell!).
Just out of curiosity, but what were the logistics of this? Is everyone required to have a laptop?
And even if we want the exact same music for the exact same instruments, there is STILL a TON of latitude about how you present it. How do you space the notes? If you make them a little further apart, it might make it easier to read but might force a page turn at the exact wrong moment. If there's a brief high section, do you change clefs, or will that do more harm than good? If the original has a note that seems out of place (if it doesn't match with the harmony everyone else is playing for instance), was it intended or was it an error in the original, and should you "correct" it to what you think it should be, or reproduce the error? Merely laying out the piece on the page is enough of a creative endeavor that it is (rightly) easily copyrightable.
As a Windows user, if the "fix" is to decrease the priority boost of interactive applications... I don't want it fixed.
Bravo, sir
("waaah, it's not the same menu, I have to use the second button of the mouse, the horror")...
My main complaint about the Gimp UI is the multiple windows. It's cliche, but it's still true.
2.0 helped a great deal because they group things together so there are less, but it's still a pain. Now instead of raising just one window (Photoshop) I have to raise three (the photo, the toolkit, and the navigator/layers/other stuff panel). On Linux this isn't horrible because I can dedicate a virtual desktop to it, but (1) on Windows it's a downright pain in the ass and (2) I shouldn't have to dedicate a virtual desktop to a program to make it usable!
Why can't I link or embed graphics, or charts, or whole TeX documents?
This is a feature wish of mine too. There's a poster above you who said something along these lines. I think it would be very useful to have a mini-HTML interpreter in the editor. You could include graphics (even better if you can include the description inline, as dot code or something), hyperlink to other places in the source, etc. And it's easily stored in textual format, so it plays nicely with legacy tools.
Why can't I hide comments once I've read them, so I can see the code more easily?
Some editors will let you do this.
And why do I still have to manually encode the whitespace between tokens? As coders, I think that we obsess about code layout so much because we always have to do it manually. Editors could be (and have been) created which flow code automatically--much the same way browsers flow text.
And... I think it sucks. There's a lot that can be encoded in just the layout. If I have two related calls to the same function (or similar functions), I like to line up the arguments, especially if most of them are the same. It brings out the differences between the calls very easily, and at the same time conveys that there is something related between them. Or in code that's outputting text, it's nice to break the list of things being output at the same places line breaks will occur in the actual output.
These are things that the autoformatters don't do. I know you argue later that it doesn't actually help, but I disagree. Formatters can do an okay job, or even a pretty good one; but they can't (IMO) make it as clear as a human coder will (or at least can).
Arguably, either:
or
is correct. However, your suggestion is just flat out wrong. When using word "which" in that sense, it should (almost?) always be preceeded by a comma (and "that" should never be proceeded by a comma).
As another AC said, "code is not prose".
Bah, my second and third examples should have the '//' glyphs lined up. I previewed, but only glanced at the result and didn't notice.
What happens if you are doing an ASCII-art diagram that goes beyond 80 characters, and your editor decides to wrap it? Now it doesn't make sense.
If you have a line of code as such: and the comment goes beyond the wrapping, what should it do? Should it reformat it as or or ?
Sure, you could have a preference for these sort of things, but now if the editor does this, how should it save it? Should it put it back to the way it was before? But what if the programmer went to some effort to line things up for easier reading? Should it leave it with the line break in the new place? Now you've broken source control diff, even if you ignore white space.
You might be able to get an editor to do an okay job at this, but I don't think it's possible to make one that does a good job.
There are a couple others, like ext2cow and versionfs (I think that's the one), and elephant for BSD, but I don't think any of them have gone through the testing that would let them be used in many production environments.
2) File versioning - you could "bring back" previous copies of any file in the system simply by specifying its revision NN times back. EG: "edit myfile.txt" could be replaced with "edit myfile.txt:1" to see the previous edition. This was simply awesome and I've not seen this elsewhere.
This, as another poster said, is starting to make a comeback again, though mostly in the form of file system snapshots instead of explicit file versioning. They tend to be coarse-grained though timewise instead of triggered by saves, which is unfortunate. An exception to this (I think) is WAFL, which IIRC takes snapshots every second or so. (I could be wrong there, I've never used it.)
I too would really like to see this feature done right.