RSSAmplifier

Blog

Davis Haupt's Blog

Thoughts and writeups from Davis Haupt.

davi.shRSS feed ↗60 posts

Latest posts

Reviewing The Faith of Beasts by James S.A. Corey

The Captive’s War is no Expanse , but I’m enjoying this new series by James S.A. Corey all the same. Maybe it’s because I’m reading these books as they’re published rather than binging the first few installments back-to-back, but the characters at the center don’t feel nearly as fleshed out as the crew of the Rocinante . I appreciate how rather than an insanely convoluted gotcha, the twist had…

Reviewing The Caves of Steel by Isaac Asimov

I first read The Caves of Steel over ten years ago. What always stuck with me was the depiction of New York as a capital-c City: an enclosed system stretching from Long Island to Trenton. Linking it all together is the Expressway, an interlocking set of moving conveyors which let you accellerate from stationary to 60 miles per hour without any vehicles or traffic. That specific innovation featured…

Reviewing Here Where We Live Is Our Country by Molly Crabapple

A history of the Jewish Labor Bund, Here Where We Live Is Our Country plots the arc of the organization from the tsarist Pale of Settlement, to interwar Poland, into war-torn Warsaw and somehow, barely, out again. Crabapple writes in her own voice and interweaves family history with the wider historical scene. The book’s chapters have no citations or footnotes — they’re all relegated to endnotes…

Reviewing The Manager's Path by Camille Fournier

The Manager’s Path walks the reader through the different phases of leadership software engineers encounter in their career, from intern mentor and tech lead to VP and CTO. The book is well written and filled with good advice. I actually first picked it up towards the end of 2024 and I stopped reading right at the point of where I was in my own career. It was somewhat helpful framing tool, but I…

Reviewing How To Do Things by David Cain

I’m not sure where I first read about How To Do Things or why I decided to buy it, but I saw it sitting in my “Downloads” folder when I was on a plane without WiFi and opened it up. It was a pretty short, pretty simple self help booklet, but it made an impact on me. At its core it’s a simplified pomodoro method with a key insight for people who’ve gotten by with hyperfocus for most of their…

Reviewing The Great Alone by Kristin Hannah

The Great Alone was an emotional rollercoaster. A mother-daughter novel and a modern Romeo and Juliet love story wrapped up in a beautifully described setting. Hannah makes Alaska feel like another planet compared to the Lower 48. The portrayals of nature reminded me most of Kim Stanley Robinson in Red Mars , which is one of my favorite books of all time. There were slower parts, and parts where I…

Ideas for an Agent-Oriented Programming Language

Software development is changing. Tool calling, inference scaling and RL with Verifiable Rewards have combined over the past year to enable agent harnesses like Claude Code which can reliably navigate, modify and contribute to large codebases. LLMs scale amazingly well with the amount of training data you throw at them. But I’ve been thinking about how to build tools that work alongside the…

Reviewing Project Hail Mary by Andy Weir

I read Project Hail Mary for the first time soon after it came out and devoured it in a single sitting — ruining my night’s sleep in the process. Even though I already knew the twists and turns of the plot, I still couldn’t put it down on this second read-through. Just like The Martian , the scientific method infuses everything in this book. Moreso than Weir’s first novel, Project Hail Mary has a…

Reviewing Culpability by Bruce Holsinger

Who’s at fault in a fatal accident involving a self-driving car? Culpability investigates the abstract morality of the trolley problem while exploring the emotional fallout among the family who were the lucky survivors of the crash. The book is firmly rooted in the perspective of the narrator Noah, a successful but run-of-the-mill lawyer at a Maryland law firm, his brilliant wife Lorelei, a…

Reviewing Mistborn: The Final Empire by Brandon Sanderson

After last year I wanted to give Sanderson another shot. This time I chose one of his most popular series rather than a newer, spin-off work. Mistborn stuck pretty closely to some common fantasy tropes. I thought Sanderson’s main characters had more depth to them in the book, which contributed to me enjoying the book slightly more than Tress . Allomancy is an interesting and certainly well-thought…

Reviewing A Tree Grows in Brooklyn by Betty Smith

A Tree Grows in Brooklyn is a quintessential coming of age story. Not just for Francie — the protagonist who we follow from the age of 10 through her going off to college — but also for New York itself, which we see change through industrialization along with the characters. The first part (of five) is on the slower side, with barely-connected vignettes that paint a picture of what it was like to…

Reviewing The Strength of the Few by James Islington

This is a tough sequel to review without any spoilers for The Will of the Many , so I’m not going to attempt it. Spoiler warning for Book I below! The Strength of the Few picks up right where The Will of the Many left off: Vis, the protagonist, has been simultaneously copied into two other worlds called Luceum and Obiteum while his story also continues back in the world of Book I, called Res.…

