Archives

Month: January 2023

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