clojure-europe

For people in Europe... or elsewhere... UGT https://indieweb.org/Universal_Greeting_Time
pez 2021-06-08T06:55:17.302300Z

Morning!

1
djm 2021-06-08T07:01:11.302600Z

👋

dharrigan 2021-06-08T07:34:32.302800Z

Good Morning!

2021-06-08T07:40:23.303Z

morning

jasonbell 2021-06-08T07:42:00.303200Z

Morning

simongray 2021-06-08T07:48:02.303400Z

good morning

thomas 2021-06-08T08:01:22.303600Z

morning

slipset 2021-06-08T08:02:48.303800Z

morning!

ordnungswidrig 2021-06-08T08:05:11.304Z

Morning!

ordnungswidrig 2021-06-08T08:06:03.305500Z

Anybody doing clojurescript without react here? I was looking for alternatives the other day. WebComponents or things...

simongray 2021-06-08T08:21:04.310400Z

Hm… nothing really compels me to move away from React. Many JS devs always seem so busy trying to jump to the next big framework and I have yet to to be convinced that any of the alternatives are a real improvement. It seems to be down to minor speed differences and some ergonomics of plain React which I don’t even encounter since I just use reagent. Web Components are pushed by Google, but they are a lot less dynamic and very class-based compared to functional rendering. I do use them, but only to represent XML in HTML in a valid way (by defining new elements).

simongray 2021-06-08T08:23:10.311600Z

And don’t get me started on Tailwind and the recent comeback of server-side rendering. Hype-driven development IMO 😛

simongray 2021-06-08T08:25:40.313600Z

Reagent isn’t perfect, but it is incredibly simple and leaves a lot of room to plug in alternative state management as long as it complies with its protocols. I don’t even bother with Re-frame anymore.

simongray 2021-06-08T08:26:32.314400Z

That probably wasn’t the answer you were looking for, @ordnungswidrig, but to me reagent is still the king.

2021-06-08T08:28:34.314800Z

good to have a good vote for reagent. How long have you been using it for @simongray?

simongray 2021-06-08T08:30:01.315100Z

3-4 years now

thomas 2021-06-08T08:31:37.315900Z

At my previous job they were very pleased with Fulcro...

thomas 2021-06-08T08:31:57.316500Z

but too complicated for me.

pez 2021-06-08T08:31:58.316600Z

I will probably give Flutter a good try when ClojureScript compiles to Dart.

pez 2021-06-08T08:33:17.317400Z

Also, I sometimes want to experiment with Svelte, but not enough to do it since I can’t bring Clojure there. 😃

borkdude 2021-06-08T08:35:22.318Z

You can now also do "CLJS" and Reagent by just writing an HTML page 🎉 https://borkdude.github.io/scittle/#reagent

borkdude 2021-06-08T08:35:55.318200Z

morning

simongray 2021-06-08T08:37:40.318600Z

Such a cool little project, @borkdude.

simongray 2021-06-08T08:41:13.319200Z

I’m not sure I can find any practical uses for it right now, but I really want to :P

borkdude 2021-06-08T08:45:46.319600Z

Here someone used it to host a page on AWS to interact with lambda: https://www.reddit.com/r/Clojure/comments/nu9tas/new_release_of_holylambda_and_a_little_showcase/

1🤘
raymcdermott 2021-06-08T08:49:03.320800Z

on the most recent defn episode, Mr @djblue says that they use https://github.com/lilactown/helix at his work

raymcdermott 2021-06-08T08:49:27.321400Z

oh yeah and fair morning to the town folk

raymcdermott 2021-06-08T08:50:06.322Z

which recently added clj-kondo support to titillate @borkdude

raymcdermott 2021-06-08T08:51:13.323200Z

titillate ... a word that starts rude and still feels rude somewhat but that would be OK in front of the Pope

1😄
ordnungswidrig 2021-06-08T08:56:14.323300Z

Reagent is awesome. A model I can understand and get results quick. I looked at react hooks / helix and I get the value proposition but reagent is just so simple. Nevertheless I want to look what's out there, else.

borkdude 2021-06-08T08:59:48.324300Z

I did a talk in 2014 at Oredev about ClojureScript React wrappers. I had experimented with Om shortly before but Reagent immediately clicked in my mind. UX is important.

simongray 2021-06-08T09:00:04.324600Z

yup

simongray 2021-06-08T09:00:14.324900Z

Even David Nolen uses Reagent now, I think

1👍1
borkdude 2021-06-08T09:01:02.325900Z

