Managing Classic Mac OS Resources in ResEdit
eclecticlight.co
eclecticlight.co
Don’t forget that other “power user” feature: MacsBug. I used it to disassemble and figure out how Finder worked. You could do some amazing stuff with MacsBug. Someone wrote a book on it. I used to have that book, but that was a long time ago.
Basically, you could drop a stock Mac into MacsBug, and figure out how the running app was working.
We'd debug and insert breakpoints by directly overwriting the program code in RAM.
Even less friendly than MacsBug.
I hear it was insanely powerful, though.
I wouldn't know. I could never figure out how to use it.
[0] https://www.macintoshrepository.org/34935-jasik-s-debugger-n...
It was always a bit disappointing to come across the odd program (usually cross platform stuff) that had little or nothing that could be edited in ResEdit.
http://bitsavers.org/pdf/apple/mac/Servant_A_New_Shell_for_t...
I loved ResEdit. I basically lived there.
That reminds me of Windows' NTFS "alternate data streams", which also got a lot of use by malware in an attempt to disguise its existence, and as a way to bypass access controls on web servers.
IMHO these "hidden features" are at the wrong level of abstraction and cause a lot of problems, information interchange among others. A file should be a single stream of bytes with a name. If you need another stream of bytes, create another file. If you need to group them together, that's what directories are for.
Windows has a resource format too --- it's just part of the program binary. There are likewise resource editors, one of which is also called ResEdit.
While I understand the appeal of this, the world would have been a lot simpler for a lot of stuff if (for example) every text file had tagged its encoding.
I wonder about if we could have moved forward as society a touch faster if Unix wasn't "all byte streams", and had a touch of metadata.
I feel like HTTP and friends shows we can just organically end up with a certain kind of structure that "works" (and at one point you have a spec, and then you can yell at programs that don't follow the spec)
We would've "moved forward" faster into authoritarian proprietary walled-garden dystopia, yes.
I think it does a great disservice to the Macintosh Resource Manager to focus on its implementation using a dual fork file system. What it allowed was a nice high-level interface to work with small pieces of data that hid away a lot of memory and disk management from the programmer - you just ask for a type and ID, and if it's in memory you get it right away, else it gets fetched, including asking the user to swap in the right floppy if they'd swapped it in. Afair it even purges things out of memory when they were no longer needed with no action on the programmers part - this is a big deal in 128k RAM.
There were some bad things about the implementation: it's easy to corrupt the resources of a file, for instance, and there's a fairly small limit to the size and number of resources. But having a way to access structured data that's a core part of the platform can be a great thing. If anything, the Mac didn't take this far enough.
Yes, on Windows it is part of the PE file, which is based on UNIX System V's COFF. These files have a list of sections used to distinguish between code, read only static data, read/write static data, optional debugging information, etc. The resources are just another section with the data in a particular format (probably not dissimilar in format to the Mac resource fork) and Windows has APIs to conveniently access the data.
But one thing this can't do is attach resources to arbitrary file formats. Thank you, that's a use case I was unaware of.
Very nice flashback. Spent a lot of time making numeral only fonts for the clock with fontographer, old (or younger) me was a little scared of ResEdit's powers
And there was a kind of hierarchy as I recall — where you could install a custom WDEF/CDEF/MDEF at the System level and it would be loaded/executed for all apps.
With that line of reasoning though, as you're saying, it was not the resources themselves that were a problem but the way the OS naively loaded and ran them.
Sandboxes were for kids.
We definitely lived in a trusting time ... where the person computer really was for the one individual.
Loved Metrowerks CodeWarrior though.
I’m not old, you’re old! =P
And that’s not to mention applications. It used to be common for GUI applications to be scriptable and to support plugins!
Made keyboard loggers especially easy.
No one was worried about key logging.