Thinking About Thinking With LLMs

After reading Developing our position on AI from the Recurse Center , the corresponding entry in my newsletter grew long enough I’ve decided to break it out into a full blog post. Above and beyond its specific findings, I think the post charts a path for a more civil and considered mode of discussion that we should all strive for on the Internet and in our own lives. I’ve long been fascinated by…

Reviewing The Will of the Many by James Islington

The Will of the Many started off feeling like a cross between the political setting of Red Rising and the magic system of The Fifth Season . The world felt big, but not particularly filled in — the author throws out place names and countries, and we meet characters from different corners of the now world-spanning Catenan Republic, but the places don’t feel particularly differentiated or deep. A…

Reviewing The Telling by Ursula K. Le Guin

Back to science fiction with another installment in the Hainish Cycle! The Telling is about orthodoxy, totalitarianism, and cultural revolution. It felt different than other sci-fi I’ve read from Le Guin. Instead of being a man from an alient planet like Hain-Davenant or Annares, the narrator is an Indian-Canadian woman from Earth. While the story takes place on the recently-uplifted planet Aka,…

Reviewing The Farthest Shore by Ursula K. Le Guin

Compared to the first two books in Earthsea I was not as excited about The Farthest Shore . Some of the scenes felt — for lack of a better word — a bit trippy, which made the narrative a bit harder to follow. Although I do understand that Earthsea is marketed for a late-teen audience, I may be getting a bit tired of the coming-of-age tropes. “The Farthest Shore” still continues to fill out the…

Reviewing The Tombs of Atuan by Ursula K. Le Guin

The second installment of the Earthsea series, I enjoyed this book about as much as A Wizard of Earthsea . Le Guin puts a lot of effort into fleshing out the world of Earthsea, but unlike other fantasy worlds, she’s doing it through the eyes of her characters rather than through exposition or lore dumps. Ged, the protagonist of book one , and Arha, the protagonist of this book, grew up in…

Reviewing A Wizard of Earthsea by Ursula K. Le Guin

Until now I’ve only read Le Guin’s science fiction work, and have wanted to give her fantasy series Earthsea a try for a while. I really enjoyed this first installment. The societies that the protagonist ventures through felt lived-in in a way that feels missing from some other high fantasy like the Lord of the Rings. The way that magic and the sorcerers and witches who perform it are weaved into…

Reviewing You Dreamed of Empires by Álvaro Enrigue

A retelling of the initial encounter in Tenoxtitlan between the Aztecs and the Spanish. I found it a bit hard to get into this book. Translations are always tough since translators are rarely as skilled with words as the original authors and there’s two levels of intention and meaning to work through. One thing I did enjoy was how Moctezuma and Cortés, both giant historical figures, were brought…

Reviewing A Fisherman of the Inland Sea by Ursula K. Le Guin

I read many of Le Guin’s more classic entries in her Hainish Cycle back in college and since then have been fascinated with the world she built for novels like The Disposessed and The Left Hand of Darkness . A Fisherman of the Inland Sea is a series of short stories of which only the last three have anything to do with the universe of the Hainish Cycle. These three all revolve around the…

Reviewing Tress of the Emerald Sea by Brandon Sanderson

Part fantasy, part pirate novel, part fairy tale, this was the first Brandon Sanderson book I’ve read, and I’m not sure it was the best one to start on. The main things I enjoyed in this book were the worldbuilding and the writing style. Unfortunately, I had a hard time disentangling the character of the in-universe narrator with the author, who took almost every opportunity to drop “wisdom” and…

Reviewing Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig

I really enjoyed this book — its final lines even surpassed The Great Gatsby as my favorite closing lines of a novel. But I couldn’t find myself justifying a rating higher than 4/5 when I broke it down and tried to explain what exactly I enjoyed so much in it. I caught myself after a few minutes, smiled, and realized in some ways that’s what Zen and the Art of Motorcycle Maintenance was all about.…

Reviewing Abundance by Ezra Klein and Derek Thompson

I listen to both Ezra’s and Derek’s podcasts regularly and was pretty familiar with the outline of “Abundance” the concept from Klein mulling over his thoughts over the past four years on the Ezra Klein Show. I’m broadly sympathetic to the aims of the book but I felt like Abundance fell short of crafting the most convincing argument for “a liberalism that builds.” I don’t know if the felt lack of…

Reviewing Golden Son by Pierce Brown

I found Golden Son to be even more of a page-turner than Red Rising . The setting of the book changes pretty significantly and the cast of characters around the protagonist mostly shifts as well, but I was kept interested by how the author continues to build out the world of the series. What brings my review down a star is how Brown moves from relying on themes and ideas from other sci-fi series…

Reviewing Red Rising by Pierce Brown