The author of Reagent, Dan Holmsand, is one of those people who did a major contribution to the CLJS ecosystem, but you never hear from him. I think he didn't work on it for years. Luckily others stepped in to carry it forward. But the impact he made is still very solid.

simongray 2021-06-08T09:02:29.326600Z

Did he commit digital suicide in 2016 or something? Seems like all his online activity stopped back then.

borkdude 2021-06-08T09:05:26.327600Z

@jacek.schae @raymcdermott Have you tried getting him on one of your podcasts? It would be awesome to hear from him.

borkdude 2021-06-08T09:06:50.328100Z

Perhaps @juhoteperi knows him?

borkdude 2021-06-08T09:08:09.328900Z

It seems he lives in Stockholm. Perhaps @pez can being him flowers on behalf of the CLJS community.

1🌻
juhoteperi 2021-06-08T09:14:30.330400Z

@borkdude Nope, and haven't heard anything. I got invite to the the github org from yogthos, but I'm not sure who created the org first.

pez 2021-06-08T09:15:14.331200Z

I would love to meet this dude! I can deliver flowers, chocolates, kisses and whatever you want if I just knew where to find him.

1👍
pez 2021-06-08T09:16:45.332300Z

Agree about the ergonomics of Reagent. I feel that Rum has this as well. Love the mixin interface.

raymcdermott 2021-06-08T09:20:37.333Z

@borkdude @jacek.schae I have not. Seems like it will be tricky.

ordnungswidrig 2021-06-08T09:39:57.334100Z

@pez I don't know but everything that requires some kind of (defcomponent is somewhat inferior than the "JUST FUNCTIONS!!111" feature from reagent. :rolling_on_the_floor_laughing:

pez 2021-06-08T09:43:48.334400Z

You gain some and you lose some. 😃

jkxyz 2021-06-08T09:51:03.337Z

It occurred to me at some point that you could write something like Svelte using ClojureScript macros that would generate a component that knows how to precisely update the DOM when its inputs change while keeping the definition declarative. And of course thheller started working on something like that: https://github.com/thheller/shadow-experiments The docs there are a great read

pez 2021-06-08T09:56:51.337500Z

Oh, wow, I had no idea. Thanks, @josh604!

ordnungswidrig 2021-06-08T10:02:45.338100Z

@josh604 I had looked at svelte yesterday and that was exactly what I was thinking.

2021-06-08T10:03:15.338300Z

oh dear, github isn't happy

2021-06-08T10:03:31.338600Z

is this what we have instead of snow days?

djm 2021-06-08T10:04:26.339Z

A bunch of sites seem to be down, giving a varnish cache error

djm 2021-06-08T10:04:41.339400Z

Reddit, StackOverflow

ordnungswidrig 2021-06-08T10:04:44.339500Z

@otfrom all green for me: https://www.githubstatus.com

ordnungswidrig 2021-06-08T10:05:08.339800Z

@djm_uk reddit I can confirm.

2021-06-08T10:05:40.340100Z

O'Reilly safari was down for me, but now back

2021-06-08T10:05:48.340500Z

other sites are down with a varnish error

ordnungswidrig 2021-06-08T10:05:53.340700Z

Reddit and SO all served by http://fastly.com

jkxyz 2021-06-08T10:06:34.341500Z

I get errors on GitHub’s status page from some of their assets behind a CDN - http://polyfill.io and http://githubusercontent.com

ordnungswidrig 2021-06-08T10:06:37.341600Z

From http://status.fastly.com "Investigating - We're currently investigating potential impact to performance with our CDN services.  Jun 8, 09:58 UTC"

2021-06-08T10:08:08.341700Z

ordnungswidrig 2021-06-08T10:09:06.342300Z

@josh604 https://github.com/thheller/shadow-experiments is a treasure source.

2021-06-08T10:10:05.342700Z

that's what I was trying to read and failing

ordnungswidrig 2021-06-08T10:10:36.342900Z

lol, I'm sorry for that.

ordnungswidrig 2021-06-08T10:11:10.343100Z

git clone git@github.com:thheller/shadow-experiments.git still works.

2021-06-08T10:15:24.343700Z

maybe the shadowy experiments went too far and broke the intertubes?

ordnungswidrig 2021-06-08T10:15:35.343900Z

likely

jkxyz 2021-06-08T10:17:44.344400Z

They warned us not to abuse macros… But we didn’t listen

1💀
borkdude 2021-06-08T10:18:27.344800Z

you could also use macros to just print out the code to a .cljs file and nobody will ever know you used macros

2😂
ordnungswidrig 2021-06-08T10:18:58.345Z

ordnungswidrig 2021-06-08T10:22:26.346200Z

