18 Followers
114 Following
30 Posts

@jonikorpi Is it really a CPU bound Problem? From my personal experience most JS performance are caused by IO or initial bundle size.

Also most garbage collectors for JS are generational, which means they are fast for short-lived objects and the real problem are medium-duration objects, that fill up the old space. (I haven't measured it, so take with a grain of salt).

@memoriesin8bit The last season had quite some narrative flaws, but emotionally it was so satisfying.
@dbat @tracefree @YoSoyFreeman You can set it to any node (or null), but then it is not considered part of the specific scene.

My experience is that you have to talk to different people about undefined behavior differently.

Some people have drunk deeply from the well of symbolic logic. Once you say "this is stuff the compiler ASSUMES won't happen", they're like "omg then if it did happen, you have a contradiction, and then anything follows! nasal demons! cats and dogs living together!" and never write a C program again.

Some people are like "that's stupid, the compiler turns each line of C into a few assembly instructions, it's not rocket science. I know what's going to happen." To these people, you have to explain what an optimizing compiler is. Sometimes you take the trouble to convince them, and then while you're not looking they become unconvinced again. It's a process.

But I think most people are in between. They just kind of narrow their eyes and are like "I don't think nasal demons are actually a thing, level with me, what really happens?" You know, reasonable, pragmatic human beings.

So in Programming Rust, we talk about where most security bugs come from, and every once in a while we show weird things that can happen, using real code.

I said all that so I could say this: The code in our book is almost all under test. Tests run on every push. So we trigger undefined behavior regularly on this project. Ironic, I know. To my knowledge this hasn't caused anything unusual to come out of my nose, but I guess technically they could appear anywhere. If you see any nasal demons running around... could be us. Sorry.

@rygorous While P=NP is a simple question, there is the possible, hillarious outcome, that we will find a proof for P=NP, but it is non-constructive.
The way we're thinking about breaking changes is really silly

A major problem plaguing modern compilers is that they have no concept of time. When run on a codebase, a compiler treats it as if it had been in the exact...

welltypedwitch
@RYStorm Single Sign-on support. At least that is the reason why we implemented it that way.
On the button click the server checks the email and then either asks for a password or redirects to the identity service.
@djlink also works in many other programs

@tracefree According to research a lot of changes don't make you more productive, even if you feel more productive.

What I think actually helped:

Good fuzzzy search, which is why I now stick to vscode, where the built-in search is really good.

Optimizing shortcuts and avoiding mouse interaction reduced the strain on my hands.

Improvements which make it easier/faster to run tests. I run test more often before committing instead of relying on ci/cd.

Learning more about ci/cd config.

@tracefree @memoriesin8bit My usual question is "How hard is it to restore from a savegame?".
Some features like coroutines and dynamically constructed callables are basically impossible to restore. For derived classes, you need to store the typename alongside the data and additionally create a factory function to restore it.

An event bus is good if you know exactly which objects subscribes to when in given state but absolutely terrible when objects subscribe dynamically during gameplay.