|Home » Learning Curve » Developers Workshop
The fanboys inside Cupertino never cease to amuse. Especially when they're trying to convince you there's logic to their file system and way of doing business in general. So whilst the fanboys outside Cupertino continue to discuss earth shattering matters such as the translucent bar let's take a look at the latest attempt to disguise the duck.
A new feature - a novelty - with Leopard is that inodes are never reused. Anyone with a halfway decent file manager would see this immediately. [No one else has evidently pointed this out yet. Wonder what that says about the erudition of the 'Mac community' and the so called developers therein.]
Another way of stating the above [the first part that is] is that files to be saved are never opened for writing. Not in the usual way that is. For normally to open a file for writing you have to have WRITE perms on the file.
This of course has never bothered Apple who don't understand file systems anyway. ['File system? You mean the Finder?']
Because the idea is 'IF THE FILE IS NOT MARKED WRITABLE YOU CAN'T WRITE TO IT'. That's the basic idea. It's the idea that's held the world of computing together for over half a century.
Until April Fools 1976 that is.
And since then - at least in obscure corners of the computer science world - there are file systems that don't merge operations but obliterate files before they're operated on; we have file systems that fucking delete source files before they're moved to new volumes INCURRING MASSIVE DATA LOSS; and so on.
Note that this is not 'works as designed' because none of this was a design decision. It's more like 'works a bit and that's the best we can do'.
And there's nothing wrong with saying 'hey sorry dude but that's the best I can do'. But Apple don't say that. They don't really comment at all. Instead they give you their HFS.
Spider in the Web
This is not to say everything would be OK if ZFS were the default system. For Apple have ways of getting around everything. More than changing their file system (which is truly long overdue) they have to change their thinking. Or else import people who can do their thinking for them.
But in Cocoa there's a spider controlling all file operations. It's called NSDocumentController. Its code goes all over the place of course; and it's been rewired from its pristine elegant original to accommodate batshit insane beige box stuff; but it's still there doing its work and trying to pretend all is right with the world.
It's the dude what tells you files have moved even as you're editing them. It can do this because HFS assumes there's only one file name for any CNID/inode [which there is not - good morning Cupertino].
But it's also the dude what today on Leopard issues the following deliberately misleading nonsense.
Note the default button is 'go back' rather than 'proceed' which feels unnatural but in this unnatural situation is recommended.
But what does this suddenly batshit insane NSDocumentController going on about? Locked? What's a 'locked' file? And most importantly: is he going to try to override system security settings?
The hilarity of this - the hypocrisy of this - is that HE'S GOING TO DO THAT ANYWAY. He doesn't (attempt to) open your file for writing - he just zaps it the fuck outta there. And he can do that at any time unless the directory is locked for writing.
So no, there's no authentication dialog about to pop up.
And you can do this on any system at any time - witness the confusion the OS vendor have had over sticklers such as input managers and startup items.
And YES you can normally remove a directory and all of its subdirectories and the subdirectories to the subdirectories and then create an ordinary file in its place with the same name but you normally have to GO OUT OF YOUR WAY to do something so batshit insane. Except on Apple systems where the engineers will tell you 'THIS WORKS AS DESIGNED' because 'AFTER ALL DUDE YOU WERE ASKED IF YOU WANTED TO DESTROY YOUR FILE SYSTEM!'
But that's not the point. Or maybe it is.
Apple today have an amazing operating system. In Leopard. Isn't it time their file system - and their file system thinking - caught the fuck up?