Why is `({})` true in JavaScript?

JavaScript’s abstract equality might sound quite daunting… until you realise that pretty much every operator and function in JavaScript has the same problem. After all why does JavaScript’s equality and ordering works the way it does?

The direct answer is “coercion polymorphism”[^1]. But since this is unlikely to tell you anything useful, unless you have implemented either JavaScript or similarly polymorphic languages in the past, let’s go in a short journey of how JavaScript operators work, with a particular focus on the idea of equality.

The Making of a Debugging Talk

Just recently I presented a short talk on time-travelling debuggers at Code BEAM Stockholm, so I thought it would be interesting to go into some of the things happening behind the scenes here.

Last time I wrote about my general approach to writing talks, so this time I’ll just discuss the general design ideas that went on this one in particular.

It was a bit of a wild ride, to be honest, and I panicked more than usual; but such is life. It was still a fun experience in the end :’)

What would a 'Coding Cover' be like?

The art community has some interesting dynamics where people try to re-interpret existing works with their own aesthetics and understanding of it. Of course, part of this is that art allows this re-interpretation to begin with; there are no right or wrong answers in art.

I often go around saying that programming and mathematics can be seen as art forms, too, but it just struck me that I don’t know anything like this in the programming scene, at least (and I’m not familiar enough with the mathematics scene to comment on that).

Which then led to the question: “What would a ‘Coding Cover’ (for lack of a better name) look like?”