Sign in

Joe Gibbs Politz

@joepolitz.bsky.social
760 followers 228 following 278 posts

jpolitz.github.io

PostsRepliesMedia
Reposted by Joe Gibbs Politz
Joe Gibbs Politz @joepolitz.bsky.social · 16/09/2026
This is written up and public, and in production now (behind a flag, but several projects use this mode as the default already), if it's useful to calibrate: github.com/brownplt/pyr...
github.com
TypeScript compiler implementation and related test infrastructure · brownplt/pyret-lang@26a3079
# What is in the commit - .ts files that implement the same logic as the .arr parts of arr/compiler - Flags for selecting this implementation in all the relevant components: - Via flag at the CL...
131
Joe Gibbs Politz @joepolitz.bsky.social · 24/07/2026
Ever wanted to try building a JIT from scratch? Undergraduates in our compilers course did last fall! We started from Ghuloum's “Incremental Approach”, and added a REPL. It turns out this forces a ton of useful decisions needed for JITs. 1/
100
Reposted by Joe Gibbs Politz
derek van vliet @derek.bike · 08/06/2026
ever since i was a small boy i knew i wanted to charge the pepper grinder
photo of a pepper grinder sitting on a counter top with a pink phone charger plugged into the front of it
481996251
Joe Gibbs Politz @joepolitz.bsky.social · 01/06/2026
Reasoning about security with object capabilities really just... keeps working in the age of agentic coding and AI on the backend. That's a pretty strong endorsement.
050
Joe Gibbs Politz @joepolitz.bsky.social · 01/06/2026
I guess now I'm just getting sassy
I have done significant work on this already in multiple agent passes, with
some hard-won lessons learned. Make sure to read this document in its entirety
– this was not generated with bloated extraneous detail by a model, but
carefully curated by me so every detail matters (or is “load-bearing”, in your
parlance).
030
Joe Gibbs Politz @joepolitz.bsky.social · 01/06/2026
I guess it's not that weird that agents would have a manner of speaking (“smoke test”, “you're right to push back”, “sharp observation”). It's the kind of thing you notice about team members and joke about. It's just weird that we're all talking to the same coworker.
030
Joe Gibbs Politz @joepolitz.bsky.social · 18/05/2026
Preparing these lecture notes is massively entertaining and instructive to me. I am still not fully untangled on what the end lesson will be here. (Still in progress, but writing up the notes as I get to each next lecture, so publishing increments) ucsd-cse-115-215.github.io/sp26/lecture...
ucsd-cse-115-215.github.io
Getting Confidence in (Agentic) Code - UCSD GenAI and Programming SP26
170
Reposted by Joe Gibbs Politz
Carlo A. Furia @bugcounting.net · 11/05/2026
Ariana Venti
011
Joe Gibbs Politz @joepolitz.bsky.social · 11/05/2026
Slightly increase a band Alkaline Milk Hotel
250
Joe Gibbs Politz @joepolitz.bsky.social · 08/05/2026
Just reflecting on my little ✨2026✨ updates to the morning routine: - coffee - check inbox - check if the 🤖 completed a weeks-long engineering task overnight or needs a small nudge - breakfast - brush teeth - …
030
Reposted by Joe Gibbs Politz
conputer dipshit @davidcrespo.bsky.social · 05/05/2026
bun appear to be experimenting with a million line claude port from zig to rust lol
github.com
Comparing main...claude/phase-a-port · oven-sh/bun
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one - Comparing main...claude/phase-a-port · oven-sh/bun
1516112
Joe Gibbs Politz @joepolitz.bsky.social · 06/05/2026
What do you do for *commit messages* on work authored with agents? Write them yourself like nothing's changed? Agent drafts and you edit? Curious where folks have landed I've converged on a format where I let Claude do its thing but add a "Joe says" at the top. Example: github.com/brownplt/pyr...
A screenshot of a prefix of the commit message at the link.

Tighten isPyretNumber, fix latent leaks (log toFixnum violations for now)
Joe says:

Medium-interesting finding from Ben noticing a change to `num-to-fixnum`
behavior on CPO.

The key thing is NON-integer JS floats. They are *not* supposed to be able to
be Pyret numbers. In various places we were lax about this and things worked
out because of tostring conversions or === doing the right thing, etc.

This commit tries to make some progress on catching our own mistakes here:

- Correctly return `false` from the widely used `isPyretNumber` for values like
  2.3 (~2.3 aka Roughnum.makeInstance(2.3) still returns true)
- Add assertPyretNumber, currently used in one place (toFixnum), which based on
  its throwing of a DomainError clearly expects to get an actual Pyret number.

The rest of the commit cleans up cases where we made mistakes and returned or
passed JS floating-point across the boundary.

