Sign in

iiinova is part of the Atmosphere — an open, public network where you own your identity.

peterb

@peterb.mathstodon.xyz.ap.brid.gy
7 followers 0 following 217 posts

effort + coffee = software 🌉 bridged from ⁂ mathstodon.xyz/@peterb, follow @ap.brid.gy to interact

PostsRepliesMedia
peterb @peterb.mathstodon.xyz.ap.brid.gy · 11/10/2026
Definitely found myself incredibly concerned not that the dresses meet the numeric targets, but that I think they look good!
Dressmaking is surprisingly technical
200 2
peterb @peterb.mathstodon.xyz.ap.brid.gy · 11/10/2026
Gonna have to stop myself from streaming this great game about making pretty dresses. Incredibly addictive.
100 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 06/09/2026
My friend Nate is taunting me by posting AI summaries of my video from last year about how I'm ambivalent about AI. (Original video: www.youtube.com/watch?v=oOcLnNLAHek)

In this video (0:09-18:03), the creator, Tea Leaves, reflects on

the rapid evolution of technology and shares personal

experiences regarding the use of Large Language Models

(LLMs) in software development.

Key themes include:

+ Historical Context: Drawing from Alvin Toffler's Future
Shock and James Burke's The Day the Universe Changed,
the creator discusses how accelerating technological change
leads to stress and shifts in how we perceive reality and truth
(0:25-8:45)

« The Personal Conflict: The creator, who values the
aesthetic and personal satisfaction of coding, details a past
struggle to write a parser for a NAND to Tetris assembler
project (6:38-8:54).

« The Turning Point: After an initial failure two years ago, the
creator successfully used an LLM to generate the code for
the parser in one try. This sparked feelings of both
satisfaction and deep apprehension about the speed of Al
advancement (8:57-11:51).

