Sign in

Joe Gibbs Politz

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

jpolitz.github.io

PostsRepliesMedia
Joe Gibbs Politz @joepolitz.bsky.social · 16/09/2026
This keeps the phone back in mint condition.
0160
Joe Gibbs Politz @joepolitz.bsky.social · 16/09/2026
Yup. Ben and I have even been saying “oh that's easier to just write on the TypeScript side and then have the agent make sure it ports back over”, etc.
030
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 · 16/09/2026
It's interesting because *since* then, we've been doing normal compiler dev, fixing bugs, etc. I've found that agents are *super* helpful in making sure I update “both sides” while we are supporting both. Of course, that's supported by the robust verifier design that came from us.
220
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
90% of you are armed. The other half does yoga. Truly the Yogi Bearer of our nation.
010
Joe Gibbs Politz @joepolitz.bsky.social · 24/07/2026
These insights can then be lifted to a first-call, argument-value specialization of function bodies. See the paper, code, and course for more! github.com/compilers-co... ucsd-cse131-fa25.github.io /fin
github.com
GitHub - compilers-course-materials/incremental-jit
Contribute to compilers-course-materials/incremental-jit development by creating an account on GitHub.
000
Joe Gibbs Politz @joepolitz.bsky.social · 24/07/2026
The REPL forces incrementally and separately compiling chunks of code, and provides a natural place to experiment with feeding static information into the next prompt based on the *values* from the last prompt. 4/
100
Joe Gibbs Politz @joepolitz.bsky.social · 24/07/2026
Some key features: Rust + dynasm-rs, which assembles at runtime, keeps the compiler and generated code in the same process: github.com/CensoredUser... 3/
github.com
GitHub - CensoredUsername/dynasm-rs: A dynasm-like tool for rust.
A dynasm-like tool for rust. Contribute to CensoredUsername/dynasm-rs development by creating an account on GitHub.
100
Joe Gibbs Politz @joepolitz.bsky.social · 24/07/2026
I'm delighted that the full writeup will appear at Scheme & FP 2026 next month, 20 years after the original “Incremental Approach” paper. The OG: scheme2006.cs.uchicago.edu/11-ghuloum.pdf Our paper and code: github.com/compilers-co... 2/
110
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
Yeah I'm interested broadly! I don't know exactly what the last few lectures this quarter will look like, thinking through what goes there. But course aside I'm just trying to keep up with everything :-)
110
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
It's SO EXCITED no matter what for the pedagogical value of the last turn. Benchmark goes up? “Here's the move in lecture...” Don't find any bugs with the PBT? “Now the lesson for your students is clear: ...”
030
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 · 27/04/2026
Nice I do see how this would make my Gmail experience more enjoyable.
020
Joe Gibbs Politz @joepolitz.bsky.social · 27/04/2026
I didn't know Apple Vision Pro had been in dev for so long!
100
Joe Gibbs Politz @joepolitz.bsky.social · 21/04/2026
Many important journalistic applications of taking the piss.
010
Joe Gibbs Politz @joepolitz.bsky.social · 15/04/2026
Maybe in this case getting scooped was Loki plagiarism.
110
Joe Gibbs Politz @joepolitz.bsky.social · 14/04/2026
Pyret with the % operator (pyret.org/docs/latest/...) The type before the % can be checked statically or dynamically, the function in parentheses is always checked dynamically.
pyret.org
2.1.12 Annotations
0132
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
Joe Gibbs Politz @joepolitz.bsky.social · 19/03/2026
Your post is amusing because I’ve been crushing it on Necro. But I died like 10 times with Regent before my first win like wtf am I supposed to do with these stars.
120
Joe Gibbs Politz @joepolitz.bsky.social · 19/03/2026
One thing is that really good block “combos” with Osty because any summoning gets to stick around. If you think of Summon offensively like Poison in terms of scaling, the starter deck is great (Unleash doesn’t proc every turn ofc but basic principle). But soulspam and Doom work too!
110
Joe Gibbs Politz @joepolitz.bsky.social · 18/03/2026
Holy shit, I’m a paid subscriber and I didn’t know about this feature!
150
Joe Gibbs Politz @joepolitz.bsky.social · 17/03/2026
@shriram.bsky.social there's another layer you can (a|de)scend to if you want.
120
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 · 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 · 06/02/2026
That is, don't post from instrumented perambulatory conditions
010
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
Joe Gibbs Politz @joepolitz.bsky.social · 18/01/2026
, or maybe doing exactly what you did! The key thing is that you developed a sense of what a solution was supposed to look like, rather than trusting the version from the machine." ucsd-cse29.github.io/wi26/#cse29-...
ucsd-cse29.github.io
Systems Programming & Software Tools - UCSD CSE29 Winter 2026
030
Joe Gibbs Politz @joepolitz.bsky.social · 18/01/2026
“A good way to go about learning in this course is to do the work yourself first, then go back and see how the LLM would have done it. Then you may be able to notice things, like the LLM generating extra unnecessary code, or doing something in a more or less complex way than you did it...” 2/
130
Joe Gibbs Politz @joepolitz.bsky.social · 18/01/2026
I think a critical thing pedagogically is that students got code to review *after attempting it themselves*, which requires some structure to encourage/enforce. My current syllabus wording about AI says... 1/
130
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
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