Archived – this site ended its life on 2022.01.02. For the next microblogging site from Chris Krycho, see v1.microblog.chriskrycho.com.

Hello!

I’m Chris Krycho — a follower of Christ, a husband, and a dad. I’m a software engineer by trade; a theologian by vocation; and a writer, runner, composer, and erstwhile podcaster by hobby.

This is my microblog. For longer-form content, check out my main site.

  • 2023

    • Jan

      • 02

        • 14:48

          This here is the final post on Iterative. For future microblogging, see iterative/atomic. Why? I want to reserve the notes subdomain for, well, notes. Nothing to show in that regard… yet. Someday, though, perhaps!

        • 13:46

          I’ve been reading through a number of Maggie Appletons essays over the last couple days — they’re great! — and just discovered she’s using Assumed Audiences: and I shouted Yes!” And her explanation is at least as good as my original!

        • 09:55

          I read Adrian Tchaikovsky’s lovely novella Elder Race last night. 📚 Tchaikovsky’s fiction tends to hit a lot of the same themes, but this one comes at them with a delightful twist. (Although: a key conceit drove me a bit batty as a linguistics nerd.)

      • 01

        • 17:31

          I continue to be astonished by the battery life of the Apple Silicon machines. I’ve been using my computer non-stop (writing, mostly, but also running Node for my website; also some photo editing/exporting) since 9am and at 5:30pm it just hit 10% battery life left. Just… wow.

        • 17:00

          If I publish this many posts every day in 2023, I’ll publish almost 1,100 posts! 🤯

          …spoilers: that will not be happening. This is what happens when you’re stuck in bed with a fever on New Year’s Day. 🤒

  • 2022

    • Dec

      • 31

        • 21:54

          Migrated one old Ghost site to a static site, and threw up a fun new landing page for me and my wife. Spent a few hours playing around with the color transitions (and making sure they do the right things a11y-wise!). Happy New Year!

        • 10:00

          I was thinking about moving some old WordPress sites to WordPress.com, but their price for you can use a custom theme” is $25/month… vs. my current $7/month Linode instance. On the other hand: I hate maintaining servers. UGH.

      • 30

        • 19:15

          Current status: I’m pretty sure there’s basically nothing from the first version of my blog (c. 2006 – 2011) that is worth having on the internet. Very emotional, way too public, early college Chris: no one should read this. 😂

      • 27

        • 21:22

          Wanted — so very much — after the better part of a week with a Leica Q2: a Q3 (variant?) with a 40mm fixed lens. It would be a case of Shut up and take my money,” as the meme goes.

      • 17

        • 11:19

          A bizarre quirk of Apple Music: it simply will not return info to Shortcuts about music you are playing from Apple Music”… even if the song is in your library. So an album you play from the Listen Again section isn’t accessible to Shortcuts. 🙃

      • 10

        • 18:17

          Parser tutorials are all like the now draw the f–––ing owl” meme. Here’s how to use this to implement a trivial calculator! From here, you can see how it’s trivial to implement a full programming language!” …and then you look at any production parser and: no.

      • 09

        • 13:46↩︎ — 

          Brad’s right: Substack is good, but it’s good specifically and only as part of a diverse ecosystem of writing on the web. And it is — emphatically — not identical with or a substitute for blogging”!

    • Nov

      • 26

        • 15:21

          A macOS pro tip: System Settings > Accessibility > Pointer Control > Trackpad Options > Use trackpad for dragging to on, with Dragging style set to Three Finger Drag. All the benefits of tap-to-click for dragging only, but unambiguous.

          Ages ago, this was a top-level preference, and in my opinion it still should be!

      • 24

        • 07:14

          👋🏼 Signing off of social media for all of Advent (starting a few days early!). See you all after Christmastide!

          For unto you is born this day in the city of David a Saviour, which is Christ the Lord.… Glory to God in the highest, and on earth peace, good will toward men.

      • 23

        • 13:35

          Long-standing Slack bug that drives me — the most prolific user of em dashes any of you know in person or otherwise — absolutely batty: its smart quotes algorithm gets it wrong whenever you have what should be a closing quote followed by an em dash:

          He said” — like here.

          :sigh:

        • 08:45

          I have, at last, another monospace font I love as much as Hack, and it is quite different in character: Berkeley Mono.

      • 22

        • 08:28

          Another what fantastic software!” thing to talk about: CleanShot X has been on my list of I should try that” software for ages; I finally got it a few weeks ago and it has already cemented itself as an absolutely essential tool. It’s basically perfect at its job.

      • 19

        • 14:52

          Hot take: gradual typing is bad.

          …it’s still better than full-on dynamic typing, though.

        • 11:20

          Just had a perfectly delightful software moment — the sort that happens so rarely: I want to just drop files to Dropbox for my Supernote, but not run a client… wait, I bet Transmit does it!” And sure enough, it does it exactly as I would want it to. 🤩

      • 12

        • 07:14

          All right, schedule-wise it looks like I will be able to come up and hang out with folks attending ETS on this coming Wednesday. (Schedule for hanging out with AAR/SBL attendees still in flux!)

      • 11

        • 15:29

          One thing Lightroom CC is WAY faster at than Photos.app: showing preview thumbnails of large RAW files.

      • 06

        • 10:24

          There is a serious opportunity for someone to go do well-produced videos — with good visual and audio quality as well as good content — on orchestration, composition, instrumentation and techniques, etc.

      • 05

        • 21:06

          Just spent 15 minutes trying to figure out why the heck I was getting exactly a half step different pitch out of Logic Pro than I was out of Dorico when using them side by side  —  turns out, Logic Pro was asking for 48kHz and Dorico was expecting 44.1kHz. That’d do it.

        • 19:33

          A thing I have repeatedly discovered, and suppose I just need to lean into: composing is a thing I do in the morning, before about 10am, or afternoon into evening, from maybe 3pm but more likely 4pm on.

          Mental-bodily rhythms for things like this are so weird.

        • 17:11

          Bowed crotales! With a bit of vibraphone and solo strings action!

          [Someone stop me; I’m high on new orchestral textures in this piece I’m writing. 😂]

    • Oct

      • 25

        • 21:00

          Never forget, software engineers: always start with the dumbest thing that could possibly work. It’s not always the best move, but surprisingly often it is; when it isn’t, the better moves can very often be built on top of it. If nothing else, it’s usually easy to throw away!

      • 21

        • 14:12

          Parser combinators are really, really fun. (This observation brought to you by a week working with Rusts nom in a hack week with colleagues at LinkedIn.)

        • 06:08

          File under: in the city and haven’t had coffee yet — 

          I accidentally got on the local train heading north instead of the express train heading south in my effort to make my way to a good coffee shop. 🤣

      • 20

        • 07:50

          It took me all of two days of hacking on a particular bit of Rust this week to desperately want the return position impl Trait in trait” feature. 😂

      • 14

        • 12:10

          I really, really wish Discord supported one particular Slack feature: being able to sign into different servers/instances in different installations of the app.

      • 13

        • 21:15

          My brain really wanted an interesting programming puzzle this evening, so I may have spent the last hour working out how to do UTTER SHENANIGANS with TypeScript, basically coming up with a way for types to specify how to interpret themselves. 🤪

      • 11

        • 20:11

          There is some thing almost meditative about sitting in my office in the quiet when the sun is down, debugging through a thorny problem in a code base.

      • 10

        • 11:02

          Kontakt 7: only a full decade late to High DPI modes, but you know what? I’ll take it. I’m really happy to have something that actually looks reasonably modern. (And: props to the folks at Spitfire, Orchestral Tools, etc. for forcing the issue by building their own nice plugins!)

      • 07

        • 08:57

          Me: Why is my battery life getting exponentially worse this morning?”

          Also me: is running a test suite which has to launch child processes and apparently the test runner is failing to guarantee termination of child processes when detaching after failing tests.

          «sigh»

      • 02

        • 09:27

          Why in the world does installing a Sony camera firmware update still require a kernel extension in the year of our Lord 2022?!?

    • Sep

      • 30

        • 17:29

          I find my end-of-day/week/quarter/year routine of summarizing what I’ve done and migrating incomplete goals over (or not!) to the next of the same provides a wonderful sense of closure and momentum. Really glad to have picked this habit back up.

      • 27

        • 09:18

          Having done some mucking around with perf.link this week, I realized: I really wish there were a way to get Tracerbench runs on real-world code that easily. (Microbenchmarks are so often deeply misleading!)

      • 26

        • 20:31

          After using it for a week or so, I have concluded: CleanShot X is a phenomenal little utility. Some of the best $ I have spent on a utility program in recent memory, in fact.

      • 24

        • 19:01

          Whyyyyyy do both HDMI Mini and HDMI Micro exist? (Yeah, I bought Mini when I needed Micro.)

          Follow-up question: Whyyyyyy did Sony ship headlining cameras with HDMI Micro instead of standard HDMI for so long?

          :sigh:

        • 15:58
      • 23

        • 20:26

          I just started actually digging into Telegram and… I think it’s kind of awesome?

      • 20

        • 19:05

          That feeling when you go to write up instructions for someone on how to do the work to fix a bug you found, and the bug no longer reproduces.

      • 16

        • 20:13

          Really grateful for LinkedIn’s monthly InDay” (Investment Day). I’ve spent at least a chunk of my August and September InDays hacking my way through a couple blog posts (1, 2) about parser combinators in Rust, and I think I could actually maybe do a tiny bit of parsing now. 😅

      • 09

        • 15:10

          There is something enduringly odd about working out a musical analysis of what you yourself wrote a few months ago and thinking Oh, that was a really good move there in terms of rhythm, harmony, and texture.” 😂

        • 14:30

          An interesting thing I’m mulling on here (input welcome!) — I’m trying to theorize the relationship between an interesting harmonic and melodic passage and the simple pedal it runs against, and it seems to make the most sense to treat them as separate?

        • 12:12

          I’m working on composing a bit on my week off, but not by putting notes on the page. Rather: I’m analyzing what I have already done in terms of texture, harmony, etc. so that I can actually make good choices about what to do next!

      • 07

        • 14:01

          It’s only been a week and a half since I got early access to Zed, but it has already become my go-to editor for a bunch of things. I can’t 100% replace VS Code with it yet, but I’m typing zed . instead of code . pretty often already. Prospects are good.

        • 10:35

          Really enjoyed Mark Eriksons discussion of Redux and Redux Toolkit, as well as general tradeoffs around state management, on 20MinJS. Worth your listen! (But spoilers: it’s longer than 20 minutes. 😂)

      • 05

        • 17:00

          This is so fun. 🤩 I’m in the literal pages (!) of Mere Orthodoxy, on remote work!

          It’s a paired book review of Richard Sennett’s The Corrosion of Character and Charlie Warzel and Anne Helen Petersen’s Out of Office. Spoilers: we need the Protestant view of work.

          Cover of Mere Orthodoxy magazine with 'Chris Krycho on Remote Work' underlined
        • 12:06

          In case it’s interesting or helpful to anyone, I just created a template repo on GitHub with my current Obsidian configuration, which includes my full config other than the bits which are specific to my own notes layout. Let me know if it’s useful to you!

      • 02

        • 18:54

          Currently debating whether and how to use tags at all in my notes system. Which is a big flip from a few years ago when they were the only structure to my notes system. Explicit links seem better to me at this point.

        • 18:17

          While I appreciate that Obsidian has a mobile app… I think I’m going to end up using a mix of iA Writer and 1Writer — both of which support basic wiki-linking — as my primary iOS notes interface.

          (The fact that I can do this is, of course, a big upside to notes which are just files on disk!)

    • Aug

      • 27

        • 20:27

          I managed to get 36 seconds of reasonably interesting orchestral music sketched this afternoon, as well as publishing the post itself, by keeping this mentality in mind. So: a good first step.

        • 20:21

          I’ve managed to get Obsidian to a state where I’m mostly satisfied with it, but… it really, really mashes all the buttons for my old dream of building an integrated writing environment. Realistically, I have no expectation of ever building that, but… I still dream sometimes.

      • 26

        • 21:52

          That dedicated app/service for classical music that Apple was rumored to be working on — I want it. As I have dug into more and more composed music (contemporary and classical), I have found Apple Music (and Spotify) more and more wanting.

      • 25

        • 09:13

          Having had an M1 16″ MacBook Pro from work for a couple weeks now, I feel very happy with my choice of the 14″ build for my personal machine. Having all the same power but in a much more portable build is really, really nice. The weight and heft difference is dramatic.

      • 24

        • 19:18

          Thinking about doing an experiment in publishing (a subset of) my notes from my Obsidian vault using Obsidian Publish. It would certainly be more interesting and valuable to folks than my microblog, I think. 😝

      • 22

        • 19:10

          Status: tearing out all the TypeScript nonsense we came up with back in 2017 to make old-school Ember computed properties work. Mood: EXTREMELY ENERGIZED.

      • 19

        • 21:00

          Anyone know of a good (serious!  — academic, even!) treatment of the American” sound in orchestral music — maybe best exemplified by Copland, certainly as typified by Boyer today, etc.?

        • 07:12

          Ooooh, Niko Matsakis and co. are working on a revision to Salsa (that you can help with, Rust people!) which looks really, really nice. (Ember and Glimmer users might notice the family resemblance having become rather more obvious, too!)

      • 18

        • 18:38

          So my day today has included running TypeScript with traceResolution and adding a resolutions key to Glint because TS was mis-resolving a transitive version of a package and so module merging wasn’t working correctly.

          How’s your day going, developers? 😂

      • 17

        • 07:14

          Me, on every new editor I have tried on macOS for the last «checks notes» decade (!!!): please make all the CoreText shortcuts work. Please. 😭

          Most recently: on Zed.

          (Zed is great so far. I’m really excited about it.)

      • 15

        • 19:24

          Every once in a while I look at Leica cameras and lenses and think they look very attractive. And then I look at the prices and while I could afford them, I cannot imagine choosing to do so.

      • 13

        • 07:55

          I need some way to help my children understand that their bedtime is (a) nonnegotiable because it is (b) not just for the sake of their getting enough sleep — though it is that — but also for the sake of their parents not completely losing their minds. 😂

      • 12

        • 11:42

          All the music streaming services have this problem with their recommendation algorithms: they over-optimize for matching the kind of thing you have already been listening to, and for recency. What I want is often not that, though: more variety, informed by my whole history.

      • 02

        • 20:45

          Had an excuse to exercise the CSS clamp() function for the first time this evening (…on a user style sheet 😂) and it’s quite nice!

    • Jul

      • 31

      • 29

        • 13:15
        • 09:11

          A week in the life of a developer — 

          Monday, I thought glint --build was working and just needed more test coverage. 😅

          Wednesday, I realized I had pieces not wired up. 🤪

          Today, Dan Freeman and I found a significant gap that requires non-trivial new implementation. 😂

      • 27

        • 07:03

          🎼 Spent the last half an hour dialed into this. Really enjoyed hearing the professionals in the Budapest Scoring Orchestra play my music! Recording forthcoming! 🎵

      • 26

        • 20:22

          Half a decade and more since I bought it, my Kobo remains one of my favorite pieces of digital technology. It is that rare device which has consistently improved over time.

        • 19:42

          A day in the life of a developer — 

          Me, super excited at the start of today: I have glint --build working!”

          Me, mid-afternoon: I was literally doing nothing and exiting cleanly. 😩”

          Me, at the end of the day: I have glint --build working… but for real this time!”

      • 24

        • 21:55

          By God’s grace, and despite what was an absolutely atrocious weekend of incredibly difficult parenting work, I managed to sketch out 45 seconds of reasonably interesting music this evening. A small joy. Thanks be to God.

      • 23

        • 11:47

          Wanted: the LALRPOP book to be completed. 😅

      • 22

        • 20:16

          Finally — years later — got around to working through Bodil Stokke’s really fantastic tutorial for building a minimal parser combinator library in Rust from scratch. Had a fantastic day of 🤯 and 😁 working through it.

        • 11:11

          I wonder if the Native Instruments folks understand why the SINE Player or Spitfire Audio hosts exist: namely, that Kontakt is terrible on the UI front and desperately needs its interface to be completely reimplemented.

        • 10:58

          My 8-year-old was very sad that she had accidentally left her copy of The Fellowship of the Ring in the seat back on our plane flight home the other day, so being a good dad I of course picked her up a replacement copy this morning. 😅 Nerd life is good.

      • 20

        • 20:12

          🚀 We’ve been focusing on a bunch of TypeScript work within Ember.js itself, but today I managed to knock out (at least the first draft of!) our first official library publishing types under the TS support policy we adopted earlier this year! (Great PR number, too!)

        • 07:19

          The Activity Bar” in VS Code is still just so… ugly. One of its many UI design sins. Might be time to try Nova again.

      • 19

        • 14:59

          Does the Adobe Lightroom Downloader just… basically just not work on a reasonable time scale? Granted that I have annoyingly large files, but I started it at 9:20am and it is currently 1% done, meaning it has done ~50 photos total, despite my gigabit ethernet. 🧐

      • 16

        • 20:49

          Question for my fellow photographers (related to previous post): what’s your strategy for keeping vs. discarding RAW copies? Realistically, I’m not going to touch the vast majority of these for further edits ever again, but it pains me to let go of the ability to do so.

        • 20:09

          Between many (very large) photos (the Sony α7R IV is wonderful but the RAW size is no joke 😂) and many (very large) virtual instrument sample libraries (oh hey Spitfire BBC Symphony Orchestra Pro)… I wish I had gotten the 4TB (or 8TB?) SSD on my MacBook Pro. 😂

      • 12

        • 18:43

          🎼 Listening to a recent recording of Schubert’s Symphony No. 9, I was struck — forcefully — by how even with this much variation, my old music composition professors would never have let me get away with this much repetition. Land the plane, man!” they would have said. 😆

      • 07

        • 13:09

          🎼 I have started poking around for folks to bounce things off of and get feedback about on composition and orchestration (including, especially, good-for-performance notation!) and: these forums are a blast from the early 2000’s-era past!

      • 03

        • 17:21

          While traveling last week, I learned: hotel razors are not supplied to help you with the problem of not having a razor, but to punish you for the sin of forgetting your razor.

    • Jun

      • 22

        • 21:04

          Lord willing, I’ll be out in the South Bay area next Monday through Thursday. Want to get together? Shoot me an email! Can’t make any promises, but I’ll see what I can do!

      • 20

        • 16:51

          Why the heck is View > All Processes even a thing in Activity Monitor on Mac? When would it be preferable to View > All Processes, Hierarchically?

      • 19

        • 20:59

          The UI design team at Apple clearly needs the same wake-up call about usability that the hardware design team got.

      • 10

        • 18:41

          Status: reading and thinking — while waiting for fireworks at Disney World — about Robin Sloan’s just announced proposal of a new protocol: Spring 83.

      • 06

        • 18:03

          Apparently the imposter-syndrome – adjacent feeling that idea X is just permanently beyond me and I am super intimidated by it” dynamic about random software things you are interested in/might want to work on never goes away. At least: not so far, almost 13 years into my career. :sigh:

      • 01

        • 13:30

          I had my first encounter with SAP Concur this morning and: I believe this was actually a taste of one of the seven circles of hell?

    • May

      • 30

        • 21:56

          I did Hello, World in Unison tonight, and want to do more, and it’s all Dan Freemans fault.

        • 15:37

          Things that can actually make my M1 Max Mac battery life go down reasonably quickly: An iZotope RX 9 editing session followed by a bunch of work in Lightroom CC. 📉 On the other hand, I wouldn’t even have tried those things on battery on any of my Intel laptops.

        • 09:22

          🎼 Other composers out there: how do you organize your projects? Historically, I’ve organized by year, since nothing I did ever crossed that boundary. Now… multiple projects I’m working on are crossing year boundaries.

          (For software, I just have one top-level directory for my work… but I also don’t keep everything on my machine all the time — I have GitHub etc. for off-machine homes for it. If I did that for my music, I would have close to 100 folders, which is just a pain to navigate.)

      • 27

        • 12:51

          Still haven’t gotten over being able to run a massive orchestral session in Dorico 4 with incredibly snappy condensing, playback, etc. courtesy of the absurdly great performance of my M1 Max MacBook Pro. It’s just delightful.

      • 26

      • 25

        • 09:45

          Published two versions of True Myth this morning!

          • v5.4.0 adds support for the latest Node and TS versions so you can tackle those upgrades separately from:
          • v6.0.0 requires Node 14+ and TS 4.7+ to support exports, drops deprecated code, and improves tree-shake-ability
      • 24

        • 08:26

          Status: my LG 5K monitor consistently goes back to sleep after waking and logging into my Mac. Every single. time. Why? WHO KNOWS! If the Studio Display weren’t on an 8 – 10 week delay I probably would have already bought one.

      • 23

      • 18

        • 07:01↩︎ — 

          Released tracked-toolbox v2.0.0!

          • removed some deprecated functionality
          • Dropped support for Node 12
          • support Ember.js v4 and convert to an Embroider native addon
          • looots of internal work

          Thanks to Serge Astapov who did a ton of this work. 💙

      • 17

        • 11:24↩︎ — 

          Just published tracked-built-ins v3.0.0:

          • supports Ember.js v4 (still supports 3.24 and 3.28 as well!)
          • drops support for Node 12
          • improves TypeScript support, including SemVer policy
      • 14

      • 13

        • 07:07

          I understand why Safari rejects local font access (fingerprinting etc.) but… I really wish it would let me do it for user styles.

          I’m just about at the point where I’m going to host a copy of Hack on my own CDN to use in some of my user styles. 😂

      • 12

        • 06:39

          Just published: tracked-queue v2.0.0 — no changes to the API, just an update to drop Node 12, add support for Ember.js v4, and set minimum supported TypeScript version (MSTSV!) to 4.4, and make some internal improvements.

      • 11

        • 19:41

          I thought, within the first week of joining my team at LinkedIn: These people are fantastic, and it is great to work with such a smart group. I had the exact same thought tonight, more than three years later. It remains a joy.

      • 10

        • 19:41

          Just published a minor release of tracked-queue — a high-performance double-ended queue for Ember apps and addons I built for LinkedIn last year — which added support for TypeScript 4.4 – 4.6.

          Inbound tomorrow: a major release which supports Ember v4!

      • 07

        • 14:53

          🎼 I had somehow never listened to John Adams’ Harmonielehre until this afternoon. What a lovely symphony. 🎵

        • 10:01

          I really wish I didn’t have to choose between the nice ergonomics and flexibility of a VESA mount and having my desk setup not look like a nerd’s bad idea of machine shop aesthetic.

        • 09:57

          Remember when the built-in dictation feature on iOS was less smart” but actually, you know, worked?

          (Extra especially around punctuation, triple extra especially around hyphens and dashes. I never want an en dash when I say hyphen”. Never!)

      • 04

        • 20:15

          Heads up to other TypeScript library authors currently targeting node12 (including for planned releases): you’ll need to bump that to node16 as of today’s nightly release, courtesy of this PR.

          Makes sense, but complicates things a bit. 🧐

    • Apr

      • 30

        • 12:02

          Today I learned the HTTP CONNECT, OPTIONS, and TRACE method exists.

        • 10:29

          File under Regrets:” using the Gmail account I signed up for in spring 2005 for Google accounts. Impossible for me to have known that it would be impossible to maintain e.g. a YouTube account and change my email address all these years later. Annoyingly terrible account management.

          Also: because I once had my domain email running through Google, my actual main email is apparently permanently in their system and cannot be used as an alternate email. This address is already used with a Google account.” Except: it isn’t; I shut that down entirely months ago. 🙄

      • 21

        • 16:16

          Wanted (and maybe there’s a way to do this already in VS Code?): the ability to have a tab with split panes within it, such that switching tabs shows a new view with however many panes arranged as you like. 🤔

      • 19

        • 07:21

          Wanted: collaborative document editing that (a) doesn’t suck and (b) is actually good for code.

          (This is me subtweeting the heck out of Google Docs, which is barely okay for non-technical writing… and is light years ahead of Microsoft’s and Apple’s offerings in this space.)

      • 12

      • 09

        • 22:18

          Managed to write a 45-seconds1 orchestral music today. 🎼 On the one hand, it’s a tad frustrating that it took me 5 hours. On the other hand, I am really pleased with what I wrote, and: if I did this 2× monthly, that’d be 18 minutes of music!


          1. 23 bars at Gioioso ♩=132 ↩︎

      • 05

        • 20:18

          Tonight I have discovered that I apparently need to write a robust theological defense of space exploration (maybe in the second half of the year?).

      • 04

        • 13:00

          Wanted: a Buffer app for macOS. The web interface is… fine, but I often want to just compose an update the way I would in Twitterrific etc.. (If they still had an API, I’d seriously think about building a little just-for-me app! But: they don’t. Alas.)

      • 01

        • 08:39

          Status: I dislike Chrome, but need Chromium for web dev. All the alternatives in the space — Brave, Vivaldi, Opera — seem to be their own variety of meh at best.

          (Recent favorite’: Edge doing a FULL SCREEN TAKEOVER on first launch. Just… no, Microsoft. No.)

          So… recommendations?

    • Mar

      • 31

        • 16:57

          Honestly, thinking about it… what even is the point of low-fat cheese? That’s all it is! That’s like saying low-cheese cheese.

      • 21

        • 19:11

          I emphatically do not want test code to have abstractions I have to understand to add more or update them. Repeat yourself till your fingers fall off, but please don’t make me chase through layers of indirection. 😭

      • 14

        • 07:41

          [obligatory complaint about what Daylight Saving Time does to me — doubled because of how hard it is on my kids]

      • 11

        • 18:51

          Is there a standard” name for ad hoc polymorphism (Rust traits, Haskell type classes, Swift protocols, etc.) which is… pithier… than ad hoc polymorphism”?

      • 09

        • 10:30

          The recent trend of browsers putting a bunch of cryptocurrency stuff front and center (Brave and Opera being the biggest offenders) is… deeply off-putting to me. Please stop, folks.

      • 06

        • 17:00

          Nothing makes it obvious how steadily I’m balding like seeing myself on a FaceTime call.

      • 05

        • 17:27

          After getting very far behind when family members had COVID at the start of the year and never catching up, I finally got back to Inbox Zero this afternoon. Feels good. Now to stay here!

    • Feb

      • 24

      • 22

        • 07:36

          My friend Jake Meadors new book What are Christians For? is out today, and you should get it and read it. You might not agree with everything Jake says — I’m guaranteed not to, based on our conversations over the last couple years! — but you’ll surely profit from the reading.

      • 18

        • 16:25

          Just came across Isobel Waller-Bridge’s music for the first time and: 🤩 (but for my ears, I guess? Where’s my star-ears emoji?) Her standalone works like Music for Strings are great, as is her scoring: her (collaboration with David Schweitzer) Emma is just delightful.

      • 14

        • 19:30

          Finally got around to completely shutting down all my old Google accounts. (Migrated away ages ago and now turned them all off.) I’m freeeeee.

        • 11:45

          An exciting development: I’ve agreed to join the Ember.js Framework Core team with a focus on making Ember’s TypeScript support more awesome — which is also my current focus in my work on improving front-end developer experience at LinkedIn!

        • 10:54

          By her request (after hearing my composing), I taught my 7-year-old the basics of using Dorico last night and for her allocates creative time” on the computer this morning, she immediately started writing The Bear!”, for solo contrabass. 🤩

      • 12

        • 17:09

          Over the course of the last four hours, I managed to write about 45 seconds of orchestral percussion for the composition I’m working on. Very slow progress, but: good percussion writing has always been hard for me. I’ll take it.

      • 07

        • 08:02

          Today is the kind of day where I remind myself that sometimes the only way to do the work I actually want to be doing is to just push through the work I don’t want to be doing. le sigh

        • 07:56

          Wanted: for all papers in all journals in all fields to be available as well-designed HTML and EPUB as well as PDF. Honestly, it’s infuriating (and thoroughly inaccessible!) that the standard is a fixed document format design.

          [Aside: asking for format choices, not zero cost. Open access is a distinct good, also worth fighting for, particularly for its impact on the possibility of independent scholarship.]

      • 04

        • 19:41

          Just got my first jury duty summons. I’m grateful we do this. I’m not really excited about it, though. 🙃 I figure I’ll get some reading done. 🤷🏻‍♂️

    • Jan

      • 31

        • 20:18

          Just switched over my microblogging site here: to v1.notes.chriskrycho.com, titled Iterative. It’s nice to have a microblog, but/and it simplifies many things to have that be a different site from my main blog.

      • 30

        • 20:32

          This evening’s little experiment confirms: Vercel is nice. I like it a lot.

          (Later this week, you’ll see my microblog redeployed as a separate mini-site. Lets me iterate on it and my main site separately!)

      • 28

        • 11:53

          Had an excuse to use htop for the first time today (and learned about pwdx!) — one of those tools which had long been in the bucket of knowing it exists, knowing what it’s for, and knowing I would use it… someday. Today was that day!

      • 27

        • 17:05

          My favorite discovery with Raycast this week: if you integrate it with your calendar, and an upcoming event has a call (Zoom, Teams, etc.) attached to it, when you action” the item it just launches the call. 🤯

        • 10:20

          Status: annoyed by a limitation in the TypeScript type system, but reminding myself that it’s a limitation of a feature that exists in no other production type system except Haskell with a bunch of extensions turned on.

          Wanted: Partial Type Argument Inference

      • 20

        • 08:09↩︎ — 

          Last year, I gave a talk called Keep It Local” — about local reasoning” and how that undergirds many design heuristics: structured programming, OOP, the actor model, FP, Rust, and more. (It happened to be at EmberConf, but isn’t about JS!) I’d love it if you watched or read it!

      • 18

        • 17:25

          I have a rule of thumb for TypeScript: any code which requires you to write spread tuple types is WRONG and you should refactor it IMMEDIATELY. (Ask me how I know this, he says, wiping his brow as he looks up from slogging through the Ember v4 types update.)

      • 17

        • 07:32

          Richard Sennett’s 1998 book The Corrosion of Character is one of the worst pieces of argumentation” I have subjected myself to in a very long time. A few good points buried in layers of fallacies and bad faith. (My reasons for reading it anyway will become clear in a few months.)

      • 15

        • 18:53

          I have known that clipboard history was a thing for ages. Until switching to Raycast from Alfred, though, it had never stuck. Now, just a week in, I don’t know how I ever worked without it; I felt positively hobbled on my iPad this evening. 😂

        • 17:27

          My friend Brad East has written a very interesting book on Scripture: often brilliant, occasionally laugh-out-loud, regularly provocative… and sometimes (rarely) quite wrong! I have just created a page for my notes on and quotes from the book, if you’d like to follow along.

      • 13

        • 07:47

          As I am reading my friend Brads book The Doctrine of Scripture, I am delighted by his commitment to writing well. I wish all books — especially of theology — were so attentive to style as this.

      • 12

      • 11

        • 07:25

          File under extreme nerdery: I definitely dreamt about the Dorico 4 release announcement last night. 😂

      • 10

        • 20:31

          Oliver Davis is such a delightful composer, and Kerenza Peacock such a fabulous violinist. The combo makes me happy all the time.

        • 19:43

          I’m working on some stuff in open source Ember codebases tonight and the new GitHub code search is just phenomenal.

      • 09

        • 19:04

          I have been using Raycast for my macOS launcher over the past few days (after having bounced back and forth between Spotlight and Alfred for the last decade). I am extremely sold: this is great. Snappy, good defaults, and extensibility? ✅

      • 07

        • 17:56

          A weird side effect of my time using my new 14″ MacBook Pro, with its higher-density screen, for the last couple months: everything on my 5K monitor looks ginormous. 😂

        • 11:04

          There are many notable things about Peter Naur’s paper Programming as Theory-Building” (some of which I will return to at greater length soon), but part of what makes it so valuable is: it is clearly-written, with sharp prose. Would that more papers were like this.

        • 09:25

          Status: taking a few minutes this morning to set up some tools to make it trivial to start dedicated reading and writing times with distraction-blocking across devices. Hoping a little investment here up front will end up paying off over the course of the whole year. 😅

      • 02

        • 19:34

          Reading goals for 2022

          • Minimum: 22 books.
          • Stretch: 22 non-fiction books.
          • Gumby: 22 non-fiction books not started in 2021 or earlier.

          (Yes, Gumby goals is now a thing. Don’t @ me.)

      • 01

        • 18:19

          One goal for this year: to carve out 30 minutes a day on week days for either reading or writing (alternating days). Even accounting for sick days, time off, etc., I should net out to something like 60 hours (1½ work weeks!) each of reading and writing.

  • 2021

    • Dec

      • 31

      • 29

        • 17:34

          Wanted: a statically linked version of ffmpeg — which therefore does not require downloading a hundred dependencies to dynamically link when running brew install. 😑

        • 12:39

          I realized recently: I don’t like spring races as well as fall races, largely because of their respective training schedules. I greatly prefer training in summer and fall to winter — not least because I am sick far more often in winter and early spring!

      • 23

        • 18:48

          Spent a couple of hours today getting my desk setup thoroughly re-wired after snagging a CalDigit Thunderbolt 4 Element Hub. Many, many fewer wires on my desk now, and a lot of improvement under the desk to boot.

      • 21

        • 18:54

          The Capture Recording command in Logic (or Cubase’s Retrospective Recording feature) is so. very. helpful. Hard to believe I haven’t been using it till now. Definitely will be taking advantage of it in Dorico, too!

      • 20

        • 16:03

          Over half a decade on, YNAB’s credit card handling remains janky as heck. I waste more time fighting it than dealing with any other part of the system (which otherwise just uses standard zero-based-budgeting!). Ugh.

      • 15

        • 09:09

          Why in the world does Shortcuts on macOS not default to using UTF-8 and get confused if there are any Unicode characters in it? So strange. (Also, would it kill them to make work for the Done flow on actions like every Mac app ever?)

      • 14

        • 07:54

          Zapier is great (much better than IFTTT). But the jump in functionality — and price — from free tier to paid tier is way too big for my needs. I don’t begrudge them their business model (!) but I also can’t see paying more than $5/month for the level of functionality I need.

      • 08

    • Nov

      • 30

        • 08:08

          It just occurred to me that software estimation is the perfect place to practice explicit Bayesian reasoning skills.

      • 29

      • 28

        • 20:15

          Currently mucking with pyenv for an old static site setup. I really, really miss the goodness that is Volta right now.

        • 16:56

          In high school and college, I used to joke that I wanted an orchestra I could just carry around in my bag and pull out to play for me at will. Virtual instrument libraries (and my budget!) have come far enough since then that… I basically have exactly that now.

        • 15:40

          Following up on my last post: Meta1 is one of the apps I found via Mac App Store, and I downloaded it and used it to edit the mp3 (id3) tags for a track I’m uploading this coming week. It’s quite good!


          1. Not that Meta, of course. Thanks, Facebook. ↩︎

        • 15:24

          Okay, this is the first time this has ever happened, but: searching in the Mac App Store for mp3 tag editor” got me infinitely better results than a web search. What universe do we live in?

        • 14:03

          Even being only an amateur photographer who mostly takes photos of family events, the fact that the new MacBook Pros have SD card slots and are ridiculously fast when working in Lightroom CC has made a really big difference for me.

      • 27

        • 09:50

          Things from Rust I always miss when working in TypeScript: being able to impl Trait for Type { ... } distinctly from the body of the thing itself. (Patching prototypes with random functions: no! Patching them via the protocol proposal: yes!)

      • 26

        • 14:09

          Extremely fun Thanksgiving presents: Spitfire’s BBC Symphony Orchestra and Arturia’s Analog Lab V and Piano V2 instruments shipped Apple Silicon support. 🎉

        • 13:44

          Just got to take advantage of the ability to use iPad software on a Mac for the first time: Jaimie was able to just open the Shutterfly app on our family iMac. That is, in fact, pretty cool — whatever the limitations.

      • 21

        • 17:12

          Current hobby: opening MIDI files from my high school composing, swapping in new, excellent sound libraries (yes, nearly all from Spitfire 😂), and seeing how much better they sound even otherwise reworking them. Spoilers: way better.

      • 20

        • 14:12

          Markdown is lovely to write, but parsing Markdown is bananas. Absolutely bananas.

      • 18

        • 09:36

          This morning I learned of the existence of Fanny Mendelssohn, and I was profoundly sad: that she never had the chance to share her talent with the world, and that so many of us knew her music only under her brother’s name. What a shame.

      • 16

        • 19:52

          I keep having to remind myself that it would be unwise to commit to spending the time to do a Wheel of Time reaction podcast with Jaimie, because it sounds obnoxiously fun.

      • 15

      • 12

        • 19:09

          For as long as I have been composing, I have notionally composed for live players. Despite the rarity of that opportunity with orchestras, and the fact that all my high school works were actually composed and performed for Clavinova Festivals, I’ve only really just seriously considered taking composing purely digitally as its own distinct medium.

        • 15:46↩︎ — 

          Quick note: I’ve just updated Ember Template Imports, Part 3 with a new section, on running Glimmer components server-side. (I meant to cover this the first go-around, but I forgot!)

      • 11

        • 10:15

          I’ve just published tracked-built-ins v2.0.0. Highlights include:

          • Support for Ember v4
          • Better internal implmentations
          • A boatload of dependency updates
          • Many fewer deprecation warnings
        • 07:20

          Pro tip for triggering a good old beach ball on a shiny new M1 Max MacBook Pro (but not for that long, considering):

          Open a large orchestral score in Dorico and then apply the Spitfire BBC SO Pro playback template to it. 😂

          (To be clear: the results here are incredible, though — it just goes. Effortlessly. I can’t wait to see what it’s like running the Apple Silicon-native versions of these as they come out in the next few months.)

      • 08

        • 18:35

          Apple Silicon-native versions of Dorico, Kontakt, and Spitfire BBC Symphony Orchestra can’t come soon enough. Playing with the project for Fanfare for a New Era of American Spaceflight” on this new machine is already really good… and it’s all still in Rosetta 2.

      • 07

      • 06

      • 04

        • 16:47

          I basically have no stats collection for chriskrycho.com, but I occasionally check what CloudFlare says my traffic looks like. ~15K unique visitors over the last 30 days and ~1k unique visitors daily is… surprisingly high, and much higher than I would have expected. 🤔

      • 02

        • 19:19

          What I was planning to do this quarter at work was 100% driving forward TypeScript in Ember and Glimmer for us. What I’m actually doing a ton of is «checks notes» fixing memory leaks, because they’re causing our test suite to explode.

          REWRITE IT ALL IN RUST! ALL OF IT! ALLL!

        • 15:40↩︎ — 

          Pretty sure this piece from Michael Sacasas is the only thing on Frances Haugen’s Facebook testimony you’ll find which also meditates on the Iliad and Simone Weil. Worth a read!

    • Oct

      • 29

        • 16:00

          Here’s an astounding/horrifying reality: dealing with Verizon is worse than dealing with Anthem Blue Cross Blue Shield.

      • 28

      • 23

        • 14:40

          One of my favorite features Obsidian offers is a very small extension to basic Markdown: the ability to embed other notes. This lets individual notes be atomic” while letting a root note integrate them not just as links but as content. Incredibly useful.

      • 18

        • 19:21

          Why yes, I am wiping my M1 MacBook Air and prepping it for trade-in; how did you know?

        • 08:49

          It’s pronounced mu heis chi”.

          (Estimated number of people following me who will get this joke: two. Hi, Ben! Hi, James!)

      • 16

        • 17:18

          Ran the Colfax Half Marathon Event today — it went great! Better than I even hoped!

          • 1:27:35 official time (3rd best finish, probably my best when adjusted for altitude)
          • 6:41/mi official pace
          • 45th overall
          • 38th among men
          • 16th among men 30 – 39
          course map of the run from Strava
      • 14

        • 17:29

          Spent my entire afternoon chasing down a bug which ended up being resolved by a tiny fix. But bugs are often tiny: the tricky bit isn’t (necessarily) the amount of code involved, but the many, many details you have to keep straight to avoid (or fix) them.

      • 12

        • 10:45

          Dear… uhh, lots of people I guess: Offices reopening ≠ going back to work.” Offices reopening = going back to the office [for some people!]. The idea that we’ve not been at work for the last 19+ months is pretty ludicrous.

      • 11

        • 20:02

          Things I write in the Mere O Slack that wouldn’t make any sense anywhere else:

          (#NotAllNaturalLawAccounts of course 😂)

        • 11:28

          Did I mentally shout yessssssss when I saw a new post appear on Programming Linguistics, about concurrency and function dispatch and universal function call syntax? Yes. Yes, I did.

      • 05

      • 04

        • 11:38

          Anyone have recommendations for a flamegraph-viewing tool which can actually handle digging into a 150MB CPU profile? SpeedScope is awesome but browser tabs just keep crashing with this big of a profile. 😂

    • Sep

      • 28

        • 22:16

          Hit a point where I have more, and more disparate, things to do than I can keep in my head. Seeing how pushing it all into Things goes over the next few weeks. The first day seemed good!

      • 26

        • 08:37

          Delighted to announce that I have been promoted to Senior Staff Software Engineer at LinkedIn. It’s been a great first almost-3-years so far, and I’m excited to keep building and growing here!

      • 18

        • 15:38

          Needed to update the server behind JaimieKrycho.com today (something about old PHP versions and being a good internet citizen). Terminal-only was… fine… but painful. So I set up VS Code Remote on the Linode server — it took ~2 minutes — and had all my normal editor tools available. 🔥

      • 15

        • 07:55

          A small thing I desperately wish the network settings on macOS and iOS supported: only choosing a given wifi network when in specific locations. Will I sometimes use Xfinity hotspots when out? Yes. At home? Literally never. (The network order preference doesn’t work 100%. Alas.)

      • 14

        • 11:46

          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?

      • 06

        • 14:32

          Chilling at the coffee shop, planning to do some work in Dorico on an orchestral work I’m slowly but steadily working on… and realized I left the stupid eLicenser dongle at home. Cannot. wait. until Steinberg’s promised non-dongle solution comes out.

        • 14:13

          Just fixed a bunch of readability and related accessibility issues on my friend’s church plant’s website.

          This is the way.

      • 05

        • 18:44

          Finishing my reread of The Lord of the Rings this evening, and noticing how much Saruman’s and Wormtongue’s speech patterns shift in their final appearance: to evoke Gollum’s speech patterns.

      • 04

      • 03

        • 12:35

          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, LinkedIn.com 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!

    • Aug

      • 27

      • 24

        • 11:31

          I’m curious: what are the most interesting/important ideas in computer science research you know of which is directly or indirectly relevant to user interfaces and so far has no real uptake on the web?

      • 23

        • 10:57

          Glass — 

          • is genuinely beautiful
          • (so far!) commits one of Instagram’s sins: no iPad app
          • has a good business model
          • isn’t really amenable to POSSE, alas

          Net: I’ll probably be using it, and enjoying it, but my own site will remain home” for all my work.

      • 20

        • 13:22

          The Git man pages are so so bad. Just impossibly, unbelievably bad, even by the standards of man pages. (Try — I dare you — to figure out how to rebase an existing branch onto another branch without checking it out from only the man page.)

      • 18

        • 22:10

          I have spent some time actively working with” my notes in first Bear and now Obsidian over the past few months. A thing I have concluded: tags are overrated; links are much more useful.

      • 12

      • 11

        • 20:18

          A small detail I really appreciate about Doricos documentation: consistent use of good semantic HTML markup! Props to Lillie Harris as well as to the Steinberg folks who make sure their tools generate good markup.

      • 10

        • 08:07

          As I’m slowly working through my notes — recently exported from Bear and into Obsidian — I see three issues:

          • not enough links and connective tissue
          • too much collection” (esp. from books) without analysis or synthesis
          • too many tags!
      • 09

        • 09:58

          A weekend into using Obsidian, the thing I like best about it by far is that it uses plain text files on disk… which means that I can use all my other tools with it. Until vendors actually make new interoperable, open document formats, this will be the winning approach.

      • 07

        • 21:18

          Tiny bonus comment on my post on MusicXML: the schema itself is incredibly well-designed, and the docs are fabulous. Props to the good folks behind it!

        • 16:57

          Dorico’s graphic slices functionality is fantastic for writing blog posts about the software. (Spoilers for my next Journal entry!)

      • 06

      • 03

        • 21:10

          Am unreasonably excited about this Spitfire Audio Summer Sale purchase… and equally unreasonably impatient about the fact that the downloads will complete sometime after I’m asleep tonight. 🤣

          I think I’m now obliged to #OneOrchestra #BBCSOPro or something, right? 🎵

          image of the download
    • Jul

      • 29

        • 15:14
        • 13:21

          The more time I spend with other apps (looking at you today, StaffPad), the more persuaded I am that Doricos model, where notes are primary and measures are arbitrary, secondary groupings — layered on top of the notes — is both more correct and more useful design than the bars-first approach nearly every other notation software takes.

        • 11:25

          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.

      • 28

        • 16:20

          I realized, in the midst of working on a mockup in Logic, that I needed to make a small, but meaningful, tweak to the score for the piece I’m writing (move a series of notes forward by one quaver) as it stands in StaffPad… and… cannot? (This is trivial in Dorico!)

      • 23

        • 12:02

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

          • upgrade acme.sh
          • 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.

        • 11:39

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

      • 21

        • 21:26

          I have geotagged about a thousand (mostly very old!) photos this evening. And tagged probably fifty faces! Found a bunch of photos I didn’t even know I had!

      • 16

        • 20:05

          In the process of publishing a master of my Fanfare for a New Era of American Spaceflight”. At last! 😅 One lesson learned from working on this off and on over the last 8 months: next time, I will not use a MIDI export; I’ll perform it into Logic.

        • 16:07

          This day did not go as I expected and I feel uninspired.” I’m sitting down to compose anyway because: that’s now how art (or anything in life, really) works. Inspiration” is nice but doing the work is the important bit.

      • 15

        • 10:37

          Don’t ever let anyone tell you that music theory isn’t helpful for composition. I’m sitting here formalizing what I sketched out on a keyboard, and my ears did not mislead me: but now I understand where my ears led me and therefore can work much more intentionally with this idea.

        • 10:10

          Wanted: a Leuchtturm1917 notebook (which is, at this point, my favorite all-around notebook)… with music staves.

      • 13

      • 12

        • 13:15

          It occurs to me that if I had spent as much time working on lx as I have fighting with 11ty, it would exist and be exactly what I want.

          Resolved: to constantly-if-slowly scratch that itch so I can eventually just throw away my 11ty-based setup.

        • 11:31↩︎ — 

          This past weekend, Jaimie and I took our daughters on a lovely little three-day trip up to Dinosaur National Monument. Over the next few weeks I’ll be sharing a few of my favorite photos I took on the trip.

          To see the full list of items, click through!

        • 07:55

          I really wish iOS and iPadOS actually followed Apple’s much-discussed but too-little-practiced design mantra of progressive disclosure of complexity.” Maybe lots of users don’t need fine-grained control over storage, at least to start. But many will over time, so let them get to it when they need it!

      • 07

        • 13:20

          One reason I don’t often do the kind of writing represented by this morning’s post: it took me over an hour to write and revise (and it could use further revision still)! Most days, I do not have time to do that kind of work while fulfilling my other responsibilities.

    • Jun

      • 19

        • 20:41

          StaffPad is quickly becoming my favorite tool for composing. Its handwriting recognition is far from perfect, but it’s the best thing I’ve found for writing music (much the way I would on paper!) while still having digital affordances.

          Bonus: pair it with the Spitfire instruments… 🤩

      • 18

        • 10:12

          Status: caffeinating myself into a semblance of productivity. ☕️ Promotion packet review weeks are always utterly exhausting, and this year has been even more so than usual. 😫

      • 16

        • 20:22

          My friends Stephen Carradini and Brad East have both been blogging more of late — Brad having recently decided to own his turf, and it having turned out to be quite lovely turf! — and it just makes me so happy.

        • 07:54

          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.”

      • 12

        • 15:25

          A thing I love about Spitfire Audio: that they pay ongoing royalties to the musicians whose playing they sample. This is as it should be!

          I’d love to learn about other virtual instrument libraries which do this as I slowly broaden out my samples — got recommendations?

      • 04

        • 09:18

          Spent a few minutes this morning tweaking feed generation on my website — again:

          • capping at 25 items, for the sake of tools which have reasonable size limits (like Micro.blog’s unofficial 1MB cap)
          • fixing — permanently — the ordering problem I’ve had off and on
      • 02

        • 19:24

          Of the many small and large reminders of God’s common grace and goodness in creation in the world, the one I’m most grateful for today is the Berlin Philharmonic, which has been an astonishingly excellent orchestra for a very long time now.

          (Today’s discovery: their Dvořák Symphony No. 9! 🤩)

          Related: these collections all get filed under shut up and take my money”.

    • May

      • 26

        • 20:50

          Just published a small experiment I’ve been mulling on for the past week or so: ember-simple-track-helper. It’s basically the same idea as React’s useState hook, for Glimmer and Ember template-only components” — places you don’t really need a backing class.

          (As with all my recent packages, this is following the spec for SemVer for TypeScript I have been working on. So far it’s working well! Hopefully-final revisions to that RFC inbound in the weeks ahead!)

      • 22

        • 16:01

          When you start reading an introductory tutorial with a section title like <some topic> in a Nutshell”… and the third paragraph is about ⅔ incomprehensible to you. 😅 Time to go see if I can get my head at least a little bit around how functor modules work in OCaml. (And yes: put the relevant bits into Anki!)

      • 21

        • 16:41

          The kind of day I’m having: I went searching for literature on semantic versioning for dependent types. As far as I can tell, there’s literally nothing1 — and as my friend Dan Freeman pointed out, it’d probably be a 🍾 moment if they were in broad enough use to have this literature. 😂

          In related news: conceptualizing type narrowing in TypeScript as write operations on types in the flow-control-based subset of dependent typing which TS enables has proven profitable for resolving a previously-intractable conceptual problem about SemVer for TS I was having. 😂


          1. The top hit on both DuckDuckGo and Google for the search query "semantic versioning" "dependent types" is… me. 😬 ↩︎

      • 18

        • 20:53

          This comes just a few days, not a few months, in my picking up Anki, but I wanted to report because: so far I really like it! I’ve been using it to pick back up my Greek and Hebrew as well as to learn new things (like set and category theory), and it’s good.

      • 15

        • 11:42

          After thinking about it off and on for years, I’m finally giving Anki a try as a tool for learning things. Will report back on how it’s going in a few months!

    • Apr

      • 20

        • 13:51

          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?

      • 18

        • 20:00↩︎ — 

          I finally got around to posting the last three photos from my Albuquerque vacation this evening — backdated to correspond with the days I shot these photos:

      • 04

        • 21:10↩︎ — 

          I’m on a week-long solo vacation — and I have challenged myself to take and post share exactly one interesting photo each day, as a way of focusing my attention via the combination of camera and intent. (Spoilers: it requires taking more than one shot each day to be able to post one shot each day.)

          To see the full list of items, click through!

    • Mar

      • 19

        • 09:09

          Real talk: the fastest way to get me to show up with a bug report on your text editor/extension/etc. is… to override the built-in Mac keyboard shortcuts.

          Don’t break ^E or ^T or ^K etc.! I will come for you!

      • 12

        • 08:49

          Two tools I’ve found invaluable while coordinating and leading a large migration on the LinkedIn flagship web app over the last few months:

          • xsv: a ridiculously speedy command-line CSV manipulation tool
          • vscode-edit-csv: a fabulous VS Code extension which lets you work with CSVs like spreadsheets within the editor
      • 11

        • 20:18↩︎ — 

          Pleased to publish an RFC to make TypeScript an officially supported language in Ember!

          Thanks for key input from the TypeScript-in-Ember strike team” members: Chris Garrett, Rob Jackson, Yehuda Katz, James C. Davis, Dan Freeman, Ricardo Mendes, and Thomas Gossman!

      • 06

        • 09:36

          Recorded my EmberConf 2021 talk, Keep It Local’ yesterday. It is easily the best talk I’ve ever given, and the one I’m proudest of. I dare say that it actually says something meaningfully new about software development: synthesizing many streams into a single coherent story. 😅 Mad props to Jaimie Krycho for helping me nail down everything from personal style to lighting for the recording!

      • 02

      • 01

    • Feb

      • 28

        • 10:04↩︎ — 

          I love Jessica Kerr’s One key trick to becoming a wizard developer: it’s a great combo of summarizing how to do this” with a worked example.” Once you realize you can do this, it becomes a kind of superpower — and when I share it with mentees, it’s often a 💡 🤯 moment for them.

      • 23

        • 20:22

          The slightly bonkers feeling of opening a large Dorico project on my M1 MacBook Air… and it being noticeably smoother and faster on the Rosetta build than it is on my late 2015 (and then-top-of-the-line) iMac. 🤯 Imagining the native speed and an M1X etc…

        • 10:45↩︎ — 

          A few years ago I had a pretty bad case of burnout — and I know lot of folks are dealing with it after the last year. Hoping some of these public reflections I wrote at the time can be helpful again.

      • 22

        • 08:12↩︎ — 

          It’s been almost seven years since I wrote this piece on how tabbed browsing changed the internet and I still think about it probably at least once a month. It overstates its case a bit (“All this because of tabs”? Not quite!) but I stand by the core insight.

      • 21

        • 14:02

          I feel about Jon Foreman’s Departures almost exactly how I feel about The Mountain Goats’ Goths: I really like it! — but the opening track promises (or at least suggests!) a different album, and I really, really want that one to exist, too.

      • 08

        • 19:13

          Every so often I try another monospace typeface for programming. (Sometimes I go truly crazy and try a proportional typeface!) But I always — always — come home to Chris Simpkins’ marvelous Hack.

    • Jan

      • 27

        • 10:25↩︎ — 

          On systems thinking” as somehow unlocking our much-desired control over our world:

          …self-organizing, nonlinear, feedback systems are inherently unpredictable. They are not controllable. They are understandable only in the most general way. The goal of foreseeing the future exactly and preparing for it perfectly is unrealizable. The idea of making a complex system do just what you want it to do can be achieved only temporarily, at best. We can never fully understand our world, not in the way our reductionistic science has led us to expect. Our science itself, from quantum theory to the mathematics of chaos, leads us into irreducible uncertainty. For any objective other than the most trivial, we can’t optimize; we don’t even know what to optimize. We can’t keep track of everything. We can’t find a proper, sustainable relationship to nature, each other, or the institutions we create, if we try to do it from the role of omniscient conqueror.

           — Donella Meadows, Dancing With Systems
      • 26

        • 15:15↩︎ — 

          One of the very strongest arguments for ending the App Store monopsony — that it is by definition user-hostile precisely on security and privacy:

          The mere existence of such a killswitch is a moral hazard. If you can cut off your users’ privacy  —  or their tools that improve competition or undo lock-in  —  then you invite others to demand that these tools be used to their advantage. The fact that Apple devices are designed to prevent users from overriding the company’s veto over their computing makes it inevitable that some gov­ernment will demand that this veto be exercised in their favor. After all, the Chinese government wasn’t the first state to demand that Apple expose its customers to surveillance  —  that was the Obama administration, which sought a back-door for Apple’s devices in order to investigate the San Bernardino terrorist attack. Apple resisted the US government demands, something it was able to do because the US constitution constrained the government’s ability to compel action. China faces no such constraint.…

          That means that any government that orders Apple to use its killswitches to achieve its goals knows that Apple’s customers will be helpless before such an order.

          On the other hand, what if Apple  —  by design  —  made [it] possible for users to override its killswitches?

           — Cory Doctorow, Neofeudalism and the Digital Manor
        • 13:47↩︎ — 

          This Guide to Machine Elves and Other DMT Entities was definitely one of the stranger things I’ve read recently. (I’m… not tempted to try DMTs. 😅) There are interesting questions about physicalism, nature, reality, etc. highlighted by it, though!

      • 20

        • 08:31

          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).

      • 19

        • 13:47↩︎ — 

          This piece by Michael Sacasas on last week’s failed insurrection takes a somewhat grimmer outlook than I do in the end, but his analysis is nonetheless illuminating. Worth your time to read the whole thing.

        • 11:10↩︎ — 

          Let those who have ears, hear:

          a radical appeal can be a mass message. But you have to know who you’re talking to, you have to give a shit about what’s likely to motivate them, and you have to get past repeating that something is unfair.

           — Freddie Deboer

      • 18

        • 19:52

          What the heck do people who do this stuff for a living use for editing ID3 tags and publishing? The cheap-or-free tools available out there are terrible for the I want to make this piece of music seem professionally-produced” scenario: they all focus on manage your library!”

        • 14:26↩︎ — 

          Notional Machines and Introductory Programming Education is an outstanding survey — focused on a key element in teaching year-1 CS students: notional machines” (which are not the same as mental models”!). Teaching is a huge part of my job, and this was quite illuminating.

        • 09:44

          Status: not far from the point where I just sell my iMac in favor of running a 5k monitor off of my M1 MacBook Air, which is literally twice as fast.

          Only thing holding me back is RAM, which does matter for large music productions.

      • 14

        • 20:12

          How I spent a last chunk of my evening: messing around and seeing just how much faster Rust is than Node, by implementing an identical (dumb) algorithm” in each — and then mucking with it to see where the optimizer can cheat. (About 10× faster for this particularly dumb loop.)

      • 08

        • 22:45

          Going to write up a deep dive blog post on this, but for tonight, a preview: Ember.get (or _.get or R.prop) with nested keys working correctly and robustly in TypeScript — play with a demo here.

      • 07

        • 09:25

          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.

      • 06

        • 20:20

          Word to the wise: put your phone away. As awful as today’s events were, your doomscrolling isn’t going to change a thing. God is still sovereign. So pray a bit and then go to sleep.

      • 05

        • 13:47↩︎ — 

          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!

      • 03

        • 20:58

          I’m rereading The Hobbit and The Lord of the Rings with my 8½-year-old as she reads them for the first time.

          Upside: she adored The Hobbit and immediately dove into Fellowship.

          Downside: I could barely keep up with her and I have to go back to work tomorrow. 😅

      • 02

        • 09:12
          picture of Robin Williams with the phrase “You can attribute any sentimental quote to Fred Rogers and people will believe it” and an attribution to Mark Twain

          (Equally applicable to spiritual’ quotes and C.S. Lewis. But then you have to re-misattribute this.)

      • 01

  • 2020

    • Dec

      • 31

        • 09:59

          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!

      • 30

        • 19:40

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

      • 29

        • 11:38

          I would love a study score of Ludwig Göransson’s Come With Me” from the closing credits for The Mandalorian Chapter 16. (Hint hint, Disney+ — there is money to be made here!)

      • 27

        • 18:36

          Dear Apple: would it have killed you to include a headphone port on the iPad Pro? Using it for music production would be a lot easier if you had.

          cables, ugh
      • 22

        • 16:25

          At long last — literally over a year late! — we just published our revised, Octane-ready docs for ember-cli-typescript. They’re far from perfect, but we’ll iterate from here. And keep your eyes open: lots more motion in this space over the next six months!

      • 20

        • 14:37

          I just discovered MailMate (@mailmateapp), and I think it may just have been designed specifically for me and no one else. 😂

      • 18

        • 09:26

          I have gotten spoiled over the last decade by tools like Pandoc which let me assemble a final document from a set of smaller documents. Working with Google Docs for work… there is just none of that. One more thing I dislike about Google Docs.

        • 08:18

          While I understand what Apple is trying to do with increased security for Macs, I am getting fed up. My work machines don’t allow changing the Security & Privacy settings… so I simply cannot use tools like @RogueAmoeba’s Audio Hijack on Big Sur. heavy sigh

      • 13

        • 12:44↩︎ — 

          I just posted my roughly-annual entry to our family blog — with pictures and lots of little updates from the year.

      • 11

        • 19:23

          Automatic-semicolon-insertion makes a number of potential design moves for JavaScript hard-to-impossible — like just’ making existing statements into expressions (which is otherwise at least close to feasible).

          So… "use semicolons";, anyone? 😏

        • 11:01

          Getting ready to upgrade my main machine to macOS 11. First things first, though: I have a ton of musical scores in Sibelius format, I’ve since moved to Dorico, and my old version of Sibelius doesn’t launch on Big Sur. So: spending my morning exporting everything to .mxl.

      • 08

        • 09:22

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

      • 06

        • 20:14

          I’m in an archival mood this evening, so I’m exporting all my old Sibelius files into MusicXML and MIDI: proprietary formats are bad for long-term storage!

          Along the way, I’ve discovered music I wrote in the 2000s that I had completely forgotten about. 🤯

        • 13:28

          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!

      • 05

        • 16:32

          Cleaning up my Twitter follows list (cutting it from ~500 to ~50 tops) is a kind of hilarious way of seeing my own personal history reflected in the timeline of who I followed when. 😂

      • 02

        • 19:01

          I’m restraining myself from quoting from every. single. paragraph in John Webster’s , but wow: this book is packed. The quote I scheduled for tomorrow morning is positively 🔥.

    • Nov

      • 28

        • 11:46

          Robin Sloan has a great and glorious talent, and it is this: to take things we have learned to treat as mundane, and infuse them with enough mystery-or-magic-or-both that we feel the wonder of them again. It is genuinely marvelous.

        • 11:01

          A friendly notice, prompted by a conversation with a friend: you are not only welcome but encouraged to borrow from the design and content of this site — which are licensed under MIT and CC-BY 4.0 respectively. All you have to do is give credit and get your own font licenses!

      • 26

        • 15:58

          Playing around with Dendron a bit as an interesting note-taking tool. Not my thing, but it strikes me that the hierarchical” approach it takes could actually work very well with a traditional Luhmann-style Zettelkasten.

        • 10:59

          Sooooo much to learn about Logic Pro and the new virtual instruments I got via early-Black-Friday-sale… but I’m having a ridiculous amount of fun with it. (Good samples make a huge difference!)

      • 25

        • 10:09

          Just set up scheduled builds for this site using Netlify and GitHub Actions (following this handy guide) so that I can schedule drafts for the future and have them go live automatically.1 It’s pretty astounding how great these kinds of free tools are at this point.


          1. I know, this comes for free with WordPress, Ghost, etc. I like my static site generator, though: no server to manage is a big win. ↩︎

      • 24

        • 20:09

          I need to figure out how where to rehost my newsletter content. There was a lot of good stuff in there, even if it had the same challenge of any regularly-published content and thus a mix of stuff that is just fine as well.

        • 17:14

          I’ve just added an Updated’ section to my home page. Hopefully it’s a nice little signal that this site is a living space where I make changes from fixing typos and grammar to (potentially) outright changing my mind about something!

      • 15

        • 19:55

          Per the Geekbench scores, the new MacBook Air is about 65% faster in single-core and 75% faster in multi-core operations than my maxed-out 27″ iMac from early 2016. 🤯 Absolutely bonkers.

        • 19:43

          When I’m really worn out, I reread fiction I love. So yes, I did just reread Leviathan Wakes for the fifth or sixth time. #2020, people.

      • 13

        • 12:29

          The iPhone 12 Mini is slightly larger than the old 5/5S/SE line, but in the hand it feels the same. It’s wonderful.

      • 08

        • 15:56

          A thing I would love: Logic Pro on the iPad and a rich instrument sample library ecosystem to go with it. I love working on my big iMac, but I’d also love to be able to work in Logic and with great sounds on my iPad.

      • 07

        • 16:56

          A thing I’m extremely committed to: any orchestral sample libraries I buy must absolutely pay royalties to the musicians they recorded the samples with.

      • 03

        • 20:54

          Consider this your friendly semi-regular reminder from me that a really tightly-edited podcast is an enormous amount of work. A ~30-minute Winning Slowly episode normally takes a solid 3 – 4 hours of production” work!

        • 08:13

          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. 😂

    • Oct

      • 31

        • 12:45

          I have a sneaking suspicion that many things I used ad hoc and fairly complicated decision tables (sometimes in Excel!) for in the past, I will now at least sometimes use Prolog to solve instead.

        • 12:20
      • 27

        • 22:13

          Did my civic duty and voted this evening. One takeaway: there is an enormous gap in information about local politics. (Good luck finding out anything about a county judge’s record without just reading the court records yourself.) The internet effectively killed the previous version of local newspapers, and their replacement has yet to appear.

        • 16:22

          Today I set up my camera as a camera for using the just-released software support for it. Two observations:

          1. It works really well!
          2. I had no idea just how wide the lenses on the built-in webcams are until I set this up a foot away from me with a 35mm lens. 😅
      • 26

      • 25

        • 21:30

          Just finished reading Zeynep Tüfeçki’s utterly masterful Twitter and Tear Gas. The book is astonishing. It gave me better frames for thinking about a great many things I’ve been thinking about for a long time now, and it is a masterful work of academic scholarship presented in a way that just about anyone could read.

        • 15:07

          I’d love to see Apple put its money where its mouth is on privacy and human rights: iOS 15 should make it straightforward (even if not the default) to install apps from outside the App Store. Repressive regimes would hate it.

        • 10:03

          Learned how to use the INDEX and MATCH functions in spreadsheets this morning. I’m always amazed at how powerful spreadsheets are — and all with relatively simple tools.

      • 24

        • 10:33

          I continue to hold out hope that Apple will ship a 14″ laptop redesign akin to the 16″ they released last year — perhaps with the ARM transition. I love my 13″… but it’s just a hint too small.

      • 22

      • 21

      • 13

        • 20:15

          The iPhone 12: in which Apple finally returns to the best form factor the phone ever had. (And the Mini is closest to its best incarnation: the original SE.)

      • 12

        • 19:58

          After spending a year in aperture priority, I finally graduated this evening to manual mode with automatic ISO. It’s lovely. (And the Sony α7R IV, which I first tried out via rental exactly a year ago, is still just the best.)

      • 11

        • 17:30

          What I actually want for my website: an opinionated(-but-matches-my-opinions, of course) site generator written in Rust which acts like a static site generator but has a tiny server with a tiny CMS and uses Glimmer for its templating engine.

    • Sep

      • 30

      • 24

        • 09:21

          Every so often, I try to switch back to Sublime Text from VS Code, because Sublime is so much faster and lighter-weight. But the feature gap is just too big at this point. What I still — desperately — want: an editor with Code’s extensibility, but truly Mac-native and fast. (Onivim and Nova: both interesting, but not quite there in various ways.)

      • 23

        • 19:53

          Finally finished the Ruby chapter in Seven Languages in Seven Weeks and started into the chapter on Io… and am reminded why Io delighted me so much from the first time I encountered it half a decade ago. It’s just so incredibly elegant!

      • 22

        • 20:15

          I spent more time on this ~2,000-word post than any I’ve published in the last year. Net, I probably wrote around 8,000 words to get it down to the correct 2,000 in the end. And I’m still barely satisfied with it. Writing, people.

      • 20

      • 16

        • 20:02↩︎ — 

          Mere Orthodoxy — “defending nuance and word counts on the internet since 2005” and my favorite Christian publication anywhere period at this point — has launched a Kickstarter! I’m proud to have been published in its pages a few times over the years, and hope that this crowdfunding campaign succeeds such that I can actually be published in its physical pages in the years ahead.

      • 11

        • 08:37

          I miss Bee. Jira Cloud is fine, not great… and doesn’t work with Jira Server. le sigh

      • 07

        • 15:54

          Podcast pet peeve: interview hosts who talk over their guests, and don’t even bother to smooth it out with a light edit. It makes it really clear you’re not actually editing at all, and frankly shows a lack of respect for both the guest and the listeners!

    • Aug

      • 30

      • 29

        • 12:50

          On the defense (mounted too often) of someone’s ill behavior online that I know this person in real life and he’s not like this”: the internet is part of real life and what you do online is inescapably a part of your character.

      • 22

        • 11:27

          A reader replied to my previous note and informed me that Laravel’s Blade templates have components with slots” built in. Good for Blade! Now we just need everybody else to catch up…

      • 21

        • 16:35

          We really, really need server-side template languages to catch up to, you know, 2014, where components are a thing and you can do this:

          <Quote @src={{this.book}} @loc='p. 123'>
          Look ma! Content *within* a *component*!
          </Quote>
          

          Nunjucks/Jinja macros are the closest I’ve seen and… they’re not even close in terms of expressivity. This is why people build things with React/Vue/Ember/etc. just for server-side stuff: because the DX is miles ahead.

        • 09:20

          I’m ridiculously excited to sit down and listen to the whole of Christopher Tin’s newly-released To Shiver the Sky — an album I backed on Kickstarter back in early 2018. Worth the wait? YES.

      • 19

        • 21:06

          Almost fifteen years since the first time I encountered an RSS feed (and therewith XML), I actually spent the time tonight to learn what <![CDATA[...]]> is.

          Related: I believe I have (finally!) finished fixing my Atom feed output all the way. 😅

        • 09:42

          I can’t really listen to podcasts or watch talks and work at the same time. I also can’t watch talks and walk or run at the same time. What I can do is listen to talks and walk or run at the same time. But there are a lot of great talks I want to learn from!

          Solution: youtube-dl plus Overcast Premium’s file uploads feature. Boom.

      • 13

        • 13:54

          I just tried to switch to Slack and ask a colleague a question, and I could not for the life of me figure out why it wasn’t working: everything else I hit was.

          …then I remembered that I blocked Slack for the next hour and a half so I’d stay focused. 😂

      • 08

        • 17:36

          Finally decided to pick Seven Languages in Seven Weeks. I guess I’m finally going to have to spend more than twenty minutes with Ruby. 😅 (I’m mostly excited about Prolog, Clojure, and Haskell.)

        • 09:29

          Trying out something new this weekend: spending some time doing a weekly review, along similar lines to what Ben Kuhn does… if a bit more limited on the time allocated to the review.

      • 06

        • 08:13

          GitHub desperately needs better tools for conversations on issues, pull requests, etc. The new Discussions are a good start — but not enough. Give us threading, for goodness’ sake!

      • 04

        • 21:46

          Started reading Mary Midgley’s Evolution as a Religion for the September episodes of Winning Slowly. This is going to be quite the ride.

          (Let’s just say that her grasp on the problems of evolution-as-religion is better than her grasp on the nature of religion itself.)

      • 01

        • 13:57

          I find it incredibly annoying that Kobo audiobooks (unlike Audible?!) do not allow you to load the books you’ve purchased onto an MP3 player. WHYYYYYY?

    • Jul

      • 31

        • 20:32

          Reading Eric Gregory’s Politics & The Order of Love at the recommendation of an internet acquaintance. I’m… cautiously hopeful?

      • 30

        • 06:40

          Reda Lemeden, from whom I got the idea of This Week I Learned in the first place, on his own experience of the same challenges:

          But I remain convinced this is a habit I’d like to keep — if anything, it helps me rebuild confidence in my ability to follow through commitments of this kind.

          I had to make different choices by circumstance, but intellectual work as a kind of discipline is something I cannot affirm more heartily.

      • 28

        • 18:40

          Got our daughters iPods Nano — pre-touch screen! — and it’s delightful to watch them learn how to use this old” technology.

      • 25

        • 14:21

          For the technically minded among you: I just made some small tweaks to the site’s design… and you should note that you can always see what I’m up to and why by just reading the Git history.

      • 18

        • 07:12

          As I’ve been working working to build this site into something flexible and robust enough to handle all the kinds of things I want to do with it, I keep coming back to wanting to be able to define custom content types, and to easily compose them together. Markdown is great as a text authoring format, but it’s not rich enough for many things we do.

      • 17

        • 06:40

          If your love” for God or his church church leads you to scorn the ordinary Christians you know… you actually love something else. Idolatry comes in many guises.

      • 16

        • 12:30

          A thing about Apple Music that I absolutely hate: when you click Play on a recommended album or playlist, it changes the other recommendations. What if I wanted to try more than one of these?

    • Jun

      • 28

        • 15:59

          In semi-related news: my fingers are remembering how to play somewhat more complex things on the piano again, and it’s been really, really good for my soul.

        • 15:53

          Just published the last issue of my newsletter. It’s been a great run, but time to focus on other things — not least so I can actually finish some of those other things!

      • 27

        • 18:25

          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.

      • 19

        • 17:00

          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.

        • 13:00

          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?

      • 15

        • 15:08

          On the American political parties today:

          When someone walks up to me and asks, So who do you serve, Moloch or Mammon?” my answer is and must be — very simply — “Neither.”

      • 14

        • 17:50

          Making good diagrams that work well across screen sizes and in both light and dark mode takes a really astounding amount of work. (The essay for which I discovered this only manages the light/dark mode part of that and it was still kind of ridiculous!)

      • 07

        • 21:03

          Back at my week-level bullet journaling. It’s always helpful (even when I don’t get through everything on my list); I just need to make it stick!

    • May

      • 24

        • 11:46

          It astounds me that there is no text editor on iOS which gets everything right (like syntax highlighting) for writing about programming, and in fact none which do everything right on modern iOS, including keyboard and now pointer support, Files support, and syntax highlighting.

      • 17

      • 16

        • 09:00

          Status: I’m back to desperately wanting my own site engine. 11ty is incredibly flexible, and that’s great… but it gets slow very quickly if you’re generating large amounts of output. I will not shave this yak. I will not shave this yak. I will not…

      • 13

        • 20:27

          Next thing I’m thinking about with rewrite (while trying not to over-think): design systems! I want to build this in a scalable, maintainable way.

        • 08:11

          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.

      • 12

        • 10:15

          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.”

      • 10

        • 20:31

          A thing that has gotten way better since the last time I was messing with MIDI stuff: almost all hardware supports USB out now, instead of needing insane MIDI-to-USB adapters.

      • 09

        • 10:37

          Having used the iPad Magic Keyboard for a couple weeks now, and having typed on the one on the 16″ at a store a few months ago, I’m officially ready for this to be an external keyboard for my desktop Macs, too. It feels really good.

      • 08

        • 21:20

          Dear readers (and listeners-to-music!): I thought I had nothing to share from today’s composing… but I was wrong! I made some progress! If you saw the Day 5 post when it went up, pop back over and give the update a look’n’listen.

      • 06

        • 14:28

          Status: just emailed my old composition professor at OU asking for recommendations on orchestration books. ♬ The one class I really wish I’d taken while studying composition.

      • 05

        • 08:10

          A pain point for would-be readers with the way I’ve designed this site: there’s no easy way for people to subscribe to just one specific topic at present. I can generate per-topic feeds… but I’m already seeing painfully-rapid growth in build times.

      • 03

      • 02

        • 19:35

          Things fancy cameras cannot help with: setting your 𝑓-stop too low so you don’t get everyone in focus.

    • Apr

      • 29

        • 06:34

          New approach to goals: write a little every morning, work on rewrite a couple evenings a week. Trying to make massive amounts of progress is hard right now for a variety of reasons, but if I can make a little progress every week I’ll get somewhere.

      • 28

        • 21:07

          Apologies to folks who just got a bunch of posts in their feeds again. I finally figured out how to get Eleventy to treat my post dates correctly.

        • 20:45

          Weird but true: I really, really love writing docs. It’s always one of the most satisfying parts of any project for me.

      • 26

        • 09:00

          Between my new This Week I Learned entries, an interest in having all my notes in one place, and a desire to actually use my notes system more effectively I’m trying something new with my reading: notable things I read (and my comments on them) will now live in Bear instead of Pinboard. I expect this will help a lot with active review of my reading notes. (I may go ahead and do something I’ve thought about for a while and pull all of my Pinboard notes over to Bear, too!)

      • 25

        • 16:07

          I just updated the first entry in my This Week I Learned” series because I realized I’d left off a couple items I meant to include — the first items I bracketed for inclusion, in fact! What can I say? It was a long week. 😅

    • Mar

      • 30

        • 21:26

          Almost nothing makes me as irritable as tendentious or hagiographical histories. Don’t glamorize or villainize the people of the past: tell the truth.

      • 28

      • 25

        • 21:12

          Trying out cursor support on iPad OS 13.4 for the first time this evening, as well as having remapped Caps Lock to Ctrl (as it should be), and… the experience is simultaneously incredibly delightful and really, really weird. Weird in a good way, but weird.

      • 21

        • 17:21

          Perhaps the single most-broken thing in iOS’ Files app: the fact that you cannot specify a default app to open a file in. An arbitrary app wins. It’s infuriating.

      • 08

        • 19:42

          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. 😅

        • 16:13

          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

        • 10:34

          Wanted: something like The Archive, but for iOS. Bear is beautiful and I love it, but I want my notes on disk because then I can do anything with them from anywhere — not just what one app can come up from. (And yes, a document object model like people dreamt of in the 90s would also solve this well, but for today I’ll take what I can get.)

          And yes, this is what I’m working on with rewrite.

      • 05

        • 20:46

          I’m not quite sure how this had never occurred to me before the last week or so, but I ordered some refills for my current favorite gel pen and it only at that point occurred to me that I could put those refills in a different pen case. 😂 At some point I’ll have to try that.

        • 14:35

          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!

      • 01

        • 18:09

          After digging in further: Zig is not doing quite what Rust is. It is an updated C, which eliminates some of the worst foot-guns, but fundamentally does not try to eliminate memory-unsafety… which profoundly disappoints me, even if I still wish Zig success.

        • 14:33

          Zig is the first language that I’ve seen which seems interested in seriously playing in the same space as Rust.

          And it does it in a substantially different way, which I like! It feels (reading docs) kind of like a doing the kinds of things Rust does but with C instead of C++ as its direct competitor.”

    • Feb

      • 29

        • 16:41

          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.

        • 15:38

          This feels good. Substantial increase of January’s time and mileage… despite the fact that this ended up being something like the 4th snowiest February on record along the Colorado Front Range! I spent a loooooot of time running in the snow this month.

          image of February Strava stats, much higher than January's
        • 11:30

          A quick sketch of an idea which I hope to test out by the end of the day: the best way to handle responsive” routing in an Elm app — for a master-detail view where the master view isn’t visible when at a detail route on screens below a sufficient size — is to just use a port and send a message on screen size change.

      • 28

        • 20:03

          Parenting is without a doubt both the most rewarding and the most tiring thing I do, full stop, bar none. My daughters are amazing, and also they are full-fledged humans with all their own wants and needs… but still very little practice as yet at being humans.

      • 23

        • 17:25

          I’ve spent a good chunk of this afternoon working through and tweaking and fixing some things about this website, and as much as I like 11ty, at this point I would love to be doing this work in Elm instead. A tool like elm-pages seems very appealing.

          As for why: I just spend a lot of time sad about JS sorry bro that’s undefined stuff and templates being totally type-unaware. Even something like Gatsby + TS would probably be better here, but Elm’s rigor and top-to-bottom integration of types and rendered HTML and CSS would be a huge win for the way I build websites.

      • 20

        • 08:15

          I just got curious so I looked up: Winning Slowly has published 120 episodes in the last 6 years! Sloooow but steady (as is only right 😂). Averages out to ~20/year, which is surprisingly high given the last couple years, but we were churning them out fast those first couple seasons.

      • 19

        • 20:21

          This is, perhaps, a little odd, but: one of the little things I’m most excited about with Winning Slowly right now is that — at long last, and years overdue — we’re actually doing something with Patreon. We’ve had it, and had minor benefits for it for a long time. Now we’re taking it seriously: keeping it up to date, publishing extra materials there, etc. Crazy talk, I know!

      • 18

        • 13:20

          One thing that makes me eager to upgrade to the next-gen iPad when it comes out (…and I’m actually seriously contemplating the 12.9″ this time around) is how fabulous it is to be able to do the entire workflow for things like cameras on it with just normal cables.

          It is already my default device for photo editing (Lightroom on iPad is 💯) and I think it’s going to be my default for podcast editing after having done Winning Slowly 8.03 in Ferrite. (To anyone interested in podcasting, I’d absolutely recommend Ferrite over anything else out there at this point. The experience of editing a podcast with that app and an Apple Pencil is just phenomenal.)