Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 195
  1. 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.

  2. Midnight Madness London 2026

    I took part in Midnight Madness, so here’s a trip report.

  3. Claude knows who you are

    Claude Opus 4.7 is solidly superhuman at stylometric identification of authors.

  4. Another trip to Tromsø

    Travelogue of another trip to Norway.

  5. Fun LLM prompt: where are my mental models defective?

    A fun prompt to use with a powerful LLM, to learn about something in great detail.

  6. LLM arithmetic

    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!

  7. Robocop: automated code review

    I wrote a basic LLM-based code review tool that’s distressingly effective.

  8. LLMs sanding off the edges

    I’m a bit concerned about a failure mode that is increasingly arising with LLMs: the divorce between how something looks, and its quality.

  9. Boolean blindness

    Why booleans are an advanced technique that should be used with care.

  10. Some Python surprises

    I am forever astonished that people describe Python as a simple language.

  11. Things I've learned about the .NET runtime

    While writing an MSIL interpreter, I discovered a bunch of unexpected things about the .NET runtime.

  12. Announcing WoofWare.Expect

    A basic but functional expect-testing framework for F#.

  13. LLM effect on my programming (2025 edition)

    Since my last post about this in 2024-03, LLMs have become a distinctly positive addition to my ability.

  14. A Bitcoin analogy for Multiple Drafts theory of consciousness

    I’ve never actually seen anyone write down precisely the way I think about consciousness, so here it is: it’s (gasp!)

  15. NativeAOT in .NET 9 and Nixpkgs/darwin

    How to get a NativeAOT build using nixpkgs

  16. Mary's Room

    Last weekend I was in a discussion ostensibly about whether the mind is nonphysical.

  17. My reading list

    For a film list, see films.

  18. Unhinged rant about software

    Modern software practices and their sadness.

  19. Lessons from a massage course

    I went to a one-day intro to massage taster course, and it was fun and interesting!

  20. WoofWare.Myriad.Plugins learns to parse args

    My F# source generators have some new features, including an argument parser.

  21. New GitHub workflows

    I’ve made a GitHub workflow to assert that all required GitHub checks are complete, and one to publish and attest NuGet packages.

  22. Learning plan for "Program Equilibrium in the Prisoner's Dilemma"

    The questions whose answers I don’t know, and the things I intend to learn, on the way to understanding a paper.

  23. Code having "the right philosophy"

    Those who would give up essential safety, to purchase a little temporary simplicity, deserve (and will get) neither safety nor simplicity.

  24. The phrase "I Notice That I Am Confused"

    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.

  25. Games

    This page holds an incomplete list of games I have played.

  26. The Yoneda lemma

    Another attempt to explain that the Yoneda lemma is actually intuitive.

  27. ChatGPT's effect on my programming

    After a decent while programming with ChatGPT, I’m not sure it’s even a net positive on my ability.

  28. YAML is not a superset of JSON

    All the reasons I know for why YAML is not a superset of JSON.

  29. Trip to Tromsø

    Travelogue of my trip to Norway.

  30. Why does no-confusion use equality rather than a recursive call?

    A question about the definition of a no-confusion type.

  31. Starting a suspended process

    How to start a process into a suspended state on Linux

  32. Announcing WoofWare.Myriad.Plugins

    Some F# source generators to solve common problems I have.

  33. iOS interface

    A bunch of ways the iOS user interface is bad, and some undiscoverable features.

  34. Squashed stacked PRs workflow

    How to handle stacked pull requests in a repository which requires squashing all history on merge.

  35. Raymond Smullyan chess problem walkthrough

    The thought process behind solving a particular Raymond Smullyan chess retrograde analysis puzzle.

  36. Nix fireside chat outline

    A talk I gave at work about the Nix build system.

  37. Property-based testing introduction

    A talk I gave at work introducing property-based testing and then giving some more advanced techniques.

  38. The tiny proof that primes 1 mod 4 are sums of two squares

    Exploding the incredibly terse proof into a bunch of exposition.

  39. Imre Leader Appreciation Society

    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).

  40. Anki decks

    I have deleted almost all of the Anki decks on this page, because I think they would do more harm than good.

  41. Notes for a Git fireside chat

    A syllabus for a fireside chat to give at work, on Git

  42. Films

    This page holds a list of films I have watched, spoiler-free, starting from 9th January 2015.

  43. Questions I had about transformers

    Some basic questions I had about transformers, and their possible answers.

  44. Lifehacks

    If I ever become rich and famous, I’m sure I’ll be besieged with requests for “how to do better in life”.

  45. About me

    I am Patrick Stevens, a software engineer based in London, England.

  46. About this website

    This website has been around in one form or another since June 26th, 2013.

  47. The water filtration industry has played us for absolute fools

    My Brita water filter does not in fact purify.

  48. Don't supply `-f` to `rm` unless you know you need it

    A vignette on the theme of ‘do not allow yourself to get into the habit of supplying the -f flag to rm’.

  49. Argument in a high-trust environment

    I tend to argue things in a particular way because I’m in a high-trust environment.

  50. Crates (existentials in F#)

    An introduction to the crate pattern for representing existential quantification in F#.