clojure-europe

Patrick 2026-05-19T04:54:47.918229Z

good morning, may every macro you write be one a function couldn’t do today.

Ben Sless 2026-05-19T05:13:37.360549Z

We have inline meta. We can do both

Patrick 2026-05-19T08:04:36.610199Z

well, may your stack traces be unsurprising then πŸ™‚ in all seriousness, have you found another use case for inline meta besides performance optimization?

Ben Sless 2026-05-19T08:05:58.452909Z

I was under the impression that's the reason it exists to begin with

ray 2026-05-19T07:17:16.534359Z

Happy hermaphrodite morning

πŸ’ 1
πŸŽ† 1
Patrick 2026-05-19T08:12:49.246449Z

Are you a bit of a gardening man? It's really nice to see everything come up this time of the year. Very nice flower.

ray 2026-05-19T08:51:27.478739Z

Thanks. I would describe myself as a reluctant gardener. It's getting into me though. You?

Patrick 2026-05-19T09:40:20.153789Z

I have a growing appreciation for it over time, although I'm very lacking in plant care skills.

2026-05-19T10:36:41.150059Z

I thought you were an Avant gardener?

2026-05-19T10:36:52.744339Z

πŸ˜‚ 2
ray 2026-05-19T10:54:13.401079Z

πŸ₯

seancorfield 2026-05-19T12:05:49.055349Z

After 25 years of living in a near-desert (California), I'm now somewhere that gets plenty of rain and plenty of sunshine so things grow really well (including the lawn which has to be mowed twice a week sometimes in the spring!). So I need to get out and start weeding my borders ready for summer, and get the big potted geranium back out on the patio to see if it has survived overwintering in the basement (cool, dark, water once every six weeks). Looking at the long range forecasts, we should not see any more freezes now until late autumn (although we might get a few single-digit nights before the month is out).

jasonbell 2026-05-19T07:52:45.972379Z

Morning friends

reefersleep 2026-05-19T08:01:48.563709Z

Good morning πŸ™‚

reefersleep 2026-05-19T08:04:38.756479Z

I feel like I have enough experience and knowledge about software to say that, practically speaking, all software has defects. Am I wrong?

πŸ‘ 4
reefersleep 2026-05-21T13:32:48.805309Z

It sounds like we work at the same place πŸ˜„

πŸ˜‚ 1
Patrick 2026-05-20T19:00:59.248679Z

Nothing, really. The bug reports started dying out when users started accepting that the software just was β€œcorrect”. The real underlying problem was that the requirements reflected years of negotiations and compounding changes over an organizational process, leaving corner cases and exceptions everywhere. They really should have simplified that instead of automating, but it was just too entrenched πŸ€·β€β™‚οΈ.

Patrick 2026-05-19T08:10:55.557059Z

I'm often surprised anything works at all. The internet, by all rights, shouldn't exist. It's a tower of mutable state, leaky abstractions, and shared-memory concurrency held together by overworked maintainers. So no, you're not wrong. All software has defects β€” most just hasn't been triggered yet.

reefersleep 2026-05-19T08:12:18.651869Z

I think the same, often! It's incredible that the internet is a thing. And, indeed, that many other things mostly work πŸ˜„

reefersleep 2026-05-19T08:12:50.486889Z

That reminds me of a song about celebrating that very fact (on a larger scale, though) TWRP - Life Party https://youtu.be/zRs1eoht5qw?si=F5moFzg2Y_nPg3hA

Patrick 2026-05-19T08:16:07.256239Z

Sounds a bit like Daft Punk, nice!

reefersleep 2026-05-19T08:17:15.745629Z

hah yeah, guess they do πŸ™‚

reefersleep 2026-05-19T08:17:57.802769Z

Here's the lyrics that are apropos of our chat here, they're a bit difficult to make out initially through the vocoder; [Verse 1] Have you ever thought Of our place in the stars? How lucky we are Have you ever thought Of the sheer improbability That you were born? That I exist? That we can even question this? [Pre-Chorus] Think just how amazing it is that we are alive On this tiny little rock is where we all reside There’s a million billion trillion stars up in the sky But here we are [Chorus] (So please join me) Please join me, baby And you will see We can be happy on this life journey Now let me tell you how Just stick together (Take it from me) Take it from me, oh yeah Life is a party It’ll set you free and you will soon agree That even when its tough We can make it better

