Charlie's Blog


Personal Analytics

I would love a personal analytics script that runs in the background, takes screenshots of my screen every 10s or whatever, compresses it, and saves it locally. It also should record every keystroke and every website I visit.

Which words do I type the most. How many keystrokes a day, by day. How often do I open different apps.

[...101 words]


[...144 words]


Anora Review

Watched Anora last night. I thought it was very good, but it was almost entirely carried by the first third, where Annie and Vanya meet and get married.

The first third was great, middle third dragged on too long and didn’t pull off the “bumbling henchman dark comedy” vibe (think Fargo, or Lock Stock and Two Smokin’ Barrels, which does this best) for me. The final third was where we finally get to meet the parents and the relationship implodes (or rather, drowns silently). It turns out that the qualities that make Vanya the type of person to get married in Vegas on a whim are the same ones that cause him to ditch Annie on a whim.

Something I thought the movie got right: it portrayed Gen Z well and accurately.

[...194 words]


Quotes I Like In No Particular Order

“I think what you ought to do is start by thinking about the simplest things and go from there. For example, you could stand on a street corner somewhere day after day and look at the people who come by. You’re not in any hurry to decide anything. It may be tough, but sometimes you’ve got to just stop and take time.

[...585 words]


The Perfect Blogging System

I spent a few hours making what I consider the Perfect Blogging System. Here’s how it works:

  • My blog CMS is a directory of markdown files. This way I can keep my editing platform as Obsidian. It could be any markdown editor though.

[...203 words]


Toy Project Ideas

Things I want to build in no particular order.

  • Fine tune Llama on my iMessages with different friends. Create an app that looks like iMessage but lets me chat with fine-tuned version of them.
  • Slopstack.

[...117 words]


Politics and the English Language

Here are my notes on Politics and the English Language.

An effect can because a cause. A man may take to drink because he feels himself to be a failure, and then fail all the more completely because he drinks. It is rather the same thing that is happening to the English language. It becomes ugly and inaccurate because our thoughts are foolish, but the slovenliness of our language makes it easier for us to have foolish thoughts.

[...691 words]



What I Talk About When I Talk About Running

Quotes and notes from What I Talk About When I Talk About Running

In every interview I’m asked what’s the most important quality a novelist has to have. It’s pretty obvious: talent. No matter how much enthusiasm and effort you put into writing, if you totally lack literally talent you can forget about being a novelist. If you don’t have any fuel, even the best car can’t win.

[...675 words]


How to Star in Planet Earth

A couple of weeks ago, Sir David Attenborough watched me drink a cup of water.

https://x.com/charliebholtz/status/1724815159590293764?s=20

Or at least, a clone of him did. I recorded the video in a library on a whim, congested and with a bunch of background noise, and it went viral. It hit the top of Hacker NewsBusiness Insider and Ars Technica wrote about it, and the nearly 4 million people watched an AI David Attenborough describe my blue shirt as part of my “mating display.”

You might be surprised (I am constantly) by all the things you can build now. I’ve experimented with building a posture checker and productivity coach that takes screenshots of my laptop screen and yells (constructive) criticism.

In this post, I’ll explain the concepts behind making your own AI narrator.

[...1199 words]


A Better Way To Prompt LLMs in Elixir

llm_sigil_demo.png

If you’re like me, you’re probably using AI in your Elixir apps. In fact, I now by default install two deps in every new Phoenix project:

defp deps do
    [
        {:replicate, "~> 1.1.1"},
        {:openai, "~> 0.5.2"},
    ]
end

But now I have a new one to add to this list — https://hexdocs.pm/ai — and this post is about why.

The OpenAI client is great — it’s a community maintained wrapper around the OpenAI API. It’s a great way to get started with the GPTs. However, the syntax can get tedious.

[...2125 words]


You Can Eat the Same Food Everyday

UPDATE

