fabs();

ex-game-dev, data-oriented design author, made something new on design-patterns.

fabs(); boosted:
Sy BrandTartanLlama
2025-06-11

Building a Debugger is now officially released!

It guides you through writing a whole native x64 debugger from scratch, dispelling all the magic and teaching you a ton about operating systems as it goes.

Even if you don't care about writing a debugger, you can read it to your cat.

The book Building a Debugger, featuring a robot designing a complex debugging machine on a drafting boardThe book placed in front of a tortie cat
fabs(); boosted:
2025-06-03

The gift relationship doesn’t have to be back and forth. Consider loaning someone some money and, when they say they’ll pay you back, you say “naw, pay it forward.” The idea is that the obligation to be generous sometimes circulates endlessly through society. Paying it back ends something; paying it forward starts something. (4/7)

Today, on my mind is, how do I slowly migrate a project from being written in Python to being written in Rust? I vaguely remember there being something called oxidizepy?

fabs(); boosted:
2025-06-01

This should be on TV every day, possibly multiple times per day…. #AI

fabs(); boosted:
earthlingappassionato
2025-06-01

Countries on the edge of the Sahara desert are reversing desertification by just digging half circles.

The ground in these places is too compact for water to soak in during wet season which leads to flooding but digging these holes gives the water a place to stop and soak in. And they’re pushing back the desert with this. By just digging holes.

via what-even-is-thiss

justdiggit.org/about-us/



Aerial view of a sub-Saharan area from 2018-2022, showing reforestation.
fabs(); boosted:
Joel Rileyjoelr@mas.to
2025-06-01

Inspired by One Million Checkboxes, I created a collaborative, realtime nonogram web game where you can help solve all 24,976,511 possible 5x5 nonogram puzzles. When you solve a puzzle, it solves it for everyone in realtime.

So far 289 puzzles have been solved.

Help out at:
pixelogic.app/every-5x5-nonogr

#nonogram #picross #webgame

Screenshot of Every 5x5 Nonogram website
fabs(); boosted:
Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2025-06-01

Telegram will feed your chat content to Elon Musks Grok AI in $300m deal. There you have another reason to #UseSignal instead.

theregister.com/2025/05/28/tel

fabs(); boosted:
Baldur Bjarnasonbaldur@toot.cafe
2025-06-01

“Why GUIs are built at least 2.5 times | Patricia Aas”

patricia.no/2025/05/30/why_lea

> It isn’t typing speed that constrains developers either. We are constantly making custom work in a context, doing it well requires us to deeply understand our context.

fabs(); boosted:
Itamar Turner-Trauringitamarst@hachyderm.io
2025-05-30

So I have a Take:

Imagine if LLM coding assistants had come out when programming required explicit manual memory management.

Everyone is writing all this C code with malloc() and free(). It's a pain, and repetitive, and why spend time thinking about this?

So all the early adopters of LLMs are saying "this is amazing, I don't have to write all this boilerplate malloc() and free() and multiplication of pointer sizes by array length, it auto-generates that for me, This Is The Future! You will All Be Left Behind if you don't adopt this!"

(I am actually skeptical this is something LLMs would do reliably, but let's just pretend they can.)

And maybe that approach would actually win, and no one would have created garbage-collected (or equivalent) languages, because that's silly, you have a LLM to generate that code for you.

Never mind that garbage collection is vastly superior to LLM-generated-malloc():

* The code is _way_ shorter and therefore easier to reason about the parts you actually care about (the logic)
* You don't have to worry about the LLM generating garbage one time out of N
* Less segfaults and memory corruption, etc..

Back to our actual present: a lot of what I hear people saying about LLMs is "look, I don't have to write as much boilerplate or repetitive code" and I'm sorry but that's not a benefit, that's just doubling down on a liability. All things being equal (if it's just as understandable, just as fast, etc), you want to solve a problem with the fewest lines of code as possible.

If you have to write the same thing over and over again, that is a failure in your tooling, and you should build better tooling. A better library, a better abstraction, even a better programming language.

And to be fair sometimes this better tooling requires significant investment, and those resources that are available for R&D are being piled into LLMs instead of into reducing how much code we write.

But sometimes better tooling and libraries is just a matter of _thinking_ about a problem. And can you even think if your boss wants you to hit the deadline, "and AI should make you twice as productive, right?"

But also: why think, when you can double down on a bad status quo and have an LLM poop out some more code for you?