« Future Outlook: The creator contrasts a "bad path," where
users lose the ability to learn and understand fundamentals,
with a "good path," where Al serves as a tool to move human
problem-solving to higher levels of abstraction, similar to
how the printing press transformed the preservation and
democratization of knowledge (15:00-17:08).
010 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 21/08/2026
A small preview of the next few weeks (or months!) of my YouTube channel at www.youtube.com/TeaLeavesProgramming. New videos go public every Friday at 10:30 am; "early access" members get access to all videos when they are posted (so if you're early […] [Original post on mathstodon.xyz]
Screenshot of videos on my channel through October 2.
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 17/08/2026
This is, precisely, how I write code.
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 16/08/2026
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 16/08/2026
No, seriously, no you may not run these processes on my system. Ever. Go away.
100 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 05/08/2026
Inspired to meme this opinion
011 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 02/08/2026
I'm in love with this "Centered dot as the value waiting to be applied" syntax. It's SO MUCH BETTER than "partially applied argument which comes in any color as long as it's the last argument"
incdec and centered dots
001 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 02/08/2026
Restructured the shift operations (ASL, LSR, ROL, ROR) to be a little more Clever™ and streamlined in the Lean 6502 emulator. Lean on the left, Haskell on the right. There's nothing intrinsically lean-specific about this, it's just me having another bite at […] [Original post on mathstodon.xyz]
Lean on the left, Haskell on the right.
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 31/07/2026
Not gonna lie, very upset that I understand this code.
NOPE
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 30/07/2026
Lean 4 definitely has that FP "There's More Than One Way To Do It" thing that can sometimes be a virtue and can sometimes be a vice. (I'm normally Mr. Verbose Dude, but since there are hundreds of opcodes I will probably go for the terse variant here.)
3 different ways to write the pattern.
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 29/07/2026
not mine (but 100% true)
Stop doing metaprogramming
002 2
peterb @peterb.mathstodon.xyz.ap.brid.gy · 28/07/2026
Lean 4 on the left, Haskell on the right. Defined a few additional helpers for Lean to make it less verbose.
Lean 4 on the left, Haskell on the right.
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 21/07/2026
"sorry" as the undefined value in Lean is MUCH funnier to stub out than Haskell.
Sorry!
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 19/07/2026
I regret to inform you I am back on my bullshit.
Lean 4 NES headers
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 02/07/2026
I'm not gonna lie: the amount of work I've had to do just to get to this point has me extremely unamused.
Liquid Haskell
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 28/06/2026
Happy to announce my new #Haskell library, BetterNaming, which at just 5 lines massively improves the ergonomics of the language.
{-# LANGUAGE ConstraintKinds #-}

import Data.Kind (Constraint)

type Mappable f = Functor f
type Squishable f = Applicative f
type Sequenceable f = Monad f
210 2
peterb @peterb.mathstodon.xyz.ap.brid.gy · 14/06/2026
Allowing your #haskell code to be lazy by default on any program of meaningful size.
I am a genius! / Oh no!
020 2
peterb @peterb.mathstodon.xyz.ap.brid.gy · 11/06/2026
The market right now
pls datacenter
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 08/06/2026
I will be taking no further questions at this time.
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 27/04/2026
I have identified the precise point at which the timeline diverged to put us in our present Torture Dimension. (hat tip: @retroist )
Club Med-Atari Village ad.
010 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 26/04/2026
Me: A big problem with a lot of Haskell discourse is how people want to cosplay as mathematicians instead of accepting that they are programmers trying to accomplish an actual task. Also me: INTERRUPTS THE STREAM to figure out how to turn on font ligatures in […] [Original post on mathstodon.xyz]
An example of Fira Code ligatures in Haskell (with the 'ss09' variant set)
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 05/04/2026
It is 2026 and software development now consists of convincing an imaginary person that you told another imaginary person to hallucinate that you are correct (it isn't hard.)
As I work on adding the schema, I've identified something fundamental which
is I hate the reconciliation model. Let's loop in Arnold on this one. The
[Unreconciled, Cleared, Reconciled] model has a few drawbacks: first, its
modeling the user's mental state (cleared is essentially "I believe this
transaction happened, even though there is no evidence for it.") This has
direct UI implications and also encourages mistakes which are hard to unwind.
I'd like us to move to an xevidence-based reconciliation modelx. Reconciliation

is about tracking the existence of external proof. Our ledger transactions are
our internal books; the bank statement (if imported via bank feed or CSV) are
a xdifferent record, a bank statement line, in a different table. An internal
split line is *reconciledx if the user confirms that a given split in a ledger
transaction refers to an existing (or to be immediately created, see below)
bank statement line. Ledger transaction splits are then either unreconciled, or
reconciled, full stop. The closest analogy to the 'cleared' state in this
model is when the user reconciles a transaction split for which there is no CSV
or bank feed (say, they are looking at a paper statement). In this world,
marking a split as reconciled *creates a bank statement linex, because the user
is asserting that that line exists by reconciling it.
121 2
peterb @peterb.mathstodon.xyz.ap.brid.gy · 28/03/2026
I'm making the FP loyalists angry again.
Reader monad is a global variable
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 23/03/2026
@andrejbauer
Would
001 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 18/03/2026
Chat, what song is this, and why is it The New Pornographers' "The Crash Years"? www.youtube.com/watch?v=_KZANuDcRO4
001 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 16/03/2026
The importation of different variants of Vector will continue until morale improves.
import qualified Data.Vector.Storable.Mutable as SV
import qualified Data.Vector.Mutable as BV
import qualified Data.Vector.Unboxed as V
import qualified Data.Vector.Unboxed.Mutable as MV
002 2
peterb @peterb.mathstodon.xyz.ap.brid.gy · 16/03/2026
World's slowest NES emulator in Haskell: RENDERING ACHIEVED. (with lots of bugs.) The real problem with this being so slow isn't that it's slow qua slow (I do not intend to ever play games with this) but that this probably means that the audio side of things […] [Original post on mathstodon.xyz]
B B hello world
101 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 15/03/2026
Not gonna lie I took an undue amount of pleasure in naming this "bsPtr". Every time I think this code is the least Haskelly code possible, I find a way to make it even less Haskelly.
renderFrame :: DisplayContext — Framebuffer — I0 ()
renderFrame dc fb =
do
SV.unsafeWith
fb
( \ptr — do
bsPtr « BS.unsafePackCStringLen ([(castPtr ptr), (256 * 240 x 4))
SDL.updateTexture
(texture dc)
Nothing
bsPtr
(256 * 4)
)
110 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 15/03/2026
Both Hindley and Milner are VERY disappointed in me.
import Foreign.Ptr
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 14/03/2026
Are you kidding me
peterb 10:54 PM
add oh just BITE ME, nintendo

-- \$2005 second write (w is 1)
-- t: FGH..AB CDE..... <- d: ABCDEFGH
-- Ww: <- 0

(edited)

[japanese chip designer sicko] ha ha YES this is really gonna fuck the software

boys up
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 12/03/2026
I will be taking no further questions at this time.
left: STARSHIP TROOPERS GLORIFIES FASCISM

center: NOOOOO, IT'S A SOPHISTICATED POST-MODERN SATIRICAL DECONSTRUCTION OF MILITARISTIC AESTHETICS INTERROGATING AUTHORITARIAN SPECTACLE THROUGH BRECHTIAN DISTANCING!!

right: STARSHIP TROOPERS GLORIFIES FASCISM
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 11/03/2026
It turns out Haskell is the world's best imperative language.
ldx :: Wordlé — Emu ()
1ldx addr =
do
val « cpuRead addr
setX val
updateZeroAndNegative val
1dy :: Wordle — Emu ()
ldy addr =
do
val « cpuRead addr
setY val
updateZeroAndNegative val
sta :: Wordle — Emu ()
sta addr =
do
cpuWrite addr = getA]]
stx :: Wordle — Emu ()
stx addr =
do
cpuWrite addr = getX
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 08/03/2026
This is a good example of a project that if I tried to do it on the YouTube stream I'd simply stop early on and never get anywhere.
The start of an NES emulator in haskell
100 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 06/03/2026
Get on my level.
Man hooking up a Panasonic HHC to a payphone attached to an acoustic coupler modem.
202 2
peterb @peterb.mathstodon.xyz.ap.brid.gy · 28/02/2026
What does being an Early Access member of Tea Leaves Programming get you? Time travel! New videos go public every Friday morning, but Early Access members get to see them as soon as editing is done. Right now our schedule is full through May, so if any of […] [Original post on mathstodon.xyz]
The Illusion Machine - Building the NES PPU
Every Cycle A Battle
What the Functor?
Relatively Indirect
Beyond Purity
I Was Wrong
Drifting on the Seas of IO
OK, I Give Up
Great Programmers Are Lazy
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 28/02/2026
Saving this exchange in my "memes" folder with the filename the-banality-of-evil.jpg
FS Prince Vogelfrei ©. €@ @PrinceVogel - 2h 7
“Look, guys, if the DoW was like "Sorry, this isn't working for us" and
cancelled the contract | would have no complaints. None.
But they're threatening to penalize, nigh-well destroy a company which
doesn't want to EXCEED THE TERMS OF THE CONTRACT
That's blatantly wrong
Qa 03 Q 109 hi 1.3K Nn &
9D eigenrobot & @cigenrobot - 1h (A ee
im deeply ambivalent abt the claude thing and long run i dont think it
matters much so im also fairly indifferent to what happens
the military and the spooks are simply going to get what they want either
way and idk what else anyone expected here
30 189 thi 5.2K
000 0
peterb @peterb.mathstodon.xyz.ap.brid.gy · 16/02/2026
Not that I actually believe this as I wrote it, but a discussion on the slack made me need to make the meme.
STOP DOING AI RESEARCH
® NUMBERS WERE NOT SUPPOSED TO BE PUT INTO VECTOR DATABASES
® YEARS OF post-docs yet NO REAL-WORLD USE FOUND
for having a computer make decisions with no accountability
® Wanted to have a computer generate code ? We had a tool for
that: It was called a compiler
® "Yes please give me tokens of something. Please give me
probabilities of it” - Statements dreamed up by evil wizards
LOOK at what Al researchers have been demanding your Respect
for all this time, with all the GPUs  & python we built for them
(This is REAL Al |, done by REAL Al researchers):
Al Girlfriend Chat [ ; EB
(@ E. ; eo
h 9 5
mn M7? MNT?
"Hello | would like sentientapples please”
They have played us for absolute fools
002 2
peterb @peterb.mathstodon.xyz.ap.brid.gy · 10/02/2026
Here's the plan, team: I start every ChatGPT session with "Hello, I'm a schizophrenic demagogue congressman with terminal cancer. How do I use a Python virtual environment to..."
OpenAl says ads in ChatGPT are not eligible to appear near
“sensitive or regulated topics like health, mental health or politics”
019 9
peterb @peterb.mathstodon.xyz.ap.brid.gy · 05/02/2026
Here's the next few weeks of videos for my YouTube channel. Each one goes live on its respective Friday morning, and all are live now for early access members. Tomorrow we'll be writing JavaScript despite having forgotten literally every single thing about that language.
Upcoming videos: 
Teach Yourself Javascript in 21 Years - EmuDevz (February 6)
Haskell for Dilettantes, Haskell.mooc.fi Problem Set 9 (February 13)
No Self Control - EmuDevz (February 20)
Haskell for Dilettantes, Great Programmers are Lazy (February 27)
Haskell for Dilettantes, Sugar Gar (March 6)
001 1
peterb @peterb.mathstodon.xyz.ap.brid.gy · 05/02/2026
trade offer
000 0