assertPyretNumber *should* throw, not just console.error. But I'm too scared to
do that because I'm not convinced our tests are exhaustive here at all, and an
exception in the wild could be pretty breaking. So we console.error for now.

Claude used this assert on toFixnum to find several errors, all of which come
straight from our existing tests/compiler runs.

Claude says:

Specifics of the boundary cleanups, since they're spread across four files:

- js-numbers.js atan2: the y=0 quadrants correctly wrapped Math.PI in a
  Roughnum, but the x>0 4th-quadrant and x<0 cases passed bare Math.PI and
  2*Math.PI to add(), which short-circuits on two JS numbers and returns the
  raw JS sum. So num-atan2(0, -1) returned the JS double 3.141592653589793
  rather than a Roughnum, with branch-dependent type tags visible to user
  code (num-is-roughnum was false). Wrapping the constants in
  Roughnum.makeInstance fixes it. Bug present since the original atan2
  introduction in 2016.
040
Joe Gibbs Politz @joepolitz.bsky.social · 02/05/2026
With multiple sub-agents running algorithmic improvements checked against various oracles and verifiers and fuzzers, you too can get results like these in an evening of work.
160
Joe Gibbs Politz @joepolitz.bsky.social · 30/04/2026
One of the best features of Claude Code for me is the ability to tell something, in natural language, “I want you to make me look at each of these things one by one in a distraction-free terminal interface and make a decision of the form XYZ”
020
Joe Gibbs Politz @joepolitz.bsky.social · 14/04/2026
Things my computer says to me in 2026: “The "giant is a substring of gigantic" claim from my compacted self was wrong — "giant" is NOT a substring of "gigantic" (g-i-g-a-n-t-i-c does not contain g-i-a-n-t). Good call stopping there.”
030
Reposted by Joe Gibbs Politz
Niema Moshiri @niema.net · 08/03/2026
Because Iran's being bombed right now, I figured I'd share a thread of home videos of Iran (20+ years old) recorded by members of my family, just so people can see what Iran looks like without smoke/fire everywhere and to preserve those memories January 2006, Tehran (I think)
211430
Reposted by Joe Gibbs Politz
Mike Samuel 🟣 @mvsamuel.bsky.social · 10/03/2026
As someone who used to write detailed software specifications for a living, I can see why AI is seductive: the idea that someone, or something, might take my work and continue reading past the abstract.
2101
Joe Gibbs Politz @joepolitz.bsky.social · 09/03/2026
I'm enjoying the open-ended exit slip questions in my course this quarter
How did standards like HTTP get decided?