fabs(); boosted:
elilla&, famigerada sapata travestielilla@transmom.love
2025-05-30

on the topic of chromophobia, I love this little book by David Batchelor with the same title press.uchicago.edu/ucp/books/b

> The central argument of Chromophobia is that a chromophobic impulse—a fear of corruption or contamination through color—lurks within much Western cultural and intellectual thought. This is apparent in the many and varied attempts to purge color…

one way to understand the chromophobic impulse is to look at it through binaries of prestige. if you had to associate subdued, pale, or black-white colours with one, and saturated, vibrant, strong colours with the other, between, say, Europe and Asia, which is the subdued one, which is the colourful? what about Black people and white folk?

for each binary you can think of, which one is "colourful"?
- adults vs. children
- straight vs. queer
- masculine vs. feminine
- civilised vs. indigenous
- high-class vs. lowbrow
- citizens vs. immigrants
- residents vs. wandering folk
- …

in basically every single case, the world of strong colours is relegated to whoever is despised in society. the pleasure of colour is too immediate, too sensorial and hedonistic for the sophisticated colonisers. adult civilised life is to be made of white walls, marble statues, beige appliances and pale wooden furniture; those are tasteful; the tasteless enjoyment of colours is relegated to exoticised adventures, a trip to Morocco or to your wive's embrace of silky lingeries, or to the movies to watch children's animation… before you return to the tame, controlled normalcy of desaturated palettes.

(source for the restored Ancient Greek statue below: buntegoetter.liebieghaus.de )

Reconstruction of the original painting of an ancient Greek statue, an archer from the Temple of Aphaia, ca. 480BC. The diagram shows half the statue as it's widely known today, in pure white marble; and the other half as it originally was, in a luxurious peach-yellow base with marvelous geometric patterns in royal blue, scarlet, viridian.  The whiteness of marble has become a symbol of the refined superiority of Western civilisation, represented by its mythological origins in Greco-Roman Antiquity; however, the actual Greco-Roman art was as colourful as anything else you might see today in the Mediterranean area.

@villares yes. That all makes sense. You're closer to the behaviour, so the kind of protections provided by types are lower value than the simplicity of the code.

@villares I can kind of see a point for some cases, but your example smells like polymorphism. Couldn't a protocol handle this?

fabs(); boosted:
2025-05-30

@JeffGrigg But we even have an expression for that in programming "Premature optimisation", the problem we have the most is that we make the wrong thing. Typing faster doesn't produce value. What produces value is typing the Right Things. That is what is hard in software dev.

Anyone else think that the Union type annotation in Python is a code smell that something is too loosely defined?
#python #mypy

@GeePawHill the hardest to swallow was learning that Notes on the Synthesis of Form was a failure. Not in terms of popularity, but that the system devised does not work. It explodes in combinatorial complexity, just as he had feared the original solutions did. But, watching his pride hide it under years of other work was a fascinating humanisation of him for me, and proof that his theories were worth something.

@GeePawHill reading it led me to one approach I use all the time: taking a step back and looking at the code as if it was some open source stuff that you were allowed to modify. Sure it's your code, but let go of pride and find the fault you know is there but won't let yourself see.
Timeless way of building was my gateway drug to this world of thinking. Stephen Grabow did an excellent job of capturing his fight, and Will Storr's books keep on explaining, unknowingly, why he was doomed.

@GeePawHill the Nature of Order can go on the list too. A highly convincing argument, unfinished though. The theory is too close a reading to get to where it could be. It's like he's explaining the real world when he should be explaining all possible worlds. I tried to go into where it leads in Unresolved Forces, but I don't think I landed it as well as it deserves.

fabs(); boosted:
GeePawHillGeePawHill
2025-05-30

What's the most intellectually challenging book you've ever read?

EDIT: Let me reframe it a little. What is the most intellectually challenging book you've ever read that you feel you understood? I've read plenty of intellectually challenging books that I didn't feel I *got*.

@GeePawHill the language is dense. They clearly knew what they were on about and kept dropping new thoughts on me that made me stare off into the distance. Normally I get that when wondering why the author missed this one thing that would change their whole conclusion, but Maturana and Varela did it back to me.

@GeePawHill Just reminded me I need to reread The Little Prince again. Hardest that I finished was Autopoesis and Cognition. Never did finish Being and Nothingness.

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst