Install under any other name…
-
As a user I am annoyed with this type of stupidity MS does with Windows.
Why? What cost does it have for the average user?
-
Several times I saw that "This program might not have installed correctly" when the installation was perfectly fine, then I get worried something may have gone wrong.
And in the same category I can remember:
- the command prompt thing I mentioned in my last reply
- tons of deprecated and some confusing APIs
- that workaround we had for long names in FAT filesystems some versions ago
- skipped windows 9 because "if version.startswith("Windows 9")" tests
- programs not running on winebecause they depend on lots of undocumented behavior (they probably see it as a positive thing)
All in the name of compatibility
-
You didn't answer the question...
What cost does any of this have to the average user who isn't messing with APIs or running things in Wine or caring whether Windows 9 existed or not?
Backwards compatibility benefits the average user.
-
Given that elevation will cause an application to restart as a different user, all the obvious things come into play, like "mapped drives won't exist" and "security will probably be different" including things like "what hive HKCU is changed, so any per-user registry settings will be 'lost'".
I always wondered why every OS ever conflates priviledge elevation with impersonating different user. The only reason I can imagine is that it's easier to implement, which is a valid approach for several reasons, but all of them being non-technical.A good shim should, at the very least, be able to apply itself only to applications that are actually old—either by detecting that it was built with old tools or by making the new tools mark the application as not needing the shim by default
But that's exactly what they're doing - all the old binaries lack manifests, all the new binaries have manifest, and if you have a new binary that doesn't have a manifest, you're anyway.the py2exe loading code is build with VS2010
Are you blaming MSVC toolchain for py2exe misusing it?There is a bit of problem with manifests. They should be promoted, but they are almost secret.
They're no more secret than precompiled headers.I never came across anything saying that I should have it and what it is good for.
Because they're rarely ever needed.The project templates generated by Visual Studio never seemed to have one.
They're auto-generated somewhere around link-time.Colleagues with more experience didn't seem to know much about them either.
And my colleagues with more experience don't know about that tool in Windows 7 (and maybe Vista?) that will suddenly make the segfaults in the application you're trying to debug suddenly go away. It's simply one of those things that you will never learn and never need to learn about unless it punches you in the face.And that ridiculous command prompt. Just make powershell the default, with a decent behavior when I resize the window. But no, they gotta keep it compatible with MS-DOS. Fuck that.
They made the console window part of their API. There's no way in the world they can ever change anything now. Just like Linux folks can't fix git command line arguments.
-
You didn't answer the question...
What cost does any of this have to the average user who isn't messing with APIs or running things in Wine or caring whether Windows 9 existed or not?
I am a end user. Applying your requested filters:
- the command prompt thing I mentioned in my last reply
- that workaround we had for long names in FAT filesystems some versions ago
- Several times I saw that "This program might not have installed correctly" when the installation was perfectly fine
Backwards compatibility benefits the average user.
And I repeat myself here:
It's not better for users, they do it just to get people to update faster. Any decent software would be fixed in the next version, and developers would start to be more careful before doing undocumented dumb hacks.
-
-
I am a end user.
But are you an average user?
People who work in an IT-related job aren't typically average users.the command prompt thing I mentioned in my last reply
The average user doesn't give a shit about Powershell or what it can do, I'd be surprised if they're even using the Command Prompt.
Besides - it's like 2 extra letters to run Powershell from the Start Menu vs Command Prompt.that workaround we had for long names in FAT filesystems some versions ago
The whole
Progra~1
thing? Has that ever caused an issue?Several times I saw that "This program might not have installed correctly" when the installation was perfectly fine
Is it the OSs fault if an installer doesn't make it clear whether it's ended cleanly or not?
Any decent software would be fixed in the next version
Because every one runs decent software?and developers would start to be more careful before doing undocumented dumb hacks.
As Yami said:[Citation needed]
-
Python 3 broke compatibility with Python 2. The result is that after seven years, even though it's much better language, about 68% of people still use Python 2. And because Open Sores, people rarely bother with maintaining compatibility with both Pythons at once.
-
Python 3 broke compatibility with Python 2. The result is, even though it's much better language, about 68% of people still use Python 2. And because Open Sores, people rarely bother with maintaining compatibility with both Pythons at once.
Python migration is going slow as expected by their developers (long read).
I could drool about both C and C++ doing something like this. It could get so more sane.
-
-
Python migration is going slow as expected by their developers (long read).
Published: 29th June, 2012
Last Updated: 21st August, 2015
I could drool about both C and C++ doing something like this. It could get so more sane.
The problem with C++ is that it's too compatible - it should've been as compatible as needed to use old libraries, but not more, since it only crippled the language. The problem with Python 3 is that it's so uncompatible you cannot reuse old libraries at all.
-
with a decent behavior when I resize the [command prompt] window
I heard they fixed the command prompt in Windows 10.
-
The problem with C++ is that it's too compatible - it should've been as compatible as needed to use old libraries, but not more, since it only crippled the language.
The issue is that C++ implements things as a mixture of compile-time and run-time code. By the time you support that sort of thing enough to get the libraries working, you're pretty much stuck with what you currently have. Having one of the “great break with the past” moments just leaves you adrift without libraries and (most likely) without users; might as well not use the language name either at that point.
Backward Compatibility: being stuck with the mistakes of the past because fixing them is the kiss of death.
-
How are you even supposed to compare that to a known value?
-
There is difference between being able to use libraries and being able to compile them with this new compiler even though they were written in different language.
-
I would choose option 3 : Contact Shitty application v1.4 beta 5 programmer and ask him to fix that shit.
-
There is difference between being able to use libraries and being able to compile them with this new compiler even though they were written in different language.
Yes: when you use a library, you're really just using the runtime portion of the library. Most languages make that be enough, most of the time, but C++ has a history of coupling the compile-time part of the library much more closely in “for performance!” and that makes everything much more complicated. By comparison, C# and Java both aim at making the compatibility between versions much easier to manage. It costs some performance, but makes versioning (both of the language and of libraries) less of a headache and that's an excellent trade-off in many applications.
-
@Steve_The_Cynic said:
French
what the "Program Files" directory is called,
What is the Académie française's current take on what it should be called? And what about the actual Windows directory?
"Program Files" is aliased to "Programmes", I think (confirmation needed), and "Program Files (x86)" is aliased, weirdly, to "Program Files (x86)".The Windows directory is aliased to "Windows" because, well, that's the name of the OS, even in French.
-
"Program Files" is aliased to "Programmes",
No - that's can't be right - it looks too much like the English, which is typically an anathema to the A.F. I'd expect the more French "Dossier pour les fichiers exécutables" or some such.
-
Most languages make that be enough, most of the time, but C++ has a history of coupling the compile-time part of the library much more closely in “for performance!” and that makes everything much more complicated.
C++ being able to compile C has nothing to do with performance at all. Quite the opposite in some cases.
-
One thing I've never got with Program Files is that in Polish version of Windows, "Program Files (x86)" is named "Pliki programów (x86)", but regular "Program Files" is named "Program Files".
-
-
I guess that means Microsoft cares about as much for Poland as I do.
But no problem, you can just use all of those high-quality native Polish OSes--
-
But that's exactly what they're doing - all the old binaries lack manifests, all the new binaries have manifest, and if you have a new binary that doesn't have a manifest, you're anyway.
@Gaska said:Because they're rarely ever needed.
If it is rarely needed, then not having it is not wrong. You are contradicting yourself here.
Besides, it was already quoted several times that just having a manifest is not enough. You have to put some specific keys in it and judging from the linked article which entries are needed is not exactly well thought out.
It's simply one of those things that you will never learn and never need to learn about unless it punches you in the face.
Again. If it is one of those things that you will never learn about unless it punches you in the face, it is not very obvious (precompiled headers are pretty obvious; they are enabled by default in project templates).
-
And because Open Sores, people rarely bother with maintaining compatibility with both Pythons at once.
Actually, because open source, maintaining compatiblity with both Pythons at once is exactly how most package maintainers handle the porting.
-
high-quality native Polish OSes
If Poles did make an OS, it would probably do one or two things better than the rest, quite a few worse, and pretty much all of them in a way that's fundamentally different than and incompatible with any OS in the market. It would also go completely unnoticed by the world, except for Poland, where it would be hailed as a revolutionary innovation that's going to change the world and drive the US out of business any minute now.
So, basically, PolishOS is Linux.
-
If it is rarely needed, then not having it is not wrong.
As a Polish high schooler would put it, you're making a whore out of logic. Being needed or not has nothing to do with correctness. Program exit code is rarely needed, but not makingmain()
return something, or returning 0 on failure, is . Same with having manifest in your binary - it's mostly useless, but you should have it. Visual Studio puts a default manifest by default so you don't have to bother yourself with it - and the fact that this default is OK for 99% of users says something.Besides, it was already quoted several times that just having a manifest is not enough. You have to put some specific keys in it
Just like turning in your homework isn't enough to get a positive grade - you must also write something in it.judging from the linked article which entries are needed is not exactly well thought out
It's XML. It's not well thought out by definition.Again. If it is one of those things that you will never learn about unless it punches you in the face, it is not very obvious
Have I ever claimed it's obvious? And how does it matter whether it's obvious or not?precompiled headers are pretty obvious; they are enabled by default in project templates
They didn't use to.Actually, because open source, maintaining compatiblity with both Pythons at once is exactly how most package maintainers handle the porting.
If they handle at all. IME, most often it's "we'll stick to 2.7 and fuck you 3-ers!" or "we'll stick to 3.4 and fuck you 2-ers!".
-
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
This gif is so out of place it hurts.
-
This gif is so out of place it hurts.
EDIT: here's 27 of them:
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif
-
I wonder if you can still do this:
-
<img src="http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif" class="emoji" title=">
<img src="http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif" class="emoji" title=">
<img src="http://www.reactiongifs.us/wp-content/uploads/2013/11/youre_serious_futurama.gif" class="emoji" title=">
-
@Steve_The_Cynic said:
GetVersion returns (minorVersion << 8)|majorVersion
I doubt that this is the actual implementation. My guess is that in very early versions of Windows, the version was a struct of two bytes: major version and minor version. When this is returned as a WORD the values get reversed because of Intel little-endianess. I can't find any documentation to verify this, however.
I doubt it's implemented as anything other than returning a constant. But the value of that constant is exactly what I said. (And all the versions of Windows where this bug originated are over twenty years old. Heck, even Win95 is over twenty years old.)
-
Something like 60% of users do not know what right-click does, and some people aren't even aware such a thing exists.
You are pulling those stats from your ass ?
It's true in my house, but there are three children under 6 included in the sample.
(I'm on mobile and Discourse can't easily quote in a quote and I couldn't be bothered fixing)
-
E_MEME_INVALID
E_COPY_CAT_ATE_THE_RATI am fucking descriptive, Discourse. But yeah, maybe not discriptive
-
I always thought that was because you ran as a different user, but perhaps there's another explanation.
It's fairly more complex than that, but yeah that's the end result. If you've got user-specific drive mappings they won't appear for elevated processes (which is fun when you run a setup executable from the
U:\
drive...)I think you may be conflating elevated apps with apps literally being run as "administrator".
II just elevated Notepad and it still has access to my drive mappings.
Nope - it's UAC, sessions, and basically quirks of how the whole process works.
Basically, the elevated user is the same user, but sometimes acts like a different user, so it doesn't see your drive maps.
-
@Weng said:
II just elevated Notepad and it still has access to my drive mappings.
I just tried elevating both Notepad and Command Prompt on Windows 10 and lost access to mapped drives within them
Doesn't do it under Windows 7, and IIRC didn't under Windows 8 either.Yes it does
-
Yes it does
And for even more fun, Elevate a program that normally accepts droppable items (like files or whatever), and try to drop something onto it!
Filed under: Hint: It's like the app isn't even there...
-
@sloosecannon said:
Yes it does
And for even more fun, Elevate a program that normally accepts droppable items (like files or whatever), and try to drop something onto it!
Filed under: Hint: It's like the app isn't even there...
Heh, that sounds like it would confuse the shit out of me if I didn't know what was going on...
FWIW that's one of the few annoyances about UAC I've experienced. I wish there was a way for it to work but I understand the issue from a technical level and... well... there isn't :P
-
there was a way for it to work
The solution would be to in-line elevate the source program for the duration of the drag operation, but only if you tried dragging onto an elevated program (and de-elevate if the cursor exits that area).
Of course, how annoyed would you be if you had to type your password (or at least hit "left, enter") while still dragging the mouse?
-
@sloosecannon said:
there was a way for it to work
The solution would be to in-line elevate the source program for the duration of the drag operation, but only if you tried dragging onto an elevated program (and de-elevate if the cursor exits that area).
Of course, how annoyed would you be if you had to type your password (or at least hit "left, enter") while still dragging the mouse?
Eh, can't inline elevate though. Which brings me to the second annoyance with UAC - I can't elevate processes after they've been launched. You'd need to elevate a helper executable. And by that point you've hit the event horizon...
And yeah, having a bu-dink prompt while dragging would be highly irksome...
500 Internal Server Error
-
while dragging would be highly irksome
Would be? Have you never experienced this? I remember having an app that steals focus just so it can make sure you see the UAC prompt... I think it was one with an autoupdater.
-
Would be? Have you never experienced this? I remember having an app that steals focus just so it can make sure you see the UAC prompt... I think it was one with an autoupdater.
No, suprisingly. Sounds like precisely the kind of shit developers would pull, but I've been lucky enough not to have that happen.
I have had a UAC prompt suprise me right before I hit Enter... Whatever app that was didn't get the privileges it was looking for...
-
Norepro. Win7.
-
Yeah, I couldn't repro on Win 7 either but did on Win 10.
-
Is it a user or system-wide drive map? I've had this issue from 7-10...
-
It's XML. It's not well thought out by definition.
From a historic perspective, the original concept of XML was pretty well thought out.
But it's like the guy who invented the screwdriver--and then people decided to use it to pry , hammer , jimmy , dig post holes , prop things up , bridge buss-bars , bend wire , poke holes and etc. ad nauseam.
XML was well-designed to do what it was supposed to do. Then a bunch of people decided it was the tool to rule them all and as a result it is now completely terrible, with every wrong-thinking adaptation in existence. Starting with the idea of using XML to describe XML.
The worst part is that all the dolts that "improved" it think it's wonderful.
Kind of like SQL, in a sense.
-
Fortunately, using
XMLa screwdriver to clean my teeth is not on that list!
-
Then a bunch of people decided it was the tool to rule them all
When your only tool is a hammer...
-
From a historic perspective, the original concept of XML was pretty well thought out.
It wasn't. Paired tags for anything else than text formatting is stupid. And XML was meant for everything but text formatting.But it's like the guy who invented the screwdriver--and then people decided to use it to pry , hammer , jimmy , dig post holes , prop things up , bridge buss-bars , bend wire , poke holes and etc. ad nauseam.
I'd say it's more like a screwdriver that has a head in the shape of asymmetric 15-arm star, which is so pretty that all the construction managers decided to switch to them, nevermind it means reforging the heads of all the billions of screws they already have in stock. Also, the handle of the screwdriver is so insanely shaped that it's very slow process to screw in anything, and it will invariably cause your hand to hurt every three or four screws.XML was well-designed to do what it was supposed to do.
Storage format? Not good. Data exchange format? Not good. Serialization format? Not good. Database format? Not good. Configuration files? Not good. Text formatting? Works well, but wasn't designed for it.
-
Storage format? Not good. Data exchange format? Not good. Serialization format? Not good. Database format? Not good. Configuration files? Not good. Text formatting?
Which is all funny because XML was really designed to be used for describing a logical document. It's actually rather good at doing that (while you can wedge text formatting in, that's actually Discoursean in its levels of ). That's got not all that much to do with all those other things that you describe except that they can be put in documents. What's worse, most of the alternatives that people propose instead (except when it comes to databases, where XML is utterly the wrong approach) are actually better in XML than most of the alternatives.
Most programmers should be kept a long way away from any kind of format that might be visible to users at all ever, because most programmers are twerps.