clojure-europe

simongray 2026-04-07T06:46:59.895609Z

good morning

thomas 2026-04-07T06:54:43.521189Z

Good morning

ray 2026-04-07T07:13:49.357899Z

good solidarity 🇨🇺 morning

plexus 2026-04-07T07:27:00.335449Z

❤️ 3
teodorlu 2026-04-07T07:27:56.148459Z

morning all! Hope you got your time to breathe over the last days, if you took time off.

reefersleep 2026-04-07T13:11:57.325489Z

Did 🙂 Tried to completely unwind from work thoughts. Managed to get there just by the end of the free days 😄

😄 1
reefersleep 2026-04-07T13:12:13.386579Z

How about you?

seancorfield 2026-04-07T13:18:17.520929Z

I was supposed to have Thu/Fri and Mon/Tue off, but an emergency at work Thursday evening meant I was back at work Friday and had to work through the weekend 😞 So I got 1 of my 4 days off.

simongray 2026-04-07T13:35:21.442259Z

Damn, that sucks @seancorfield. Can you at least take the days off some other time?

seancorfield 2026-04-07T13:40:25.061589Z

Oh yeah, once we're through this, I'll get all the time back (and more, I expect), but I think it's going to be a very busy few weeks, unfortunately.

reefersleep 2026-04-07T13:57:50.584249Z

Whoah 😞 Hope you didn't miss out on any planned social activities.

seancorfield 2026-04-07T14:25:21.157629Z

Luckily, no...

teodorlu 2026-04-08T06:07:55.484019Z

I had to cancel my original plans, so no traveling, but disconnected properly! Getting back to work again felt good yesterday.

seancorfield 2026-04-08T12:33:47.324039Z

It's good to disconnect from time to time. I'm very bad at really not being online.

2
plexus 2026-04-07T07:28:53.356219Z

My babies

💚 3
😍 3
🌱 4
Wendy Randolph (the-dress-code) 2026-04-07T23:03:09.670799Z

I started tending to plants again within the past few days, and I thought, I wonder if Arne is growing anything now... 😌

borkdude 2026-04-07T08:31:25.273089Z

8
2026-04-07T08:56:21.755759Z

morning

mpenet 2026-04-07T08:58:53.551129Z

Bonjour

reefersleep 2026-04-07T10:39:58.956439Z

Good morning!

reefersleep 2026-04-07T10:40:35.165599Z

We believed we could solve an issue with caching. I believe you know the rest 🙂

😂 6
thomas 2026-04-07T10:42:22.991059Z

sorry to hear that actually.

reefersleep 2026-04-07T10:49:06.198629Z

I mean, I think some kind of caching was definitely needed. But there has been, and continue to be, issues with what was chosen.

reefersleep 2026-04-07T10:51:36.869179Z

What's that, some sort of inverse survivorship bias? We live with whatever is chosen at some point, and all choices have trade-offs. Since we experience the trade-offs (particularly the negative sides) of a particular choice, we get to complain about that particular choice, without ever really knowing whether things would be better, or just shite in a different way, had we gone with a different choice.

thomas 2026-04-07T10:53:30.542069Z

Inverse survivorship bias? just dying? but, yes I catch your drift. complaining about what goes wrong is very easy

reefersleep 2026-04-07T10:55:30.058329Z

From Wikipedia: "Survivorship bias or survivor bias is the logical error of concentrating on entities that passed a selection process while overlooking those that did not. This can lead to incorrect conclusions because of incomplete data. " https://en.wikipedia.org/wiki/Survivorship_bias Actually, I suppose what I am describing is just vanilla survivorship bias, but with the twist that the "survivor" is viewed in a negative light rather than a positive light. But the bias (and potentially incorrect conclusions) are still due to incomplete data.

simongray 2026-04-07T11:47:07.440049Z

Is there a war story attached?

simongray 2026-04-07T11:47:50.980269Z

Ah you mention a memory leak in a later comment

reefersleep 2026-04-07T11:48:41.677369Z

yeah sorry, should have been in the thread

reefersleep 2026-04-07T11:05:16.110239Z

I measured memory usage of a particular data structure with clj-memory-meter and found a major memory leak, and I feel kind of like a genius grug brained developer for just measuring something instead of guessing.

😂 1
simongray 2026-04-07T11:48:58.666589Z

Nicely done. Can you save the implementation by using a limited core.cache instance or something?

reefersleep 2026-04-07T11:54:03.637979Z

This is some home brewed stuff (you know how it goes here 😛 ), and it's kind of intertwined with other stuff. Overall, there's a lot of "choosing easy over simple and suffering the consequences" going on here, I'd say. There's more stuff to untangle, but for now, the issue is that some of the keys that are used for persisting individual cache items are insanely big, and I believe can save that simply by using hashed values instead of the current values for the keys. That still leaves the issue of figuring out why the current keys are so huge and how to avoid it, since the key implementation is tied to cache invalidation and therefore is a more complex issue, but I'll take it one step at a time - key size is causing production issues all over, so getting a fix in quick would be awesome.

reefersleep 2026-04-07T11:55:08.644839Z

(And it's also tough and time consuming to debug the huge keys simply because I run out of memory and have long feedback loops due to the huge keys 😄 )

Ben Sless 2026-04-07T12:59:43.119519Z

Alex always says: measure first

reefersleep 2026-04-07T13:06:55.933129Z

Wise man

reefersleep 2026-04-07T11:06:34.718579Z

Genius by comparison (hence the "grug-brained" bit); this wasn't a complex problem, but nobody else had bothered to measure, apparently, though the problem has haunted us for long enough and people have been on the task of fixing it.