A fun sci-fi novel that brought together a lot of parts of other series and franchises into an interesting world: a solar-system spanning oligarchy with a caste system backed by geenric engineering whose ruling class reveres the ancient Romans more than any enlightenment-era political theorist. Some parts will stick out as a bit derivative: the main setting of the book is a Hunger Games-esque…

2024 in review

I wrote most of this post during the week between Christmas Eve and New Year’s Day when enough people in New York have left the city that it makes it quite difficult not to turn introspective. It’s been a pretty big year for me and for this blog, so I thought it would be fun to take a look back on the year as we all move into the second half of the decade. Blog Posts I wrote four long-form blog…

Reviewing Tomorrow, and Tomorrow, and Tomorrow by Gabrielle Zevin

A book about life, love, and video games. I honestly didn’t know what I was getting into when I started this book, but by the time they described the twist behind Sadie’s first video game in the second chapter I was hooked. Some people may be put off by how the characters and the third-person narrator talk about video games as a high art form but I love hearing and seeing how digital media can…

Reviewing A Deepness in the Sky by Vernor Vinge

This was one of the most creative and enjoyable sci-fi books I’d read in a while. The two main storylines are split between spider-like intelligent aliens on a remote planet and the conflict between humans in orbit who are preparing to make First Contact. The way that the alien storyline is “translated” into English is a very compelling storytelling device. The human storyline paints a vivid…

[TIL] nix flake update: Updating dependencies of a Nix flake

I just realized today that I haven’t updated VSCode on my Mac in almost a year. It turns out that if you install any program through Nix, its version is determined by the version of nixpkgs in your flake.lock file. To update nixpkgs and get newer versions of all your programs, cd into the directory with your flake and run nix flake update . It’s the pacman -Syu of nix!

Configuring VSCode with Nix on macOS

Welcome back to the Nix on Mac series! By the end of this post, you’ll be able to fully configure VSCode through your Nix flake via home-manager , which we set up in part 2 . This includes: Custom keybindings and settings Installing themes and extensions from a nixpkgs overlay Properly aliasing VSCode and other macOS applications to /Applications for Spotlight Without further ado, let’s dive in!…

The Spice Didn't Always Flow

Dune: Part Two hit theaters recently, which got me thinking about my own experience reading Dune in the past, what I enjoyed about it, and my own personal headcannon that made this novel more enjoyable for me. And hey, it’s April Cools , so why not put pen to paper here? Credit to this reddit thread for the initial discussion, but I hope I’ve expanded on the concept below. Questions I’ve read Dune…

Managing dotfiles on macOS with Nix

In part one of this series we installed Nix, set up our system configuration with nix-darwin , and installed some packages at the system level. In this post, we’ll set up home-manager . Unlike nix-darwin , home-manager is cross-platform: it works across NixOS, macOS, and anywhere else Nix can be installed. It was difficult at first for me to understand how home-manager and nix-darwin should…

Package management on macOS with nix-darwin

I think Nix is really cool . Nix the package manager and functional configuration language is most often associated with NixOS the Linux distro, but nix-darwin makes it almost as easy to declaratively configure macOS as it is to configure NixOS installations. Even if you’ll still relying on Homebrew for package management and never touch nixpkgs, I’d say that Nix with nix-darwin provides the best…

What I Like About Nix

I got a new computer recently and decided to take the plunge setting it up with Nix 1 . I wrote up a snippet on how I set everything up and you can find my whole configuration on GitHub . I’ve only scratched the surface of what Nix can do – In this post I wanted to focus on my subjective impression of Nix so far and why I feel I’ve been enjoying it. Long-term, shared memory No need to worry about…

[TIL] nix develop -c $SHELL: Run zsh with 'nix develop'

I built my development flake for this website with the FlakeHub CLI . That flake uses pkgs.mkShell to load in binary dependencies to the development environment. I run zsh defined and configured by nix-darwin , so it was pretty jarring getting thrown into a plain bash shell when running nix develop . Luckily the fix is simple. Rather than just running nix develop , run: nix develop -c $SHELL and…

[TIL] nix-darwin and home-manager: Setting up Nix on macOS

I recently got a new computer and am spending some time actually digging into Nix for managing dependencies. My main issue the last time I tried using Nix was how tough it was for me to wade through the documentation, so I was determined to try a different path this time. I started off with the very opinionated Zero to Nix tutorial series, which I thought was a great introduction. After learning…

Honing Your Craft

Pablo Picasso was one of the most famous modern artists of the 20th century. While many of his paintings border on the abstract, he sharpened his artisitc skill on more realistic and traditional styles. Novelty and creativity are important parts of great art, but just as necessary to making anything great is the technical ability to take an idea and represent it in the real world — even abstract…

[TIL] freeport: Kill a process that's hogging a port on MacOS