@borkdude pretty sure somebody will eventually write a sci-based tool to do that.

simongray 2021-06-08T10:25:44.347200Z

Oh I totally forgot about Thomas Heller's new project. Definitely one to watch.

borkdude 2021-06-08T10:27:26.347700Z

Btw, we have 256 members in the channel now. This calls for a celebration.

ordnungswidrig 2021-06-08T10:28:06.348400Z

1️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣

2🤘
borkdude 2021-06-08T10:28:06.348500Z

🍰

8👀
ordnungswidrig 2021-06-08T10:28:40.349200Z

Can we get 256 👀 on that cake? :rolling_on_the_floor_laughing:

thomas 2021-06-08T10:28:55.349400Z

🎉

thomas 2021-06-08T10:29:04.349600Z

we are so geeky!

ordnungswidrig 2021-06-08T10:29:29.350200Z

Close the gates! Nobody be let in nor out now!

borkdude 2021-06-08T10:30:22.350900Z

you can make another channel, but with a pointer to this immutable one

3❤️
ordnungswidrig 2021-06-08T10:30:38.351400Z

I like that!

2021-06-08T10:30:42.351500Z

is it just me, or has Cardi B totally ruined WIP for anyone else?

ordnungswidrig 2021-06-08T10:31:02.351700Z

Cardi B?

1😁
2021-06-08T10:31:21.351800Z

brings up a chuckle though should be grateful

2021-06-08T10:33:58.352300Z

just me then.

ordnungswidrig 2021-06-08T10:34:24.352600Z

That's some creative lyrics. 🙈

2021-06-08T10:37:20.352700Z

and now its just me and you sorry

raymcdermott 2021-06-08T10:55:15.353300Z

isn't it WAP?

simongray 2021-06-08T11:03:32.353900Z

It’s Tuesday outside, but feels like Friday in #clojure-europe

borkdude 2021-06-08T11:04:36.354200Z

I celebrate Friday twice a week since Wednesday is my day off!

5🤘
pez 2021-06-08T11:07:34.354600Z

Only 100 so far.

pez 2021-06-08T11:07:58.354900Z

¯\(ツ)

mccraigmccraig 2021-06-08T11:32:09.355800Z

i thought WAP too

slipset 2021-06-08T11:43:39.359Z

So, fairly open question. What are people using/doing with websockets these days? We use clj-wamp as a layer on top of websockets, but that hasn’t been touched in years. Maybe it’s complete, maybe no-one is using wamp anymore? If wamp is unfashionable, what are people using. Also, what do you do with delivery guarantees. I think we’ve implemented a fairly lousy “best-effort” guarantee, which of course limits us in terms of the importance of the data we send, ie, the backend has no tracking of actually delivered events, nor any retry mechanism, so basically UDP semantics.

borkdude 2021-06-08T11:46:10.359500Z

client side I just use JS interop. server side I use aleph which has a good built-in thing for websockets

borkdude 2021-06-08T11:46:40.360100Z

I built a small core.async layer on top of this

slipset 2021-06-08T11:47:55.361100Z

hmm, the thing is that clj-wamp creates an abstraction of topics on top of websockets so you can multiplex different events over the same socket-connection. I guess it would be just as simple to have a :type on the event thingy.

borkdude 2021-06-08T11:50:33.361400Z

I looked it up, we use aleph.http/websocket-connection

mccraigmccraig 2021-06-08T11:54:49.364200Z

we do similar to @borkdude, but with manifold streams instead of core.async

2021-06-08T12:07:35.364500Z

yeah it is, but fuzzy matching

2021-06-08T12:08:20.364700Z

word association football

dominicm 2021-06-08T13:34:54.365400Z

I wrote a macro which writes a macro the other day, it felt weird.

emak 2021-06-08T14:26:17.365700Z

Thanks for the pointer. I had the same thought when looking at Svelte a few weeks ago: a compiler that outputs JS, :thinking_face: that sounds very cljs to me.

2021-06-08T14:27:37.366200Z

it will replace us all , no doubt

2😱
2021-06-08T15:12:45.366700Z

certainly will do when we write a macro to improve a macro

raymcdermott 2021-06-08T15:54:52.367900Z

@slipset I use sente, call me a Taoussanist

pez 2021-06-08T15:57:12.368500Z

Much better than being a Taosatanist!

1😂
pez 2021-06-08T15:58:56.369600Z

The other day I saw someone (@borkdude?) mention to use WebSockets mainly for knowing when to fetch things via HTTP.

borkdude 2021-06-08T16:04:13.369900Z

yes, that's one way how we use it