Sign in

James Dawson Brock

@jamesbrock.bsky.social
276 followers 144 following 36 posts

Pure functional programming, Haskell, PureScript, Nix. Vermont provenance, Yokohama residence. github.com/jamesdbrock twitter.com/jamesdbrock

PostsRepliesMedia
James Dawson Brock @jamesbrock.bsky.social · 14/05/2026
Happy 50th birthday Matt!
110
James Dawson Brock @jamesbrock.bsky.social · 20/09/2025
asyncio is the best thing about Python.
000
James Dawson Brock @jamesbrock.bsky.social · 20/09/2025
Hey John. That run_subprocess_with_callback depends only on python standard lib so you can copy the file into your project instead of depending on pyedifice. See comments in the source file.
110
Reposted by James Dawson Brock
Graydon Hoare @graydon-pub.bsky.social · 19/07/2025
Nicholas is one of the best engineers I've ever worked with and y'all should be racing to hire him if you can.
0373
James Dawson Brock @jamesbrock.bsky.social · 19/07/2025
The Big OOPs: Anatomy of a Thirty-five-year Mistake by @cmuratori.bsky.social youtu.be/wo84LFzx5nI
youtu.be
Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025
YouTube video by Better Software Conference
030
James Dawson Brock @jamesbrock.bsky.social · 19/07/2025
It Would Be Good if the AI Bubble Burst by Stephen Diehl www.stephendiehl.com/posts/ai_bub...
stephendiehl.com
It Would Be Good if the AI Bubble Burst
Personal Blog
030
James Dawson Brock @jamesbrock.bsky.social · 08/05/2025
Learn You a Haskell for Great Good! Jupyter adaptation now has a one-line zero-install shell command which works on any computer that has the #NixOS package manager: nix run github:IHaskell/learn-you-a-haskell-notebook For more information see github.com/IHaskell/lea...
github.com
GitHub - IHaskell/learn-you-a-haskell-notebook: Jupyter adaptation of Learn You a Haskell for Great Good!
Jupyter adaptation of Learn You a Haskell for Great Good! - IHaskell/learn-you-a-haskell-notebook
040
James Dawson Brock @jamesbrock.bsky.social · 03/12/2024
For years I've been trying to convince people to use monadic parsers instead of regex for everything. hackage.haskell.org/package/repl... Your essay about bicameral syntax is the first time I've read a principled reason (other than speed) about why a regular parsing pass is a good idea.
hackage.haskell.org
replace-megaparsec
Find, replace, split string patterns with Megaparsec parsers (instead of regex)
010
Reposted by James Dawson Brock
Rebecca Skinner @cercerilla.bsky.social · 28/11/2024
If you are curious about Haskell or wanting to start using functional programming to build real applications, this is a great chance to save some money on Effective Haskell and other great functional programming books.
2338
James Dawson Brock @jamesbrock.bsky.social · 25/11/2024
So, thank you Microsoft, I guess.
020
James Dawson Brock @jamesbrock.bsky.social · 25/11/2024
In the 2010s there were still a lot of programmers insisting that typechecking wasn't necessary but then TypeScript and Pyright were universally adopted and those people mostly shut up.
262
James Dawson Brock @jamesbrock.bsky.social · 24/11/2024
Thank your for posting that.
000
Reposted by James Dawson Brock
Tikhon Jelvis @jelv.is · 24/11/2024
The SDLC is an awful model for how people program and an even worse model for how people *should* program—at best, it's a model for how people *imagine* programming. Unfortunately, it seems to be taught and taken as a fact in the industry :(
111
James Dawson Brock @jamesbrock.bsky.social · 23/11/2024
In 1997 Wadler and Jones published the Haskell language, so now in Haskell we can program do-this-thing-then-do-that-thing by using only IO Monad expressions, no statements. Happily, forever.
020
James Dawson Brock @jamesbrock.bsky.social · 23/11/2024
Wadler solved the problem of saying do-this-thing-then-do-that-thing using only expressions by adopting the Monad described by logician Eugenio Moggi. homepages.inf.ed.ac.uk/wadler/paper...
homepages.inf.ed.ac.uk
110
James Dawson Brock @jamesbrock.bsky.social · 23/11/2024
Act III Climax and Resolution In 1987 the great computer scientists Simon Peyton Jones and Philip Wadler decided that the good part of computer programming was the expressions, and the bad part was the statements.
100
James Dawson Brock @jamesbrock.bsky.social · 23/11/2024
Later, at IBM, Backus tried to create a language named Function Level which could say do-this-thing-then-do-that-thing using only expressions. IBM never published the Function Level language, and the source code was lost. worrydream.com/refs/Backus_...
worrydream.com
100
James Dawson Brock @jamesbrock.bsky.social · 23/11/2024
In his Turing Award lecture entitled Can Programming Be Liberated from the Von Neumann Style, he condemned his language, Fortran, and all other languages, as “fat and weak.” Backus warned the that languages with statements would “make their expressive weakness and their cancerous growth inevitable.”
100
James Dawson Brock @jamesbrock.bsky.social · 23/11/2024
Act II Rising Action In 1977 the great computer scientist John Backus decided that the good part of computer programming was the expressions, and the bad part was the statements.
100
James Dawson Brock @jamesbrock.bsky.social · 23/11/2024
Landin abandoned his effort to rid programming of statements and joined the Gay Liberation Front. www.cs.cmu.edu/~crary/819-f...
cs.cmu.edu
100
James Dawson Brock @jamesbrock.bsky.social · 23/11/2024
In Landin’s paper The Next 700 Programming Languages, he invented the ISWIM language “biased towards expressions rather than statements,” but he failed to excise the statements. He failed because he couldn’t figure out how to say do-this-thing-then-do-that-thing in ISWIM by using only expressions.
100
James Dawson Brock @jamesbrock.bsky.social · 23/11/2024
A Character-Driven Monad Tutorial with a Three-Act Structure Act I Inciting Incident In 1966, the great computer scientist Peter Landin decided that the good part of computer programming was the expressions, and the bad part was the statements.
195
Reposted by James Dawson Brock
John Children @johnchildren.bsky.social · 19/11/2024
www.quantinuum.com/blog/announc... we did a thing
quantinuum.com
Announcing the Launch of Quantinuum Nexus: Our All-in-One Quantum Computing Platform
Designed to provide an exceptional experience for managing, storing, and executing quantum workflows, Nexus offers unparalleled integration with Quantinuum’s software and hardware.
183
James Dawson Brock @jamesbrock.bsky.social · 18/11/2024
banger
020
James Dawson Brock @jamesbrock.bsky.social · 16/11/2024
Why isn't Functional Programming the Norm? By @rtfeldman.bsky.social youtu.be/QyJZzq0v7Z4
youtu.be
Why Isn't Functional Programming the Norm? – Richard Feldman
YouTube video by Metosin
030
James Dawson Brock @jamesbrock.bsky.social · 16/11/2024
You wanted a banana but what you got was a banana in the computational context of a Gorilla Jungle monad transformer stack.
010
James Dawson Brock @jamesbrock.bsky.social · 10/11/2024
Just ordered Strange and Norrell for Christmas, thanks for making me aware.
110
James Dawson Brock @jamesbrock.bsky.social · 05/11/2024
I was ALF's opponent and I lost. I blame my advisors, who told me to campaign on culture war stuff.
110
Reposted by James Dawson Brock
Justin Garcia @purefunctor.me · 29/10/2024
Once upon a time I wrote about recursion c8998d8f.purefunctor.pages.dev/fear-not-rec...
c8998d8f.purefunctor.pages.dev
Fear Not Recursion
131
James Dawson Brock @jamesbrock.bsky.social · 29/10/2024
what is this movie
110
James Dawson Brock @jamesbrock.bsky.social · 29/10/2024
I searched for your name because I want to read your posts.
140
James Dawson Brock @jamesbrock.bsky.social · 29/10/2024
At work I was asked how to avoid “copy-and-paste” across different GUI projects. My advice: copy-and-paste is good. “duplication is cheaper than the wrong abstraction” sandimetz.com/blog/2016/1/... “when structuring (Model-View-Update) apps, Do Not Plan Ahead.” guide.elm-lang.org/webapps/stru...
sandimetz.com
The Wrong Abstraction — Sandi Metz
I've been thinking about the consequences of the "wrong abstraction."  My RailsConf 2014 "all the little things" talk included a section where I asserted: > duplication is far cheaper than th...
010
Reposted by James Dawson Brock
José A. Alonso @jalonso.eurosky.social · 22/10/2024
An unexpected discovery: Automated reasoning often makes systems more efficient and easier to maintain. ~ Byron Cook. aws.amazon.com/es/blogs/sec... #ITP
aws.amazon.com
An unexpected discovery: Automated reasoning often makes systems more efficient and easier to maintain | Amazon Web Services
During a recent visit to the Defense Advanced Research Projects Agency (DARPA), I mentioned a trend that piqued their interest: Over the last 10 years of applying automated reasoning at Amazon Web Ser...
011
James Dawson Brock @jamesbrock.bsky.social · 19/10/2024
Edifice is for the situation where you must use Python and you want a native desktop GUI.
030
James Dawson Brock @jamesbrock.bsky.social · 18/10/2024
Edifice is like React, but with Python instead of JavaScript, and Qt Widgets instead of the HTML DOM. Edifice has function Components, Props, and Hooks just like React. The best way to put a native GUI on a useful Python library. github.com/pyedifice/py...
github.com
GitHub - pyedifice/pyedifice: Declarative GUI framework for Python and Qt
Declarative GUI framework for Python and Qt. Contribute to pyedifice/pyedifice development by creating an account on GitHub.
171
James Dawson Brock @jamesbrock.bsky.social · 18/10/2024
Design patterns every programmer should learn in the 21st century: 1. Associativity 2. Currying 3. Sum types / Product types 4. Fold / Map 5. Passing functions as arguments 6. Immutable data structures
011
Reposted by James Dawson Brock
Ma🌵🌵hew B WoOOOOoOOooOod | 🌎🚀🌙 @matthewbrendenwood.bsky.social · 23/09/2023
Hey bksy, I write books about science for middle and high school readers (and adults)! Got a fledgling human who's interested in the universe? Cloning dinosaurs? The space race? Chucking things? I've got you covered! Self-promotion is awkward so I'll disappear back into the bushes now...
The cover of my book, titled The Universe: The Big Bang, Black Holes, And Blue Whales, with text beneath spinning star trails over a mountain range.
111
James Dawson Brock @jamesbrock.bsky.social · 07/09/2023
“President Kennedy looked out to the world leaders and said; Fellow citizens of the world, let us take our stand, at this time, and in this place, to see if we can help move the world toward peace. And of course, he did. And then was killed a few weeks later.” www.youtube.com/watch?v=tLwu...
youtube.com
Jeffrey Sachs on President Kennedy’s Vision of Peace — How It Applies Today
Saturday June 10, 2023 is the 60th Anniversary of President Kennedy’s American University speech on world peace.The JFK Peace Speech Committee is sponsoring ...
000
James Dawson Brock @jamesbrock.bsky.social · 06/09/2023
“This talk opened up connections for me. It both taught me more than any talk I’ve consumed for the past year and confirmed the many monadic functionality that I naively thought I invented” — demesisx in the comments www.youtube.com/watch?v=LLkb...
youtube.com
Monadic Parsers at the Input Boundary
When reading a byte stream over the process I/O boundary, the first thing which everyone should do is to parse the byte stream with a monadic parser.The talk...
180
James Dawson Brock @jamesbrock.bsky.social · 06/09/2023
obtention: “the action of obtaining something.” Yeah good one.
000
James Dawson Brock @jamesbrock.bsky.social · 06/09/2023
In Massachusetts. Hell yes.
110
James Dawson Brock @jamesbrock.bsky.social · 06/09/2023
What does it mean though
100
James Dawson Brock @jamesbrock.bsky.social · 06/09/2023
I saw Douglass Adams speak before he died, I guess it was about the year 1994. He was not funny at all, and instead warned us of environmental collapse. We of course were disappointed and inattentive.
120