Thomas Marsh @thomasmarsh.bsky.social · 01/10/2026Is the name an intentional overlap with “Astor Place”? 🙂 Congrats on the launch! 110
Thomas Marsh @thomasmarsh.bsky.social · 30/09/2026This is exciting! I was just reproducing some PPO and Gumbel AlphaZero results on various games. Stratego was one of the games coming up on my list! Looking forward to reading this more closely 120
Thomas Marsh @thomasmarsh.bsky.social · 25/09/2026Programming languages are passé. LLMs should speak high leverage formal specification IR and lower that to executable IR which translates to your kernel primitives and JIT CPU/GPU instructions. 010
Thomas Marsh @thomasmarsh.bsky.social · 19/09/2026My daughter saw this and immediately asked, “can you pop the bubble?” I said “no”, and she immediately lost interest 012
Thomas Marsh @thomasmarsh.bsky.social · 18/09/2026Data 70: www.identifont.com/show?2SSidentifont.com 130
Thomas Marsh @thomasmarsh.bsky.social · 14/09/2026Do they make noises? I feel like there should be sound when you zoom in. 110
Thomas Marsh @thomasmarsh.bsky.social · 14/09/2026Apologies for the AI use, but I wanted to explore this in Oleg's visual style. Probably a lot of errors - I know spent too much time trying to get this even to this point. Script to generate it: gist.github.com/thomasmarsh/... 111
Thomas Marsh @thomasmarsh.bsky.social · 20/08/2026At first glance I thought this was some zalgo text 010
Thomas Marsh @thomasmarsh.bsky.social · 11/08/2026If you don’t have one already, a microscope is an amazing investment and exciting rabbit hole! You can easily get great images with a smartphone too. 100
Thomas Marsh @thomasmarsh.bsky.social · 03/08/2026In terms of all the perils of request/response enums you listed, I would be more generous: the risk really depends, and might be totally fine. More important to know the design risks than outright reject an option. Maybe you can chase the problem in property based tests or BFS the state space. 000
Thomas Marsh @thomasmarsh.bsky.social · 03/08/2026You can get correct-by-construction guarantees at compile time (with type system support or code gen). You still have to make important domain-dependent design decisions no matter what. 210
Thomas Marsh @thomasmarsh.bsky.social · 03/08/2026You may be interested in session types. This problem is identical to the problem of ensuring a state machine takes only valid transitions or how it should handle invalid ones. 100
Thomas Marsh @thomasmarsh.bsky.social · 25/07/2026So refreshing to see some nice bokeh! And that’s a sweet cat! 130
Thomas Marsh @thomasmarsh.bsky.social · 21/07/2026I agree it is useful to challenge preconceptions, but arena allocation is pretty common in C++ where throughput becomes a concern. There are also drop in GC and custom allocators (which rust also supports). So I think the overall answer is: it depends. 010
Thomas Marsh @thomasmarsh.bsky.social · 05/06/2026I suggested to Claude that it just apply the coyoneda trick and it went straight into an infinite loop. 010
Thomas Marsh @thomasmarsh.bsky.social · 30/05/2026Scary type inference problem in my opaque domain: Claude instantly offers a pure, crystalline, non-obvious truth. Ask it to add a row to my markdown table: Claude eagerly rolls up sleeves and gets right to work. RIP my tokens. 000
Thomas Marsh @thomasmarsh.bsky.social · 21/05/2026Have you looked in to Poly? It seems like a natural setting for parsing, and the morphisms are exactly lenses, which gives you bidirectionality for free! 100
Thomas Marsh @thomasmarsh.bsky.social · 13/11/2025I don’t understand quantum theory, but this book is always a joy to come back to. 010
Thomas Marsh @thomasmarsh.bsky.social · 13/09/2025Nice! I’ve been looking for a recording of her Fantaisie for harpsichord without any luck. 030
Thomas Marsh @thomasmarsh.bsky.social · 05/09/2025What are the contenders you have in mind? What do you see as a good balance between rigorous types and architectural approaches? 010
Thomas Marsh @thomasmarsh.bsky.social · 05/09/2025Not suggesting testing is not needed. We employ unit tests, integration tests, type directed programming, semi formal methods (TLA+), and more rigorous proofs of correctness for specific sub problems. Right tool for the job. But tests are code you have to maintain and slow you down. Types help. 010
Thomas Marsh @thomasmarsh.bsky.social · 05/09/2025I agree it is necessary to always challenge these assumptions. Types feel slower at first, so you have a runtime error/flexibility tradeoff. In my experience types are always worth it. But it took me many years to arrive at that position. 010
Thomas Marsh @thomasmarsh.bsky.social · 05/09/2025These days, I mostly domain model in types and then the architecture and implementation trivially fall out of that, establishing the modularity the author seeks. He gives no methods. And his example ignores the static and dynamic testing rigor IC designers employ due to their lack of type safety. 120
Thomas Marsh @thomasmarsh.bsky.social · 05/09/2025Sure, find good modular boundaries and establish good contracts. If your system is static and very well understood you can build it in assembly if you want and harden it over time. But for anything else, types are the tests you don’t have to write. 110
Thomas Marsh @thomasmarsh.bsky.social · 05/09/2025I’m always skeptical of “just build software better” arguments. There is a spectrum of software correctness, and types are one of the cheapest approaches. The argument falls apart when system boundaries are incorrect and need refactor. The antipatterns mentioned (class hierarchies?) are now rare. 210
Thomas Marsh @thomasmarsh.bsky.social · 24/08/2025You can also just immerse the tube in the source and pinch it or cover one end of the tube with your thumb. Then pull out that end of the tube to a lower height and release your thumb to start the siphon. 000
Thomas Marsh @thomasmarsh.bsky.social · 20/08/2025Is this state machine thinking related to defunctionalization, which takes higher ordered functions (maybe in your type checking implementation) and turns them into state/action applications? Love the visualization! 110
Thomas Marsh @thomasmarsh.bsky.social · 16/08/2025I wrote my first Quint spec today. It was fun and easy to pick up! It's like TLA+ and TypeScript had a baby. Has some obvious room to grow: you have to be gentle with the syntax and type errors to get good diagnostics. Otherwise, seems like a good alternative to Alloy or TLA+ for simple specs!quint-lang.orgQuint - Executable Specification LanguageA modern and executable specification language 120
Thomas Marsh @thomasmarsh.bsky.social · 05/08/2025I still have my copy of “Haskell: The Craft of Functional Programming”, which I picked up in the 90s and skimmed briefly. I decided at the time to invest in C++ and focused on good imperative programming until I came back to learn Haskell 18 years later out of curiosity. 010
Thomas Marsh @thomasmarsh.bsky.social · 04/08/2025I can’t remember the last time I was at a house where people kept their shoes on indoors. I think this has changed a lot. Everyone I know takes their shoes off and people almost always ask if they should take their’s off when entering a house. 010
Thomas Marsh @thomasmarsh.bsky.social · 27/07/2025That should say 1600 CE, not 600. This whale effigy seems to be from the Montreal Museum of Fine Arts: www.mbam.qc.ca/en/works/2375/mbam.qc.caWhale EffigyThe Montreal Museum of Fine Arts, a bold, innovative and caring museum that is welcoming to all disciplines such as the visual arts, history and science. 0151
Thomas Marsh @thomasmarsh.bsky.social · 18/07/2025I just learned enough ocaml to see how verbose the alternative to type classes is using modules and “functors”. Still wrapping my head around modules, but it definitely seems like code smell boilerplate to me. Are there other arguments against type classes? 120
Thomas Marsh @thomasmarsh.bsky.social · 13/07/2025I think the human propensity for pattern recognition was strong, but the timeless way of building was not yet established. GoF started with Volume 2. 010
Thomas Marsh @thomasmarsh.bsky.social · 01/07/2025“Upstate is anything north of 110th St.” is the joke answer. 020
Thomas Marsh @thomasmarsh.bsky.social · 25/06/2025You can also take a train to a beach and swim in the ocean. If you take the Q you get a nice view going over the bridge too. Coney Island is worth a visit. But it’s a ways out there. There are nicer beaches if you take the right A train to the rockaways. 010
Thomas Marsh @thomasmarsh.bsky.social · 24/06/2025NYC busses are underrated. The subway is oppressive compared to other city metros.🙁 120
Thomas Marsh @thomasmarsh.bsky.social · 24/06/2025Just Manhattan or are you planning to check out Brooklyn too? Enjoy your visit! 110
Thomas Marsh @thomasmarsh.bsky.social · 11/06/2025Did you by chance run across the linked paper here? I skimmed it, but it seems like a reasonable attempt at teasing out the limits of reasoning with respect to actual reasoning tasks. 000
Thomas Marsh @thomasmarsh.bsky.social · 05/06/2025Wish I could hear this talk. These bullets don’t make total sense to me. Some are known implementation patterns for feature flags, some suggest “just build it right the first time”, and GoF could mean anything (and is mostly just partial application patterns). Still very curious though 110
Reposted by Thomas MarshSusan Potter @susanpotter.net · 25/05/2025Nobody cares about correctness and do cheap things first are great takeaways from this but this article illustrates these and other points especially well: www.galois.com/articles/wha...galois.comWhat Works (and Doesn't) Selling Formal Methods 0112
Thomas Marsh @thomasmarsh.bsky.social · 23/05/2025Jason Hickle singled out China, not me. But you are right, you have to look at all company investments and holdings globally. Follow the money and only then can you make any claims about which countries hold most responsibility. I do think it is a misguided metric. 020
Thomas Marsh @thomasmarsh.bsky.social · 23/05/2025What is the new Erlang? (Please let it not be Kubernetes orchestration.) 010
Thomas Marsh @thomasmarsh.bsky.social · 20/05/2025If you take the perspective that much of advanced Haskell is working around lack of dependent types (like you would find in theorem provers), then I posit Haskell is indeed a gremlin language. 060
Thomas Marsh @thomasmarsh.bsky.social · 20/05/2025Disingenuous. You cannot make this claim without tracking indirect Chinese investments. Looking strictly at corporate domicile is absolutely pointless in our globalized economy 130
Thomas Marsh @thomasmarsh.bsky.social · 18/05/2025It is subtle but is builds flawed foundations. If you take arrays as input there is no confusion 010
Thomas Marsh @thomasmarsh.bsky.social · 18/05/2025Alice is absolutely right. A naive reading of this can correctly say the runtime is O(n^2), but that doesn’t paint the whole picture. For scaling we need to understand if you are measuring size (of an array) vs a number. One scales and the other is useless for large numbers. 110
Thomas Marsh @thomasmarsh.bsky.social · 13/05/2025I can barely find my way around tools like Rocq, Lean, or Agda, but I am really excited about this field of research! I am very much looking forward to your work! 110
Thomas Marsh @thomasmarsh.bsky.social · 13/05/2025I was interested in Scala when I was learning Haskell, but I was turned off by some members of the community. I have no impression of the Kotlin community, but it did seem cool how much they could do with compiler plugins. Still not sure where to migrate our legacy Java 8 code… 020