topic: software development

Everything I’ve written on the subject, from the beginning of this version of the site.

I may also have written on this on earlier versions of my website:

  1. 2006 – 2011 (link coming soon!)
  2. did not have a blog!
  3. 2012 – 2013 (link coming soon!)
  4. 2014 – 2019
  • 2020

    • Feb

      • 29

        • 16:41 — NOTES

          I really, really wish GitHub had a slightly lower entry point for Teams/Organizations. I’d like to do everything for rewrite in a single organization on GitHub, rather than all under … but $25/month is frankly kind of steep for one developer. I’d be happy paying $10/month for just organization management, with the jump to $25 for supporting multiple developers. As is, though… GitLab looks appealing, whatever its other weaknesses.

    • Mar

      • 05

        • 14:35 — NOTES

          One of the critical things Jira gets wrong — besides just generally having pretty bad information architecture — is that it treats issues as a tree instead of a graph. But that’s often not how projects and tasks actually relate to each other!

      • 08

        • 16:13 — NOTES

          Quick Git tip: if you’ve manually edited your Git configuration file and removed a given remote, you may find yourself in a spot where you now have a bunch of branches associated with that remote… which you cannot delete. The only way (I could find) out of this problem was to re-add the remote, and then run git remote rm <the name of the remote>. That deleted the remote and all the references to its branches

        • 19:42 — NOTES

          Status: working on figuring out how to wire up Elm and Rust-via-WebAssembly using webpack. I’ve spent the last four years in Ember and before that I was wiring up Gulp. So this is new. 😅

    • Apr

    • May

      • 03

      • 04

      • 08

      • 12

        • 10:15 — NOTES

          TypeScript: it’s regularly absurd or weird, and I am frustrated regularly by so many things about the type system… but nearly all of them come down in practice to this works this way because JavaScript and JavaScript developers.”

      • 13

        • 08:11 — NOTES

          Last night I threw away almost all the build config I’d been blinded by this spring while working on rewrite: webpack config, TypeScript integration, you name it. What I have left: a simple bunch of npm scripts that I can run in parallel in different terminal sessions:

            "scripts": {
              "clean": "rm -rf dist/*",
              "build:static": "cp static/* dist",
              "build:css": "sass --load-path=./node_modules src/style.scss dist/style.css",
              "watch:css": "sass --watch --load-path=./node_modules src/style.scss dist/style.css",
              "build:elm": "elm make src/Main.elm --output dist/app.js",
              "watch:elm": "watchexec -w src 'elm make src/Main.elm --output dist/app.js'"

          It’s not fancy, but it gets the job done just fine for the things I’m actually working on — rather than things I’ll need eventually — and that’s exacty the right balance at this point.

        • mut (and set) and autotracking in Ember Octane  — JOURNAL

          Understanding a surprising behavior — and fixing a refactoring hazard.

      • 15

      • 24

      • 25

    • Jun

      • 07

      • 19

        • 13:00 — NOTES

          Honestly, seriously wrestling with the fact that I’ve made a little progress on the rewrite web app this year and no progress on the iOS app this year. How the heck am I ever going to finish this thing at this rate?

        • 17:00 — NOTES

          I was hoping for a pleasant afternoon implementing a markdown-it plugin for line blocks” to support poetry. It was… not a pleasant afternoon.

          markdown-it is fast, but between its API design (:shudder:) and its mostly-missing docs (:sigh:) it’s terrible to work with. I quit.

      • 27

        • 18:25 — NOTES

          This year’s updates to SwiftUI have me actually a little happy I didn’t make more progress on rewrite over the last year. The story is much, much more complete and robust. Hopefully I can use it to build that much more quickly this year.

    • Jul

    • Aug

    • Sep

    • Oct

    • Nov

      • 03

        • 08:13 — NOTES

          I do believe my weekend adventures in Prolog slightly broke me. I keep trying to end statements in JavaScript this morning with periods instead of semicolons. 😂

    • Dec

      • 06

        • 13:28 — NOTES

          I built a tiny tool to delete all my old tweets, since previous passes via online apps weren’t doing the trick (something something Twitter API limitations). Was a fun little exercise!

      • 08

        • 09:22 — NOTES

          A serious risk for large engineering organizations: turning their senior engineers into TPMs. Don’t do this!

      • 22

      • 30

        • 19:40 — NOTES

          I’m building a tiny bit of JS functionality for my website and… working without a component system is awful. 😂

      • 31

        • 09:59 — NOTES

          Recent discovery: git worktree is a super handy tool for working on multiple branches in parallel without needing separate clones of the whole repository. Lighter weight and therefore faster!

  • 2021

    • Jan

      • 05

        • 13:47↩︎ —  — NOTES

          I’d been hearing about Linux’s io_uring for a bit now but hadn’t come acrosss a good introductory explanation… until this one from The New Stack, which is great. Async I/O alllll the way down!

      • 07

        • 09:25 — NOTES

          A thing you can do to make a good first impression with your CLI tools: make the --help output as fast as possible. If possible, keep it free of all I/O, and especially keep it free of network I/O.

      • 18

      • 20

        • 08:31 — NOTES

          Today I learned: that comm is a thing! Suuuuper handy little command line tool for when you need to get the lines that are common to two files, or the lines which aren’t common to two files (which is what I needed).

    • Feb

    • Mar

    • Apr

      • 20

        • 13:51 — NOTES

          Hot take: the 2010s turn toward Product primacy in the software industry — Engineering is about Business Value™! — was a well-intended but ultimately misguided overcorrection to engineering-for-its-own-sake. Is anyone doing R&D outside ML anymore?

    • May

    • Jun

      • 16

        • 07:54 — NOTES

          One reason I’m keen on programming languages as a tool for advancing software development is because reversion to the mean is real: working in JavaScript, I see daily how language affordances can make it easy for developers to do things which are terrible for maintenance… and make it hard for developers to do things which are good for maintenance, for just one example.

          I could, and perhaps in a future post will, expand on a list of other things language affordances affect! The key, though, is the recognition that language affordances matter enormously, even if you can write FORTRAN in any language.”

    • Jul

      • 23

        • 11:39 — NOTES

          Status: tried to update my Ghost installation and am now in SSL cert renewal hell. 😫

        • 12:02 — NOTES

          Finally sorted out my SSL issues — after almost an hour. (Not Ghost’s fault, just exposed by Ghost.) The fix:

          • upgrade
          • find and update a defunct server location in a per-site config

          No one who doesn’t do this stuff for a living would ever have been able to fix this.

      • 29

        • 11:25 — NOTES

          The clippy lint tool for Rust is just so good. I learn so many things from it, and my code gets so much better by way of using it.

    • Aug

    • Sep

      • 03

        • 12:35 — NOTES

          For the first time in a very long time, and thanks to the hard work of the folks on my team as well as other foundational teams, is running on the latest version of Ember! 🎉 Next up, cleaning up deprecations so we can run against Ember 4.0 and start testing against canary builds!

      • 14

        • 11:46 — NOTES

          Other folks leading large engineering efforts which are not amenable to metrics-driven analysis, what are your favorite ways of talking about impact — both when pitching projects and when analyzing outcomes?