Case (in)?sensitive filesystems are :doing_it_wrong:
-
@medinoc said in Case (in)?sensitive filesystems are :
Note: I have no idea how
InvariantCultureIgnoreCase
handles AE vs ä, I haven't tested this.In .NET, they are considered unequal.
Console.WriteLine(string.Equals("AE", "ä", StringComparison.InvariantCultureIgnoreCase)); //False Console.WriteLine(string.Equals("AE", "Æ", StringComparison.InvariantCultureIgnoreCase)); //True Console.WriteLine(string.Equals("SS", "ß", StringComparison.InvariantCultureIgnoreCase)); //True
-
@greybeard said in Case (in)?sensitive filesystems are :
So it seems Apple has decided that case insensitivity in the filesystem is wrong
No, it doesn’t:
-
-
@medinoc said in Case (in)?sensitive filesystems are :
Note: I have no idea how
InvariantCultureIgnoreCase
handles AE vs ä, I haven't tested this.That's an evil one. German considers them equal, but Swedish considers them unequal. They also sort entirely differently.
-
@dkf said in Case (in)?sensitive filesystems are :
@medinoc said in Case (in)?sensitive filesystems are :
Note: I have no idea how
InvariantCultureIgnoreCase
handles AE vs ä, I haven't tested this.That's an evil one. German considers them equal, but Swedish considers them unequal. They also sort entirely differently.
I think it's less that German considers them equal, and more that
ae
is used when people are unable to typeä
for whatever reason.
-
@dkf said in Case (in)?sensitive filesystems are :
That's an evil one. German considers them equal, but Swedish considers them unequal. They also sort entirely differently.
And to make things worse, there is no such thing as an unambiguous sorting order in German. Ü can be treated as either U or UE when sorting; both versions are equally valid and widespread.
-
@asdf Including at least one major dictionary or encyclopedia on both sides of the divide?
-
@pleegwat Not sure, but I'm pretty sure the standard phone book doesn't use the same one as the well-known (and now discontinued) Brockhaus encyclopedia.
-
@raceprouk said in Case (in)?sensitive filesystems are :
I think it's less that German considers them equal, and more that
ae
is used when people are unable to typeä
for whatever reason.Mostly. If it's not because the two happened to meet in a word like "Mensaessen" or were put there by those pesky foreigners as in "anaerob".
-
@steve_the_cynic said in Case (in)?sensitive filesystems are :
(1) Just like the "s" in "Étienne", except there it has disappeared in modern spelling as well as pronunciation. In the 12th Century, King Stephen (of England)'s name in French was "Estienne", whereas today it is "Étienne".
Doesn't that mean a 2-headed ogre?
-
@remi said in Case (in)?sensitive filesystems are :
I can imagine. I'm not a native-English speaker and when I stumbled one day on the radio on a comical show with different regional English accents, I was absolutely, totally, utterly lost. Even the few sentences that I could actually understand (OK, part of the comical effect was also using local slang, so probably no-one in the audience understood everything), I was entirely unable to say in which regard they were pronounced differently...
A less extreme, very famous example:
Pirates of Penzance: Orphan/Often – 03:55
— CCSDrama1
-
This post is deleted!
-
@steve_the_cynic said in Case (in)?sensitive filesystems are :
@Mikael_Svahnberg said in Case (in)?sensitive filesystems are :
As the irish say: "English is a language created by thieves". First they need to get a language of their own.
There's more truth in that than most people would like to think. Modern English contains at least a few words from pretty much every other language in the world. (OK, yeah, mostly Old Low German and Old Norman French, but a scattering of other random stuff.)
I'm reminded of this:
31st-Century English: Let's get this straight, although I speak English, I'm not its biggest fan. What we have here is a language that began as a bad habit shared by Norman soldiers and Saxon barmaids who discovered that if they shared that habit they could share other things. Then the island empire they populated went all imperial and the bad habit was exported to at least four other continents. Then their colonies compounded the problem by revolting and splintering the language, and then insisting on the right to absorb other cultures ad hoc and ad nauseum (but not ad-free, unless you subscribe.)
Give me your tired, your poor
Your huddled masses yearning to breathe free,
The wretched refuse of your teeming shore.
Send these, the homeless, tempest-tost to me,
And I will give them a horrible new language to speak,
Which they will then mutate even more. (emphasis added*)And then, as if that wasn't bad enough, one of the colonies began exporting soldiers and technology across the face of the planet so that this mutated, awkward tongue became the de facto standard for business.
Needless to say, when Earthmen went to space and joined Galactic civilization, the language of corruption, conquest, and compromise struck the rest of the galaxy like a plague. It was like influenza among the native americans, or that Apple virus uploaded by that one guy during the Independence Day movie. Our galactic neighbors never stood a chance.
The worst part... Earth never apologized, and the descendents of the ancient royal families of the former British Empire (now comprising less than a billionth of a percent of the galaxy's English-speakers) continued to insist that everyone else was talking funny.
*Emphasis is also indicative of abject corruption of the original poem.
-- Howard Tayler, Schlock Mercenary, author's note
-
@jaloopa said in Case (in)?sensitive filesystems are :
Not really — I copied the URL for the image from your post in the other thread in which you pointed this out. (Maybe I should have added a link to there.)
-
@scarlet_manuka said in Case (in)?sensitive filesystems are :
Reminds me of doing word processing on our old Z80-based micro in the mid to late 1980s. It didn't have lowercase characters; the word processing program rendered uppercase characters using inverse video (swapping background and foreground colours).
The ability to draw lowercase and uppercase characters at the same time was a huge Commodore-64 selling point back in the day. It actually had a full 256-character set, IIRC, lots of lines and squares and such to build UIs with.
EDIT: it had two 256-character sets. Imagine how dominated the world would be by Commodore right now if that company had ever had even a slightly competent management team.
-
@blakeyrat said in Case (in)?sensitive filesystems are :
EDIT: it had two 256-character sets. Imagine how dominated the world would be by Commodore right now if that company had ever had even a slightly competent management team.
So what you're saying is, they invented codepage s before anyone else, and you think that's a good thing?
-
@masonwheeler Compared to what a lot of the competition was doing…
-
@blakeyrat I still miss the Amiga.
-
@blakeyrat said in Case (in)?sensitive filesystems are :
The ability to draw lowercase and uppercase characters at the same time was a huge Commodore-64 selling point back in the day. It actually had a full 256-character set, IIRC, lots of lines and squares and such to build UIs with.
It needed them, given the trouble you get in if you try drawing graphics like lines or boxes using BASIC. It was probably simpler in machine language (I’ve not tried), but your average home user wouldn’t be using that.
@masonwheeler said in Case (in)?sensitive filesystems are :
So what you're saying is, they invented codepage s before anyone else, and you think that's a good thing?
They actually used the two sets mainly for switching between upper- and lowercase characters:
-
@gurth said in Case (in)?sensitive filesystems are :
They actually used the two sets mainly for switching between upper- and lowercase characters:
I remember the Sinclair Spectrum from that period, which was mainly (but not quite) an ASCII machine but with very odd things outside the printable ASCII range. Also the display was entirely pixel-based (but colours weren't as there simply wasn't enough video memory on some editions of the machine) so there was never any weirdness to do with switching the look of all characters on the screen at once.
-
@dkf not sure you are remembering correctly.
The Spectrum had three differences in the 32-127 range of characters, relating to
^
, backticks andDEL
, but otherwise conformed to ASCII.The stuff up in the high bit was funky, including the user defined graphic characters and storage for the tokens of BASIC since that was how BASIC stored it.
As for video, yes, it was 256x192 pixels stored in a funky way, but all editions of the Spectrum had colour which mapped a foreground and background (plus flashing and high-brightness flags) to each 8x8 cell of pixels.
-
@arantor said in Case (in)?sensitive filesystems are :
not sure you are remembering correctly.
I'm sure I was remembering right. I'd just looked it up while writing that message (and yes, I noticed the three non-ASCII parts and the profusion of confusion in the C0 controls). The high bit stuff was where the funkiness was (and the display mapping was… well, I'm glad I don't need to deal with that any more).
It did mean that you could do something meaningful with total 16kB of RAM. That's small even by today's standards. (The 48kB model had masses of room by comparison.)
-
@dkf I meant the colour stuff on the video, all models had colour, even the 16KB edition.
Source: stepdad owns serial number 000000057...
-
@dkf said in Case (in)?sensitive filesystems are :
@masonwheeler Compared to what a lot of the competition was doing…
VDU 23,224,28,28,8,127,8,20,34,65
-
This post is deleted!
-
File systems are an interesting problem. What is a file name for? For programmers, they are just a convenience to help you remember which binary blob contains which data. You could replace them with GUIDs or something and they would still work.
But from the users' point of view, a file name is a nice name you can give to your documents and photos to tell them apart. So you obviously want nice Unicode and case insensitive operations because that's how human language works. But in that case, do you want the restrictions of a primary key? Why do you have to give everything a different name?
So in the end, I'd say it's another case of a thing trying to be used by both machines and humans, which always ends up sucking for both.
Solution: split the file system
- Implement a low-level system-wide database. The details don't matter much, as long as they let a process store and retrieve binary blobs.
- Define a special location to be "user files". All "files" that the user sees go there, stored in some specific format that includes its metadata. The metadata obviously includes a name, but it's not the primary key. So basically it works like Google Drive.
-
@pjh I still prefer the Spectrum's method for UDGs.
-
@arantor said in Case (in)?sensitive filesystems are :
@pjh I still prefer the Spectrum's method for UDGs.
BBC Basic was a lot nicer overall, but the whole area of graphics and sound control was weak linguistically. We do much better nowadays.
-
@dkf said in Case (in)?sensitive filesystems are :
I remember the Sinclair Spectrum from that period, which was mainly (but not quite) an ASCII machine but with very odd things outside the printable ASCII range.
Mainly the BASIC keywords.
Also the display was entirely pixel-based (but colours weren't as there simply wasn't enough video memory on some editions of the machine) so there was never any weirdness to do with switching the look of all characters on the screen at once.
The Spectrum supported user-defined character sets, which could be stored anywhere in memory: by changing two addresses to point to the new location, you could change the look of text to anything you wanted. However, I can’t remember whether doing that also changed text already on the screen, or if that stayed in the previous typeface. (My Spectrum programmer’s manual is in the crate with my Spectrum, and that's buried under more stuff right now than I care to remove just to see if it has any details on this.)
@arantor said in Case (in)?sensitive filesystems are :
all editions of the Spectrum had colour which mapped a foreground and background (plus flashing and high-brightness flags) to each 8x8 cell of pixels.
Which a lot of people quote as one of the reasons why the Commodore 64 was superior — yet it did exactly the same thing. The chief advantage, graphics-wise, the C64 had over the Spectrum was in its sprites, which didn’t cause colour clash.
-
@gurth Stuff already drawn to the screen stayed on the screen, but future writes to the screen of characters would use whatever was the current data as referenced by that pointer.
-
I remember the Amstrad CPC's customizable glyphs.
-
@arantor said in Case (in)?sensitive filesystems are :
@gurth Stuff already drawn to the screen stayed on the screen, but future writes to the screen of characters would use whatever was the current data as referenced by that pointer.
Thanks, I thought it worked that way but couldn’t remember for certain.