Every once in a while, a development server on my laptop gets stuck open when the terminal that spawned it has already closed. I normally have to take 5 minutes or so to search through StackOverflow to find out how to kill the process that’s hogging up that port, so I finally made a script for it: #!/bin/sh if [ $# -eq 0 ]; then echo "usage: $0 <port number>" exit 1 fi lsof -t -i tcp:" $1 " |…

[TIL] Json: Typescript type for the JSON spec

Some JavaScript types like dates are not representable directly with JSON and require extra care to parse back out to a JavaScript object after they’re serialized. If you want to make sure that you are only stringify-ing JSON-safe types, you can use this type to represent objects compatible with the JSON spec : type Json = | { [ key : string ] : Json } | Json [] | string | number | true | false |…

[TIL] typesEqual: Ask the Typescript compiler how two types are different

type FirstType = {}; type SecondType = {}; const typesEqual = < A , B extends A , C extends B >() => {}; // This will fail to compile if FirstType and SecondType are not equivalent. typesEqual < FirstType , SecondType , FirstType >(); Found in this StackOverflow answer by Almaju . I was replacing a hand-written validator with Zod and wanted to make sure my new type inferred with Zod was…

Asking the Right Questions to ChatGPT

This is my generative AI take. I’m sure there are many like it, but this one is mine . When it comes to social trends I’m often on the far side of Moore’s Chasm . I signed up for Snapchat a year after all of my friends, and joined Instagram two years after everyone else. So it was only appropriate that it took weeks after the internet was set on fire for me to see the value that applications of…

[TIL] ListSerializerMixin: Specify a different viewset serializer for lists

I often want to include related nested objects in my Django REST Framework ModelViewSet s for CRUD operations, but don’t want those related objects cluttering up the list view. To accomplish this, you can return a serializer from get_serializer_class() that doesn’t include the nested relation when the ViewSet action is list . I ended up doing this on a bunch of viewsets, so I factored the logic…

[TIL] getUrl(): URL routing for content collections

Astro added content collections in v2.0, and while it’s overall a big improvement for pages like blog posts where there’s a uniform schema, it makes generating links to your content just a bit harder than file-based routing. I added a helper function and some Typescript types to content.ts to make it easy to map content collections to URLs in a typesafe way that your editor can help auto-complete.…

[TIL] form_valid() overload: Handle uploads with class-based generic views

The Django documentation describes how to bind uploaded files when using function-based views. There’s no easy equivalent I could find on how to do the same for generic, class based views like CreateView . The right way to do it is to override the form_valid() method on the view: def form_valid (self, form): file = self .request. FILES [ "file" ] self .object = form.save( commit = False ) self…

Configuring VSCode as a Keyboard-Centric IDE

One of my first posts on this blog in 2020 was about my experience switching from VSCode to Emacs for all of my text/code editing work. I still agree with all of the benefits to Emacs I wrote about back then, and my posts on Obsidian show my respect for org-mode as a format and the ecosystem around it – especially org-agenda . However, as you might have noticed when the file extension on my posts…

Improving My Writing Style One Python Script at a Time

One of my pet peeves about my natural writing style is how I lean into complex sentences divided by commas. Left unchecked, my prose starts looking like it might be ChatGPT’s attempt at writing a blog post in the style of s-expressions. I thought it would be neat to try and write some code to help me proofread for this specific issue and improve my posts. So much of my Python experience is from…

Mocking Obsidian's Markdown Parser

I’ve been working on a plugin for Obsidian called Obsidian Full Calendar on-and-off for the past 10 months or so. For most of that time the plugin has had no unit tests, and I finally got around to adding some test coverage during a big refactor. Tests are easiest when code doesn’t have side effects since filesystems and network calls often aren’t available in the environment the tests are running…

Deploy a Django app with fly.io

I started a new project a few days ago built with Django. Heroku is killing their free tier , and I’ve read that Fly.io is the cool new thing , so I decided to try it out. Overall, Fly has great documentation. Their Language and Framework Guides are pretty comprehensive, but in a list that includes popular frameworks like Rails and Laravel alongside less boring options like RedwoodJS and Remix, I…

Hello, Solar System!

Hello World, again ! I’ve rewritten this website using the Astro web framework . Astro’s very new — it had its 1.0 release just under two months ago. There’s three things that got me excited enough about it to rewrite my whole site. JSX . JSX is best known as the templating syntax that powers React. While Astro can integrate with React , Vue , Svelte , or any other framework from a growing list ,…

Renting in New York City

I just signed a lease for my second apartment since moving to New York City after college. Some friends asked me for advice on how to find an apartment here, and I didn’t realize at first how many opinions I have on the whole process. I’ve tried to distill my thoughts and approach here. Renting an apartment in New York is all about tradeoffs, mostly between time and money. If you’re willing to…