Blog

  • Twitter Account Locked

    Twitter Account Locked

    Update: After more than three weeks, my account was unlocked. A few days ago, National Weather Service Portland tweeted: I replied: @NWSPortland Don’t forget graupel! BTW, I caught something frozen falling this afternoon in downtown. I also included a video of frozen precipitation bouncing off of a window ledge downtown. Now, if you don’t know:…

    Read more

  • Sandboxing with Partytown

    Sandboxing with Partytown

    Partytown is a “library to help relocate resource intensive scripts into a web worker, and off of the main thread. Its goal is to help speed up sites by dedicating the main thread to your code, and offloading third-party scripts to a web worker.” Code running in a worker runs in a separate thread, ensuring…

    Read more

  • Auto nvm use

    Auto nvm use

    I use nvm to manage my version of node which makes it easy to use the right version of node for specific projects. What has annoyed me with nvm is opening up a directory in terminal and running npm only to get: I’d have to remember to run nvm install after navigating to a project…

    Read more

  • Sun Rising Behind Mount Hood: A 16-Year Journey

    Sun Rising Behind Mount Hood: A 16-Year Journey

    I used to go up to Rocky Butte often to watch the sunrise. One time I was up there and the sun rose very close to Mount Hood. That was February 11th, 2006. Ever since then I’ve wanted to try to capture the sun rising directly behind the mountain and to see the shadow that…

    Read more

  • Unexpected Handling of Element IDs in PHP DOM

    Unexpected Handling of Element IDs in PHP DOM

    tl;dr: In PHP, make sure you remove the id attribute from a DOM element before you try to use the same id on another DOM element, even if the you already removed the first element from the document. This is not the case in browser DOM. I stumbled across something really bizarre in PHP’s document…

    Read more

  • [Speaking Foreign Language]

    [Speaking Foreign Language]

    During the inauguration of President Joe Biden and Vice President Kamala Harris today, Jennifer Lopez performed “This Land Is Your Land”. I usually watch everything with closed captions turned on so I don’t miss anything, but if I didn’t speak Spanish the subtitles wouldn’t have helped. During her performance the subtitles included something truly ironic.…

    Read more

  • History Advocates for Wearing Masks during a Pandemic

    History Advocates for Wearing Masks during a Pandemic

    Twitter surfaced a tweet to me which had some newspaper clippings during the 1918 flu pandemic (aka “Spanish Flu”): The tweet didn’t cite the sources, but the clipping mentioning Portland jumped out at me since that’s my home. To find the source I googled for [“wearing masks in portland might save a life. it might…

    Read more

  • Story: Running on Mount Tabor

    Story: Running on Mount Tabor

    I just published my first Web Story using the new Web Stories plugin, sharing some highlights of one of my favorite things to do: running on Mount Tabor. The images were taken on a Pixel 4 XL. The time-lapses were taken at 5x speed while I was walking. The Web Stories editor doesn’t yet have…

    Read more

  • Integrating with AMP Dev Mode in WordPress

    Integrating with AMP Dev Mode in WordPress

    tl;dr In v1.3 the AMP plugin for WordPress no longer has to remove the Admin Bar to keep pages valid AMP. The AMP plugin allows WordPress themes to be developed as usual and have their templates and stylesheets used to serve valid AMP pages. It does as much as possible to prevent serving invalid AMP…

    Read more

  • Creating command aliases for Lando tooling

    Creating command aliases for Lando tooling

    I’m a big fan of Lando. Since first learning about it, I’ve switched from using a virtual machine with Vagrant (i.e. VVV) to using Docker containers for my day-to-day local development environment. Docker on its own is not the most ergonomic (at least, I’m not an expert), so wrappers like Local by Flywheel make it…

    Read more