Friday, June 19, 2009

Re: [BLUG] case insensitivity and more (was: Mac owner)

On Thu, Jun 18, 2009 at 10:49:38PM -0500, Scott Blaydes wrote:
> Dave Cooley wrote:
> > In some ways, Apple screwed up BSD. Things aren't always where they
> > should be and don't always behave how you expect them to behave (for the
> > BSD user, to an extent; let alone for a Linux user like me).

The only way I can contest this is to say: Pretty much every commercial
BSD-derived Unix-like system has behavior quirks unique to that system.
Did Apple screw it up more than Sun? More than DEC? (etc)?

> I wanted to like OSX really badly. I have Apple fanboy friends who had
> been telling me how great it is. You could even consider me a NeXT
> fanboy, weeping at memories of my mono-slab. I got a used G4 at a
> university auction down here in Texas, so I bought a retail version of
> 10.3 for it. Everything was going well until I got to the command line.
> The damn thing wasn't case sensitive. In my mind file, File, and FiLe
> are all referring to different things, but not in OSX. This is one
> bastardization of FreeBSD (that Apple used to model OSX/Darwin off of)
> that I can not accept. Once I found this problem I couldn't take the OS
> seriously anymore, it was just a toy.

I checked, as I thought I'd seen an option about it...
* http://www.macfixit.com/staticpages/index.php?page=2003111009264885
* http://support.apple.com/kb/TA21400?viewlocale=en_US

Mac OS X Server as of 10.3 had the capacity to have case-sensitive
files. Now, journalling started out in Mac OS X Server 10.2, but didn't
make it to the desktop until 10.3, so it is possible that the latest
versions of Mac OS X Desktop now have the option to be case sensitive.

It was no more than a toy OS for years. The case insensitivity thing is
basically the last remnant from those times.

You have to take some of it within the context of where they're coming
from. They only recently got filetypes-by-extension. Previously
filetypes were mystical things embedded within the file. You could name
a JPEG file "soup.txt" and when you clicked on it, it would open the
graphics program that created it.

So now you're saying that a .JPEG and a .jpeg and a .Jpeg file are
all different file types? This is a *big* jump from the "what's an
extension?" view-point they still had a few years back.

I mean, when I moved to Linux I thought it was odd that .c were C
files and .C were C++ files. I adjusted to it quickly, but then I was
expecting things to be different. (How many people on this list even
know about this?)


As an aside, I checked mke2fs to see if (perchance) ext2/3 (I'm
using Ubuntu 8.04 LTS on this machine, so no ext4) had support for
case-insensitive filenames. I didn't really think it would be the case.
This is why NTFS has that goofy case-conversion table embedded in the
filesystem, after all.

It is hard to do it right -- this is why XML is case sensitive, but SGML
was not. I'm serious about it being hard, too. For instance, in German
the names Eßen and ESSEN are the same if you ignore the case, and if
you capitalize Eßen in to EßEN then it is exactly like capitalizing
my name as BLAck. The ß letter is exclusively lower case, and to
capitalize it it becomes two S's. Google is totally case insensitive,
allowing different letters in a word to have different capitalizations,
so a search for eßen returns words that match the regular expression
[eE](ß|[sS][sS])[eE][nN], which is what you would expect with properly
functioning case insensitivity.

Anyway, I found that mke2fs has a "-T fs-type" option which allows
for predefined "optimal filesystem parameters" specified in
/etc/mke2fs.conf, the defaults which include "small, floppy, news,
largefile, and largefile4."

What struck me was the "floppy" option. ext2fs historically was a
horrible option for floppies due to the filesystem over-head. Folks
would recommend Minix, VFAT or Tar over ext2. Of course, this is sort of
a moot issue when pretty much no one has (or uses) floppies anymore. It
was just something that struck me.

> Sometimes I feel like a Unix grey beard.

"Here's a dime. Go buy yourself a real computer."

Ultimately, every OS sucks. It is the acceptance of this truth that
allows me to get through my day.

People who think in terms of bytes see case insensitivity as silly.
People who think in terms of letters, however, see it as only logical. I
fully imagine a case-insensitive home directory to crop up on the list
of GNOME requirements eventually. It's an ease of use thing.

The easiest way for case insensitivity to happen quickly is full support
of JFS as the root partition from the pretty graphical installers. Check
mkfs.jfs and the -O option.

I could also see a fairly simple configuration option
using FUSE. ("case insensitive on purpose file system",
http://freshmeat.net/projects/ciopfs/ ) Of course, with GNOME I'd then
expect this to become the default, and a GCONF setting required to
prevent logging in from overlaying case-insensitivity on to your home
directory.

Cheers,

--
Steven Black <blacks@indiana.edu> / KeyID: 8596FA8E
Fingerprint: 108C 089C EFA4 832C BF07 78C2 DE71 5433 8596 FA8E

No comments: