So I decided to try to update part of my toolchain...
-
@acrow said in So I decided to try to update part of my toolchain...:
I consider it a pain in the ass to maintain, pampering s , and a pain to explain to users, especially the meSH and MEsh permutations; they look different to the basic user
Do they?
so "why doesn't Windows allow keeping a.meSH and a.MEsh in the same folder?" is what they'll ask.
I have never been asked this. And if I were, I would ask why it was a pressing concern.
AFAIK, all FAT32, exFAT and NTFS actually support having files that only differ in case. It's only Windows's legacy user-safety that tries to prevent the user from doing that. If you get a folder full of files from someone that uses Mac, Linux or Android, and two differ only by case, then you're going to have a problem in two ways. Either when Windows prevents you from un-zipping that folder, or when some software fails to grasp which one you want to open, since thay have (from its point of view) identical names. Guess who gets the support call?
Not me! I've been in the Windows world my entire career and I have yet to encounter anyone lamenting not being able to have
02132019 Annual Report.docx
and02132019 Annual report.docx
in the same folder. It's almost like they understand that such an arrangement would be confusing! But *nix users and developers not understanding Windows is not a new thing, and vice versa.If the OS, framework or database support case-insensitivity in searches or file-opening, then go for it. But maintaining support for it inside a piece of specialized software is easily surplus to requirements.
"Surplus to requirements" isn't necessarily a bad thing. Some of us call them "features," or "differentiation from the competition."
-
@dkf said in So I decided to try to update part of my toolchain...:
@Groaner said in So I decided to try to update part of my toolchain...:
The alternative is incredibly user-hostile.
No. It's incredibly hostile to lazy devs who fuck up. Users don't usually see extensions at all, and “this has got to match exactly because computers are stupid and have no common sense at all” is a very easy rule to explain to those power users who take the leap to the second level of understanding.
Well, I'm a user of a third-party tool that spits out files with capitalized extensions, and that I'm being forced to clean that up is hostile to me!
-
@Groaner said in So I decided to try to update part of my toolchain...:
@acrow said in So I decided to try to update part of my toolchain...:
I consider it a pain in the ass to maintain, pampering s , and a pain to explain to users, especially the meSH and MEsh permutations; they look different to the basic user
Do they?
so "why doesn't Windows allow keeping a.meSH and a.MEsh in the same folder?" is what they'll ask.
I have never been asked this. And if I were, I would ask why it was a pressing concern.
It's ASCIIist.
-
@Groaner said in So I decided to try to update part of my toolchain...:
@dkf said in So I decided to try to update part of my toolchain...:
@Groaner said in So I decided to try to update part of my toolchain...:
The alternative is incredibly user-hostile.
No. It's incredibly hostile to lazy devs who fuck up. Users don't usually see extensions at all, and “this has got to match exactly because computers are stupid and have no common sense at all” is a very easy rule to explain to those power users who take the leap to the second level of understanding.
Well, I'm a user of a third-party tool that spits out files with capitalized extensions, and that I'm being forced to clean that up is hostile to me!
Yeah. Shouty extensions are hostile by definition.
-
@pie_flavor said in So I decided to try to update part of my toolchain...:
@boomzilla you're welcome to name one.
Let's see... My project is in C++, my dependencies are in C++... so I'd have to spend a significant amount of time porting them all over. Time that could instead be allocated to developing the project itself.
-
@Groaner said in So I decided to try to update part of my toolchain...:
@pie_flavor said in So I decided to try to update part of my toolchain...:
@boomzilla you're welcome to name one.
Let's see... My project is in C++, my dependencies are in C++... so I'd have to spend a significant amount of time porting them all over. Time that could instead be allocated to developing the project itself.
You need to start working in general then you'll have none of these problems.
I'm not sure where general is, but there are no downsides there.
-
@Gąska said in So I decided to try to update part of my toolchain...:
As long as file's identity is file's name, there will be a mixup of presentation and behavior in filesystems
My point was that files are themselves abstractions over the notion of physical areas of disks (or collections of transistors and so on in SSDs).
-
@dkf abstractions and resource access manager. The point is that they could've separated presentation from the resource service part even better than now.
-
-
@M_Adams said in So I decided to try to update part of my toolchain...:
02132019 Annual Report.docx and 02132019 Annual report.docx
for improper date formatting
Sorry. Would
1550097891 Annual Report.docx
and1550097891 Annual report.docx
be better?
-
@Groaner said in So I decided to try to update part of my toolchain...:
@M_Adams said in So I decided to try to update part of my toolchain...:
02132019 Annual Report.docx and 02132019 Annual report.docx
for improper date formatting
Sorry. Would
1550097891 Annual Report.docx
and1550097891 Annual report.docx
be better?Well at least they’ll sort in the proper order.
***What the fuck is wrong with the inability to scroll in the composer on iPhone ***
-
@M_Adams said in So I decided to try to update part of my toolchain...:
Well at least they’ll sort in the proper order.
Until November 20, 2286 at 17:46:40+00:00.
-
@Groaner said in So I decided to try to update part of my toolchain...:
@M_Adams said in So I decided to try to update part of my toolchain...:
Well at least they’ll sort in the proper order.
Until November 20, 2286 at 17:46:40+00:00.
267 years from now it will really be ”not my problem” ;)1273Edited for matho ²....
Because as an accountant, I math good...
-
@boomzilla said in So I decided to try to update part of my toolchain...:
WhenIf you get out into the real world you'll learn important stuff like this.
-
@loopback0 said in So I decided to try to update part of my toolchain...:
I'm not sure where general is, but there are no downsides there.
In the US, most of them are in the Pentagon. There are 5 sides there.
-
@pie_flavor said in So I decided to try to update part of my toolchain...:
There are only a few places where we continue to mix presentation and behavior, and one of them is filesystems.
Well, there's your error. The filesystem is a representation for your collection of data chunks. Before the folder/path paradigm was invented, files were all just chunks with nary a name to separate them. Folders and paths exist only for making it easier for the meatbags to separate their stuff.
Assuming, of course, that file extensions are standardized. .part01.rar anyone?
Do notice that the suffix system is extensible by third parties without needing to petition the OS developers to add a field for "file part", and maybe also to add the mime type to the OS registry.
-
@Groaner said in So I decided to try to update part of my toolchain...:
"Surplus to requirements" isn't necessarily a bad thing. Some of us call them "features," or "differentiation from the competition."
"Competiton" implies:
a) there's profit to be had (monetary, spiritual, etc... I'm not picky). Sure, I'll support things that make us money, IIF it actually brings over a customer's money.
b) someone else is making software for the same purpose. You'll have already picked the cheaper or, assuming FOSS, the easier to install solution, so extra features need not apply.
-
@Groaner said in So I decided to try to update part of my toolchain...:
@M_Adams said in So I decided to try to update part of my toolchain...:
Well at least they’ll sort in the proper order.
Until November 20, 2286 at 17:46:40+00:00.
Not on Windows. Windows is smart enough to sort numbers as a whole, not digit by digit.
-
@M_Adams said in So I decided to try to update part of my toolchain...:
Because as an accountant, I math good...
One of my math professors at college said she used to be CS professor, but then switched to teaching math, because unlike CS, you don't need to be any good at counting to teach it - and she's not.
-
@acrow said in So I decided to try to update part of my toolchain...:
@pie_flavor said in So I decided to try to update part of my toolchain...:
There are only a few places where we continue to mix presentation and behavior, and one of them is filesystems.
Well, there's your error. The filesystem is a representation for your collection of data chunks. Before the folder/path paradigm was invented, files were all just chunks with nary a name to separate them. Folders and paths exist only for making it easier for the meatbags to separate their stuff.
Yes. I know that the file system is representation. That is my point. It is used for behavior despite being designed for presentation. Programs care about file paths instead of file UUIDs, meaning that path length and case sensitivity issues exist, renaming files or moving files can break programs that depended on them, and other things that result from caring about file names.
Assuming, of course, that file extensions are standardized. .part01.rar anyone?
Do notice that the suffix system is extensible by third parties without needing to petition the OS developers to add a field for "file part", and maybe also to add the mime type to the OS registry.
My point is that they're not standardized, and there's no guarantee that the last dot in a file is the intended extension separator.
-
@Gąska said in So I decided to try to update part of my toolchain...:
One of my math professors at college said she used to be CS professor, but then switched to teaching math, because unlike CS, you don't need to be any good at counting to teach it - and she's not.
You're OK with counting in CS so long as you're never more than off by one…
-
@dkf it wasn't rare for her to be off by infinity. Literally.
-
@pie_flavor said in So I decided to try to update part of my toolchain...:
Programs care about file paths instead of file UUIDs, meaning that path length and case sensitivity issues exist, renaming files or moving files can break programs that depended on them, and other things that result from caring about file names.
No, a program does not really care about file- or folder paths. It cares about the string identifier (or URI) of that file. UUIDs may be used as a replacement there, yes. However, the folder and file have human-readable names just do that you can figure out which file to point the program to. Also, so that you can easily move files around. The alternative is a multitude of lists of file-IDs, pointed to by other lists of file-IDs... and you're back in the folder structure again.
Folders usually form a tree, so that their relations may be inferred from the location in the tree. I.e. if all files only had a UUID, you couldn't easily figure out which files were left behind by a bad un-installer for a crappy app.
Getting rid of the folder/filename system and using UUIDs is something that may work in a system that you perfectly control. But in real-world use, on a general purpose workstation or server, it can not. ...A bit like communism.
-
@acrow said in So I decided to try to update part of my toolchain...:
Folders usually form a tree, so that their relations may be inferred from the location in the tree. I.e. if all files only had a UUID, you couldn't easily figure out which files were left behind by a bad un-installer for a crappy app.
How so? Maintain a creator program field on files, set automatically by the operating system. Boom, you know which files were left behind. Also, apps needing to have uninstallers instead of using system-provided methods is TRWTF - no such thing is required in the UWP system.
-
@pie_flavor said in So I decided to try to update part of my toolchain...:
@acrow said in So I decided to try to update part of my toolchain...:
Folders usually form a tree, so that their relations may be inferred from the location in the tree. I.e. if all files only had a UUID, you couldn't easily figure out which files were left behind by a bad un-installer for a crappy app.
How so? Maintain a creator program field on files, set automatically by the operating system. Boom, you know which files were left behind. Also, apps needing to have uninstallers instead of using system-provided methods is TRWTF - no such thing is required in the UWP system.
Do you really need me to spell it out for you? Fine.
Any folder of files forgotten on a system now, has a path that gives a hint as to what it was meant for.
And I don't doubt for a second that, should we move to UUID filesystems, any "creator" or "owned by program" field will read "<insert owner here>" on at least half of all software.Humans are bad at coping with "perfect" systems. Humans are flawed. Ergo, any system that relies on its own perfection, and does not have a manual fallback mechanism to fix it, is doomed to fail.
P.S. I've read enough articles about UWP failing to install an app, nevermind un-installing them, that I think you really should not use it as an example.
-
@acrow said in So I decided to try to update part of my toolchain...:
Any folder of files forgotten on a system now, has a path that gives a hint as to what it was meant for.
Have you ever looked into system temp directory?
And I don't doubt for a second that, should we move to UUID filesystems, any "creator" or "owned by program" field will read "<insert owner here>" on at least half of all software.
What part of "set automatically by the operating system" do you not understand?
Humans are bad at coping with "perfect" systems. Humans are flawed.
No, it's "perfect" systems that are flawed. Because most of those "perfect" systems have completely forgotten who is going to use them, when they were being designed. They stopped being products and became art for the sake of art.
-
@pie_flavor said in So I decided to try to update part of my toolchain...:
Also, apps needing to have uninstallers instead of using system-provided methods is TRWTF
Very much true. The problem is apps that dribble bits of themselves outside their own directory structure, and the solution is to simply not let them do that. (This gets a bit awkward when an app requires a particular set of optional system components to work — e.g., a database server engine — but that's the minority of cases.)
Maintain a creator program field on files, set automatically by the operating system. Boom, you know which files were left behind.
OTOH, merely having the creator of a file go away shouldn't delete the files created by that program. Deleting a user's pictures just because they deleted the photo editor they were using at one point is a bad plan!
-
@dkf said in So I decided to try to update part of my toolchain...:
apps that dribble bits of themselves outside their own directory structure, and the solution is to simply not let them do that
How should one discern whether something that
appprogram writes outside its directory structure is a legitimate user request (if perhaps scripted) or some dribble because raisins? Especially for various file editingappsprograms?
-
@Gąska said in So I decided to try to update part of my toolchain...:
@acrow said in So I decided to try to update part of my toolchain...:
And I don't doubt for a second that, should we move to UUID filesystems, any "creator" or "owned by program" field will read "<insert owner here>" on at least half of all software.
What part of "set automatically by the operating system" do you not understand?
The part where the OS always figures it out correctly. Especially if we talk of badly tested systems like the current iteration of Windows. But also in the general sense, unless all software is installed through an app-store, you can't force the application packages to supply a sane unique identifier. Also, you can't tie file ownership to a binary, as binaries may be split and/or combined during updates. And, like mentioned above, you're going to have a problem when an app is un-installed.
@Gąska said in So I decided to try to update part of my toolchain...:
Have you ever looked into system temp directory?
Yes, I have. And since it is a temp directory, I know that all contents may be deleted without consequences. In fact, if I were an OS developer, I'd empty all temp folders during reboot once per week. In any case, I don't need to recognize the owner of those in order to do housekeeping.
Edit: typos
-
@dkf said in So I decided to try to update part of my toolchain...:
(This gets a bit awkward when an app requires a particular set of optional system components to work — e.g., a database server engine — but that's the minority of cases.)
And software developer tools. And... actually, most "professional" or "enterprise" tools, that need to diddle each other's binaries during installation and sometimes after. I may be just seeing a lot of this because I'm in embedded delopment, but...
-
@Applied-Mediocrity said in So I decided to try to update part of my toolchain...:
@dkf said in So I decided to try to update part of my toolchain...:
apps that dribble bits of themselves outside their own directory structure, and the solution is to simply not let them do that
How should one discern whether something that
appprogram writes outside its directory structure is a legitimate user request (if perhaps scripted) or some dribble because raisins? Especially for various file editingappsprograms?Explicit permission from user/administrator. Like contacts access on smartphones.
@acrow said in So I decided to try to update part of my toolchain...:
@Gąska said in So I decided to try to update part of my toolchain...:
@acrow said in So I decided to try to update part of my toolchain...:
And I don't doubt for a second that, should we move to UUID filesystems, any "creator" or "owned by program" field will read "<insert owner here>" on at least half of all software.
What part of "set automatically by the operating system" do you not understand?
The part where the OS always figures it out correctly.
If it can keep track of which process owns which thread, there's no reason why it wouldn't be able to track which process created which file.
Especially if we talk of badly tested systems like the current iteration of Windows.
Do you want to discuss OS design, or do you want to shit on Microsoft? I'm all for shitting on Microsoft, but let's keep those two discussions separate.
But also in the general sense, unless all software is installed through an app-store, you can't force the application packages to supply a sane unique identifier.
It doesn't have to be globally unique ID. System-unique suffices.
Also, you can't tie file ownership to a binary, as binaries may be spit and/or combined during updates.
You can tie it to application package. And expose API for a package to update itself.
And, like mentioned above, you're going to have a problem when an app is un-installed.
Uninstallation doesn't mean the system has wipe out application IDs. Yes, it would involve some slight disk storage overhead, but it wouldn't be a lot of information, and it can be garbage-collected quite easily.
@Gąska said in So I decided to try to update part of my toolchain...:
Have you ever looked into system temp directory?
Yes, I have. And since it is a temp directory, I know that all contents may be deleted without consequences.
User directory. C: root. Program files. AppData. Each of these is guaranteed to have at least some randomly named files similar to temp for which it's very hard to track down the program that created them, because even though 999 out of 1000 programs know how to behave, this 1000th one won't care/has bugs and spams those folders anyway.
And it's not true deleting temp files has no consequences. It's only true as long as all programs using those files are closed. Otherwise you risk data corruption and other fun activities.
In fact, if I were an OS developer, I'd empty all temp folders during reboot once per week.
In fact, this is what many Linux distros do. On every reboot. But don't you ever dare delete anything from there during normal user session (unless you created those files yourself, obviously).
-
@pie_flavor said in So I decided to try to update part of my toolchain...:
no such thing is required in the UWP system
Last I knew, the UWP system can't do services or drivers or COM. All of those require a lot more installation handholding than just dropping files into a file system. (Tho you can get away with registry-free COM in some situations)
-
@acrow said in So I decided to try to update part of my toolchain...:
you can't tie file ownership to a binary
Who "owns" the file if I create it with paint.exe and edit it with Paint.Net. Then view it with Photos (because that's the default program for said file type)?
-
@acrow said in So I decided to try to update part of my toolchain...:
I'd empty all temp folders during reboot once per week.
I actually empty mine pretty regularly. Ever since I got bit by a bug in Acrobat (I think, might have been another program). It just stopped working when too many (forget how many, this was a long time ago) files were in the temp dir.
-
@Gąska said in So I decided to try to update part of my toolchain...:
Explicit permission from user/administrator.
That's going to go over well. "Hey bro, how do I disable this stupid UAC again?"
-
@dcon what problem are you trying to solve? Stupid users doing stupid things, or broken programs messing up stuff of people who care? Because the latter is solved almost entirely by asking for permission.
-
@Gąska said in So I decided to try to update part of my toolchain...:
@dcon what problem are you trying to solve? Stupid users doing stupid things, or broken programs messing up stuff of people who care? Because the latter is solved almost entirely by asking for permission.
My point is that when you start asking users for permission, you piss them off. That's my point about UAC - when it first came out, many just disabled it. So if you start asking "Hey can I write this file". me: "Oh fuck off - I just told you to". If you're talking about a one-time thing with the program starts "Hey, I want to write files in places you care about", that's a little different - but it's not clear that's what you intended...
-
@dcon said in So I decided to try to update part of my toolchain...:
@Gąska said in So I decided to try to update part of my toolchain...:
@dcon what problem are you trying to solve? Stupid users doing stupid things, or broken programs messing up stuff of people who care? Because the latter is solved almost entirely by asking for permission.
My point is that when you start asking users for permission, you piss them off.
But no one will be starting that. It was already started. Ten years ago by smartphones, and little later by web browsers. People were annoyed by UAC mostly because it was a new concept to them. You don't hear Linux users raging that they have to write
sudo
everywhere to do anything, even though it's way more common than even Vista's initial version of UAC. But by now most people are used to permission dialogs.So if you start asking "Hey can I write this file". me: "Oh fuck off - I just told you to". If you're talking about a one-time thing with the program starts "Hey, I want to write files in places you care about", that's a little different - but it's not clear that's what you intended...
It's interesting that because I wasn't perfectly clear what I meant, you automatically assumed the most insane variant.
-
@dcon said in So I decided to try to update part of my toolchain...:
@pie_flavor said in So I decided to try to update part of my toolchain...:
no such thing is required in the UWP system
Last I knew, the UWP system can't do services or drivers or COM. All of those require a lot more installation handholding than just dropping files into a file system. (Tho you can get away with registry-free COM in some situations)
And when someone finally invents a way to upload your consciousness to the machine, it will be in a way unsupported by UWP. Such is the way of any walled garder; inventions are made outside it.
@dcon said in So I decided to try to update part of my toolchain...:
@acrow said in So I decided to try to update part of my toolchain...:
I'd empty all temp folders during reboot once per week.
I actually empty mine pretty regularly. Ever since I got bit by a bug in Acrobat (I think, might have been another program). It just stopped working when too many (forget how many, this was a long time ago) files were in the temp dir.
I used to have a program installed that emptied it on reboot. But that was before Windows 7.
-
@Gąska said in So I decided to try to update part of my toolchain...:
It's interesting that because I wasn't perfectly clear what I meant, you automatically assumed the most insane variant.
Of course. It's the internet and we must fill the tubes.
-
@Gąska said in So I decided to try to update part of my toolchain...:
But by now most people are used to permission dialogs.
And most people click OK without reading them.
-
@HardwareGeek and it's definitely a problem. A social problem, not a technical problem. A problem with people, not with an operating system. And it's largely unsolvable, unlike the problem of badly written programs barfing all over the filesystem and other parts of local machine, which is not only solvable, but already solved almost entirely on many platforms.
-
@Gąska said in So I decided to try to update part of my toolchain...:
You don't hear Linux users raging that they have to write sudo everywhere to do anything
That's because we've been trained to start every shell session with
sudo su -
-
@Gąska said in So I decided to try to update part of my toolchain...:
already solved almost entirely on many platforms.
The problem cannot be considered fully solved until all its practical aspects are. Which, I agree, are largely unsolvable.
But I also mentioned scripting, or more properly, unattended operation. One attempts to solve that by giving some sort of bulk approval, if temporarily, to a program, to a process or to a specified directory,
sudo
,rwx
, etc.. That, unfortunately, brings us back to where we started, viz., the system no more requires our explicit approval for the smallest quantum of data (say, writing a file) and can write data and exhaust all resources, unless one explicitly provides additional limits (disk, memory and processor time quotas) so that it may not. Perhaps it does not just matter where it writes, but what it writes?(yes, I'm , but I believe in interconnectedness of all things, so...)
-
@Gąska said in So I decided to try to update part of my toolchain...:
You don't hear Linux users raging that they have to write
sudo
everywhere to do anything, even though it's way more common than even Vista's initial version of UAC.It seems you haven't seen the cusswords in their shell history yet:
➜ apt-get install vim E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? ➜ fuck sudo apt-get install vim [enter/↑/↓/ctrl+c] [sudo] password for nvbn: Reading package lists... Done ...
-
@JBert said in So I decided to try to update part of my toolchain...:
@Gąska said in So I decided to try to update part of my toolchain...:
You don't hear Linux users raging that they have to write
sudo
everywhere to do anything, even though it's way more common than even Vista's initial version of UAC.It seems you haven't seen the cusswords in their shell history yet:
➜ apt-get install *** E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? ➜ fuck sudo apt-get install *** [enter/↑/↓/ctrl+c] [sudo] password for nvbn: Reading package lists... Done ...
Dude, man, censor that cuss word! It's way too vile to be posted to a publicly accessible portion of the forum!
-
@izzion Alright, spoilered that for you. Next time I'll try to act more appropriately on the Worse Than Failure forums.
-
@Applied-Mediocrity said in So I decided to try to update part of my toolchain...:
@Gąska said in So I decided to try to update part of my toolchain...:
already solved almost entirely on many platforms.
The problem cannot be considered fully solved until all its practical aspects are. Which, I agree, are largely unsolvable.
Which problem are you talking about now? Are we still talking about OS design or are we now full psychology?
But I also mentioned scripting, or more properly, unattended operation. One attempts to solve that by giving some sort of bulk approval, if temporarily, to a program, to a process or to a specified directory,
sudo
,rwx
, etc.. That, unfortunately, brings us back to where we started, viz., the system no more requires our explicit approval for the smallest quantum of data (say, writing a file) and can write data and exhaust all resources, unless one explicitly provides additional limits (disk, memory and processor time quotas) so that it may not.I don't see where you're going with it. Scripting is essentially program with larger permissions launching programs with smaller permissions, and the "larger" program temporarily expanding permissions of programs it launches. What's the problem here?
Perhaps it does not just matter where it writes, but what it writes?
And now I'm completely lost. How "what" can ever be a problem? And how is "where" a non-issue? The entire issue is that currently, desktop programs get nearly full access to nearly everything on disk. Making it very very easy for programs to interact with each other in unexpected ways, and very very easy for bugs to be extremely destructive - and also hard to track down all files belonging to a given application.
-
@pie_flavor said in So I decided to try to update part of my toolchain...:
Also, apps needing to have uninstallers instead of using system-provided methods is TRWTF - no such thing is required in the UWP system.
I've been told this is all about anti-trust.
-
@Gąska said in So I decided to try to update part of my toolchain...:
. You don't hear Linux users raging that they have to write sudo everywhere to do anything, even though it's way more common than even Vista's initial version of UAC. But by now most people are used to permission dialogs.
Ugh. I hate that our blakeyrants are stuck in the 2000s. IT'S 2019 PEOPLE!
But seriously, about the only thing I do that for is to install or update stuff.