Announcing WoofWare.PawPrint, a deterministic .NET runtime
WoofWare.PawPrint is now in a shape where it can automatically identify and reproduce concurrency bugs, so I’m calling it releasable.
Recent content on Patrick Stevens
WoofWare.PawPrint is now in a shape where it can automatically identify and reproduce concurrency bugs, so I’m calling it releasable.
I took part in Midnight Madness, so here’s a trip report.
Claude Opus 4.7 is solidly superhuman at stylometric identification of authors.
Travelogue of another trip to Norway.
A fun prompt to use with a powerful LLM, to learn about something in great detail.
I keep seeing people going on about the 3.9 - 3.11 = 0.79 thing, but we already know why they do that and how to avoid it!
I wrote a basic LLM-based code review tool that’s distressingly effective.
I’m a bit concerned about a failure mode that is increasingly arising with LLMs: the divorce between how something looks, and its quality.
Why booleans are an advanced technique that should be used with care.
I am forever astonished that people describe Python as a simple language. Here are some of the things I found very surprising about it.
While writing an MSIL interpreter, I discovered a bunch of unexpected things about the .NET runtime.
A basic but functional expect-testing framework for F#.
Since my last post about this in 2024-03, LLMs have become a distinctly positive addition to my ability.
I’ve never actually seen anyone write down precisely the way I think about consciousness, so here it is: it’s (gasp!) like a blockchain.
How to get a NativeAOT build using nixpkgs
Last weekend I was in a discussion ostensibly about whether the mind is nonphysical. Much of the discussion ended up as a rather polite shouting match about Mary’s Room. Here is what I actually believe about it.
For a film list, see films . This page holds a list of the books I am reading, and a list of books I have read (starting from the 8th July 2013, which is when the list started). I start with high hopes of keeping the list updated in real time, but of course this plan may go off the rails. There is also a list of things I very strongly recommend reading - they changed my thought patterns…
Modern software practices and their sadness.
I went to a one-day intro to massage taster course, and it was fun and interesting!
My F# source generators have some new features, including an argument parser.
I’ve made a GitHub workflow to assert that all required GitHub checks are complete, and one to publish and attest NuGet packages.
The questions whose answers I don’t know, and the things I intend to learn, on the way to understanding a paper.
Those who would give up essential safety, to purchase a little temporary simplicity, deserve (and will get) neither safety nor simplicity.
To me it’s got a specific meaning, but I’ve seen it used much more generally, and I think its meaning should not be polluted.
This page holds an incomplete list of games I have played. Video games In progress ibb and obb. Fun two-player co-op, neat and slightly mind-bending physics. It Takes Two. Amusing but not worth the price, I think. This is more like a constant stream of “oh, what funny one-off mechanic have they implemented next”. Not in progress Chants of Sennaar. An extremely impressive 81% of players…
Another attempt to explain that the Yoneda lemma is actually intuitive.
After a decent while programming with ChatGPT, I’m not sure it’s even a net positive on my ability.
All the reasons I know for why YAML is not a superset of JSON.
Travelogue of my trip to Norway.
A question about the definition of a no-confusion type.
How to start a process into a suspended state on Linux
Some F# source generators to solve common problems I have.
A bunch of ways the iOS user interface is bad, and some undiscoverable features.
How to handle stacked pull requests in a repository which requires squashing all history on merge.
The thought process behind solving a particular Raymond Smullyan chess retrograde analysis puzzle.
A talk I gave at work about the Nix build system.
A talk I gave at work introducing property-based testing and then giving some more advanced techniques.
Exploding the incredibly terse proof into a bunch of exposition.
I used to maintain an archive of the Imre Leader Appreciation Society for posterity through WebCitation, but WebCitation itself is now dead, so here I simply link to [Konrad Dąbrowski’s capture][https://www.konraddabrowski.co.uk/ilas/index.html).
I have deleted almost all of the Anki decks on this page, because I think they would do more harm than good. They were made during a time when I didn’t really know how to use Anki appropriately. Any remaining decks here are CC-BY-SA. Geography (the deck has a misleading name; it’s actually a general Geography deck). You can filter out the london-tube tag if you like, or world-capitals…
A syllabus for a fireside chat to give at work, on Git
This page holds a list of films I have watched, spoiler-free, starting from 9th January 2015. Project Hail Mary : Great film. Visually beautiful; tense where appropriate; I was absolutely surrounded by people crying. Strongly recommended; I saw this on the BFI IMAX screen, which I think was a good choice. Dungeons and Dragons: Honour Among Thieves : Really rather good! As they say, “Consider…
Some basic questions I had about transformers, and their possible answers.
If I ever become rich and famous, I’m sure I’ll be besieged with requests for “how to do better in life”. I hereby head such requests off at the pass, by providing a list of lifehacks I am either using or considering the use of. For learning smallish but numerous facts (such as a list of theorems), I use Anki , which is a spaced-repetition learning system, allowing you to…
I am Patrick Stevens, a software engineer based in London, England. I completed my BA+MMath at the University of Cambridge. Social media accounts: Github . Hacker News . Email . LinkedIn (used almost never). Twitter (used almost never). My handle is @smaug12345. I am very interested in maths and puzzle-solving. For instance: I have one of the top twenty answers on the Maths StackExchange by…
This website has been around in one form or another since June 26th, 2013. The website is hosted on DigitalOcean and is served statically by NGINX . Cloudflare is sitting between my DigitalOcean droplet and you. Your HTTPS connection is secure to Cloudflare, and secure from Cloudflare to the droplet. The rendering engines are Hugo for the site, pdftex for PDFs, and ImageMagick to create image…
My Brita water filter does not in fact purify.
A vignette on the theme of ‘do not allow yourself to get into the habit of supplying the -f flag to rm ’.
I tend to argue things in a particular way because I’m in a high-trust environment.
An introduction to the crate pattern for representing existential quantification in F#.