plexus 2026-05-19T08:44:07.169689Z

not sure who verbalised this first, but there's an old notion that, given time and eyeballs you can always find one more bug in a non-trivial piece of software, so the number of bugs is effectively infinite

πŸ€“ 1
reefersleep 2026-05-19T09:36:10.885299Z

I don't even feel pessimistic about it or anything, it's just a fact to me. Like gravity or whatever. It's just there.

Patrick 2026-05-19T09:55:56.842229Z

I vividly remember painstakingly specifying a non-trivial piece of software (data processing), testing it exhaustively before shipping it to production. Only to see the bug reports come in, spending hours upon hours debugging. Every "bug" turned out to be the user simply not understanding what the software was doing (correctly) and having a different intuition about it.

reefersleep 2026-05-19T09:57:17.746659Z

That's another aspect of it. Even if you match the spec perfectly and account for all erroneous scenarios that you can derive from the spec or from common sense, nothing can guard you against opinions πŸ™‚

reefersleep 2026-05-19T09:58:34.180559Z

And not matching a particular opinion might be a defect, or not depending on the situation. If you've built a brilliant car, but people regularly crash it because they find it unintuitive, I'd certainly consider that aspect defective, regardless of how much work was put into the spec and development.

reefersleep 2026-05-19T10:06:43.230659Z

And opinions are not in unison, they contradict each other... So you may have be right and wrong with your above-mentioned implementation at the same time πŸ˜„ What did you end up doing, @pdekruif? Figure out how to make it more intuitive, or educate users... Or both?

Ben Sless 2026-05-19T13:16:38.606119Z

Let's not forget bugs of circumstances, e.g. just creative failure modes you never accounted for. A bug? Maybe, but certainly a fault.

reefersleep 2026-05-19T08:05:50.180039Z

Depends on how you define "defects", I suppose. And maybe "software" πŸ˜„

reefersleep 2026-05-19T08:16:38.699759Z

Let's celebrate that we get to live this moment! And that the internet, in spite of all that could go wrong, manage to let chat together here and, indeed, listen to a wealth of music 🎢 TWRP - Life Party https://youtu.be/zRs1eoht5qw?si=F5moFzg2Y_nPg3hA

reefersleep 2026-05-19T08:18:24.443229Z

Relevant lyrics for what I'm talking about; [Verse 1] Have you ever thought Of our place in the stars? How lucky we are Have you ever thought Of the sheer improbability That you were born? That I exist? That we can even question this? [Pre-Chorus] Think just how amazing it is that we are alive On this tiny little rock is where we all reside There’s a million billion trillion stars up in the sky But here we are [Chorus] (So please join me) Please join me, baby And you will see We can be happy on this life journey Now let me tell you how Just stick together (Take it from me) Take it from me, oh yeah Life is a party It’ll set you free and you will soon agree That even when its tough We can make it better

❀️ 1
mdiin 2026-05-19T08:39:45.405259Z

Good morning β˜• πŸŽ‰

simongray 2026-05-19T08:57:14.916739Z

good morning

samoleary 2026-05-19T09:58:35.198069Z

morning! β˜•

imre 2026-05-19T09:58:50.679169Z

good morning

2026-05-19T10:16:58.745379Z

Morning!

Safe 2026-05-19T10:23:57.040089Z

Morning!

2026-05-19T10:37:50.617909Z

Mooring

thomas 2026-05-19T10:40:07.362769Z

Goedemorgen

thomas 2026-05-19T11:12:55.419849Z

I'm looking for a new job, and all I can find are jobs I don't think I'd enjoy 😟

🀞 6
😿 5
πŸ™πŸΌ 1
thomas 2026-05-20T07:25:21.189299Z

πŸ˜‚

thomas 2026-05-20T07:25:37.872059Z

Not much! That I'll garuantee!

πŸ˜‚ 1
Thomas Moerman 2026-05-20T07:39:26.487309Z

Exercising the God-given right to do f*-all is a good prospect πŸ˜‰

πŸ˜‚ 1
borkdude 2026-05-19T12:28:27.097209Z

did your old job end?

Thomas Moerman 2026-05-19T12:56:07.569739Z

what would a job you enjoy look like?

slipset 2026-05-19T14:57:34.591339Z

Interestingly, I fear I would have the same problem. Like, I’m getting so picky these days. Can’t have micro services, can’t do scrum, probably shouldn’t have an old-school SPA. Can’t be too enterprisy. I think the only solution for me now is to start my own business.

