chsmc.org

I really enjoyed Kyle Chayka’s latest piece for The New Yorker about using the Process Zero feature of the Halide camera app for iPhone, which forgoes the AI-powered image processing that iOS applies by default.

My phone camera roll looks different now. There are fewer repeats or slight variations on the same image, taken in a burst. The compositions are less static or symmetrical, and the colors are funkier. I have a Halide snapshot of some leaves casting shadows on a tree’s trunk, which occupies most of the frame. Whereas the Apple phone app tends to turn every color warm, this one is very blue and cool, and the background behind the tree is dim rather than eye-burningly brightened. But I prefer the photo that way: the visual qualities of the specific scene are still there to be appreciated. It doesn’t, and shouldn’t, look like everything else.

I’ve been using Process Zero the past few weeks as my main shooting mode, and I couldn’t agree more. I don’t see myself going back to the iPhone’s default image processing.

It occurs to me that Process Zero is popular for the same reason as Instagram’s original filters—imperfections imbue a kind of personality that feels more human. AI-perfected pixels feel cold and lifeless because they optimize and average away the details, leaving photos without any distinct “vibe.”

The images that an iPhone produces by default are a form of advertising for Apple. Buy an iPhone, snap a photo, and it will always look great. The uniformity of the experience ensures the results are always good, but it has the side effect of preventing them from feeling great.

Apple has a history of sherlocking great features introduced first in third party apps, and I would be very pleased if they decided to bake this into the native camera app.

Riley Walz hid a solar powered Android phone in the Mission and set it to run Shazan all day, every day. The result is Bop Spotter, a site listing all of the songs that have been detected.

This is culture surveillance. No one notices, no one consents. But it’s not about catching criminals. It’s about catching vibes. A constant feed of what’s popping off in real-time.

Culture Surveillance is a newsletter to which I would happily subscribe.

I stumbled upon a great site which acts as an explainer for vanilla web development techniques called, well, Plain Vanilla.

When I was starting out as a developer I had a hard time learning the basics of the web platform because so many resources and examples used a framework. It was mostly jQuery at the time, and today I’d assume React and Tailwind are the most common starting points for new developers.

But the web has come a long way! A framework might not be necessary for lots of projects, and going as far as you can with the grain of the web comes with lots of benefits. I’m happy to see a high quality resource like this that can help folks avoid complexity and start simple.

I’m fascinated by the way that CSS, as it becomes more powerful, can be used as a visual language for representing the physical world. Combined with the longevity of the web, which strives to never break backwards compatibility, it’s a powerful tool for sending information into the future.

Here’s another example I stumbled on: Orbit is a CSS framework for radial constructs. It provides an easy way to arrange elements around and within a circular area.

I grew up dreaming about the esoteric user interfaces seen in science fiction films, many of which featured circular screens, control panels, and UIs. Now we can achieve those with CSS!

I also love the whimsical nature of Orbit’s API, which requires a single “big bang” element on the page, and uses a “gravity-spot” class for creating an area with a radial layout. The library comes with support for adding orbits, slices, satellites, capsules, and more around user-defined gravity spots.

Read the docs for Orbit and check out the examples to learn more.

Here’s a thing I never would have imagined possible: an LLM embedded into a font.

Many applications (including Chrome and Firefox) use a font rendering engine called HarfBuzz, and HarfBuzz recently added support for running arbitrary WebAssemply code in order to “shape” the pixels that are drawn onscreen when rendering a font.

You can see the font, llama.ttf, in action in this video.

Over the past several decades we’ve seen computers be embedded into more and more contexts. Today, computers are everywhere, from our cars to the locks on our doors. Computers have even been built and embedded into the digital worlds of video games.

I wonder if, in the years to come, it might be LLMs that get embedded into all the things.

A smart refrigerator that can reason about what’s inside and maintain a grocery list for you? A font that completes your sentences? A doorbell that answers in your voice and tone when you’re not at home? In-flight entertainment that generate content based on your preferences?

Strange times ahead.

One of my favorite forms of online content is when someone finds an interesting, obscure story from the past and manages to extract a lesson that’s widely applicable today.

I like to think of it as something like fan fiction: we, as individuals, retcon and re-tell stories from the past to help us make sense of the present.

Elan Ullendorff published a great example of this recently in a piece called Should this be a map or 500 maps?

It features the story of a king in 18th century Spain who ordered a geographer to create a map. The geographer attempted to delegate this work by asking the priests of towns across the country to create maps of their own provinces.

The idea was to put all of the maps together in the end, but because there was no standardization, all of the maps were created in entirely different forms. Those forms are beautiful! But ultimately not useful as an actual map.

Rather than seeing this as a failure, Elan asks us to consider the things we might be losing when we impose structure, standardization, and process. We might have gained a useful map, but we would have lost the creative perspective that each of the pieces represents.

I’m obsessed with this story because it gets at a dynamic embedded within everything designed that we rarely think about. Once you notice it, it is present in almost every conversation, at every aperture and zoom level: modularity is inversely correlated to expressiveness.

This hit me like a rock, in no small part because of my career focus of choice: design systems.

Fortunately, Elan goes on to reassure me:

I am someone that preaches expressiveness to a fault, but the truth is that I make decisions to scale all the time. I don’t necessarily see this as a compromise of values. There is beauty in trying to express something specific; there is beauty too in finding compromises to create something epic and collective.

Hear hear.

I really appreciated this write up from Jeremy Keith about his personal approach and best practices for HTML web components.

Judging by the discourse, web components seem to be gaining in popularity lately, and I’m very here for it.

Trying to build on the web using a component model was what led me (and others I’m sure) into the arms of React many years ago. While I’m grateful for that journey, and still believe React is the right choice for many projects, it gives me a lot of comfort to know there’s a native tool I can reach for.

The tricky thing with web components, like the web platform in general, is the flexibility. What makes it so powerful can also make it hard to learn, and even harder to know if what you’re learning is the right or recommended path. It takes time for best practices to form and percolate.

Here’s something unexpected: Keanu Reeves and China Miéville (one of my favorite science fiction authors) are writing a book together that’s dropping in July. The Book of Elsewhere is described as a “genre-bending epic of ancient powers, modern war, and an outcast who cannot die.” Sign me up.

Speaking of books being released this year, Robin Sloan’s new novel Moonbound will land in June. Preorder a copy and let Robin know to receive a limited edition zine.

Summer beckons!

A small programming note—I’ve updated my homepage to include highlights from articles and books I’ve read in addition to blog posts. The highlights are synced from my Readwise account.

If you haven’t used Readwise Reader, I highly recommend it. It’s my modern replacement for Instapaper, and has a wonderful browser extension which allows for in-place highlighting of passages (including comments!) I am a very happy subscriber in part because of their excellent API.

The Readwise API combined with Eleventy’s fetch API made it a breeze to implement this new feature ✨