Weeknotes 2024 W49: Mosaic

December 2​–​8, 2024
1200 words

Quick bits:


Shower thoughts:


I attended a mosaic workshop J organized and I made this:

A mosaic I made.

Isn’t it pretty? Needs a bit more cleaning now that I look at it, but I’m satisfied with the outcome. First time doing this, and oh is it nice to create something physical!


ddenv, as well as its predecessors, had one particular problem: when setting up services (like PostgreSQL and Redis), it’d expose environment variables with predefined/hardcoded names like DB_URL. This meant that the application had to adjust to the environment variables ddenv provided.

No more, though! Earlier this week, I solved this with template-able environment variables. Behold:

up:
  - postgresql:
      version: 17
      env:
        DB_ADDR: "{{ .Host }}:{{ .Port }}"
  - ruby
  - bundle

I think this is a rather neat and simple solution.


I am slowly heading back into macOS development.

I started checking out SwiftUI, but it’s by far not powerful enough for what I need to do. One of the first things I needed was an outline view with drag-and-drop support, and that is simply not possible with SwiftUI.

So, back to AppKit it is. The last time I used it was in the Mac OS X 10.4 days4 with Objective-C, which was certainly a bit of a pain. At least Swift is a definite improvement. But nonetheless, I’m not particularly happy with AppKit:

On top of that, AppKit is also just buggy (remarkably so for its maturity). This makes creating even simple applications just frustrating. Most recently, I struggled to create an inspector view. I could not figure out how to not have it intrude into the toolbar:

A screenshot of a macOS app built with AppKit. It has a sidebar and an inspector. The inspector view crosses into the title bar by accident.

I’m tired of Appkit. It’s not fun. The friction is far too high. But if not AppKit… then what?

Xcode is very much not great either. It crashes far too often, and its UI has consistency issues, with errors that refuse to disappear after they’ve been resolved. It seems the only way to “fix” the inconsistent state is to close and reopen the Xcode project.

I’m thinking about going back to JavaScript (and Electron, maybe). I know, I know —  not something I thought I would be looking forward to. But it is honestly rather appealing: I’ve got the knowledge, and it would give me the freedom to come up with my own design aesthetic — a rather intriguing idea because modern UI design is rather mid.6

But perhaps Scrivener is just fine and the idea of creating my own Scrivener-inspired structured prose editor is a little silly. A lot of work for very little gain. Perhaps I’ll drop it — I’ve got more productive things on the list of ideas anyway.

Bleh.


Links:

Silly links:

Tech links:


  1. Also known under the brand name Accutane. ↩︎

  2. I wrote about starting the isotretinoin treatment in Week­notes 2024 W38: Sequoia letdown↩︎

  3. This is also true for second-hand clocks! ↩︎

  4. I feel old! ↩︎

  5. This applies to SwiftUI sample source code, too. ↩︎

  6. mid (adjective, slang): mediocre, of below-average quality. It’s modern slang, y’all. Get with the times. ↩︎

You can reply to this weeknotes entry by email. I’d love to hear your thoughts!
If you like what I write, stick your email address below and subscribe. I send out my weeknotes every Sunday morning. Alternatively, subscribe to the web feed.