Monthly Grinder

Summer has finally arrived, with the endless rains giving way to an oppressive, deadly heat. Isn’t nature wonderful? Regardless of the weather, engineering remains enjoyable, so here’s your dose of edutainment for the month:
-
Alright, let’s be fair: it’s nice to occasionally work outside. Despite what they say, sunlight does not actually kill programmers. Having a quick way to switch between light and dark modes comes in handy then.
-
Here’s a not-so-recent post on suffering-oriented programming. It might seem like just a sexier name for the YAGNI principle, and well… it is. But the article itself goes into the details of various aspects that are sometimes ignored, and gives a more nuanced picture of this approach.
-
Recurrence rules are surprisingly complex in the general case, so you ideally don’t want to mess with them yourself. And that’s what rrule.js can handle for you.
-
Chrome has a built-in debug call to monitor events, called
monitorEvents
. Says it all, really. -
The Playwright project is now rolling out a dedicated end-to-end testing solution as well. If you don’t need the full power of generic browser automation, this looks like a slightly simpler alternative.
-
Apparently SQL server is rolling the
text
andimage
types intovarchar(max)
andvarbinary(max)
, respectively. So now instead of the type, you have a tableoption controlling in-row vs out-of-row storage. -
TypeScript 4.4 is now in beta! Type guards now work with aliases, and there are options for stricter catch and optional property typing. And it also adds on to the pile of esoteric features with, uhhh, ‘template string pattern index signatures’… Really? Is this kind of API design common enough to need language-level support? This seems like something that might be better handled with user code plugging into the compiler… but feel free to change my mind.
-
Fun link of the month: DOOM runs on everything. This time, in CAPTCHAs.
That’s it for this time, see you next month!