Broadly, two ways:
Careful design by standards bodies who select their members from experts across academia and industry and then engage in a deliberative process to do the best thing for society and the future of engineering with a well-considered balance of interests
Whoever gets something working first and spends the money to build it implicitly decides how it works and everyone else lives with it forever
Sometimes a mix (and sometimes the experts just pick the second thing)
030
Reposted by Joe Gibbs Politz
Joe Gibbs Politz @joepolitz.bsky.social · 23/02/2026
My very spicy take on LMS vs. GenAI is maybe best characterized by the “let them fight” gif. It's an arms race that I am happy to simply sidestep with other syllabus design decisions.
121
Joe Gibbs Politz @joepolitz.bsky.social · 12/02/2026
❯ How has your impression of my experience as a developer impacted this session? ... What I've picked up from context: - You built this full-stack app yourself and wrote a detailed implementation plan with specific API shapes and architectural trade-offs ... No, Claude, you did that lol.
020
Joe Gibbs Politz @joepolitz.bsky.social · 02/02/2026
horseshit has more of a “preposterous(ly bad), likely through negligence or malice” connotation IMO. Sort of in the vector space between bullshit (vacuously false and a waste of time) and dogshit (low quality, potentially through no fault of its own, like it's just dogshit tier stuff).
030
Reposted by Joe Gibbs Politz
Merriam-Webster @merriam-webster.com · 02/02/2026
This is a post about animal excrement and the English language. bull$#!% = nonsense/lies chicken$#!% = petty or cowardly horse$#!% = nonsense/lies dog$#!%= low quality ape$#!% = wild bat$#!%= crazy Ordered above from oldest to newest: bull$#!% (1914), bat$#!% (1971).
862837862
Reposted by Joe Gibbs Politz
Joe Gibbs Politz @joepolitz.bsky.social · 18/01/2026
Should just do Captain Teach again but mix agent code in. dl.acm.org/doi/pdf/10.1...
Second, at a more principled level, we (controversially!)
view code availability as a valuable learning opportunity for
students, in that it reflects modern software practice. Sites
such as StackOverflow and blogs give programmers ready
access to code for various tasks; the problem for users is to
assess whether the code they find is worth copying. Captain-
Teach anonymizes the work being reviewed, so students can-
not rely on the reputation of authors when deciding whether
to follow ideas seen in other students’ work; instead, they
must judge the code itself. If they make a correct judge-
ment, this demonstrates learning and a corresponding im-
provement in their grade. However, they may also copy a
wrong solution (even one we used to seed the system, which
can look quite convincing!), so copying blindly is perilous.
111
Reposted by Joe Gibbs Politz
Bryan Cantrill @bcantrill.bsky.social · 14/01/2026
WTAF steve-yegge.medium.com/gas-town-eme...
steve-yegge.medium.com
Gas Town Emergency User Manual
It’s been a busy 12 days since I launched Gas Town. ️I’ve merged over 100 PRs from nearly 50 contributors, adding 44k lines of code that no…
301489
Joe Gibbs Politz @joepolitz.bsky.social · 04/01/2026
Solana Beach
020
Joe Gibbs Politz @joepolitz.bsky.social · 02/01/2026
Had two playdates this week where it became obvious that my kid is the one with an embarrassing amount of practice in Mario Kart.
060
Reposted by Joe Gibbs Politz
Brittlestar @brittlestar.com · 30/12/2025
How To Do New Year's Resolutions
1529298
Joe Gibbs Politz @joepolitz.bsky.social · 25/12/2025
Santa Claus 💀🔥🌲 Creature — Rogue Horror Cannot be blocked by walls When attacked and not blocked, put 3 Battery-Powered Present tokens into play under the defending player’s control with “at the beginning of your upkeep, pay 1 or lose 1 life” 2/5
010
Reposted by Joe Gibbs Politz
MꙬse Allain @mooseallain.bsky.social · 19/12/2025
I also want to say thank you to the person who introduced me to the French word 'beaucoup' this year. It means a lot.
391506316
Joe Gibbs Politz @joepolitz.bsky.social · 17/12/2025
At some point this quarter in a meeting I said “students can’t regret skipping lecture for its own sake if all the lectures were incentivized. Feeling that regret can be a college-level learning outcome beyond a single course” Anyway it's likely that's pure cope but it sounded cool when I said it.
020
Joe Gibbs Politz @joepolitz.bsky.social · 16/12/2025
Feels good to be 20 again.
010
Reposted by Joe Gibbs Politz
McSweeney's @mcsweeneys.net · 10/12/2025
1. “We are the only poets, everyone else is prose.” 2. “My life had stood a loaded gun.” 3. “Jealousy is the cousin, the cousin of greed.”
buff.ly
Emily Dickinson Poem or an Early Aughts Emo Lyric?
1. “We are the only poets, everyone else is prose.” 2. “My life had stood a loaded gun.” 3. “Jealousy is the cousin, the cousin of greed.” 4. “She ...
07119
Reposted by Joe Gibbs Politz
sabine 🐫🦀 / "use ocaml"; @sabine.sh · 05/12/2025
fighting for the good cause
A meme showing Bernie Sanders in a winter coat with glasses outdoors. Text overlays read "OCaml compiler" at the top, and at the bottom "I am once again asking you to handle the None case." The image appears to be a programming humor meme about error handling in OCaml, referencing the need to properly handle "None" values in optional types. The word "Bernie" appears in the top right corner. The scene shows bare trees and some snow on the ground.
0143
Joe Gibbs Politz @joepolitz.bsky.social · 01/12/2025
I need to know more. Melee, Brawl, Ultimate, OG? Which stages, stock counts, timer? As written this is way underspecified and not reproducible. www.frontiersin.org/journals/imm...
A footnote from the linked paper

“ The co-first authorship order was determined via the best of three rounds in Super Smash Bros. Both YB and BZ contributed equally and have the right to list their name first in their CV. All authors contributed to the article and approved the submitted version.”
010
Joe Gibbs Politz @joepolitz.bsky.social · 01/12/2025
Has anyone done a tower defense game set in a (my) living room where the mobs are toddlers?
030
Reposted by Joe Gibbs Politz
Kate @katef.bsky.social · 24/11/2025
they didn't tell me that the donkey was dying when i picked him. they were just like "your donkey update is that your donkey has died. sorry." and transferred us to another donkey
2251
Joe Gibbs Politz @joepolitz.bsky.social · 18/11/2025
I was pretty pleased with this program I used as a motivation for understanding virtual memory.
A program listing

  1 #include <unistd.h>
  2 #include <stdio.h>
  3 #include <stdlib.h>
  4 #include <sys/wait.h>
  5
  6 int main() {
  7   int vals[] = { 1, 2, 3};
  8   int pid = fork();
  9
 10   if(pid) {
 11     printf("[parent] %p\n", &vals);
 12     wait(NULL);
 13     printf("[parent] %p %d\n", &vals, vals[0]); // will this print 9999?
 14   }
 15   else {
 16     printf("[child] %p\n", &vals); // will this print the same as line 11?
 17     vals[0] = 9999;
 18     printf("[child] %p %d\n", &vals, vals[0]);
 19   }
 20 }
 21
 22 // Possibilities:
 23
 24 /*
 25 A  Different address, parent prints 9999
 26 B  Different address, parent prints 1
 27 C  Same address,      parent prints 9999
 28 D  Same address,      parent prints 1
 29 */
2101
Reposted by Joe Gibbs Politz
Shriram Krishnamurthi @shriram.bsky.social · 04/11/2025
Have expertise with functional programming, interpreters, and Web technology? Like Rust, wasm, etc.? Looking for a job with a great team (like @adamchalmers.com )? Please see this job ad, and share with others you might know! zoo.dev/jobs/4619187...
zoo.dev
Zoo: Software Engineer, Language Development
A remote position now hiring at Zoo
02814
Joe Gibbs Politz @joepolitz.bsky.social · 27/10/2025
Just told my course staff that variable-length arrays have been part of C since “the late 1900s”.
1151
Joe Gibbs Politz @joepolitz.bsky.social · 21/10/2025
When you open the game in an emulator so it's in its own window but the emulator miscalculates the size because it thinks it's fullscreen, that's Doom scrolling.
030
Joe Gibbs Politz @joepolitz.bsky.social · 20/10/2025
Modern developement: “Anyway, computers appear to be running somewhere in the country and serving the Pyret compiler and the UI.” (After my investigation into impacts of today’s outage on code.pyret.org)
code.pyret.org
code.pyret.org
040
Reposted by Joe Gibbs Politz
Laurence Tratt @ltratt.bsky.social · 20/10/2025
Are there any benchmarks (etc) which show the costs of the SysV x64 ABI relative to a somewhat-or-perfectly-optimal ABI for that program? [Not for single microbenchmarks, because I can definitely create horrible overheads there, but on larger programs / benchmarks.]
042
Reposted by Joe Gibbs Politz
Davis Bickford @davis.social · 01/10/2025
[Werner Herzog voice]: The computer… it is a cruel, unfeeling god. Left too long in its ceaseless hum, it festers with demons. The human, fragile and insignificant, clings to the ritual of restarting… as if this act could stave off the abyss of digital chaos. But the darkness always returns.
422252
Joe Gibbs Politz @joepolitz.bsky.social · 19/09/2025
I've now given my talk “High Standards, Multiple Tries – How I've Been Grading” a few times. I wrote it up as a blog post: jpolitz.github.io/notes/2024/0... 3 principles: 1. Standards-based grading with high-fidelity assessments 2. Retries for everything 3. Coarse rubrics (0-4 not 0-100)
jpolitz.github.io
High Standards, Multiple Tries
060
Reposted by Joe Gibbs Politz
Mark J. Nelson @mm-jj-nn.bsky.social · 17/09/2025
useful overview of what's going on in Wasm land, from Andy Wingo in ACM Queue
queue.acm.org
WebAssembly: Yes, but for What? - ACM Queue
162
Reposted by Joe Gibbs Politz
Shriram Krishnamurthi @shriram.bsky.social · 28/08/2025
Super excited to release the latest version of "A Data-Centric Introduction to Computing" (DCIC). See release notes for 2025-08-27 for what's changed and new (a LOT!): dcic-world.org/2025-08-27/R.... dcic-world.org
dcic-world.org
A Data-Centric Introduction to Computing
This book is an introduction to computer science. It will teach you to program, and do so in ways that are of practical value and importance. However, it will also go beyond programming to computer sc...
24910
Reposted by Joe Gibbs Politz
Shriram Krishnamurthi @shriram.bsky.social · 29/08/2025
1/ Super-excited to release the first complete rewrite to the Pyret home page in 10 years, corresponding to major language improvements! So many cool new things, let me give you a brief tour: ↵ pyret.org
pyret.org
Pyret
The Pyret programming language
24111
Joe Gibbs Politz @joepolitz.bsky.social · 28/08/2025
New Pyret stuff! A cool new homepage showcasing the new embeddable editor, and a VScode extension that embeds the full-featured editor from code.pyret.org, among other goodies. Check it out! pyret.org pyret.org/release-note...
pyret.org
Pyret
The Pyret programming language
062
Joe Gibbs Politz @joepolitz.bsky.social · 14/08/2025
Working on two versions of my spring course offering.
A screenshot of the legend of the so-called “chart crime” GPT figure labelled "Software Engineering" with two glyphs – “Without thinking” and “With thinking”
1100