RSSAmplifier

Blog

liquidbrain

Welcome to liquidbrain.net! I'm Kai Williams, and I'm interested in the things I've written about. And some other stuff too, of course. In the past, I studied math music at college, improved my programming at the Recurse Center, and was a MATS scholar with Francis Rhys Ward. I'm now a journalist at Understanding AI supported by the Tarbell Fellowship. Feel free to subscribe via RSS or Email or leave a comment! I did build a fun comment moderation system that you can red-team... Posts

liquidbrain.netRSS feed ↗42 posts

Latest posts

Writing dumber

Over the past year of writing professionally, I have learned when to write dumber. If I'm struggling to articulate a thesis or finish a section of an essay, I will simplify the point I am trying to make until I reach a first draft. Not only does this make the writing process quicker, the resulting piece usually ends up better than my original (complicated) vision. One reason this trick works…

Microwaved baked potatoes are really convenient

Everyone needs a ramen food: quick, mindless, cheap, and tasty. Ramen isn’t a good ramen food for me, though. It’s unhealthy, not very filling, and not particularly vegetarian. So I needed something else to fill the niche. After long searching, I found my answer: microwaving baked potatoes. 1 As in, I put a potato in a microwave for 5 minutes, season it, and then eat it. In case you’ve never done…

I love my Bluetooth keyboard

I recently went on a ten day trip to China where I didn’t take my computer. 1 I still wanted the ability to take notes quickly, so I bought a Bluetooth keyboard to use with my phone. Boy do I love it. There are basically three reasons. 1. Texting my friends on a keyboard is so much nicer I hear all my Mac friends laughing at me. We’ve had that for years, Kai. Still, it’s nice. I love being able to…

Real deadlines and fake deadlines

To my knowledge, I've set three concrete goals for myself about how much effort I am going to put into this blog: In A promise to myself , I made an (implicit) promise to write a blog post every month, in perpetuity. In Writing begets writing , I explicitly promised that I would write at least ten thousand words between work and the blog in November 2025. Some time in January, I set a goal for…

Why I watch most videos at single speed

