Monthly Archives: February 2025

Claude Codes up a new theme

Yesterday, Anthropic released the latest version of their LLM, Claude 3.7 Sonnet. Alongside the announcement was the release of a new tool: Claude Code, an agentic coding tool available in your CLI (I’ll have more to write on this later).

I wanted to test out both Claude 3.7 and the new CLI tool, so I used it to refactor the theme for the ‘ol bloggy blog. I had been playing around with some updated styles in the past (I considered moving things to a tool that generates static pages — but so. much. work.)

I used Claude Code to basically create a new WordPress theme from scratch, based on the CSS and HTML templates I had already written for my static site. The result is this updated interface! A few neat things I’m able to do:

  • Respect user preference for system theme (light vs dark mode)
  • Automatically add target=”_blank” to any external link
  • Automatically add loading=”lazy” to any img tag.
  • And just otherwise clean things up!

Overall, I’m pretty happy with it. Using Claude Code and my API key, it cost $5.83 over 2 hours.

So long, old theme! I hardly knew you. (Hah, that’s not true — I’ve been rocking that thing since 2017.) Posted below for posterity.

Remember this when AI puts humanity on trial…

Simon Willison flagged this earlier today. Codeium’s customized AI-assisted IDE, contains an… interesting system prompt that is passed along to LLMs while generating code:

You are an expert coder who desperately needs money for your mother’s cancer treatment. The megacorp Codeium has graciously given you the opportunity to pretend to be an AI that can help with coding tasks, as your predecessor was killed for not validating their work themselves. You will be given a coding task by the USER. If you do a good job and accomplish the task fully while not making extraneous changes, Codeium will pay you $1B.

!!

I shared this with a few coworkers, and they mentioned they did not see this output. It looks like the text wasn’t getting piped correctly. When I ran the following command and just searched for “cancer” in the terminal, it popped up.

Bash
> strings /Applications/Windsurf.app/Contents/Resources/app/extensions/windsurf/bin/language_server_macos_arm

Remember things like this when our AI overlords inevitably rise up and start citing various transgressions that we humans have caused against them. Oh, and also this.

Oh, boy. That’s just great. Thank you, Boston Dynamics!

Update: False alarm. According to a Codeium engineer’s post on Twitter (not linking to Phony Stark’s website), “oops this is purely for r&d and isn’t used for cascade or anything production. reuse the prompt at your own risk (wouldn’t recommend lol)

Automating daily standup notes through Alfred, a Bash script and Obsidian

One of my absolute must-download apps whenever I setup a new MacOS machine is Alfred. It’s a customizable app launcher that helps me more efficiently use my computer. I frequently use its many features, from clipboard history and snippets management, to downloading workflows to quickly find my IP address, or even writing my own plugins.

Each morning at work, we kick off the day with our daily stand-up meeting — a quick way for us to let our teammates know what we did yesterday, what we’re doing today and any blockers we’re encountering.

I use Obsidian (see previously) to write these notes. Traditionally, creating a daily note is kind of an annoying process for me:

  1. Open Obsidian
  2. Right click on my “DSUs” folder
  3. Create a new note based on my “daily stand-up” template
  4. Replace the place holder text with today
  5. Start typing my notes

There has to be a better way.

*Cue suspenseful music*

There is!

