Doug Doug

Electron apps and Apple Silicon

I’ve been looking into some new (to me) note taking apps, Craft and Obsidian, to compare to my go-to for the past few years, Bear. And one of the perceived “negatives” of Obsidian is that it is based on the Electron framework. Some make the argument that Electron apps are bloated and slow compared to native apps like Bear and Craft.

What I’ve been wondering is how much, if any, perceivable effect these performance and system resources issues actually have when running on Apple silicon M1 based systems. The M1 has real-world single-threaded performance that beats out many best-in-class x86 processors. There’s also analysis that shows how the overall design of the M1 system-on-a-chip benefits many common operations such as those for reference counting and JavaScript interpretation. So, perhaps these make the performance difference moot when looking at the specific use case of UI frameworks. UI code tends to be single threaded, so it would really benefit from a CPU design that was able to get data out of RAM, processed, and back into RAM with low latency, while doing all the book keeping (reference counting or garbage collection) that modern language runtimes require.

Anecdotally, performing basic UI tasks on my M1 MacBook Pro feels so much more responsive and fast than on other Apple laptops with technically higher spec Intel chips. So, perhaps Electron apps are fast enough. That’d just leave the native vs cross-platform UI consideration, which is a whole other can of worms.

Read More
Doug Doug

Photos from hikes around Ohio’s Hocking Hills.

IMG_0848.jpeg
IMG_0824.jpeg
IMG_0825.jpeg
IMG_0862.jpeg
IMG_0870.jpeg
IMG_0820.jpeg
Read More
Doug Doug

Emulating Mac OS X Server 1.2

Before Mac OS X 10.0 and it’s Developer Preview, the first public appearance of Mac OS X was Server 1.0, codename Rhapsody, which was released in March 1999.

This is the first time we can see the descendent of the NeXTSTEP operating system dressed up in a Mac-like theme. I was able to get Server 1.2 running in QEMU.

Screen Shot 2021-04-02 at 2.10.54 PM.png

Instead of the logo and progress bar, our boot screen is a text console.

Screen Shot 2021-04-02 at 2.46.27 PM.png

I suppose this would be the first piece of software that allows you to log in to your Mac as root.

Screen Shot 2021-04-02 at 3.09.34 PM.png

Instead of Finder we have Workspace Manager.

Screen Shot 2021-04-02 at 3.12.07 PM.png
Screen Shot 2021-04-02 at 3.14.40 PM.png
Screen Shot 2021-04-02 at 3.28.05 PM.png

The Server 1.x releases didn’t yet have the Carbon framework, so only newly written apps using Yellow Box (which became Cocoa) were supported. OmniWeb was one of the few apps that could run in this environment.

Screen Shot 2021-04-02 at 3.13.34 PM.png

The Apache web server is included out of the box.

Screen Shot 2021-04-02 at 8.24.58 PM.png

Check out how this was marketed on Apple’s website in 1999. Some of the notable features are the Mach BSD kernel, POSIX compatible APIs, and 100% pure Java. Technologies to enable web serving were also emphasized, such as Apache, QuickTime Streaming, and WebObjects.

Let’s not forget, a virtualized copy of Mac OS 8 is present.

Screen Shot 2021-04-10 at 5.04.42 PM.png
Screen Shot 2021-04-10 at 5.41.51 PM.png

There you have it, Mac OS X Server 1.2! The 1.0 release debuted at a price of $499 and was met with a poor reception. Even in 1999, I can’t imagine that there was much of a market willing to pay this price to host websites and run Unix network applications on Apple hardware. Despite how impractical it might have been in its time, it is an interesting piece of history showing a critical step of the evolution of NeXTSTEP into the Mac OS X we are familiar with today.

Read More