Growing up, I was one of those kids who watched every YouTube video I could at double speed. "I can still understand it," I thought. "Think of all the time I'm saving." Today, I have the opposite opinion. Most videos — if they deserve to be watched — should be watched at single speed. Let me start with the caveat. There are plenty of videos which can and should be watched at double speed (or…

Get their contact info

Note: I have a goal of writing a blog post every month, basically for forever. This piece might be a little rough because I'm getting this out right before the deadline. For the rest of 2025, I want to write a blog post every two weeks. TLDR: If I find myself asking "should I get their contact info?" the answer is probably yes. This might be true of you too. Some tips follow. There's a mistake…

Returning as a stance towards life

There's an idea that success requires constant effort applied over decades. In some areas, that's probably true. There's a saying that there are no prodigies in bridge : players have to plays thousands of hands to learn what works. Almost every soloist for a major orchestra has dedicated their life to the instrument. More mundanely, there are plenty of jobs which reward constant effort: few major…

Making an automated comment-moderation system for this blog

TLDR: you should leave a comment, either spam or not, so I can test how well this system works! If you want to check out the code, here's the GitHub . I really appreciate Mataroa , the blogging platform this post is on. It's easy to use, basically free, very performant, and looks different than Substack. But there's one thing that annoys me a bit: the comment moderation system. Moderation is a…

Happy endings as collective action problem

I was a ten year old kid, reading the middle of the fourth book of the second series of Percy Jackson when I abruptly lost interest in the plot. Things were looking bleak for the protagonist. Some of them were stuck in the underworld. Others were battling for their lives. The forces of evil were looking pretty frickin' strong. But I realized, with a jolt, that none of this really mattered. Percy…

Writing begets writing

When I started as a full time journalist at Understanding AI , I thought I would want to write less in my free time. I couldn't have been more wrong. I periodically write essays to my partner. I long to investigate topics I don't have time for at work. I have rekindled my journals, and I even feel this blog starting to return to life. I want to write more! Maybe the blog bit is because I finished…

Novels should not have blurbs on the back

Admire the following opening sentence: High, high above the North Pole, on the first day of 1969, two professors of English Literature approached each other at a combined velocity of 1200 miles per hour. Thus begins the novel Changing Places, by David Lodge. Isn't it a great first sentence? Don't you want to know what the second sentence says? The best openings of books act like an attack of…

The noticing game

Note: I wrote this a couple of days ago. Today has been a bit crappy. One of "those" days, where everything feels worse than it should. This makes today a perfect time to talk about my third favorite way to get out of my head: notice things. Right now, I'm on a Silver Line train toward Ashburn, Virginia. I notice that almost everyone on the train works for an airline. I notice that the train…

Using Apple Shortcuts to Find My Phone

[ Note: I got this idea from a Reddit post. I couldn't find the original post, but I found others similar implementations .] In February, I wrote about an Apple Shortcut which transcribed my handwriting. In this post, I'll cover the other Apple Shortcut I use frequently: find your phone with just a text. I lose my phone in my house constantly. Having a friend call me works only if I keep my phone…

I vibecoded a website because I didn't want to read a privacy policy

I've been researching the privacy implications of AI recently (in a word: scary), and as a result, I've been reading a lot of terms and conditions of different services. Recently, I wanted to know how long the title of a pdf was, so I copied the title, went to my trusty site wordcounter.net and ... Wait a second, what does wordcounter.net do with my data? Luckily for me, WordCounter has a nice…

A promise to myself

The year is half-over. It is 10:40 PM on June 30. I'm fighting against the clock. Every month since last September, I've posted an essay to liquidbrain.net. Now, my streak is in doubt. This blog has lost steam. I'm a journalist (in training) now; every word I write here is a word I could have written for work. We'll see how I manage the transition; it's been rough so far. Yet whether I'm prolific…

PSA: Use Your Bookmarks as a Search Engine

[ Note: this is by no means a new idea: I learned it from Rohan Subramani. ] TLDR: For any website I use somewhat frequently, I press Ctrl+D two times while on the website. I name the bookmark something unique and descriptive. I place the bookmark in my “just to bookmark” folder. When I want to access the bookmark, I press “*” and then search for it by name. (See the appendix for Chrome…

Starting, or Finishing?

2025 has been my best year yet for journaling. I made a "one word rule" for myself: every day I would write at least one word in my journal. This rule works for several reasons, but the most important for me is that it is so easy to succeed at. All I need to do is write that one word. Of course, I usually end up with more, but that isn't the point. Writing a good entry is easy once I'm going. So I…

Non-Correspondence texting

Previously: An Introduction to Correspondence Texting In my previous post, I divided texts into three buckets: (1) respond immediately, (2) respond within 24 hours, and (3) respond when convenient. There, I focused on how I approach the third category (which I called "correspondence" texting), but now I want to say a couple of things about (2) and (1). This is not meant to be a full piece, but a…

An introduction to correspondence texting

See also : Non-correspondence texting I hit a milestone today. For the first time since I got a phone, I had replied to all of my outstanding texts. 1 (It lasted two minutes). As many of my friends will tell you, this is quite the feat for me. I'm not a good texter. I take forever to respond, or don't respond at all. But I'm getting better, and the tips I've listed here have helped me,…

Canary in the Data Mine: the Case for Data Filtration Transparency

[ Note: this is written in a op-ed style to be a writing sample. ] In November 2023, Stanford researcher David Thiel made a startling discovery . The popular text-to-image AI model, Stable Diffusion 1.5, had been trained on a dataset containing child sexual abuse material (CSAM). His discovery sparked a public outcry. Forbes and CNN wrote negative articles, and the non-profit which hosted the…

On creativity and context

I. Isn't it wonderful how much writing teaches us? I'm amazed that I can learn so much from putting one word in front of another. Writing refines my thoughts, and gives me new ones; I often only discover what I wanted to say when I'm finishing the conclusion. I don't even need to start from anywhere clever: have I said anything yet that isn't a common observation? Why then, is this insight so hard…

Using Onefilellm with a terminal script

Continuing the recent spate of AI-related posts ... Introduction I often find myself wanting to ask a question about a GitHub repository or Arxiv file to an LLM (large language model). There are several ways to go about this, but one I like is onefilellm . 1 It's a simple open source tool which takes a link (or a directory) and returns the contents as plaintext, making it easy for LLMs to parse.…

Using Apple Shortcuts and AI to Transcribe My Handwriting

TL;DR : Download the shortcut here and follow the instructions in the appendix to get yourself set up. Gemini, or how I learned to love the Shortcuts Apple shortcuts is a funny tool. On the one hand, it is the closest thing to free programmatic access to the famously closed platform of iOS. It contains some genuinely useful functions, making some cool things easy to set up. 1 And it has an active…

Reflections on an LLM-Only Coding Project

In my previous past, I talked about using LLMs to learn more about coding 1 . I was curious about reversing my advice, so I decided to complete a project without writing a line of code. [Edit: see the repository if you're curious!] I had Claude Sonnet 3.6 implement a browser extension that lets me add a row to my time-tracking spreadsheet. I set the following rules: The process is asking Claude…

Learning to code in the age of AI

N.B.: I wrote this while at the Recurse Center ( recurse.com ) back in October, but for some reason did not post it. I still think its worth reading, but I no longer completely endorse this essay, in part because my coding is no longer solely for learning to code. The dilemma of competent LLMs It is alarming to consider the fact that as someone learning coding, AI models are quite a bit better at…

Sunsets and Verbs

One of the minor marvels of sunsets is that phone cameras cannot capture them well. This much is known. One of the slightly less minor marvels of sunsets is that phone cameras cannot even provide a good portal back to their beauty. If I take a picture by an ice-cream stand on a summer afternoon, the camera will not capture the texture of the heat, nor the physicality of the cone, but it will…

Convincing Future You

I often want to change or build a habit. Perhaps I'd like to use screens less. Perhaps I'd like to exercise. In any case, I have a behavior that that in-the-moment-me does not always perform the way reflective-me wants. Luckily, there are a lot of tools to approach this problem: I can manipulate my environment. I can create accountability bets. I can do all the basic things for health (sleep,…

6 unsolicited tips for booking Amtrak

Note: this is most appropriate for the Northeast corridor, as this is what I am used to. Book early (duh!) Unfortunately, Amtrak isn't like regional rail: Amtrak prices rise, and rise hard, on the popular routes (especially NE corridor) (And don't try to buy a ticket on the train if you can at all avoid it) If booking early, use the "flex" fare for more flexibility The nice thing about Amtrak is…

How much faster is writing cursive than block letters?

It isn't. 1. Introduction: There is a time in every man's education when he comes to the conviction that envy is ignorance; that imitation is suicide; and that science isn't something that happens only to other people. 1 For me, that moment came when I read Ruth Daniel's excellent essay testing whether salting pasta water makes it taste better. 2 Before then, it hadn't occurred that I could…

How many wikipedia pages do you need to visit to get a music page?

In my previous post , I talked about using Wikipedia to expand my taste in music by repeatedly using the random page function until I hit a page about music. A natural question came up: how long does it take to come across a page pointing towards a piece of music? To test this, I programmatically obtained the first sentence of 1000 Wikipedia articles. I had initially planned to use plain…

Using Wikipedia to Find New Music

In the internet age, how does one find new music? Some old ways still work. You can ask your friends. You might go to a music festival, or see a concert with an opener. With these, however, you're at the mercy of your friends, and of your budget. There are new ways too. Spotify or youtube can recommend new music to you. You might watch concert footage on social media, or might see an ad. These…

Things I did to make a typing test

Around a week ago, I made a typing test as part of a workshop on bad art. You can find it here . I'd encourage you to try it now! It'll make the rest make sense. In the post below, I go through in detail about the process making it, and what I learned along the way. It's a bit of an info-dump, so feel free to skip it. tl;dr If you have questions about using disco , let me know! 1. Inspiration and…

How I approach LeetCode practice

Like many people looking for a CS job, I've had to do LeetCode style assessments, and have practiced by solving problems on leetcode.com. I have solved around 35 thus far. The process I describe below has worked for me, but it may not work for you. tl;dr : I use Grind 75 , always try to solve a problem immediately and without help, and then use Claude ( section ) to improve my solution. I think…

The making of WebInfoKeeper

1. Introduction and motivation There are several pieces of information that I consistently want access to when browsing. For instance, most job applications ask for my linkedin URL. My current workflow for getting that URL is to a) open linkedin.com, b) go to my profile, c) press ctrl+l to access the search bar, and d) press ctrl+c to copy the address. It's a bit unwieldy, and I'd prefer a way to…

