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 #21 (November 2024) (2024-11-07)
Of all the ways I thought Tuesday’s election might go, Trump winning a decisive victory was not something I’d thought possible. 2016 felt so … illegitimate, between the popular vote discrepancy and all the Russia stuff. 2024 feels like the majority of America just wants what he’s selling.
Migrating from GitHub to SourceHut (2024-11-05)
I’ve moved this site’s repository from GitHub to SourceHut, an alternative, open-source Git host. I thought I’d take a few minutes to explain the why and the how.
Dispatch #20 (October 2024) (2024-10-01)
Note: I’m trying to get back to posting these in the first couple days of the month, so this dispatch only covers the last two weeks.
I turned 42 this month (apparently I have a very common birthday). Hitchhiker’s Guide aside, 42 doesn’t seem a particularly important milestone, but it is the product of six and seven, and so 42 represents the end of my seventh six-year cycle, which is an interesting way to think about the phases of life.
Dispatch #19 (September 2024) (2024-09-15)
Highlights this month were our annual trips to Rehoboth Beach and Beaufort. There’s something I really like about travel traditions, especially with kids. You get the benefits of breaking the normal routine, but you’re able to build familiarity and not feel the need to see and do everything. It’s different than visiting some place you probably won’t see again.
Dispatch #18 (August 2024) (2024-08-13)
Our boy’s two months old today! Look at this little dude.
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)
Signls (2024-11-19)
Signls (pronounced signals) is a non-linear, generative MIDI sequencer designed for music composition and live performances, all within the terminal. It allows you to create complex, evolving musical patterns using a grid-based approach. You can place nodes on the grid, and these nodes can emit signals, relay them, or trigger MIDI notes. There are 9 different types of nodes to explore, each with its own unique behavior.
The Two Most Important Skills for Interaction Designers - Christopher Butler (2024-11-18)
But the two skill(set)s that will determine the success of your design are entirely outside of those areas. When you don’t understand and practice them, you may end up with pixel-perfect design files, but you will end up with products that are far inferior than intended. You’ll know this has happened to you if your portfolio derives entirely from Figma exports rather than live screen captures.
Is there really a way to push back on the complexity of the web? - macwright.com (2024-11-17)
I don’t think everything should be a React app! I want more things to be like Flickr used to be, and GitHub used to be. But at the same time, I don’t see an obvious way out of the current dynamics. Yelling is popular but the track record isn’t very good. Being quietly annoyed about the web’s descent into complexity, my preferred approach, doesn’t work very well either.
The Cleanse (2024-11-17)
A friend calls this turtling. Pulling your head inside your shell and hiding. It’s quite comfortable here.
Getting Stuff Done By Not Being Mean to Yourself - The Open Heart Project (2024-11-15)
Yesterday, I finally realized that this method would never, ever work. I was shocked. But it never, ever has. I’ve been after myself on this score for, what, like ten years? Had it ever worked once in that time, I asked myself. No! I said immediately.
Canal Swans #30 - Permacomputing & Infinite Time (2024-11-14)
In my case, I can see how a Gatsby build time of 50 seconds might incentivize me to get a faster and more modern computer in order to improve this, but that with Hugo, clearly my computer could even be slower than it is, and it would be fine. In this light, I think building things in compiled languages so that they can be more resource efficient can be seen as a permacomputing practice, although as always there are different tradeoffs and contexts to consider.
MomBoard: E-ink display for a parent with amnesia (2024-11-14)
Today marks two years since I first set up an e-ink display in my mom’s apartment to help her live on her own with amnesia. The display has worked extremely well during those two years, so I’m sharing the basic set-up in case others find it useful for similar situations.
Wind the clock (2024-11-13)
Sailors have an expression about the weather: they say, the weather is a great bluffer. I guess the same is true of our human society — things can look dark, then a break shows in the clouds, and all is changed, sometimes rather suddenly. It is quite obvious that the human race has made a queer mess of life on this planet. But as a people we probably harbor seeds of goodness that have lain for a long time waiting to sprout when the conditions are right. Man’s curiosity, his relentlessness, his i...
Opinion | If You’re Sure How Trump’s Term Will Play Out, I Promise: You’re Wrong - The New York Times (2024-11-13)
Yet a hunch about the future can feel like a certainty because the present is so overwhelmingly, well, present. It’s staring us in the face. Especially in times of great anxiety, it can be all too tempting — and all too dangerous — to convince ourselves the future is just as visible.
Lost In The Future (2024-11-13)
And if you're reading this and saying I'm being a hater or pessimist, shut the fuck up. I'm so fucking tired of being told to calm down about this as we stare down the barrel of four years of authoritarianism built on top of the decay of our lives (both physical and digital), with a media ecosystem that doesn't do a great job of explaining what's being done to people in an ideologically consistent way. I'm angry, and I don't know why you're not. Explain it to me. Email me. Explain yourself, expl...