Well, two posts in a year – that’s better than only one! Let’s see, what did I accomplish this year, hack-wise?

  • bitjs, Binary Tools for JavaScript:
    • Added a Zipper to create a zip file in JS from byte arrays (issue #29). No compression, store-only for now.
  • kthoom, a Comic Book Reader:
    • Added a Metadata Viewer (issue #18) and Editor (issue #49) using the aforementioned Zipper.
  • TNO, a turn-based strategy game:
    • Finished rewriting an old, DOS-based game as a web-based game for its 25th anniversary 🙂
  • Carve, a vector graphics editor:
    • Started creating a rudimentary SVG editor in the open. Maybe this was irresponsible of me, given SVG-edit exists and I have lots of history there, but I wanted fresh infrastructure (TypeScript, mainly) and a chance to try and get the architecture right in the beginning..
  • Music playlist service and player
    • Private project where I assembled all my offline music, created a microservice to arrange, list, edit music into playlists stored in the Cloud (Firestore), and accessed via a web music player.

All of these little hack projects are strictly in the service of scratching various itches I have. Any fun projects you worked on this year?

Happy New Year, all!

§1292 · January 1, 2022 · Uncategorized · (No comments) ·


I was thinking of setting up a bug tracker for a personal project that might have random users. I’d like to have a way for users to report bugs with as little friction as possible, but with something more than an email or a post on a mailing list. Basically a link I can send a user to. Github? Jira? Something better? Are there any good issue trackers that allow multiple identity systems?

§1268 · January 26, 2021 · Questions, Software, Technology · 2 comments ·

Logo for WebP

How’s everybody doing? My work-from-home setup involves a Macbook Pro, a CalDigit TS3+ dock, two external displays (one in portrait, one in landscape), and a couple other peripherals. Since getting the TS3+, I’ve noticed that OSX screws up the orientation of the external displays ~50% of the time. This inevitably results in me furiously tilting my head sideways while I try to maneuver the mouse pointer onto the Mac Display preferences for that display and fix it before my first meeting of the day starts.

I found a Stack Overflow solution that works for me. I downloaded the free Display Rotation Menu tool from Mage Software and now I can just click and change the orientation from the system menu. Should be part of the OS in these WFH days!

§1229 · December 5, 2020 · Apple, Software, Technology, Tips · Comments Off on Orienting From Home ·

Logo for WebP

Kind of an interesting month for raster image formats on the web! Apple just recently announced that iOS and Safari 14 supports the WebP image format. Yay – in roughly a year, we can use it everywhere on the web without needing to have a fallback solution (like using WASM to turn WebP into PNG/JPEG). Now we just have to wait for the rest of the ecosystem (image editors).

I guess next up is for Apple to get on board with the AVIF format, since Firefox and Chrome announced upcoming AVIF support just two days ago.

§1222 · July 11, 2020 · Chrome, Firefox, Google, Safari, Software, Technology, Web · 1 comment ·

Logo for JSON

To be filed under “shoulda-woulda-coulda” and “no-shit-sherlock” and also “forgot-to-write-about-this-fifteen-years-ago”…

I have had to think about XML for the first time in a few years (for the curious, you can read this EPUB bug I filed). If XML had had an array type for simple values (strings), then instead of representing a list of values like this:

    <item value="abc" />
    <item value="def" />
    <item value="ghi" />

It could have been this:

<topLevel myList=["abc", "def", "ghi"] />

Would folks have abandoned XML for JSON so quickly?

§1210 · January 11, 2020 · Software, Technology, Web, XML · 1 comment · Tags: ,