this post was submitted on 02 Oct 2023
1379 points (96.7% liked)

Programmer Humor

19623 readers
26 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 84 points 1 year ago (2 children)

You've come from Windows and have brought dangerous expectations.

[–] naught 20 points 1 year ago (1 children)

MacOS has a case insensitive file system. It causes me untold grief

[–] [email protected] 28 points 1 year ago* (last edited 1 year ago) (1 children)

Is a 40 year old it guy who love linux, wat

Macos is case insensitive?!

[–] [email protected] 15 points 1 year ago (2 children)

OSX offers both case sensitive and case insensitive filesystems

[–] naught 10 points 1 year ago (2 children)

Defaults to insensitive and if you want to change it you have to reformat 🥲

[–] [email protected] 11 points 1 year ago (1 children)

I've been using case insensitive fs on macOS for years and the only software having issues with this is onedrive.

can't say i'm surprised.

[–] naught 4 points 1 year ago* (last edited 1 year ago) (2 children)

I have issues with Docker a lot. Example: Rename a file from "File.js" to "file.js" in a dependency and it's like something caches the old name so even when I redownload or install that dep it tries the old name and fails to find the file. Might just be me and my tomfoolery

[–] [email protected] 3 points 1 year ago (1 children)

if you're renaming from File.js to file.ts, which is also changing suffixes instead of just capitalization, then that couldn't be explained by case sensitivity, unless it was a typo and you meant File.js to file.js

[–] naught 1 points 1 year ago

Yep typo thanks

[–] [email protected] 1 points 1 year ago (2 children)

This is likely because docker runs Linux in a VM on MacOS right?

We've had similar problems with stuff that works on the developers Mac but not the server which is case sensitive. It can be quite insidious if it does not cause an immediate "file not found"-error but say falls back to a default config because the provided one has the wrong casing.

[–] naught 1 points 1 year ago

Yeah exactly. And I mount the volume to the local directory so they try to sync both ways. It's a real mess. The solution is currently to: not fuck up the file name casing in the first place. lol

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

The same issue happens with git (on windows). The file system says they're the same file and they haven't changed, so you have to manually tell the program the file changed. With git, you'd run git rm --cached && git add . On docker, you could just do a non-cached build via docker build . --no-cache

[–] [email protected] -2 points 1 year ago (1 children)
[–] naught 1 points 1 year ago

Which part? I'd love to switch if there's no reformatting, and if your exception is with the first part, I'd ask for some evidence. All of my mac machines arrived brand new, case insensitive. Granted that's only 3 so far, but it's a smattering from 2019 onward. All the literature online points to this being the default too

[–] [email protected] 3 points 1 year ago

Wow, I figured it'd be case sensitive, crazy, gotta make it more windows like I guess.

[–] [email protected] 11 points 1 year ago (2 children)

Why would case sensitive path names be considered dangerous?

[–] [email protected] 12 points 1 year ago* (last edited 1 year ago) (2 children)

I don't know about dangerous, but case-insensitive Unicode comparison is annoying, expensive and probably prone to footguns compared to a simple byte-for-byte equality check.

Obviously, it can be done, but I guess Linux devs don't consider it worthwhile.

(And yes, all modern filesystems support Unicode. Linux stores them as arbitrary bytes, Apple's HFS uses... some special bullshit, and Windows uses UTF-16.)

[–] [email protected] 1 points 1 year ago

Meanwhile fishshell:

[–] [email protected] 1 points 1 year ago (1 children)

so if linux stores file names as arbitrary bytes them could I modify a ext4 fs to include a / in a file name

[–] [email protected] 1 points 1 year ago

If you did it would likely break something as it's one of only two characters not allowed in a file name (the other being null).

You can do a lot of funky stuff within the rules though, think about control characters, non-printing characters, newlines, homographs, emojis etc. and go forth and make your file system chaos!