An old-fashioned electric typewriter on a desk, with a piece of paper coming out of it showing faces and animals made out of typed characters.

Tagged: computers

There are 8 posts tagged "computers."

Home - Resume - Projects - BlogRSS Feed

From Wednesday, February 11th, 2026

Vibe Check

A few hot takes for the #vibecoding era:

Read More right-pointing flowery thing

Tagged as computers, work.

From Monday, September 1st, 2025

Separation of Concerns and State

The term “separation of concerns” gives you an easy way to throw a wrench into almost any programming argument. It’s hard to interpret at the best of times, but it definitely sounds weighty and important, and so you can use it to argue against any code that you don’t like and for any code that you do like. Here are some models for separation of concerns that I have seen:

Model A: The Language Model

A one point, in the world of web development, it was easy to tell which part of the code was which, because each concern was addressed by a different language. The HTML created the content, the CSS established the styling, and the JavaScript added the interactivity:

Read More right-pointing flowery thing

Tagged as computers.

From Sunday, April 27th, 2025

JavaScript Promises Break Code in Half

“Promises” are a ubiquitous feature in the JavaScript language. For example, if you call the function fetch in order to get some kind of JSON object from an API, fetch will return a Promise:

const thisIsAPromise = fetch("/api/get-id/1");

What does that mean? The MDN documentation informs us that a Promise “is a proxy for a value not necessarily known when the promise is created.” That’s kind of true, and for a while, I even believed it. However, nowadays, I think that it’s actually easier to think of Promises as a way to manage code, not data.

Read More right-pointing flowery thing

Tagged as computers, javascript, explainers.

From Saturday, March 29th, 2025

Let vs. Const

In my post about GIFs, I pointed out that the creators of the GIF file format explicitly said that it wasn’t meant to be a great format for animations, but since it was widely available in people’s browsers, and no-one actually read that spec, it ended up being used for animations all over the place anyway, and now it’s all the format is known for. By opening a technological window, and allowing some limited animations to be stored in .gif files, they closed a door (new file formats with more advanced compression are constantly pushed back on because people are used to GIFs.)

Unrelatedly, here are two keywords that exist in JavaScript: const and let. let creates a variable that can have a new value assigned to it later, while const creates a variable that will always have the same value attached to it. const is the typical way that people declare variables in modern JavaScript; thanks largely to linting rules and style guides like the Airbnb JavaScript style guide, which for whatever reason was very popular back in the day, a generation of programmers learned that changing the values of variables was to be avoided, and obviously const is the way to do that, right?

Read More right-pointing flowery thing

Tagged as computers, low-effort titles, door vs. window conundra.

From Saturday, March 15th, 2025

Patterns, Samples, and Artificial Knowledge

Buckle up, everybody. The AI understander has logged on.

Human brains are wired to anticipate and recognize patterns. The quiet thump of footsteps coming up behind you; the sinuous stripes of a tiger’s fur, undulating as it quietly crouches in the bushes with knife, fork, and barbecue sauce clutched in its paws; the halting rhythm of popcorn in the microwave as it finishes up its popping and starts to burn. In particular, there’s something in us that responds to patterns in language. I don’t necessarily mean literary, sophisticated forms of language: I mean that people still put fragments of Radiohead lyrics in their Instagram bios, and that we all grew up enthralled by the three-syllable rhythms of Dr. Seuss.

But what if I told you that writing that kind of thing is now easy?

A chat with ChatGPT. The user says: "Write a short Dr. Seuss-style poem about driving with broken brake lines." ChatGPT replies: "Oh, the places you’ll go— but not where you planned! For your brake lines are broken, your stopping’s unmanned! You roll down the street, you pick up some speed, you pump on the pedal— but stop? No, indeed!"

Well, it’s not quite top-tier Dr. Seuss material, I guess, but that comes down to the prompt, right? I could have told it to write about something more Dr. Seuss-like. Animals, breakfast foods, headwear, that kind of thing. But the fact that it understood the prompt - the fact that it knows who Dr. Seuss is, that it presumably knows what a trisyllabic meter is, that it knows which words rhyme and which don’t - that makes it smart, right?

I’m not so sure? If a human sat down to write a Dr. Seuss-style poem, and produced that result, then we could probably conclude that the human knew those things, or at least had a fundamental intuitive sense of them. But at this point, in year three of their mildly terrifying reign, I’m pretty sure that large language models are mostly good at replicating patterns. That doesn’t mean that they make good decisions about what to replicate or why they’re doing it. But, they feel like they’re smart, partly because they hack the human brain by reproducing patterns that are interesting to us, and partly because they mix the patterns together.

Read More right-pointing flowery thing

Tagged as computers, coding, brains, music.

A tweet by Keara Sullivan (@superkeara) that reads, "I actually love it when a millennial sends me a gif. It's like hearing a cow go moo in real life. I can't help but smile when witnessing something so classic."

A GIF By Any Other Name

Tuesday, March 11th, 2025

The animated GIF is a new kind of ideogram that computers have added to our lives. (An ideogram is a visual symbol that indicates an idea without corresponding to any specific spoken sounds.) You can convey a vibrant feeling in a brief moment of video, as long as the feeling is along the lines of: Leonardo DiCaprio raising a wine glass. Donald Glover carrying pizzas reaching a room filled with flames. A white guy blinking in idle consternation.

So why is the GIF under attack? Everywhere, platforms and hosting services are trying to replace it with other file formats. “GIFs” on Twitter are MP4 videos, set to be soundless and looping. Imgur introduced the concept of “GifVs,” which are mp4 or WebM videos that are displayed like GIFs, way back in 2014. The framework I’m using to create this blog, Astro, will automatically turn GIFs into WebP files when I deploy the site to production. One of the ground zeroes for the animated GIF phenomenon, Tumblr, has been experimenting with videos-as-GIFs for years, writing extensive, carefully-worded posts to try to introduce the concept without angering their userbase.

And make no mistake - users hate new file formats, like WebP. Statistically, you probably hate .webp files already. Here’s what a brief Google search has to say about them:

Google image search results for "webp memes." The memes are all very negative.

So why does this format exist? Why do any file formats exist? Why do I care? Let’s consider the practicalities.

Read More right-pointing flowery thing

Tagged as computers, digital art, the culture, door vs. window conundra.

The meme where someone is looking straight ahead and going "wow" while something shoots over their head. In this case, an old Yahoo home page is shooting the words "LOGIN PAGE" over their head.

Eyeline UI

Tuesday, January 21st, 2025

Something I enjoy is when your focus doesn’t have to jump around a whole bunch when using a computer program. One classic example of UI that manages the user’s focus is the humble float label:

Read More right-pointing flowery thing

Tagged as computers, design.

A clunky old adding machine.

The Double Life of Floating Point

Thursday, January 2nd, 2025

Computers are bad at math. If you go into your friendly local Python terminal or JavaScript console, and type “0.1 + 0.1 + 0.1”, it will produce a number that is almost, but not quite 0.3. When you try to write programs that do math, things like this often happen. You may have heard that it’s because the number is “floating point.”

There’s a lot of superstition and folklore around floating-point numbers in computer science, plausibly due to occult-sounding terms like “mantissa” and “significand.” “Floating-point math is imprecise,” people will say. But the “floating-point” part gets way too much emphasis. “Math is too precise” is a better way to put it. The poor floating-point number is just chronically misunderstood.

Read More right-pointing flowery thing

Tagged as computers, math, low-effort titles.