Doug Doug

internet commons and the open web

DHH in his Hey World blog:

When I started working with the internet in 1995, it truly did feel like a commons. You were free to put up your own site, on your own server, whether your purpose was business, art, or simply being there. […] The time when the internet had enough mainstream interest and presence to be a big factor for a lot of people, but before it had been majorly enclosed by Big Tech and the dominant platforms.

[…]

This is why we need to keep zooming out in the fight for the internet commons. See it as part of a broader struggle for an internet free of gatekeepers and enclosure.

[…]

Open pastures on internet commons, not enclosed or captured by any one company.

I may not agree with every bit of this post, but the core of its message in support of an open and unenclosed internet really does resonate with me. It was the 32nd Birthday of the proposal for the World Wide Web that motivated me to restart my blogging efforts here and host this content in a place that’s available on the open web and syndicated using standard technologies, rather than posting directly to enclosed networks.

I think it’s important to keep the web open and this is one way that I can participate in that.

Read More
Doug Doug

I recently learned about the --dirstat flag for git diff and found it to be really helpful to gain some insight into changes per directory in a large codebase. I created a simple zsh function:

function git_dir_stat_before() {
  h=`git log --before=$1 | head -n 1 | awk '{print $2}'`
  git diff --dirstat=changes,cumulative,1 $h...master
}

which can be used to calculate stats over a particular timeframe, like this for 2 years of commit history:

git_dir_stat_before 2.years

Read More
Doug Jones Doug Jones

Emulating Mac OS X 10.0

In honor of the 20th anniversary of Mac OS X 10.0, I wanted to boot it up in an emulator. I became a Mac user much after 10.0 launched, so I never experienced the first release for myself.

After some trial and error, I got it running in QEMU. Here’s a few screenshots of what the system looked like then. It’s interesting to see what’s the same and what has changed…

Mac-OS-X-10-0-2.png
Mac-OS-X-10-0-3.png
Mac-OS-X-10-0-4.png
Mac-OS-X-10-0-5.png
Mac-OS-X-10-0-6.png
Mac-OS-X-10-0-7.png
Mac-OS-X-10-0-8.png

What’s amusing here is I’m running this on a M1 Mac. At this point, OS X only supports PowerPC, so I need QEMU to emulate that. QEMU does have a native Apple Silicon build, but I found PPC emulation to be buggy (basically crashes at launch). So, I had to use the x86 compiled QEMU. What I ended up with is QEMU emulating PowerPC in x86, and Rosetta 2 translating x86 to Apple Silicon’s ARM variant. So many layers, it is incredible that it works at all, yet alone with reasonable performance.

Even from the first release, Mac OS X had the terminal and it’s UNIX core under the hood. Java on OS X was, uh, a thing at the time.

Mac-OS-X-10-0-9.png

vi included out of the box!

Mac-OS-X-10-0-12.png
Mac-OS-X-10-0-10.png
Mac-OS-X-10-0-11.png

If you want to try this for yourself, here’s some links I found useful:

Read More