Notes

Microblogging — done old-school. Subscribe via Atom or JSON feed (what’s a feed?).

  • 2021

    • Jun

      • 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 Holiness, 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

        • 20:24

          Well, it only took me till almost six months after launching this site revision, but the About page is finally finished!

        • 13:05

          I got curious, and (after some command-line shenanigans) figured out that I’ve written/collected about 22,000 words of notes in my Zettelkasten so far in 2020. That’s… a lot of notes. 😅

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