Reading this one year later and I must admit I did get bored of eating salmon broccoli and rice every day. But not as bored as you may think. I still stand by this.

Here’s a pet peeve of mine. It’s 7pm and I’m trying to decide where to eat.

[...231 words]



Copy to Clipboard with Phoenix Liveview

After making lots of phoenix liveview apps I’ve found myself re-using the same code snippets all the time. I thought I’d start compiling these snippets so it’s easier for myself and others to find them. Here’s the first: copying text to the clipboard.

It’s a bit tricky to get this right. My requirements are:

  1. Works across browsers
  2. The copied content keeps paragraph breaks in initial text
  3. The copy button changes from “Copy” to “Copied” after a moment or two
  4. I can re-use the copy button easily
  5. I can have multiple copy buttons on the same page and that’s not annoying

I found solutions Fly’s blog and the Phoenix docs, but they don’t satisfy requirements 3 4 or 5.

[...536 words]


How to Make Movie Trailers

My new favorite hobby is making trailers for films that don’t exist. In this blog post, I’ll walk you through how I make these AI movies, and how you can too.

Bugsy Shadows — A New York Mystery:

Vanderbilt Express by Wes Anderson:

Planet Zearth narrated by David Ai-ttenborough (skip to 1:40 for the fight scene):

Script

It all starts with the script. Like any good AI filmmaker, let’s ask ChatGPT for a rough draft. Here’s the conversation I had with GPT-4 to create the David Attenborough movie:

"chatgpt_1" "chatgpt_script"

ChatGPT is a solid starting point, but I find the scripts need a bit of a human touch (I thought it would be funnier if the glow leopard encounters a penguin rather than a fungi).

GPT is really good at silly puns.

[...1356 words]


Seneca Notes

Notes from reading Seneca…

Whoever makes up his mind to be happy should conclude that the good consists only in that which is honourable.

“The primary indicator, to my thinking, of a well-ordered mind is a man’s ability to remain in one place and linger in his own company… Everywhere means nowhere. When a person spends all his time on in foreign travel, he ends by having many acquaintances, but no friends.”

No good thing renders its possessor happy.

And if wisdom were given me under the express condition that it must be kept hidden and not uttered, I should refuse it. No good thing is pleasant to possess, without friends to share it.

What progress, you ask, have I made.

[...728 words]


Charlie Munger's Guide to Life

There’s something very seductive about someone successful telling you how to live your life. But most life advice (or, Advice Porn), is pretty useless. That’s why I have a rule for myself for when I fall prey to Advice Porn’s clutches: close the tab. 

But like all rules, there are exceptions, and one of them is this speech by Charlie Munger (Warren Buffett’s partner). It’s about “universal, can’t fail ideas” to live a successful life, and it’s truly great.

[...3790 words]


ShlinkedIn

ShlinkedIn is an open source social network with thousands of members that I started in March 2020. I had three goals for ShlinkedIn:

  1. Learn Elixir.
  2. Create a place for my roommate Sam and I to vent how lame corporate-speak is.
  3. Get a Cease and Desist from LinkedIn to hang on the wall.

[...367 words]


Bid Tac Toe

CleanShot 2024-12-23 at 22.09.44@2x.png

BidTacToe is tic-tac-toe but you bid on the squares. Every turn begins with one player selecting a square that will be up for auction. Each player then submits a bid.

The winner gets to put their letter down in that square. You lose your bid, even if you don’t win the auction.

[...79 words]


Let There Be (Morning) Light

Over the past few months, I’ve changed the amount of light I am exposed to throughout the day and now I sleep better and earlier. I went from convinced that I was a night owl to regularly falling asleep around 10:30pm and waking up around 7:30am. I haven’t noticed any mood benefits, but there is strong evidence that light therapy can improve your mood (and very strong evidence if you have seasonal depression). My interest in lighting was sparked by the Huberman Lab podcast, but I wanted to dig in myself.

[...2088 words]