I wrote something new! It’s a UI design history essay about Mac’s Control Panel, and it uses emulation in some… maybe new and maybe interesting ways?
I wrote something new! It’s a UI design history essay about Mac’s Control Panel, and it uses emulation in some… maybe new and maybe interesting ways?
When I was working on GUIdebook all those decades ago, I was dreaming of being able to tell a) better stories and b) use better technology to tell them. This is me finally getting a chance to try both!
I collaborated on this with @mihaip, whose Infinite Mac powers it and was a genuine inspiration. It was fun (although a little challenging) to integrate emulators into the story in this way, and I’m thankful for Mihai’s patience and code changes to make this possible:
And those changes are now available for anyone who wants, too. Mihai added a bunch of stuff from pausing to screen updates, and he’s writing a separate blog post about it! I will link to it here and in the piece once it’s done.
I hope you enjoy this! I would also love a walkthrough like this for webOS; and iOS 6 transitioning to iOS 7; and Xerox Alto/Star, and comparing early Mac OS to Lisa, Xerox, plus Windows 1; and NeXTStep becoming Mac OS X, and…
This is @mihaip’s post with some more technical details – and some further twists like using an LLM to control an old computer!
https://blog.persistent.info/2025/07/infinite-mac-embedding.html
This is your permission to seek out someone whose work you admire and email them with “A collab idea?” ha
Also: It was so much fun to learn new old things. I never actually had any 1984–2004 Macs myself, ever, but in the process of writing I ended up using ResEdit, hacking some CDEVs, resurrecting Mac OS 8.5 beta bits, and generally going deep on this platform I only admired from afar in Poland. (I even emulated Lisa on my machine for the first time!)
@mwichary Well I admire your work! 😁 And I'm working on something very similar, with a focus on the evolution of the classic Mac color picker. infinite-mac has greatly accelerated my research, but I opted to reimplement QuickDraw and some other code in JS; tight integration between emulators and the web stack is a great idea, and for you to get it to work is a stellar achievement!
If you have the time and interest, can we chat about our two projects and technical storycraft in general? 📖 Email, Fediverse, Bluesky DM, video chat, whatever would work for you can work for me.
HOLY FREAKING MOLY. I have no words but "GAH!" right now. And maybe, "INCREDIBLE!"
I'm thinking, "There's no way there's an entire virtual mac inside this webpage. There is no freaking way. WAAAAAAYYYYYYYYYYYYYYYYYYYYYY!!!!!!!!!!!!!!!!!!!!"
SO, since you're a designer with a view towards the history of UI design, I must ask you this...
Does, like, SO much of modern UI design just fundamentally suck right now, or am I just a hopeless digital curmudgeon? I'm talking about the terrible iPad-style shoestring scrollbars, I'm talking about active and inactive title bars being nearly indistinguishable from each other, I'm talking #6a6a6a text over #9a9a9a backgrounds (or something like that), that kind of mess. I'm talking about the unfoundedly cavalier attitudes like "You don't need a system tray," and "You don't need a minimize button. You're using it wrong."
Because if it's the latter (I'm just a curmudgeon), meh, I guess we all have a role to play in this crazy world. But knowing it to be the former (stuff just sucks a lot more now) would be at least a little gratifying. XD
@mwichary Is there a button for resetting the entire article? I missed noticing what I did to trigger one of the easter eggs and wanted to find it again, so I did it by deleting the cookies.
(P.S. There's a typo in the '87 section, "(Apple //outsorced// this feature to a different company)"
@tiikerikani Thanks for the typo report!
The debug thing to reset is
window.localStorage['globalTasksCompleted'] = null
and then reload
or, you know, incognito mode. 😁
@mwichary This is a goddamned tour de force. Congratulations. Incredible.
I quibble with one thing: "outside of the title bar, there is absolutely no text present here.” But do you mean words? Numbers are text in my thinking! As opposed to only symbolic elements.
@mwichary (editors never stop poking)
I think you’ve invented a new kind of storytelling. Not just embedding the emulator, which is cool and I gather not unique, but the narrative you wrap around it. I love something that can only be told in one medium—to duplicate this article, you can't do anything but create a machine or environment capable of emulation.
@mwichary It seems that emulation psrt is not really working on iPadOS 26 Safari - not sure if that's because of iPad or iOS 26 beta 🤔
Maybe it's worth adding some screenshot-fallback if it's even possible to recognize that emulator haven't started?
@kkolakowski Thanks! I think up until Mac OS 8.5 it worked on my iPad, but the last three indeed killed mobile Safari.
iPad should actually default to videos, not emulators – has that not happened for you?
(You can also individually toggle to a video or emulator if you click on Details.)
@mwichary Yes, sorry for that too eager post. I started poking around it later and I think it's mostly because of my weak network right now (I'm in a train)
I'll double check later with more stable internet 😉
Control Panel 1.0 - <p>Pour célébrer la naissance de mon enfant, j'ai brodé le panneau de contrôle du premier Macintosh.</p> <p align="center"><img src="https://jena.pink/bl-content/uploads/pages/38a99ac981b9bcddf6a73848fcc0ed97/IMG_5479.jpeg" alt="Broderie au point de croix, avec une résolution de 28dpi, représentant le panneau de contrôle Macintosh" width="75%"></p> <p>À partir d'une capture d'écran, j'ai créé le modèle à broder, en mettant son nom dans la barre de titre, sa date et son poids de naissance. J'ai mis plusieurs mois à le réaliser, et il est né quelques semaines avant que j'arrive à le terminer, ce qui tombe bien parce que je devait de toute façon attendre la naissance pour les informations de dernière minute.</p> <p>Je suis impatiente de partager un jour avec lui l'origine de cette œuvre de Susan Kare.</p> <p>Vous pouvez jouer avec l'original (dans une émulation) dans ce <a href="https://aresluna.org/frame-of-preference/">très bel article de Marcin Wichary</a>.</p> https://jena.pink/control-panel #broderie #famille #Macintosh
Simply brilliant.
The final three emulations didn't work for me in Firefox (i.e. Gecko). Interesting failure modes: (1) mouse pointer in the emulated screen moved far less than it should have with trackpad movement, as if there were some multiplier at work. The pointer would move 1/5 of the simulated screen by the time the pointer of the enclosing system moved out of the emulation. (2) When I did manage to get the in-emu pointer to the right place and click, after the popup warning that the emulation now controlled the mouse, no pointer was visible in the emu (or anywhere else) until ESC.
@mwichary Gosh, like *checks* yep, everyone has noted — this is amazing. Inline emulation is mad scientist level. Kudos!
One fun note, Stickies was also third party. Here’s the author’s blog post: https://jens.mooseyard.com/1997/04/13/they-made-me-an-offer-i-couldnt-refuse/
Complete with classic System 7 easter egg 😉
@mwichary Question:
> The two keyboard toggles make sense. Even in the early 1980s, there were keyboards – terminals or electric typewriters – whose repeating style you might have gotten used to. We already knew that once something lodges itself in your fingertips, it’s really hard to override it, even consciously, so it was clever to add customization to work around that.
The two keyboard sliders? (hare and tortoise and the one below it) don't actually make any sense to me. What are they for?
@gregalotl I am more familiar with Alto than Star, so it’s hard for me to answer easily.
My bet is that it’s similar to trying to answer the question: was iPhone a smartphone, or was iPhone *the* smartphone?