brundolf's Avatar

brundolf

@brundolf.bsky.social

275 Followers  |  327 Following  |  936 Posts  |  Joined: 10.04.2023  |  1.8639

Latest posts by brundolf.bsky.social on Bluesky

There is fun friction and unfun friction. Game design is distinguishing the two. But optimizing for minimal friction will sand off engagement itself

07.11.2025 03:20 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

The point of a game is not to be Convenient. The friction is the entire game

07.11.2025 03:14 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Bad UX is often good game design. So much of the industry doesn't get that

07.11.2025 03:14 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

getting nostalgic for morrowind

15.10.2025 05:22 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Hi! Glad to see you here

28.09.2025 16:50 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

VIDEO VIDEO

02.09.2025 06:54 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I wonder if AI vulnerability-finding tools will further accelerate unsafe languages' decline

07.08.2025 20:37 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Rust actually hit this issue, and that's why rust-analyzer is a whole separate project

But if you start out designing for these constraints, it's very easy to go back and say "ok now just do this on all the files at once and then take the ASTs and compile them"

03.08.2025 15:54 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Which means, a classical compiler that does one pass on everything, and then the next pass on everything, stopping at any point where things are broken, won't really work as a starting point for an LSP

03.08.2025 15:54 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Sorta! Except it needs the ability to partially-reevaluate and cache not just individual files, but individual bits of files. And to make sense out of partially-formed syntax and do its best, so it can provide type checks and autocomplete as you're in the middle of editing

03.08.2025 15:54 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Don't know about Steve, but on my most recent language project I actually started with the language server because a) it's much easier to make a compiler out of an LSP than the other way around, and b) it gave immediately satisfying feedback which made development more debuggable and fun

03.08.2025 15:33 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

This is the first I'm hearing about ruelang. Got anything I can read?

02.08.2025 20:27 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Did you try different tip sizes?

27.07.2025 20:52 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

americans in fifty years denying our nationโ€™s unforgivable crimes during the early 21st century:

26.07.2025 12:32 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

hahahaha well done

27.07.2025 20:47 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Purpose-built gadget idea: a little LED display you can plug in with USB that always shows the computer's current IP address on the local network. For little servers you don't want to plug a display into

26.07.2025 17:12 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

(you can of course put resetMocks in a beforeEach clause, but you still have to remember to do that)

22.07.2025 06:09 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

For example: by default, mocks made in one test will affect all the other tests in that module. To isolate tests from each other, you have to remember to call resetMocks() before each of them

I can't imagine a situation where you would ever want the default behavior, much less expect it

22.07.2025 06:08 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Made by and for crazy people

21.07.2025 23:50 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Jest (javascript testing framework) has the most batshit insane default behavior

21.07.2025 23:50 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

anyone out there who has had music removed from spotify due to false accusations of artificial streaming โ€” is there any recourse besides re-uploading stuff?

03.07.2025 14:48 โ€” ๐Ÿ‘ 23    ๐Ÿ” 13    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

The @oxide.computer podcast has made me better at debugging

14.07.2025 19:28 โ€” ๐Ÿ‘ 23    ๐Ÿ” 3    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

"the croconony" ๐Ÿ™€

07.07.2025 16:35 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

til "crocs charms" are a thing

07.07.2025 16:26 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
screenshot of classic dril tweet that reads: โ€œThis Whole Thing Smacks Of Gender,โ€ i holler as i overturn my uncleโ€™s barbeque grill and turn the 4th of July into the 4th of Shit

screenshot of classic dril tweet that reads: โ€œThis Whole Thing Smacks Of Gender,โ€ i holler as i overturn my uncleโ€™s barbeque grill and turn the 4th of July into the 4th of Shit

happy 4th of Shit to all who Smack Of Gender

04.07.2025 20:45 โ€” ๐Ÿ‘ 623    ๐Ÿ” 195    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1

โ€ชNot specifically *creating* glitchy behavior, mind you. Then it isn't a real glitchโ€ฌ

โ€ชJust like... not trying to guard against race conditions, etcโ€ฌ

24.06.2025 00:31 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

A video game that intentionally uses poor coding practices to make glitches more likely to exist, because glitches are fun

24.06.2025 00:30 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

It's weird that we don't have better tools for visualizing code

Simple example: if I want to reason about a function call tree that's a few layers deep, it's fairly miserable to get all that information visible at once on screen, and there will be lots of noise, if it fits at all

18.06.2025 17:40 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

the way if/else is implemented in shell scripts ("[" is actually a command that accepts arguments, which is why it requires whitespace before and after itself)

14.06.2025 23:17 โ€” ๐Ÿ‘ 16    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

No Kings, y'all ๐Ÿ‡บ๐Ÿ‡ธ

14.06.2025 20:25 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@brundolf is following 20 prominent accounts