I’m a technologist at Viget in Durham, North Carolina, USA. I’m passionate about making things (both digital and analog), sharing what I’ve learned, and consuming mindfully. More about me.
Journal
Dispatch #14 (April 2024) (2024-04-08)
Busy March! My whole family came into town for a long weekend, then we headed down to Wilmington to run a race and spend time with Claire’s sister, then I was off to Vegas for the basketball tournament, and we capped things off at Lake Norman with Claire’s grandmother.
Dispatch #13 (March 2024) (2024-03-04)
Highlights this month: a weekend in Wilmington, a successful 10K, and a solo dad weekend (including a rainy bike adventure followed by an incredible rainbow over Central Park). Plus some new music and a bunch of website improvements.
Encrypt and Dither Photos in Hugo (2024-02-06)
I encrypted all the photos on this site and wrote a tiny image server that decrypts and dithers the photos, then created a Hugo shortcode to display dithered images in posts. It keeps high-res photos of my kid off the web, and it looks cool.
Dispatch #12 (February 2024) (2024-02-04)
We spent MLK weekend with my folks in the Shennandoah Valley, and visited Luray Caverns, something I’d done as a kid and still rips 30 years later. Neat place, highly recommended if you’re ever in that area. We also got some snow at our cabin, which was pretty fun for Nev.
Dispatch #11 (January 2024) (2024-01-10)
That’s a wrap on 2023. Our little Nevie turned two in December. It’s hard to imagine her changing as much in the next year as she did in the last, but I suppose it’s inevitable. We spent Christmas at Claire’s folks’ house and hit up both the Greensboro Children’s Museum and Greensboro Science Center.
Elsewhere
Local Docker Best Practices (viget.com, 2022-05-05)
Here at Viget, Docker has become an indispensable tool for local development. We build and maintain a ton of apps across the team, running different stacks and versions, and being able to package up a working dev environment makes it much, much easier to switch between apps and ramp up new devs onto projects. That’s not to say that developing with Docker locally isn’t without its drawbacks1, but they’re massively outweighed by the ease and convenience it unlocks.“Friends” (Undirected Graph Connections) in Rails (viget.com, 2021-06-09)
No, sorry, not THOSE friends. But if you’re interested in how to do some graph stuff in a relational database, SMASH that play button and read on. My current project is a social network of sorts, and includes the ability for users to connect with one another. I’ve built this functionality once or twice before, but I’ve never come up with a database implementation I was perfectly happy with. This type of relationship is perfect for a graph database, but we’re using a relational database and introducing a second data store wouldn’t be worth the overhead.Making an Email-Powered E-Paper Picture Frame (viget.com, 2021-05-12)
Over the winter, inspired by this digital photo frame that uses email to add new photos, I built and programmed a trio of e-paper picture frames for my family, and I thought it’d be cool to walk through the process in case someone out there wants to try something similar. In short, it’s a Raspberry Pi Zero connected to a roughly 5-by-7-inch e-paper screen, running some software I wrote in Go and living inside a frame I put together.Why I Still Like Ruby (and a Few Things I Don’t Like) (viget.com, 2020-08-06)
The Stack Overflow 2020 Developer Survey came out a couple months back, and while I don’t put a ton of stock in surveys like this, I was surprised to see Ruby seem to fare so poorly – most notably its rank on the “most dreaded” list. Again, who cares right, but it did make me take a step back and try to take an honest assessment of Ruby’s pros and cons, as someone who’s been using Ruby professionally for 13 years but loves playing around with other languages and paradigms.
Links (from Pinboard)
To Own the Future, Read Shakespeare | WIRED (2024-04-22)
When stuff gets out of hand, we don’t open disciplinary borders. We craft new disciplines: digital humanities, human geography, and yes, computer science (note that “science” glued to the end, to differentiate it from mere “engineering”). In time, these great new territories get their own boundaries, their own defenders. The interdisciplinarian is essentially an exile. Someone who respects no borders enjoys no citizenship.
Interdisciplinary Website Maker - Jim Nielsen’s Blog (2024-04-22)
The analogy of disciplines as borders is intriguing. In disciplines, when things get complicated we don’t open borders but instead create new ones.
AI isn't useless. But is it worth it? (2024-04-18)
But I find one common thread among the things AI tools are particularly suited to doing: do we even want to be doing these things? If all you want out of a meeting is the AI-generated summary, maybe that meeting could've been an email. If you're using AI to write your emails, and your recipient is using AI to read them, could you maybe cut out the whole thing entirely? If mediocre, auto-generated reports are passing muster, is anyone actually reading them? Or is it just middle-management busywork?
The Boox Palma is the best purchase I've made in a long time (2024-04-17)
The Boox Palma has replaced my iPhone for major parts of my life. And I think it could go even further. A review.
Why keep writing? | Eddie Dale (2024-04-02)
Good question. I guess a natural follow up question is: Why did you start in the first place? Also a good question.
Own Your Web – Issue 12: Finding Your Rhythm (2024-04-01)
But then again, what is the point of having a personal site if we don’t put stuff out there from time to time, if we don’t document and share random thoughts, things we learned, and nuggets we found? And even though you definitely don’t have to publish daily to enjoy having a blog, it is only when you post more regularly that many of the advantages of having a personal site really start to emerge.
'I'm not a cynic, I'm disappointed' – the _Software Crisis_ Easter Sale – Baldur Bjarnason (2024-03-28)
People who point out what needs to be improved are generally disappointed optimists.
Why We Can't Have Nice Software (2024-03-25)
The problem with software is that it's too powerful. It creates so much wealth so fast that it's virtually impossible to not distribute it.
Getting Started | fx (2024-03-18)
Fx is a dual-purpose command-line tool tailored for JSON, providing both a terminal-based JSON viewer and a JSON processing utility. While the JSON viewer is crafted in Go and functions without external dependencies, the JSON processing tool is developed in JS, compatible with Node.js and Deno.
Churn (2024-03-15)
The main reason Web Components aren’t going to save you from the JS treadmill, however, is that the JS treadmill is first and foremost a cultural product.