My photography portfolio is back

I ran Pullfolio for fifteen years. It turned Flickr accounts into photography portfolios, including my own at images.andrewng.com.

When its EC2 instance died, it felt like a reasonable time to stop maintaining it. I wasn’t particularly interested in resurrecting a Rails application just to keep my own portfolio online.

But I missed having the portfolio.

The public photography portfolio.
The public photography portfolio.

So I spent about two hours with Codex building the first version of the replacement. It’s an Astro site on Cloudflare Pages. Big photographs, white space, a small amount of EXIF, and vi keys because of course it has vi keys.

The important decision was to move the work to build time. Flickr supplies the album membership, and the build prepares responsive copies of the photographs with Sharp. The deployed site serves its own images. Visitors don’t have to wait for Flickr API requests, and there isn’t an application server or database to keep alive.

The photographs stay uncropped. Each album shows one at a time, with a larger viewer when you want to look more closely. Arrow keys and swipes work, along with h and l for photographs and j and k for albums. The EXIF lives behind Details so opening it doesn’t shove the photograph around.

The part that took more care than the initial build was recovering better source images. Some old Flickr copies were only 1024 pixels across. A responsive image pipeline cannot invent detail that isn’t there, so the build can use local originals and Lightroom re-exports instead. The originals stay out of Git; the generated site is what gets uploaded.

That also means production builds happen on the Mac where those files live. This isn’t a case where an empty checkout in GitHub Actions magically has access to my photo library.

There’s something quite nice about replacing an old web application with a directory of HTML, CSS, JavaScript, and JPEGs. Especially when the entire point of the site is to look at the JPEGs.

Portfolio · Original short post

Lightmist Coffee

Pour-over coffee setup with Origami dripper and glass server on a scale

It’s been a while.

A lot has changed since my last post. Last July, Sherry and I moved to Taipei with the boys and the dog. And somewhere along the way, a coffee hobby turned into something more serious. I started a coffee project.

It’s called Lightmist Coffee (微嵐咖啡). We focus on ultra-light roasts, the kind where you can actually taste the origin, the terroir, the processing. Clarity over intensity. If you’ve ever had a light roast that reminded you more of tea or white wine than “coffee,” that’s the neighborhood we’re in.

The coffee thing started back in 2002 when I was in Austin doing some consulting work on the side, hacking on Linux kernel extensions. The consulting money paid for a Rancilio Silvia and a Rocky grinder, and that was it. I was hooked. For a long time it stayed casual, just making espresso at home. I moved to San Francisco in 2007, and it wasn’t until after COVID that I really fell into the Bay Area specialty coffee scene. That’s when things escalated: dialing in recipes, geeking out on water chemistry, the whole rabbit hole.

The name comes from Mt. Tam, the mountain across the Golden Gate, where fog rolls in around golden hour. That quiet, misty clarity felt right. The Chinese name, 微嵐, uses the 嵐 from my Chinese name (吳以嵐). It means mountain mist.

What we actually do: small curated drops. We source from top independent roasters around the world, and ship in small numbered batches. Every box comes with the water recipe we used when dialing in, because water matters more than most people think. We’re transparent about everything: the sourcing, the process, the numbers.

I also started the Taipei Coffee Group (TCG), a community of specialty coffee people here in Taiwan. It’s still early, a Discord server where people share brewing experiments, compare recipes, and do group buys. It’s the kind of thing I wished existed when I first moved here.

I’ll be honest, I’m still figuring out the right audience for Lightmist here in Taipei. The specialty coffee scene is vibrant, but ultra-light roasts are a niche within a niche. We’ll see where it goes.

If any of this sounds interesting, follow along on Instagram: @lightmist.coffee. That’s where we announce drops and share what we’re working on.

More to come.

Hal’s Boston Bound 2015 training schedule calendar links

I usually use YourTrainingCalendar to generate my training schedule, but this time I’m following Higdon’s Boston Bound program instead of his Advanced 2, and YourTrainingCalendar doesn’t have that program yet.

I actually bought Hal’s program at TrainingPeaks, but to sync to Google Calendar I need to upgrade to Premium. So instead I created my own calendar and made it public. Here are the links to add to your own calendars.

URLs

To add to Google Calendar, find the “Other calendars” drop down menu.  Select “Add by URL” and copy and paste this link into the field: http://bit.ly/bostonbound15

And if you want to change the calendar color to the Boston yellow, the hex code is #ffde00. (at least what’s what they’re using on their website)

Good luck!