βž• 1
borkdude 2026-05-19T14:58:12.184529Z

there's plenty of monolith datastar startup-y things around probably?

borkdude 2026-05-19T14:58:35.047949Z

but even easier to create your own probably

slipset 2026-05-19T14:58:46.886409Z

Yah, but htey have to pay unreasonably well and let me go windsurfing/skiing whenever.

πŸ˜† 1
borkdude 2026-05-19T14:59:00.605409Z

haha

borkdude 2026-05-19T14:59:26.213609Z

what's your age again, if I may ask

slipset 2026-05-19T14:59:28.947679Z

And I can’t be working with super energetic positive we’re going to be the next unicorn kind’a people either. Need a certain amount of grumpyness.

πŸ˜‚ 4
slipset 2026-05-19T14:59:42.212729Z

55.

plexus 2026-05-19T15:00:32.145489Z

I was considering trying to move more into technical leadership (I mean I've already done a lot of that, it just wasn't usually what I was hired for), and then I look at job ads and it's all "you'll make sure people hit their token quota"

4
borkdude 2026-05-19T15:01:17.415859Z

I think I'd go back to a lecturer/teacher role sooner than taking on something manager-ish, I don't think I would be happy

slipset 2026-05-19T15:01:55.777019Z

Managing the people I do is actually quite nice. It’s more like a mentorship than please get your shit together and pack this sprint.

slipset 2026-05-19T15:02:13.950529Z

Anyways, time to go climbing.

plexus 2026-05-19T15:04:13.689149Z

I enjoy straddling technical and strategic, helping people succeed technically, making business understanble to devs and devs understandable to business... but the people above me in the hierarchy need to be somewhat sensible. And it seems in general these days the higher up the corporate ladder you look, the less sensible people get.

borkdude 2026-05-19T15:09:30.913369Z

I guess not every company is pushing AI on their employees. My wife asked for Claude Code. She first has to prove if she's going to be more efficient with it, before they will give it to her. It was kinda surprising to me since I've also heard stories about companies that force their people to swallow AI

plexus 2026-05-19T15:14:34.033629Z

it was great to talk to people at DCD in person because it drove home to me what I already kinda assumed, that scepticism of AI dev tools is extremely widespread, and some of those sceptics are executives or technical leaders themselves and they want to see receipts... it's a minority that is really pushing for this stuff, but they tend be concentrated in the higher regions of company power. High on sillicon valley sci-fi, not really understanding the technology, but believing all the sales pitches about how inevitable and revolutionary it is.

borkdude 2026-05-19T15:15:15.841429Z

yeah, I enjoyed the AI pushback on both confs

thomas 2026-05-19T15:44:42.795599Z

My contract comes to an end in August. And I have a similar problem as @slipset, i don't like Spring Boot/hibernate and React/Vue/next.js fronted. Or microservice.

thomas 2026-05-19T15:46:02.655719Z

A (technical) management role would be ok, as long as there isn't a lot of paperwork to do

Asier 2026-05-19T20:02:17.730799Z

For me https://coffeeandjunk.com/via-negativa/ is the best way (the only way?) to make decisions.

πŸ‘ 1
thomas 2026-05-19T20:32:54.771579Z

I just blame Rich 😜

borkdude 2026-05-19T20:46:03.526399Z

buy an e-ink device and hammock, take time off for 2 years, who knows what'll happen ;P

2026-05-19T20:46:54.584849Z

I might be making a website. Any thoughts on the framework for a crud web site? Datastar is looking interesting (tho not sure how much @borkdude was trolling). The last time I tried to build something this small was on heroku 14 yet years ago

teodorlu 2026-05-20T07:46:44.072499Z

Datastar doesn't require SSE. If an action returns Content-Type: text/event-stream, you get SSE goodies. If your action returns Content-Type: text/html, it behaves like HTMX-style request/response. Attached screenshot is from https://data-star.dev/guide/getting_started.

2026-05-20T08:15:34.037409Z

Is anyone here using datastar in anger?

Patrick 2026-05-20T08:16:29.874809Z

At least @dnolen that I know of.

2026-05-20T08:18:39.952019Z

Yes

2026-05-20T08:20:46.186489Z

In simple terms if you are using it to do streaming html immediate mode its basically this with some nice conveniences + signals + morph.

