All Posts

Software Isn't Dying, but it's certainly changing

Software isn’t going to die anytime soon. But “static” software might. When AI can generate a custom tool for a specific workflow in minutes, nobody’s going to pay a monthly subscription for a one-size-fits-all version of the same thing. The SaaS model depended on the fact that writing, deploying, and maintaining code was hard. That’s becoming less true by the day.

Structured Outputs the easy way with BAML

While working on Treechat’s new treesearch feature (a kind of mini-perplexity that searches the web for you and reads through all the results to answer the question you’re actually asking) I needed to build a small classifier to figure out if the search result is relevant to what the user was asking or not.

Introducing 1bin.org - an easy way to download and run CLI tools on Linux and Mac without installing them

This post is about how and why I built nikvdp/1bin and it’s companion site 1bin.org. If you just want to download static binaries of CLI tools, check out 1bin.org. If you’re interested in learning how to create your own self-extracting 1bins, take a look at the repo.

Introducing bbb - the easy way to build distributable CLI tools in Clojure with babashka and GraalVM

I’ve been spending the majority of my coding hours in Clojure lately and have really been enjoying it’s combination of brutal effectiveness, interactivity and general elegance. There’s been one thorn in my Clojure side though – it’s pretty terrible for building CLI tools and small scripts because at the end of the day Clojure is running on the JVM, and Java-based tools take an infamously long time to start.

Lesser known FZF tricks

junegunn/fzf is one of my absolute favorite terminal productivity tools.

It’s most common use is as a superpowered Ctrl+R (reverse isearch) to make finding and executing commands from your shell history fast and easy:

A tool to export Notion pages → Hugo-powered static sites/blogs

This post is about how/why I wrote notion-blog-exporter, if you just want to use it, go here.

I want to write more than I do, and had been noticing that one of the reasons I don’t write that many blog posts is that it’s hard to get started. I host this blog statically using Hugo, and while my current workflow works fine I write just infrequently enough that I have to relearn it every time. Currently the workflow goes something like this: pull up a markdown editor, find my local blog folder, look up the command to start hugo in preview mode, point a browser at the local hugo server, and then finally start writing. After looking at vim and writing for a bit, I then have to scroll around in my browser window to re-read my latest changes.