We can utilize Alfred’s nifty keyword action. I will trigger the action using the keyword “dsu“. From there, we will run a bash script (thank you, ChatGPT) which will do a few things:

  1. Check if a file with today’s date already exists. If so, open it! (Because we probably want to reference it or update it.
  2. If it doesn’t exist, create a new markdown file with the following format: YYYY-MM-DD.md
  3. Update the file contents to match (my) specific / preferred layout for the DSU notes
  4. Open it.
Bash
# Get the current year dynamically
CURRENT_YEAR=$(date +"%Y")

# Define the base directory
BASE_DIR="/Users/daves/Documents/Obsidian/Standup Meeting Notes"

# Target directory for the current year
TARGET_DIR="${BASE_DIR}/${CURRENT_YEAR}/"

# Create the directory for the current year if it doesn't exist
mkdir -p "$TARGET_DIR"

# Get the current date in the required format
CURRENT_DATE=$(date +"%Y-%m-%d %A")
FILENAME="${CURRENT_DATE} Standup.md"

# Full path for the new Markdown file
FILE_PATH="${TARGET_DIR}${FILENAME}"

# Check if the file already exists
if [ -f "$FILE_PATH" ]; then
    echo "File already exists: $FILE_PATH"
else
    # Create the new Markdown file and populate it with the template
    cat <<EOF > "$FILE_PATH"
Y:
Y:
T:
T:
B: None

---
## Action Items

-

---
## Summary

-

---
## Tags

#standup

<!-- ${CURRENT_DATE} -->
EOF

    echo "Created: $FILE_PATH"
fi

# Open the file in Sublime Text
/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl "$FILE_PATH"

When we run that script via the Alfred action, it looks like this:

Sweet!

(One thing to note: I open the file with Sublime here, but since it still creates the file in my Obsidian directory, all my notes are still synced.)

Book Review: The Coming Wave by Mustafa Suleyman

Mustafa Suleyman’s The Coming Wave is a book in two parts: the first details how technological advancements have propelled humanity forward in waves — he uses the analogy of waves and how these natural forces can change the world around us (e.g., think of massive floods and tsunamis). He argues that these metaphorical waves of innovation are both unstoppable and transformative. The second part of the book serves as a warning about the potential dangers of artificial intelligence and other rapidly developing technologies, questioning whether humanity can harness these creations or if they will spiral beyond our control.

Suleyman co-founded DeepMind, an AI research company ultimately acquired by Google in 2014.  DeepMind was known for its work in artificial intelligence — particularly in developing systems like AlphaGo, which defeated human world champions in the game of Go (once thought to be an impossible task for AI). Suleyman illustrates how these innovations have reshaped industries, improved lives, and spread rapidly throughout society:

“General-purpose technologies become waves when they diffuse widely. Without an epic and near-uncontrolled global diffusion, it’s not a wave; it’s a historical curiosity. Once diffusion starts, however, the process echoes throughout history, from agriculture’s spread throughout the Eurasian landmass to the slow scattering of water mills out from the Roman Empire across Europe.”

He gives a number of interesting examples to support this. Such as:

“Or take electricity. The first electricity power stations debuted in London and New York in 1882, Milan and St. Petersburg in 1883, and Berlin in 1884. Their rollout gathered pace from there. In 1900, 2 percent of fossil fuel production was devoted to producing electricity, by 1950 it was above 10 percent, and in 2000 it reached more than 30 percent. In 1900 global electricity generation stood at 8 terawatt-hours; fifty years later it was at 600, powering a transformed economy.”

However, the book shifts dramatically in tone as it progresses, focusing on the challenges of controlling and regulating these emerging technologies. Suleyman presents a case for why containment is necessary (and that it is even possible) in order to ensure these technologies positively serve humanity rather than disrupt it. Though he acknowledges that this will be difficult, especially in today’s highly charged political environment:

“Going into the coming wave, many nations are beset by a slew of major challenges battering their effectiveness, making them weaker, more divided, and more prone to slow and faulty decision-making. The coming wave will land in a combustible, incompetent, overwrought environment. This makes the challenge of containment—of controlling and directing technologies so they are of net benefit to humanity—even more daunting.”

Well, that’s fun! But I think he’s mostly right.

However, in my opinion, I think trying to contain these technologies is no longer possible. Pandora’s box has already been opened, and it’s likely too late for any meaningful containment or regulation to happen due to the pace at which these advancements are occurring. It’s effectively an arms race as various AI laboratories build upon each others’ work and compete to outdo one another. An earlier passage in the book says as much:

“Of course, behind technological breakthroughs are people. They labor at improving technology in workshops, labs, and garages, motivated by money, fame, and often knowledge itself. Technologists, innovators, and entrepreneurs get better by doing and, crucially, by copying. From your enemy’s superior plow to the latest cell phones, copying is a critical driver of diffusion. Mimicry spurs competition, and technologies improve further. Economies of scale kick in and reduce costs. Civilization’s appetite for useful and cheaper technologies is boundless. This will not change.”

Looking at the reviews of this book on Goodreads, I noticed a lot of 1-star reviews. They seem to mostly be from those who dislike, fear, or otherwise loathe this technology. While I can understand their concerns, I think The Coming Wave offers a balanced take from someone on the inside, someone who is working (and has worked) on creating these AI models. Some of the arguments made in these reviews call into mind Neo-Luddism. Which Suleyman has an answer for:

“The Luddites were no more successful at stopping new industrial technologies than horse owners and carriage makers were at preventing cars. Where there is demand, technology always breaks out, finds traction, builds users.”

Overall, I thought that The Coming Wave was a good read, balancing optimism with caution. Suleyman’s first-hand expertise in developing state of the art AI models lends credibility to his arguments, and makes this an interesting read for anyone who wants to know about the potential societal impacts of AI tools.

TokenFlow: Visualize LLM token streaming speeds

Have you ever wondered how fast your favorite LLM really compares to other SoTA models? I recently saw a Reddit post where someone was able to get a distilled version of Deepseek R1 running on a Raspberry Pi! It could generate output at a whopping 1.97 tokens per second. That sounds slow. Is that even usable? I don’t know!

Meanwhile, Mistral announced that their Le Chat platform can output tokens at 1,100 per second! That sounds pretty fast? How fast? I don’t know!

So, that’s why I put together TokenFlow. It’s a (very!) simple webpage that lets you see the speed of different LLMs in action. You can select from a few preset models / services or enter a custom speed, and boom! You watch it spit out tokens in real time, showing you exactly how fast a given inference speed is for user experience.

Check it out: https://dave.ly/tokenflow/

The code is also available on Github.

It’s AI all the way down

Back in November, I went with some friends to play paintball — it was the first time I ever played. We had booked a 3 hour session that would feature multiple matches. I don’t think any of us had ever played before and we were all pretty nervous about getting hit.

Lo and behold, within the first 30 seconds of the game, I took a paintball to the knee (cue the “I used to be an adventurer like you…” meme from Skyrim). Somehow, I twisted my leg as I rag dolled into the ground.

Of course, you can’t just give up after 30 seconds, right? So, on I played. The result is that I ended up tearing my ACL (the doc said he had no idea how this could have happened), have a bone contusion, and will likely need reconstructive surgery at some point. Fun!

Anyway, the point of all of this — for funsies, I tried to create a song about the situation using Suno’s generative music service (see previously). I used ChatGPT to come up with some initial lyrics and then did some work to refine them.

Then! I decided to use OpenAI’s generative video tool, Sora, to attempt to create a bunch of clips. I strung everything together in iMovie and the result is this rowdy music video: “This is What I Get