2026-05-20T08:22:24.526389Z

And we use it at https://instabooks.io (where dnolen works).

2026-05-20T08:25:06.966609Z

I'd add there's two ways to use it 1. As a simpler HTMX with request/response. Morph is the big improvement here. 2. Streaming HTML immediate mode rendering (how those demos use it and how we use it at work). This model is very much view = f (state) where you send down the HTML for the whole view on every change.

2026-05-20T08:40:05.270039Z

wow. I'm surprised that quickbooks has such a bad UI that there is a market for a faster UI, but well done

Ben Sless 2026-05-20T08:40:43.405519Z

There's always a market for more responsive ( faster) UI

☝️ 1
2026-05-20T08:46:26.370119Z

@andersmurphy so, what do you hate about datastar? (and what do you like about it πŸ˜„ )

simongray 2026-05-20T08:48:15.872019Z

I agree with @borkdude about keeping it simple. And if I made add, I would prefer using HTML form primitives if it truly is just basic CRUD, no need for HTMX or any kind of JS in that case

simongray 2026-05-20T08:50:48.704199Z

There's a lot of good, fast Hiccup-based libs these days

simongray 2026-05-20T08:51:33.258079Z

and if you need a more interactive experience at some point it is easy to upgrade from one of those to a frontend lib using Hiccup (or HTMX).

borkdude 2026-05-20T08:52:07.857959Z

I also made a little thing for interactivity using hiccup: https://github.com/borkdude/reagami only 5kb of JS

borkdude 2026-05-20T08:52:46.744619Z

the thing about datastar and HTMX is that you keep all your state on the backend

borkdude 2026-05-20T08:53:02.064739Z

but often I don't even want to have a backend. So it kinda depends what you need.

2026-05-20T09:03:40.004729Z

@otfrom Hate, I'd say mostly that it's got more stuff than you need (despite being 11kb). Like, if you use it with SSE/immediate mode, you don't need a lot of the library. I'd also say the SDKs are a distraction. You can use datastar by implementing one function (my demos only use patchElements), if you need more stuff it's a total of three functions. So the SDKS are a mistake as they make people think its more complicated than it is. I'd also argue it's not a framework. Signals are another distraction. Great when you need them, but can lure you into having more state on the client than you should. Common for people to have a ton of signals. I have 2-3 max and they are for high level things (scroll position, current focus etc). What do I like? I can keep all my state on the backend in one place, have view = f (state) over the network, have multiplayer and push out of the box (without having to change how I write views). Don't have to compile, build, bundle a fat client. Can write everything in Clojure/hiccup.

2026-05-20T09:17:37.394679Z

Oh and the hidden gem is that it's backend language agnostic so you get lots of cross pollination across language communities. Which is fun.

2026-05-20T09:28:01.760719Z

What are you using for things like oauth and authn/z?

2026-05-20T09:29:03.140969Z

Don't understand the question. Session cookies.

2026-05-20T09:29:28.571219Z

i.e unguessable random + lookup in a database

borkdude 2026-05-20T09:29:43.781229Z

you could also look at https://biffweb.com/, which is kind of an opinionated off-the-shelve solution for web apps. it still uses htmx, but the author considers moving to datastar I think i've heard him say at the conj

2026-05-20T09:30:25.188399Z

https://biffweb.com/p/biff2/

2026-05-20T09:30:42.122049Z

^move to datastar is going ahead last I checked.

borkdude 2026-05-20T09:30:45.076169Z

or https://caveman.mccue.dev/ which is a "framework" but only by being a tutorial on how to add stuff one by one to your app

borkdude 2026-05-20T09:31:39.437499Z

ah nice, sqlite + datastar, sounds right for basic apps

borkdude 2026-05-20T09:32:10.721929Z

