There are 81 posts here


5 in January


6 in October
2 in August
2 in July
2 in June
8 in May
1 in April
1 in January


2 in October
1 in August
3 in June
2 in May
2 in March
2 in January


4 in October
1 in July
4 in May
1 in April
1 in March

    What’s a new year anyway

    [Dec 31, 2020]

    I’ve never been one for New Year’s resolutions. I think that is, in part, because I’ve lived in New England my entire life. Why start something in January - the month of short days, cold weather, general malaise, and then hope it sticks through February, the month I will always argue does not need to exist.

    I set a goal for 2020, which was to go to a concert every month of the year. I made it to February (the worst month) and the concert, which was at the end of the month, was covered with an air of “should there be this many people in a building?”. Any plans for March were immediately scrapped. I tried to get tickets for an outdoor concert in the late Summer but the venue was so limited it sold out immediately. What’s the importance of January 1st, if I want to try this again? There’s no “new year” where I could do this until vaccines are widely available, and concert venues are open again. That might be later this year, that might be 2022. The calendar has no bearing on it.

    This year, there are no goals based on the calendar, but things to think about a season before for the season after. In Spring I want to plant a tree and put a garden bed in the back yard, and mulch over a dead zone of grass between our driveway and the sidewalk. I thought about that last Spring, but everyone else stuck with nowhere to go but their front yard and back yard did too. So that’s my New Year’s “resolution”, of sorts — spend January thinking about a tree for March.



    [Dec 27, 2020]

    Got the kid an instax mini 11 for Christmas. It’s an instant camera that develops on 1.8’’ x 2.4’’ film. Some initial notes:

    • Will the camera survive a 5 year old? Probably. It’s a sturdy feeling plastic construction, if anything is going to go it’s the lens cover.
    • Operation is two buttons: 1 pushes the lens out and turns the camera on, one takes pictures. The flash is always on and it does some behind-the-scenes exposure correction.
    • It has a “selfie” mode, which also works for close up pictures. It extends the lens barrel slightly. They stuck a tiny, tiny mirror on the lens so you can see yourself while using it, which is genius.
    • Having used digital cameras for so long, you forget that film has to be optimized for indoor or outdoor. We went to the beach on a sunny day and everything was expectedly washed out.
    • The kid absolutely does not care about the quality, it’s all about getting the prints out. I got this for her because she was previously using her Nintendo 2DS to take pictures, which has the world’s worst camera sensor, and every indoor picture is just some indecipherable shade of brownish-gray. This is a huge step up, even when she jerks the camera around mid-capture.
    • The shutter button is a little bit sensitive, as you can see by the picture in the bottom right, which is mostly my hand as I handed the camera over to her.


    [Dec 20, 2020]

    👨: “Hey, do you want to watch this show Hilda? I’ve read good things about it.”


    months pass

    👧: “…her name is Hilda, and there’s trolls, this is the best show, I’m going to watch it forever.”

    👨: Kenny Rogers singing "the Gambler"


    Waikiki Beach

    [Dec 14, 2020]

    Hawaii is one of the places we’re allowed unrestricted travel to right now, but this is a closer, possibly ironically named Waikiki Beach.

    Waikiki beach in Salem, Massachusetts


    Happy Little Clouds

    [Dec 7, 2020]

    ...that get sad. Some Procreate doodlin’ on a Winter weekend.


    The Tools I Use

    [Dec 3, 2020]

    In the past I’ve kept lists of apps to install for new Macs/PCs/iOS devices, but usually on scraps of paper. I figured this might be useful to someone else, or my future self, so now I just have them on a page on this site.


    Monoprice 35in Zero-G Curved Ultra-Wide Gaming Monitor

    [Dec 1, 2020]

    ultrawide Monoprice monitor please ignore the messy cables

    I picked up a (deep inhale) Monoprice 35in Zero-G Curved Ultra-Wide Gaming Monitor during the CyberblackFriMonTurkeyWeek sales. I’d been debating a new monitor for... a long time. I had a 24ʺ Dell 16:10 WUXGA monitor that was “good enough” — I had 27ʺ QHD monitors at work but they didn’t feel noticeably better, and I didn’t like the idea of scaling (or paying for) a 4k monitor.

    At 3440x1440, this monitor is ~1.7 times wider and a bit taller with no bezels in between. Feels like a good compromise. As someone who works in a code editor with 5 primary colors the colors are fine, and the viewing angles are good enough for the curve, assuming you don’t try to hang from the ceiling to look at it, or peek from another room. I set it up using the calibration guidelines from this Tom’s Hardware article and then ran through the MacOS expert display calibration to make a color profile that you can download here.


    Game of the Year

    [Nov 20, 2020]

    “Thanks” to the Coronavirus for keeping me in my house, I made it through four of these. Of them, The Last of Us Part II had the best story, Hades is the best video game, in that it is fun and has great mechanics, and art, and sound. Ghost of Tsushima was a fun open world game, but wouldn’t make a Playstation 4 top ten for me. Final Fantasy VII remake likely would make a top ten list, but I’d hesitate to recommend it to people who hadn’t played the original.


    Markdown is going on tonight

    [Nov 18, 2020]

    Let him who hath understanding reckon the markdown of the bear


    Cross posting from a next.js blog to

    [Nov 13, 2020]

    I like the idea of, and I’ve lazily cross-posted my blog to the site via RSS for a while, but the feed always ended up in the format of [post title] - [link to post], which doesn’t capture the spirt of microblogging.

    I reworked the RSS feed in general when updating this site to next.js, but I thought I'd take a stab at getting crossposting working too.

    Since I couldn’t find much in their documentation on what parameters were used to construct the feed from an RSS feed, I found users who were cross posting, looked at their feeds, and then tested out a couple posts to see how they showed up on the timeline.


    1. It's much easier to use a JSON feed. This is perhaps not surprising since Manton Reece drafted the spec and created
    2. Microblogging is strongly against using titles for posts.

    I ended up taking the same loop my index page uses (gets every single markdown post, but then returns the latest ten) and running it through this function:

    import siteConfig from "../data/config.json";
    var md = require("markdown-it")();
    const makeJsonFeed = (posts) => {
     const feed = {
       feed_url: siteConfig.jsonURL,
       title: siteConfig.description,
       home_page_url: siteConfig.siteUrl,
       author: {
         url: siteConfig.siteUrl,
     const items = => {
       return {
         author: {
           url: siteConfig.siteUrl,
         id: `${siteConfig.siteURL}${post.slug}`,
         url: `${siteConfig.siteURL}${post.slug}`,
         content_html: md.render(post.markdownBody),
     feed.items = items;
     return JSON.stringify(feed);
    export default makeJsonFeed;

    And on the index route, I use it like this:

    const jsonFeedObj = makeJsonFeed(postsToUse);
    fs.writeFileSync("./public/rss/feed.json", jsonFeedObj);

    While I do have titles on most of my posts, they are optional, and I chose to leave them off the JSON feed. If they are added, goes back to the [post title] - [link to post] I was trying to get away from!

    You can see the result at my timeline or in the JSON feed.