Should "B" be the Same as "b"?
joshua42 asks: "Although having used Linux and FreeBSD for many years, I have yet to come
across anyone seriously questioning the traditional UNIX style file system name paradigm. With an Amiga background (It should be the same for people growing up with Windows, or those growing up with no computer at all (God forbid!).) it took me quite a while to get used to 'A' and 'a' being treated as different characters. This is of course fairly easy to accept and to understand if you have a technical background. I do however
have a hard time to see how aunt Ginny will ever be able to distinguish between her 'Letter.txt', 'LETTER.TXT' and 'letter.txt' files. In real life, upper and lower case letters represents almost identical information to most people. Has any thoughts been spent on this issue, now that our
favorite OS is becoming increasingly mainstream? Does it need to be
addressed? Have any attempts been done? What are the implications to parts outside the file systems?" This is an interesting point. As Unix grows more and more popular, the simple things we've taken for granted about the filesystem may stand in the way of general users adopting it. What ways can you think of that will mitigate this problem for new Linux users without actually affecting too much? Special shells for novice users, that can simplify much of the complexity may be the way to go, here.
My solution is for the OS to ignore the caps lock key. Not only would it solve the case problem, but it would shut up a whole lot of AOL users.
:-D
www.HearMySoulSpeak.com
This is a flamebait topic.
Why don't we ask: "Should the convention for tapping threads in metal be switched to left hand threads by default?"
Nothing will change as a result of the discussion, and nothing should change. It's the 'simplify UNIX and destroy it in the process' arguement all over again.
Good grief.
Apple OSX is already case-insensitive in terms of filenames, probably for the reason mentioned. MS Windows/DOS have probably all done that for the exact same reason as well.
Of course, in OSX this did cause a security hole in Apache, but it was small, required a specific setup, and was easily fixed.
The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
Well chaning the linux or BSD file systems to accomplish ease of use has never been the mentality of the community. I think a task like this should be the responsibility of the application.
If you ask for letters.txt, and the app can't find it, it's not to hard to see if there is a similar named file in different case.
Rick
Making something out of nothing : MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
Please write a little prog to dig through the filesystem and rename all/certain files to lowercase names, and prompt the user when there are conflicts. It could also integrate into the shell/kernel (??) to suggest alternatives when "letter.TXT" is referred to in a command but does not exist, but something similar (e.g. "Letter.txt") does. A user having to ls just to find the correct casing for a filename is nothing serious, but its still an annoyance, which could put people off.
While we're at it, what about a "manfd" command? You know, Man For Dumbasses!
Ali
Ph33r m3!!!
What is confusing is that "A" and "a" don't sort next to each other -- so, letter.txt doesn't end up following Letter.txt, but instead is down somewhere past Zebra.jpg. That defies reason; if something is to be fixed, let it be that.
Subscribers can see articles in the future? So what? Everyone gets to see them in the future.
What are the odds that your Aunt Ginny or any equally technically inept person is actually using *nix for something so mundane as typing a letter. She is almost certainly using some Flavor of Windows, or perhaps a Mac. OS X is already case insensitive, and lets face it, Aunt Ginny is never going to open a term window anyway. As long as she can point and click she can find and open her letter regardless of how its named. In the really unlikely event that she is in fact using *nix do you really think she's using vi to send those letters home? or is it more likely she is using KDE or Gnome as a windows substitute and is still quite fine as long as her mouse finger holds out? I'd say this is really a non issue. .
If privacy had a tombstone it would read "We did it for your own good" . -- John Twelve Hawks
Novice users will always use file selection dialogues and icon-based file managers. Thus the only time they type a filename is at initial creation. Beyond that it does not matter. If they are going into a shell, they are not novice users anymore (I doubt you will see aunt Ginny do this)
"I don't know that atheists should be considered citizens, nor should they be considered patriots." George HW Bush
Well for all their faults, the Windowses, DOS, and others, have never been hindered by a lack of case-sensitivity in their filesystems. Unless you have some evidence to the contrary?
Ali
Ph33r m3!!!
>Although having used Linux and FreeBSD for many years, I have yet to
>come across anyone seriously questioning the traditional UNIX style
>file system name paradigm.
>With an Amiga background (It should be the same for people growing up
>with Windows, or those growing up with no computer at all (God
>forbid!).) it took me quite a while to get used to 'A' and 'a' being
>treated as different characters. This is of course fairly easy to
>accept and to understand if you have a technical background.
>I do however have a hard time to see how aunt Ginny will
>ever be able to distinguish between her 'Letter.txt', 'LETTER.TXT' and
>'letter.txt' files.
Just like how aunt Ginny was likely somehow able to grasp that her
name is written aunt Ginny and not aunt gInNy, aunt gINNy, or other
combination. Give her a little credit. Simply explain that the case
is part of the file name. Your example Letter.txt file names would be
a perfect way to show her the difference. Just make each contain
different information, and open each one to show her they are
different.
File systems should be case sensitive. An upper case 'A' is a different
character than a lower case 'a'. We should not confuse people by
tricking them when the create file names.
>In real life, upper and lower case letters represents almost identical
>information to most people.
Almost, but not identical.
>Has any thoughts been spent on this issue, now that our favorite OS is
>becoming increasingly mainstream?
>
>Does it need to be addressed?
No.
>Have any attempts been done?
I hope not. Mount a case insensitive file system if you want one.
Leave existing file systems alone.
>What are the implications to parts
>outside the file systems?" This is an interesting point.
>As Unix
>grows more and more popular, the simple things we've taken for granted
>about the filesystem may stand in the way of general users adopting
>it.
The sooner people accept that 'Ginny' and 'gInNy' are not the same the
sooner they will understand how to interact with a computer.
>What ways can you think of that will mitigate this problem for new
>Linux users without actually affecting too much? Special shells for
>novice users, that can simplify much of the complexity may be the way
>to go, here.
How about a mouse-click'n GUI like GNOME, KDE, etc.
any application or standard dialog that lists filenames but does not sort them in a case insensitive manner should be trashed. its useless. i don't care if the filesystem itself is case sensitive or not but the high level application user should not present them to the user in a messed up order putting apple after Orange.
Show filenames in the case they were created in (e.g. if you created a file 'Letter.txt', it would be shows in Explorer as 'Letter.txt'), however, for usage purposes, you can eliminate the uppercase/lowercase nomenclature of the file (e.g. 'Letter.txt' = 'letter.txt' = 'LETTER.txt' etc.). At least M$ is smart about something ;).
'A lie if repeated often enough, becomes the truth.' - Goebbels
If "B" and "b" were meant to be the same, they'd look the same.
In many languages, English and German to take two examples, capital letters have had a specific usage for a much longer time than computers, or eve for a much longer time than typewriter keyboards. They are different letters and, more importantly, people believe they're different letters.
Why regress to that era 20 years ago when in some strange computer-based subculture of reality the two letters were indistinguishable?
"Provided by the management for your protection."
OS X remebers case, but ignores it. This way your
file is named just the way you typed it, caps and
all, but if you reference it with different
capitilazation, it still matches. If you try to make
a second file with the same letters but different
capitalization, it won't let you. The best of both
worlds. No multiple files with the same name, yet
case is preserved for looks and correct grammar.
Yes, I know this is English-specific, but perhaps other languages have similar distinctions:
/home/Dock and /home/dock go to the same place. Yet do a pwd or try tab completion and it's all confused. (the location in finder is /home/Dock, for clarity). My take on the issue is "I will remember how you named it; just kindly tell me the file you want, exactly how I told you it's called".
what's the difference between:
"I went to school."
and
"I went to School." ?
In the first sentence, school is being used as a regular noun: which school? Who cares? On the other hand, in the second sentence, School is being used as proper name - there can be only one School.
In other words, if English speakers can understand the nuance between school and School, then said English speaker (please avoid dissing the US publik skool edukashion sistem) can reasonably be expected to distinguish between letter.txt and Letter.txt (ie. "letter? Which one?" vs. "Letter? ahh yes, THE Letter").
Anyhoo, an example of a totally confused implementation: Mac OS X: some things understand the difference, some don't:
ie:
Nwanua.
ps. if the above is true ONLY for English, all you have to do is politely state that fact, and we'll all be better informed...
The problem is more complicated than the question makes it out to be. An Ideal filesystem should allow any random binary bits to make up a filename, such that the filenames can be Unicode, so that Chinese people can name files in Chinese, Math professors can use the unicode for a math formula as the name of a document describing how to solve it. When you think in this bigger sense - it becomes a lot harder.
Ideally the encoding method (Unicode in this example) should provide some way of seeing the equivalency of certain characters (two different representations of the equal sign, two different cases of the letter A, etc..), and the application should be able to make use of this during a regex search, or maybe even during a library wrapped "open() or readdir()" call, where the application is "Windows Explorer", "bash", or anything else.
Ultimately this has to be resolved in userland tools and the libraries that support them - the best answer for the filesystem layer is to support all possible characters literally and meaningfully in filenames, so as not to restrict the schemes layered on top of it.
11*43+456^2
The only reason why Unix is case sensitive is because it was easier, and faster to implement it as such in the early days.
It is not quite efficient to Preserve Case, and not make it case-sensitive.
I used a file system like this (HPFS) for many years and much prefer it over the case-sensitive alternatives.
It is also a security concern. If I have 2 files, which are identical except for case it is possible I could run the wrong one. Why? Point and Click interfaces barely show a difference between o and O, etc.
There is also no need for 2 files with the same name, and different case when it comes to SOURCE CODE. I have seen more than 1 program implemented like this and it is downright confusing and stupid. " No no, not "ubergeek.c", "Ubergeek.c"... etc.
Garbage. Crap. Total waste of resources.
I've been working in a database language that is case-insensitive for a number of years as well. It is damn nice to not have to worry about somebody typing something in differently than expected. It isn't a problem. And I don't have to call UPPER every time I do something!
case-sensitive is a pain in the ass.
iF yOU wROTE a lETTER tO yOUR aUNT gINNY lIKE tHIS wOULD sHE nOTICE sOMETHING wRONG wITH iT?
If you think she would, then she can grasp the concept that case makes a difference. Give her a little credit.
If tits were wings it'd be flying around.
Is ASCII. It seems like you usually hit this in sorting. If 'A' and 'a' would be right next to each other, it woudldn't bet that big of a problem.
The opposite of progress is congress
For bash users: Add the following to the .inputrc in your home dir.
set completion-ignore-case on
Then when hitting tab to complete a filename, it will fix the case for you. i.e. typing "vi xf8" and pressing tab will get you "vi XF86Config" etc.
My other Slashdot ID is much lower.
... and now that I got your attention, let me specify that all other file systems as well are obsolete in the context of the USER INTERFACE.
Frankly, aunt Ginny should *never* have to deal with files and file names. She should not need to know what a file is, nor choose to "save" or "discard" her work after she has written the letter to her friend Margaret. She does not know her HD from her RAM, and all for the better. She would worry to death over having her letter spun around on a magnetic disc, it would get all jumbled up for sure!
File system is an internal, abstract and archaic database that is familiar to programmers and geeks, but a lousy way to represent data for the general user. There are few things worse than navigating a blind hierarchy of unknown folders with no contextual guide to help.
The system should remember the letter when it is written, keep tabs on when it was written, put the subject in a "recent letters" list and generally manage the internal filing transparent to the user. The storage capacity of a modern computer can last aunt Ginny for years, the real trouble is in FINDING her data, the file names alone do little good for that.
For a wonderful example of how well you could do without a filesystem, look at the operation of the Palm OS devices. Anyone could learn to use them. No files in sight! It's only recently that the clever engineers at Palm jumped off the deep end by adding a file system for the flash carts. Anyone who has ever used those knows what a nightmare managing them is.
Aunt Ginny knows fsck all about file systems. Lets keep it that way.
(Oh, and the answer in the context of user interfaces? Go for the most HUMAN representation. People are not very sensitive at all to upper/lowercase letters. We should not punish them for this.)
Jouni
Jouni Mannonen | Game Designer, Consultant
Develop/modify reiserfs or ext2/ext3 or whatever filesystem to be case in-sensitive. You could have it preserve the case, but check both case possibilities when looking up & creating files. Make it an option in the filesystem module.
As for the people who keep saying "it's unix we shouldn't change it", well, just keep running your filesystem and you don't have to worry about it. Don't support the development of the extras. Don't whine when the PHB says "you gotta use what everyone else uses so here's your Windows CD".
John Kramer
God may be my co-pilot, but the devil is my backseat driver.
If this is the most intellectual "should Linux..." question out there...may God help us.
A a
How hard is that?
BC
Nobody names a school, "School". A school is names "Riley Public School" or "Claypool Public School" If I see just School, I consider that it is likely that the person just made a mistake...which happens more frequently than some people seem to realize.
I'm actually a bit nervous posting in this thread, because the whole thing reeks of flamebait, but:
What about a common toolkit (common-dialogue) system that automagically lower-cases all filenames when entered in the common dialogue?
ie, if KDE/QT or GIMP/GTK+ automatically lowercased any filenames saved or loaded through its common file-loading dialogues.
This would have to be easily turned off, but would solve the problem for most non-power users, while other users could turn it off, and never have to deal with it again.
Just an idea.
OTOH, people are probably already somewhat used to this. If I go to http://slashdot.org/CoMMenTs.pL, I get a 404.
S
I like the system "correctness" of different ASCII values being treated differently. But the practical value escapes me.
That said, a large number of systems would break if the scheme changed. Given that most users use GUIs and rarely actually type names, is there a good reason to switch at this point? The few places where I see a true advantage (Windows compatibility, for example) have already handled this at the application layer.
Says the RIAA: When you EQ, you're stealing bass!
Just put this:in your ~/.inputrc. Tab-completion will then ignore case.
Who is stopping her from expressing herself the way she intended? On my Mac, if I type "Letter.txt" or "lETTEr.TxT", it is preserved and displayed in this manner. But if I want to find this file and I look for "letter.txt", the computer isn't going to tell me there isn't any. Or if I try to name one file "letter.txt" and another "letter.TXT", it won't let me put them in the same directory. So while you can try to make the argument that "grannie should be able to express herself" (ignoring that she can still name the file how she wants), I don't see how 9999/10000 grannies getting confused by "letter.txt" and "Letter.txt" being considered different is the most important thing to preserve.
This would not help. I think you are talking about your own pet peeve about people writing in all caps in chats and emails. The subject at hand is the file system.
mark
If you want to make an apple pie from scratch, you must first create the universe. -- Carl Sagan
It's not like your aunt is going to use Emacs - she'll just point and click with whatever graphical software she is using.
Leave case sensitivity alone - it's the right thing to do, just hide any ease-of-use problems it may introduce with a GUI.
That keeps the smart people happy, and the dumb people happy. We're all happy!
Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.
As Donald Norman has commented, if lots of people use something incorrectly there is probably a problem with the design, not the people. I will admit to having on more than one occassion typed "less readme" instead of "less README" or scrolled through a file listing and overlooked a file that was sorted elsewhere due to capitalization.
Even worse is the fact that subparts of an item follow different rules. For example:
http://slashdot.org/index.html == http://SlashDot.ORG/index.html
due to required case-insensitivity of domains,
http://slashdot.org/index.html != http://slashdot.org/Index.html
unless the underlying OS/web/app-server chooses to interpret them as equivalent.
As some have commented, everyone sees a difference between joe doe, Joe Doe, JOE DOE and jOe doE but they all know that in every case we are referring to the same person. In fact many places standardize on all-caps for the family name in forms and documents to reduce errors.
To those who say that the problem should be solved on the application level: consistency is good - a user should not have to remember the quirks of each application. Even if one is a slave to point-and-click GUIs there are problems created by sorting and the possibility of multiple files with the "same" name.
Windoze is also brain dead. Although it is case insensitive, it also changes the case of file names in one of its many misguided attempts to "help" the user.
My preference would be to have the OS keep the filename in whatever form of caps/lowercase that I choose but to treat files in a case-insensitive manner.
~~~~~~~
"You are not remembered for doing what is expected of you." - Atul Chitnis
If you don't believe me, pronounce these 2 words:
polish Polish
See?
A: No. Next question.
This boils down to you're trying to protect people from themselves -- and it won't work, because it can't.
Why assume people are idiots? Why not assume they'll be able to tell the difference between upper and lower case letters? The only reason case equivalency is intuitive is because it's what the system they currently use does it that way.
--
Twoflower
The only shell feature I miss from my Amiga days is being able to type the name of a directory to change to said directory.
Otherwise, your suggestion is nothing more than dumbing-down the filesystem in order to cater to the mental laziness which is dangerously prevalent in the world today.
"Rather than educating people, let us rather cater to their ignorance."
Rather like increasing age limits on drinking and such, rather than encouraging people to grow the fuck up sooner rather than later.
Yes, by all means...let's be as stupid as we can be. Let's all piss in the gene pool.
who can use emacs and worries about case! ;)
DO NOT PANIC
Just like how "less is more". less is not more. If it were more, it would be called "more".
Must be a slow news day.
besides if someone wanted to market a "Polish Polish" the first letter of both words would be capitalized.
Correct me if I'm wrong here, but that would mean that passwords should be case-insensitive, too. This problem is even worse on passwords, where one isn't given a list to choose from and actually has to memorize the case of characters.
Personally, though, I think that's a bad idea. The little piece of BOFH in me says any user who can't remember letter case has a lot of learning to go through before they should be allowed to use an expensive piece of equipment such as a computer, and the case-sensitivity of passwords is an excellent automated way to ensure that this is in fact what happens.
What? You are speaking gibberish. Those aren't English words. But we CAN read it, can't we? Yes, we can notice the difference AND understand what it is supposed to say without weird text.
I bet you spend half the time being rude like this when Aunt Ginny doesn't distinguish "letter.txt" and "Letter.txt". Then, when she asks "Is your email address pd@computer.net or PD@computer.net?" or "do I got to www.CNN.com or www.cnn.com?" you say, "Jeez, it's the same thing, get with it!"
You're the one insulting people's intelligence if you think the problem is that they don't grasp the ability to even distinguish upper- and lowercase.
mark
If you want to make an apple pie from scratch, you must first create the universe. -- Carl Sagan
\000 - Putting a zero byte in a filename will break any program written in C.
'/' - A filename with an embedded slash will be unusable except by programs that walk directory contents very carefully.
white space - Filenames with embedded white space work with most basic system commands, but will break shell scripts that aren't prepared for them (which means most shell scripts).
To a Lisp hacker, XML is S-expressions in drag.
Polish is one of the few words whose pronunciation can depend on the case of the initial letter... :-)
Dunno, might be relevant?
I remap my Caps Lock key as an extre Control key.
Windows doesnt care what the case is 'B' is the same as 'b'. your aunt shouldnt be using unix.
Why should Info.txt and info.txt be treated as different files.
What would be the point of creating two files with same name but with a different case.
A good sig is hard to find - me
actually I'll rephrase that, its folk making assumptions like this (or just having a lazy day) that make maintaining cross-platform code on a different platform to one that the developers had access to a nightmare...
The only Good System is a Sound System
But Google only finds it on one site on the web and theirs contains the same misspelling of 'atheists' as yours. Can you give a reference as to its origin?
You are correct, she isn't going to open up a shell window, but consider this: What if she is using KDE, and had worked on a document in the past called cookbook.txt, then later comes back to work on it again and goes to save as (Because she is confused about the difference between save and save as, because at least with save as she gets a box to type in the name) and she types Cookbook.txt accidentally because that is what she thought the file was called? Well, then later when she goes to open it up again, she becomes confused and doesn't know which one is which, and we all know that will lead to a telephone call to first) the family geek, and second) tech support.
Who is John Galt?
I do however have a hard time to see how aunt Ginny will ever be able to distinguish between her 'Letter.txt', 'LETTER.TXT' and 'letter.txt' files.
.txt'? If she has to name her letters that way, it will require something more sophisticated than just case insensitivity to completely avoid mistakes.
Perhaps in a similar way to how she distinguishes 'Letter.txt' and 'Letter
Cygwin handles filenames in a uppercase method.
look my sig changes!!! nrrt mf oci jdabi.o!!! z..a ir kot gh-ntbk{{{
but filesystems are.
If you make Aunt Ginny's home directory on a FAT formatted partition she wouldn't have these problems. Of course, she would have others but that is a different ask
Now, case sensitivity is generally only an issue at the shell. Surely she is using a GUI, and if so has its file manager been set up to list files case insensitively? It should.
None are more hopelessly enslaved than those who falsely believe they are free. Johann Wolfgang von Goethe.
I agree, why would we want to dumb it down?
It would be less functional not more.
Also notice it is "make it like what I used to have" rather then just suggesting making it case insensitive, seems like it is laziness, not a well thought out reason.
Stuff that matters: no
Massive Discussion: you know it!
Sometimes the most cut-and-dry questions lead to the best discussions
Just get Aunt Ginny a Web TV. She has no business using a real computer. Computers are for the techno-elite, not the masses. Unix should remain confusing and complicated, so those who can use it will continue to appear to be performing magic. ;b
How ya like dat?
On my Mac, if I type "Letter.txt" or "lETTEr.TxT", it is preserved and displayed in this manner. But if I want to find this file and I look for "letter.txt", the computer isn't going to tell me there isn't any.
In this circumstance the OS doesn't have to enter into the equation. Since what you are referring to is the search program, which is distinct from the OS. A search program could easily be programmed to default to being case insensitive (as the search in Windows is) and only discriminate on case when selected by the user.
Or if I try to name one file "letter.txt" and another "letter.TXT", it won't let me put them in the same directory.
Again, this could be addressed in the interface rather than the OS. Remember that with 32 bit Windows systems all files have three names, their long file name, their case sensitive long file name and the DOS (8.3) file name. As far as the OS is concerned you could get by with just one of these, the rest are just interface enhancements (I think that the OS in fact does this ignoring two of the name forms and using the third as the basis for locating files on the physical drive - the actual work of the OS.)
So really the question is could a *nix SHELL be created that is case insensitive, and could *nix file utilities be set to be case insensitive by default. And the answer to both of these questions is YES and YES, and the source code is out there should there be someone with sufficient interest and skill. You wouldn't the OS itself (i.e. the kernel) to be case insensitive as it would only remove capabilities and slow it down.
Work for Change & GET PAID!
...that all you ubergeeks who think that only a foolish mortal would ignore the difference between "Foo.txt" and "foo.txt" didn't notice that you are ignoring that there should be a "ü" instead of a "u" when you write "Übergeek". And that really DOES change the meaning and pronuncation of a word. I bet you also like to use words that make you sound smart like "schadenfreude" and "weltanschauung", but ignore the fact that these words are supposed to be capitalized, as they are German words and are nouns! This is how German works.
Oh, but those things aren't important to you, because you aren't anal language freaks.
Well guess what, some people aren't-- and don't even want to be-- computer freaks!
"As long as she can point and click she can find and open her letter regardless of how its named"
:-(
Only if the program be used opens the same directory that it always saves to (ie My Documents or whatever). Otherwise, "I saved it, where did it go?"
Using any kind of search function is too much for too many
and Republican and republican.
Besides, the greater problem are those folks who type "o", (oh), for zero and "l", (ell), for one.
It would be best to firmly establish consistently in all cases that distinguishable characters are indeed different and not interchangeable.
"Obtuse Anger is that which is greater than Right Anger" - Lewis Carroll
What about non-English languages? What about accented characters? It seems to me that an internationalized version of case-insensitivity could be very complicated and inconsistent.
Mea navis aericumbens anguillis abundat
But when it is represented inconsistently, people will get confused IMO. You're right about how the search program could be case insensitive. But what if someone writes a file and names it "letter.txt", intending to overwrite the original file, which they happened to have named "Letter.txt" before. The file is saved, and now there is "letter.txt" as well as "Letter.txt" in that directory. Maybe the application accounts for this as well. But every single hole to the "real" UNIX filesystem has to be patched up, and the user has to be shielded from ever finding it.
Not a horrible situation (as you said, DOS+Windows works that way), but IMO not the best situation. I think a case-preserving (only) system would be the best, because it is much easier to use for the normal person, and it would mean this case-issue would be consistent system-wide.
And what is lost? It may be difficult to convert everything over, which is not to be ignored. But just talking theoretically, how is this a worse filesystem (eg what is the advantage to having "Aaa.txt" exist in the same directory as "AAA.txt")?
mark
If you want to make an apple pie from scratch, you must first create the universe. -- Carl Sagan
This is part of the big debate about UNIX/Linux empowering the programmers and confusing the others.
The following is a simplified answer:
From what I can tell most users desire only to fit within the computer community and learn one way of getting things done. Debates on subjects that they have no time or patience for will only confuse and anger them. They need to be led. Apple and Microsoft have done well at fulfilling this need. Apple does it in style on premium hardware configurations, and Microsoft approaches that level using cheaper hardware for the masses. Both organizations even have a specific leader with their own vision.
UNIX and Linux are different. They're for individuals who have the time and patience to examine all the ways of getting something done on a computer and decide for themselves. They prefer to pave the way towards their own goals and visions. This also explains why they tend to question and debate methods and sometimes rebuild things from scratch.
While there are exceptions within each case, it can also be stated that one can only focus on specific things in life and not every thing. Who could deny that the scarcity of time is the major cause for ignorance.
Please! Wont someone think of the Aunt Ginnies???
Tongue-tied and twisted, just an earth-bound misfit, I
Learning to fly, Pink Floyd.
People have been sorting text alphabetically since WAY before computers, and sorting it case-insensitively. The only reason "A" and "a" don't sort as the same letter is because when ASCII was designed someone arbitrarily decided to put "A-Z" and "a-z" as they are rather than "interlaced". It makes neither type of sorting "right" or "wrong" but there is a strong precedent for case-insensitive sorting in the "real world". Techies who complain that people should just get used to the way computers do things forget that computers are supposed to be tools to help us do things easier.
I think Ayn Rand would disagree .
Two 'b's, or not two 'b's?
Good judgment comes from experience.
Experience comes from bad judgment.
"B" should be treated the same as "b". It's confusing to the newbies. It's hard to understand that "Letter.txt" and "letter.txt" are two different files, this issue should be taken care of.
..."
Also, if you're a slashdotter like me, you spell pourly. To me, it's really hard to figure out why "leter.txt" doesn't open the file I want, resulting in four hour debuggings. There should be built in spell checking!
And what's with ".txt"? All the letters I write are text, so I'll drop the extention or use something I can understand. Like "to mom". Hmm. Better make that "to mom about new laundry detergents" so I remember what it's about. Argh. Now it's too long. And I certainly can't spell it. Fortunatly, our spell checker will sort it out using intelligent substitutions.
Me: "ram for slashdotted server"
Bash: "rm -fr /
1) keep the file system as it is.
2) Create a new system call fiopen (*) that would open a file in a consistent way, mathing actual case first, and if that failed, various alternatives, probably depending on the locale, and a number of other things. The details to be sorted out in a horrible flame war
3) Use this call in standard GUI components. Applications will follow naturally.
The important thing is to figure out the one right way to handle the case insensitivity correctly and consistently, and possibly leave the old stubborn user a way not to be forced to use it if he (**) so prefers.
Notes:
(*) As in stricmp, etc
(**) Since the English language requires me to choose a gender for an unknown person, I have here chosen the male, as is often common. Normally I consider users female, to remind me to go out of my way to be nice to them. Chauvinist or gentleman - your choice.
In Murphy We Turst
NO!
B != b
There is a very good reason why UNIX is case-sensitive, or at least I can think of a very good reason to keep it case-sensitive.
In biology, writing out a protein name in all uppercase letters indicates the wild-type GENE (i.e., VAC8), while writing it in lowercase letters indicates a mutant of the wild-type gene (i.e., vac8). This is just a specific example. In other words, there are many instances where case matters.
VAC8 is not the same as vac8 (one refers to the wild-type gene, the other to a mutant).
Federal is not the same as federal (one, I believe, refers to specific federal entities, the other to the idea there-of).
Bush is not the same as bush (one is the President, the other is a plant).
Banks is not the same as banks (one is a last name, the other is a financial institution).
Come on. Its not that difficult for people to grasp the concept that a file named dave is not the same as one named DAVE. If certain users really don't like that, then they should disable cap-sensitivity (I'm sure there are options to do such).
There is a lot of talk about making Linux easier to use for the average person. Just as easy -- and an effort which would not require programming skills -- would be to make the average user more Linux-savvy. This is what a large part of the Linux community (known as gurus) does. It means you don't say rtfm to every question, though it is good to try to help people figure things out for themselves, rather than telling them the answer.
social sciences can never use experience to verify their statemen
what is the advantage to having "Aaa.txt" exist in the same directory as "AAA.txt"
Because the file name Aaa.txt is "0x41 0x61 0x61 0x2e 0x74 0x78 0x74" in hexadecimal which is not the same as "0x41 0x41 0x41 0x2e 0x74 0x78 0x74" the hexadecimal equivalent of "AAA.txt".
When you get down to the core operation of the kernel, it shouldn't be burdened with having to do conversions of 0x41 to 0x61. If some one writing an application wants to make that distinction, that's fine (and could easily be incorporated into programming libraries), but it shouldn't be the job of the OS.
Work for Change & GET PAID!
The only people who care about minor, but unimportant differences like this are techies, because they are already accustomed to a certain style, and because it is a religious issue they can discuss till the end of time, like vi/emacs, windows/mac/linux/, gnome/kde, etc...
More importantly, I don't care about how user-friendly the command-line is for someone getting confused about case-sensitivity. Users like that should be strapped to their idiot-interface which we can create on top of Unix as well as on Windows. One good example of such an interface is called Bob.
Even todays computer interfaces (which isn't exactly completely suitable for complete morons (noticed the amount of courses for beginning windows users?)) doesn't require you to type a file-name more than once (at first "save"). After that, it's point and click.
My mother can't even use a mouse, or remember the difference between backspace and delete from each time she uses the computer. But I assure you, case-sensitivity is not an issue. There are many things that are confusing her, but understanding that you should use the same name in the same case is not one of them.
That's not kernel code in the more specialized sense of the word "kernel". Some filesystems implement case insensitive filenames, so it can't be that hard. Case insensitive applications/libraries on top of a case sensitive filesystem means asking for trouble. There would be perfectly valid filesystem states which could only be treated as error condition by the application.
I understand your point about having to convert characters all the time.
But file names are such a critical part of the OS and applications, that it seems dangerous to leave it up to every application to mask it well and consistently with other applications.
Would there be more converting upper and lowercase characters? Yes. But, I think it would be worth it. It seems like nowadays the difference would be negligible, as other OSes which have the less picky filesystem seem to get along just fine.
I think of it like other space- and speed-saving techniques that were extremely valuable years ago, that just aren't worth the inconvenience now.
But I don't claim to be a UNIX expert. It could be more significant in this case.
mark
If you want to make an apple pie from scratch, you must first create the universe. -- Carl Sagan
This is not much of a dogmatic question. The use of case-sensitivity needs some kind of sensual approach according to its use. In fact I highly appreciate case sensitivity a lot. 'B' simply does not equal 'b'. Then again, most of the times I wish all thoses parsing algorithms would be more generous on detecting the meaning of what I typed, not only ingnoring the inproper use of majuscles, but also interpreting my typos. While programming its not that hard to implement some simple greps now and then to add a little fuzziness to the interpretation of human input. Of course this could end in a new source of misunderstandings on the interface side, but it surely would make communication a lot easier in most of the times. (And a lot funnier, too)
Wow. Nearly every reply in this thread is an example of how techies are not like normal people -- and yet don't realize it. Despite your wishes, the non-techie world is not going to accept that "Letter.txt" and "LETTER.TXT" don't refer to the same file. If I received a check made out to "WALLY HARTSHORN", would you say that I cannot cash that check because my name is "Wally Hartshorn"? Would you say that "Ford" is a different company than "FORD"?
Like the original poster, I am a former Amiga user, so I am quite familiar with the experience of a file system that allows mixed-case filenames, but recognizes that they are equivalent. It was far, Far, FAR nice than having to remember whether I named the file "Letter.txt", "LETTER.txt", "LETTER.TXT", or "letter.txt". Like nearly everyone else, I remember words much more readily than I do specific capitalizations.
The sooner UNIX-based computers learn that when a person is looking in a directory for "letter.txt" that "Letter.txt" is probably what they mean, the sooner they (the computers) will understand how to interact with people.
And shouldn't that be the point of it? Not the other way around.
right.... How many GUIs have you designed. Users are not logical at all. After we remove case, they'll ask that 1==l==i==t, then a==e==o==0==D==c==Q, then d==b==p==q then s==z then j==i, then g==q==j, then R==K==h and P==R and E==F and b==S and m==n and u==w==v and w==m. Now we are down to two letters x and the other stuff.
Why screw up a working system and not fix the root cause. The root is that the user is incapable of specifying the file by typing. Duh, use a search panel that handles the rules and presents a big button [IS THIS YOUR FILE STUPID?].
Joe
Joe Batt Solid Design
Hmm... Banks and Banks are different too. Oh my. That can't be good.
Even worse. Banks and banks *are* the same here. That can't be good either.
Would you like to re-design the English language?
A lot of information in language comes from context. In a filesystem, context is, unfortunately, usually lacking. Rather, context is usually provided by the directory/path and the file extension. That is insufficient information to tell the difference between
This discussion isn't properly about capitalization... it is about context (i.e., metadata) for files.
This is my sig. There are many like it but this one is... Oops. Frank, I've got your sig again! Where's mine?
print and Print in a programming language are not the same thing. This is a good thing as it forces the use of camel case by lazy programmers.
I think this is a mute point as "ordinary" users don't use the command line. They point and click. If they point and click the meaning between Letter.txt and letter.txt becomes meaningless.
Tab completion rocks for us lousy typists, 8^)
set complete=enhance
If set to `enhance', completion 1) ignores case and 2) considers periods, hyphens and underscores (`.', `-' and `_') to be word separators and hyphens and underscores to be equivalent.
% ls
somefile-1.ext somefile-2.ext somefile-2.ext.bak
% less s-1
less somefile-1.ext
% less s..
somefile-2.bak
And then there is context sensitive tab completion.
% rpm -qi xf-4
rpm -qi XFree86-4.2.0-8
What about "Aaa.java" vs. "AAA.java"? Java classes are case sensitive, meaning the files must be also. I know I've run into problems before with distinct Java classes that work fine on a UNIX platform (with case sensitive filenames) being brought onto a Windows platform where the two classes can no longer coexist. Sure, Java could be changed, but why should it? For some people who can't understand that "Aaa.java" and "AAA.java" are TWO different file names? I've never run into a person who couldn't understand that, once they've been told.
Just like most of UNIX/Linux's "user unfriendliness", it's mearly a difference from what (most) people are used to in the Windows World(TM). Personally, I know I've had more problems with case insensitivity (because I wanted to have two different files with just different cases) than with case sensitive systems. YMMV.
"Save the whales, feed the hungry, free the mallocs" -- author unknown
... we should assume Aunt Ginnie isn't going to be using the fscking prompt?
simple solution - only ever use lower case in filenames
why have a complete mirroring of th alphabet in another case? th ancient greeks and th romans got along very nicely with just one case - th russians still do today (and perhaps still th greeks?)
i read somewhere that th terms 'upper case' and 'lower case' are printing terms and correspond directly to th cases in which th metal type letters were kept - hence it seems to be an invention of th printing press age or perhaps goes back to th monastic penchant for illuminating certain letters to give them added emphasis
capital letters always have this feel for me - a kind of victorian sensibility of 'This Is A Very Special Word Which You Must Respect And Hold Dear In Your Heart' - a some words are more equal than others kind of approach - very like that irritating practice of capitalising him and he when referring to Certain August Fictionalities in th bible
and yes, to forestall yr reply of capitals increase legibility - i am aware of that argument, however i think th present model of capitalisation at th beginning of a sentence is tired and could do with some creative alternatives
am i the only person who is sick of people trying to make everything "stupid" so everyone can get_it ?
i mean REALLY (or Really , really, ReAlLy , r3a11y etc....) if someone is so damn dense that they cant type ls and find what the are looking for (or god forbid use a file browser : konqueror.) then maybe just maybe they should stay the hell away from our favorite OS ? and keep themselves in the stupid pool (AKA windows land) ?
and really im not sure who is worse the person who thinks that everything should be dumbed down, or the one it needs to be dumbed down for. in all reality most people will get_it they just need a small walkthrough just like they did when they first started using windows.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the the universe." --Albert Einstein
please explain the difference in context of your example. /usr/home/letter.txt and /usr/home/Letter.txt.
For ease of use, only 2 things are needed, programs that remember a history, and the ability to search your HD with an case insensitve search.
The Kruger Dunning explains most post on
I hear lots of praising on slashdot about moving Linux towards unicode. Unfortunately, unicode and case-insensitivity of any kind dont work together well. How would you preserve the case of arabic letter, or how do you choose what chinese ideographs are accounted as the same letter? Case-insensitivity is a concept coming from indoeuropean languages, butit is not universal.
Case insensitivity required globbing in the kernel. UNIX has historically done all globbing in user space, and passed only literal values to the kernel.
Case folding on storage is realtively easy (Just Do It(tm)), but case folding on lookup for system calls that take explicit names (open, stat, creat, rename, unlink, etc.) requires that the literal value passed match multiple potential values as soted in a directory.
Doing globbing in the kernel is actually more efficient in a lot of ways (consider that when doing an "ls -c", rather than pushing the whole directory contents over the user/kernel boundary via the getdirentries/getdents system calls, you would push only names which matched the expression, drastically reducing the protection domain crossing overhead).
However, POSIX practically *demands* that you not do your globbing in the kernel.
Apple gets around this by force-folding. Basically, it is case sensitive on storage, and case insensitive on lookup (Windows outside the legacy 8.3 namespace is the same). The problem with this, as you would know, if you had ever written internationalized FS code on Windows to be installe dunder the IFSMgr, is that there is a requirement for "active character set case folding tables", and these are locale specific (e.g. what do you do with the Schlossen if you are in Germany vs. France, and how do you handle Hangul, Kanji, etc.).
Basically, without destorying certain standards mandated behaviour, it's not possible. Most likely, you will not find a programmer willing to give up POSIX compliance or internationalization in order to change this behaviour.
-- Terry
The reason many carbon applications have trouble with non HFS file-systems is probably that they use Resource Manager functions that have been deprecated. The system emulates the resource forks, but its internal are very different.
As stated before, capitalization is important for proper language form. For example, not to get into religious debates, but the difference between god and God ;)
Since when will your Aunt Ginny be using a command-line interface? Keep her in a nice GUI where she belongs, and when she opens her documents there'll be a nice list of them that she can click on to get the right one. Likewise when she saves she'll just use "File->Save" and it'll preserve the name.
Two words: Unicode and upcase
[an error occurred while processing this directive]
B - Bytes
b - Bits
So, yes they should be different.
When you get down to the core operation of the kernel, it shouldn't be burdened with having to do conversions
hm. i argue it should. actually, not the OS, perhaps just the shell. i'm not sure where this should happen. but i doubt it's at all hard, eh.
Now do you feel cooler or like you "won" the conversation?
If you want to make an apple pie from scratch, you must first create the universe. -- Carl Sagan
I feel like I won because I won. You lost when you typed out the first capital 'H' in the word Hypocracy. The rest was just yelling about it. Think of it as a corollary to Godwin's law.
If tits were wings it'd be flying around.
What I was trying to say by putting "win" in quotes was that there is no winning or losing in a conversation.
If you want to make an apple pie from scratch, you must first create the universe. -- Carl Sagan
Loser in competion: "Winning isn't everything"
If tits were wings it'd be flying around.
People have the knowledge to understand it. I also pass it off "it's just like a password" your password BLUEBIRD23 isn't the same as your bluebird23. It's not beyond common users to understand case.
Additionally you can just display the files in a view, and they will quickly learn that case matters.
Any one used Mac OS X recently? I think linux should borrow some apple solutions, as apple tend to know how to make things for the common user, while the linux crowd seems to have proved the opposite. Everyone would like linux to replace windows, but everyone wants to make it bigger and better, and not actually come back down to earth and solve the basic issues.
really pretty much is an english-"o" in sound if it is accented, more like an english-"a" if not. i don't remember the formal name, it's been about five years since i had russian in college...
Is el nino the same as El Nino? Is the internet the same as the Internet. You're assumption is false -- the case really DOES convey essential information in most languages.
"Freedom means freedom for everybody" -- Dick Cheney
Aunt Ginny, having had a proper education that stressed correct spelling and clear written expression, will probably have much less of a problem with upper/lower case usage than do many American kids who attended public schools that have lowered their standards so anyone can pass, whether or not they have learned anything!
More people who think it's actually acceptable to have "python" and "PYTHON" subdirectories in the same dir.
Two words which differ only in case are pronounced exactly the same way, at least in English (but also in most other language which have a concept of letter case). That's the only real determining factor. Grammar is meaningless when dealing with filenames, so capital vs. lowercase loses any real value. Thus, case-insensitive should be taken to rule the day, bec ause it more accurately reflects the way people think about filenames.
Or, to put it another way, what is the difference between "Mary had a little lamb" and "mary had a little lamb"? Most people would say there is none, and indeed, given the massive number of people who don't use capitals in their e-mails anymore, there's some credence to that claim. If people don't care about whether things are capital or lowercase on a computer, then why should the computer itself care either?
Just because whoever developed ASCII may not have thought about how it would affect sort order, does not mean we have to stick to straight ASCII sorting in all cases.
This does not necessarily mean shells should be changed. If you want a "human-friendly" sort, just "ls -l | sort -df". But, I think it's a good idea for graphical file browsers to have the option to sort different ways.
Some filesystems implement case insensitive filenames, so it can't be that hard.
Quick! You write efficient filesystem-level code to handle upcasing Unicode filenames for collation on non-Latin writing systems. It'd be easy to map [A-Z] to [a-z], but what about German, where a lowercase ß (1 char) becomes uppercase SS (2 chars)? What about Turkish, where dotted i upcases to dotted I, and dotless I downcases to dotless i? What about Greek, Cyrillic, Armenian, Georgian, and other writing systems that have upper- and lowercase letters? Can you really handle localized Unicode processing in the kernel?
Will I retire or break 10K?
This has been handled for ages in the standard C library. If you want a comparison to be case sensitive, you call strcmp(). If you want case insensitivity, you call strcasecmp().
Similar things exist in most higher-level programming languages. For example, with perl pattern matches, you add 'i' to the list of flags, and a case-insensitive compare is done. This works with locales in all recent versions of perl. And so on for other languages.
This is an open invitation to implementers. It's very easy to to case-insensitive compares. If you are aiming your software at a user population that can't handle case distinctions, the tools are there and you have no excuse.
Unix and its clones don't impose any policy at all on user-level software, and they supply the tools to handle case sensitivity. Use them and stop complaining.
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
what's an 8-bit zero terminated string exactly?
For the record, an 8-bit NUL-terminated string is a sequence of octets, containing a 0x00 as the final octet and no other instance of 0x00.
A 16-bit NUL-terminated string is a sequence of 16-bit integers, containing a 0x0000 as the final entry and no other instance of 0x0000.
A 32-bit NUL-terminated string is a sequence of 32-bit integers, containing a 0x00000000 as the final entry and no other instance of 0x00000000.
Will I retire or break 10K?
Poor Granny's fingers get tired too. Better limit us to 8.3 filenames
That's why a good GUI should include tab completion or something similar in its file picker control.
Granny also has trouble with her password. Sometimes she has the capslock key on and can't login. Better make all passwords case insensitive
No, better have the password dialog box wait for caps lock to be turned off.
Will I retire or break 10K?
I'm not going to waste a lot of time on the reply.
What, what and WhAt are all different, it's that simple. I.T. is different from it.
It's a Simple matter of education.
Unfortunately there is only a certain level that things can be dumbed down to... or maybe only a certain level that they should be dumbed down to.
Capitalization punctuation and spelling, are the kinds of things that cannot be dumb'ed out of existance beyond the use of GUI's.
Two different languages can have the same accented characters, but different rules about case conversion.
And conceivably, changing the locale can cause files whose names had not clashed before to begin to clash. Thus, the locale for files in a particular folder must be stored as an attribute of that folder.
Will I retire or break 10K?
Exactly which Linux file system are you refering to?
Grandparent referred to ext2fs, ext3fs, and reiserfs, which are thought of the "Linux filesystems" because most GNU/Linux distributions default to creating one of those filesystems for / during installation.
Will I retire or break 10K?
It is my understanding that case makes a huge difference for other character sets. I'm afraid that I have no evidence to point at, but I've been told this by several people, so it MUST be true.
If you depend on case to differentiate your class names, I hope I never have to maintain your code. If there's a good reason to *ever* do this, please enlighten me.
Game... blouses.
perl refers to the executable, while Perl refers to the religion^H^H^H^H^H^H^H^H programming language, which in this case, is a proper noun.
By the same token, it is proper to write "He speaks the english language because he is English." Yes, case makes a difference.
The question should be restated: does anyone care?
Give me my freedom, and I'll take care of my own security, thank you.
...when I read these comments, the quote at the bottom of the page was:
... Although I don't know WHY!!"
"All of a sudden, I want to THROW OVER my promising ACTING CAREER, grow a LONG BLACK BEARD and wear a BASEBALL HAT!!
Okay, translating "r" to "R" might not be that big of a task - but how would you translate un-translatable characters? Like the German "ß"? There isn't a (real) upper-case representation; "upper-case" "ß" might be represented as "SS", but you lose information in that process, because not every incarnation of "SS" in a word can be translated back to "ß".
How to treat this?
Alexander Skwar -- Homepage: http://www.digitalprojects.com | http://www.iso-top.de iso-top.de - Die
Funny you should mention the Amiga. It's file system WAS cas sensitive in "kernel space" (not really a valid idea on the Amiga, seeing as kernel and user space were one and the same) - the AmigaDOS drivers were all case-sensitive. However, only programmers usually encountered this (try opening a shared library on the amiga - you have to get the case right!) - all the (notionally) userspace tools used case-insensitive matching by default (some filesystems could be toggled to case-sensitive userpsace, if you were masochistic/interoperating with UNIX)
It's just the shell tools weren't. At its core, the AmigaDOS was case-sensitive, with a translation layer to case-insenstive. That's how the amiga was "case-preserving case-insensitive" - if you saved a file as "fOObAR.tXT", it's name was "fOObAR.tXT", though you could get it as "foobar.txt". Note that this is similar to "modern" (shudder) Windows (though the Amiga was muich less kludgy about it - you could pass a flag to (Amiga) Mount to toggle case-sensitivity on/off on a per-filesystem basis!)