One more tonight- a coaster with the ResEdit icon! I did a few old Mac icon coasters, this was the only one I could find again. Resource forks were the best thing ever invented. Plus you could use the Resource Manager as a database*! #NerdStitch 3/10
* Do not use the Resource Manager as a database.
>Resource forks were the best thing ever invented.
This comes out of the mouths of people who never had to deal with them from ProDOS or via FTP. ;o)
I think a lot of opportunity was left in the 1990s with the demise of forked files. They came about too late in computing to show everyone why they were a good idea, yet were very much ahead of their time. (also creator info!)
In exchange for file interoperability, we were cursed with file extensions. >:o/
@yakkoj @Gmatom There really was a divide in the philosophy of richly defined filesystems with a centrally-controlled truth versus a free-for-all
Apple in fact had multiple OSs and filesystems in the 1980s with tables of creator codes and file types, and plenty of “reserved” spaces for the future. @siracusa might like to talk about that one day … but ProDOS had its own set of 4-letter codes separate to Macintosh HFS I think — anything was better than the original Apple DOS 3.3 that had a single character, like “B” for binary (an “app”) and “T” for text and “A” for AppleSoft BASIC code. I forget if graphics (full screen pages) had one.
By the time the 1990s ended and Windows dominated, Unix beckoned, and interoperability was its own burden, it was twice bitten thrice shy, and I think OS X took a more pragmatic approach
Unix itself uses “file”, an app that takes a brute-force approach to determine contents via a pattern-matching database — and yet, never fully leveraged it
@yakkoj @Gmatom @siracusa Things came a bit full circle with the rise of the “internet operating system”, where a file is now genuinely expected to be able to brandish its provenance —
You really have to be able to know (and trust) where a file came from when it sits in your Downloads folder, and even moves beyond. There’s probably a chain of trust that ought to go beyond that to the files an installer proliferates, but instead we generally see network-reliant mechanisms to verify checksums, look for (ever-changing) malicious signatures, and in a return to the original ambitions, certify that a developer is a developer.
It’s surprising how very little can be done by a program file anonymously now, and it feels like signatures all the way down. OS X and Windows started off as a free-for-all, but our 1980s forefathers would be aghast at how hamstrung a file’s “permissions” are nowadays.
Similarly, RIP the “chmod” 777 permissions of Unix lore, none of which wield their power anymore. Especially in iOS.
@whophd @Gmatom @siracusa ProDOS in particular had a 1-byte TYPE code plus a 2-byte aux type that was assigned to files. It was very nice, and I think there's a central organization even today that handles the aux type assignments.
DOS 3.x had at first, T)ext, I)NTBASIC, A)pplesoft and Binary. Some weisenheimer at Apple thought it'd be a great idea to add R)elocatable, "S" type, and an additional "A" and "B" type. :o(
At least with file(1) I was able to write patterns to identify specifics
@Gmatom ROFL! Thanks for the kind trolling ! I still reflexively twitched for a split-second when you wrote “you could use the Resource Manager as a database” ... so many times I had to tell people not to do that.
"Well, if you don’t mind crashing if you ever hit 2727 records, sure…”
@Gmatom I *love* this!!! Don’t suppose you still have the pattern for this?
… or did you just grab the icon resource from ResEdit itself, and make an educated guess as to thread colours?
@Gmatom @billgoats * Do use it as a resource database.
Some of my favourite Macintosh games exploited resources to build overlay-based plugins. Escape Velocity, for example. Some PICT with a SHiP resource to describe them… MiSN mission descriptions… (FourCC codes here for illustrative purposes.)
Want to replace an existing SHiP? Define a new one with the same numeric ID in a plugin. (A plugin manager could be used to automatically resolve conflicts, too.)
ResEdit structure templates, even!