James Dawson Brock @jamesbrock.bsky.social · 20/09/2025Hey 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 BrockGraydon Hoare @graydon-pub.bsky.social · 19/07/2025Nicholas 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/2025The Big OOPs: Anatomy of a Thirty-five-year Mistake by @cmuratori.bsky.social youtu.be/wo84LFzx5nIyoutu.beCasey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025YouTube video by Better Software Conference 030
James Dawson Brock @jamesbrock.bsky.social · 19/07/2025It Would Be Good if the AI Bubble Burst by Stephen Diehl www.stephendiehl.com/posts/ai_bub...stephendiehl.comIt Would Be Good if the AI Bubble BurstPersonal Blog 030
James Dawson Brock @jamesbrock.bsky.social · 08/05/2025Learn 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.comGitHub - 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/2024For 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.orgreplace-megaparsecFind, replace, split string patterns with Megaparsec parsers (instead of regex) 010
Reposted by James Dawson BrockRebecca Skinner @cercerilla.bsky.social · 28/11/2024If 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/2024In 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
Reposted by James Dawson BrockTikhon Jelvis @jelv.is · 24/11/2024The 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/2024In 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/2024Wadler 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/2024Act 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/2024Later, 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/2024In 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/2024Act 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/2024Landin 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/2024In 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/2024A 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 BrockJohn Children @johnchildren.bsky.social · 19/11/2024www.quantinuum.com/blog/announc... we did a thingquantinuum.comAnnouncing the Launch of Quantinuum Nexus: Our All-in-One Quantum Computing PlatformDesigned 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 · 16/11/2024Why isn't Functional Programming the Norm? By @rtfeldman.bsky.social youtu.be/QyJZzq0v7Z4youtu.beWhy Isn't Functional Programming the Norm? – Richard FeldmanYouTube video by Metosin 030
James Dawson Brock @jamesbrock.bsky.social · 16/11/2024You 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/2024Just ordered Strange and Norrell for Christmas, thanks for making me aware. 110
James Dawson Brock @jamesbrock.bsky.social · 05/11/2024I 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 BrockJustin Garcia @purefunctor.me · 29/10/2024Once upon a time I wrote about recursion c8998d8f.purefunctor.pages.dev/fear-not-rec...c8998d8f.purefunctor.pages.devFear Not Recursion 131
James Dawson Brock @jamesbrock.bsky.social · 29/10/2024I searched for your name because I want to read your posts. 140
James Dawson Brock @jamesbrock.bsky.social · 29/10/2024At 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.comThe Wrong Abstraction — Sandi MetzI'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 BrockJosé A. Alonso @jalonso.eurosky.social · 22/10/2024An unexpected discovery: Automated reasoning often makes systems more efficient and easier to maintain. ~ Byron Cook. aws.amazon.com/es/blogs/sec... #ITPaws.amazon.comAn unexpected discovery: Automated reasoning often makes systems more efficient and easier to maintain | Amazon Web ServicesDuring 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/2024Edifice 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/2024Edifice 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.comGitHub - pyedifice/pyedifice: Declarative GUI framework for Python and QtDeclarative 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/2024Design 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 BrockMa🌵🌵hew B WoOOOOoOOooOod | 🌎🚀🌙 @matthewbrendenwood.bsky.social · 23/09/2023Hey 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... 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.comJeffrey Sachs on President Kennedy’s Vision of Peace — How It Applies TodaySaturday 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.comMonadic Parsers at the Input BoundaryWhen 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/2023obtention: “the action of obtaining something.” Yeah good one. 000
James Dawson Brock @jamesbrock.bsky.social · 06/09/2023I 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