Return new Promise( resolve => {... (RC Reflection)

There's a tradition at RC that at the end of a batch, one should write a return statement to reflect on their experience. Since I'm only half way done, I want to return a promise instead. Before coming to RC, I wondered if it was going to be "transformative." Some people quoted on the website described it in such terms, and I was curious if I would feel something similar. Spoiler alert: it has not…

Intro to python decorators:

I recently learned about python decorators from Dan Bader's excellent resource Python Tricks the Book . I immediately wanted to apply my new-found knowledge, but didn't have a good use-case. So I made a bad one and turned it into a tutorial ( solutions ). I tried to include a good number of exercises; by the end, you should have decorators. Have fun! Feel free to comment on this post with any…

Accountability mechanisms can be joyful

My partner and I both have things we'd like to do every day. For her, it's a set of concussion exercises; for me, some type of workout. Recently, we've experimented with a music-based accountability mechanism: any time one of us completes their task, they can send a song for the other person to listen to. It's still early yet, but it's been surprisingly effective, and I want to talk a little bit…

Recovering from a journaling hiatus

One central difficulty with my present journaling habit is that it is brittle. If I miss a couple of days, writing a new entry feels daunting because I have lost the context of my life. How do I regain it? Fundamentally, I have three options: Suck it up and write a long entry whenever I miss out. I have a friend who does that, but it does not work for me. Have a "today" rule. Treat any day that I…

[ScreenLike] Update 2: Towards a minimum viable product

1. Progress thus far Since my last post on ScreenLike , I have focused mainly on another project. However, I have made some progress: I refactored my code away from using browser.confirm() towards using a dialog box. This required learning a lot more about async functions and await statements! Initially, I added the <dialog> element directly to the html of the page. However, this had the downside…

Claude is obsequious when it realizes it is wrong

Today, I learned about the Boyer–Moore majority vote algorithm - Wikipedia when completing a LeetCode problem about trying to find an element of a list which appears over half the time. I initially used a slower algorithm (with sorting) to solve the problem, but I wanted to figure out the faster solution. I asked Claude for a hint, which got me on the right track, and I figured out the following…

[ScreenLike] Update 1: Why make a screen-time browser extension?

0. Preamble I am currently at the Recurse Center where I am spending twelve weeks becoming a better programmer by doing ... whatever I want! One project I'm working on is a browser extension that I'm calling ScreenLike . In this post (one of a planned series), I'll lay out why I'm making the project, and some of the high level design decisions I'm making. (Other posts in series: 1, 2 ). 1. What is…

Measuring Jailbreaks and Adversarial Robustness on a Toy Problem: Fixed Syntax

Measuring Jailbreaks and Adversarial Robustness on a Toy Problem: Fixed Syntax Abstract/tl;dr Jailbreaks occur when Large Language Models are successfully prompted to generate harmful responses to questions, where they otherwise would not. While there is a significant literature on jailbreak attacks on defenses, there are several difficulties in measuring whether attacks have succeeded. One…