commit 4eb0622a0f9f6572335a7e78289fcebfeca1669b parent 58233de7042f4349f472d2e40c93721ff23f8574 Author: David Eisinger <[email protected]> Date: Sat, 10 Oct 2026 15:14:23 -0400 Update alt text Diffstat:
60 files changed, 244 insertions(+), 244 deletions(-)
diff --git a/content/elsewhere/gifts-for-your-nerd/index.md b/content/elsewhere/gifts-for-your-nerd/index.md @@ -9,7 +9,7 @@ Shopping for a nerd this holiday season? A difficult proposition, to be sure. We are, after all, complicated creatures. Fortunately, Viget Extend is here to help. Here are some gifts your nerd is sure to love. -{{<dither dce_iamakey.jpg "" "inline">}}A silver metal key with a rectangular bow and round hole sits upright against a white backdrop.{{</dither>}} [**Lacie iamaKey Flash Drive**](https://www.amazon.com/LaCie-iamaKey-Flash-Drive-130870/dp/B001V7XPSA) **($30)** +{{<dither dce_iamakey.jpg "" "inline">}}A silver key with a rectangular head and a small round hole, shown upright with the blade pointing down against a white background.{{</dither>}} [**Lacie iamaKey Flash Drive**](https://www.amazon.com/LaCie-iamaKey-Flash-Drive-130870/dp/B001V7XPSA) **($30)** If your nerd goes to tech conferences with any regularity, your residence is already littered with these things. USB flash drives are a @@ -17,7 +17,7 @@ dime a dozen, but this one's different: stylish and rugged, and since it's designed to be carried on a keychain, it'll always around when your nerd needs it. -{{<dither dce_aeropress.jpg "" "inline">}}Hand pressing an Aeropress over a clear mug as the coffee brews.{{</dither>}} [**AeroPress**](https://www.amazon.com/AeroPress-Coffee-and-Espresso-Maker/dp/B000GXZ2GS) **($25)** +{{<dither dce_aeropress.jpg "" "inline">}}A hand presses down on the plunger of a tall, clear coffee maker positioned over a glass mug.{{</dither>}} [**AeroPress**](https://www.amazon.com/AeroPress-Coffee-and-Espresso-Maker/dp/B000GXZ2GS) **($25)** A simple device that makes a cup of espresso better than machines costing twenty times as much. Buy this one for your nerd and wake up to @@ -26,24 +26,24 @@ gift that keeps on giving. If espresso gives your nerd the jitters, you can't go wrong with a [french press](https://www.amazon.com/Bodum-Chambord-4-Cup-Coffee-Press/dp/B00012D0R2/). -{{<dither dce_charge_tee.jpg "" "inline">}}Cozy heather tee showing a bold battery icon with a lightning bolt, perfect for keeping your charge on display.{{</dither>}} [**SimpleBits Charge Tee**](http://shop.simplebits.com/product/charge-tee-tri-blend) **($22)** +{{<dither dce_charge_tee.jpg "" "inline">}}A gray T-shirt with a black battery icon containing a lightning bolt.{{</dither>}} [**SimpleBits Charge Tee**](http://shop.simplebits.com/product/charge-tee-tri-blend) **($22)** Simple, vaguely Mac-ish graphic printed on an American Apparel Tri-Blend tee, no lie the greatest and best t-shirt ever created. -{{<dither dce_hard_graft.jpg "" "inline">}}Vario customs leather roll atop an aged brick, lit like a moody product still-life.{{</dither>}} [**Hard Graft iPhone Case**](http://shop.hardgraft.com/product/base-phone-case) **($60)** +{{<dither dce_hard_graft.jpg "" "inline">}}A brown rectangular object rests on a shallow silver tray against a dark background, with small red lights nearby.{{</dither>}} [**Hard Graft iPhone Case**](http://shop.hardgraft.com/product/base-phone-case) **($60)** Your nerd probably already has a case for her iPhone, but it's made of rubber or plastic. Class it up with this handmade leather-and-wool case. Doubles as a slim wallet if your nerd is of the minimalist mindset, and here's a hint: we all are. -{{<dither dce_ignore.jpg "" "inline">}}Hand holding a cartoon card that reads “Ignore Everybody and 39 Other Keys to Creativity,” evoking a rebellious creative manifesto.{{</dither>}} [**Ignore Everybody**](https://www.amazon.com/Ignore-Everybody-Other-Keys-Creativity/dp/159184259X) **by Hugh MacLeod ($16)** +{{<dither dce_ignore.jpg "" "inline">}}A white poster featuring small close-up photos of bare skin across the top and a larger cropped photo of a bare torso below.{{</dither>}} [**Ignore Everybody**](https://www.amazon.com/Ignore-Everybody-Other-Keys-Creativity/dp/159184259X) **by Hugh MacLeod ($16)** Give your nerd the motivation to finish that web application he's been talking about for the last two years so you can retire. -{{<dither dce_moleskine.jpg "" "inline">}}A well-loved black Moleskine notebook resting on a wooden table, elastic strap tucked neatly around its cover.{{</dither>}} [**Moleskine Notebook**](https://www.amazon.com/Moleskine-Squared-Notebook-Cover-Pocket/dp/8883707125) **($10)** +{{<dither dce_moleskine.jpg "" "inline">}}A closed black notebook with cream-colored pages on a wooden table.{{</dither>}} [**Moleskine Notebook**](https://www.amazon.com/Moleskine-Squared-Notebook-Cover-Pocket/dp/8883707125) **($10)** What nerd doesn't love a new notebook? Just make sure it's graph paper; unlined paper was not created for mathematical formulae and drawings of @@ -52,18 +52,18 @@ Notes](http://fieldnotesbrand.com). As for pens, I highly, *highly* recommend the [Uni-ball Signo](http://www.jetpens.com/product_info.php/cPath/239_90/products_id/466). -{{<dither dce_canon.jpg "" "inline">}}Canon point-and-shoot camera with pop-up flash ready for action.{{</dither>}} [**Canon PowerShot S90**](https://www.amazon.com/dp/B002LITT42/) **($400)** +{{<dither dce_canon.jpg "" "inline">}}Black Canon compact digital camera with an extended lens and raised flash, viewed from the front.{{</dither>}} [**Canon PowerShot S90**](https://www.amazon.com/dp/B002LITT42/) **($400)** Packs the low-light photographic abilities of your nerd's DSLR into a compact form factor that fits in his shirt pocket, right next to his slide rule. -{{<dither dce_newegg.png "" "inline">}}Stylized Newegg gift card design featuring layered egg shapes with orange swooshes.{{</dither>}} [**Newegg Gift Card**](https://secure.newegg.com/GiftCertificate/GiftCardStep1.aspx) +{{<dither dce_newegg.png "" "inline">}}Newegg logo with overlapping egg shapes and partially cropped “Gift Card” text on a white background with orange corners.{{</dither>}} [**Newegg Gift Card**](https://secure.newegg.com/GiftCertificate/GiftCardStep1.aspx) If all else fails, a gift card from [Newegg](http://newegg.com) shows you know your nerd a little better than the usual from Amazon. -{{<dither dce_moto_guzzi.jpg "" "inline">}}Chrome-framed Moto Guzzi gleams against a hazy mountain sunset.{{</dither>}} [**Moto Guzzi V7 Classic**](http://www.autoblog.com/2009/09/30/review-moto-guzzi-v7-classic-is-an-italian-beauty-you-can-live/) **($8500)** +{{<dither dce_moto_guzzi.jpg "" "inline">}}A white and black motorcycle parked on pavement beside a rocky hillside.{{</dither>}} [**Moto Guzzi V7 Classic**](http://www.autoblog.com/2009/09/30/review-moto-guzzi-v7-classic-is-an-italian-beauty-you-can-live/) **($8500)** Actually, this one's probably just me. diff --git a/content/elsewhere/html-sanitization-in-rails-that-actually-works/index.md b/content/elsewhere/html-sanitization-in-rails-that-actually-works/index.md @@ -40,7 +40,7 @@ page, not to mention what a `<div>` can do. Self-closing tags are okay. With these requirements in mind, we subclassed HTML::WhiteListSanitizer and fixed it up. Introducing, then: -{{<dither jason_statham.jpg "" "inline">}}Jason Statham stands in a sharp suit, glaring intently under the midday sun.{{</dither>}} +{{<dither jason_statham.jpg "" "inline">}}A man with closely cropped hair and stubble wearing a dark pinstriped suit and striped shirt, looking to the side against a blue sky.{{</dither>}} [**HTML::StathamSanitizer**](https://gist.github.com/241114). User-generated markup, you're on notice: this sanitizer will take its diff --git a/content/elsewhere/level-up-your-shell-game/index.md b/content/elsewhere/level-up-your-shell-game/index.md @@ -31,7 +31,7 @@ favorites: - [Invoking Remote Commands with SSH](#invoking-remote-commands-with-ssh) -Ready to get your {{<dither neckbeard.png "" "inline">}}Grinning caricature with messy hair, glasses, and a scruffy beard.{{</dither>}} on? Good. Let's go. +Ready to get your {{<dither neckbeard.png "" "inline">}}Pixel art of a yellow face with wide eyes, raised eyebrows, and a broad, toothy grin.{{</dither>}} on? Good. Let's go. ## Keyboard Shortcuts diff --git a/content/elsewhere/making-an-email-powered-e-paper-picture-frame/index.md b/content/elsewhere/making-an-email-powered-e-paper-picture-frame/index.md @@ -15,7 +15,7 @@ something similar. <!--more--> -{{<dither IMG_0120.jpeg>}}A wood-and-glass stand displays a grayscale portrait, sitting beside amber glasses and books on a tidy desk.{{</dither>}} +{{<dither IMG_0120.jpeg>}}Wooden tabletop frame with a clear acrylic cover displaying a grayscale portrait of a bearded man in a plaid shirt.{{</dither>}} In short, it's a Raspberry Pi Zero connected to a roughly 5-by-7-inch e-paper screen, running some software I wrote in Go and living inside a @@ -53,7 +53,7 @@ extracts the attachments from the email, crops them a couple of ways (one for display on a webpage, the other for display on the screen), and uploads the results into an S3 bucket. -{{<dither Screen_Shot_2021-05-09_at_1_26_39_PM.png>}}A web dashboard shows a green banner announcing “Photo image_50434049.JPG displayed!” above a grid of blurred photo thumbnails, each with a blue “Display” button beneath it in a browser window titled “192.168.4.61”.{{</dither>}} +{{<dither Screen_Shot_2021-05-09_at_1_26_39_PM.png>}}Browser showing a photo gallery with nine pixelated thumbnails in a three-column grid, each with a blue Display button. A green notification reads “Photo image_50434049.JPG displayed!”{{</dither>}} ## The Software @@ -149,7 +149,7 @@ And that should be it. The photo gallery should be accessible at a local IP and the photo should update hourly (though not ON the hour as that's not how `cron.hourly` works for some reason). -{{<dither IMG_0122.jpeg>}}Wooden DIY stand cradling a small circuit board with a ribbon cable looped through.{{</dither>}} +{{<dither IMG_0122.jpeg>}}Rear view of a wooden display stand with a small circuit board on its base and a flat ribbon cable passing through a hole in the upright panel.{{</dither>}} ## Building the Frame diff --git a/content/elsewhere/on-confidence-and-real-time-strategy-games/index.md b/content/elsewhere/on-confidence-and-real-time-strategy-games/index.md @@ -10,7 +10,7 @@ developer. But before I do that, I want to talk about *[Z](https://en.wikipedia.org/wiki/Z_(video_game))*, a real-time strategy game from the mid-'90s. -{{<dither 256px-Z_The_Bitmap_Brothers.PNG "" "inline">}}Battle-hardened robot cowboy Cmdr. Zod sprays bullets amid explosions on the cover of “Z” by The Bitmap Brothers.{{</dither>}} +{{<dither 256px-Z_The_Bitmap_Brothers.PNG "" "inline">}}Cover art for Z by The Bitmap Brothers, showing a green armored robot in a black cowboy hat and sunglasses firing a large gun amid flames and flying shell casings.{{</dither>}} In other popular RTSes of the time, like *Warcraft* and *Command and Conquer*, you collected `/(gold|Tiberium|Vespene gas)/` and used it to diff --git a/content/elsewhere/simple-app-stats-with-statboard/index.md b/content/elsewhere/simple-app-stats-with-statboard/index.md @@ -16,7 +16,7 @@ Engine](http://edgeapi.rubyonrails.org/classes/Rails/Engine.html) to display some basic stats. Announcing, then, [StatBoard](https://github.com/vigetlabs/stat_board): -{{<dither screenshot.png>}}Minimalist “StatBoard” dashboard in a browser, showing overall, monthly, and weekly counts for offices, players, users, games, and matches.{{</dither>}} +{{<dither screenshot.png>}}StatBoard dashboard showing overall, monthly, and weekly totals: offices 83, 1, 0; players 174, 3, 0; users 124, 2, 0; games 67, 2, 0; and matches 526, 45, 3.{{</dither>}} Installation is a cinch: add the gem to your Gemfile, mount the app in `routes.rb`, and set the models to query (full instructions available on diff --git a/content/elsewhere/simple-secure-file-transmission/index.md b/content/elsewhere/simple-secure-file-transmission/index.md @@ -54,7 +54,7 @@ From here, I'd move the encrypted file to my Dropbox public folder and send Chris the generated link, as well as the output of `encrypt.sh`, over IM: -{{<dither lSEsz5z.jpg "" "inline">}}Instant message thread where David Eisinger shares a Dropbox link and an OpenSSL command, and Chris Jones replies “got it” one minute later in the muted IM client window.{{</dither>}} +{{<dither lSEsz5z.jpg "" "inline">}}Chat window titled “Chris Jones.” David Eisinger shares a Dropbox link to production.pem.enc and an OpenSSL command to decrypt it using the password “XXX.” Chris Jones replies, “got it.”{{</dither>}} Once he acknowledges that he's received the file, I immediately delete it. @@ -65,7 +65,7 @@ Now I need to send Chris the password. Here's what I **don't** do: send it to him over the same channel that I used to send the file itself. Instead, I pull out my phone and send it to him as a text message: -{{<dither pQHZlkO.jpg "" "inline">}}Text exchange showing one friend confidently promising, “I can get you a toe by 3 o’clock this afternoon,” and the other dryly replying, “With nail polish?”{{</dither>}} +{{<dither pQHZlkO.jpg "" "inline">}}Screenshot of an iPhone text conversation with Chris Jones. One message reads, “I can get you a toe by 3 o'clock this afternoon.” The reply reads, “With nail polish?”{{</dither>}} Now Chris has the file, instructions to decrypt it, and the passphrase, so he's good to go. An attacker, meanwhile, would need access to both diff --git a/content/elsewhere/stackstash-taking-bookish-musings-to-the-next-level/index.md b/content/elsewhere/stackstash-taking-bookish-musings-to-the-next-level/index.md @@ -29,7 +29,7 @@ information. It's easy to look at a book and see all of the people who have mentioned it (and how they felt about it) or look at a person and see all of the books they've mentioned (and how they felt about them). -{{<dither Group-9_2024-04-08-184917_kfjg.png "800x">}}StackStash mobile screens showcase browsing features: a curated “next great read” feed, searchable library, detailed book spotlight, and Viget staff recommendations.{{</dither>}} +{{<dither Group-9_2024-04-08-184917_kfjg.png "800x">}}Four mobile views of StackStash, a book recommendation website: a homepage with search, a surprise book picker, and recent reads; a searchable book list; a detail page for A Court of Thorns and Roses with reader reactions and comments; and a searchable member list with portraits and book thumbnails.{{</dither>}} ## Behind the Scenes @@ -69,7 +69,7 @@ chance to try some new things: - [Docker](https://www.docker.com/) for local development and deployment -{{<dither CleanShot-2024-04-08-at-14.01.35.png "800x">}}Browser talks to a Caddy-powered Remix app inside Docker, which hits a Laravel service to reach the DB plus external APIs (Slack, OpenAI, OpenLibrary).{{</dither>}} +{{<dither CleanShot-2024-04-08-at-14.01.35.png "800x">}}Architecture diagram showing a browser pointing to a Docker environment containing Caddy, Remix, Laravel, and a database. Arrows lead from Caddy to Remix, Remix to Laravel, and Laravel to the database and external services Slack, OpenAI, and Open Library.{{</dither>}} ## What We Learned diff --git a/content/elsewhere/using-microcosm-presenters-to-manage-complex-features/index.md b/content/elsewhere/using-microcosm-presenters-to-manage-complex-features/index.md @@ -32,7 +32,7 @@ potentially malicious. The logic is roughly defined as follows: Here's a flowchart that might make things clearer (did for me, in any event): -{{<dither URfAcl9.png>}}Hand-drawn state diagram showing a workflow progressing from “Start” through states like “Changed,” a “modified?” decision node, and either “Validated” or “Modified,” with arrows labeled “apply,” “revert,” “update,” and “preview” looping back to an “Unfocused” end state.{{</dither>}} +{{<dither URfAcl9.png>}}Hand-drawn flowchart with Start, Changed, Validated, Modified, and Unfocused states. Typing moves Start or Validated to Changed. Preview leads to a “modified?” decision: no leads to Validated, yes to Modified. Reject returns Modified to Changed; apply returns Validated or Modified to Start. All four states have arrows to Unfocused.{{</dither>}} This feature is too complex to handle with React component state, but too localized to store in application state (the main Microcosm diff --git a/content/elsewhere/viget-devs-storm-chicago/index.md b/content/elsewhere/viget-devs-storm-chicago/index.md @@ -5,7 +5,7 @@ draft: false canonical_url: https://www.viget.com/articles/viget-devs-storm-chicago/ --- -{{<dither 53100874_f605bd5f42_m.jpg "" "inline">}}Chicago Theatre’s neon marquee glowing over State Street at night.{{</dither>}} +{{<dither 53100874_f605bd5f42_m.jpg "" "inline">}}Chicago Theatre at night, with its vertical sign, marquee, and ornate facade illuminated in yellow lights.{{</dither>}} This past weekend, Ben and I traveled to Chicago to speak at [Windy City Rails](http://windycityrails.org/). It was a great conference; diff --git a/content/elsewhere/whats-in-a-word-building-a-verbose-party-game/index.md b/content/elsewhere/whats-in-a-word-building-a-verbose-party-game/index.md @@ -32,7 +32,7 @@ It's easier to play than explain, so mosey on over to to know more about how each of us fared going heads down on one project for 48 hours (and counting), read on. -{{<dither 662shots_so-1.png>}}Three iPhones show different moments of the colorful word-game “verbose,” from starting a game to guessing and celebrating with playful pastel panels.{{</dither>}} +{{<dither 662shots_so-1.png>}}Three overlapping smartphones display the Verbose word game’s start screen, hint submission screen, and successful guess screen against a mint-green background.{{</dither>}} ## [**Haley**](https://www.viget.com/about/team/hjohnson/) **\| Pointless Role: Design \| Day Job: PM** @@ -141,7 +141,7 @@ automatically sets up HTTPS and proxies traffic to our Remix app: Our overall architecture (running with `docker compose`) looks like this: -{{<dither verbose-arch.png>}}Flowchart showing a Caddy frontend feeding into Remix, which in turn drives a Rails backend that splits into Postgres and Redis services.{{</dither>}} +{{<dither verbose-arch.png>}}Hand-drawn flowchart with arrows from Caddy to Remix to Rails, then branching from Rails to Postgres and Redis. Each label is highlighted in yellow.{{</dither>}} ------------------------------------------------------------------------ diff --git a/content/journal/dispatch-10-december-2023/index.md b/content/journal/dispatch-10-december-2023/index.md @@ -29,8 +29,8 @@ We spent the week of Thanksgiving with my sister near Albany, New York. Tough dr <!--more--> -{{<dither IMG_9217.jpg "782x">}}Tiny explorer discovering the first snowfall, arms wide open to catch the magic.{{</dither>}} -{{<dither IMG_5088.jpg "782x">}}Three bundled-up kiddos in matching polar bear jammies ride the train, grinning and wide-eyed for adventure.{{</dither>}} +{{<dither IMG_9217.jpg "782x">}}A child in a patterned winter jacket and pink pants holds their hands out in falling snow beside a snow-covered bench at night.{{</dither>}} +{{<dither IMG_5088.jpg "782x">}}Three young children sit together on a padded bench, wearing matching gray polar bear pajamas. The child on the right also wears a dark unicorn-patterned jacket.{{</dither>}} In what's now I guess an annual tradition, I ran a 10K the morning of Thanksgiving, this time the [Troy Turkey Trot][2]. I felt great, and I'm happy with my time ([results][3], [certificate][4]). Claire joked that after you run a marathon, a half-marathon becomes your favorite race distance. That's how I feel about 10Ks -- it's like the first half of a half-marathon, before it really starts to suck. diff --git a/content/journal/dispatch-11-january-2024/index.md b/content/journal/dispatch-11-january-2024/index.md @@ -46,8 +46,8 @@ That's a wrap on 2023. Our little Nevie turned two in December. It's hard to ima <!--more--> -{{<dither IMG_5187.jpeg "782x600">}}Little birthday star gears up for cake with a huge bite of anticipation.{{</dither>}} -{{<dither IMG_5278.jpeg "782x600">}}Little conductor, big adventure: riding the crimson dining car with a bright red toy in hand.{{</dither>}} +{{<dither IMG_5187.jpeg "782x600">}}A curly-haired child holds frosting-covered fingers near their open mouth beside a small white cake with two candles, with another child and adults in the background.{{</dither>}} +{{<dither IMG_5278.jpeg "782x600">}}A young child with curly hair holds a small red cup out through the window of a red play train carriage with gold trim.{{</dither>}} We're on a bit of a purge, trying to free up some space in the house. It's an overwhelming project (how did we acquire so much stuff?) but we're taking it one step at a time. I've been building new shelves and put up [guitar hangers][3] to clear up some floor space. I've taken inspiration from [this post about office organization][4] and [this one about maintaining a list of where to find things][5]. @@ -55,8 +55,8 @@ We're on a bit of a purge, trying to free up some space in the house. It's an ov [4]: https://www.chrbutler.com/organization-office [5]: https://analogoffice.net/2023/05/31/the-lifechanging-magic.html -{{<dither IMG_5344.jpeg "782x600">}}Neatly labeled storage bins sit on fresh wooden shelves in a basement utility space, ready for more organization.{{</dither>}} -{{<dither IMG_5346.jpeg "782x600">}}- Two well-loved guitars hang on a homemade wall rack, showcasing their vintage vibe amid the bare workshop framing.{{</dither>}} +{{<dither IMG_5344.jpeg "782x600">}}Wooden shelves mounted to exposed wall studs hold labeled black storage bins with red latches. Lower shelves are mostly empty, with a translucent lidded bin at the bottom.{{</dither>}} +{{<dither IMG_5346.jpeg "782x600">}}A sunburst electric bass with a cream pickguard and a natural wood electric guitar with a black pickguard hang side by side on exposed wooden framing beside diagonal metal braces.{{</dither>}} Music-wise, I received an [Arturia KeyStep 37][6] as a Christmas gift from my in-laws. This thing is super nice; I'm already having a blast using it to play my existing gear, and I'm hoping it'll play a big role as I shift to a more computer-based workflow. Here's a new track called "Orographic": diff --git a/content/journal/dispatch-12-february-2024/index.md b/content/journal/dispatch-12-february-2024/index.md @@ -81,8 +81,8 @@ We spent MLK weekend with my folks in the Shenandoah Valley, and visited [Luray <!--more--> -{{<dither IMG_2374.jpeg "782x1200">}}Cozy campfire smiles: bundled up in a bright blanket as mother and child enjoy a wintery evening in the woods.{{</dither>}} -{{<dither IMG_9637.jpeg "782x1200">}}Bundled up in teal and blush, this little snow explorer grins at winter’s wonderland.{{</dither>}} +{{<dither IMG_2374.jpeg "782x1200">}}An adult and a young child sit together under a bright blue patterned blanket in a wooded area, with stacked logs and smoke in the foreground.{{</dither>}} +{{<dither IMG_9637.jpeg "782x1200">}}A smiling child stands in the snow wearing a teal jacket, pink pants, gray boots, and a gray knit hat, with snow-covered shrubs behind them.{{</dither>}} I signed up for the [Wrightsville Beach Valentine Run][2] 10K in early February, which has added a little bit of focus to my running without the commitment of half-marathon training and gives us a good excuse to spend a weekend with Claire's sister in Wilmington. Might try to keep that going, finding organized 10Ks in places we want to visit. @@ -90,10 +90,10 @@ I signed up for the [Wrightsville Beach Valentine Run][2] 10K in early February, I stumbled on [this article][3] ([via][4]) about an iOS feature that periodically updates your lock screen to a random photo of a selected person. It is ... delightful. -{{<dither IMG_5439.PNG "374x850">}}Calm little trendsetter in a blue romper and bow, giving that curious side-eye before nap time.{{</dither>}} -{{<dither IMG_5431.PNG "374x850">}}Baby’s whole face says “I regret nothing” as the entire yogurt brick goes straight to the mouth.{{</dither>}} -{{<dither IMG_5398.PNG "374x850">}}Saturday morning mischief: wide-eyed baby covered head to toe in chocolate, proudly perched in a high chair at 8:07 a.m.{{</dither>}} -{{<dither IMG_5348.PNG "374x850">}}Little foodie-in-training: orange beret, green turtleneck, carrot doll, and serious chef vibes on a January morning.{{</dither>}} +{{<dither IMG_5439.PNG "374x850">}}Phone lock screen showing a baby wearing a blue bodysuit and white knotted headband, lying on a rug patterned with black guitars. The screen displays 6:46 on Tuesday, January 23.{{</dither>}} +{{<dither IMG_5431.PNG "374x850">}}Phone lock screen showing a baby in a high chair wearing a green bib, with a cracker in their mouth and food smeared around their mouth and on the tray. The screen displays Wednesday, January 17, at 5:11.{{</dither>}} +{{<dither IMG_5398.PNG "374x850">}}Phone lock screen showing 8:07 on Saturday, January 13, over a photo of a smiling baby in a high chair with brown food smeared across their face, chest, arms, hands, and tray.{{</dither>}} +{{<dither IMG_5348.PNG "374x850">}}Phone lock screen showing a young child wearing an orange pumpkin hat and dark green shirt, holding a doll with a matching pumpkin hat. The screen displays Thursday, January 11, at 11:20.{{</dither>}} [3]: https://www.theatlantic.com/technology/archive/2024/01/iphone-grief-dynamic-wallpaper/677034/ [4]: https://sixcolors.com/link/2024/01/grief-and-a-photo-shuffle/ diff --git a/content/journal/dispatch-13-march-2024/index.md b/content/journal/dispatch-13-march-2024/index.md @@ -87,10 +87,10 @@ Highlights this month: a weekend in Wilmington, a successful 10K, and a solo dad <!--more--> -{{<dither race_121539.jpg "374x480">}}Runner #534 strides past the parking lot, focused on the finish line during a road race.{{</dither>}} -{{<dither IMG_5536.jpeg "374x480">}}Bubble crown on a giggly bath-time monarch.{{</dither>}} -{{<dither IMG_5547.jpeg "374x480">}}Little beach explorer with curls kneeling in the sand, studying every grain.{{</dither>}} -{{<dither IMG_5576.jpeg "374x480">}}Little rider proudly pauses under the pavilion, ready to take on the next lap on their bright green balance bike.{{</dither>}} +{{<dither race_121539.jpg "374x480">}}Runner wearing sunglasses, a dark cap, navy long-sleeved shirt, gray shorts, and race bib 534 runs on pavement near an orange traffic cone.{{</dither>}} +{{<dither IMG_5536.jpeg "374x480">}}A smiling young child in a bathtub filled with bubbles, with suds resting on their curly hair.{{</dither>}} +{{<dither IMG_5547.jpeg "374x480">}}A young child with curly blond hair, wearing a pink shirt and rolled-up jeans, crouches barefoot on a sandy beach and touches the sand.{{</dither>}} +{{<dither IMG_5576.jpeg "374x480">}}A child wearing a blue polka-dot helmet sits on a green balance bike under a covered pavilion, looking back at the camera.{{</dither>}} Here's a new track called "Arcus" -- smash play and read on. diff --git a/content/journal/dispatch-14-april-2024/index.md b/content/journal/dispatch-14-april-2024/index.md @@ -51,8 +51,8 @@ Busy March! My whole family came into town for a long weekend, then we headed do <!--more--> -{{<dither C800D921-B641-41B3-88F2-992A9121F331.jpeg "782x580">}}Dad reads a bedtime story while both kids cuddle close and help turn the pages.{{</dither>}} -{{<dither IMG_0194.jpeg "782x580">}}Father and toddler laughing together on the pier as the sun sets behind them.{{</dither>}} +{{<dither C800D921-B641-41B3-88F2-992A9121F331.jpeg "782x580">}}An adult wearing glasses sits with two young children, holding an open picture book in front of them.{{</dither>}} +{{<dither IMG_0194.jpeg "782x580">}}A smiling adult wearing glasses and a cap holds a laughing toddler in a pink outfit beside the water at sunset.{{</dither>}} We had such a good time at the race [last month][1] that we all decided to sign up for the [Steve Haydu St. Patrick's Lo Tide Run][2]. I didn't do quite as well ([results][3], [certificate][4]) but I had a great time and I got to catch the last mile or so of the 5K with Claire and Nev (my tiny runner). @@ -69,8 +69,8 @@ I picked up a [Roland SP-404][5] sampler -- this thing's super neat. It gives me I added some shelves to my existing workbench to hold all my music gear. Feeling good about this setup assuming I don't buy anything else (😬). -{{<dither IMG_5742.jpeg "782x580">}}A cozy basement workbench doubles as a synth playground, with keyboards and controllers neatly lined up under soft task lighting.{{</dither>}} -{{<dither IMG_5741.jpeg "782x580">}}Cozy basement maker space with a wood workbench, tools and a hanging bike, ready for a DIY session.{{</dither>}} +{{<dither IMG_5742.jpeg "782x580">}}Electronic keyboards, synthesizers, and a pad controller on two wooden shelves above a workbench with a lamp and cutting mat, surrounded by bicycles, tools, and exposed pipes in an unfinished basement.{{</dither>}} +{{<dither IMG_5741.jpeg "782x580">}}Wooden workbench in an unfinished basement, with a cutting mat, open notebook, bag, and adjustable lamp. Shelves above hold electronic keyboards and audio equipment, with a bicycle, tower fan, and laptop to the right.{{</dither>}} I read a bunch of great books this month. The standout was certainly [_Sea of Tranquility_][6] by Emily St. John Mandel (read [_The Glass Hotel_][7] first). I also enjoyed [_Tress of the Emerald Sea_][8] -- classic Sanderson shit. diff --git a/content/journal/dispatch-15-may-2024/index.md b/content/journal/dispatch-15-may-2024/index.md @@ -48,11 +48,11 @@ Big news, friends: we're expecting a second kid in June. To celebrate, Claire an <!--more--> -{{<dither IMG_0733.jpeg "782x782">}}Sunlit boardwalk ride between dunes and sea, smiling rider taking in the view.{{</dither>}} -{{<dither IMG_0725.jpeg "782x782">}}Relaxing seaside lunch with a frosty beer under sunlit Sagres umbrellas.{{</dither>}} +{{<dither IMG_0733.jpeg "782x782">}}A person wearing sunglasses and a pink cap stands beside a bicycle on a wooden boardwalk between sand dunes, with the ocean and a coastal road in the background.{{</dither>}} +{{<dither IMG_0725.jpeg "782x782">}}A smiling man wearing sunglasses holds a glass of beer at an outdoor waterfront café, with other diners, large umbrellas, and a marina in the background.{{</dither>}} -{{<dither IMG_5805.jpeg "782x782">}}Sunlit stroll through Lisbon: mom-to-be cradles her belly on a steep cobblestone street above the river.{{</dither>}} -{{<dither IMG_5797.jpeg "782x782">}}Red-clad Benfica fans create a roaring wall of color as players battle under the bright lights at Estádio da Luz.{{</dither>}} +{{<dither IMG_5805.jpeg "782x782">}}A woman wearing sunglasses and a pink shirt stands on a steep cobblestone sidewalk beside tram tracks, with multistory buildings lining the street and water visible in the distance.{{</dither>}} +{{<dither IMG_5797.jpeg "782x782">}}Spectators watch a nighttime soccer match at a crowded stadium, with players on a brightly lit green field and red Benfica banners lining the stands.{{</dither>}} While we were over there, I was pretty diligent about using [Shazam][4] whenever a song caught my ear and saving everything into Apple Notes. When I got back, I compiled all the tracks into a playlist[^1] that's been on repeat ever since. It's a pretty neat way to create a memento that's unique to me and that doesn't cost anything or take up any space, and is something I'll plan to repeat on future trips. diff --git a/content/journal/dispatch-16-june-2024/index.md b/content/journal/dispatch-16-june-2024/index.md @@ -19,11 +19,11 @@ TOMORROW IS THE DAY we welcome baby brother to the world, and I wanted to get th <!--more--> -{{<dither IMG_0804.jpeg "782x782">}}Family fun run selfie with peace signs up top and stroller snacks up front.{{</dither>}} -{{<dither IMG_5088.jpeg "782x782">}}Early morning runners fill a tree-lined city street during a busy race.{{</dither>}} +{{<dither IMG_0804.jpeg "782x782">}}Three adults pose behind two children in a double stroller at an outdoor race. One adult holds up a peace sign and sticks out her tongue while the other two smile. Other participants wearing race bibs stand nearby.{{</dither>}} +{{<dither IMG_5088.jpeg "782x782">}}A large crowd of runners fills a tree-lined city street, heading away from the camera between brick and light-colored buildings.{{</dither>}} -{{<dither IMG_1161.jpeg "782x782">}}Three giggly toddlers relax in a red Radio Flyer wagon, sharing a beach ball and a bag of grapes at a sunny park gathering.{{</dither>}} -{{<dither IMG_1109.jpeg "782x782">}}Dad guides an orange kayak while a child lounges up front, gliding along a tree-lined lake shoreline.{{</dither>}} +{{<dither IMG_1161.jpeg "782x782">}}Three smiling children sit in a red wagon under a canopy, with a colorful beach ball and a clear bag of blueberries. Folding chairs and a lemonade stand are visible behind them.{{</dither>}} +{{<dither IMG_1109.jpeg "782x782">}}An adult and a child wearing life jackets sit in an orange kayak on a lake near a wooded shoreline with docks.{{</dither>}} We had a great month with Nev. Highlights included a trip to the lake, the [Running of the Bulls 8K][1], and the [Beaver Queen Pagent][2]. I want to say it was our best month so far, though that might just be preemptive nostalgia, since this is the last month she gets 100% of our attention. But she's just such a fun little person. I couldn't been more proud of her. diff --git a/content/journal/dispatch-17-july-2024/index.md b/content/journal/dispatch-17-july-2024/index.md @@ -59,11 +59,11 @@ We welcomed baby **Nico** on June 12. He and mama are both healthy and well. Nev <!--more--> -{{<dither IMG_1753.jpeg "782x782">}}Tiny bundle, big curious eyes.{{</dither>}} -{{<dither IMG_6069.jpeg "782x782">}}Meeting little sibling day: a sleepy newborn cradled in Mom’s arms as big sister nuzzles close, already smitten.{{</dither>}} +{{<dither IMG_1753.jpeg "782x782">}}A baby lies on a light-colored surface with eyes open and hands curled near their chin, wearing a white shirt with red lettering.{{</dither>}} +{{<dither IMG_6069.jpeg "782x782">}}A young child with curly blond hair leans close to a sleeping newborn wrapped in a striped hospital blanket and supported by an adult’s hands.{{</dither>}} -{{<dither IMG_6261.jpeg "782x782">}}Three beaming parents each cuddle toddlers and babies, capturing a joyful family playdate in the bright, colorful room.{{</dither>}} -{{<dither IMG_2016.jpeg "782x782">}}Dad sinks into the couch with a newborn asleep on one arm and a curly‑haired toddler sucking their thumb on the other, peaceful trio sharing a quiet afternoon.{{</dither>}} +{{<dither IMG_6261.jpeg "782x782">}}Four adults and four children pose together indoors. Three adults hold children, including a sleeping newborn, while two children have toy stethoscopes.{{</dither>}} +{{<dither IMG_2016.jpeg "782x782">}}A man wearing glasses sits on a couch, cradling a sleeping baby with a curly-haired young child nestled beside him.{{</dither>}} I took a few weeks off after the birth, but I'm back to work now (mixed feelings on that -- could have taken a longer break). We've been able to do a bit of traveling -- quick trip up to Richmond to see my family, long weekend at Lake Norman with Claire's. diff --git a/content/journal/dispatch-18-august-2024/index.md b/content/journal/dispatch-18-august-2024/index.md @@ -47,25 +47,25 @@ Our boy's two months old today! Look at this little dude. <!--more--> -{{<dither IMG_2821.jpeg "782x600">}}Bath time giggles from the happiest little face.{{</dither>}} -{{<dither IMG_2965.jpeg "782x600">}}Smiling baby Dominic stretches out beside a sign proudly sharing he’s two months old.{{</dither>}} +{{<dither IMG_2821.jpeg "782x600">}}A baby lying on a white cloth on a gray cushion, looking toward the camera with wide eyes and an open-mouthed smile.{{</dither>}} +{{<dither IMG_2965.jpeg "782x600">}}A smiling baby in a white onesie lies on a green blanket beside a letter board reading “Dominic is two months old.”{{</dither>}} We did a newborn photo shoot with [G. Lin Photography][1], though no one told Nevie she wasn't the star. -{{<dither BabyNico-48.jpg "782x600">}}Snuggled together on the nursery floor, mom, dad, and big sister shower the newborn with cozy kisses and cuddles.{{</dither>}} -{{<dither BabyNico-118.jpg "782x600">}}Smiling parents in their sunny backyard admire their curly-haired daughter while Mom cradles the sleeping newborn.{{</dither>}} +{{<dither BabyNico-48.jpg "782x600">}}Two adults and a young child cuddle in front of a crib. One adult holds and kisses a newborn wrapped in a white blanket, while the child leans in to kiss the baby and holds a doll.{{</dither>}} +{{<dither BabyNico-118.jpg "782x600">}}A man holds a smiling young child in a yellow dress while a woman cradles a newborn in blue, standing in a leafy yard.{{</dither>}} [1]: https://www.glinphotography.com/ We took the kids to a few Bulls games. Snacks consumed: many. Baseball consumed: very little. -{{<dither IMG_3323.jpeg "782x600">}}Family of four all smiles at the ballpark, soaking in a summer evening under the lights.{{</dither>}} -{{<dither IMG_6441.jpeg "782x600">}}Giggles and curls at the ballpark, cheering for the home team in bright pink.{{</dither>}} +{{<dither IMG_3323.jpeg "782x600">}}Two adults, one holding a baby and the other a young child, pose in the stands at a baseball stadium with the field behind them.{{</dither>}} +{{<dither IMG_6441.jpeg "782x600">}}A smiling child with curly blond hair wears a bright pink shirt with a cartoon bull and raises one arm while an adult lifts a brown cap from their head.{{</dither>}} I finished Nev's art table as well as a few other small projects. I doubt I'll ever be a great (or even good) woodworker, but I derive considerable satisfaction from building simple pieces and quickly modifying things around the house. -{{<dither IMG_6464.jpeg "782x600">}}DIY workshop vibes: a freshly built wooden rack stands proud beside bikes and benches, waiting for its first project.{{</dither>}} -{{<dither IMG_6463.jpeg "782x600">}}Pink three-tier craft cart overflowing with kids’ art supplies squeezed between a kitchen counter and patio door.{{</dither>}} +{{<dither IMG_6464.jpeg "782x600">}}Unfinished wooden shelving unit with a slatted back and an open fold-down tray in a basement workshop, surrounded by bicycles, lumber, and a workbench with electronic equipment.{{</dither>}} +{{<dither IMG_6463.jpeg "782x600">}}Pink wooden shelving unit with worn paint holding drawings, paper bags, and art supplies beside a kitchen counter.{{</dither>}} I signed up for [Bull City Race Fest][2] half-marathon for what'll be the third year in a row. It is so hot out right now that afternoon long runs aren't really tenable, but night runs work well with my screwed up sleep schedule (though that's how I [turned my ankle something fierce][3] last year). Knowing I need to be able to run 13 miles in a few short months is doing wonders for my discipline. diff --git a/content/journal/dispatch-19-september-2024/index.md b/content/journal/dispatch-19-september-2024/index.md @@ -32,18 +32,18 @@ Highlights this month were our annual trips to Rehoboth Beach and Beaufort. Ther <!--more--> -{{<dither IMG_6588.jpeg "782x600">}}Smiling beach day: mom relaxing under a blue umbrella while cradling her sleepy baby.{{</dither>}} -{{<dither IMG_6709.jpeg "782x600">}}Three little buddies in matching pinks giggling on a sunny stroller ride.{{</dither>}} +{{<dither IMG_6588.jpeg "782x600">}}A smiling woman wearing sunglasses and a baseball cap holds a baby in a beach chair under an umbrella, with a blue beach tent behind them.{{</dither>}} +{{<dither IMG_6709.jpeg "782x600">}}Three young children smiling together between stroller handles, wearing a strawberry-print dress, a pink cartoon bull T-shirt, and a coral daisy-print dress.{{</dither>}} -{{<dither IMG_6790.jpeg "782x600">}}Two excited little captains-in-training taking turns at the helm of a docked boat.{{</dither>}} -{{<dither IMG_3614.jpeg "782x600">}}Tiny nap coach keeping dad company on the couch.{{</dither>}} +{{<dither IMG_6790.jpeg "782x600">}}Two children aboard a boat: one with curly blond hair in a pink hoodie sits on a cream bench, while another in a yellow shirt holds the steering wheel. A dock and other people are visible behind them.{{</dither>}} +{{<dither IMG_3614.jpeg "782x600">}}A baby in a white onesie lies on a blue couch with arms and legs raised, looking toward the camera. An adult is partially visible seated beside the baby.{{</dither>}} Half-marathon training is going well. The timing of the Rehoboth trip couldn't have been better, hitting at 4 weeks into my 12 week training program. I love running up there -- the weather's better, the terrain's flatter, and the gravel trail at Cape Henlopen is just perfection. Felt like I could run forever. We got Nev's art table set up in the living room. It's been a delight to see her take to it, defaulting to creative pursuits during downtime. I added some [LED lighting][1] and [coat hooks][2]. That's the nice thing about making your own stuff: the freedom to modify and adapt. -{{<dither IMG_6732.jpeg "782x900">}}Toddler quietly painting at a wooden activity station stacked with tidy bins and colorful toys.{{</dither>}} -{{<dither IMG_6818.jpeg "782x900">}}Sunlit kid’s art station with a tiny sink, cubbies of supplies, and a little stool ready for the next craft.{{</dither>}} +{{<dither IMG_6732.jpeg "782x900">}}A child paints at a small wooden desk beneath shelves holding plastic storage bins, colorful stacking toys, and a toy sink.{{</dither>}} +{{<dither IMG_6818.jpeg "782x900">}}Wooden shelving unit with a lit child-sized craft desk, small chair, paper, and art supplies. Upper shelves hold clear toy bins and a toy sink, with aprons hanging from the side.{{</dither>}} [1]: https://www.amazon.com/dp/B08R66Z71S [2]: https://www.amazon.com/dp/B09M3Q6QHN diff --git a/content/journal/dispatch-2-april-2023/index.md b/content/journal/dispatch-2-april-2023/index.md @@ -31,8 +31,8 @@ In April, I'm finishing training for (and then running) the [Tar Heel 10 Miler][ I didn't make much progress on the closet project this month (took some measurements and had some discussions with Claire), but I did manage to build this "learning tower" for Nev and started acquainting myself with Affinity Designer. -{{<dither tower.jpg "782x1200">}}Little chef-in-training stands proudly on a wooden helper tower, making snack time at the kitchen counter a hands-on adventure.{{</dither>}} -{{<dither rocket.png "782x1200">}}Bright yellow rocket streaks skyward, leaving a soft teal burst of exhaust.{{</dither>}} +{{<dither tower.jpg "782x1200">}}A toddler stands in a wooden learning tower at a kitchen counter, holding a green utensil over a cutting board with bread pieces.{{</dither>}} +{{<dither rocket.png "782x1200">}}A stylized yellow rocket with orange fins and pale blue windows points diagonally upward to the right against a pale blue starburst on a white background.{{</dither>}} ### This Month diff --git a/content/journal/dispatch-20-october-2024/index.md b/content/journal/dispatch-20-october-2024/index.md @@ -60,8 +60,8 @@ What will the next six-year cycle bring? Hopefully more of the same. Life is gra To celebrate, we headed to Pigeon Forge, Tennessee, which was a **scene**. Nevie loved Dollywood and visiting with her grandparents, and we enjoyed some time at Great Smoky Mountains National Park. -{{<dither IMG_3999.jpeg "782x600">}}Little lion tamer shows off her rainbow roar.{{</dither>}} -{{<dither IMG_4010.jpeg "782x600">}}Family selfie on a wooded trail, big smiles from every generation enjoying the sunshine.{{</dither>}} +{{<dither IMG_3999.jpeg "782x600">}}Child with curly blond hair and rainbow tiger face paint, wearing a pink shirt and looking to the left.{{</dither>}} +{{<dither IMG_4010.jpeg "782x600">}}Four adults and a young child pose for a group selfie in a leafy forest beside a rocky stream. The child rides in a backpack carrier behind the adult taking the photo.{{</dither>}} Nico started daycare last week, which is bittersweet; it's been wonderful having him around all day. But we love our daycare and it's fun to have him and Nev in the same place. @@ -69,8 +69,8 @@ Just a few more weeks until my half-marathon. I'm feeling relatively good, hitti Finished a couple small house projects: a hanging system for Nev's art table and some storage for our reusable grocery bags. -{{<dither IMG_6914.jpeg "782x600">}}Kids’ craft corner with drying paintings clipped to a wooden art station, surrounded by bins of supplies and bags.{{</dither>}} -{{<dither IMG_6919.jpeg "782x600">}}Wood-slat hooks corral a rainbow of reusable tote bags near the entryway.{{</dither>}} +{{<dither IMG_6914.jpeg "782x600">}}Children’s artwork, including an orange pumpkin and a red tree, clipped to wires across a wooden shelving unit, with a clear bin of toys on top and craft supplies below.{{</dither>}} +{{<dither IMG_6919.jpeg "782x600">}}Reusable shopping bags hang from black metal hooks on a wooden wall rack beside a stairway.{{</dither>}} One of my favorite things about running is this: it doesn't matter what else happens throughout the day -- if I run, it was a good day. I feel the same way about these little home improvement efforts: any day I use my tools, skills, and agency to improve our living space is a good day. diff --git a/content/journal/dispatch-21-november-2024/index.md b/content/journal/dispatch-21-november-2024/index.md @@ -67,15 +67,15 @@ It feels kind of dumb putting this post together in light of these major events, We went down to Wilmington to meet our new nephew/cousin. It was bonkers to see Nico alongside a fresh newborn. LOOK HOW BIG MY BOY IS. LOOK AT MY LARGE SON. -{{<dither IMG_6921.jpeg "782x600">}}Two tiny buddies chilling on the couch—one snoozing in stripes, the other wide-eyed and ready for adventure.{{</dither>}} -{{<dither IMG_6927.jpeg "782x600">}}Curious big sibling marvels at the tiny newborn snoozing beside them on the couch.{{</dither>}} +{{<dither IMG_6921.jpeg "782x600">}}Two babies lie side by side on a brown couch. The smaller baby sleeps in a green-and-white striped sleeper, while the larger baby looks toward the camera with hands clasped, wearing a gray shirt and fern-patterned shorts.{{</dither>}} +{{<dither IMG_6927.jpeg "782x600">}}Two babies resting side by side on a brown couch, one awake in a gray outfit looking toward the camera and the other asleep in a green-and-white striped outfit.{{</dither>}} I ran the [Bull City Race Fest][1] half-marathon for the third year in a row, hitting a personal best time of 8:50/mile ([result][2], [certificate][3]). Claire and Nev met me at around mile seven with a bottle of Gatorade that got me through the hilly final stretch. We spent a weekend camping ("camping" -- the cabins were, uh, quite plush) at [Fairy Stone State Park][4] with a big group of friends. Highlights included taking Nev out on a paddleboard, trick-or-treating between the cabins, and cooking a bunch of food for folks. Hope to be back in 2025. -{{<dither IMG_4575.jpeg "782x600">}}Dad and kid in avocado-print pajamas laughing together on a porch while strumming a guitar.{{</dither>}} -{{<dither IMG_4765.jpeg "782x600">}}Dad cuddles his smiling baby in the autumn sunshine, coffee in hand and pure joy on both faces.{{</dither>}} +{{<dither IMG_4575.jpeg "782x600">}}An adult wearing glasses holds an acoustic guitar with a curly-haired child on their lap. The child wears pink avocado-print pajamas and reaches toward the guitar strings.{{</dither>}} +{{<dither IMG_4765.jpeg "782x600">}}An adult wearing glasses and a gray cap holds a smiling baby in a white knit sweater outdoors, with blurred people and autumn trees in the background.{{</dither>}} [1]: https://capstoneraces.com/bull-city-race-fest/ [2]: /journal/dispatch-21-november-2024/bcrf-2024-result.pdf diff --git a/content/journal/dispatch-22-december-2024/index.md b/content/journal/dispatch-22-december-2024/index.md @@ -83,11 +83,11 @@ We ventured to upstate New York to spend Thanksgiving with my sister and her fam [4]: https://troyturkeytrot.com/ -{{<dither IMG_7133.jpeg "782x600">}}Grandma and mom share a cozy couch storytime, kids snuggled in blankets and pajamas, all smiles.{{</dither>}} -{{<dither IMG_5239.jpeg "782x600">}}Two bundled‑up cousins sample fresh snow from their mittens on a frosty deck morning.{{</dither>}} +{{<dither IMG_7133.jpeg "782x600">}}Two adults and four children sit together on a gray couch, with an open picture book across their laps. One adult holds a toddler, and the other holds a baby. Colorful artwork, toys, and stacked cushions fill the background.{{</dither>}} +{{<dither IMG_5239.jpeg "782x600">}}Two young children in winter coats and boots stand on a snow-covered wooden deck with their hands near their mouths. Snow covers patio furniture beside them, with trees beyond a red railing.{{</dither>}} -{{<dither IMG_5158.jpeg "782x600">}}Mom and little chef chop potatoes side-by-side on a cozy kitchen afternoon.{{</dither>}} -{{<dither IMG_5234.jpeg "782x600">}}Big cousin giggles as her baby cousin reaches up to grab her hand on the play mat.{{</dither>}} +{{<dither IMG_5158.jpeg "782x600">}}A child in a tie-dye shirt and an adult in a navy sweatshirt cut small yellow potatoes on separate wooden cutting boards in a kitchen.{{</dither>}} +{{<dither IMG_5234.jpeg "782x600">}}A smiling toddler holds a smiling baby’s hand while sitting on a patterned rug. The baby lies on a blanket, and an adult sits nearby.{{</dither>}} I loved this quote from Freddie DeBoer about [what he's thankful for][5]: @@ -99,8 +99,8 @@ I've outgrown the [music setup][6] I built a few months ago, and ordered a three [6]: /journal/dispatch-14-april-2024/ -{{<dither IMG_7078.jpeg "782x600">}}Stack of synths and drum machines at the ready in a DIY studio corner.{{</dither>}} -{{<dither IMG_7126.jpeg "782x600">}}Little DJ in pink pajamas happily jams on glowing synths with giant headphones.{{</dither>}} +{{<dither IMG_7078.jpeg "782x600">}}Three electronic keyboards, a sampler, and a pad controller on a tiered black stand against concrete block walls, with headphones hanging from the left side.{{</dither>}} +{{<dither IMG_7126.jpeg "782x600">}}A young child wearing headphones and a pink-and-white striped shirt smiles while touching an electronic music controller with illuminated buttons above a synthesizer keyboard.{{</dither>}} This has been a ton of fun -- I can play chords on the Prophet with my left hand, melodies on the Bass Station with my right, drums + sequencing with the Circuit, and then the SP-404 at the end for effects. Next up: build a simple workstation, add a mixer and MIDI interface to drive more instruments. diff --git a/content/journal/dispatch-23-january-2025/index.md b/content/journal/dispatch-23-january-2025/index.md @@ -57,18 +57,18 @@ We spent Christmas in Greensboro with Claire's family (and a bunch of dogs). Nev [1]: https://loogguitars.com/products/loog-mini-acoustic-pink?variant=41406434803774 -{{<dither IMG_5853.jpeg "782x600">}}Blonde toddler strums a tiny pink guitar in a cozy living room while an adult watches in the background.{{</dither>}} -{{<dither IMG_5866.jpeg "782x600">}}Baby chef-in-training giggles while waving a plush taco that says “Taco ’bout yummy!”{{</dither>}} +{{<dither IMG_5853.jpeg "782x600">}}A young child with curly blond hair holds a small pink guitar, wearing a cupcake-patterned apron in a living room. An adult stands in the blurred background.{{</dither>}} +{{<dither IMG_5866.jpeg "782x600">}}A smiling baby wearing a patterned chef’s hat holds a plush taco while sitting on an adult’s lap in a living room.{{</dither>}} Then we were off to Mexico to celebrate our FIVE YEAR anniversary and the new year (after a tense wait to see if Nico's passport would arrive in time). We spent the better part of the week at [Sensira Resort][2]. It was grand. [2]: https://sensiraresorts.com/ -{{<dither IMG_7370.jpeg "782x600">}}Mom cuddles on a beach cabana with her giggling kiddos, watermelon-colored drink and all.{{</dither>}} -{{<dither IMG_5966.jpeg "782x600">}}Toddler stares straight ahead with wide eyes, proudly covered in chocolate while smearing food across the high chair tray.{{</dither>}} +{{<dither IMG_7370.jpeg "782x600">}}A smiling woman in a red top sits on a cushioned outdoor daybed, holding a baby in a striped shirt beside a curly-haired child holding a glass of red-orange liquid.{{</dither>}} +{{<dither IMG_5966.jpeg "782x600">}}A baby sits in a high chair with food smeared around their mouth and on their hands, holding a piece of food above a tray scattered with pieces and smears.{{</dither>}} -{{<dither IMG_7392.jpeg "782x600">}}Mom whispers a secret to her face-painted unicorn child wrapped in a towel.{{</dither>}} -{{<dither IMG_7415.jpeg "782x600">}}Little girl welcoming 2025 from a sunny beach, framed by giant numbers in the sand.{{</dither>}} +{{<dither IMG_7392.jpeg "782x600">}}An adult in a red shirt kisses the cheek of a curly-haired child wrapped in a white towel, with colorful unicorn face paint.{{</dither>}} +{{<dither IMG_7415.jpeg "782x600">}}A child sits inside a large white zero lying flat on a sandy beach, beside upright numbers forming 2025, with the ocean and sailboats in the background.{{</dither>}} Random small stuff: diff --git a/content/journal/dispatch-24-february-2025/index.md b/content/journal/dispatch-24-february-2025/index.md @@ -73,8 +73,8 @@ We actually got some snow here in Durham, which is not something that happens ev <!--more--> -{{<dither IMG_6219.jpeg "782x782">}}A bundled-up family grins in the winter sun, each parent balancing a sleepy toddler against a sparkling, snow-dusted backdrop.{{</dither>}} -{{<dither IMG_7509.jpeg "782x782">}}Pink-wheeled sidekick, boxy chariot, endless giggles.{{</dither>}} +{{<dither IMG_6219.jpeg "782x782">}}Two smiling adults in winter clothing stand in a snowy park, one holding a child in a red coat and pink boots, the other holding a baby in a pale blue outfit.{{</dither>}} +{{<dither IMG_7509.jpeg "782x782">}}A smiling baby in a diaper sits in a pink wooden pull wagon on a hardwood floor, with a pink bicycle behind them.{{</dither>}} My hi-fi audio setup is complete, for now and hopefully forever. The speakers I originally ordered were way too big, so I replaced them with a pair of [Polk ES15s][2]. I built speaker stands out of plywood and some [hairpin table legs][3], and got everything wired up. It sounds great! diff --git a/content/journal/dispatch-25-march-2025/index.md b/content/journal/dispatch-25-march-2025/index.md @@ -63,18 +63,18 @@ My family popped down for an unplanned visit, just in time for another big snow <!--more--> -{{<dither IMG_6713.jpeg "782x600">}}Two bundled-up kids stick their tongues out to taste snowflakes while riding in a wagon with their baby sibling peeking from the back.{{</dither>}} -{{<dither IMG_7653.jpeg "782x600">}}Two wide-eyed little snack critics share a picnic blanket adorned with pink hibiscus, each mid-bite and equally bewildered by the mystery crumbs.{{</dither>}} +{{<dither IMG_6713.jpeg "782x600">}}Three children in winter coats sit in a red wagon in the snow. The two in front stick out their tongues, with snowflakes on their hair and coats.{{</dither>}} +{{<dither IMG_7653.jpeg "782x600">}}A toddler and a baby sit on a blue floral blanket outdoors. The toddler holds food and licks their fingers, while the baby holds a small rock and looks to the side.{{</dither>}} -{{<dither IMG_7681.jpeg "782x600">}}Grandparents relaxing on the couch with a curious baby and a patient dog, sharing toys and smiles in a cozy living room.{{</dither>}} -{{<dither IMG_4794.jpeg "782x600">}}Dad in a snowy yard grinning at his bundled-up, giggling child.{{</dither>}} +{{<dither IMG_7681.jpeg "782x600">}}Two adults sit on a gray couch with a baby and a beagle between them. The adult on the left supports the baby, while the smiling adult on the right holds a green ball near the dog.{{</dither>}} +{{<dither IMG_4794.jpeg "782x600">}}A smiling adult wearing glasses and a knit hat holds a smiling child in a red coat outdoors in the snow. Snow clings to their hair, hats, coats, and the child’s pink mittens.{{</dither>}} After publishing last month's dispatch, I exported the first two years of posts as a PDF and used [Lulu][1] to turn it into a physical book. Here's the result: [1]: https://www.lulu.com/ -{{<dither IMG_7709.jpeg "782x600">}}Lavender planner marked “March 2023 – February 2025” with “D. Eisinger” on the spine lying on a cutting mat, shot with shallow depth of field in a workshop.{{</dither>}} -{{<dither IMG_7710.jpeg "782x600">}}Open travel journal on a cutting mat showing an Italy trip write‑up with photo grid on the left page and typed reflections on the right.{{</dither>}} +{{<dither IMG_7709.jpeg "782x600">}}A lavender hardcover book lies on a gridded cutting mat, with “March 2023 – February 2025” and “D. Eisinger” printed in white on its spine.{{</dither>}} +{{<dither IMG_7710.jpeg "782x600">}}An open book on a gridded cutting mat, held at the lower left by a hand. The pages show a journal entry titled Dispatch #8 (October 2023), with text about a trip to Italy and making electronic music, plus six small travel photos.{{</dither>}} I'm pretty chuffed about this (though I wish I'd heeded their warnings about the margins). And it was cheap! Like fifteen bucks! I went ahead and ordered two, and gave one to my sister. This was a cool project and definitely worth a standalone blog post. diff --git a/content/journal/dispatch-26-april-2025/index.md b/content/journal/dispatch-26-april-2025/index.md @@ -49,8 +49,8 @@ Nico received a major software upgrade this month. One day he could barely roll <!--more--> -{{<dither IMG_6952.jpeg "782x600">}}“Rainbow noodle salon day: baby edition.”{{</dither>}} -{{<dither IMG_7708.jpeg "782x600">}}Little kid proudly surveys their new wooden loft bed from the top bunk in a cozy, toy-filled bedroom.{{</dither>}} +{{<dither IMG_6952.jpeg "782x600">}}Two babies sit on a patterned mat with colorful strands of spaghetti draped over their heads, clothes, and hands.{{</dither>}} +{{<dither IMG_7708.jpeg "782x600">}}A child kneels on a wooden loft bed, holding the guardrail and looking upward. A ladder with a metal handrail leads down to a robot-patterned rug in the bedroom.{{</dither>}} Annual trip to Vegas was a blast -- watched games at Venetian and Paris, real international stuff. Let's see if my Duke boys can bring one home this weekend. Looking good so far! diff --git a/content/journal/dispatch-27-may-2025/index.md b/content/journal/dispatch-27-may-2025/index.md @@ -51,8 +51,8 @@ Pollen season is over. Bamboo killing season is here. Lots to cover this month. Nico is on the go, crawling, pulling up, spreading cheer wherever he goes. We got him out on the bike, into the foam pit at our local trampoline park, and to his first baseball game at the old Bulls stadium. -{{<dither IMG_7866.jpeg "782x600">}}Smiling little passenger enjoying a sunny ride in the stroller.{{</dither>}} -{{<dither IMG_7861.jpeg "782x600">}}Two little buddies in matching bench seats—one all smiles, the other flashing an adorably mischievous side-eye.{{</dither>}} +{{<dither IMG_7866.jpeg "782x600">}}A smiling baby wearing a blue hoodie and tan pants sits strapped into an orange and black bicycle trailer beside a grassy roadside.{{</dither>}} +{{<dither IMG_7861.jpeg "782x600">}}A smiling baby in a blue romper and a young child with curly blond hair in a pink star-patterned dress sit side by side on metal bleachers.{{</dither>}} We took the family to Busch Gardens in Williamsburg, VA to meet Jon and Blitz from Dino Ranch. I went there a lot as a kid but haven't been in a good 30 years, so everything's about a third smaller than I remembered. A bunch of the drive followed the [Virginia Capital Trail][2], something I'd like to bike someday. On the way out, Claire noticed a large nail sticking out of our tire, so we had to cruise home at 50 MPH on the little spare. @@ -73,9 +73,9 @@ Nev and I have been enjoying ChatGPT's new image features. We generated a whole [10]: https://craftcloud3d.com/ [11]: https://us.elegoo.com/collections/lcd-printers/products/elegoo-mars-4-ultra-msla-resin-3d-printer-with-9k-mono-lcd -{{<dither 2D0D1562-DBBD-485B-8999-D7ECB0A8FE9D.png "510x510">}}Little explorer beams with joy while riding her friendly triceratops through a sunny, cloud-dotted landscape.{{</dither>}} -{{<dither nev-riding-tango-concept.png "510x510">}}Little Nev beams with delight while riding her friendly triceratops buddy Tango like it’s a prehistoric pony.{{</dither>}} -{{<dither nev-riding-tango-model.png "510x510">}}A cheerful kid with curly hair rides atop a playful, horned dinosaur-shaped toy, both sculpted in smooth, faceted grey.{{</dither>}} +{{<dither 2D0D1562-DBBD-485B-8999-D7ECB0A8FE9D.png "510x510">}}Black-and-white coloring page of a smiling curly-haired child riding a smiling triceratops with a saddle, side bag, and star medallion, with hills and clouds in the background.{{</dither>}} +{{<dither nev-riding-tango-concept.png "510x510">}}Grayscale 3D illustration of a smiling, curly-haired child riding a cartoon triceratops with a saddlebag and a star medallion on its collar.{{</dither>}} +{{<dither nev-riding-tango-model.png "510x510">}}Grayscale low-poly 3D model of a smiling, curly-haired person riding a squat, horned creature with four legs and a broad snout.{{</dither>}} I finally signed up for [Melodics][12] to get better at finger drumming. I can plug my [sampler][13] into my iPad and use it to play increasingly complex beats. It gets pretty challenging but it's been a great way to learn traditional drum stuff (kick + snare + hat patterns) as well as bass lines and sample flips. diff --git a/content/journal/dispatch-28-june-2025/index.md b/content/journal/dispatch-28-june-2025/index.md @@ -43,8 +43,8 @@ Bamboo killing season is over, now we're onto goddamn cockroach season. I've liv <!--more--> -{{<dither IMG_8286.jpeg "782x600">}}Little captain laughing with her inflatable shark while cruising across the lake.{{</dither>}} -{{<dither IMG_8290.jpeg "782x600">}}Mom and baby beam with matching grins while cruising on a sunny lake.{{</dither>}} +{{<dither IMG_8286.jpeg "782x600">}}A smiling child with windblown curly hair sits on a boat bench wearing a blue and yellow flotation vest, with a stuffed unicorn beside them and water and a wooded shoreline in the background.{{</dither>}} +{{<dither IMG_8290.jpeg "782x600">}}A smiling woman holds a smiling baby wearing a yellow life jacket on a pontoon boat, with a lake and tree-lined shore in the background.{{</dither>}} Here's some new music: diff --git a/content/journal/dispatch-29-july-2025/index.md b/content/journal/dispatch-29-july-2025/index.md @@ -35,13 +35,13 @@ Big month: birthdays, travel, lots of music. My boy turned one -- time friggin' <!--more--> -{{<dither IMG_4835.jpeg "782x600">}}Baby’s first birthday cake smash, with crumbs everywhere and the biggest grin.{{</dither>}} -{{<dither IMG_8449.jpeg "782x600">}}Happy picnic smiles: a mom, dad, and two young siblings cuddle together on a park bench under the trees.{{</dither>}} +{{<dither IMG_4835.jpeg "782x600">}}A smiling baby in a high chair outdoors, wearing green suspenders and dinosaur-patterned clothing, with blue frosting on their face, hands, and the cake-covered tray.{{</dither>}} +{{<dither IMG_8449.jpeg "782x600">}}Two adults sit with a baby and a young child in a pink dress on a wooden picnic bench beneath a park pavilion, with leafy trees in the background.{{</dither>}} We spent a week at [Holden Beach][1] with Claire's family. Great to see everyone, and great to take a proper vacation. Both kids are changing so quickly (Nico starting to walk, Nev taking an interest in swimming and playing piano) and it was nice to take a break from work and spend bunch of dedicated time with them. -{{<dither IMG_8614.jpeg "782x600">}}Little ballerina twirls through the beach breeze, shell in hand and sunlit curls shining.{{</dither>}} -{{<dither IMG_8299.jpeg "782x600">}}Two grinning babies share a porch swing moment, one perched on a parent’s lap while the other stands nearby gripping the armrest.{{</dither>}} +{{<dither IMG_8614.jpeg "782x600">}}A smiling child with curly blond hair wears a pink dress and holds a seashell on a sandy beach, with dunes and houses in the background.{{</dither>}} +{{<dither IMG_8299.jpeg "782x600">}}Two smiling young children on a deck, one in light blue pajamas sitting on an adult’s lap and the other in a teal shirt holding a wooden chair arm.{{</dither>}} [Poolsuite FM][2] was the soundtrack to the week, and it inspired me to make a house track one evening. Musically, I spend a lot of time trying to make music that _doesn't_ sound so electronic, so it was nice to sort of lean into it; my little travel music setup is pretty well suited for it. Check it out: @@ -52,18 +52,18 @@ We spent a week at [Holden Beach][1] with Claire's family. Great to see everyone We then traveled up to Richmond to meet up with my family to celebrate my dad's 70th. Nice to get all the cousins together, if only for an afternoon. The [Richmond Children’s Museum][3] is great. -{{<dither IMG_8348.jpeg "782x600">}}Two little friends grin in a stroller, proudly showing off their matching stuffed unicorns.{{</dither>}} -{{<dither IMG_8357.jpeg "782x600">}}Two tiny watermelon fans share a giggly snack while mom looks on with a proud smile.{{</dither>}} +{{<dither IMG_8348.jpeg "782x600">}}Two smiling children sit side by side in a stroller, each holding a white plush unicorn with a pink horn.{{</dither>}} +{{<dither IMG_8357.jpeg "782x600">}}A baby and a young child hold pieces of watermelon at a wooden restaurant table, with a smiling adult seated behind them.{{</dither>}} -{{<dither IMG_8353.jpeg "782x600">}}Grandma shares a cheerful table moment with two grandkids—one laughing in her arms, the other fully focused on a giant lemonade.{{</dither>}} -{{<dither IMG_8374.jpeg "782x600">}}Grandpa’s big-laugh bench: four wiggly grandkids, two stuffed bunnies, and one baby mid-squeal under a wall of diner plaques.{{</dither>}} +{{<dither IMG_8353.jpeg "782x600">}}A smiling woman with glasses holds a smiling toddler at a wooden restaurant table, while a child beside them holds a large cup with a straw.{{</dither>}} +{{<dither IMG_8374.jpeg "782x600">}}A smiling adult sits with four young children on a wooden bench, holding one child on their lap. Behind them, framed articles and awards cover a brick wall.{{</dither>}} [3]: https://www.childrensmuseumofrichmond.org/ I took the kids to [Angel Island][4] one evening, where I was able to reproduce this Eisinger family classic: -{{<dither IMG_8406.jpeg "782x600">}}Baby in a green onesie gleefully pops up amid a sea of brightly colored plastic balls in a play pit.{{</dither>}} -{{<dither 3701250281_957a9c189d_o.jpg "782x600">}}Small kid looks worried while swimming through an ocean of green ball-pit spheres.{{</dither>}} +{{<dither IMG_8406.jpeg "782x600">}}A young child in a green shirt looks up with an open mouth while surrounded by colorful plastic balls in a ball pit.{{</dither>}} +{{<dither 3701250281_957a9c189d_o.jpg "782x600">}}A crying young child with curly blond hair is surrounded up to the neck by green balls in a ball pit, with one arm resting on top.{{</dither>}} (That's Nico on the left, and a young me on the right.) @@ -74,8 +74,8 @@ Finally, my buddy Ken and I met up at the Eastern Shore in Virginia (at the same [5]: /journal/dispatch-7-september-2023/ [6]: https://turo.com/ -{{<dither jeep_wrangler.jpg "782x600">}}Army-green Jeep Wrangler parked curbside in a suburb, with a red Cybertruck-style pickup in the driveway behind it.{{</dither>}} -{{<dither IMG_8448.jpeg "782x600">}}Two friends in a cozy home studio grin at the camera, one pointing playfully as synthesizers and a laptop sit behind them.{{</dither>}} +{{<dither jeep_wrangler.jpg "782x600">}}Olive-green four-door Jeep with a black soft top parked on a residential street, with a red Tesla Cybertruck in a driveway behind it.{{</dither>}} +{{<dither IMG_8448.jpeg "782x600">}}Two smiling men in a room with keyboards and a laptop. The man in the foreground wears glasses, while the seated man points toward the camera.{{</dither>}} Here's a track we made, called "Heat Lightning": diff --git a/content/journal/dispatch-3-may-2023/index.md b/content/journal/dispatch-3-may-2023/index.md @@ -27,10 +27,10 @@ Another month in the books. Man, year's flying by. We filled it up though: went <!--more--> -{{<dither IMG_3656.jpeg "374x600">}}Kayaking down a sunlit river, paddles slicing through ripples beneath a clear blue sky.{{</dither>}} -{{<dither IMG_3763.jpeg "374x600">}}Makeshift lemonade stand takes shape in a cluttered garage workshop.{{</dither>}} -{{<dither IMG_3816.jpeg "374x600">}}Light spills into a closet corner where a wooden three-drawer dresser sits beneath hanging clothes, topped by an overflowing white laundry basket.{{</dither>}} -{{<dither IMG_3815.jpeg "374x600">}}Jury-rigged closet shelf with raw lumber and metal braces perched above a row of neatly hung shirts.{{</dither>}} +{{<dither IMG_3656.jpeg "374x600">}}View from a blue kayak with the paddler’s legs in the foreground, following a person in an orange kayak along a tree-lined river beneath a clear blue sky and overhead power lines.{{</dither>}} +{{<dither IMG_3763.jpeg "374x600">}}A wooden three-drawer unit with tall side posts supporting a slatted top stands in a cluttered workshop, surrounded by lumber, shelving, tools, and bicycles.{{</dither>}} +{{<dither IMG_3816.jpeg "374x600">}}A three-drawer wooden dresser in a closet, topped with a white mesh basket filled with clothes beneath hanging garments. A clear bin of clothes sits on the floor beside it.{{</dither>}} +{{<dither IMG_3815.jpeg "374x600">}}Close-up from below of a wooden clothes rack with plywood shelf slats, a protruding wooden peg, and a metal brace. Wooden and wire hangers hold clothing, including a cream-colored shirt in the foreground.{{</dither>}} I ordered Claire an [e-bike][1] thinking it might arrive before her birthday mid-May, but it showed up just a few days later. It's been a blast taking Nevie to the museum and around town. We also ran the Tar Heel 10 Miler last weekend. Super fun, and I did better than I expected to based on my training ([result][2], [certificate][3]) -- there's something about an organized race that just gives that extra push I guess. diff --git a/content/journal/dispatch-30-august-2025/index.md b/content/journal/dispatch-30-august-2025/index.md @@ -45,11 +45,11 @@ Nice to have a quieter month. We went down to Lake Norman for the Fourth, but ot <!--more--> -{{<dither IMG_9212.jpeg "782x600">}}Big sister smiles while sharing a popsicle with her baby brother in matching life jackets on a boat.{{</dither>}} -{{<dither IMG_9284.jpeg "782x600">}}Teen wakeboarding across a calm lake with pine trees and a towering power line framing the shoreline.{{</dither>}} +{{<dither IMG_9212.jpeg "782x600">}}A child and a baby sit together on a boat wearing bright yellow and blue flotation gear. The child holds a blue ice pop to the baby’s mouth, with a patterned towel across their laps.{{</dither>}} +{{<dither IMG_9284.jpeg "782x600">}}A person wearing a life jacket wakeboards across a lake, holding a tow rope and spraying water, with trees, a power transmission tower, and a dock along the shore.{{</dither>}} -{{<dither IMG_8544.jpeg "782x600">}}Dad beams with one child snuggled tight on his shoulder and the other curiously taking in the park around them.{{</dither>}} -{{<dither IMG_9585.jpeg "782x600">}}Mom and daughter pose with the Durham Bulls mascot, thumbs up for a fun night at the ballpark.{{</dither>}} +{{<dither IMG_8544.jpeg "782x600">}}A smiling man wearing glasses holds a baby while a curly-haired child hugs him from behind, with leafy trees in the background.{{</dither>}} +{{<dither IMG_9585.jpeg "782x600">}}A woman holding a young child poses beside a bull mascot giving a thumbs-up at Durham Bulls Athletic Park, with spectators seated behind them.{{</dither>}} Down at the lake, I started writing some music to capture the weekend as a sort of sonic journal. I finished it up at home in Ableton and called it "Lake Affect" (thanks ChatGPT for the title + cover art): diff --git a/content/journal/dispatch-31-september-2025/index.md b/content/journal/dispatch-31-september-2025/index.md @@ -45,18 +45,18 @@ Big month! Nico took his first steps. Nev's onto a new school (well same school, We spent a week with my family up in Rehoboth Beach, Delaware. The highlight was Nev running wild with a whoopie cushion, blasting strangers with fake farts and running away cackling "MY TOOTS ARE THE BEST." -{{<dither IMG_8791.jpeg "782x600">}}Stormy skies, salty smiles, and a family beach day that refuses to slow down.{{</dither>}} -{{<dither IMG_8805.jpeg "782x600">}}Two moms and their giggly kids share a playful stretch on a sunny playground afternoon.{{</dither>}} +{{<dither IMG_8791.jpeg "782x600">}}Two adults and four young children on a sandy beach walkway beneath an overcast sky. Each adult holds a toddler while two children stand in front, with ocean waves and a wooden dune fence behind them.{{</dither>}} +{{<dither IMG_8805.jpeg "782x600">}}Two women and three young children sit together on a blue playground surface, with trees and playground equipment behind them.{{</dither>}} -{{<dither IMG_1119.jpeg "782x600">}}Big grins on the porch steps as three generations crowd together for a sunny family snapshot.{{</dither>}} -{{<dither IMG_9988.jpeg "782x600">}}Mom and kids share a sunny park jam session, all smiles on a picnic blanket while a tambourine keeps the beat.{{</dither>}} +{{<dither IMG_1119.jpeg "782x600">}}Six adults and four children sit together on the front steps of a gray shingled house, with white wicker furniture on the porch behind them.{{</dither>}} +{{<dither IMG_9988.jpeg "782x600">}}A smiling woman wearing sunglasses and a baseball cap sits on a floral blanket with a smiling toddler beside her and a curly-haired child reclining across her lap, holding a tambourine. Other adults and children gather on the lawn behind them.{{</dither>}} Next we spent Labor Day weekend up in Brooklyn for a high school buddy's wedding. He owns and runs a music venue called [Silo][1] where they held the event. Super fun, but I'd say "I don't live like that anymore" if I ever actually lived like that. [1]: https://www.silobrooklyn.com/ -{{<dither IMG_0104.jpeg "782x600">}}Sunny rooftop smiles with Manhattan skyline stretching behind us.{{</dither>}} -{{<dither IMG_8842.jpeg "782x600">}}Neon wigs, matching shades, and contagious laughter—brunch just got a lot brighter.{{</dither>}} +{{<dither IMG_0104.jpeg "782x600">}}Two smiling people stand with their arms around each other on a rooftop overlooking a river and city skyline under a clear blue sky.{{</dither>}} +{{<dither IMG_8842.jpeg "782x600">}}Two people sit close together in a restaurant booth, one wearing a long bright blue wig and dark sunglasses, the other smiling in a neon green bob wig and yellow-tinted cat-eye glasses.{{</dither>}} Finally, I just got back from a bachelor weekend on [Lake Gaston][2]. Now I'm just looking forward to ten days of treating my body with respect. diff --git a/content/journal/dispatch-32-october-2025/index.md b/content/journal/dispatch-32-october-2025/index.md @@ -53,14 +53,14 @@ The big highlight of September was a five-day trip to Copenhagen. We loved it: t And then just so many nice public parks and cafes. And feeding pigeons, randomly -- that ended up being a major pastime. Highly recommended for anyone but especially if you like urban biking and/or you have young kids you want to see the world. I feel just so incredibly fortunate to be able do things like this. -{{<dither IMG_0612.jpeg "782x600">}}Family selfie in sunny Nyhavn, kids hamming it up as the colorful Copenhagen harbor buzzes behind them.{{</dither>}} -{{<dither IMG_0625.jpeg "782x600">}}Little sister in a cargo bike offers a snack to her baby brother as they share the ride by the waterfront.{{</dither>}} +{{<dither IMG_0612.jpeg "782x600">}}Two adults and two young children pose for a selfie beside a busy canal lined with boats and colorful buildings. One child sticks out their tongue, while the younger child sits in a front carrier with a pacifier.{{</dither>}} +{{<dither IMG_0625.jpeg "782x600">}}Two children sit in a cargo bike by a canal. One wears a helmet and sunglasses and holds a bowl of snacks; the younger child reclines in a padded seat holding a clear cup.{{</dither>}} -{{<dither IMG_8964.jpeg "782x600">}}Sunny playroom swing duet: two kids soaring side by side, sharing a laugh and a high-five mid-air.{{</dither>}} -{{<dither IMG_0770.jpeg "782x600">}}Little girl squealing with joy while clutching her pink winged balloon under glowing string lights.{{</dither>}} +{{<dither IMG_8964.jpeg "782x600">}}Two young children sit in hanging fabric swings in a sunlit room with bookshelves and large windows. The child on the right reaches toward the other child’s hand.{{</dither>}} +{{<dither IMG_0770.jpeg "782x600">}}A curly-haired child in a red jacket holds a large purple winged unicorn balloon, mouth open, beneath orange canopies lined with glowing string lights.{{</dither>}} -{{<dither IMG_9044.jpeg "782x600">}}Little builder proud of her colorful duo of LEGO friends towering above the play table.{{</dither>}} -{{<dither IMG_0968.jpeg "782x600">}}Dad and toddler share a sunny laugh on a city boat ride, life jacket and soda in hand.{{</dither>}} +{{<dither IMG_9044.jpeg "782x600">}}A child with curly blond hair wearing teal stands beside two tall, colorful block towers topped with smiling toy faces in a bright indoor play area.{{</dither>}} +{{<dither IMG_0968.jpeg "782x600">}}A smiling man wearing glasses and a blue cap holds a toddler in a bright orange life jacket on a boat, with waterfront buildings behind them.{{</dither>}} ### 3D Monk @@ -74,10 +74,10 @@ For my second attempt, I took a more hands-on approach: I had it define the rele [7]: /journal/dispatch-13-march-2024/#this-month [8]: https://chatgpt.com/features/codex -{{<dither monk4.png "374x374">}}Colorful tangram rocket poised for liftoff.{{</dither>}} -{{<dither monk1.png "374x374">}}Geometric golem standing proud in a patchwork of vibrant faceted prisms.{{</dither>}} -{{<dither monk2.png "374x374">}}Color-block origami mushroom standing proud on a white canvas.{{</dither>}} -{{<dither monk5.png "374x374">}}A rainbow stack of skewed blocks twisting into a surreal, sculptural figure.{{</dither>}} +{{<dither monk4.png "374x374">}}An abstract tree-like shape made of brightly colored polygons, with a broad angular canopy and a tall rectangular trunk on a white background.{{</dither>}} +{{<dither monk1.png "374x374">}}An abstract humanoid figure made of brightly colored triangles and polygons, with a broad angular upper body and two separated legs on a white background.{{</dither>}} +{{<dither monk2.png "374x374">}}Abstract geometric figure made of overlapping triangles and polygons in green, purple, blue, orange, yellow, and red on a white background.{{</dither>}} +{{<dither monk5.png "374x374">}}Abstract arrangement of overlapping triangles and quadrilaterals in green, yellow, orange, red, blue, and purple on a white background.{{</dither>}} This was a super cool experience. There was stuff I could do (reasoning about three-dimensional shapes) that the LLM couldn't, and stuff it could do in seconds that would have taken me hours and hours. [Here's the source code][9] if you want to play with it, and [here are some (full-color) examples][10]. @@ -96,8 +96,8 @@ With Nev at the new school and the weather cooling off, we've started taking the Nev's on her first soccer team, the Hamsters. Results are mixed so far, but she had a great game her last time out and scored her first goal. -{{<dither nev-goal.jpeg "782x600">}}Tiny striker sprints across the field, muddy shirt and pink socks flying, celebrating a goal like a World Cup champion.{{</dither>}} -{{<dither IMG_8863.jpeg "782x600">}}Little striker showing off her bright pink socks and a big grin before kickoff.{{</dither>}} +{{<dither nev-goal.jpeg "782x600">}}A child in a teal soccer jersey and black socks with pink bands runs toward the camera on a grassy field, with other children, adults, and small soccer goals in the background.{{</dither>}} +{{<dither IMG_8863.jpeg "782x600">}}A smiling child in a mint-green soccer jersey and bright pink socks balances one foot on a soccer ball with arms outstretched on a sunny field, with people and trees in the background.{{</dither>}} A few miscellaneous recommendations: diff --git a/content/journal/dispatch-33-november-2025/index.md b/content/journal/dispatch-33-november-2025/index.md @@ -61,7 +61,7 @@ I'm running my electric piano through it (as well as my Prophet synth for the ou I was putting together a team presentation about [ChatGPT Codex][2] and decided to see if I could build a simple web bookmarking API in under an hour. With that done, I asked it to take a stab at a web UI, and was frankly blown away by the result. I continued iterating on it for about a week, and I've now deployed it to the same server running this site and have been using it as my bookmark manager for the better part of a month. [You can view my public links here][3]. Here's what it looks like when you're logged in: -{{<dither marky-screenshot.png "1600x1300">}}Lightweight bookmarking app “Marky” open in a browser: add-bookmark form on the left, and a list of saved links on the right, including “Software is supply-constrained,” “If you don’t tinker, you don’t have taste,” and “AI’s Dial-Up Era.”{{</dither>}} +{{<dither marky-screenshot.png "1600x1300">}}Screenshot of Marky, a bookmarking and plaintext archive app, with an Add Bookmark form on the left and a searchable list displaying 1–20 of 198 bookmarks on the right. Each bookmark includes a linked title, URL, date, and Archive, Edit, and Delete links.{{</dither>}} It's not _perfect_ -- it trips on websites with really restrictive anti-crawler measures, and some of Vue.js-based dynamic behavior is a little janky. I also can't really comment on the code quality as I've barely looked at it. That said, it is exactly what I want in a bookmark manager, with features like plaintext archiving, full-text search, and referrer tracking. It's exciting to imagine a future where, if you have the right skills, the bar for creating software is much lower and all kinds of new stuff comes to life. @@ -92,8 +92,8 @@ We did a weekend at [Fairy Stone State Park][10] with a bunch of Durham friends. [10]: https://www.dcr.virginia.gov/state-parks/fairy-stone -{{<dither IMG_1292.jpeg "782x600">}}Big sister leads the bounce-house adventure while little brother follows, both laughing in their cozy fall jackets.{{</dither>}} -{{<dither IMG_5488.jpeg "782x600">}}Tiny adventurer pauses for a giggle, shoes in hand, before diving back into the backyard bounce house under bright autumn trees.{{</dither>}} +{{<dither IMG_1292.jpeg "782x600">}}Two children in a colorful inflatable bounce house, one wearing a purple jacket and the other a fuzzy gray hooded jacket, leaning on the red front wall.{{</dither>}} +{{<dither IMG_5488.jpeg "782x600">}}A toddler in a green plaid shirt and jeans holds a sneaker against their outstretched tongue, with a colorful inflatable bounce house and autumn trees behind them.{{</dither>}} I went to Nashville for a team offsite last week. Highlights included [Third Man Records][11], Jack White's record shop/recording studio (I picked up a [live recording][12] from one of my favorite bands) and this [ridiculously good cover band][13]. diff --git a/content/journal/dispatch-34-december-2025/index.md b/content/journal/dispatch-34-december-2025/index.md @@ -52,11 +52,11 @@ We took a quick trip down to Lake Norman to visit Claire's grandmother, but the [3]: https://completeplayground.org/ [4]: /journal/dispatch-31-september-2025/ -{{<dither IMG_9438.jpeg "782x600">}}Snuggled in winter coats, two kids giggle cheek-to-cheek with bright, happy eyes.{{</dither>}} -{{<dither IMG_2076.jpeg "782x600">}}Family photo op with Bluey and Bingo: three generations smiling while the kids in Bluey ears line up between the giant mascots.{{</dither>}} +{{<dither IMG_9438.jpeg "782x600">}}Two children nestled among winter coats, one smiling in a blue jacket and the other with curly blond hair and an open mouth in a purple jacket.{{</dither>}} +{{<dither IMG_2076.jpeg "782x600">}}Six adults and four children pose between Bluey and Bingo mascots wearing large crowns.{{</dither>}} -{{<dither IMG_9456.jpeg "782x600">}}Four little buddies in PJs and play clothes building a block village on the living room floor.{{</dither>}} -{{<dither IMG_2217.jpeg "782x600">}}Dad and two kids huddled around a tabletop music setup, each exploring synth pads and keys in a cozy kitchen studio scene.{{</dither>}} +{{<dither IMG_9456.jpeg "782x600">}}Four children sit and kneel on a wooden playroom floor among colorful toy blocks. One wears a pale blue dress and holds a purple tube, while another smiles at the camera.{{</dither>}} +{{<dither IMG_2217.jpeg "782x600">}}An adult wearing headphones sits with two children at a table covered with electronic music equipment. One child touches an illuminated pad controller, while the adult handles a cable beside a compact keyboard.{{</dither>}} I did the Troy Turkey Trot 10K Thanksgiving morning. Felt pretty good! [Happy with my result][5], though I came out a little hot and faded down the stretch. My family joined me for the mile walk afterward. diff --git a/content/journal/dispatch-35-january-2026/index.md b/content/journal/dispatch-35-january-2026/index.md @@ -73,16 +73,16 @@ Happy new year! Big month. My girl turned four, which is somehow both shockingly <!--more--> -{{<dither IMG_2327.jpeg "782x600">}}Curly‑haired kid at a birthday table, eyes wide as balloons float overhead.{{</dither>}} -{{<dither IMG_3491.jpeg "782x600">}}Standing with a giant wooden troll—whimsical roadside art and a family moment.{{</dither>}} +{{<dither IMG_2327.jpeg "782x600">}}A child with curly blond hair, wearing a pink dress over a magenta shirt, sits beneath balloons at a bright pink table with a slice of pizza on a paper plate.{{</dither>}} +{{<dither IMG_3491.jpeg "782x600">}}Two adults and a child stand beside a large crouching wooden sculpture with an upside-down green wheeled bin covering its head and two holes for eyes, outdoors among trees.{{</dither>}} We spent Christmas in Greensboro with Claire's family. In addition to all the good family time, the highlight was [Winter Wonderlights][2] at the Greensboro Science Center (and so many presents). Then we spent a few days down at Lake Norman with Claire's grandmother. We went to a [Gabby's Dollhouse][3] interactive experience, which is pretty big in our house these days. [2]: https://www.greensboroscience.org/winterwonderlights/ [3]: https://camp.com/gabbys-dollhouse-x-camp-charlotte -{{<dither IMG_9572.jpeg "782x600">}}A child caught in a flurry of snow, wide‑eyed amid glowing holiday lights and a shiny sculpture.{{</dither>}} -{{<dither IMG_9574.jpeg "782x600">}}Toddler in a patterned sweater with a pacifier, surrounded by toy bowls of strawberries and a blue mixing bowl in a play kitchen.{{</dither>}} +{{<dither IMG_9572.jpeg "782x600">}}A child with curly blond hair holds a pink toy pony, mouth open as white flakes fall around them. Colorful lights and a large reflective circular sculpture stand in the background at night.{{</dither>}} +{{<dither IMG_9574.jpeg "782x600">}}A young child with a pink pacifier holds a toy strawberry at a play kitchen counter with colorful bowls, toy fruit, an egg carton, and a large blue mixing bowl with a wooden spoon.{{</dither>}} ### Music @@ -111,15 +111,15 @@ My lovely wife got me a [Bambu Lab P1S][6] 3D printer for Christmas, and it's ba [6]: https://us.store.bambulab.com/products/p1s?id=583855874739507208 [7]: https://makerworld.com/en/models/1117352-articulated-fox-by-pinkywings -{{<dither IMG_2849.jpeg "782x600">}}Bright 3D‑printed toys—pink segmented dragon pieces and a tiny dragon beside a red jeep—on a tabletop in soft window light.{{</dither>}} -{{<dither IMG_9648.jpeg "782x600">}}Two tiny pink, horned dinos stand on a cutting mat, lit warmly like fresh desk-bound creations.{{</dither>}} +{{<dither IMG_2849.jpeg "782x600">}}A magenta articulated dragon, a magenta unicorn, and a red toy Jeep sit on a light-colored table, with a plastic storage bin and floral-patterned box behind them.{{</dither>}} +{{<dither IMG_9648.jpeg "782x600">}}Two bright pink 3D-printed dinosaur figures with white horns and spikes and black eyes sit on a gridded cutting mat.{{</dither>}} I've started dabbling a bit with [Blender][8] to design and print custom stuff. Here's my first project -- the, ahem, "crap catcher" -- designed to keep Claire's fancy kitchen knives free of parrot detritus: [8]: https://www.blender.org/ -{{<dither crap-catcher.jpg "782x600">}}A 3D model of a long rectangular tray or catch basin in Blender, shown in wireframe-style shading with the scene axes visible.{{</dither>}} -{{<dither IMG_9650.jpeg "782x600">}}A refrigerator with a 3D printed shelf above a strip of knives.{{</dither>}} +{{<dither crap-catcher.jpg "782x600">}}3D modeling viewport showing a long rectangular tray with a tall back panel, low front and side walls, and three rectangular strips along the inside back, rendered with translucent gray surfaces and black edges.{{</dither>}} +{{<dither IMG_9650.jpeg "782x600">}}An empty red shelf mounted on the side of a gray refrigerator above a magnetic strip holding knives, kitchen scissors, and a honing rod.{{</dither>}} Print-on-demand toys are awesome, but there is something really cool about watching a thing you designed enter the real world, layer by layer. I'm keen to try out [OpenSCAD][9] ([via][10]), which lets you design models with code instead of visually. @@ -150,8 +150,8 @@ Finally, I'd like to take health and exercise a bit more seriously in 2026, and That's all for now. I hope 2026 treats you well, from my adorable family to yours. -{{<dither IMG_9467.jpeg "782x600">}}Big sister in a purple puffer hugs her giggling little brother on the playground, both in bright blue shoes and grinning wide.{{</dither>}} -{{<dither IMG_2575.jpeg "782x600">}}Dad in a gray robe laughing as he hauls two giggling kids through a leaf-covered yard.{{</dither>}} +{{<dither IMG_9467.jpeg "782x600">}}Two young children sit together at the top of a playground slide, one smiling and the other leaning close with their tongue out.{{</dither>}} +{{<dither IMG_2575.jpeg "782x600">}}A smiling man in glasses and a gray robe holds a toddler while carrying an older child on his back, standing beside outdoor steps surrounded by fallen leaves.{{</dither>}} ### This Month diff --git a/content/journal/dispatch-36-february-2026/index.md b/content/journal/dispatch-36-february-2026/index.md @@ -71,11 +71,11 @@ Greetings from frigid Durham, North Carolina. We've had an uncharacteristic amou <!--more--> -{{<dither IMG_3192.jpeg "782x600">}}Bundled up in a double stroller, both kids happily munching snacks on a chilly street.{{</dither>}} -{{<dither IMG_3258.jpeg "782x600">}}Snowy woods selfie: bundled mom and baby, rosy cheeks, winter headbands, big smiles.{{</dither>}} +{{<dither IMG_3192.jpeg "782x600">}}Two young children in winter coats and knit hats sit side by side in a double stroller under a beige blanket, holding lollipops.{{</dither>}} +{{<dither IMG_3258.jpeg "782x600">}}A smiling adult wearing a white knit headband holds a baby in a blue jacket and navy hat with a pink pacifier, outdoors among trees with snow on the ground.{{</dither>}} -{{<dither IMG_3244.jpeg "782x600">}}Pink pom-pom hat, tiny hands in the snow, and a big winter laugh.{{</dither>}} -{{<dither IMG_3260.jpeg "782x600">}}Bundled up and ready for a snowy sled ride.{{</dither>}} +{{<dither IMG_3244.jpeg "782x600">}}A child wearing a pink pom-pom hat and winter coat crawls through snow, with snow-covered houses in the background and part of a stroller at the right.{{</dither>}} +{{<dither IMG_3260.jpeg "782x600">}}A young child in a blue snowsuit, dark knit hat, and mittens lies in a bright green sled on snow, looking up with a pink pacifier in their mouth.{{</dither>}} I spent a few days in Miami for a company leadership retreat. Highlights included a run along the [Miami Beach Beachwalk][1] and beers at [Abbey Brewing Company][2]. Then we headed up to DC for a friend's baby shower and some time with my folks. @@ -105,8 +105,8 @@ Friend of the blog [Tim Hårek][7] linked to [this post about OpenSCAD][8], whic [8]: https://nuxx.net/blog/2025/12/20/openscad-is-kinda-neat/ [9]: https://www.amazon.com/dp/B0DTB2N2D9 -{{<dither IMG_9773.jpeg "782x600">}}Blue 3D pen and a fresh printed “happy valentine’s day! ♥ nev” card on the worktable.{{</dither>}} -{{<dither IMG_9772.jpeg "782x600">}}“Happy Valentine’s day!” and “Nev” stamped on a pink slip with a heart.{{</dither>}} +{{<dither IMG_9773.jpeg "782x600">}}A blue and orange handheld craft tool beside a white stencil on pink paper. The stencil reads “happy valentine’s day!” above a heart and the name “nev.”{{</dither>}} +{{<dither IMG_9772.jpeg "782x600">}}Red paper with dark blue lettering reading “happy valentine’s day!” above a heart symbol and the name “nev.”{{</dither>}} We're doing our [company hackathon][10] in a few weeks, and I'm planning to use the printer to make something with both physical and digital components (probably involving [AprilTags][11]). diff --git a/content/journal/dispatch-37-march-2026/index.md b/content/journal/dispatch-37-march-2026/index.md @@ -39,8 +39,8 @@ February was quick but full. We had a few things hit all at the same time -- som <!--more--> -{{<dither IMG_9858.jpeg "782x600">}}Four kids, one couch, absolute chaos.{{</dither>}} -{{<dither IMG_9914.jpeg "782x600">}}A child clings to their grandmother on a swing at the playground.{{</dither>}} +{{<dither IMG_9858.jpeg "782x600">}}Four children lie close together on a beige couch, smiling and playing. The youngest has a green pacifier, and the two middle children hold hands as one sticks out their tongue.{{</dither>}} +{{<dither IMG_9914.jpeg "782x600">}}A woman wearing sunglasses sits on a playground swing with a toddler on her lap, holding the chain as her legs extend forward.{{</dither>}} ### New Car @@ -59,8 +59,8 @@ We did our annual [company hackathon][3], and for the first time, I pitched an o [4]: https://docs.wpilib.org/en/stable/docs/software/vision-processing/apriltag/apriltag-intro.html [5]: https://en.wikipedia.org/wiki/Diablo_(series) -{{<dither dmp-render.png "782x600">}}Early CAD render of a compact two-part enclosure, shown exploded to reveal the internal cutouts and mounting features.{{</dither>}} -{{<dither dmp-screenshot.png "782x600">}}A work-in-progress character screen for my dungeon crawler, featuring a very good hat and exactly one equipped pair of pants.{{</dither>}} +{{<dither dmp-render.png "782x600">}}CAD model of two rectangular parts side by side: a translucent cover with a rectangular opening and two small circular holes, and a base with two recessed square sections containing large circular openings and a raised end bar with a small hole.{{</dither>}} +{{<dither dmp-screenshot.png "782x600">}}Pixel art game interface with a smiling, mustached man wearing a dark cap and hood, surrounded by 16 stone-bordered inventory slots. The upper-left slot contains armored trousers; the others are empty. A circular badge marked 2 overlaps the bottom of the portrait.{{</dither>}} This was fun to build, and pretty novel -- a web app with no real notion of login state; your identity is solely a physical thing you have in your possession. The team is going to continue iterating on the concept and roll it out to the company at large at our big event in May. More to come on that. diff --git a/content/journal/dispatch-38-april-2026/index.md b/content/journal/dispatch-38-april-2026/index.md @@ -50,8 +50,8 @@ Finally warming up around here (though we did get hit by the [largest 24-hour te <!--more--> -{{<dither IMG_0004.jpeg "782x600">}}Face-first into the color chaos.{{</dither>}} -{{<dither IMG_0009.jpeg "782x600">}}Blue faces, red popsicles, and the kind of chaos that means the afternoon went well.{{</dither>}} +{{<dither IMG_0004.jpeg "782x600">}}A smiling child with windblown curly hair and bright blue, green, and pink powder covering their face and shirt, standing outdoors beneath a blue sky.{{</dither>}} +{{<dither IMG_0009.jpeg "782x600">}}Two children with blue and multicolored powder covering their faces and clothes stand outdoors. The child in front eats a pink ice pop while the child behind holds one overhead.{{</dither>}} Then we drove up to DC, left the kids with my folks, and took the train to Baltimore to catch [my friend's][3] show and spend a little bit of time in the city. We stayed at the [Pendry][4] which was super nice. We'll be back. Sold the old car while were up there -- 🪦 legend. diff --git a/content/journal/dispatch-39-may-2026/index.md b/content/journal/dispatch-39-may-2026/index.md @@ -41,11 +41,11 @@ Man, what a month. Rich with the stuff of life. THICK. High highs (Nev's first b We headed down to Lake Norman for Easter weekend. Good to get some time with our little nephew Sully, who's just a few months younger than Nico. I ran the Tar Heel 10 Miler ([result][1], [certificate][2]), which went okay. Happy enough with my overall time at sub-9 minutes/mile, but I thought I might do a little better until I hit the final climb. -{{<dither IMG_4118.jpeg "782x600">}}Smiles and life jackets on the lake.{{</dither>}} -{{<dither IMG_4132.jpeg "782x600">}}A gleeful first mate on the water.{{</dither>}} +{{<dither IMG_4118.jpeg "782x600">}}A smiling child in a colorful life jacket holds a green-lidded cup on a boat, with two other children wearing flotation gear and a seated adult behind them.{{</dither>}} +{{<dither IMG_4132.jpeg "782x600">}}A smiling child with windblown hair wears a colorful dinosaur flotation vest on a boat, extending one arm toward the water, with a tree-lined shore and cloudy sky behind them.{{</dither>}} -{{<dither IMG_0185.jpeg "782x600">}}Cheering from the cheap seats.{{</dither>}} -{{<dither IMG_4482.jpeg "782x600">}}A mid-race high-five on Franklin Street.{{</dither>}} +{{<dither IMG_0185.jpeg "782x600">}}A smiling woman holds two young children in crowded stadium seating, with one child reaching toward the camera.{{</dither>}} +{{<dither IMG_4482.jpeg "782x600">}}A runner in a blue shirt reaches toward a child in a pink floral dress at the curb as other runners pass along a tree-lined street.{{</dither>}} Between the race and an ill-fated outing to see the [Savannah Bananas][3], we spent a good bit of time in Chapel Hill, where Claire went to school. Neat for her to be able to show the kids around. I sort of take for granted that we live where I went to college (though the main campus is rather separate and not somewhere we ever go). @@ -67,8 +67,8 @@ After the rest of the company departed, my parents (bless them) brought the kids [8]: https://wildwnc.org/ [9]: https://highlandbrewing.com/ -{{<dither IMG_0261.jpeg "782x600">}}Story time on the couch.{{</dither>}} -{{<dither IMG_0271.jpeg "782x600">}}Riding high in downtown Asheville.{{</dither>}} +{{<dither IMG_0261.jpeg "782x600">}}A man sits on a gray couch with two young children leaning against him and looking at a book he holds. Other children’s books and a stuffed toy lie beside them.{{</dither>}} +{{<dither IMG_0271.jpeg "782x600">}}An adult sits on a large bronze pig statue beside a child sitting on a smaller pig statue in a brick-paved city plaza.{{</dither>}} ### Mystery Project @@ -82,8 +82,8 @@ About a week before the event, I decided to get serious about the digital update [12]: https://github.com/liberatedpixelcup/Universal-LPC-Spritesheet-Character-Generator [13]: https://docs.wpilib.org/en/stable/docs/software/vision-processing/apriltag/apriltag-intro.html -{{<dither 55247387333_60bbe1a7d4_o.jpg "782x600">}}A phone running a pixel-art social game sits beside an orange conference lanyard and badge.{{</dither>}} -{{<dither dmp_screenshot.png "782x600">}}A cigar-smoking pixel-art captain with ski goggles, a glowing blue saber, and a cat sidekick.{{</dither>}} +{{<dither 55247387333_60bbe1a7d4_o.jpg "782x600">}}A smartphone displaying a pixel-art character named Aubrey rests on a gray tabletop beside an orange lanyard, an open white badge holder with a blue symbol, and a black marker.{{</dither>}} +{{<dither dmp_screenshot.png "782x600">}}Profile card for David featuring a pixel art character wearing a captain’s hat and blue goggles, holding a glowing blue sword and a smoking object, with a gray cat beside him. Text reads “Level 34 Vanguard • 33 Connections,” with Connect, Collect, and View All Connections controls.{{</dither>}} The game was a big hit. The keychains were distributed in everyone's welcome bags along with a little explainer card. People were already playing when we got to Asheville (which was a relief as we'd never done a full end-to-end test). We created new items throughout the event (Daft Punk Helmet, Grogu, etc.), associated them with the item tags, and had a lot of fun hiding them at the different event locations. Major props to Claire for running with that side of things. @@ -93,8 +93,8 @@ I don't know if we'll revisit this concept or if it'll be a one-time thing. I de Still having a blast with the 3D printer. My latest obsession is the [Gridfinity][14] organization system, printing little bins for all of our stuff. -{{<dither IMG_0196.jpeg "782x600">}}Gridfinity desk organizer.{{</dither>}} -{{<dither IMG_0252.jpeg "782x600">}}Gridfinity/GOEWS entryway organizer.{{</dither>}} +{{<dither IMG_0196.jpeg "782x600">}}Gray desktop organizer holding pens, markers, scissors, a pencil, and a ruler beside a white card labeled “This Week,” listing ProCharge activities, car charger, and taxes.{{</dither>}} +{{<dither IMG_0252.jpeg "782x600">}}Gray organizer on a wire shelf with hooks holding keys and a pink wristband, small compartments containing a pacifier and other items, and two baskets below holding a glass jar, a purple toy, and keys.{{</dither>}} If you're into this sort of thing, check out this [desktop organizer set][15] and this [wall system][16] you can connect to a Gridfinity base with [this adapter][17] (and a ton of little magnets). @@ -107,8 +107,8 @@ If you're into this sort of thing, check out this [desktop organizer set][15] an Finally, we're in the early stages of replacing our rotted-out deck with a screened-in porch. We met with an architect who showed us some sketches: -{{<dither deck2.png "782x600">}}Architectural rendering of a screened-in second-story deck addition.{{</dither>}} -{{<dither deck1.png "782x600">}}Architectural sketch of a screened porch and elevated deck addition.{{</dither>}} +{{<dither deck2.png "782x600">}}Architectural drawing of an elevated screened porch attached to a house, with a gabled roof, support posts, stairs on the left, and an open patio beneath.{{</dither>}} +{{<dither deck1.png "782x600">}}Architectural drawing of a house with a raised screened porch, exterior stairs with railings, and support posts above an open ground-level patio.{{</dither>}} Exciting stuff! This month's looking busy, but I'm feeling relatively unencumbered with all of those obligations out of the way. Looking forward to getting back into music and kicking off the summer with a trip to the lake for Memorial Day and the [Running of the Bulls][18] 8K in downtown Durham. diff --git a/content/journal/dispatch-4-june-2023/index.md b/content/journal/dispatch-4-june-2023/index.md @@ -30,10 +30,10 @@ We spent Memorial Day weekend at Lake Norman, but it was like 55° and rainy the We finished off the closet project -- building the second unit was a lot quicker than the first, since I really just had to scale up the existing plans. Then it was a matter of adding the connecting rod and shelf. I think it turned out great, though I'd like to improve at building drawers. Here are some before and after shots (courtesy of Claire): -{{<dither IMG_6173.jpg "374x">}}Closet full of colorful clothes on wooden hangers above a stack of mesh drawers stuffed with folded laundry.{{</dither>}} -{{<dither IMG_6174.jpg "374x">}}A cozy closet nook crammed with sweaters and laundry baskets, waiting for a tidy-up.{{</dither>}} -{{<dither IMG_6593.jpg "374x">}}A narrow closet with a homemade wooden dresser, a row of coordinated clothes, and stacks of books perched on the shelf up top.{{</dither>}} -{{<dither IMG_6594.jpg "374x">}}Cozy closet corner with neatly hung clothes, wooden drawers, and a laundry basket waiting on top.{{</dither>}} +{{<dither IMG_6173.jpg "374x">}}Open closet with assorted clothes on wooden hangers above white mesh drawers filled with folded clothing.{{</dither>}} +{{<dither IMG_6174.jpg "374x">}}Open closet with hanging clothes above four white mesh drawers filled with clothing, with more clothes piled on the floor.{{</dither>}} +{{<dither IMG_6593.jpg "374x">}}Small closet with clothes on wooden hangers above a three-drawer wooden dresser, baskets on top of the dresser, and books stacked on an upper shelf.{{</dither>}} +{{<dither IMG_6594.jpg "374x">}}Closet with clothes packed along the left and center rods, a single white T-shirt hanging on the right, and wooden drawers topped with wire baskets of clothing below.{{</dither>}} Other life updates: we had a big work retreat at the beginning of the month at the [Tides Inn][1], which was incredible. I celebrated 15 years (15!) with the company, and received a [scooter][2] as a gift. This thing is rad -- I've been really happy with the e-bike, but it's nice to have a smaller option for quick trips to the office or corner store. diff --git a/content/journal/dispatch-40-june-2026/index.md b/content/journal/dispatch-40-june-2026/index.md @@ -39,8 +39,8 @@ April bled straight into May, so it felt like a three-week month and flew right <!--more--> -{{<dither IMG_0386.jpeg "782x600">}}Lining up for the Running of the Bulls.{{</dither>}} -{{<dither IMG_5067.jpeg "782x600">}}Two kids holding hands at the splash pad.{{</dither>}} +{{<dither IMG_0386.jpeg "782x600">}}Two smiling adults wearing race bibs stand behind a double stroller with two young children, surrounded by runners on a street.{{</dither>}} +{{<dither IMG_5067.jpeg "782x600">}}Two children in swimwear hold hands at an outdoor splash pad, with blue water slides and spraying fountains behind them. The smaller child wears pink sunglasses.{{</dither>}} [1]: https://runsignup.com/Race/NC/Durham/RunningoftheBulls8K diff --git a/content/journal/dispatch-41-july-2026/index.md b/content/journal/dispatch-41-july-2026/index.md @@ -57,14 +57,14 @@ Nico turned two in June. What the hell! Where's my baby boy, and who's this sass <!--more--> -{{<dither IMG_0414.jpeg "782x600">}}A tiny cow considers the birthday cupcake.{{</dither>}} -{{<dither IMG_0422.jpeg "782x600">}}Family portrait in the shade at the playground.{{</dither>}} +{{<dither IMG_0414.jpeg "782x600">}}A toddler wearing cow-patterned clothing and a horned headband looks at a chocolate-frosted cupcake with a number 2 candle on an outdoor picnic table.{{</dither>}} +{{<dither IMG_0422.jpeg "782x600">}}Two adults sit with two young children at an outdoor picnic table. Three smile at the camera while the younger child looks down, and the older child holds a red toy barn.{{</dither>}} -{{<dither IMG_1750.jpeg "782x600">}}A pileup on the hotel bed.{{</dither>}} -{{<dither IMG_5247.jpeg "782x600">}}A piggyback ride through the shady playground.{{</dither>}} +{{<dither IMG_1750.jpeg "782x600">}}Two adults and four children sit together on a bed. Several children look toward a phone held by the adult on the right, while one child holds a stuffed animal.{{</dither>}} +{{<dither IMG_5247.jpeg "782x600">}}A smiling man wearing glasses and a baseball cap carries a curly-haired child piggyback in a wooded park. The child makes a wide-eyed face and wears bright pink shoes.{{</dither>}} -{{<dither IMG_5409.jpeg "782x600">}}A rocky stream break with the kids.{{</dither>}} -{{<dither IMG_5454.jpeg "782x600">}}Nap time in the camp chair.{{</dither>}} +{{<dither IMG_5409.jpeg "782x600">}}An adult and two young children sit on a large rock in a shallow, rocky stream surrounded by forest. One child dips a foot into the water.{{</dither>}} +{{<dither IMG_5454.jpeg "782x600">}}An adult wearing glasses sits in a blue striped camping chair with a young child resting face-down against their chest, surrounded by trees and dirt.{{</dither>}} In what's surely a sign of a creatively unfulfilling month, here are my thoughts about a few recent purchases: diff --git a/content/journal/dispatch-42-august-2026/index.md b/content/journal/dispatch-42-august-2026/index.md @@ -57,11 +57,11 @@ August 2026 marks two big personal anniversaries: 25 years in Durham and 10 year In July, we went down to Lake Norman for the Fourth. The highlight was hooking an inflatable raft up to one of the kayaks and towing the kids and their cousin Sully around. Otherwise, laid pretty low: museums, pools, farmers' markets, Eno River, just classic summertime shit. Work was a bit stressful (tricky client situation) but I think we're mostly through the woods there. My folks came down at the end of the month to celebrate my mom's birthday. -{{<dither IMG_0482.jpeg "782x600">}}A lazy lake flotilla.{{</dither>}} -{{<dither IMG_0509.jpeg "782x600">}}Two kids making faces on the stairs.{{</dither>}} +{{<dither IMG_0482.jpeg "782x600">}}A person paddles a blue kayak towing an inflatable raft with three children on a lake, while another person floats nearby in a yellow inner tube. Trees and houses line the distant shore.{{</dither>}} +{{<dither IMG_0509.jpeg "782x600">}}Two curly-haired children sit side by side on wooden stairs, smiling and glancing sideways. One wears a purple T-shirt, and the other wears a red T-shirt.{{</dither>}} -{{<dither IMG_0533.jpeg "782x600">}}Matching faces at the playground.{{</dither>}} -{{<dither IMG_0641.jpeg "782x600">}}Family lounge time over coffee, juice, and snacks.{{</dither>}} +{{<dither IMG_0533.jpeg "782x600">}}An adult with long dark hair and a child with curly blond hair make scrunched facial expressions outdoors. The adult wears a white shirt, and the child wears a green dress while sitting on a stone ledge.{{</dither>}} +{{<dither IMG_0641.jpeg "782x600">}}Two adults and two children sit around a café table with drinks and snacks. One child hugs a smiling woman wearing sunglasses, while the other eats a snack.{{</dither>}} Here's a new track, called "Asdreno Dreams" (title by my coworker's young son, who makes fictitious track listings for fun): diff --git a/content/journal/dispatch-43-september-2026/index.md b/content/journal/dispatch-43-september-2026/index.md @@ -54,14 +54,14 @@ We had a couple trips essentially back-to-back in August, which made for a chopp <!--more--> -{{<dither IMG_6273.jpeg "782x600">}}Beach day beneath the Golden Gate Bridge.{{</dither>}} -{{<dither IMG_0726.jpeg "782x600">}}Cycling beneath a bright September sky, with the hills ahead.{{</dither>}} +{{<dither IMG_6273.jpeg "782x600">}}Two young children lie on a sandy beach with the Golden Gate Bridge in the background. One wears pink sunglasses and a pacifier; the other reclines beside a stuffed unicorn.{{</dither>}} +{{<dither IMG_0726.jpeg "782x600">}}A cyclist wearing a white helmet rides along a paved path bordered by trees and dry grass, with railroad tracks and a road to the right and hills in the distance.{{</dither>}} -{{<dither IMG_6427.JPG "782x600">}}A sunny family moment beneath a leafy garden arch.{{</dither>}} -{{<dither IMG_8647.jpeg "782x600">}}Four kids and a wagon full of sand toys at sunset on the beach.{{</dither>}} +{{<dither IMG_6427.JPG "782x600">}}Two smiling adults each hold a young child beneath a leafy garden arch in bright sunlight. One child sticks out their tongue, while the other rests a hand near their mouth.{{</dither>}} +{{<dither IMG_8647.jpeg "782x600">}}Four children on a sandy beach at sunset, three standing and one sitting beside a bright green wagon filled with sand toys.{{</dither>}} -{{<dither IMG_0828.jpeg "782x600">}}Four children pause along a beachside fence beneath a brilliant blue sky.{{</dither>}} -{{<dither IMG_0815.jpeg "782x600">}}A sunny family outing on a riverside boardwalk.{{</dither>}} +{{<dither IMG_0828.jpeg "782x600">}}Four children beside a wooden fence on a sandy path, with coastal vegetation and a blue sky behind them. Three face the camera while one stands on the lower fence rail, facing away.{{</dither>}} +{{<dither IMG_0815.jpeg "782x600">}}Three adults and four children sit together on a wooden bench outdoors, with trees and water behind them. One child holds a peeled banana, and another holds a snack container.{{</dither>}} I picked up a [macropad][3] [a couple months ago][4] and set up some nice automations: diff --git a/content/journal/dispatch-44-october-2026/index.md b/content/journal/dispatch-44-october-2026/index.md @@ -54,11 +54,11 @@ Construction on our new deck started in earnest. The old, rotted deck is gone, a At the end of the month, we decided to head down to Wilmington for our nephew's second birthday, and rather than crash with family, we rented a small house right on Carolina Beach. This was incredible, some combination of the accommodations, the weather, and just sort of ... not having any of the normal expectations or pressure that usually accompany travel. They offered to let us extend our stay an extra day, and we happily obliged. -{{<dither IMG_0907.jpeg "782x600">}}Ice cream tastes better when it’s someone else’s.{{</dither>}} -{{<dither IMG_1031.jpeg "782x600">}}Small boots, big digs.{{</dither>}} +{{<dither IMG_0907.jpeg "782x600">}}A man and two children sit on a wooden bench outdoors eating ice cream. The man holds a cone for the younger child, while the older child smiles broadly and holds another cone.{{</dither>}} +{{<dither IMG_1031.jpeg "782x600">}}A young child stands at the controls of a compact excavator on disturbed soil beside a house, surrounded by trees.{{</dither>}} -{{<dither IMG_7417.jpeg "782x600">}}Three kids test out their very own beachfront pool.{{</dither>}} -{{<dither IMG_8261.jpeg "782x600">}}Greetings from Carolina Beach, where two out of three looking at the camera counts as a win.{{</dither>}} +{{<dither IMG_7417.jpeg "782x600">}}Three young children play in a shallow pool dug into the beach sand, two wearing colorful flotation gear, with adults, beach chairs, dunes, and houses in the background.{{</dither>}} +{{<dither IMG_8261.jpeg "782x600">}}Three children hold hands on artificial grass in front of a colorful “Greetings from Carolina Beach” mural, with a green picnic table and turquoise chairs behind them.{{</dither>}} I've been working on a new track for the last few weeks, but was never quite happy with it until I managed to capture a decent recording of the kids frolicking in the waves the night we arrived at the beach and added it to the music. I think it works well, though it does fill me with a strange melancholy, like I'm looking backwards from some point in the far future. diff --git a/content/journal/dispatch-5-july-2023/index.md b/content/journal/dispatch-5-july-2023/index.md @@ -37,10 +37,10 @@ June was dominated by work and travel. Weekdays were filled up with a client pro <!--more--> -{{<dither IMG_4041.jpeg "374x300">}}Little runner Mae beams with pride as she dashes down the track, race bib 1490 fluttering in the summer sun.{{</dither>}} -{{<dither 11B423F8-5D03-4155-B548-185E04A04595_1_105_c.jpeg "374x300">}}Feet up in the canoe, drifting down a quiet green river while a friend paddles ahead under a wide straw hat.{{</dither>}} -{{<dither IMG_9457.jpeg "374x300">}}Young riders cruise through a sunny downtown, a girl with shorts leading while a toddler enjoys the ride behind her and another cyclist follows close behind.{{</dither>}} -{{<dither C65C4973-3266-4155-9786-F7B379BD8DD9_1_105_c.jpeg "374x300">}}Little golfer in a blue dress squats on the ship’s mini golf course, ready to tap the yellow ball while the family looks on.{{</dither>}} +{{<dither IMG_4041.jpeg "374x300">}}A smiling toddler runs along an outdoor track wearing a light blue shirt with a colorful heart, blue shorts, and race bib number 1490.{{</dither>}} +{{<dither 11B423F8-5D03-4155-B548-185E04A04595_1_105_c.jpeg "374x300">}}View from a canoe with sandaled feet and a paddle in the foreground, alongside another canoe carrying people and gear on a calm, tree-lined river under a clear blue sky.{{</dither>}} +{{<dither IMG_9457.jpeg "374x300">}}Two helmeted adults ride bicycles along a street lined with parked cars and storefronts, with a helmeted child in a rear seat on the leading bicycle.{{</dither>}} +{{<dither C65C4973-3266-4155-9786-F7B379BD8DD9_1_105_c.jpeg "374x300">}}A young child in a turquoise dress crouches beside a miniature golf hole, with a yellow ball nearby and two adults holding putters on a ship’s deck.{{</dither>}} It was a busy month, sometimes overly so, but having so many unique experiences had this odd effect of slowing and expanding time, which is the opposite of how things tend to go as you get older ([good short piece along the same lines][2]). Most everything else fell by the wayside, but that's OK -- these were all awesome experiences, and I'm excited for a (relatively) quiet July. diff --git a/content/journal/dispatch-6-august-2023/index.md b/content/journal/dispatch-6-august-2023/index.md @@ -27,8 +27,8 @@ Nice to have a quieter month, though we still managed to spend a weekend at Lake <!--more--> -{{<dither 05569D5B-AEFA-44E8-B907-40B6DA48E303_1_105_c.jpeg "782x782">}}Tiny camper snoozing in a bug net hammock after a day on the trail.{{</dither>}} -{{<dither DBCE9DD4-30D1-4A90-BC3F-E1C6062AF430_1_105_c.jpeg "782x782">}}Smiling grandparents squeeze their giggling toddler in a sunny, wooded driveway.{{</dither>}} +{{<dither 05569D5B-AEFA-44E8-B907-40B6DA48E303_1_105_c.jpeg "782x782">}}A young child in a gray shirt and pink shorts reclines in a blue hammock enclosed by black mesh netting outdoors.{{</dither>}} +{{<dither DBCE9DD4-30D1-4A90-BC3F-E1C6062AF430_1_105_c.jpeg "782x782">}}Two smiling adults pose outdoors with a young child held between them, with trees and parked cars in the background.{{</dither>}} Tech-wise, I switched from Vim to [Helix][2], which I've detailed [over here][3]. I was also able to work through a whole bunch of the [Go track on Exercism][4] -- it's a good way to get a handle on the basics of a language, but doesn't cover using third-party packages, organizing large codebases, etc. To get that kind of experience, I'm going to try my hand at an app for fantasy sports drafts -- take a set of player projections and a scoring formula, and output a UI I can use during a live online draft. I've been doing this with spreadsheets for years, and it's pretty cumbersome. I'm going to use TOML for configuration, SQLite for data persistence, and [Bubble Tea][5] for the UI itself. We'll see how it goes! diff --git a/content/journal/dispatch-7-september-2023/index.md b/content/journal/dispatch-7-september-2023/index.md @@ -39,16 +39,16 @@ We were down at Lake Norman for the long weekend, and as I was pulling up the ka <!--more--> -{{<dither IMG_4446.jpeg "782x400">}}Sunset smiles and canned Coronas at a breezy beach bar.{{</dither>}} -{{<dither IMG_1602.jpeg "782x400">}}Paddleboard victory pose beneath a bright blue sky on calm lake waters.{{</dither>}} +{{<dither IMG_4446.jpeg "782x400">}}Three people smiling at the camera around a wooden table with beer cans and plastic cups in an open-air bar.{{</dither>}} +{{<dither IMG_1602.jpeg "782x400">}}A person wearing a bright yellow-green shirt and black life jacket stands on a paddleboard, holding a paddle overhead on calm water bordered by trees under a clear blue sky.{{</dither>}} The following weekend, we headed up to Rehoboth Beach in Delaware to spend the week with my family. It's different than the North Carolina beaches we're used to as there's a lot to do around the town (boardwalk, parks & playgrounds, [indoor amusement park][1]). We brought our bikes and took a ride on the [Gordons Pond Trail][2], which was rad. [1]: https://funlandrehoboth.com/ [2]: https://delawaregreenways.org/trail/gordons-pond-trail/ -{{<dither IMG_4514.jpeg "782x600">}}Mother and toddler holding hands while watching gentle waves roll onto a quiet beach.{{</dither>}} -{{<dither IMG_4575.jpeg "782x600">}}Sunlit bike trail ride as a family glides through the pines.{{</dither>}} +{{<dither IMG_4514.jpeg "782x600">}}An adult and a small child hold hands on a sandy beach, facing the ocean as waves wash ashore under a clear blue sky.{{</dither>}} +{{<dither IMG_4575.jpeg "782x600">}}Three helmeted cyclists ride along a sunlit path bordered by pine trees and shrubs, with a child in a rear seat on the nearest bicycle.{{</dither>}} We also recorded this little jam featuring my 3.5-year-old niece on the melodica: @@ -76,8 +76,8 @@ We got hit with a [nasty storm][9] in the middle of August. It was wild -- hot, I did a couple projects in Go this month: -{{<dither golong.png "782x">}}Fantasy football command-line dashboard showing Christian McCaffrey topping the RB rankings with 272.8 points in a terminal-style leaderboard.{{</dither>}} -{{<dither forecast.png "782x">}}A barebones browser form showing upload fields for “Team Export” and “Project Export,” a checkbox to include PTO in utilization, and a submit button.{{</dither>}} +{{<dither golong.png "782x">}}Terminal interface showing a ranked table of 20 football running backs with columns for name, position, team, and points. Christian McCaffrey is highlighted in first place with 272.8 points, followed by Austin Ekeler and Nick Chubb.{{</dither>}} +{{<dither forecast.png "782x">}}Browser window showing a form with Team Export and Project Export file upload fields, both with no file chosen, an unchecked “Include PTO in utilization” checkbox, and a Submit button.{{</dither>}} The first, the fantasy draft <abbr title="text-based user interface">TUI</abbr> app [I mentioned last month][10], came together well and quickly. It was straightforward to set up TOML for configuration, SQLite for data persistence, and [Bubble Tea][11] for the UI. Bubble Tea's super cool -- you pull in your widgets (two in my case, for a table view and a search box), and you can respond to keypresses or let the widgets handle them. As a result, my UI has Vim keybindings without me doing anything, which was super handy during the draft. diff --git a/content/journal/dispatch-8-october-2023/index.md b/content/journal/dispatch-8-october-2023/index.md @@ -38,13 +38,13 @@ It wasn't all perfectly smooth -- Nev had a tough time with jet lag, and driving [3]: https://www.infoelba.com/discovering-elba/communes-towns/rio-marina/cavo/ [4]: https://ilpomodorino.it/ -{{<dither IMG_4710.jpeg "510x">}}Shared laughter between a mom and her giggly toddler on a sunlit, rocky beach.{{</dither>}} -{{<dither IMG_4771.jpeg "510x">}}Paper-boat captain enjoying a seaside snack with a toy lighthouse standing watch.{{</dither>}} -{{<dither IMG_4781.jpeg "510x">}}Summer bench buddies, quietly conquering their gelato.{{</dither>}} +{{<dither IMG_4710.jpeg "510x">}}A woman wearing sunglasses holds a smiling child with a doll on a pebble beach beside steep rocky cliffs and turquoise water.{{</dither>}} +{{<dither IMG_4771.jpeg "510x">}}A young child with curly blond hair wears a folded paper hat and holds a piece of bread while seated in a high chair at an outdoor seaside café.{{</dither>}} +{{<dither IMG_4781.jpeg "510x">}}An adult wearing a cap and sunglasses and a young child sit on a wooden bench outdoors, each eating an ice cream cone.{{</dither>}} -{{<dither IMG_4809.jpeg "510x">}}Golden-hour beach bar hang: dad in shades and toddler share snacks while sunset paints the sea.{{</dither>}} -{{<dither IMG_4842.jpeg "510x">}}Sunlit smiles in a Siena piazza.{{</dither>}} -{{<dither IMG_4886.jpeg "510x">}}Toddler grinning atop a carousel horse, soaking in the sunshine and excitement of a plaza ride.{{</dither>}} +{{<dither IMG_4809.jpeg "510x">}}An adult wearing a cap and sunglasses holds a young child eating a tortilla chip at a seaside café at sunset. Drinks and snacks sit on the table, with sailboats and a wooded hillside across the water.{{</dither>}} +{{<dither IMG_4842.jpeg "510x">}}A smiling woman with long, dark curly hair holds a young child with blond curls in a sunlit plaza, with brick buildings and a large stone archway in the background.{{</dither>}} +{{<dither IMG_4886.jpeg "510x">}}A smiling young child in a lemon-print top and yellow pants sits on a carousel horse, with people and an arched building in the background.{{</dither>}} I downloaded the [Airalo][5] app before I left, which offers cheap international data plans using e-SIM cards. The app works great, no complaints there, but mixed feelings about having a working phone while on vacation -- it was cool to be able to send photos + make video calls, but my company's going through some tough times and I couldn't pull myself away from Slack and email. diff --git a/content/journal/dispatch-9-november-2023/index.md b/content/journal/dispatch-9-november-2023/index.md @@ -40,14 +40,14 @@ It was nice to have a quieter month after so much travel this summer. We got a f <!--more--> -{{<dither ECE91676-CF38-4F4D-9F8F-B6C87048AB16_1_105_c.jpeg "782x">}}Little girl races from the slide, bunny in hand, while Dad stoops with a proud smile at the playground.{{</dither>}} -{{<dither 59EA3598-4D50-4783-8EBF-CA35996F19E9_1_105_c.jpeg "782x">}}Little pumpkin on the porch, proudly showing off her matching blanket and gourd buddy.{{</dither>}} +{{<dither ECE91676-CF38-4F4D-9F8F-B6C87048AB16_1_105_c.jpeg "782x">}}A smiling young child holding a stuffed animal runs beside a blue playground slide while an adult bends toward them.{{</dither>}} +{{<dither 59EA3598-4D50-4783-8EBF-CA35996F19E9_1_105_c.jpeg "782x">}}A young child wearing an orange pumpkin hat and dark green outfit stands on a wooden porch, holding a yellow patterned cloth and a small pumpkin doll. Two carved pumpkins sit nearby among fallen leaves.{{</dither>}} ### Tech At my job, I did a cool project working with data from a [Freematics][5] car telematics device. I built a data exploration API using [Gin][6] and learned [`jq`][7] to truncate enormous JSON objects[^1]. I also got to, just like, drive my car around to test things out. -{{<dither golong.png "1600x900">}}Dark terminal scoreboard showing Nikola Jokić highlighted atop a fantasy hoops leaderboard with 3,062.5 points, ahead of Embiid, Antetokounmpo, and the rest of the NBA elite.{{</dither>}} +{{<dither golong.png "1600x900">}}Terminal interface showing a basketball player ranking table with position, team, and points columns. Nikola Jokic is highlighted in first place with 3062.5 points, followed by Joel Embiid and Giannis Antetokounmpo. Position filters and a search field appear above the table.{{</dither>}} I also made some updates to my [`golong`][8] tool to prep for a fantasy NBA draft. Now it can munge multiple CSVs of data and supports multiple position eligibility[^2] and average stat projections[^3]. It worked great, and my team's looking solid so far. I'll open source it one of these days. diff --git a/content/journal/encrypt-and-dither-photos-in-hugo/index.md b/content/journal/encrypt-and-dither-photos-in-hugo/index.md @@ -53,7 +53,7 @@ I needed to find some way to scale the images to the appropriate size and _then_ Here's a picture of me, before and after dithering: {{<thumbnail race_121539.jpg "782x900" />}} -{{<dither race_121539.jpg "782x900">}}Runner No. 534 pushes through the final stretch, focused and strong as he nears the finish line in an overcast parking lot race.{{</dither>}} +{{<dither race_121539.jpg "782x900">}}Runner wearing sunglasses, a cap, a navy long-sleeved shirt, and race bib 534 on a paved road beside an orange traffic cone.{{</dither>}} Read on for more details, and if you want to follow along, you'll need to have Ruby installed (I recommend [asdf][10] if you're on a Unix-y OS) as well as ImageMagick and OpenSSL. diff --git a/content/notes/golang/index.md b/content/notes/golang/index.md @@ -69,7 +69,7 @@ I find [Go][1] really compelling, even though it's not super applicable to my jo * Note-taking / journaling app * [StevieBlocks][10] -{{<dither project1.png "374x">}}Handwritten notes outlining a Go project plan: build a web service that accepts POST JSON, validates it against a schema, replies with errors if invalid or 200 if valid, and then stores the data in SQLite.{{</dither>}} +{{<dither project1.png "374x">}}Handwritten notes outlining a Go web service: accept POSTed JSON, validate it against a schema, return errors if invalid or status 200 if valid, then store it in SQLite.{{</dither>}} [10]: https://gist.github.com/dce/f975cb21b50a2cf998bf7230cbf89d85 diff --git a/content/notes/good-tests/index.md b/content/notes/good-tests/index.md @@ -75,4 +75,4 @@ _(Notes for a [Viget article][1])_ [6]: https://json-schema.org/ [7]: https://github.com/NoRedInk/rspec-retry -{{<dither notes.png "374x">}}Handwritten notes titled “Good Tests”: diagrams of app layers (UI, request/response, business logic, entities, datastore) and bullet points urging isolation-friendly architecture, tests that cover one layer or a full stack, prioritize business logic coverage, test APIs plus UI, aim for 100% coverage, avoid mocks unless necessary (for third-party APIs use stubs), and test at the outermost layer you are building.{{</dither>}} +{{<dither notes.png "374x">}}Handwritten notebook page titled “Good Tests,” with a diagram of application layers: UI, request/response, business logic, entities, and data store. Notes recommend testing individual layers or a layer and everything beneath it, isolating business logic, testing the outermost interface, aiming for 100% code coverage, and minimizing mocks except for third-party APIs.{{</dither>}} diff --git a/content/notes/how-to-spend-time/index.md b/content/notes/how-to-spend-time/index.md @@ -49,7 +49,7 @@ Broadly, three categories of productive activities: [5]: https://bookshop.org/p/books/building-a-second-brain-a-proven-method-to-organize-your-digital-life-and-unlock-your-creative-potential-tiago-forte/18265370 [6]: second_brain_48.pdf -{{<dither graph1.png "500x">}}Yellow-highlighted graph where time invested in ‘Improve yourself’ curves skyward, ‘Improve the world’ climbs steadily, and ‘Chores’ stays flat.{{</dither>}} +{{<dither graph1.png "500x">}}Graph with unlabeled axes and three gray arrows: a flat horizontal line labeled “Chores,” a steadily rising straight line labeled “Improve the world,” and an upward-curving line labeled “Improve yourself” that starts below the straight line, crosses it, and rises steeply.{{</dither>}} _(This would imply that "improving yourself" is the most valuable use of time, but I actually think it's something like the opposite.)_ diff --git a/content/notes/weekly-monthly-playbooks/index.md b/content/notes/weekly-monthly-playbooks/index.md @@ -21,12 +21,12 @@ references: file: www-annahavron-com-8hj07z.txt --- -{{<dither notes.png "782x">}}Handwritten “Monthly Review Playbook” page dated 5/24 lists choosing a project or skill (with reminders that it’s failing and needs a plan), figuring out a process that sticks, reviewing outstanding tasks and projects, referencing Second Brain 215, and writing a dispatch.{{</dither>}} +{{<dither notes.png "782x">}}Handwritten notes titled “Monthly Review Playbook,” dated 5/24, on dotted paper. Bullets cover choosing an adventure, project, and skill; setting a plan; creating a process that sticks; reviewing outstanding tasks and choosing which to activate; reviewing projects; “Second Brain, 215”; and writing a dispatch.{{</dither>}} _Building a Second Brain_ (p. 215) ## Notebook Templates -{{<dither template_1.png "534x763">}}Minimalist bullet-journal spread dated “5/31 Wed – June 2023,” divided into columns for TODOs, Adventures, Projects, Skills, and Notable Events, waiting to be filled.{{</dither>}} -{{<dither template_2.png "534x763">}}Minimal monthly planner page with dotted grid, slim handwritten weekday column, and spiral binding along the edge.{{</dither>}} -{{<dither template_3.png "534x763">}}Minimalist dot-grid monthly calendar spread in a bullet journal, waiting for plans to be penciled in.{{</dither>}} +{{<dither template_1.png "534x763">}}Spiral-bound dotted notebook page titled “June 2023,” divided into blank sections labeled Adventure, Project, Skill, and Notable Events on the left, with a tall TODOs column on the right.{{</dither>}} +{{<dither template_2.png "534x763">}}A spiral-bound dot-grid notebook page with a hand-drawn monthly planner. Dates 1–30 and weekday initials run down the left, with horizontal lines separating weeks and six lettered columns at the upper right. The planner is blank.{{</dither>}} +{{<dither template_3.png "534x763">}}Hand-drawn monthly calendar on a spiral-bound dot-grid notebook page, with columns labeled Sunday through Saturday and blank dated boxes from 1 to 30, starting on Thursday.{{</dither>}} diff --git a/content/pages/about/index.md b/content/pages/about/index.md @@ -21,7 +21,7 @@ references: file: en-wikipedia-org-qrmt3s.txt --- -{{<dither headshot.jpg "400x307" "float-right">}}A smiling man with short, curly hair and black glasses, wearing a navy sweater in a softly lit room.{{</dither>}} +{{<dither headshot.jpg "400x307" "float-right">}}A smiling person with short, curly brown hair and black-framed glasses, wearing a navy blue sweater indoors.{{</dither>}} I live in Durham, North Carolina, USA with my wife and two young children, plus a dog named Steve and a parrot named Tad.