(disclaimer: I haven't touched datastar so far)

😭 1
2026-05-20T09:33:03.164719Z

The nice thing is sqlite + datastar scales right up for more complex stuff. They both get out of the way and clojure can do the heavy domain lifting.

borkdude 2026-05-20T09:34:34.992149Z

it's also so nice operationally

2026-05-20T09:35:00.904029Z

The dream. litestream makes it even better.

2026-05-20T09:35:18.865879Z

https://litestream.io

2026-05-20T09:35:47.002319Z

^honestly the thing that made moving from postgres to sqlite viable for me

Patrick 2026-05-20T09:37:42.308699Z

I'm not familiar, how does litestream help with that?

2026-05-20T09:38:18.867549Z

To the second streaming point in time backups to S3 and other block storage

πŸ†’ 1
Casey 2026-05-20T14:55:04.140589Z

Just chiming in that I use D* in anger. I've been fully immediate-mode pilled. Datomic tx-queue triggers batched client renders, nearly zero client side page. I definitely think it is simpler overall. It is less code, less moving parts. The code you see just makes sense.

πŸš€ 1
Delaney Gillilan 2026-05-20T15:32:59.884089Z

> I thought datastar has everything htmx has, but more. This is how the author advertises it on X @borkdude is right, that is accurate and I am here

πŸ‘‹ 1
Delaney Gillilan 2026-05-20T15:35:31.905769Z

> the thing about datastar and HTMX is that you keep all your state on the backend this is inaccurate @borkdude, you keep state where it belongs. mouse movements are not owned by the backend, but MOST state is. HTMX though does want everything in the backend yet leaks backend state into your browser

borkdude 2026-05-20T15:36:57.062269Z

yeah I meant application state, not local state of UI elements (which is sometimes frowned upon, but I'm not against it)

Delaney Gillilan 2026-05-20T15:37:38.967819Z

i figured but we get a lot of people that miss that while signals should be use sparingly... they are vital to keeping state in the right place

Patrick 2026-05-20T16:30:57.425939Z

@ramblurr could you elaborate on what kind of application you're building? Is it something collaborative, given your use of Datomic tx triggers? Which choices/trade-offs did you make?

borkdude 2026-05-19T20:48:04.793549Z

I wasn't trolling but my preference for "websites" is go static when possible so I don't have to "keep things running"

2026-05-19T20:51:23.522299Z

Same for me, but surely something needs to be running if it is crud (tho could go very old school that way)

borkdude 2026-05-19T20:54:18.017919Z

the last interactive things I made ran on cloudflare, I made the "lambda" in squint, so I still didn't need to keep it running all the time. if you truly need a crud website with a local sql db, and doesn't have to be professional, I think nextjournal has a thing running here: https://docs.apps.garden/

borkdude 2026-05-19T20:54:57.381079Z

and datastar I hear a lot of good stories about so I'd try it

πŸš€ 1
Patrick 2026-05-19T21:34:06.093639Z

If you just do request/response style, htmx would probably be simpler. Datastar is better suited for real time updates (like live dashboards and such), at the cost of being more complex (uses SSE, etc). Both are great tech in my humble opinion.

borkdude 2026-05-19T21:36:07.079119Z

thank you for your nuanced answer. I thought datastar has everything htmx has, but more. This is how the author advertises it on X

borkdude 2026-05-19T21:36:44.091409Z

he's on here as well I think:@delaneygillilan

2026-05-19T21:55:13.506529Z

It could be simple enough to be ring and hiccup

2026-05-19T21:55:48.699959Z

Tho something like collaborative editing could be good on some things

2026-05-19T21:55:55.093259Z

It is all very early

ray 2026-05-20T05:32:48.383459Z

Start as simple as possible in that case 🀷🏻

Ben Sless 2026-05-20T06:48:14.921429Z

Ray, you're forgetting the most important criterion for choosing between htmx and D* - who has the better meme game

2026-05-20T06:51:41.288949Z

I'm so out of it I don't know the answer

Patrick 2026-06-01T19:35:03.971769Z

Interesting, thanks for that.

Casey 2026-05-31T21:06:12.276949Z

@pdekruif Apologies for the delay. It's a back-office application with your standard table/master/detail crud forms. Lots of forms. Quite a few complicated workflows. Nothing collaborative about it at all really, except a couple screens that are often pulled up by many users in meetings and benefit from "real time" updates. But that wasn't a requirement, just a nice property you get with this architecture. 100s of users, dozens active at any one time. Not big. Are you familiar with the philosophy behind cjohansen's Nexus and Replicant libs? I've taken that approach and applied it to the frontend and backend. View is a pure of function of my db + in memory ephemeral state. All writes happen as commands totally separate from the read path. Trade offs: I am putting more data into datomic than I usually would have, this will bite you eventually, but this dataset won't ever grow so large. Could easily use a different store for that data, but I don't want to add more operational complexity. And while it's not really a trade off, it's just a learning experience. After decade+ of the request+response model, you have to rewire a bit how you approach the frontend to work well.