Runtime Arguments

Jim McQuillan & Wolf

Conversations about technology between two friends who disagree on plenty, and agree on plenty more.

  1. 1d ago

    30: Available compute: way more than you need, right up until you need it!

    You almost never have exactly the right amount of compute for the job. Either cores are sitting idle while your code runs on one, or you've got more problem than machine. This episode is about the two fundamental tools for closing that gap — and why picking the wrong one makes things slower, not faster. Topics covered: Concurrency vs. parallelism — the core distinction: concurrency is a scheduling problem (you're waiting a lot); parallelism is a compute problem (you need more processing). They are not interchangeable.IO-bound vs. CPU-bound — how to identify which problem you actually have before writing a line of concurrent code. (And a third case: memory-bound, where the fix is data layout, not more cores.)Threads aren't always what you think — system-level vs. user-level threads; why JavaScript's `async`/`await` is single-threaded concurrency and not parallelism; why Go routines can be either.Colored functions / async infection — why `async` spreads through a codebase the way `const` does in C++, and why Go sidesteps it entirely with `go func()`.Go channels and Rust ownership — why these two language designs are the cleanest modern answers to shared-state problems.Python's GIL — what it was, why it hurt, and why 3.14+ removes it (with caveats for single-threaded performance).Amdahl's Law — the mathematical ceiling on how much any parallelization effort can help, and why it's specific to your problem.Hidden parallelism — CPU pipelines and branch prediction run in parallel below your abstraction layer, and you can't see them without special tools.Communication is the real enemy — GPU bus bandwidth, cluster fabric, Apple Silicon shared memory vs. NVIDIA CUDA: the cost of moving data often swallows the benefit of more cores.Fork and copy-on-write — how Unix `fork` got fast, and why Python's reference counting undermines it.The actor model — how Erlang (and now Swift) solve the ownership problem by letting the object own the data, not the caller.Heisenbugs — the bugs that live in parallel code and only appear when you least want them. Examples: Pixar render farms — 130,000 frames × 24 hours each, solved by embarrassingly parallel independent frames`make -j` — the classic CPU-bound parallelism win; why it only helps when you have real cores, not threadsTrolltech's distributed C++ build system — compile-farm tied to a specific commit, object files cached and sharedJavaScript worker threads and Web Workers — breaking out of the four-query Node.js limit Link to Wolf's dap-mux presentation at mug.org: https://www.youtube.com/live/iyAk8-oE6cM?t=1725 Hosts: Jim McQuillan can be reached at jam@RuntimeArguments.fm Wolf can be reached at wolf@RuntimeArguments.fm Follow us on Mastodon: @RuntimeArguments@hachyderm.io If you have feedback for us, please send it to feedback@RuntimeArguments.fm Checkout our webpage at http://RuntimeArguments.fm Theme music: Dawn by nuer self, from the album Digital Sky

    56 min
  2. Apr 18

    26: Why You'll Never Switch Editors (And What You're Missing)

    You already have an editor. You already love it. Nothing we say is going to change that — and we know it. But your editor shapes how you think about editing, which means there are problems it could solve for you that you've never even thought to have. We walk through the real differences between editors, IDEs, and the technologies underneath them — TreeSitter, LSPs, the Debug Adapter Protocol — and talk honestly about what actually matters: syntax awareness that doesn't break, language intelligence that works across editors, and where AI fits into all of it. No editor wars, no winner declared. Just two guys who've been doing this for decades explaining why the landscape looks the way it does. What we cover: The spectrum from Notepad to full IDE — and where VS Code actually fallsModal editing (Vim, NeoVim, Helix) vs. chord-based editing (Emacs) vs. point-and-click (the entire rest of the world)TreeSitter: why regex-based syntax highlighting is broken and what replaced itLSPs: the protocol that turned simple editors into language-aware toolsEditors as complete environments — Emacs, Smalltalk, and the "world" conceptAI integration: editor-first (Cursor, VS Code) vs. AI-first (Claude Code)Muscle memory, sunk costs, and why switching editors is like moving to AustraliaCan JetBrains (or any company that lives on editor/IDE sales) survive when free tools keep getting better? Links: TreeSitter (https://tree-sitter.github.io/tree-sitter/) — incremental parsing library, originally built at GitHub for AtomLanguage Server Protocol (https://microsoft.github.io/language-server-protocol/) — the protocol that decoupled language intelligence from editorsHelix (https://helix-editor.com/) — modal editor with TreeSitter and LSP built inAlabaster theme (https://github.com/tonsky/sublime-scheme-alabaster) — Tonsky's minimalist syntax theme that highlights what mattersXKCD #927: Standards (https://xkcd.com/927/) — the comic about inventing yet another standard (re: IPv8)Hosts: Jim McQuillan can be reached at jam@RuntimeArguments.fm Wolf can be reached at wolf@RuntimeArguments.fm Follow us on Mastodon: @RuntimeArguments@hachyderm.io If you have feedback for us, please send it to feedback@RuntimeArguments.fm Checkout our webpage at http://RuntimeArguments.fm Theme music: Dawn by nuer self, from the album Digital Sky

    1h 16m
  3. Apr 4

    25: The X Window System and Wayland

    If you've been using Linux on the desktop you almost certainly have been using the X Window System. In this episode we dive into what that is, where it came from and what kinds of choices you have. We get into the toolkits like GTK and Qt and talk about desktop environments like Gnome and KDE. Then we get into the future, namely Wayland. If you want to run an X client application on a remote server, you need to have an Xserver running local. If your desktop is MacOS, you can install Xquartz. If it's Windows, you can install Xming.  If your desktop is Linux, you already have an Xserver running (or maybe you have Wayland, in which case you can run Xwayland). The following command will log you into a remote system where you can run an X client application and have it display on your local desktop: ssh -X user@example.com If you echo your $DISPLAY environment variable, you should see something like: localhost:10.0 That's telling the X client app to send it's data using the X protocol to the your local desktop and proxy it over SSH. The next step is run on an X app. It's easy, just run it: xterm A terminal window should pop up on your local desktop. Hosts: Jim McQuillan can be reached at jam@RuntimeArguments.fm Wolf can be reached at wolf@RuntimeArguments.fm Follow us on Mastodon: @RuntimeArguments@hachyderm.io If you have feedback for us, please send it to feedback@RuntimeArguments.fm Checkout our webpage at http://RuntimeArguments.fm Theme music: Dawn by nuer self, from the album Digital Sky

    1h 8m
  4. Mar 21

    24: Bayes' Rule - The Formula For Learning Everything

    If you've ever debugged a program, looked for lost socks or tried to figure out why red spots are developing on your skin, then Bayes' rule was almost certainly used to help you on your journey. Even if you don't know anything about it. Humans have evolved to solve problems but along the way, we as a species sometimes fall for traps or fail to consider all the evidence when figuring things out. In this episode, Wolf explains what Bayes' rule is, how we use it and how we could use it better to solve our mysteries. One sentence Bayes' Rule is the formula that tells you how to update what you believe when you get new evidence — it combines what was already true with what you just learned. The math The probability of A given B equals the probability of B given A, times the probability of A, divided by the probability of B P(A | B) = P(B | A) * P(A) / P(B) Key concepts Bayes' Rule — the formula for updating what you believe when you get new evidenceRepresentativeness heuristic — substituting "how well does this match?" for "how likely is this?" (ignoring base rates)Base rate neglect — the tendency to ignore population-level frequencies when evaluating specific casesPrior / likelihood / posterior — what you believed before, how likely the evidence is, what you should believe nowSystem 1 / System 2 — Kahneman's framework for fast intuitive thinking vs. slow deliberate reasoningThe Tom W problem From Kahneman's Thinking, Fast and Slow, Chapter 14. A personality description that tricks you into ignoring base rates. The Sin of Representativeness — Unearned Wisdom The cab problem Also from Kahneman. A witness, a hit-and-run, and the surprising math of why 80% reliability doesn't mean 80% probability. Kahneman's Bayesian inference example Books: Daniel Kahneman, Thinking, Fast and Slow (2011) — the Tom W problem, the cab problem, System 1/System 2, representativenessSharon Bertsch McGrayne, The Theory That Wouldn't Die (2011) — the history of Bayes' theorem from its discovery through the frequentist wars to its modern resurgenceDouglas Hofstadter, Gödel, Escher, Bach: An Eternal Golden Braid (1979) — a Pulitzer-winning exploration of how self-reference and formal systems connect mathematics, art, and musicErnest Nagel and James R. Newman, Gödel's Proof (1958) — a concise, accessible walkthrough of Gödel's Incompleteness Theorems for non-mathematiciansHistorical: Thomas Bayes (1701–1761) — Presbyterian minister who first derived the theorem; never published it. Richard Price submitted it posthumously.Pierre-Simon Laplace — independently derived and generalized Bayes' work; arguably did the heavier mathematical liftingTools (if you want to go deeper): PyMC — Python library for Bayesian statistical modelingBayes' theorem — WikipediaThinking, Fast and Slow — WikipediaHosts: Jim McQuillan can be reached at jam@RuntimeArguments.fm Wolf can be reached at wolf@RuntimeArguments.fm Follow us on Mastodon: @RuntimeArguments@hachyderm.io If you have feedback for us, please send it to feedback@RuntimeArguments.fm Checkout our webpage at http://RuntimeArguments.fm Theme music: Dawn by nuer self, from the album Digital Sky

    1h 8m
  5. Mar 7

    23: Containers - What's in the box????

    Containers have become the standard way for deploying applications on servers and the web and sometimes even on the desktop. In this episode we dive into what containers are, how they work, how to build them and what you can do with them. Whether you are using containers in your development environment, deploying on servers in your data center or as a cloud service, containers save time, handle dependencies, increase security and just make things easier and better in so many ways. We discuss several commands to build and run containers and we've included examples here: Dockerfile example: ------------------------------------------------------------------------------------------------------- FROM ubuntu RUN apt update && apt install -y apache2 ENTRYPOINT [ "/usr/sbin/apachectl", "-D", "FOREGROUND", "-k", "start" ] ------------------------------------------------------------------------------------------------------- Build the image using the above Dockerfile:     docker buildx build --tag my_container ./ Run the container:     docker run -p 8080:80 -d my_container Now, point your web browser at http://localhost:8080 (assuming you did this on your desktop) Display a list of running containers:     docker compose ls Attach to a running container and get a shell:     docker exec -it [container name] /bin/bash Stop a container:     docker container stop [container name] Start it running again:     docker container start [container name] Remove a container (after stopping it)     docker container rm [container name] Hosts: Jim McQuillan can be reached at jam@RuntimeArguments.fm Wolf can be reached at wolf@RuntimeArguments.fm Follow us on Mastodon: @RuntimeArguments@hachyderm.io If you have feedback for us, please send it to feedback@RuntimeArguments.fm Checkout our webpage at http://RuntimeArguments.fm Theme music: Dawn by nuer self, from the album Digital Sky

    1h 41m

Ratings & Reviews

5
out of 5
3 Ratings

About

Conversations about technology between two friends who disagree on plenty, and agree on plenty more.

You Might Also Like