Archives

Blog index

Blog

  • Praxis Chat on Using AI Tools for Learning and Creating at Work


    My friends at Praxis (where I used to work) asked me to join them for one of their Monday night workshops for folks in the program. I had originally planned to talk about learning out loud, showing your work, and blogging, but I changed the topic at the last minute to something a bit more en vogue right now: Discussing strategies for using AI tools.

    I’m glad I decided to do the session on AI. I was surprised at how few of the participants had even tried out ChatGPT, let alone use it or Copilot regularly. These tools have been transformative in my own work recently, and the space is moving fast. I see using these tools as early investment in your own compound career growth curve.

    Some of my key points:

    1. AI lowers the opportunity cost of trying out new ideas. (h/t Simon Willison)
    2. AI can help you learn the fundamentals of any subject faster.
    3. Don’t have AI do the finished product for you. Use it like an assistant to help you make your own work better.
    4. It is easier to edit than it is to create.
    5. In any kind of work, one of the core skills is communication, and working with AI tools like ChatGPT is no different. You need to learn how to communicate effectively (read: getting the results you want).
    6. You still need to learn the fundamentals of your subject (which ChatGPT and others can help you do!) in order to use it effectively. At the end of the day, the end result is still your work, so you need to understand it and be able to account for it. Hiding behind “well, ChatGPT said…” is no excuse.
    7. You still have to decide what is worth building/working on/investing in. AI can do things, but you have to know what to ask it to help you do.
    8. GPT-4 is leagues better than GPT-3.

    I also spent some time before the session going back through the Praxis bootcamp curriculum and brainstorming ways to use AI tools for each month in the bootcamp, and for each of the main roles Praxis helps participants land jobs at startups in.

    Bootcamp modules

    1. Foundations of each role and the job landscape
      • Use it to learn the basics of each role quickly, then with the time you saved dive deep on two that interest you. Ask for lots of examples, details, specifics.
      • Ask it to ask you questions to test your understanding.
    2. Writing + Personal Branding
      • Writing an essay? Ask it to help you find your weakest arguments and help you find substantiating evidence. Use it like a really great thesaurus. Ask it to play Devil’s Advocate and then use those results to improve your counterarguments.
      • Writing an email? Have it help edit for tone and clarity.
      • Have it help you set up scaffolding and outlines.
    3. Portfolio project + Learning a tech stack
      • Use it to help you come up with a customized learning plan. Think Diamond Age.
      • Use it to help you rapidly prototype a bunch of different projects, then pick the best to double down on.

    Placement Roles

    • Sales
      • Ask it to help you learn how to negotiate. Negotiate with it! ChatGPT can roleplay.
      • Record sales calls, transcribe them with Whisper, then ask it how and where you can improve. Hone your pitches!
      • ChatGPT is a really good scraper. Copy the HTML contents of a page and ask it to pull out everyone’s names and put them in a list, then add their email addresses using their first initial and last name at the company domain (or whatever you find for the company on Hunter.io).
    • Customer Success
      • ChatGPT is great for quick help and debugging.
      • Rewrite emails in a helpful customer voice. Say, “Rewrite this email with the following tone: Helpful, positive, collaborative, empowering, clear, concise, and avoiding trigger words.”
    • Marketing
      • Use it to create and improve copy + imagery + videos + schedules. Set up workflows.
      • Need photography? Instead of taking a chance on hiring a model and photographer, try https://photoai.com as a proof of concept beforehand.
    • Operations
      • Set up automations!

    Afterward, I followed up on a couple questions:


    Here is the recording of the session:

  • Week of March 20, 2023


    Spring is here! Nice to hear the frogs again in the wet areas of the woods. No wildflowers appearing just yet, but Charlie and I are keeping our eyes peeled on our walks.

    I like the woods in early Spring. Warm enough to not need a coat, no bugs yet, and you can see a long distance since the leaves haven’t come in yet.

    We started seeds, both indoor and outdoor this week.

    Indoor: Magic Bullet tomatoes, tomatillos, jalapenos, red lipstick peppers, and rosemary. The tomatillos have already sprouted!

    Outdoor: French Breakfast radishes, lacinato kale, spinach, cilantro, and Sugar Magnolia snap peas.

    I have another type of tomato seeds coming this week, Firminio’s Plum Tomato.


    Charlie is in a bird phase. He loves seeing birds outside. Whenever he does, he excitedly points to them and shouts, even if they are far off. He does the same thing with airplanes – “air pane!”

    Since he has taken an interest, we made a birdhouse together out of a gourd and also hung a small birdfeeder on a window so he can see the birds.


    Strep update: I went back to work on Tuesday and my throat finally stopped being sore on Friday. This is the first time in many years that I’ve taken antibiotics and they’ve messed up my stomach and made my urine smell funny. Not cool, but better than having strep.

    Unfortunately Amanda picked it up a second time over the weekend, so we are still kind of in survival/recovery mode.


    Sometimes you need to know when to say, “no blog post tonight, maybe tomorrow.”


    Projects corner:

    My weather blocks are now mobile friendly. Check them out at https://cagrimmett.com/weather

    I figured out how many boards I need for the rock wall project: 8 of the 5/4 x 6in x 8ft pressure treated boards. I measured the side, divided it in half to make a right triangle, then dusted off my trigonometry to figure out the top angle and then made a Sheets formula for figuring out the length each of the boards will be.

    =SQRT((A2/SIN(1.01913))^2-(A2^2))

    Other projects:

    • I need to measure the second level shutters, which seem like they might be a bit shorter than the ones on the first level.
    • Looking for some patio furniture at a good price and a large corner swing arm umbrella.
  • Week of March 13, 2023


    Amanda and I both got strep throat this week, Amanda early in the week and me at the end of the week. I’m writing this Sunday night in bed with a fever. I was supposed to be on jury duty tomorrow, but I’ll have to call and ask for a deferral tomorrow.

    The nor’easter that came through on Tuesday dumped plenty of snow, but did not give very interesting weather station readings.

    The snow melted off completely by Thursday, when it got up to 60F. Charlie and I went on a nice walk in the woods, then swung in the backyard for a bit. we noticed that daffodils are blooming!

    Charlie remembers so much. We seems to know most of the common fruit and vegetables now. We were quizzing him and he was able to point them out correctly multiple times from a grid of photos. We also got out some from the fridge and he got them right, too. He can’t quite say the words yet, but he is working on it.

    Lately Charlie has been picking things out when we go to the grocery store. The look of pure joy on his face when we say okay and help him get whatever he picked is worth it. Thankfully it has been normal stuff like cheese and muffins.

    I did most of our taxes this week (just need to double check and submit) and we planned a family trip to California for a wedding. It will be Charlie’s first plane ride! ✈️ To quote him, “Wwoooooowww!”

    I added spark lines to my weather station blocks. Check them out at https://cagrimmett.com/weather. Next up: Mobile styling.

    That’s all. I’m going to get some sleep and hope these antibiotics work quickly. Here’s hoping for a week or two without anyone in the house being sick 🤞

  • Week of March 6, 2023


    This week was kind of a blur. I had to go back through photos and text messages to piece it together.

    • Charlie was home sick from daycare on Monday, which made us feel behind at work all week.
    • Tuesday-Thursday had more urgent issues at work than usual. Days that involve regex and database rollbacks are not fun.
    • Amanda was sick Wednesday night and Thursday
    • Charlie has had some tough nights sleeping Wednesday and Thursday.
    • Charlie threw up more than normal this week. We think that he might be overeating, which is new. Hard to tell because only he knows when he is full.
    • Saturday brought some fun playtime with Charlie and a long nap where I got to hold him. I know those days will end soon, so soaking it up while I can.
    • Sunday we went on a nice walk in the woods and then had brunch at a friend’s house for his birthday. I made butternut squash latkes because he has Crohn’s disease and can’t eat regular latkes. Charlie had a great time being the center of attention. In the afternoon we cleaned the house.
    • Charlie is learning lots of new words and made a two-word request this week!

    This week I also spent quite a bit of time planning out some house projects. We want to renovate the attic and turn it into a third floor living space, so I was on the hunt for an architect who could guide us through the local regulations and help figure out key components like where to put the stairs.

    I’m kind of interested in getting solar panels, so I’m getting some estimates this week for that. Also pricing out shutter replacements and buying materials to build a climbing wall on Charlie’s swingset.

    I know that if I don’t take action on these things right away, months will go by without them happening.


    We decided to up our seed starting game this year with grow lights, so I got some set up. Ready to start some in a couple weeks! In the meantime, this week we plan to direct sow some radishes, spinach, and peas.


    In what little spare time I have, I’m trying to make some styling updates to my Wunderground PWS blocks plugin. Here is what I have so far:

    Next: Adding some sparkline trends, trying to figure out whether the pressure is high or low for our area and adding an indicator, and dialing in the color palette a little more (colors change based on the data).


    What a crazy end to the week with Silicon Valley Bank being taken over by the FDIC. This doesn’t affect us or the companies we work for directly, but it does impact some projects we work on with third parties. I expect this will loom large in the tech consciousness for quite some time.

    Unfortunately there are so many bad takes about what happened. When Lehman Bros went bankrupt in 2008 and kicked off the financial crisis, I spent a lot of my free time the next 4 years reading about money and banking and then much of my work time from 2012-2014 focused on it, too. I’m no longer very interested in that space, so I’ll spare you my take. I’m very curious what the FDIC/Fed/Treasury will announce on Monday morning. Do they have a buyout lined up? Are they setting a crazy precedent and making depositors whole without a buyout? Leaving depositors hanging and causing more runs? I guess we’ll see.

    As is common during periods of financial turmoil, it is amusing to watch Nassim Taleb calling people with bad takes imbeciles and ignoramuses on Twitter. Never change, NNT.

  • Week of February 27, 2023


    Monday was my birthday!

    We celebrated the day before with a day trip to Kingston and Woodstock, where we visited a bunch of indie bookstores and two restaurants I’ve wanted to try. It was a really nice day!

    The find of the day was the full Sandman series, each book signed by Gaiman, at regular retail price. I’ve only ever checked these out of the library, so I’m stoked to have the full set on my shelf now.

    Day-of I had to work, but I made a nice dinner for the three of us at home and Amanda and Charlie got me an ice cream cake.

    Check out my birthday post:

    https://cagrimmett.com/thoughts/2023/02/27/thirty-three/

    We had some snow on Tuesday! It was the first major snow of the year. We took Charlie out for a sled ride in the woods.


    Charlie has some new words this week: Open and Taco. He’s been asking us to open various things all week and it is pretty cute. He’s also been pointing out words he already knows wherever he sees (the object) or hears them, and his recognition/noticing is getting pretty good.

    Wheels on the Bus is still his favorite song, but Row, Row, Row Your Boat is closing the gap.

    He and I were on our own for a couple days this week while Amanda travelled for work, which meant some early morning breakfast outings. This little NY toddler loves Bacon, Egg, and Cheese breakfast sandwiches.


    I created a plugin to pull down data from my home weather station and display it in a custom block. The data updates every 10 minutes. I’m also gathering daily summaries behind the scenes for future blocks to come.

    Here is the block in action. It is currently “no frills” and needs some styling and a round of code clean up, but I’m happy with the first working version.

    Current weather conditions from KNYPEEKS11

    Last updated: 2023-06-16 02:26:36

    58°FHeat Index
    58°FActual Temp
    58°FWind Chill
    91%Humidity
    0UV IndexUV index sparkline over the past 48 hours
    Low risk, no protection needed.
    0 in/hrPrecip Rate
    0 inTotal Precip
    56 °FDew Point
    29.99 inHgPressure
    Holding steady ↔️
    0 mphWind Speed
    EDirection
    0 mphWind Gust

    This block will live permanently at https://cagrimmett.com/weather/

    You can find the plugin code on GitHub: https://github.com/cagrimmett/wunderground-pws-wp-blocks

    Some things I have in mind for future updates:

    • Highs, lows, and averages for the past 7 days, past 30 days, and months, quarters, and years.
    • Maybe some historical charts.
    • Styling for better representation of the data.

    I’m also open to ideas for more blocks using this data. Would would be cool to see? The current block is dynamic, but I’m open to some static blocks, too.


    The Carthusian monks, who have been producing Chartreuse since 1605, will be limiting production and allocating their bottles in an effort to devote more time to monastic life. “We look to do less but better and for longer,” reads the memo, which also considers the costly environmental impacts of production and distribution of the beloved herbal liqueur.

    We were pretty well stocked on the yellow Chartreuse, but picked up another large bottle of the green this weekend before the prices sky rocket even more than they already have. Get some while you can!

    I expect to see some more alternatives/knock-offs coming to market over the next year. Lots of boutique bitters and amaro producers are well positioned to do it.

    Heck, I might try making some. The process isn’t that different from making the ginger liqueur, falernum, and pimento dram I’ve made in the last year. Plus it will give me an excuse to go to Kalustyan’s again.


    We got out and did a little bit of yard work this weekend, mostly trimming trees and bushes, and clearing out dead plants to make way for the new shoots. I noticed peonies, lilies, and rhubarb emerging out of the ground this week!

    I also ordered some seeds this weekend. I plan to get seeds started in the next couple weeks. New for us this year: Cherry tomatoes are replacing the heirloom slicing tomatoes that always seem to split and the animals get to before we do, a new variety of pea (sugar magnolia snap peas), and spinach for some additional early season harvesting. Also bought some foxglove seeds to add another perennial to the flower beds.

    I’m looking forward to getting back out in the garden!


    Time for bed. See you next week 👋

  • Thirty-three


    Since I’m working today, we celebrated yesterday with a day trip to Kingston and Woodstock, where we visited a bunch of indie bookstores and two restaurants I’ve wanted to try. It was a really nice day!

    I think this year has gone by faster than any year in recent memory.

    It has been a great year in many ways, especially compared to the three years before:

    • Charlie is thriving. Paternity leave was very helpful for getting through the difficult infant days, and now that he is a toddler things seem like they are settling into a new normal. That means Amanda and I get more time for the two of us to spend together again, which we deeply appreciate.
      • I’ve been reflecting a lot on the last year and it is incredible to me the amount of growth that happens for a baby between 6 months and 18 months. This time last year he couldn’t crawl. Now he is running, climbing stairs, communicating, and very curious about the world. Amazing.
    • Work is feeling really good. I’m in a new position with new challenges and responsibilities more aligned to what I like to work on.
    • I’ve had more time after Charlie goes to bed (and during his naps) to do open-ended exploration. That manifested in major overhauls to this website’s functionality, getting into tiki drinks, and recently going down a weather station data rabbit hole.

    One of the things I tried to follow this year is the idea that I should embrace what this season of life entails instead of wishing for an alternative. That helped me be more content with not doing things in the workshop or paddling on the river, and instead spend that time with Charlie. He won’t be a baby or toddler forever, and I don’t want to have squandered that time.

    Taking stock on last year’s vectors:

    • Spend as much quality time as I can with Amanda and Charlie. Help Charlie learn, grow, and explore the world.
      • I think I did pretty well here, but given how tired I was most of the time, I wasn’t as present as I could have been for some of it. I think that will improve this year now that we are all sleeping through the night.
      • One thing I need to get better about is reminding myself that Charlie is learning, and his learning often looks like meticulously testing where the boundaries are for everything. This is often difficult to keep in mind when he lands on the wrong side of those boundaries. My job is to steer him back and help him learn learn where the boundaries are, even when it is frustrating for me. Getting frustrated means my expectations are not correctly set.
    • Read less news and social media; read fewer contemporary books and more old books.
      • I didn’t do great on the less social media part, especially toward the end of the year.
      • I think I slightly changed the percentage of older books, but not exactly how I had envisioned it. Too many contemporary books caught my attention, and I read less overall this past year than I would have liked.
    • Make more art.
      • This didn’t happen. At the time of writing this I was excited about creating generative art, but once the nice weather hit I only wanted to be outside.
      • This year I think this might look more like sketching.
    • Spend more time outside, tending to the garden, going for walks in the woods, and paddling on the Hudson. Get out in all weather, not just “nice” days.
      • I spent a lot of time outside, not much time on the water: Once on the Hudson river, once on the Croton river.
      • Going for walks with Charlie is wonderful. Even more fun now that he is so confident with walking and running.
    • Make more in the workshop.
      • I made a couple things (dry vase, ring holder, peg people) and fixed a couple things (like the leg to Charlie’s train table), but made less out there than I was expecting. This is okay. I know this season isn’t forever and I’ll probably get more workshop time as Charlie gets big enough to play in the yard by himself.
      • I helped my friend Jon do some timber framing, which scratched a bit of this itch. I also worked on a lot of digital projects (mostly on this website), which fit my desire to make things with the constraint of needing to be inside frequently.
    • Make some improvements around the house and yard.
      • I did a lot in the garden this year and put in new flowers, which were a welcome addition. In the house we did some childproofing, curtain hanging, made a play area for Charlie, put up new bookshelves in my office, and cleared out of some things we don’t need. More on the docket this year.
    • Continue blogging regularly.
    • Take part more in the local community in Peekskill.
      • Also a success. We made more friends with kids locally and have been getting out with them regularly. That has been very nice.

    So, what do I want my thirty-fourth year to look like?

    Much the same as the last year. Keep prioritizing quality, fully present time with Amanda and Charlie, and our family. Keep making things. Keep improving our lives & surroundings. Keep blogging. Keep fostering friendships.

    Check out last year’s post, Thirty-two.

  • Week of February 20, 2023


    Busy week!

    My parents were in town last weekend, so I published my weekly post early and was offline for most of the weekend.

    They helped us put in new bookshelves in my office and moved the chalk board. I love it! This opens up the space and gives it more of a study feel instead of a classroom feel.

    Having a background of books for calls is better than having a chalkboard + pull down map, in my opinion (though I don’t have any screenshots of me on the previous background handy, perhaps some coworkers do):

    They also helped us hang a weather station they gifted me for my birthday and a birdhouse with a camera in it that I got from my aunt and uncle for Christmas.

    I’ll write a full post on the weather station soon, but for now you can see the weather data on:

    …and any app that pulls in one of those sources! I’m currently pulling in the data to CARROT Weather. It has been super cool to watch the rain and wind more closely and know the data is coming from my weather station.

    For fun, here are some weather charts from my station’s observations this week:

    February 20, 2023 – February 26, 2023
    HighLowAverage
    Temperature47.7 Â°F18.4 Â°F35.1 Â°F
    Dew Point38.6 Â°F6.6 Â°F25.8 Â°F
    Humidity98 %35 %71 %
    Precipitation0.27 in
    HighLowAverage
    Wind Speed15.7 mph0.0 mph0.6 mph
    Wind Gust26.6 mph1.2 mph
    Wind DirectionWest
    Pressure30.79 in29.82 in

    My next step is to figure out how to get the weather to CWOP, too. APRS isn’t exactly a REST API that you can post JSON to. In the meantime I plan to work on a custom block to pull in the current Wunderground observations and display them on a page on this site.

    The birdhouse needs electricity, so we set it up on the side of the shed/workshop. No one has taken up residence yet.

    Charlie had a great weekend with his grandparents. It is wonderful watching them love him and seeing how much he loves them, too.

    The aforementioned sleep training improved dramatically last weekend. Since last Friday he has slept through the night until ~5:30-6:30am, at which point he comes to snuggle in our bed for a little while to wake up. This is the first time he has consistently slept through the night (we had some short stretches before, but never like this), so we are all sleeping better.

    The pre-bedtime routine is now more important than ever, and Charlie expects to read at least four books and sing a round of Wheels on the Bus, his current favorite song. He knows all the hand motions.

    He is also taking naps in his bed most of the time now, which means less naps snuggling on us, but more time for us to do the dishes, cook, do laundry, and clean up. Tradeoffs.

    We put up a tent in Charlie’s room this week, which he loves:


    We got snow on Feb 25! I thought for sure we were going to go the rest of the season without snow. Looks like more is coming on the 27th and 28th. Looks like I need to move some stuff so we can get our vehicle in the garage 😬 ❄️


    Unexpectedly had to replace our tires this week. Wheels were out of alignment, so the tire wires were showing on the inside edges and the vehicle wouldn’t pass inspection. I asked the mechanic to see, and they weren’t bullshitting me. Fun.

    It is a year to the week since I popped a tire and had to get a new one. At least I got to keep the new one I bought then as a backup.


    Work this week was lots of racing against the clock to figure out Stripe fraud rules (RadarArchived Link) and evaluating a surfeit of individual transactions. Then planning out a migration away from AWS, also against the clock.

    “One must work with time and not against it.“

    Ursula K. Le Guin

    I finally got to try out my homemade falernum this week. I made a Chartreuse Swizzle. I’m pleased!


    The Tavern included some of my art in a recent post:


    That’s all for now 👋

  • Week of February 13, 2023


    Sleep training toddlers is not for the faint of heart. Unfortunately, while sleep training a toddler this week, I learned that I am faint of heart.

    It did get easier by the fifth night.


    I don’t have a lot to say this week. Work was pretty stressful, which coupled with the lack of sleep was tough. Charlie has been teething all week, too. Despite all that, he has been a lot of fun. He is picking up new things quickly!


    I am concerned about how unseasonably warm it has been, but I have been enjoying it. Nice to take Charlie on walks and use the swingset again. I hope it doesn’t freeze and destroy all the flowers popping up.


    I’ve been using my Micropub Shortcuts a lot this week. They’ve been very handy. One improvement I want to make: Pass highlighted text from a webpage into the action so it can be added to the content body as a quote. I also want to try adding a note with a like.


    I’m publishing this early because I’m going to be mostly offline this weekend. My parents are visiting and we’ll be working on some projects, cooking, and hanging out with Charlie. See you next week 👋


    My weekly roundup

    I realized last week that I could use the Query Loop (I prefer the one from Generate Blocks because you can restrict the query with before and after dates, just like wp_query) to include the Microblog posts and Likes I’ve posted in the last week as a roundup in these weekly posts.

    This week’s Likes

    This week’s microblog posts

  • iOS Shortcut Actions for Micropub posting


    I recently lamented about how few options there are for Micropub posting on iOS now that Indigenous was pulled from the app store. I had a hunch that the Shortcuts app could be a solution since Micropub takes pretty simple cURL requests, and after some testing to figure it out I put together a set of three Shortcuts to do the most popular Micropub actions. You can install them from the iCloud links:

    1. Like, Reply, Bookmark, or Repost a URL
    2. Post a Note
    3. Post a Note with an Image

    The first time you install one of these Shortcuts, you’ll be prompted to provide your Micropub endpoint and an IndieAuth token with the scope create profile update media.

    How do they work?

    They essentially take inputs (a URL or text) and make a curl POST request to your Micropub endpoint with a Bearer token that you provide on initial setup. Then it gives you the option to open up the URL for your post to take a look at it.

    The Like/Reply/Bookmark/Repost action has a bunch of conditionals to handle each action a little differently.

    The Post a Note with an Image action makes two separate curl requests: One to the Media endpoint for posting the image (which is automatically converted to a JPEG since most sites and browsers don’t support HEIF), the URL for which is then stored as a variable, then one to the regular endpoint with your note text and the image you wanted to post. I couldn’t actually get the “photo” parameter to work in the curl request, so I did it the old fashioned way and appended an HTML img tag to the “content” parameter. I also add a class micropub-img for easy styling. If anyone figures out how to get the photo parameter to work with the curl request, I’d be happy to update the action accordingly.

    Some screenshots

    The Like and Reply actions:

    Regular Note action:

    The Note with Image action:

    Videos of the Shortcuts in action

    Demonstrating the Like action on a URL:

    Demonstrating posting a regular Note from a Shortcut added to my Home Screen:

    Demonstrating posting an Image with a Note:

    Syndicated to IndieNews
  • Week of February 6, 2023


    Charlie has been engaging this week. It is fun watching him make the leaps where he wakes up one day and has new skills. He seems to understand more of our language and is trying to string it together himself, doing some solo imaginative play, and noticing even the smallest things. He is saying Momma a lot more, which Amanda appreciates.

    We think moving up to the older toddler room at daycare is rubbing off on him.

    On Saturday we put together a toddler bed for him (one of the low to the ground style that he can get in and out of by himself), involved him in the setup process, and made a big deal about it. Afterward he took a nap in it (after spending some time getting used to it… new things are exciting!).

    That night it was a little rockier. We got him to bed, but he got up five times throughout the night. That said, we were able to soothe him back to sleep in his bed instead of caving and letting him cosleep in our bed, so that is a win. Hopefully it gets easier.

    Amanda reminded me of what some friends said: When they got serious about drawing bedtime boundaries, they decided to only have Dad go in when the kids cry. When Mom isn’t an option, they tend to figure it out quicker. My new term for the regular nighttime cries is Mommafishing.


    Walks with Charlie have been sweet. He reaches up on his own to hold our hand. Playground time, too. He is getting faster and more independent by the day!

    Here is what walks in the woods with Charlie last year looked like vs this year:


    I created some Micropub Shortcuts for iOS and have been using them a lot. Next step is setting up autosyndication for these Micropub posts.

    I’ve also used my Upload Photos to WordPress Shortcut a lot this week and I refactored it to work with the Share Sheet.

    I put in a PR to update the Authentication section of the WordPress.org REST API docs that was approved and merged: https://github.com/WP-API/docs/pull/149 – Here is a link to the new section: https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/#basic-authentication-with-application-passwords


    I upgraded my work computer to the new MacBook Pro with M2 Pro chip this week and I’ve been blown away at how fast it is. UI changes are instant. The battery lasts a long time. The fan doesn’t run like my i7 Intel version. Great update. I do miss the touchbar, though.


    Some new-to-me songs I’ve enjoyed recently:

    https://open.spotify.com/track/20R4HfKloPKgXDqU7UKk3x?si=e0190afde5e84107

    Reading

    I recently finished Recursion by Blake Crouch and Daemon by Daniel Suarez. I’m now working on Freedom by Daniel Suarez (second book in the Daemon series) and listening to Solomon’s Gold by Neal Stephenson, another book in the Baroque Cycle.


    My Weekly roundup

    I realized tonight that I could use the Query Loop (I prefer the one from Generate Blocks because you can restrict the query with before and after dates, just like wp_query) to include the Microblog posts and Likes I’ve posted in the last week as a roundup in these weekly posts.

    This week’s Likes

    This week’s microblog posts

  • Apple Shortcut to upload photos to WordPress Media Library

    UPDATE 11 Feb 2023:

    Good news! I refactored this to work with the Share Sheet and to prompt you for credentials and a media endpoint on the initial setup.

    Here is the new link: https://www.icloud.com/shortcuts/cf31d94107e24e5e947a801fb9d8132c

    Here is how easy it is to use on macOS.

    And here is how easy it is to use on iOS:


    Tonight I sat down and figured out something that has been in my head for months: Uploading photos to my WordPress Media Library with an Apple Shortcut. It works on both macOS and iOS.

    I use the REST API to upload them to the /wp/v2/media endpoint via a POST request. For authentication I use a username and Application Password that I base64 encode.

    Here is the basic workflow:

    • Select the photos
    • Loop through them and convert them to JPEGs. This is necessary because WordPress does not currently handle HEIC images, the default iOS image format.
    • Use a POST request to upload the converted JPEGs to the /wp/v2/media endpoint.

    You currently have to run this from Shortcuts.app. Share sheet support does not work on macOS Monterey, so I still have the step in there to pick images from Photos.app. I know they added this in Ventura, but I haven’t upgraded yet. Once I do, I’ll change this to only take images from the Share sheet so you can start in Photos.app rather than Shortcuts. I know share sheet support works on iOS, but since I blog most on my Mac, I wanted to make a shortcut that works in both places.

    If you’d like to use this Shortcut, you can get it here: https://www.icloud.com/shortcuts/e473f76d1692444896077ebcdbc4c893

    If you use it, you’ll need to make two changes:

    1. In the Text area at the top, put your WordPress Username and Application Password in this format: username:password
      • Application passwords are found under wp-admin -> Users -> your user profile -> Application passwords
    2. Change the domain from example.com to your website’s domain.
  • Week of January 30, 2023


    After I posted last week’s update, we went to Beacon, NY, and had a nice family day exploring parts of Main St that we haven’t gone to yet. Charlie walked almost a mile on his own and overall we had a really good time. We had burgers and fries at Meyer’s Olde Dutch, which we recommend.

    Charlie had a big week! He moved up to a new room at daycare and he got his first haircut. No photos yet because he is teething and kind of grumpy today, so we’ll catch him at a happier time later.

    We got him a learning tower and he has enjoyed helping is make breakfast and dinner all week. Also helping Momma make banana bread!

    Two ways he showed some new skills this week:

    1. We came across one of those “find this object” puzzles in a Highlights magazine (thanks, Grandma and Grandpa!). He was able to quickly find the objects!
    2. While helping me make coffee in his learning tower (he likes to dump the beans into the grinder and help me crank the grinder handle), he pointed to the coffee filters on the wall, which is the correct next step, and put it into the Chemex when I handed it to him. Before we know it he’ll be making coffee on his own.

    Forget improv classes. Drive a car with a grumpy toddler in the back seat. You’ll figure out how to riff off of whatever you see pretty quickly since the stakes are higher.


    I’m still not feeling good consistently, which is very frustrating. Last week I wrote about my eyes and persistent cough. Thankfully my eyes are better, but my cough is still. I also had body aches twice this week (Wednesday and Saturday) and a fever once (Saturday). Today I have a sore throat. Charlie’s cough hasn’t gone away yet either. We are all very ready to be rid of this.


    Amanda and I were able to go have a lunch date this week, which was really nice. We both agreed that we need to prioritize that more.


    The “spy balloon” was such an absurd situation this week. I like Arnaud Bertrand’s take.


    Charging for the Twitter API and the very poor sudden communication without a concrete plan (one week notice, no details), may be Musk’s biggest misstep at Twitter yet other than buying Twitter in the first place.

    Christina Warren said it best: $100/month is not something someone will pay for a small hobbyist project (which is one of the core things that makes Twitter great!), but it is something that scammers with stolen credit card numbers will pay, just like they did with Twitter Blue, another Musk Misstep™️.

    Then the next day, shutting off API access for certain apps without notice? Very nice move.

    My microblog posts may stop autoposting to Twitter, I’m not sure 🤷‍♂️

    I also noticed last week that Twitter removed the card preview from the validator tool. That is annoying because half of the reason to use the validator is that it fetched fresh content from the site, which was a way to force updates on preview cards. I suspect that the preview in Tweet Composer is working off of cached data and there is now no way to force an update. The announcement.

    The person who runs the Year Progress bot also said it pretty well: “Twitter management can eat shit.”


    I already posted about this on my microblog, but since these weekly posts and the shorter ones have different audiences, I thought I’d post it here too:

    The Museu de Matemàtiques de Catalunya (www.mmaca.cat) in Barcelona, Spain, added a photo I took of a cycloid to their interactive cycloid exhibit room!

    I blogged about taking this photo in 2008. I won a physics photo contest with it! My parents helped me take the photo and that is their old Suburban in it. Since then it has also been published in a magazine in Japan. One key reason, in my opinion, is that I put my photos out under a Creative Commons license.


    I’ve been at this consistently for a year now!

  • Week of January 23


    We are on the road to recovery, health-wise. I went back to work this week and when Amanda started showing symptoms on Monday, we immediately got her a telehealth appointment and some Tamiflu, which helped immensely. She avoided the worst of it (still has a sore throat and cough, but no fever or body aches) and was able to work all week.

    I have some residual that I’m still recovering from. Still have a regular cough with phlegm. The worst has been my eyes, though. They are still dry and scratchy and very sensitive to light. I’m also having trouble getting them to focus, so everything is just a bit fuzzier than normal, even with my glasses on. It is almost like my prescription changed overnight. I’m going to give it another week before I call the optometrist.

    Charlie has been a lot of fun this week. Lots of laughs and giggles and fun play times. Also lots of helping us cook—he loves putting things from one bowl into another and dumping things you’ve measured into the proper bowl. We ordered a Learning Tower for him which should arrive next week and make cooking together even easier.

    Sometimes he does sweet stuff like climb up in his chair with a snack and a book, which melts our hearts.

    Lest it sound like things are all fun and sunshine, you should know that between the bouts of fun giggly playtimes, Charlie also has big toddler emotions, melts down, and throws things when he is upset. I know it is developmentally appropriate and he is learning how to process and deal with his emotions, but it is still quite grating. We are mostly choosing to focus on the good times rather than the bad times, but I don’t want to misrepresent. Toddlers are still toddlers.


    Saturday was a beautiful 50F degree day (unheard of in January!), so Jon and I decided to go for a row in our guideboats on the Croton River.

    We went out at high tide and rowed roughly three miles round trip. The water was quite swift and we had some difficulty navigating a few bends in the river where the current picked up. Nice workout!

    Jon got me thinking about better ways of transporting my guideboat. So far I’ve really only been taking it a mile down the road to the Hudson, and I’ve had it rightside up in a cradle on top of my Subaru Forester. Going to Croton is a 15 minute drive down the highway, and I didn’t like how much it moved on the highway, even at a slow 50MPH. It really needs to be upside down for longer distances, but the boat is slightly wider than my roof racks. Getting it on and off of the car upside down is also a bit trickier than sliding it rightside up into the cradle.

    We did some brainstorming and found a possible solution: Reese makes a canoe loader that attaches to your car’s trailer hitch. It looks like a T and swivels, so you put one end of your boat on the loader, then pick up the other end and swing it around 180 degrees to put the other end on your car. I think this might solve the problem of the boat being wider than my roof rack because if the boat is sitting partially back off of the vehicle onto the T, the front of the boat should rest on my crossbars and take the weight. I need to go out and measure the boat and my vehicle to make sure, but this looks promising.


    A few house-related things I’m excited about:

    • I bought some nice wall-mounted bookshelves for my office. Solid oak with adjustable feet. They’ll span the entire wall behind me (if you’ve ever been on a call with me, it is the wall with the chalk board). I’m moving the chalk board to the other wall and moving the shelf that is over there to the basement when the new shelves come in. These shelves will solve some of our current lack of bookshelf space and I think they’ll look really nice on video.
      • I wanted to build them myself, but it would take me a couple full weekends to do it and that is time I’d rather spend with Charlie. Once I factored in the cost of wood right now, the hardware, and my time preference of wanting these up now rather than sometime late summer, we thought it best to buy them.
    • We contacted an architect to help us figure out how to remodel the attic, where to put the stairs, and generally what is feasible with the space. Feels good to get that process started.
    • I hung some windchimes (Corinthian Bells from Wind River) that my parents got us for Christmas. I can hear them from my office, the dining room, and the kitchen. Such a soothing sound.

    I got around to making decent archive pages for the Likes and Notes (I changed the slug to microblog) post types and got them in the menu finally. Also made some home page and global nav updates. Feels good.

    I fixed a PHP error that I think was preventing webmentions from being sent. So if you got a bunch of webmentions from me last night around 11pm Eastern, I’m sorry.

    I’ve also fine-tuned some of the Syndication Links and Share on Mastodon functionality with some of their hooks. Now I need to take those and move them into a mu-plugin instead of keeping them in functions.php – I’d never put things like that in a default theme (I’m using twentytwentytwo) at work, but sometimes the cobbler’s website has the worst metaphorical shoes 😬

    One thing that I’m still struggling with is auto syndicating my microblog posts to Twitter. Syndication Links wasn’t working for me for a while (most of the time it wouldn’t share the post, and when it did, it shared the link despite the setting to not share links) until I finally uninstalled it and re-installed it. Now it shares posts to Twitter without links but doesn’t share images 🤷‍♂️

    So I’m on the hunt for another solution. I know of a solution in the works from a pretty popular plugin that I’d like to try, but it isn’t quite ready yet and I want something now. Since I really like Jan Boddez’s Share on Mastodon, I might try his Share on Twitter, which is no longer being updated, but might work until the other solution I mentioned is ready.

    Last week I published a post about my workflow for posting Likes to my website:

    https://cagrimmett.com/development/2023/01/22/my-indie-likes-workflow/

    There is finally a birria truck in Peekskill! Paradise Taqueria Birrieria, parked on Brown St. Saturdays and Sundays. The standard quesabirria + consume is delicious, as are their salsas. Amanda likes the green salsa and I like the smokey red salsa.


    We are off to have a family afternoon in Beacon, NY. We’ll probably get some coffee at Big Mouth, hit up a big playground or walk down at Long Dock Park, and have burgers at Meyer’s Olde Dutch. 👋

  • My Indie Likes Workflow


    As part of trying to implement a website-first POSSE workflow, I wanted to start with posting Likes to my website and sending out webmentions from them. That is a lot of what I used to tweet out. Why should a record of what I like be stored elsewhere?

    It took me a little while to figure out what I wanted this system to look like, but once I landed on it and verified it could work with a couple quick tests, I got to work building it out and it has been running smoothly for a couple of weeks.

    Inputs and Outputs

    Where do I read content the most and how can I get links from there into my website? This was my research question before Christmas.

    When I’m at my computer, posting likes is fairly painless, though it is a multistep process:

    1. Go to my website
    2. Log in
    3. Click to add a new like
    4. Paste in the URL
    5. Add commentary
    6. Click publish

    There is more friction on mobile, which is where I tend to read a lot of content.

    Jan Boddez pointed out that using Micropub reduces that friction. Unfortunately I couldn’t find clients that reliably worked for me on iOS.

    So, that put me back in the realm of looking for solutions. I did what I do on most projects: Look where the inputs are coming from.

    • I spend most of my time reading articles on mobile.
    • 50% of what I want to post as Likes comes from content already in my RSS feed reader.
    • The rest come from a mix of social, email, general browsing (things like news.ycombinator.com, pinboard.in/popular), and Slack groups.

    Whatever I choose has to incorporate all of these channels and has to work from all of my devices (macOS, iOS, and iPadOS).

    I decided to handle likes coming from the various sources in two ways:

    1. A solution specifically for my RSS reader
    2. A solution for everything else

    From the RSS Reader

    My RSS reader of choice is NetNewsWire (I used it before the Black Pixel era too), and I use Feedbin as my feed syncing service (and the email -> RSS functionality).

    Feedbin and NetNewsWire supports stars, so I decided that anything I star in Feedbin should be posted as a Like on my site.

    Feedbin has an API that makes starred entries available in two ways:

    • As a filter option on the Entries endpoint
    • As its own endpoint that returns a list of IDs, which then need a follow-up API call to fetch the contents

    I thought about a couple ways of fetching those starred items and turning them into posts. What I landed on is a simple plugin that polls the API once an hour, posts new items as Likes, then saves the IDs of the posts it processed so they won’t be processed again.

    This was the first proper WordPress plugin I’ve build and I learned a lot in the process:

    • The proper way to set up and tear down dependencies on install and uninstall hooks.
    • Working with WP Cron.
    • Setting up plugin settings pages and saving options.

    The Likes are posted using Jan Boddez’s IndieBlocks plugin context block, which also handles sending out webmentions.

    Here is the plugin, free to use or remix:

    GitHub – cagrimmett/feedbin-stars-to-indie-likes: Takes starred posts from Feedbin and turns them into Indie Likes on a WordPress site
    Takes starred posts from Feedbin and turns them into Indie Likes on a WordPress site – GitHub – cagrimmett/feedbin-stars-to-indie-likes: Takes starred posts from Feedbin and turns them into Indie Likes on a WordPress site
    github.com

    If I were to remake this from scratch, I’d probably save the post permalinks instead of the post IDs to the database to check. That seems slightly more hardened, and also ensures I’m not posting duplicate Likes if a Feedbin ID ever changes.

    An improvement I’d like to make: Add a filter to load the plugin updates from GitHub instead of WP.org with the new Update URI header.

    Everything Else

    For everything else I decided to piggyback off of a bookmarking solution I use. Bookmarking is pretty fast and shared across all of my devices, so I set up a specific folder called Likes and any time something gets added to that folder it gets turned into a Like.

    I currently use Larder.io for my bookmarking, which supports making folder contents accessible via RSS. This is perfect for my use case: No authentication, just fetch a feed and parse it. WordPress was born for this.

    Side note: I change bookmarking apps as often as I change email apps. I’ve used Pocket, Instapaper, Raindrop, Evernote web clips, Notion, browser built-in options, etc. I know one day I’m going to migrate everything to Pinboard and then it will live there for the rest of my days. For now, I’m still using Larder.

    I made another plugin very similar to the Feedbin one above, except that it fetches and parses an RSS feed with WordPress’s built in fetch_feed function. Like the other plugin, it fetches new posts once an hour and posts new Likes, then saves the permalinks of the posts it processed to the database so it skips those next time.

    Since bookmarks can have a description, it optionally outputs a paragraph block after the Like with the description I created. Again it uses Jan Boddez’s IndieBlocks plugin context block.

    GitHub – cagrimmett/rss-to-indie-likes: WordPress plugin that takes posts from an RSS feed and turns them into Indie Likes on your site.
    WordPress plugin that takes posts from an RSS feed and turns them into Indie Likes on your site. – GitHub – cagrimmett/rss-to-indie-likes: WordPress plugin that takes posts from an RSS feed and turns them into Indie Likes on your site.
    github.com

    The main thing I learned working on this version is the default feed cache when you are using fetch_feed() in WordPress is 12 hours and you can override it with a hook: wp_feed_cache_transient_lifetime

    Both have been running on my website for a couple weeks now without a hitch. I’ve yet to link Likes and Notes in the nav or on the homepage because I want to redesign how they are output, but I linked them here if you are interested.

  • Week of January 16, 2023


    Remember how last week we thought Charlie had RSV? It turns out we were wrong and he had the flu. I know because I got it on Sunday and had to see a doctor on Thursday due to dehydration. It hit me like a truck on Sunday and I spent 90% of my time Sun-Thurs in bed. I vomited from Mon-Weds and kept barely anything down. Stabbing headaches the entire time.

    I had to call in a friend to watch Charlie Tuesday night and ask Amanda to come home from a work trip early because just getting him dressed and taking him to daycare took all the energy I had. It took a lot to make those asks and disrupt their plans. This was a rough week.

    As of Saturday morning I’m slowly getting back on my feet and contributing around the house again. Made breakfast, started cleaning the upstairs, stripped the beds.

    We were planning on getting flu shots this year, but never rescheduled when we canceled because Charlie was sick. That is a mistake we won’t make next year.


    I did nothing besides lay in bed for the first three days, and I only started watching Netflix and listening to audiobooks on the fourth and fifth days.

    I finished season 4 of Ozark (the final season, so I finished the series) and I finished the last couple episodes I had left of Andor. Ozark was dark, gritty, and terrific. Not something you want to watch while in a sensitive state of mind. While Jason Bateman, Laura Linney, and Julia Garner have been in lots of other stuff, I think they’ll be permanently tied to their Ozark roles in my head. The final episode wrapped things up in ways I didn’t expect.

    Andor was okay. I don’t think I really get the twist at the end of the last episode. I’m getting tired of all the Star Wars spin offs and have a hard time keeping them in chronological order in my head relative to the original trilogy.

    On Friday I picked up Blake Crouch’s Recursion again and finished Part I. Really good so far.


    It is such a shame that Tweetbot and Twitterific lost API access to Twitter and that Twitter is being silent about it. What bullshit. That open access to build upon is one of the things that helped make Twitter great.

    Tweetbot was my third party Twitter app of choice, so I’m glad to see them working on a Mastodon client.


    The WordPress Org’s marketing team shared some of my photos this week:

    Dolphins in the Bronx River again! Starlight Park is a good ways from the mouth of the river, almost to the Bronx Zoo.


    I posted meal plans for the last two weeks that have been completely tossed aside, so I’ll go back and revisit those this week. I also have to do the same with my work plans and personal plans for our family and for this website.

    That’s all I’ve got. Here’s hoping for a normal, sickness-free week at the Grimmett house this coming week.

  • Week of January 9, 2023


    Whew, what a week. Charlie was pretty sick all week and stayed home from daycare. We think it was a combination of something resembling the flu and RSV from the symptoms, plus some teething thrown in there for good measure. He was miserable.

    For the first three days there was a lot of vomiting and fevers. We had to wash every towel and blanket in our house, most pillows, and some rugs. We each changed our outfits multiple times a day and took multiple showers. His nose was also a constant faucet, so anything that didn’t have puke on it had snot. Then came the constipation and coughing, and shortly after that the teething pain. He was lethargic most of the week. Days 4 and 5 were the worst. Thankfully his breathing remained good and we were able to keep fluids in him long enough for him to make diapers, so no need for urgent care.

    He wanted to be held 24/7 (and cried when we had to set him down), so Amanda and I switched off who help him and who slept or worked. It was like we reverted to the newborn days again. To top it off, Amanda and I both got sick too, but thankully not as sick as Charlie. Coughs, sore throats, and fatigue were the extent of it for us. COVID tests came back negative, so we don’t know what it was. It was certainly the most challenging parenting week we’ve had since he was a newborn. I am very thankful to have Amanda as my partner and that we are usually on the same page for how to handle tough situations like this and share the burden. I’m also thankful we have flexible jobs and work from home.

    Poor kid. We felt so bad for him.

    As of writing this on Saturday night, he is on the upswing. Eating more, less coughing, interested in playing again, and he slept in his own bed for a little bit.


    The night before Charlie got sick, we made fondue at home for dinner. It was a hit, but a consequence I hadn’t considered is that Charlie may refuse to eat anything for the foreseeable future if he can’t poke it with a fondue fork first 🫕 🤷‍♂️


    Charlie has been signing with us more to communicate what he wants, and it has been really gratifying to watch his face light up when we understand what he is signing and he gets his desired outcome.


    I helped a friend move on Saturday morning. I was pleasantly surprised that despite carrying heavy furniture down the stairs of a three floor walk up and the aforementioned tribulations of the week, I didn’t get fatigued or even out of breath.

    I’m reminded that it is nice to have a circle of friends who help each other.

    They were giving away an old soda siphon that doesn’t work, so I grabbed it on a whim. After some trial and error I finally got it apart to figure out what is wrong with it (the rubber gaskets are cracked and hard as rocks). So guess who is researching replacement parts for antique soda siphons?


    I’ve been testing out posting short-form content on this site first, then syndicating it out to Mastodon and Twitter. That stuff lives over at https://cagrimmett.com/notes for the time being. I’ll probably change the slug to micro or something. Or maybe I’ll rename my digital garden (current called notes.cagrimmet.com) instead, I haven’t decided.

    I have more work to do there because Twitter syndication isn’t working as well as I’d hoped and I don’t love how my theme is outputting the content, so I haven’t linked it in the navigation yet. I had hoped to work on it more this week, but, well, you know.

    Since Twitter APIs for third parties aren’t working for unknown reasons, I probably wouldn’t have made much progress on this front anyway.

    I’ve also been sending out web mentions for Likes that I post here at https://cagrimmett.com/likes/ (also not linked in the nav yet).


    I’m getting really into tiki recently. Moreso the drinks and less the faux-Polynesian pop-culture, though there is some of it that isn’t problematic. I’ve been searching out various styles of rums locally (see both Smuggler’s Cove categories and Minimalist Tiki categories), tracking down recipes, and mixing up fun concoctions at home.

    We also got a standalone pellet ice maker, which is a game changer. We’d definitely use it for more than cocktails, too. I’m envisioning lots of iced tea and coffee this summer.


    Who thought we’d be talking about gas stoves on social media this week?

    My take on gas stoves: I prefer them, but the emissions do give me pause with a baby in the house, so I have CO detectors on all floors and replaced my recirculating fan with an actual exhaust fan (which entailed cutting a hole in the side of my house to install a vent).

    One thing a lot of people miss is that you can still cook on gas when the power is out, which is becoming a more frequent occurrence recently. When the power was out for a week, it was really nice to be able to cook meals and heat water.

    I currently have no plans to replace my gas stove. If/when it is no longer working and more expensive to fix than replace, I’ll revisit the current evidence and reconsider.


    I’ve had a lot of time for reading books or listening to audiobooks this week, so I’ve been reading Blake Crouch’s Recursion and listening to more of book 5 of Neal Stephenson’s Baroque Cycle.

    For TV/movies, we watched a lot of Songs for Littles, various remakes of 101 Dalmatians, the 1992 animated Aladdin, and Animal Planet this week with the sick boy. Even when he is sick and lethargic, he loves animals. Zebras, giraffes, and dogs never fail to get his attention.


    At work I’ve been thinking a lot about payment platforms and migrating billing tokens for subscriptions with zero downtime and zero customer disruption (purchases and renewals still happening during the migration period). I also did some FTP dumpster diving on a site we recently started working with to resurrect some code that had gone missing, which was a success. Another week in the life of the Special Projects Team.


    Last week’s meal plan didn’t work out as expected. See above. I did make a couple of the meals (chicken soup, gyudon), but we ate a lot of leftovers and purchased meals from the freezer, so carrying over some of the plan from last week to this week. Some TBD here because Amanda will be traveling and what I cook will be somewhat dependent on how my work day goes and how Charlie is.

    • Sunday: Gnocci + sauce + arugula side salad with vinaigrette
    • Monday: Pork tenderloin with green beans and roasted potatoes
    • Tuesday: Chicken and pasta (garlic linguine?), side of roasted zucchini
    • Wednesday: TBD
    • Thursday: TBD
    • Friday: Dinner with friends, menu TBD
    • Saturday: Sheet pan dinner of some kind. Probably chicken thighs + some kind of vegetable. Side of cous cous?
    • Sunday: White bean soup with coconut milk?

    See you again next week. In the meantime, post some cool stuff on your own feed and send me the link. Also reach out to me if you are into tiki and want to chat, or if you have knowledge about antique soda siphons. 👋

  • Week of Jan 2, 2023


    New year! 2023! The prime factors of 2023 are 7 and 17.


    Charlie walking more has opened up additional entertainment possibilities. One of my favorite activities is walking by the Peekskill waterfront, and now he enjoys it, too! We walked a lot before he could walk, too, but carrying him the whole way got tiring and he didn’t love being in the stroller for long periods. Now he can run around on the playground for a bit and walk a good distance before he needs picked up.

    I’ve been reflecting a lot on the last year and it is incredible to me the amount of growth that happens for a baby between 6 months and 18 months. This time last year he couldn’t crawl. Now he is running, climbing stairs, communicating, and very curious about the world. Amazing.

    We had breakfast with some friends and their family this morning, which was really nice. It is fun seeing non-family love and interact with Charlie, too. It is also nice to see Charlie with older kids and learn how caring and gentle the older kids can be, even if they themselves don’t have younger siblings.


    Some house projects I want to do this year:

    • Replace the shutters
    • Replace the fence
    • Paint the shed and add gutters
    • Enlarge the back porch (May not happen this year, but I’d like to at least have a plan to move forward on)

    I subscribed to some popular advice/tips newsletters for a while, then I followed some of the authors on Twitter and realized that they are not people I want to take advice from, so I promptly unsubscribed.


    We watched Glass Onion on Friday night. It was enjoyable, but I liked the first Knives Out more. We also finished season 5 of Billions this week, and I think they did Wendy Rhodes wrong at the end of the season by writing her as powerless and subservient, which is completely out of character for her.


    I’m trying to sort out my POSSE stack for this site, but don’t quite have it figured out yet. Mastodon works well, but the Twitter connection via Bridgy publishing is unreliable, so I need to find something new there.

    I’d love to learn about other people’s setups!

    Also, I’m getting itchy to do a redesign… I suspect that I’ll make some progress in the next couple weeks.


    I wonder how I could insert archive.org links after external links in old posts in an automated way? 🤔


    I’m enjoying the @smllwrlds tiny sci-fi illustrations project. Some are dark, but still cool.


    One of the many things that have changed since having Charlie is that we now need to meal plan more in order to speed up the dinner-making process at the end of the day. Here is this week’s plan:

    • Monday: Gyudon with cauliflower rice + stir fried veggies
    • Tuesday: Chicken noodle soup
    • Wednesday: Pork tenderloin with broccolini and roasted potatoes
    • Thursday: Gnocci + sauce + arugula side salad with vinaigrette
    • Friday: Dinner with friends, menu TBD
    • Saturday: White bean soup with coconut milk?
    • Sunday: Sheet pan dinner of some kind. Probably chicken thighs + some kind of vegetable. Side of cous cous?

    Now that my team has grown at work from ~10 to ~40, it is time for me to rethink how I handle Slack channels, P2s, notifications, emails, task lists, check-in reminders, etc. I implemented about half my ideas last week and hope to implement the other half this week. Then I’ll see how they work for a few weeks.


    Update on clarifying used cooking oil fuel ideas from last week’s post: I talked to someone who used to work in a restaurant and they had a filter powder they’d pour into the oil before filtering that would clump the fatty acids and other solubles together so that they’d get caught by a filter. This kind of stuff.


    I upgraded my iPhone X to a 14 Pro. The battery life is much better, the on/off button is in a better location, and the new widget areas are nice (I have a shortcut to set an alarm from my lock screen now). The main thing I miss from the iPhone X, besides it being slightly smaller than the 14 Pro, is the 3D touch, especially from the keyboard to move the cursor. My friend Sean mentioned that you can long tap on the space bar to move the cursor, but I miss the haptic feedback and the convenience of having the entire keyboard has a trackpad.


    See ya next week! 👋

  • Learning Card Games: Pitch


    This year we started what I hope will become a new tradition for the week after Christmas: Learning a card game.

    My parents and I both have copies of Hoyle Up-to-Date from the 1970s, a collection of official rules of card games (ever heard the expression “according to Hoyle”?), so why not get some use out of it?

    Here is a version pretty similar to the books we have available from the Internet Archive: https://archive.org/details/hoyleuptodate0000unse_n6q2/mode/2up

    This year we chose Pitch.

    Why Pitch? I read English Creek by Ivan Doig this year, and the ranch hands played a game I hadn’t heard of:

    “What are you going to play?”

    “Pitch,” stipulated Plain Mike. “What else is there?”

    That drew me. Pitch is the most perfect of card games. It excels poker in that there can be more than one winner during each hand, and cribbage in that it doesn’t take an eternity to play, and rummy and hearts in that judgement is more important than the cards you are dealt, and stuff like canasta and pinochle can’t even be mentioned in the same breath with pitch.

    English Creek, page 260

    There are a couple conflicting rules between Hoyle, Bicycle, and some YouTube videos, primarily around the bidding. But they are close enough that we figured it out quickly.

    Here are the Hoyle rules:

    This video helped us see how a hand is played:

    This was also helpful from Hoyle regarding the strategy:

    The dealer, bidding last, has a great advantage and should press it by taking risks to win the bid. The first two hands to the left of the dealer should be conservative.

    A holding of three trumps is worth a bid of one, for it will usually capture the game point, if nothing else. The jack once guarded is worth a bid of one, and the two spot even once guarded has a good chance of being saved. It is reasonable to bid in the hope that a king in hand will prove to be high, or a threespot low. Side aces and tens strengthen the hand but cannot be relied upon to capture the game point.

    It took a couple hands to start understanding some of the betting strategy, but then we were able to play a couple full games pretty easily.

    Next year, we may learn Euchre or Cinch!

  • Weeks of December 19 and 26


    We spent Christmas in Ohio. We left a day early to avoid the major snowstorm and single digit temps, but the weather during the drive was still pretty rough. It snowed for the first four hours, then rained for the second four hours. With very little traction, we narrowly avoided hitting a car that had spun out on the ice and the police car that was trying to stop and help it. There was no snow on the way back, but there was rain and thick fog for the final two hours after dark, which made visibility very low. What crazy weather… 1F for a couple days, then 60F a couple days later. My sinuses were going crazy.

    Charlie is a completely different baby from this time last year. He is running around, learning to say words, understands a lot more, and is a lot of fun. It was great to see him interact with more people, including some of his young cousins.

    One big thing this week is that Charlie is learning to walk down stairs while holding someone’s hand. He is trying so hard and making a lot of progress. A big step for him!

    Charlie played in the snow for the first time!

    This year’s Christmas ornament. (My Dad has been making them since 2006.) This year he did something new and laser etched a sign similar to the one we saw in Lake Placid earlier this year, onto real birch bark!

    We started what might become a new tradition: Learning a new card game the week after Christmas. We chose Pitch. Blog post coming soon.

    We made red beans a rice with domingo rojo beans (Rancho Gordo), andouille, and some of my tasso ham. It was easier to make than gumbo, so I think I’ll make it for Mardi Gras this year instead of gumbo.

    On the way back to NY, we stopped overnight with some friends in Pittsburgh who had a baby this year. It was great to connect with them on a different level now that we are all parents. Charlie had a great time meeting their cats, trying to pet their dog, feeding and chasing their chickens, and playing at the playground.

    This trip’s audiobooks were both by Mark Kurlansky: Salt and The Big Oyster.


    My Dad is interested in making biodiesel from used vegetable oil to heat his barn with. So we went down the rabbit hole tonight of trying to figure out which combo of alcohol and catalyst is the cheapest and highest yield. Options are methanol, ethanol, or isopropyl for alcohol, sodium hydroxide (lye) or potassium hydroxide for the catalyst. Looks like he’ll need to set up some small-scale (quart-sized) tests of each combo in various proportions once the weather warms up.

    A friend mentioned that biodiesel might be overkill for heating, and that if the goal is to clean up the the used veg oil to make it burn better, treating it with bentonite clay might work.


    I spent some time after Charlie went to bed each night working on a WordPress plugin that fetches posts I’ve starred from my RSS reader and outputs them as Likes on my site. I’ll publish the code later this week.

    Since posting Likes is kind of a pain on mobile, I want to do the something similar for posts I’ve come across online outside of my RSS reader and think that I’ll do bookmark app -> cron job -> Like post. Most of that is already written for the other plugin and I just need to adapt the source.


    While in Ohio my Twitter feed was completely swamped by sports betting ads, which was sad. Especially so because I have family there with gambling problems. It is also interesting to me that sports betting online is legal in New York, but I don’t recall ever having gotten ads for it on Twitter. Billboards yes, Twitter no. What was so stark in Ohio was the huge number of ads I was bombarded with immediately.


    I’ve been enjoying reading everyone’s year-end blog posts and I wrote a couple of them myself. I’m adding a lot to my To Read list from people’s reading roundups.


    New Year’s Eve was low-key. We were completely worn out from the car ride (we got home around 7pm), put Charlie to bed, then watched two episodes of The Crown and went to bed around 10:45pm.

    Charlie got up at 5pm, so we went grocery shopping around 9am and had a sweet moment by the bagel shop as we shared a breakfast sandwich outside on a bench and he waved at the dogs out for their walks.


    Some neat things I came across the past two weeks:

    A reminder to back up your cloud content because it could go away at any time.

    Also, ditch LastPass if you haven’t already.

  • 100 things that made my year (2022)


    I wrote one of these in 2017 and enjoyed the process (and outcome!), so when I saw Austin Kleon’s this year, I decided to write one again. Maybe I’ll make it a yearly thing.

    1. Sean and Jacqueline’s wedding in Chicago in early January. We spent a week there before the wedding, which was our first time staying somewhere that wasn’t with family after we had Charlie, who was 5 months at the time. Catching up with lots of friends in person for the first time post-pandemic was cathartic.
    2. Participating in Genuary 2022. I learned some of the basic techniques of creating generative art.
    3. Charlie’s growth. From 5 months to 17 months is a magical time for babies. They go from not being able to crawl or eat solid foods to being able to run, feed themselves almost anything, and start saying words. It has been incredible watching him grow and helping him learn.
    4. Parental leave. Spending four months being the primary caretaker during the day for Charlie was a great learning experience and I really bonded with Charlie. He is my little buddy!
    5. Walks with Charlie. We took lots of walks in the woods, parks, and along the river. Trying to foster a love of being outside for him.
    6. Solo parenting. Amanda travels for work, so I’ve done many multi-night solo stretches with Charlie starting as early as six months. They are tiring, but it is great knowing that I can do it.
    7. Woodworking. Before I started looking through my photos to write this, I thought I hadn’t made anything in the shop this year, but it turns out that isn’t true. I made a dry vase, two ring holders, and some peg people for Charlie.
    8. Culinary experimentation. Tasso ham, pastrami, gumbo, red beans and rice, enfrijoladas, King Cake, cinnamon bread, chipotles, char siu, english muffins, biscuits, blueberry pie, sous vide egg bites, tomatillo salsa, chicken in the pizza oven, Salsa de Chile Morita, galettes, Maid Rites
    9. All the baby naps. He took naps on my daily during my parental leave, and now on weekends, days off, and when he is sick now that I’m back to work.
    10. Bedtime baby snuggles. We opted not to sleep train Charlie, which has been a good decision for us. Instead we rock him to sleep every night.
    11. Experiments with booze: Making orange bitters, orgeat, allspice dram, pineapple rum, coquito, the Clyde Common eggnog, batching cocktails like the Sneaky Peat and Black Christmas.
    12. Setting up a Digital Garden with WordPress and beginning to tend it.
    13. Witnessing Amanda as a mother. She is tender, loving, caring, and considered. She is a great mother to Charlie.
    14. Watching Amanda start a new job and grow into new roles and create her own opportunities.
    15. Attending a Jewish funeral and helping my friend fill in his father’s grave with shovels, in our suits.
    16. Swim lessons with Charlie. He loves splashing and learning to kick kick kick!
    17. DIA:Beacon with Charlie, especially hearing his young voice echo in the large Serra sculptures.
    18. Going to the NY State Bridge Authority to get a Historic Bridges of the Hudson Valley poster and some cool stickers.
    19. Backyard picnics. Amanda, Charlie, and I spent a lot of time outside on picnic blankets with snacks while Charlie was learning to crawl and walk.
    20. Making pizza on the porch. We got an Ooni, which was a great purchase. Making pizza at home is a fun activity, and a great thing to do when guests come over, too.
    21. Publishing a generative art project on fx(hash) – Pattern Plus Plus.
    22. Catching up with Chef Eric, an old friend from Irvington, who now lives in Croton, and works in the crypto space.
    23. Going to Amish Country and seeing the Amish ride electric bicycles. Then emailing Kevin Kelly about it and having him respond! KK has written about Amish Hackers, so I thought he would be interested.
    24. Helping Grandma make the Easter Cheese (mostly eggs and milk) this year, and eating some.
    25. Bill Strohm and Judy Alexander meeting Charlie. In many ways they were great mentors to me in high school and I kept in touch through college and afterward.
    26. Taking Amanda out in the guideboat. I finished it in 2021 about two weeks before Charlie was born, and Amanda was way too pregnant by then to go out.
    27. Finding morels in our backyard!
    28. Finding a great daycare for Charlie. He loves going and interacting with his friends, and he is learning new things there every week. We feel good with him being there while we work.
    29. Helping Jon with his timber framing project. It was a great learning experience.
    30. Our garden! Tomatoes, tomatillos, peas, kale, radishes, jalapenos, hungarian black peppers, okra, potatoes, dill, thyme, chives, sage, oregano, mint, nasturtium, calendula, borage, chamomile.
    31. Planting the seeds for the garden with Charlie, watering and checking on the plants with him, Charlie grabbing tomatoes right off the vine and eating them, Charlie helping us sort tomatoes at the end of the season.
    32. Experimenting with a new way to water the tomatoes: Wick irrigation.
    33. Going to see the Sol LeWitt prints gallery at Williams College
    34. Eating at the West Taghkanic Diner.
    35. The Baci Baby! To this day, Charlie is known as the Baci Baby at Pizzeria Baci, and some of the only non-pizza photos on their feed are of Charlie.
    36. Getting into making tiki drinks at home.
    37. Streets blocked off in downtown Peekskill on Fridays and Saturday evenings in the summer for restaurants and music.
    38. Charlie’s first birthday. It was small, but we were were with the people who helped us navigate the first year of Charlie’s life. It was special.
    39. Building Charlie a swingset, publishing the plans, then later building one for Miles (our friends’ son, close in age to Charlie)
    40. Pushing Charlie on that swingset multiple times a week as long as the weather was nice.
    41. Building more of a community – Meg and Jeremy, Erica and Trevor, Helen and Kolson, play dates with daycare parents
    42. Starting my weekly blogging habit and sticking with it.
    43. Crashing another team’s meetup in NYC to hang out with them.
    44. Prince Street Pizza. Spicy Pepperoni slice. A delicacy.
    45. Reading. I finished 26 books this year (less than previous years), and I started many more. Some standouts: Eager, The Amish, English Creek, Trust.
    46. Attending a team meetup in San Francisco for work.
    47. Visiting with old friends William and Jenna in Walnut Creek, CA. Meeting their youngest, Harrison, for the first time.
    48. Tiki drinks at Smuggler’s Cove, Pagan Idol, and Tonga Room.
    49. Visiting Alcatraz. The flies were awful.
    50. Visiting Muir Woods.
    51. Taking a new role as a lead of an engineering team at Automattic.
    52. Engaging more with the indie web by sending webmentions and using microformats.
    53. Attending a division meetup with 200 other Automatticians in Denver. Meeting most of Team51 for the first time.
    54. Seeing first-hand how a large company like Automattic responds to major security incidents.
    55. Ice cream at the Blue Pig.
    56. Dinner and walks in Cold Spring.
    57. Anniversary dinner with Amanda at The Bird & Bottle in Garrison.
    58. BLTs with garden tomatoes.
    59. Charlie learning to walk.
    60. Reading books to Charlie.
    61. Jon and Kristin’s wedding reception.
    62. Ice cream, swings, merry-go-round, and farm brewery day in Goshen.
    63. Restaurants with Charlie
    64. Volunteering to be the photographer for Charlie’s daycare Fall Festival
    65. Charlie learning animal noises. Cows, horses, chickens, turkeys, lions, dogs.
    66. Rossi & Sons in Poughkeepsie. Incredible sandwiches.
    67. Going to the Adirondacks for the first time and staying in the Whiteface Lodge in Lake Placid with my parents. Going in the hottub and heated pool in 30F weather was fun, as was seeing an old Adirondack guideboat. High Falls Gorge, milkweed and moody winter skies. Adirondack Mountain Club, maple stand, birch bark.
    68. Charlie’s bathtimes. He loves playing in the bath and is so happy!
    69. Charlie wanting to help us and be involved with whatever we are working on. He is so sweet and even though it takes longer, he is a good helper. It is about fostering that spirit, not maximizing efficiency.
    70. Saturday Morning Donuts, a semi-irregular toddler playdate.
    71. Charlie’s Mario halloween costume. Miles as Luigi, Belle as Princess Peach.
    72. Decorating and having friends over for Amanda’s birthday.
    73. Picking out a Christmas tree and Charlie helping us decorate it.
    74. Taking Charlie to the zoo. Bronx Zoo first, then Cleveland Metroparks Zoo.
    75. Charlie’s Cheers! Now an essential part of having any beverage.
    76. Seeing my art behind Matt at the State of the Word this year.
    77. Tumblr Important Internet checkmarks.
    78. Twexit. More people moving back to blogging and Mastodon.
    79. Bucking tradition and doing Thanksgiving ham.
    80. Charlie’s first Ikea trip.
    81. Learning things quickly with ChatGPT. Asking questions is a great way to learn!
    82. Finding the Sippin Santa tiki drink recipes.
    83. Playing in the snow with Charlie.
    84. Charlie playing with his cousin Nora (3 weeks older than him) at Christmas.
    85. Learning to play Pitch.
    86. Programming more and getting good feedback: Building CLI commands, custom blocks, and plugins that fetch content and turn them into posts.
    87. Going to the farmers market on Saturday mornings
    88. Verplanck Italian fest sausage. Great sausage and peppers sandwiches on what is almost always the hottest week of the year. But a fun local thing nonetheless.
    89. Breakfast and lunch dates with Amanda, something we’ve prioritized for some “us” time since having Charlie.
    90. The Hudson Valley’s sunsets.
    91. Charlie’s giggles, especially when we can see his 6 teeth.
    92. Charlie coming to my door to say Hi while I’m on calls. I usually only close my door when I’m on calls, but since it has panes of glass, he comes up and smiles at me and I melt every time.
    93. Indie games like Wordle, Worldle, and more. Fun diversions.
    94. At work I spearheaded a project where I figured out how to transition to a new method of connecting to our sites via SSH and implemented it. I learned a ton in the process!
    95. Visiting Erin and Tyler in Sewickley, PA, and meeting their son. Charlie had a great time meeting their dog, cats, and chickens, as well as running around their yard and putting mud in his hair.
    96. Sharing struggles more openly with friends and having them reciprocate and open up as well.
    97. Connecting with long-time friends on a different level now that we have children.
    98. Some shows we enjoyed: The new season of Westworld, House of Dragons, new season of Ozark, Billions, Wheel of Time. And of course Goncharov, Scorsese’s 1973 mafia film.
    99. Listening to some new music: Michael Kiwanuka, Slim Gaillard, Caspar Babypants.
    100. Nice, friendly, helpful neighbors. We are grateful to live in our neighborhood.
  • 40 Questions for 2022


    These questions come from Stephan Ango’s 40 questions to ask yourself every year. Answering them was a good exercise, though I think I might modify the list for next year and make it my own.

    1. What did you do this year that you’d never done before?
      • Went on parental leave for four months and was Charlie’s primary caretaker during the day. I’ve never been off work for that long, and I’d never been the primary caretaker for a baby!
    2. Did you keep your new year’s resolutions?
      • This is the first year in a while that I didn’t make resolutions. But a couple weeks later I started blogging weekly, which I kept up the rest of the year.
    3. Did anyone close to you give birth?
      • Some did! Sara and Josh, Eric and Whitney, Mark and Jill, Erin and Tyler, Lindsay and Casey.
    4. Did anyone close to you die?
    5. What cities/states/countries did you visit?
      • San Francisco, CA
      • Amherst, OH
      • Chicago, IL
      • Lake Placid, NY
      • Denver, CO
    6. What would you like to have next year that you lacked this year?
      • More family walks, more time in the workshop, and more time rowing on the Hudson
    7. What date(s) from this year will remain etched upon your memory, and why?
      • Charlie’s Birthday party – It was a small group of people who we are close with and who helped us through the first year of his life. It was special.
      • Going to DIA:Beacon with Charlie and hearing the echos of his voice inside the giant Serra Torqued Ellipses.
      • Not specific dates, but recurring memories of pushing Charlie on the swings we built in our backyard.
    8. What was your biggest achievement of the year?
      • Connecting with Charlie during my parental leave. Spending all day every day as the primary caretaker for Charlie for four months was incredible and I cherished that time.
      • Building more of a community in Peekskill. We have more friends there this year than we have since we moved there!
      • Starting a weekly blogging habit.
    9. What was your biggest failure?
      • It isn’t a failure in the sense that I did something and failed at it, but rather my biggest shortcoming that I need to improve upon. I am aware almost every day that I need to get better at navigating my emotions and frustrations and how I express them. I also need to be more grateful for each day.
    10. What other hardships did you face?
      • Nothing awful. Mostly difficulties in the transition to becoming a father. It is a huge change and some days/weeks are much harder than others.
    11. Did you suffer illness or injury?
      • Mostly run-of-the-mill colds or upper respiratory infections. Once Charlie started daycare, he picked up various illnesses, which Amanda and I inevitably got.
    12. What was the best thing you bought?
      • Probably the Ooni Pizza Oven. We made a lot of tasty pizza and had fun hanging out on the back porch with friends making pizza.
    13. Whose behavior merited celebration?
      • Jason Kottke stopped posting on his very popular blog and took a sabbatical. It is worth celebrating people stepping away from something like that and taking a financial risk to take the time they need to recharge and reset.
    14. Whose behavior made you appalled?
      • Elon Musk’s shitty treatment of employees after taking over Twitter.
      • Sam Bankman-Fried – Paraded under the Effective Altruism banner, which seems to have been disingenuous at best and closer to a complete front, gave insane amounts of money to partisan political campaigns for personal gain, and knowingly defrauded investors and crypto users, setting the entire industry back at least 5 years.
    15. Where did most of your money go?
      • Top two expenses are our mortgage and Charlie’s daycare. That said, this year we put as much into our savings as we put into our mortgage, which we are proud of.
    16. What did you get really, really, really excited about?
    17. What song will always remind you of this year?
      • Either Wheels on the Bus or Barnyard Dance, two songs Charlie wanted to hear over and over this year.
    18. Compared to this time last year, are you: happier or sadder? Thinner or fatter? Richer or poorer?
      • Happier (more rested, out of the tough infant stage, less work stress)
      • Fatter (Gained a few pounds)
      • Richer (Savings and investments are higher and loan debts are lower than this time last year, and I feel richer because of a more robust family life now that Charlie is getting his own personality and interacting with us more.)
    19. What do you wish you’d done more of?
      • Took Charlie on more walks.
      • Made more things in the workshop.
    20. What do you wish you’d done less of?
      • Scrolling social media.
    21. How are you spending the holidays?
      • With my parents in Ohio, then hopefully visiting some friends in Pittsburgh on the way back home.
    22. Did you fall in love this year?
      • I’m happily married, and working together with Amanda to raise a child shined a light on some facets of love that aren’t talked about as often: Safety, acceptance, openness, shared purpose. Not that I didn’t feel those things before, but I felt them more acutely this year.
    23. Do you hate anyone now that you didn’t hate this time last year?
      • I don’t know about hate, but there are a couple people I dislike a lot more strongly than I did last year, and a couple people I like a lot more than I did last year. Not great to name names on a blog, though.
    24. What was your favorite show?
      • No stand-out favorite from this year, but Billions, The Wheel of Time, and House of the Dragon were all pretty good.
    25. What was the best book you read?
      • Non-fiction: Eager: The Surprising, Secret Life of Beavers and Why They Matter by Ben Goldfarb
      • Fiction: English Creek by Ivan Doig
    26. What was your greatest musical discovery of the year?
      • New: Michael Kiwanuka
      • Old: Slim Gaillard
    27. What was your favorite film?
      • Goncharov, Scorsese’s 1973 mafia film
    28. What was your favorite meal?
      • With family: There was one specific meal Amanda, Charlie, and I had in the backyard on a picnic blanket that sticks out in my mind. We had chicken shawarma over rice and we ate it on a picnic blanket under the wild cherry tree. The weather was perfect and we had a great time laughing and being present with Charlie. It was wonderful.
      • With friends: I really enjoyed having a giant meal at China Live with my coworkers in San Francisco. After a couple years of pandemic uneasiness, no work travel, and limited access to really good Chinese food, it was awesome. Christy Nyiri and I basically ordered for the whole table of 8, and it was glorious.
    29. What did you want and get?
      • Work-wise, I wanted to get back into more technical work, and we made that happen by moving me to be the lead of an engineering team. It has been a positive change.
    30. What did you want and not get?
      • I wanted to get out on the river more this year, but didn’t make it happen. I think next year I should consider timeshifting more to make it happen one morning a week.
    31. What did you do on your birthday?
      • It was low-key this year. Amanda made me a cheesecake and we probably ordered some takeout, but that was the extent of it. Charlie was still pretty young, so we weren’t yet comfortable getting a sitter. I expect that next year we’ll probably go to dinner since Charlie is more used to that now.
      • I started a yearly tradition of writing birthday posts. Here is this years: https://cagrimmett.com/thoughts/2022/02/27/thirty-two/
    32. What one thing would have made your year immeasurably more satisfying?
      • Probably more consistent sleep. That front is improving, but it made much of the early part of the year tough.
    33. How would you describe your personal fashion this year?
      • Two years of Pandemic has turned my personal fashion into more comfortable/functional. Fewer button-downs, more tshirts and sweatshirts.
    34. What kept you sane?
      • Having a toddler to care for kept me focused on the present more than ever before. It also helped me keep my work days constrained to standard business hours rather than leaking into the evening.
      • On the flip side of that, the quiet hours after Charlie went to bed helped me recover from the tough days where he was super fussy.
      • It has been a year since I started talking with a therapist, Steve, to help me counter my anxiety and stress and process my emotions in a better way. It has helped a lot.
    35. Which celebrity/public figure did you admire the most?
    36. What political issue stirred you the most?
      • I found the extreme sides of the COVID debates (“everyone should still be in lockdown” on one side and “anti-vaxxers” on the other) to both be very frustrating. There is a pretty reasonable middle ground that makes a lot of sense.
      • I also found much of the Roe v Wade overturn debate to be frustrating. So little empathy on both sides of the issue. While I can’t prove he wrote it, I’m pretty sure I personally know the clerk who wrote a lot of the leaked majority opinion from the Supreme Court case, and he is a person who I hold in low regard, so the idea of that individual writing a legal precedent of that scale really bothered me.
    37. Who did you miss?
      • I mostly missed my family this year. Living 8 hours away is difficult.
    38. Who was the best new person you met?
      • We made a lot of progress on finding a new group of friends locally this year after struggling with that for the past couple of years.
    39. What valuable life lesson did you learn this year?
      • Before having a baby, I thought I was even-keeled and had a good handle on my emotions. 3am inconsolable baby crying, lack of sleep, never getting out the door on time due to last-minute vomiting/diaper changes/messes, and baby throwing food taught me I have a long way to go.
    40. What is a quote that sums up your year?

    Frustration has to do with expectations. Replace expectations with preferences.

  • Week of December 12


    • Around Thanksgiving Charlie and I were looking at a picture book with a turkey in it and I made a turkey sound that he found hilarious. Fast forward to this week, Charlie picked up that book and we were flipping through it. When we got to the turkey page, he started making the sound himself, even though he hasn’t heard it in a couple weeks. He remembers more than I thought!
    • One of Amanda’s favorite books growing up was Cockatoos by Quentin Blake, and we have a copy that we read with Charlie. I was surprised this week that by the middle of the book where the Cockatoos are hiding, Charlie was able to pick them out on most pages.
    • Another instance of Charlie’s image recognition and memory expanding: We occasionally watch shows like Sesame Street and Bluey when one of us doesn’t feel well and we need some snuggly downtime. Occasionally animals pop up one the screen that Charlie recognizes, and when they do, he goes and gets a book and excitedly points them out.
    • Charlie started throwing big-feeling toddler fits where he flops down on the floor crying and doesn’t want to be picked up and consoled. He has also been taking longer naps and eating more than usual, so maybe he is going through a growth and/or developmental spurt?

    I had my Mastodon username in my Twitter bio before the rule changes went up. I wonder how long it will be before I get suspended? 🤷‍♂️

    Edit: The rule change link now goes to a 404. Constant rule changes are a great indication of a healthy platform.


    It was very cool to see art I made behind Matt during the 2022 State of the Word:

    I did the circular rainbow using only WP core blocks for the Museum of Block Art:


    I’m sick, which is a bummer, because this is one weekend where I would have really liked to have been well. I missed a date night with Amanda that we had been planning for a couple months and a concert (Modest Mouse’s Lonesome Crowded West 25th anniversary) with a friend that I was excited about (and I don’t usually want to go to concerts).


    My Raycast Wrapped:


    I’m thinking about redesigning my site to better incorporate my non-blog content (short posts with text, images, likes, bookmarks). Seems like a good January project instead of doing Genuary again.

  • Some AI use cases


    I had a good conversation with Russell Hunter, one of my coworkers at Automattic. He mentioned some uses of AI like ChatGPT that I hadn’t considered:

    • Using AI to “read” your writing and respond with Devil’s Advocate-type responses so you can make your argument stronger.
    • Using AI to help you with mundane things like formatting citations and footnotes.
      • I suppose you could ask AI to go find you sources for a given statement, but I have ethical concerns about doing that. That would be confirmation bias or Texas Sharpshooter fallacy on steroids.
    • Summarizing your work. I write a weekly post at work every Monday. What if I fed ChatGPT all of my meetings, meeting notes, emails, Slack threads, GitHub commits, and P2 posts, and asked it to summarize what I worked on that week?

    That got me thinking a bit more afterward as well:

    • OpenAI has Whisper, the video transcription engine. What if we feed a meeting video to Whisper, then pipe the output to ChatGPT and ask it to write meeting notes with actions items? If it works well, everyone can be present in the meeting instead of taking notes.

    In general, I think people focusing on how “dull” or “mediocre” the ChatGPT writing is misses the point. The most important use-cases for AI are to help us be happier, more productive, and more effective by teaching us where we can improve, helping us get there, and taking care of all the boring stuff we don’t like doing so we can focusing on the things that bring us joy and fulfillment.

  • Week of December 5


    Charlie in his “that” phase. He points to things constantly throughout the day asks what they are by saying “that?”. Sometimes it takes a tired daddy a few seconds to remember what a kettle is called first thing in the morning.

    We got invited to a play date with some kids who were a year to a couple years older than Charlie, but Charlie held his own and did great with them. More progress on the making parents friends front, too! We find that you’ve gotta be intentional and share your number or ask for theirs, or else it doesn’t happen.

    We went to the Bronx Zoo on Saturday. We forgot that lots of warm weather animals are not out when it is cold outside, so there was a lot we couldn’t see, including Charlie’s favorite from his books, the zebras. Next time! He did get to go inside and see some giraffes though, which he enjoyed. He loved the sea lions, too.


    We did more Christmas cards this week (Charlie signed some!) and a bit more decorating (drying grapefruit slices, getting the wreath up out front). We treat it as an ongoing holiday process and it is less stressful that way.

    Here is the Christmas tree that still needs dried grapefruits hung on it.

    We had the first real snow cover last night. We have about an inch and a half covering the ground.


    This week I learned about Maid-Rite sandwiches, an Iowa thing. Loose ground beef cooked with onions, on a bun with mustard and pickles. Think of a sloppy joe with no sauce or a chopped cheese without the cheese. Naturally I had to try them, so I made us some for dinner one night. They were pretty good!


    Twitter’s infinite scroll behavior has been pretty broken for me all week. No more than 14 tweets will load in the feed on the web interface. Good impetus to shut the tab and get back to work.

    Unfortunately, some of the shitty hot-take viral factory accounts that I thought were mostly sticking to Twitter came through on my Mastodon feed as boosts recently. I unfollowed the person who boosted that nonsense, and it looks like I need to migrate my block list from Twitter.


    I’ve been brushing up on my PHP at work, making some CLI commands with the Symfony Console component.

    Getting phpcs and phpcbf set up with the WordPress-Extra standards proved to be time consuming. There is a known error with the WordPress Standards and PHP 8. When I switch to the develop branch, I get different errors, and when I switch down to PHP 7.4, my Composer dependencies break for projects. Fun.

    It is possible to run the command on the command line using the -d error_reporting="E_ALL&~E_DEPRECATED" flag, but that doesn’t allow VSCode extensions to run phpcs and phpcbf.

    So I added this rule to my local version of the WordPress-Extra ruleset, as explained in this comment:

    <ini name="error_reporting" value="E_ALL &#38; ~E_DEPRECATED" />

    Kind of hacky, but at least phpcs and cbf are working 🤷‍♂️


    For fun I generated some of those AI avatars people have been posting about. They are mostly meh for me, but I also didn’t have a ton a great selfies to feed into it. I don’t plan on using these for anything.

    Maybe I should buy a rust colored suit? 🤔


    A cool set of drawings of real root systems I came across this week:

    View the collection here: https://images.wur.nl/digital/collection/coll13

  • Week of November 28


    Charlie has been completely attached to stuffed animals this week. He carries one with him at all times, including when we are at the grocery store and when he is sleeping. He refused to let an Elmo from daycare go on Friday, so Elmo is hanging out at our house this weekend.

    We went and cut a Christmas tree today. Compare this photo of Amanda & Charlie picking out a Christmas tree today to Amanda & Charlie last year. He is getting so big! 😍


    ChatGPT was the big thing in the tech world this week. I got access to the beta and have been using it as a learning tool. Pairing that with GitHub Copilot has sped up my programming and quickly resolving errors that would have otherwise taken me a while to figure out, such as “Serialization of ‘Closure’ is not allowed.” ChatGPT told me exactly where the error was and how to fix it! Amazing. It also coached me on how to break large requests down into smaller chunks to avoid timeouts.

    Unfortunately it is still in early stages and sometimes makes up complete falsehoods. For example, I asked it to recommend a mystery book, which it did, but then it said the book won a prestigious award that I can’t find any evidence of it having won. Or suggesting API endpoints on public APIs that don’t exist. Or confusing WordPress.org with WordPress.com, which is a common mistake.


    I used the Black Friday, Cyber Monday, and Giving Tuesday emails as a chance to clean out my subscriptions with Leave Me Alone. Their $7 7-day pass is gold. They are an indie company, and unlike Unroll they don’t sell your email data.

    I fixed a couple of bugs on my site that have been bothering me for a while. Feels good. I also made a ton of progress on making Jetpack Likes for posts into Webmention likes. I have a few things to tweak and test, but I expect to run it on my own site this week and then blog about it and share my script.


    Amanda and I both noticed that we had some free time in our work schedules one day this week, so we decided to go out and have a lunch date at the spur of the moment and spend some child-free time together. That was really nice. More things like that in 2023, please.


    Currently watching:

    • The new season of The Crown on Netflix.
    • The new Star Wars Andor series on Disney Plus.

    Currently Reading:

    • Neal Stephenson’s The Juncto, the fifth book in the Baroque Cycle series.
    • Piranesi by Susanna Clarke

    I added my Blogroll to the site this week after seeing great resources like blogroll.org and ooh.directory. Blogrolls are now more important than ever in our age of online social diaspora.

    I also blogged about holiday cocktail ingredients and batch cocktails over at CookLikeChuck:

    Homemade cocktail ingredients and batched holiday drinks that make great gifts – Cook Like Chuck
    Have a cocktail lover in your life and want to make them something unique? Or want a host gift for a holiday party that will stand out against the bottles of wine everyone else is bringing? Here are some cocktail ingredients you can make at home and some batched holiday drinks you can make. Homemade…
    cooklikechuck.com

    I’ve been on a holiday cocktail quest lately, tracking down recipes from the Sippin’ Santa tiki popup, making syrups and liqueurs (cranberry syrup, cinnamon syrup, nutmeg syrup, ginger liqueur), infusing pineapple rum, and mixing up batches of Black Christmas and tequila and sherry eggnog. Some for personal consumption, some for gifts.

    We are making good progress through our holiday card list, aided by the drinks above.


    My Spotify Wrapped for 2022. Again I’m in the top 1/2% of Tycho listeners. I think they must be excluding certain artists, because we listened to A LOT of Caspar Babypants.


    I’m off to do some Christmas decorating, cookie baking, and card writing! 🎄👋