Archives

Blog index

Blog

  • Top 3 (2023)


    I started answering the 40 Questions this year, then realized about a quarter of the way through that I didn’t really want to answer them. Not my preferred format.

    Instead, I’m trying something else: Making a list of Top 3 things in various categories for the year.

  • 100 things that made my year (2023)


    1. Having some of my art printed on postcards and distributed to hundreds of people at WordCamp Europe.
    2. Moderating photo submissions to the WordPress Photo Directory
    3. Testing out a hard seltzer recipe for an upcoming homebrew book by Emma Christiansen
    4. Making Falernum and various syrups for tiki
    5. Driving Big Sur and 17 Mile Drive for the first time
    6. Recipe testing for a new book and learning how to make hard seltzer
    7. Charlie discovering hot chocolate
    8. Tomatoes from our garden
    9. Posting Likes and microblog notes here first instead of another social platform first.
    10. Having one of my photos hung in a gallery at WordCamp US.
    11. Pushing Charlie on the swingset
    12. Charlie pointing out trucks, animals, stars, etc. He is so observant!
    13. Getting comfortable furniture for the back deck.
    14. Rowing on the Croton River and the Hudson in all different seasons.
    15. Making some rabbit stew with black pepper dumplings with my parents
    16. Getting perspective on how well maintained our 95 year old house is
    17. Taking Charlie down to the riverfront walk to ride his bike.
    18. Playing in the sand with Charlie on the beach
    19. End of summer vacation in Cape Cod
    20. Charlie throwing rocks in the river.
    21. Working with my Dad to restore an old workbench top for his shop
    22. Walks in the woods with Charlie and Amanda
    23. Christmas lights walk at Harvest Moon Orchard
    24. Getting the desk for my Ikea Poang chair. I use it every weekday. I’m writing this at it now.
    25. Reading physical books.
    26. Attending Gwen and Jacob’s wedding in Monterey. Reading Cannery Row while there.
    27. Trick or treating with Charlie and friends in Lake Peekskill
    28. Charlie riding his bike along the riverwalk and cruising down the hill.
    29. Making pizza and tiki drinks at our house with friends on NYE
    30. Morning breakfast sandwiches with Charlie
    31. Growing more of a local community here in Peekskill
    32. Wandering around Depew Park and exploring with Charlie for almost two hours on Saturday. Making sure Charlie has space to make his own decisions and explore.
    33. Going to San Juan, PR, for a work team meetup
    34. Taking Jay on his first Hudson paddle
    35. Charlie having an excellent time whenever he got ahold of the garden hose.
    36. Burgers and french fry sauce at Meyers Old Dutch, Beacon
    37. Family walk with the sled in the snowy woods on a winter day in February
    38. Getting a pellet ice machine. We use it in cocktails, iced coffee, iced tea, etc.
    39. Putting up the climbing wall on Charlie’s swingset and watching him figure it out and master it over the next 8 months. Amazing.
    40. Cape Cod vacation. Charlie playing on the beach and exploring. Whale watching.
    41. The cardinal pairs in our backyard
    42. Snuggle time with Charlie
    43. Giving a talk on debugging with Logstash and Grafana.
    44. Wrapping up the attic insulation project
    45. Going to some art shows at the Center for Machine Arts
    46. Going to Malaga, Spain, for a work division meetup. Jumping in the cold sea at night.
    47. Listening to the windchimes
    48. Making hot sauce with my red jalapeños
    49. Alex Kirk’s Friends plugin with the Send to Kindle tool. Getting more into the indieweb in general
    50. Taking Charlie out in the guideboat on Lake Sebago
    51. Learning how to recharge the AC on my car.
    52. Night out with Amanda celebrating Meg’s birthday. It was in a location we go to at least once a week, but transformed into a party space, at a completely different time of day, and filled with people we are friends with, it felt completely different in a magical way.
    53. Taking Charlie out in the guideboat for the first time
    54. Making Shortcuts workflows to make posting here easier
    55. Having a little helper for all of our house projects
    56. Blogging more
    57. Wood fired Wednesdays at Pizzeria Baci. It was here that Charlie decided he liked pepperoni
    58. Birthday in Kingston and Woodstock. Bookstore to get copies of Sandman signed. Trying Moonburger and Dixon’s Roadside.
    59. Integrating AI tools into my daily workflow.
    60. Eating Khao Soi at Nicky’s Thai in Sewickley
    61. Charlie’s kind, sweet, and curious disposition
    62. Looking for pinecones in the woods with Charlie
    63. Charlie has grown so much this year! Photos from 1 year ago are recognizable, but feel so long ago and like a different kid.
    64. Charlie’s love of breakfast sandwiches
    65. Many, many hours at playgrounds with Charlie, running around with him, pushing him on swings, giving him high fives when he reached the bottom of a slide.
    66. Doing things I’ve been putting off, such as getting the heater maintenance done before the cold set in.
    67. Making Christmas cookies as a family.
    68. Visiting the Claytons in Walnut Creek, CA
    69. Running the Harvard Blog Archive preservation project.
    70. Observing the hockeystick growth of Charlie’s vocabulary
    71. Having a local artist design Christmas cards for us for the second year in a row
    72. Celebrating holidays and birthdays with local friends
    73. Trick or treating with our friends and their kids
    74. Getting birria tacos from food trucks
    75. Tending to the garden with Charlie
    76. Reading When an Elephant Goes Shopping with Charlie, my favorite book when I was a toddler.
    77. Building things out of blocks with Charlie. Vacuum trucks, bulldozers, semi trucks, hammers, etc.
    78. Putting in the glass rinser in the sink. We use it all the time!
    79. Taking Charlie to the playground, running, and having fun with him
    80. Making art with Charlie and Amanda at the coffee table
    81. Finishing 29 books
    82. Picking out pumpkins in the rain with Charlie and Amanda. He was happy to stomp in the mud, sit on a tractor, and ride in the pumpkin wagons.
    83. Talking to the Praxis students about using AI tools
    84. Getting out on the river and paddling/rowing
    85. Helping Jon build a woodshed
    86. Coming out of the fog and feeling more like ourselves
    87. Having lots of people over in the backyard for Charlie’s second birthday. Things like that are why we wanted a house to begin with!
    88. Friendsgiving at Jeremy and Megan’s house
    89. Putting book shelving in my office and changing the ambiance in there
    90. Visiting the Desmonds in Salinas
    91. Starting the generous coaching program that Automattic offers all employees
    92. Working with Dave Winer on FeedLand
    93. Charlie showing in interest in music and instruments. He wants to play a trumpet.
    94. Visiting Erin and Tyler in Pittsburgh
    95. Sandwich Fridays at Benny’s Brown Bag. We meet another couple for lunch each Friday at noon.
    96. Getting back out in the woodshop and making dreidels and christmas ornaments on the lathe
    97. Observing Charlie figure out the alphabet and his basic numbers this year.
    98. Mornings at Peekskill Central getting breakfast with Amanda and Charlie before one of us gets on the train
    99. Charlie playing with his cousins at Christmas
    100. Getting a new grill and cooking on it more

    Other years: 2022, 2017

  • Learning Card Games: Tunk


    Last year we started a new tradition and learned how to play Pitch the week after Christmas. This year we chose Tunk (also called Tonk in some places).

    Why Tunk? We initially thought we’d try Euchre or Cinch, but both of those needed four players for partner pairs and Amanda was engrossed in a good book, so we needed something that three people could play. My Dad mentioned that Northeast Ohio Ford workers used to play Tonk, so we looked it up in Hoyle (called Tunk there) and found it could accommodate 3-7 players, so we gave it a shot.

    Tunk is a variation of Gin Rummy. The classic version uses 7 cards, but a faster version with more people can use 5 cards. There are a lot of variations we found online with slightly different rules, so we followed the rules in our Hoyle rulebook.

    • Cards: 52, Aces are low and count as 1, King is high, and Deuces (2) are wild.
    • Deal: Each player is dealt 7 cards. Remaining cards go to the stockpile in the middle of the table and the top is flipped to start the discard pile.
    • Play: Clockwise from dealer. Each player takes a card from the top of the stockpile or discard, then discards one from their hand. The goal is to create sets of 3-4, as in Gin Rummy (same card of different suits 3♠️ 3♥️ 3♣️ or sequence of the same suit 3♠️ 4♠️ 5 ♠️). A matched set may have no more than four cards and must include two non-wild cards. When a player has deadwood (cards not in a set) that total less than 5 (Counting: Face cards count as 10, deuces not in a set count as 25, all other cards are the number value), they can Tunk (knock). The player who Tunks then lays out their sets and separates the deadwood. All other players then have one turn to lay off their unmatched cards on the Tunker’s sets if they can. If the Tunker’s hand has no deadwood, there is no lay off round.
      • If a player gets 50 points at the first deal, they shout “Tunk!” and automatically win the game.
    • Scoring: The non-Tunkers count their deadwood and tally it up. (Face cards count as 10, deuces not in a set count as 25, all other cards are the number value.) The first player to reach 100 is out, others keep going until only one player is left and they are the winner.
      • Some variations have the Tunker counting, too. In some variations, if the Tunker’s deadwood is not the lowest, it counts double. In others, if they have the lowest, it doesn’t count.

    We found this game much faster and easier to pick up than last year’s Pitch, probably because we all know how to play Gin Rummy. I bet we’ll continue to play this in the future because it is fast-paced and it is easy to teach to new players.

    We primarily played the 7-card version, but decided to try the 5-card version for a few rounds and it went very quickly and the wild deuces really came in handy. I think I prefer the 7-card version if we have only three players and Tunkers don’t count deadwood, but the 5-card version if we have more players and the Tunker counts their deadwood (and has the double penalty if it is not the lowest.)

  • How to play the Four Letter Word Game


    BJ Homer taught a bunch of us Automatticians how to play the Four Letter Word Game at a meetup. I taught my parents how to play today and I haven’t found a writeup of it that I could refer to, so I thought I’d make a quick post on how to play.

    What you need: Two people, each with a piece of paper and a pencil.

    Gameplay:

    1. Each person picks a four letter word.
    2. They take turns guessing a four letter word. After each guess, the other person tells them how many letters they guessed are in the word.
    3. When one person thinks they’ve figured out the other person’s word, they need to take a turn to explicitly ask, “Is your word….?”

    More details

    Figuring out how many letters to tell the guesser that they got right:

    You go through each letter in the guessed word and compare it to each letter in your word. If the letter you are comparing appears anywhere, even if you’ve already “used” it, that counts. Getting four letters right does not mean you’ve guessed the word… see SASS vs CATS for example:

    It doesn’t matter how many of that letter are in my word; it’s just a “yes/no” question:

    Image credits: BJ Homer

    You don’t give the other player any info about the order of the letters, or which letters they got right. That is what they need to figure out on their own.

    I played this game with my Mom yesterday and found it helpful to write the alphabet along the top of a notepad page, then draw a line down the middle. The left side I write my guesses and scores down, the right side I write my word and the other player’s guesses and scores down.

    It is helpful to keep track of all words and scores. To quote BJ, “Your partner will almost certainly lie to you at some point. They probably won’t mean to, but they’ll make a mistake.”

    Here are some example sheets from both players in two games:

    Have fun!

  • Week of December 11, 2023


    Christmas tree update: We added cranberries. We consider our tree a work in progress for all of December.

    I got out in the shop and made some more ornaments on the lathe. That might be it for this year.

    Charlie’s daycare class had a Christmas luncheon and Amanda made the menus and flowers.

    We made some more Christmas cookies. Charlie stamped them. Using a circle cutter as a guide helped tremendously.

    Charlie and I spent two hours exploring Depew park in a very open-ended way. As long as he wasn’t in danger or about to jump in the pond, I didn’t interfere with where he wanted to go. He loved it.

    Charlie and I also took a night walk in the woods with his flashlight.

    We sent out the last batch of Christmas cards today. We need to start writing them a bit earlier next year 🎄📬


    Reading

    I finished The Mountain in the Sea by Ray Nayler this week and started Dancing at the Rascal Fair by Ivan Doig and Liberty’s DaughterArchived Link by Naomi Kritzer.


    I joined a local Discord group and got included in some local Twitter lists. I am starting to feel like that was a mistake. The complainers tend to congregate there and complain together because no one else will listen to them. There they feel heard. Not really my kind of place.

    To quote Frank Chodorov, “One is a crowd.”


    I’m looking forward to some time off next week. I need it this year. The last six months feel like a blur to me.

    That’s all I’ve got.

  • My WordPress Plugin List


    Just like Nick, Jan, and Tracy, I’m sharing the list of plugins I have on this site and what I use them for.

    • IndieWeb
      • ActivityPub
        • Makes your blog available in the fediverse. Made by my colleagues at Automattic, Matthias Pfefferle in particular.
        • I still mostly use the toot.cafe server, but eventually I think I might to move move of my fediverse posting, liking, and replies to my own website.
      • Add Fediverse Icons to Jetpack
        • Exactly what it says on the tin. Made by Jan Boddez.
      • Friends
        • Made by Alex Kirk. The Friends plugin allows you to follow content from other WordPress sites, and interact with them on your own site. You can follow friends and others via RSS. If you also have the ActivityPub plugin installed, you can follow people on Mastodon and other ActivityPub-compatible social networks.
        • + Friends Post Collection and Friends Send to E-Reader
          • I use these to make collections of posts that I then send to my Kindle and read offline. Very niche, but very useful.
      • IndieAuth
        • IndieAuth is a way to allow users to use their own domain to sign into other websites and services
      • IndieBlocks
        • Powers the Likes, Replies, Bookmarks, and Microblog section of my website. Made by Jan Boddez.
      • IndieWeb
        • Powers a bundle of indieweb functionality. Check it out.
      • RSS Cloud
        • Adds RSS Cloud capabilities to my RSS feed.
      • RSS to Indie Likes
        • I made this one. It takes items from an RSS feed and automatically posts Likes to them on my site, using the IndieBlocks Like functionality mentioned above.
      • Share on Mastodon
        • Auto shares microblog posts to Mastodon. Also made by Jan Boddez. I think I owe him a beer.
      • JSON Feed
        • The more syndication options the better IMO. I do wonder if anyone is actively using my JSON feed, though.
      • Micropub
      • Syndication Links
        • Shows links to syndicated copies on other platforms on my microblog posts. Made by David Shanske.
      • Webmention
        • Webmention is a notification that one URL links to another. I send them for Likes, Replies, Bookmarks, and links in posts.
        • Made by Matthias Pfefferle
      • Wunderground PWS
        • I made this to show data from my personal weatherstation on my website. (It is currently offline and I need to fix the station.)
        • I put it in the IndieWeb section because, well, who else besides indieweb folks put the weather on their websites?
    • Layout & theme functionality
      • Advanced Custom Fields
        • If any of my coworkers are reading this, know that I cringe about having this on my site, too. I’ve removed most uses except for the Reading section of my site, which I intend to rebuilt from scratch on the next iteration of my site. Consider this my personal Data Liberation project.
      • Bookmark Card
        • This is one of my favorite blocks, and it should be in Core. Turns any URL into a beautiful preview card. Made by George Mamadashvili.
      • Breadcrumb NavXT
        • Nice breadcrumb block. This should probably be in Core, too. Made by John Havlik.
      • GenerateBlocks
        • I use this for the more advanced Query Loop block, which takes basically any wp_query argument right in the GUI.
      • Gutenberg
        • I like to run the bleeding-edge.
      • Post Modified Time Block
        • Made by Rich Tabor. I add this to some templates because I care when things like /now and /blogroll were last updated.
      • SVG Support
        • Another thing that should probably be in Core.
    • Utilities
      • Akismet
        • Spam shall not pass.
      • Confetti
        • Occasionally I add some whimsy to posts by adding a confetti cannon.
      • Jetpack
        • You already know what it is and you either use it or have a post on your site about why you don’t.
        • Yes, I work at Automattic, but I was using it even before I started working here. I love it.
        • I run the beta version.
      • Pressable Cache Management
        • I host on Pressable. This tool makes it easy to granularly manage cache on the platform from wp-admin.
        • I regularly test new versions and provide feedback to the team.
      • QuickPost
        • Adds an “Add New” button to the Block Editor toolbar, so you can easily create new posts/pages/custom post types, as well as duplicate them.
        • Made by Aurooba Ahmed.
      • Redirection
        • I’ve tested every redirects plugin out there and this one is the best. Made by John Godley.

    I’d love to see your plugin list. If you post one, send me a link!

  • Week of December 4, 2023


    I’m blogging later than usual because during my normal blogging times I was either out in the workshop turning things on the lathe, baking Christmas cookies, writing Christmas cards, making natural Christmas decorations, or at a Christmas party. All good things. ‘Tis the season.

    This year we had Emily at Fox Burrow DesignsArchived Link, a local artist, design our cards. Last year it was Kate at Happy Places.

    The Christmas party in Lake Peekskill, hosted by our friends Jeremy and Marie, included live music and caroling. That’s Amanda on the flute, Jeremy on the piano, and Detra (who you might recognize from HONY) singing in the background.

    I spent a couple evenings in the workshop this week making things. First some dreidels for Hanukkah gifts (see also), then some ornaments and a dry vase. A little helper came to visit.

    It is really nice to get back out in the shop and make things again. Trying to make it a regular thing.


    I’ve pretty much switched to the Arc browser now. I’m still getting my pins set up and a few work tools figured out, but it is a huge improvement over any other browsers I’ve used, except maybe for the web browser on Palm’s webOS. (That Palm Pre was by far the coolest phone I’ve owned.) See also.


    We’ve been going to the library with Charlie every couple weeks to pick out new books. He loves picking some himself and insists on carrying them back to the car. In addition to the cars and construction vehicles, he loves Madeline. Très bien!

    Some books he’s been enjoying:

    • Madeline’s Christmas (which he calls Magawine Christmas)
    • Construction Site on Christmas Night
    • Construction Vehicle ABCs (which he calls Excavator Dump Truck Book)
    • Cars Go

    I’m not done with it yet, but Ray Nayler’s The Mountain in the Sea is a prime candidate for the best book I’ve read this year.


    State of the Word looks like it went well today. I’m curious to see how the community responds to the Data Liberation focus. I played a small part in getting some things ready for that behind the scenes. More to come on that front later. I’m excited about this focus, as migrations are a big chunk of my job and better tooling would be a huge help. I’d love the end user to be able to migrate everything on their own without calling in our team!

    The Interactivity API is also pretty cool. I love how fast the demo site is.

    I’m also in love with the Playground project. I wish the blueprint.json convention there would make its way to regular WP installs. I’d love to send someone a json file to include with a blank WP install and have everything installed and generated in a matter of seconds.

    I’m glad Matt mentioned the Friends plugin. I use it here!


    I better get to bed. Toddlers wake up early. Thankfully Charlie started grinding our coffee for us in the morning!


    This week last year:

    https://cagrimmett.com/week-of/2022/12/12/week-of-december-5/
  • Wooden Dreidels

    Oh dreidel, dreidel, dreidel,
    I turned it on a lathe

    Not quite how the original goes, but more fitting for a woodworker.

    I turned three dreidels on the lathe over the past week for Hanukkah gifts. It was nice to get back out in the shop and make a couple things after a long hiatus.

    One of these is going to a coworker without any finish so he can paint it and add the Hebrew letters with his young son. One is going to our friends’ son who is Charlie’s age. Those two are made of cherry.

    The other is going to my close friend and is intended for decoration. It is crafted from a piece of white cedar originating from the same tree used to construct the arbor under which he and his wife exchanged wedding vows. It has a separate walnut handle.

    I used the lathe, rasp, disc sander, and belt sander.

    I’m still trying to decide the best way to finish and put the Hebrew letters on two of them. This is one of those times I wish I had access to a laser engraver, because I think that would look really nice on these.

    Chag sameach!

    Next up: Christmas ornaments. I made some a couple years ago and am ready to more more.

  • Initial thoughts on the Arc browser


    I installed Arc today for the first time after hearing about it from a lot of folks over the past month. Here are my initial thoughts:

    • I both love and hate browsing without actively seeing the URL bar at the top of the window.
      • I love how tidy it is without the top URL bar. It makes the webpage a true canvas.
        • I prefer having the sidebar hidden. It is kind of fun.
        • Would we design webpages differently if we didn’t assume having the URL bar and controls at the top? 🤔
      • I hate not having the additional context the URL provides. Sure, you can still see it, but you have to take an action instead of having it there by default.
    • I’m writing this in Arc right now!
      • Unfortunately I’m also getting weird autosave errors and network connection errors with the WordPress editor that I’m not getting in Chrome.
      • There are some conflicts with shortcuts Gutenberg uses and what Arc uses, such as command + S for the sidebar.
        • This is the universal Save shortcut though, so what did they expect?
    • I like the ability to take screenshots in the app itself. Handy, especially the ability to select what is essentially certain divs.
    • The onboarding experience is pretty good. Importing some stuff from Chrome helped instead of starting from scratch. Seeing how things I already understand work in a new context is very useful.
    • Easels and Notes are neat, but I already have notetaking apps.
      • I imagine if this had deeper support within the app itself I’d be tempted to use it. Something like collecting quotes, links, and images quickly into the most recent note with links back to the source.
      • It needs better share support than just the standard macOS share sheet. I’d love to draft something here and 1-click publish to my blog, or Twitter, or Bluesky, or Mastodon, or all of the above. (I guess Dave Winer made me a textcasting convert)
    • The link previews in the Max feature are really useful. I love them already. I’ve helped implement this on single sites I’ve built, but having it in the browser is wonderful.
    • I’m going to give Spaces a try tomorrow. I’ll set up a space for each project I work on that day to collect related tabs. I know some Chrome extensions had the concept of tab groups, but I didn’t like how the grouped tabs look. Perhaps this will be better.
    • I think Boosts are brilliant, and a nice interface to let users customize the internet to their own liking. It is also much simpler to include custom CSS and JS on a page than in any other browser. I can see this fitting into my development toolkit pretty quickly.
      • Companies need to start watching if any uses make and share Boosts of their sites/products. There is a lot to learn here from how users choose to customize the look and feel of your site.
    • Chrome already looks outdated after a couple hours of using Arc.
    • The command bar is nice.
      • I wonder if I can create my own commands?
      • Similar to Raycast, which I also use. There is already an Arc extension for Raycast.
    • The ephemeral nature of “Today” tabsArchived Link is interesting, but so counter to what I’m used to. I hope it doesn’t bite me.
    • There is a lot more I haven’t discovered yet, but so far I love it.
    • Using Arc + Raycast + Obsidian makes me feel like I’m working in the future.
  • Week of November 27, 2023


    A first for us: We decorated the Christmas Tree at 7am. That is when Charlie got up and was ready to go. We still need to dry the grapefruits to add to the tree. Every morning Charlie turns the tree on when he comes downstairs, and he turns it off before we leave. He loves it.


    Charlie playing trains.

    Charlie helping make Christmas cookies

    We went to the Harvest Moon Orchard Festival of Lights on Saturday. They had lots of great displays and a well-paced, self-guided path with calming music. We enjoyed it. Charlie’s favorite was the tractors.

    I’m surprised more orchards and farms don’t do something like this. I know it is a lot of work, but this place is raking it in on what is the typical off season. They not only charge for admission, but they have 3 refreshment stations where you can buy hot chocolate, coffee, and booze while going through the lights, then food and fresh hot donuts at the end. Quick napkin math, I expect they are bringing in at least $30K per night on the weekends.

    One more for good measure.


    I spent Saturday morning helping Jon frame out a woodshed at his place. We work well together. We usually drink our coffee and discuss the plan, then divide and conquer. We don’t waste much time.

    I learned a new trick for squaring things like the bottom frames: The 3-4-5 rule. Mark 3ft on one side, 4ft on the other, and adjust until the hypotenuse is 5ft. This makes perfect sense, but I hadn’t thought to use it before.


    I’m feeling the itch to redesign my website. The homepage and archive pages need it. I’ll probably start by surveying other blogs I like and taking screenshots for inspiration.


    Reading

    Amanda and I usually spend Charlie’s naptime on the weekends trying to get some stuff done around the house. Today we brewed some coffee, snuggled up on the couch together, and read for two and a half hours. It was nice.


    Spotify Wrapped 2023

    For as long as Spotify has been doing Wrapped, Tycho has been my number one artist, and that hasn’t changed. Though, I’m thankful that Spotify opts out kids music, because Blippi or Twenty Trucks might have taken the top spot this year…

    Some new artists made it in my top songs list:

    • Frou Frou (an Imogen Heap project)
    • Sudan Archives
    • The Hold Steady

    Some old favorites resurfaced this year:

    • Mighty Mighty Bosstones
    • zebrahead
    • Mutemath
    • Foster the People

    Some are no surprise:

    • Rancid
    • The Strokes
    • Less Than Jake

    I made Japanese curry tonight, a cold weather favorite in our house. If you haven’t tried it, get some roux blocks and make a batch. We like the Vermont Curry brand, which is easy to find in the US. We make it with chicken, potatoes, peas, carrots, and onions, but it works well with ground beef or vegetarian, too. One batch is good for multiple meals.


    Twelve Days of the Rings

    Seven swans to rule them all,
    Six geese to find them,
    Five rings to bring them all,
    And in the pear tree bind them

  • Default Apps 2023


    I saw this floating around and thought I’d join in.


    📨 Mail Client: Airmail

    📮 Mail Server: Fastmail

    📝 Notes: Obsidian (longer term working notes) and Drafts (short term temporary notes–nothing lives in Drafts long-term, it is more like Grand Central Terminal). Public notes get posted to https://notes.cagrimmett.com/

    ✅ To-Do: Things

    📷 Photo Shooting: Daily: iPhone 14 Pro. When shooting photos for real: Canon EOS 6D Mark II.

    🎨 Photo Editing: Mostly: Photos. Heavier editing: Pixelmator.

    📆 Calendar: Google Calendar and Apple Calendar.

    📁 Cloud File Storage: Dropbox, iCloud Drive, and Google Drive for various files. Backblaze for full computer backups.

    (I’m not happy with this approach that has been cobbled together over time. If anyone has a better one and has done consolidation migrations, I’d love to chat.)

    📖 RSS: Mostly FeedLand, occasionally NetNewsWire

    🙍🏻‍♂️ Contacts: macOS Contacts

    🌐 Browser: Desktop: Chrome. iOS: Safari and DuckDuckGo

    💬 Chat: Slack, Messages, Texts, Signal

    🔖 Bookmarks: Larder and my own website via IndieBlocks

    📑 Read It Later: Larder and Friends with Post Collections and Send to e-reader

    📜 Word Processing: Google Docs primarily, Pages if I must

    📈 Spreadsheets: Primarily Google Sheets, occasionally Numbers. Special mention to Datasette for exploring CSVs in more detail.

    📊 Presentations: Primarily Google Slides. I don’t give presentations often, but if I did, I’d probably use Nick Diego’s WP Block slide approach

    🛒 Shopping Lists: Reminders on iOS and macOS, in a shared list with my wife

    🍴 Meal Planning: When we do it, it is mostly on an index card at home that we stick to the fridge. Occasionally a shared Reminders list.

    💰 Budgeting and Personal Finance: Google Sheets for high level tracking over time, otherwise we don’t track closely. We follow a 50/30/20 approach (50% of income goes to fixed expenses, 20% to savings and investment, 30% to everything else) and automate the 50 and 20, so we don’t have to closely track the 30.

    📰 News: RSS, social media.

    🎵 Music: Spotify

    🎤 Podcasts: Overcast

    🔐 Password Management: 1Password

    🧑‍💻 Code Editor: VS Code

    ✈️ VPN: Work: OpenVPN. Personal: Private Internet Access.


    Special mentions:

    • Raycast – macOS utility (clipboard manager, search, quick commands for tons of apps, automations)
    • iTerm2 – Terminal replacement
    • Transmit for file transfer
    • TablePlus for local databases
    • Carrot Weather for weather on both macOS and iOS. Can pull in data from my own weather station.
    • Dark Noise – different kinds of white noise
    • CleanShot X – number one screenshot app on macOS by far
  • Week of November 20, 2023


    I’ve been mostly offline this Thanksgiving. I haven’t checked anything for work, checked Twitter (or Mastodon, Bluesky, or Threads), read my RSS feeds, or checked any news sites. I did play Wordle, text some friends, and research microwave sales (the power supply on ours died). This was good for me, and I think I need to keep it going on weekends as much as I can.


    Weekly Charlie photo dump.

    Charlie likes learning about things, and recently anything with an engine is interesting to him. So I thought, why not show him our car’s engine? He liked it. He also loves starting the car whenever we go somewhere.

    We joined the Richer family for Thanksgiving this year. It was nice enough that some of us opted to sit outside. Charlie and I also took a walk. Amanda and I were in charge of vegetables, so we made a dish of roasted butternut squash and a dish of roasted root vegetables (parsnips, rutabaga, onions, carrots, celeriac, and potatoes). With the leftover root vegetables we made a shepherd’s pie on Friday.

    Charlie took his first train ride this weekend and he loved it. We took a short 20 minute ride up to Cold Spring to see how he’d do. Since he liked it so much, we think rides down to Manhattan are doable.

    Charlie likes shopping at wholesale clubs.


    I feel imbalanced.

    • I frequently work evenings after Charlie goes to bed.
    • I’m not reading as many books as I’d like.
    • I feel a little bit stuck at work.
    • We have some house & property projects we need to figure out but keep putting off.
    • I find the two year old phase as challenging as it is gratifying. Watching Charlie learn and encounter the world for the first time is incredible. Teaching him new things is gratifying. Yet, the tantrums that come with him pushing the boundaries of his independence are incredibly frustrating. These past two weeks have been tougher than usual. Amanda and I are exhausted.
    • My friend Jon asked me during Thanksgiving whether or not I’m turning any Christmas ornaments this year. I sheepishly said that I wasn’t and didn’t have time, but that didn’t sit right with me and bothered me the next couple days. I haven’t made much in my workshop since Charlie was born.
    • I feel in a rut with what I’m cooking for dinner regularly.

    In short, it is time to make some changes.

    • I signed up for Automattic’s coaching program and scheduled my first couple coaching sessions.
    • I spent a couple hours this afternoon cleaning my workshop, which I used as storage for most of the past two years.
    • I made chicken stock tonight for the first time in almost a year.
    • I reached out to my friend Scott Scharl about going through The Imposter’s Handbook together in the new year.

    More I need to figure out:

    • Get in a regular stretching routine so I don’t feel so tight all the time.
    • Get back to regular meditation to help deal with frustration and anxiety.

    I almost didn’t blog this week, but I think it is important to keep documenting things for my future self and keep putting things out there to start conversations.


    I think a new theme is in my near future. Maybe using TT4. I’m trying it out for a project at work, so we’ll see how I like it. Looking at the current patterns, I think it needs one for a standard blog homepage with full content posts, so perhaps I’ll open an issue and put in a patch.


    I’m sipping a Fall Back from Sasha Petraske’s excellent posthumous book, Regarding Cocktails, while writing this.

    • 1oz Rye
    • 1oz Apple Brandy
    • 1/2oz Amaro Nonino
    • 1/2oz sweet vermouth

    Stir in a mixing glass with ice, strain over fresh ice into a rocks glass.


    I started this year’s versions of 100 things and 40 questions. Doing them gradually over the next month should be easier than trying to jam in them between Christmas and the new year.

  • Weeks of November 6 and 13, 2023


    Busy couple of weeks. I didn’t write last weekend because I spent the whole weekend doing work around the house: Putting things away for the winter and mulching in the leaves outside, and moving things in the basement, garage, and attic in preparation for getting foam insulation in those spaces.

    We were out of the house Wednesday through Friday morning to let the foam set and outgas. We got an Airbnb here in Peekskill. The house we stayed in was built around the same year ours was built, but not as well maintained. The basement was damp and dingy, the paint was peeling on a lot of trim, the floors were largely unlevel, and it had a base smell of old cigarettes (though obviously covered with a lot of primer.) It makes me thankful for our home.

    I’m really looking forward to seeing what kind of difference the added insulation makes. Before we had bare rafters in the attic! I also need to put the weatherstrip on the doors and windows. The goal was to cap off the main place where heat was escaping (roof) and the weatherstrip will deal with the incoming drafts. Then we’ll reevaluate.


    I’ve been bouncing around a lot with my book reading, starting lots of books that haven’t stuck. I think I’m scrolling too much on social media again. I started a new book (Candle by John Barnes), which I’m now halfway through. I credit that to putting my phone on the other side of the room while reading this week.

    Attention span is a muscle and sometimes it needs retraining.


    With it getting dark so early, it is time to start prioritizing morning walks again, as well as restarting my D3/K2/magnesium supplements.


    WordPress Site Editor question: I know how to set default site-wide padding for certain blocks, but how do I pick which block style is default for the site? For example, for the Separator block, I want to set the Dots style as the default.


    We attended a Friendsgiving at Meg and Jeremy’s on Saturday. Amanda baked a Milk Bar Pumpkin Pie cake, I made a punch bowl, and we made a sweet potato side dish. The kids provided the music.

    We had a nice sous vide pork shoulder, pastrami and rye dressing, roasted potatoes with fennel, homemade butter, crusty bread, and roasted cabbage. Good meal!

    An appetizer I enjoyed more than I expected was breaded and baked Boursin, served with water crackers. IMO much better than baked brie.


    Charlie got to ride a pony again today after Amanda’s lesson. He was excited about it for the past three days. The English saddle was hard for him to hold on to, probably need a Western next time. I bet he will want to take real riding lessons in a couple years.


    More Charlie photos from this week:

    This NY boy loves a bacon egg and cheese.

    Charlie loves to be included and help with whatever we are doing. While we were picking the last batch of tomatillos for the season, I noticed that he liked peeling the paper off the outside, so when it came time to wash and peel them, I asked him to help. It kept his attention the entire time and he helped with the entire bowl. Afterward, he enjoyed sorting them into two different bags. (Ignore the messy sink and kitchen. We did dishes after Charlie’s bedtime, I promise!)

    The Peekskill Library has a children’s room with lots of great books. Charlie enjoyed picking some out this week, so I think we’ll be there a couple evenings a month. We discovered that the deli the next block over also makes a great chicken over rice platter (which Charlie absolutely houses), so we go there afterward and pick up dinner.


    This OpenAI situation is wild. I don’t have any commentary other than I’m looking forward to finding out more real details about why sama was ousted. Did Ilya get spooked by new research, try to pump the breaks while Sam charged forward, and coordinate the board to push Sam out?

    Looking forward to more El Yud hot takes.

    I love that the firing went down over Google Meet. Even OpenAI with Microsoft as a huge investor, doesn’t use Microsoft Teams 😆


    I took apart my dryer for the first time today. It started making and awful squealing noise, which my Dad said is most likely the idler pulley. Changing that requires taking the whole thing apart, including pulling the drum out. I’m thankful that there were a few YouTube videos to watch and that Dad was available to FaceTime a couple times to answer my questions and talk me through a couple steps.

    I wish I had paid more attention watching Dad take dryers, refrigerators, and ovens apart while I was growing up. Half the battle was trying to get the thing taken apart in the first place, and having seen someone do it would have made replicating that easier. That said, I probably did see Dad do that a couple times (I know I was always by his side, holding the flashlight, and interested in what he was working on), but seeing something 20+ years ago is tough to recall. I guess so much of learning is doing something yourself and figuring it out. Next time it will go a lot faster because I figured it out this time.

    Charlie woke up from his nap and wanted to check it all out. I always appreciated my Dad being patient with me and showing me how stuff worked, so I took some time to show Charlie. He helped blow out the blower housing with the air compressor, too.

    I’m surprised that old dryers, especially gas ones, don’t catch on fire more often, given how much lint gets past the lint screen and packed around the blower assembly and in the bottom. I took some time to vacuum the whole thing out and blow out the blower housing with the air compressor while I had it all apart.

    When I put it back together, the squealing was gone, the drum still turned, and it heated up, so I think I did it right.

    Charlie wanted to help me put the screws for the control unit back in. “I fix dryer too!” I got the final screws started and let him finish them.

    I made a Digital Garden page for this:


    I’m really excited about FeedLand‘s implementation of Reading Lists. The general idea that you can subscribe to an OPML file of feed URLs that gets regularly polled and resynced. So you are subscribing to a list of feeds rather than individual feeds, and you see the items from the feeds on that list in your reader. Cool stuff.

    Since FeedLand generates OPML for each user, I’m also able to subscribe to other people’s subscription lists and their changes flow downstream to me. I’m busy subscribing to as many blogrolls in OPML format as I can find. That is where the best stuff comes from.

  • Notes on making a Digital Garden with WordPress

    Andy SylvesterArchived Link wrote me asking about my digital garden:

    I followed links to your site from Dave Winer’s Scripting News site, your digital garden site is cool! I am interested in what theme you started with to create that site.

    Andrew Shell has developed some tools for creating feeds for Federated Wiki installations (https://feeds.fedwikiriver.com/). I am interested in your thoughts about how to create feeds for wikis.

    Andy Sylvester
    andysylvester.com

    Thanks, Andy! I hope you don’t mind me writing a full post as a reply instead of an email. I’ve received other questions about this recently and I find it useful to document this stuff so it is searchable and linkable.

    If you want to use the theme and templates I’ve set up, I can try to package it up for you. I didn’t want to do that here because it isn’t in a state I feel comfortable releasing publicly, but happy to share it privately and get your feedback on what would be good to add. I consider it an ongoing experiment and subject to change at any time.

    Theme and templates

    For notes.cagrimmett.com I used the Blockbase theme. I picked that one because it is barebones but has nice Site Editor support, and I didn’t want to fight existing conventions. I wanted something that would stay out of my way but give me modern WP tools.

    If I were to do it again, I’d probably use the new Twenty Twenty-Four theme. It is super flexible and has the lastest-and-greatest Site Editor and blocks support.

    As you can tell, I’m all-in on the block editor.

    If you haven’t used the Site Editor yet, the main way it differs from classic themes is that it gives you the ability to customize templates right in the block editor, which is very powerful.

    I customized the templates in the Site Editor for the Blockbase theme, so I thought I’d call those out:

    • Homepage
      • I have two lists at the top of my homepage: Recently Created and Recently Updated.
        • One is a list generated by published date and one is a list generated by post modified date. I like to be able to see not only what is new, but what has been updated recently. I use the more powerful query loop in Generate Blocks to sort by post modified.
        • In the garden metaphor, I think of these as Planted and Tended.
      • Page Index
        • I opted to use Pages instead of Posts because I liked the hierarchy of Pages and thought I’d use that. I think this might have been a mistake and I’m considering moving everything to Posts and forgetting the hierarchy altogether. The hierarchy does make things easy to find, but so would better tags and categories.
        • I do have some private pages that only I can see when logged in, so there is a section on the homepage for that, too.
        • This is generated by the Page List block. If I moved to posts, I’d probably have a bunch of query loops for different categories.
      • Categories
        • Self explanatory
      • Tags
        • Self explanatory
    • Single Page
      • At the top I’m trying to surface relevant metadata:
        • Hierarchy (basically breadcrumbs from the hierarchical pages)
        • Categories and Tags
        • Published date
        • Last Modified date
      • Some pages have a sidebar with links to child pages to try to show the note’s context within a similar group. I don’t think I’ve nailed this yet.
      • Pingbacks and trackbacks to surface cross-linking between posts. I don’t think the bottom is the right place for this… I think I should put this in the sidebar instead.
        • Cross/backlinking are handled via enabling trackbacks and pingbacks on pages.
          • add_post_type_support( 'page', 'trackbacks' );
        • I use Webmentions here, too!

    Plugins

    • Tags are topical and freeform, auto-linked by TaxoPress
      • TaxoPress only has posts turned on by default. You need to go into the settings and enable for pages.
    • Making use of the GenerateBlocks plugin, which has a great replacement for the core Query Loop block with the ability to customize the query just like you can in code with WP_Query
    • Breadcrumbs via Breadcrumb NavXT
    • Redirection to monitor permalink changes so I can easily reorganize things without breaking links.
    • Webmentions as an addition to pingbacks and trackbacks for the indieweb.
    • Post Modified Time Block for easily displaying the post modified date on a page
    • Bookmark Card for nice looking bookmark cards
    • Child Pages Card for displaying child pages in the sidebar

    Feeds

    I am interested in your thoughts about how to create feeds for wikis.

    I have some thoughts in the WordPress ecosystem, and some cross over to wikis.

    • WordPress has incredible feed support already. Categories, tags, and search queries have their own feeds, which is quite helpful for people only interested in subscribing to certain topics.
      • Wikis have categories, so they could have category feeds, too.
    • Pages do not have feeds by default, but you can add them with this plugin: https://wordpress.org/plugins/rss-includes-pages/
    • It would be great if RSS feeds could surface updates to existing content, too. I’d like a feed for my recently updated list. My colleagues at Newspack have a plugin that includes an <updated> tag, which is a step in the right direction. It might require a different sorting mechanism for the feed reader. I’ll float it by Dave for FeedLand 🙂
      • Wikis have a great history page, so it is theoretically possible to have an updated element in the feed for the most recent updated time.

    Future additions/ongoing work

    • I want to better surface cross-linking within the site and inbound links from around the internet.
    • I want neat previews for outgoing links. Transclusion. I have some code for this that Jeremy Felt wrote for perell.com, but need to integrate it.
    • I want better context. On each page I want to show related content by category and show page ancestry siblings rather than just children. This would be easier if I moved to posts rather than pages.
    • I want to show revisions and/or changelog to show how notes have changed over time. I’m working with the WordPress Gutenberg team to figure out how to do this.
  • Apple Shortcuts for posting to WordPress via the REST API and XML-RPC MetaWeblog API

    Jim Willis asks,

    it seems that the iOS WordPress app’s “Post to WordPress” is no longer working, so I’d like to fallback to the rpc endpoint. Any chance you could share a link to your shortcut so I could take a look what you did here?

    Certainly! I’m replying as a post because I think it might help other people, too.

    I made two versions, one using the REST API and one using the XML-RPC MetaWeblog API.

    REST API

    Docs for making posts with the WordPress REST API: https://developer.wordpress.org/rest-api/reference/posts/

    Shortcut link: https://www.icloud.com/shortcuts/182b3a80dff54b27a4d7464cfc139b81

    How it works:

    • Takes input for a title and content. These are turned into variables.
      • If you don’t want a title, you can change this, but make sure your theme supports not having titles.
    • When you first set up the shortcut, add your username and an Application password in the format: username:password in the provided text block. This gets base64 encoded and passed to the cURL request as a basic authorization header.
    • The Get Content of URL block makes a POST to /wp-json/wp/v2/posts (Update your domain here!)
      • The variables for title and content get passed into the appropriate key in the JSON request body. I included title, content, and status, as those are the three that are needed. You can include tags, categories, slug, excerpt, etc. Anything in the docs. All pretty simple, you just need to make more variables and pass them along in the JSON body.
    • I included a block that gets the link back from the successful POST and prompts you to view it. Feel free to remove it if you don’t like it.

    XML-RPC MetaWeblog API

    Docs for the WordPress XML-RPC MetaWeblog API: https://codex.wordpress.org/XML-RPC_MetaWeblog_API

    Shortcut link: https://www.icloud.com/shortcuts/4a199bb32d654721a4aac9a773c664f1

    How it works:

    • Takes input for a title and content. These are turned into variables.
      • If you don’t want a title, you can change this, but make sure your theme supports not having titles.
    • When you first set up the shortcut, add your username and an Application password in the provided text blocks. These get turned into variables and passed to the XML that we send to xmlrpc.php.
    • The XML is stored as a text block, which is then turned into a variable and passed as a file along with the request.
      • I only included the username, password, post title, and post content, but you can add whatever is supported by the API. You just need more variables and more members of the struct.
    • The Get Contents of URL block makes a POST to the /xmlrpc.php endpoint (change the value for your domain!) with Content-Type of text/xml and the request body as a file.

    If you run into any issues, let me know! I’m happy to help.

  • How can we keep domains working long after our death?


    Dealing with your digital legacy after your death is a big issue, and one that requires a lot of thought and a lot of problems to be solved, so let’s break it down into smaller pieces and think about them individually. This post is primarily a collection of thoughts about dealing with the problem from the domains side, not hosting. Hosting is a problem for more posts.

    The internet isn’t that old and most of the pioneers are still around. But we can see the wave coming, so let’s try to solve this problem before it breaks.

    Registry limits

    Registrars should offer the ability to register domain names for a very long period of time. Currently the max is 10 years. That max should be removed.

    Community-driven

    What about a community/reader-driven approach? What if there were a widget on the website showing the current expiration date for the domain and the ability to donate money to the renewal. Everything can happen automatically and any amount can be donated. Once enough money is raised to renew for another year, the renewal is processed automatically. With the max cap raised, popular sites can be renewed for decades in a short amount of time. This seems like something registrars should be able to support.

    Charity registry

    What if we start a 501c3 registry that people give their domains to and the foundation takes responsibility for keeping them renewed? Call it the Longevity Registry. This feels like something the Long Now Foundation would be open to, perhaps in concert with Wikimedia Foundation or the Internet Archive. It would need a fundraising arm and a rock solid set of tools.

    They would also be responsible for deciding where the DNS gets pointed, which is another problem. They could have a set of processes for determining that. They could also put together a bunch of boilerplate legal docs that people can include in their wills to transfer domains to the Longevity Registry after their death.

    Host files

    Alex Kirk had a great idea: Remember the early days of the internet where people passed around host files? How about doing the same for domain names after someone dies? Call it Open Registry and make a Chrome extension for it. For most people, making their site static and sticking it on GitHub Pages and adding an entry in Open Registry might be enough. We wouldn’t need access to their servers as long as we can make a good enough scraping bots to pull down everything.

    Related to this, what if we could point the domain at its archived version at the Internet Archive? We’ll have to pitch this to Mark Graham. This feels like a “keep the links blue”-type project. More on that in future hosting posts.

    I’m sure there is more I haven’t considered yet. This is meant to be an open dialogue. Please post your comments, or write a response with ideas on your own site.

  • Week of October 30, 2023


    Back to work. It was a jarring rentry. The very first thing I saw when getting online Monday morning was a ping about an issue that had major customer impact. Talk about getting the adrenaline pumping.

    It turns out GitHub and Cloudflare both had even bigger issues this week, too. And the time change didn’t even happened yet!

    Not the smoothest week in the tech world.


    Trick or treat was fun this year. We went to a friend’s house in Lake Peekskill and trick or treated as a group. Charlie really got into it and was pretty conscientious–he generally only took 1 piece of candy per bowl, and understood that it was communal, so he didn’t get upset when there were other people getting candy before and after him.

    He dressed up as a cow (Amanda made his costume!) and Amanda and I dressed up as farmers.

    We are really thankful for the friend group we have here. Really thankful.


    Unfortunately, it looks like Charlie picked up RSV at daycare, so the end of the week and weekend has been tough. Tired, sick toddler with tired, stressed out parents.

    I made this easy chicken noodle soup on Friday and I think it will be a new go-to when someone is sick. It is delicious and takes only 30 minutes to make. The secret is using ground chicken to speed up the process and retain flavor.

    Easiest Chicken Noodle Soup Recipe – NYT Cooking
    The majority of shortcut chicken soup recipes use rotisserie chicken It’s a convenient hack, but cooked chicken doesn’t absorb flavors very well On the other hand, sautéing ground chicken in olive oil with garlic, coriander and celery seeds (or fennel seeds and rosemary, or herbes de Provence) creates a deeply complex base
    cooking.nytimes.com

    I made some quick sheet pan meals this week, too. We have lots of sweet potatoes from the CSA right now, and those are quick to roast (peeled and 1in dice, 425F for 30 minutes) and tasty with paprika, garlic, and salt. Would probably be good with eggs for breakfast, too. Maybe I’ll do a breakfast sheet pan with sweet potatoes and bacon this week.


    One of my favorite new follows on Twitter is Nico Chuan, who posts great in-progress photos of his carving process. I’ve learned some things about the process just from his photos that I hadn’t quite figured out in my head.

    New favorite follow on Instagram: Ethan Neiderer, who makes skin-on-frame St. Lawrence River Skiffs. I thought they were ADK guideboats at first because they are so similar. The differences: No bottom board, all ribs are bent instead of laminated, and slightly different style of stem and deck. I’m comparing notes with Ethan soon and thinking of designing a hybrid style that combines the benefits of both the ADK guideboat and the St. Lawrence River Skiff. Not having to laminate all those ribs would save a tremendous amount of time and effort.


    Starting the winterization process. I pulled the last of the ACs out of the windows today, swapped the screen door for the glass one, and picked up some weather strip, weather seal, and foam kerf for the windows and a few doors. I plan to put that on tomorrow.


    I feel horribly behind on my reading and writing. I know that is all self-imposed, but I feel behind none-the-less.

  • Weeks of October 16 & 23, 2023


    While hunched over in my IKEA Poäng chair looking at my laptop, I thought, “I wish there were a desk for this chair.” So I fired up my web browser and typed in the magic incantation, and Bateman Labs makes one!

    I bought it, Charlie helped me put it together, and I love it. It has improved my posture and it makes a nice alternative to my standing desk.


    Using FeedLand I created a News Product for Peekskill with all of the local and city news feeds I could find. Check it out at https://peekskill.news/

    Future updates to make:

    • Split the feeds into tabs: All, City, Local news, Area news (like River Journal North, etc).
    • Figure out how to pull in Twitter and Instagram feeds. This probably requires me setting up a service to make feeds on one of my servers.

    Gabriel Sim-Laramee remixed one of my Sol LeWitt wall drawings that I did in javascript. Pretty cool!


    I spent a week in Málaga, Spain, for work. We had a Division Meetup (here is last year’s in Denver) with ~250 of our coworkers. It was a great time!

    • I gave a workshop on using Grafana and Logstash for tracking down problems.
    • I gave a flashtalk on FeedLand, a project we’re working with Dave Winer on.
    • I got to meet and chat with a bunch of cool people I haven’t met in person before, including Alex Kirk, proprietor of Friends, and Matrix guru.
    • I attended a lot good sessions and workshops, and collaborated across different divisions of the company. This is always pretty valuable for us.
    • A group of us walked down to the Mediterranean sea one night and jumped in. The water was a brisk 65F.
    • We got some free time to visit the Picasso Museum and walk around the city center, where I picked up some torrons from Vicens. I also got a smashed 5c piece to add to my smashed penny collection.
    • I ate my weight in jamon.
    • The way there and back was mostly uneventful, though I traveled about 20 hours each way. I do not love that. I read part of a book on the history of Spain of the way there, then watched a full season of Yellowstone on the way back.
    • We had so many people flying in that I saw my coworkers at multiple connecting airports: NYC (JFK), Amsterdam, and Paris.
    • I played beach volleyball!

    While I was gone, Amanda did a trunk or treat at Charlie’s daycare. Charlie wanted to be a cow, so Amanda went with a farm theme.


    When I got back, I spent the next morning with Charlie at the playground, and there was conveniently a construction site close by for us to watch. They are redoing an old football field and putting in pickleball courts and a new track. Charlie knows all of the construction vehicles!

    I then went down to Manhattan that night for a surprise birthday for Chris Johnson at Caledonia.


    Sunday Amanda and I met Meg, Jeremy, and Miles at an indoor halloween event in Elmsford. The boys had Jedi costumes. Last year that they dressed up as Mario & Luigi.

  • Digital gardens need RSS


    I was emailing with Aaron Young tonight about his digital garden and why I like to follow RSS feeds for digital gardens.

    Blogs these days are too polished and people don’t post enough on them. Old blogs used to be much more experimental and something that folks posted to multiple times a day without giving it a second thought.

    Now public digital gardens are much more interesting, IMO. People capture what they are researching, working on, and thinking about, and I usually find RSS feeds for peoples digital gardens much more interesting than I find their blogs.

    There is a much higher rate of discovering new things and interesting ideas in digital garden feeds than blog feeds. People generally write blogs for others first, whereas they write digital gardens for themselves first, and that is where the magic is 🪄

    Sadly, a lot of really cool digital gardens don’t have RSS feeds. They should. Think of it as an interop layer for your notes, allowing not only you to make connections between your notes, but other people to make connections, too. They should have pingbacks or webmentions, too, so you can see those connections and links.

    I’ve added all of this to notes.cagrimmett.com, my digital garden built on WordPress. Still, lots to improve there. I view it as a long-term project, something I want to exist for the rest of my life and hopefully beyond it, and I make it just a little bit better every day. I need even more interop on there as well, essentially being able to publish there from every other tool I use. I’ll get there.

  • Week of October 9, 2023


    Charlie had Monday off from daycare for the holiday, but Amanda and I had to work, so we switched off every couple hours. Charlie and I started off the morning by going to the coffee shop, picking up some cheese at the grocery store, and watching trains at the train station. We also played in the yard for a while before naptime. Charlie and Amanda decorated small pumpkins.

    That evening some friends had us over to carve pumpkins and have a bonfire.

    Monday was a great day for Charlie.


    The Whole Earth Catalog is now available online. Incredible resource to have archived. Here is how the online archive came to be.


    I’m fascinated by the image prompt injection people are doing with GPT-4V. Much more interesting than text prompt injection, IMO. Simon Willison has a good post up about itArchived Link.


    Neighbor spent all day lowering his car (a Subaru WRX, I think). Now he can’t get it in or out of the driveway without it bottoming out. So far he hasn’t lifted it back up, he just lets it scrape.


    Reminder to change the cabin air filter in your car occasionally. You can usually buy them on Amazon and replace them yourself pretty easily.


    This Wednesday was the last Wood Fired Wednesday at Pizzeria Baci. Of course we had to go. The pizza was excellent as always, and this week Charlie decided that he likes pepperoni, which is new. He didn’t like it two weeks ago, but now he loves it. My man. He is the latest in the long line of Grimmett men who love pepperoni pizza.

    It helps that saying “pep per O knee” is kind of fun!


    Charlie’s daycare had their annual Fall Fest on Thursday. We had fun hanging out with some of the other parents and watching the kids be in their element. There were hayrides, animals to pet, hotdogs, and an ice cream truck.

    Charlie and Amanda laughing on the hayride

    Here is last year’s fall fest.


    Charlie has been working really hard at figuring out the stairs without holding on to the rail. He is getting pretty good at it.

    Charlie takes recycling very seriously.


    Another Saturday, another walk in the rain. Seems like it has rained every Saturday recently. Charlie doesn’t mind. As long as we have our raincoat and boots, we are good.

    This is Charlie’s walking stick.


    Charlie has shown even more interest in music this week:

    • Jamming daily with a little keyboard
    • Watching videos of different kinds of instruments with Amanda. It keeps his attention longer than most videos!
    • Playing with a ukulele at a birthday party.

    Saturday afternoon was Miles’s birthday party. Little guy turned two. We ran into Miles’s parents at the coffee shop when Amanda was ~30 weeks pregnant and Meg was ~22 weeks. Amanda used to work with Miles’s dad Jeremy and we didn’t know they moved up here to the Peekskill area. We’ve been hanging out ever since. When Charlie and Miles came along, they joined the hangouts. It is fun watching them grow up together.


    I put in some water sensors so we get a bit of warning if our basement gets water. One in each low spot where water seeps in first and one under the sink in the kitchen. (I’m still wary of my plumbing work on the glass rinser.)

    Decided to go with YoLink. I like that they use LoRA to connect to a hub that then connects to the internet instead of adding a bunch of new devices to my wifi network. There’s enough on there already.


    Amanda takes horse riding lessons. This week Charlie went and got to ride a pony, which he loved. Maybe he will take lessons in a couple years, too!

    Poor thing has its mane and tail dyed so he can dress up like a unicorn for parties. His name is Henry.


    I’m maintaining a couple news products on FeedLand that pull in posts form a bunch of sources:

    1. https://peekskill.news – Local Peekskill news
    2. https://wordpressne.ws – WordPress Project Updates

    If you want to make one for your local area or for your niche interest, let me know!


    I revamped my notetaking. (Yes, longtime reader, again.)

    This time I’m using Tiago Forte’s PARA method in Obsidian. Both seem to work better with my brain than previous approaches. I’m due to write a blog post about my Obsidian setup and which plugins and external capture tools I use.


    I’ve been staying up very late every day this week. Haven’t gone to bed before 1am. Lots of irons in the fire and it feels good. It has taken two years, but Amanda and I are starting to feel like ourselves again, with the added bonus of having a sweet kid in our lives. (Contrast that with mostly feeling like caregivers the last two years.) Our energy and sleep are improved, which helps give space for our interests, projects, and new ideas.

  • Week of October 2, 2023


    When telling a friend that we wish our house had more space, they helpfully pointed out that the nice thing about small houses is that families spend more time together rather than each person going to a separate space most of the time. That is a good way to think about it. Yes, alone time is important, but so is spending time together as a family, and the constraint of limited space is a benefit in that respect.


    Charlie is getting more adventurous, independent, and capable of advocating for himself. He expresses his wishes and needs more, tries new things, ventures further and further from us when out on walks, and spends longer periods of time in solo imaginative play.

    This week a kid ran into him at the playground and Charlie turned around and loudly said, “Scuu Me!”

    This phase does come with some challenges, especially when his wants conflict with what is possible, safe, reasonable, etc. Such is life.


    One morning the trash truck came a little early and we slept in a little later than usual. Charlie heard it, got up, and shouted, “Momma! Trash truck! Wake UP!”

    Trash trucks are serious business in this house.


    Our new thing at the grocery store is having Charlie scan our groceries at the self checkout. He loves it.

    It is interesting how our checkout habits have changed in the past two years. We went from only self-checkout pre-Charlie, to cashier checkout while Charlie was younger, and now back to self-checkout with Charlie scanning.


    Some random play moments: Making a vacuum truck out of blocks, learning how to replace batteries with a screw driver, and vacuuming together.


    I made some roasted red jalapeno pepper sauce this week with our garden jalapenos. It smells like roasted red peppers, but has a kick.


    I made some Chile Verde Pork on Friday, and to my surprise Charlie seemed to like it. It is quick and easy to make, especially if we have salsa verde on-hand from our garden tomatillos. We like to serve it over rice with some sour cream and avocado.


    We finally went to the Tuscana pasta factory in Peekskill and got some fresh ravioli, pasta, and sauce. We are very pleased. Why didn’t we go here sooner?! It is 5 minutes from our house.


    We wanted to do some fall farm activities this weekend, and even though it rained we decided to make the best of it. We’re glad we did because we all had fun.


    We had fun in the woods throwing leaves in the creek, exploring the textures of different kinds of bark, finding hickory nuts and acorns, and picking up sticks. 🍂


    More fall stuff.


    Reminder to myself to take the air conditioners out of the windows this week. Even though we had 85F weather this week, it now sufficiently cools down at night so we don’t need them.

  • Setting up PagePark on a DigitalOcean Droplet

    A couple days ago I asked Dave Winer how he was able to point news.scripting.com to a FeedLand news product, because CNAME records have to point to a hostname and can’t include a path. I wanted to point a subdomain at one of my own news products on FeedLand and couldn’t figure it out.

    The answer was PageParkArchived Link, a simple web server he wrote in 2014 to park his unused domains, and later expanded to include useful tools like serving redirects, content from GitHub and S3, and aliasing content from another site.

    I realized that I had to set that up for myself. I have a bunch of domains I don’t use, some old sites that I should just turn into a static archive and stick somewhere, and domains that I’d like to point to other services, such as FeedLand news products.

    That night I decided to set up PageParkArchived Link on a DigitalOcean droplet. I thought I’d write out the steps in case I or anyone else want to set it up on DigitalOcean in the future.

    Assuming you have a DigitalOcean account and are logged in:

    1. Set up a NodeJS droplet. I used DO’s NodeJS droplet template, which as of the time of this writing uses Node 18.12.1 and Ubuntu 20.04. I don’t expect to need a high powered server due to the low traffic to these domains, so I started with a $4/mo basic shared 512MB CPU with 10GB SSD and 500GB transfer. Basically the lowest tier.
    2. After the server came online, I SSH’d in.
    3. At the root, I cloned the PagePark repo: git clone https://github.com/scripting/pagePark.git
    4. Go into the pagePark directory: cd pagePark
    5. Install the app and dependencies: npm install
    6. Start the app: sudo -u root pm2 start pagepark.js
    7. Edit the nginx config to serve the app to the world. The default hello.js app that comes with the droplet is set to serve from port 3000. PagePark is set to serve from 1339, so we need to edit the location / block in nginx:
      • nano /etc/nginx/sites-available/default
      • Look for the block that looks like this:
    location / {
            proxy_http_version 1.1;
            proxy_cache_bypass $http_upgrade;
    
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
    
            proxy_pass http://localhost:3000;
    }
    1. That second to last line, proxy_pass http://localhost:3000; is what we want to edit. Simple change 3000 to 1339. The line should now read: proxy_pass http://localhost:1339;
    2. Exit and save: ^X to exit, y to confirm save, hit enter to save it to the same filename
    3. Restart nginx: sudo systemctl restart nginx
    4. Delete the default app included with the droplet: sudo -u root pm2 delete hello
    5. Schedule the PagePark app to run at launch and stop the default hello app from running at launch: sudo -u root pm2 save
    6. Point a domain at the droplet to use for easy CNAME pointing for other domains. I used pagepark.cagrimmett.com and pointed it via A record to the IP address listed in the DO dashboard under the project I added the droplet to > Resources > Domains.
    7. Back on the server, I went to ~/pagePark/domains and added a folder for pagepark.cagrimmett.com, then added an index.html with a simple message to test my setup. I also moved the ~/pagePark/prefs/error.html and ~/pagePark/templates/* to the pagepark.cagrimmett.com folder to make the accessible, then edited them and changed the path for the ~/pagePark/config.json keys for the following items to serve them from this server rather than Dave’s:
      • urlDefaultMarkdownTemplate
      • urlDefaultOpmlTemplate
      • urlDefaultErrorPage

    That was it! pagepark.cagrimmett.com started working, then I set up a couple more domains by adding new folders to the domains folder (follow the docsArchived Link) and adding a cname record for the domains to pagepark.cagrimmett.com.

    • peekskill.cagrimmett.com shows my Peekskill news product, running on FeedLand. It pulls in feeds from local news sources and the City of Peekskill.
    • sideproject.showArchived Link shows the contents of a simple markdown file
    • behindtheart.xyz – an interview website I set up on WordPress where I interviewed generative artists in 2021, then abandoned. I want the interviews to stay live, but I’m probably not going to do them anymore, so I generated a static site and put the HTML files here instead of keeping the WP site live. I’m probably going to do this with a few more old WP sites.
    • More to come soon!

    Thanks for open sourcing PagePark, Dave! I’m already finding it useful.

  • What non-standard items do you always travel with?


    Our remote team had an online social hour today that I hosted. We used to do a freewrite when I first joined the team (where everyone writes for 30 minutes then shares), so I decided to reboot that with this prompt:

    What non-standard items do you always travel with?

    Of course I have the regular stuff like Advil and my computer, but here are the things I travel with that I think are non-standard:

    • LMNT
      • This is electrolyte drink mix powder. I am chronically dehydrated, even moreso when I’m away from home and don’t have the constant reminder of a water bottle on my desk, so I drink one of these every morning when I’m traveling to stay hydrated.
      • I go with either the Orange or Grapefruit.
    • Instant Coffee
    • Swimmer’s Ear drops
      • I get ear infections from water in my ears, and I tend to swim more when traveling than at home. So I keep these drops in my travel bag.
    • Watch battery tool
      • Without fail, my watch battery dies when I’m not at home, so the little tool I need to replace it lives in my backpack.
    • Packable rain jacket
      • I keep a packable rain jacket in my backpack at all times. I don’t like umbrellas, but don’t like getting caught in the rain, either.
      • I have one from Columbia that I bought off the discount rack at Dick’s Sporting Goods 10 years ago.
    • Shout wipes
      • Nothing worse than spilling coffee on your shirt first thing in the morning and having to go to a bunch of meetings like that. Shout wipes are an essential part of my backpack.
    • NYTimes Mini Crossword book
      • These are fun, mini versions of the NYTimes crosswords collected in a book. Amanda and I have passed a lot of time in airports, on airplanes, on trains, and on ferries doing these mini crosswords together. This is one of those things that is better in the physical format than on the phone, IMO.

    If I’m traveling by car for more than an hour:

    • Small tool kit
      • Multi-bit screwdriver
      • Ratchet set
      • Pliers
      • Zip ties
      • Duct tape
      • Super glue
      • Utility knife
      • Flashlight
    • AC recharger
      • Ever been on a roadtrip and the AC stops working? It is easy to recharge, so I keep one in the car.
    • Beach towel
      • To be honest, this mostly gets used at the playground to wipe off wet slides that Charlie wants to go down, but it is also useful for cleaning up spills, etc.
    • Picnic blanket
      • Never know when you need to hang out for a little while outside. Chilling at a playground, impromptu meals outside, sitting on the beach, etc.
      • We have a Yeti Lowlands blanket. Soft on one side and canvas (waterproof) on the other.
    • Regular blanket
      • We keep a fleece blanket in the car. It can double as a picnic blanket if needed, but nice to be able to have a blanket if you get stuck or are just outside and it gets chilly. Or if someone wants to take a nap on a long drive.
    • Furniture blanket
      • Useful to kneel on if you need to change a tire, also useful to throw down to protect your seats if you need to move something.
    • Backup clothes
      • Sometimes toddlers puke on themselves or you. Or they jump in mud and then get it on you. Backup clothes are essential for everyone in the car.
    • Tourniquet/bleeding control kit

    Dear reader, what non-standard items do you always travel with? Write your post and drop it in the comments.

  • ChatGPT on the 2023 MacArthur Genius Grant fellows’ work

    I saw the new MacArthur Genius Grant fellow list this morning and I only recognized a few names from the list, so I asked ChatGPT what I should be familiar with from the fellows. I mistakenly asked what I should read by them, forgetting that not all of them are authors, but I got good recommendations back for each field nonetheless. Thought I’d share.

    The response:

    Given the diversity and expertise of the Macarthur genius grant recipients you’ve listed, here’s a selection of works or major contributions from each of them that you might consider exploring:

    • Rina Foygel Barber:
      • Her research papers are mainly technical in nature. You can refer to her Google Scholar Profile for her most cited works.
    • Ian Bassin:
      • As a lawyer and advocate, Bassin’s impact comes through his contributions to legislation and policy. Check out Protect Democracy, an organization he co-founded.
    • Raven Chacon:
      • His compositions and art installations are best experienced directly. Refer to his Personal Website for a list of works and upcoming performances.
    • Linsey Marr:
    • Dyani White Hawk:
      • Her artworks such as “Listen” and “She Gives” can be viewed on her Official Website.

    For further exploration:

    1. How has the MacArthur Fellowship influenced or changed the trajectory of past recipients’ careers?
    2. What’s the selection process for the MacArthur genius grant, and how do they determine the potential and uniqueness of a recipient?
    3. How have other countries or organizations replicated or been inspired by the concept of the MacArthur genius grant to support innovators and thinkers?
  • Week of September 25, 2023


    We are pretty much recovered from COVID, though we still fatigue faster than normal and food still isn’t tasting quite right.

    This week was a long and tiring one. Amanda had to work in Houston, TX, from Monday to Thursday, so between the COVID fatigue and Charlie’s momma separation anxiety, it was a struggle. Even so, Charlie and I got a lot of bonding time, and he seemed happy to get back to his regular daycare routine.

    After daycare, we usually had dinner right away, went out for a walk if the weather was nice, and then watched a couple episodes of Trash Truck before getting ready for bed.

    We tried out a new burger place that opened this week in Peekskill. It was pretty good! It is right across from the train station, which is one of Charlie’s favorite spots to hang out (where else can you see trains, busses, tow trucks, and boats from one location?).


    Some work news: Our team saved the Blogs.Harvard network from being shut down back in July and now host an archived version of it on Automattic’s infrastructure. We see it as a major win to keep this important piece of internet history available, and keep links from 2003 still working.

    We upgraded the network from WordPress 4.8.1 and PHP 5.5.9 to WordPress 6.3.1 and PHP 8.2. No small feat with ~1500 blogs with tons of themes and plugins.


    We had another crazy rainstorm on Friday that flooded the region for something like the 3rd time this year. There was too much water in our basement this time to only use the shopvac, so I bought a non-submersible transfer pump and ran it every 20 mins or so for about 4 hours until water stopped seeping up through the floor.

    I don’t think this weather pattern is going to get any better, so the first call I’m making on Monday morning is to a sump pump guy and get that on the calendar.


    Amanda’s college sorority little, Kat, visited us this weekend, in from London for a wedding in upstate NY this week. We hung around this general area, made dinner, drank wine, visited Muscoot Farm, walked along the riverfront with Charlie, and caught up after 4 years like no time has passed. Kat give us a couple of book recommendations:

    At the farm I liked the pitch forks made from single branches. I’d like to try to make one. Charlie liked the tractor and the mud puddles the best.

    We have a lot of apples right now, so apple desserts are the thing right now. Apple galletes and apple sauce are always good, and I made this apple crisp, which employs pecans for the topping. Better than oats, IMO. 🍎


    I changed my mind on something this week: We decided to hire cleaners once a month to help us clean the house. Until now I’ve been against it, probably because of my midwestern work ethic and Appalachian self sufficiency (family roots run deep!), thinking that we should save the money and take care of it ourselves. After all, we had the time and I thought it was lazy to not do it ourselves.

    What changed my mind was struggling to do the base-level things like mopping, dusting, kitchen grime, etc, after we had Charlie. Not only do we have less time now, but he also creates more messes than Amanda and I combined. When he was 3 months old we had someone come babysit him while we cleaned all day, but that has our priorities backwards. Why not pay someone to clean so we can spend that time with Charlie instead?

    Needing to get the house ready for a guest while Amanda was traveling and I had a busy week at work pushed me over edge. It was more affordable than I expected and they did a great job in a couple hours while I was working. We’ll probably have them come once a month.


    I redid my Likes page to be closer to a linkblog.

    I’m thinking about changing my permalink structure to no longer include the category slug. We’ll see. I just need to make sure my redirects will work as expected.

    I fixed a spacing issue around images and galleries with adjacent text that has been bothering me for a while on this site. The answer was sibling selectors.

    p ~ figure, p ~ div.wp-block-jetpack-tiled-gallery {
    	margin-top: 1rem;
    }
    
    figure ~ p, div.wp-block-jetpack-tiled-gallery ~ p {
    	margin-top: 1rem;
    }