Kristin

Kristin

@wiredaemon.bsky.social

Formal Methods, Programming languages, Specifications. discord: wiredaemon she / her 🏳️‍⚧️

176 followers102 following375 posts

in that spirit: I'm on a quest to look for the things again that make me dream. Programming languages, compsci research findings, etc.

Kristin@wiredaemon.bsky.social

i feel like a wave of doomer pessimism has washed over software. i hate the attitude of "don't even try, you're not gonna use the software anyways. you're not going use the code either. why? because you'll have AI" why? i like coding. i like doing things. you gonna tell me ai will fuck my wife too?

i feel like a wave of doomer pessimism has washed over software. i hate the attitude of "don't even try, you're not gonna use the software anyways. you're not going use the code either. why? because you'll have AI" why? i like coding. i like doing things. you gonna tell me ai will fuck my wife too?

i understand the constraint of employment. but whatever job i will take up in the future, as long as i'm sitting in front of a computer and have to think about something, anything, i'll use my education and skills. i will develop and code. i'll do it as a tool for learning if nothing else.

I've seen attempts to get around this. The most principled probably being software verification. But specs too, can be wrong, incomplete, unsound. You are never free of the burden to understand a solution if you are responsible for it. Best you can do is pretend you don't have to. Until you do.

Kristin@wiredaemon.bsky.social

Who is on the line when something goes wrong? an engineer. It's outsourcing the work but having your staff fix mistakes they didn't make. You get none of the domain knowledge or insight into technical challenges with all of the burden of maintenance. Cracking open black boxes in a crisis... great

Who is on the line when something goes wrong? an engineer. It's outsourcing the work but having your staff fix mistakes they didn't make. You get none of the domain knowledge or insight into technical challenges with all of the burden of maintenance. Cracking open black boxes in a crisis... great

Kristin@wiredaemon.bsky.social

Can you afford to not understand a system or a piece of it? No? Then don't vibe code it. Seriously, you'll either be forced to understand it eventually or replace it, but it won't be on your terms then. The only "legit" way I see is when it's a fire-and-forget situation, but those are rare!

Can you afford to not understand a system or a piece of it? No? Then don't vibe code it. Seriously, you'll either be forced to understand it eventually or replace it, but it won't be on your terms then. The only "legit" way I see is when it's a fire-and-forget situation, but those are rare!

some of the coolest PRs are those that grow in size to thousands of locs of addition and after some deliberation shrink to like, 200 locs addition and 100 locs subtraction

when someone tells you you've changed, how do you even react? I was inclined to just thank them and tell them it took a lot. But that feels inauthentic. I changed because I had to. And in part it's not like I wanted to either. It was as easy or difficult as staying alive, and about as inevitable.

type propagation via go channels. distributed type checking with Kafka. Using Amazon sns / sqs for type checking in the cloud. Type checking as a service. Watch out, I'm going to publish an update for your unification variable. Help my skolem ended up in dead letter queue. I won't ack this type.

Something i noticed in general where I see AI coding assistants struggle a lot: If you start with a certain style, it'll perpetuate it, seldomly going for the more robust, simpler, or plain better approach. Makes me worried for vibe code heavy projects that the quality can at best stay the same.

Kristin@wiredaemon.bsky.social

Solutions built on Communicating Sequential Processes are just so nice. Having to solve problems in this domain without it is such a pain.

Java will slowly, but surely, drive me insane one day. How the hell is a List<? extends SomeType> not compatible with a List<SomeType>? as in, a function taking a List<SomeType> parameter won't accept a List<? extends SomeType> value.

Some people don't seem to understand what other people value. If you want to make an AI tool for some existing niche, it should *improve* UX. E.g. why the fuck would i want to write a prompt instead of click a button?

I'm more and more convinced that the main problem types can introduce is that they're not good general purpose specs, but will be used as such. They're the allowlists approach, but once you want to specify illegalalities, e.g. "only even numbers", they quickly suck at modeling that.

"no, you don't understand... the "gestalt" in gestalt consciousness is actually german... it's a german concept... look it up..." me, a german: ???

found out that your favorite tea is one "i forgot to empty the tea can and now it is decomposing" away from not being your favorite tea anymore.

pet peeve: When a derivable property is part of a type. It's illegal state waiting to happen. There can be reasons for it: performance requirements moving data between domains because the property can be derivable in one but not the other but I beg of you, use DTOs or projections or *something*

me: does thing others: you gonna do thing? me: i don't think so me: here's update on thing others: so you really wanna do thing, huh? me: I really don't want to do thing others: but you'll keep working on it? me: ... yes

It was the end of March. Spring was just beginning. The words war and peace got thrown around a lot by all the people on TV, but the sound of their words got blown across the sky with that first spring breeze. All we thought about was clothes on sale, release dates of new games, and the beginning of

friend: "how does that work??" me, waving with my hands: "it's all, uh, you know, it's not just anything, it's code! it seems like my oratory skills from teaching at uni haven't degraded one bit. (it was about how i'm generating code with and without lisp macros)

It's so sad to see people unable to truly break up with their toxic typed functional programming language, even after continued suffering. They eventually just return to then get willingly abused by their typechecker all over again. I guess some people never get clojure ... 😞

me, when i was teaching at university: you see, this is why you fundamentally cannot use regex to parse a lot of things of interest, such as grammars containing even braces. it's just impossible. use a parser generator, parser combinators, etc. also me: recursive regex matching goes brrrrr

since i was asked what this means, this was a marathon reference. if you want to lose your mind to an obscure and old game series, the marathon series is definitely not the worst to do that with. abridged text and image taken from marathon.bungie.org/story/eatthe...

marathon.bungie.orgMarathon Infinity... Rage: Eat the Path
Kristin@wiredaemon.bsky.social

Existence is simple: find the food, push the button, hit the treadmill. But sometimes it gets much harder. Cross over the cell bars, find a new maze, make the maze from it's path, find the cell bars, cross over the bars, find a maze, make the maze from its path, eat the food, eat the path.

Existence is simple: find the food, push the button, hit the treadmill. But sometimes it gets much harder. Cross over the cell bars, find a new maze, make the maze from it's path, find the cell bars, cross over the bars, find a maze, make the maze from its path, eat the food, eat the path.

The first Mozilla TOS are a joke. They state that "use of Firefox must follow Mozilla’s Acceptable Use Policy" in which they state that "You may not use any of Mozilla’s services to:" even display sexual content. Watching porn is now illegal on firefox i guess. Who came up with this nonsense?

It's funny how zig is actively removing features that I like and that are necessary for what I want to do with zig. Like actively breaking changes and removing access to information that zig internally clearly has and had, "because you're not supposed to depend on that" 🥲

For example, previously you could get the name of function parameters via compile time reflection. this is no longer possible. it is planned to remove the `@Type` built-in which gives you the type of a std.builtin.Type (info about a type) value. This is useful for meta programming in general.

Those are only 2 examples. But if this continues I'm going to just be stuck on some specific, odd version of the compiler that lets me do what I want to do. That or i will fork the compiler every so often, who knows.