Fork me on GitHub
#clojure-europe
<
2021-06-08
>
pez06:06:17

Morning!

3
dharrigan07:06:32

Good Morning!

simongray07:06:02

good morning

ordnungswidrig08:06:03

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

simongray08:06:04

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).

simongray08:06:10

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

simongray08:06:40

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.

simongray08:06:32

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

otfrom08:06:34

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

simongray08:06:01

3-4 years now

thomas08:06:37

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

thomas08:06:57

but too complicated for me.

pez08:06:58

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

pez08:06:17

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

borkdude08:06:22

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

simongray08:06:40

Such a cool little project, @borkdude.

simongray08:06:13

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

ray08:06:03

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

ray08:06:27

oh yeah and fair morning to the town folk

ray08:06:06

which recently added clj-kondo support to titillate @borkdude

ray08:06:13

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

😄 3
ordnungswidrig08:06:14

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.

borkdude08:06:48

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.

simongray09:06:14

Even David Nolen uses Reagent now, I think

3
👍 3
borkdude09:06:02

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.

simongray09:06:29

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

borkdude09:06:26

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

borkdude09:06:50

Perhaps @juhoteperi knows him?

borkdude09:06:09

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

🌻 3
juhoteperi09:06:30

@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.

pez09:06:14

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.

👍 2
pez09:06:45

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

ray09:06:37

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

ordnungswidrig09:06:57

@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:

pez09:06:48

You gain some and you lose some. 😃

jkxyz09:06:03

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

emak14:06:17

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.

pez09:06:51

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

ordnungswidrig10:06:45

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

otfrom10:06:15

oh dear, github isn't happy

otfrom10:06:31

is this what we have instead of snow days?

djm10:06:26

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

djm10:06:41

Reddit, StackOverflow

ordnungswidrig10:06:08

@djm_uk reddit I can confirm.

otfrom10:06:40

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

otfrom10:06:48

other sites are down with a varnish error

ordnungswidrig10:06:53

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

jkxyz10:06:34

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

ordnungswidrig10:06:37

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

otfrom10:06:05

that's what I was trying to read and failing

ordnungswidrig10:06:36

lol, I'm sorry for that.

ordnungswidrig10:06:10

git clone [email protected]:thheller/shadow-experiments.git still works.

otfrom10:06:24

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

jkxyz10:06:44

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

💀 3
borkdude10:06:27

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

😂 6
ordnungswidrig10:06:26

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

simongray10:06:44

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

borkdude10:06:26

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

ordnungswidrig10:06:06

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

metal 6
borkdude10:06:06

🍰

👀 24
ordnungswidrig10:06:40

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

pez11:06:34

Only 100 so far.

pez11:06:58

¯\(ツ)

thomas10:06:04

we are so geeky!

ordnungswidrig10:06:29

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

borkdude10:06:22

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

❤️ 9
Ben Hammond10:06:42

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

Ben Hammond10:06:21

brings up a chuckle though should be grateful

ray10:06:15

isn't it WAP?

mccraigmccraig11:06:09

i thought WAP too

Ben Hammond12:06:35

yeah it is, but fuzzy matching

Ben Hammond12:06:20

word association football

Ben Hammond10:06:58

just me then.

ordnungswidrig10:06:24

That's some creative lyrics. 🙈

Ben Hammond10:06:20

and now its just me and you sorry

simongray11:06:32

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

borkdude11:06:36

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

metal 15
slipset11:06:39

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.

borkdude11:06:10

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

borkdude11:06:40

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

slipset11:06:55

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.

borkdude11:06:33

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

mccraigmccraig11:06:49

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

dominicm13:06:54

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

Ben Hammond14:06:37

it will replace us all , no doubt

😱 6
otfrom15:06:45

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

ray15:06:52

@slipset I use sente, call me a Taoussanist

pez15:06:12

Much better than being a Taosatanist!

😂 2
pez15:06:56

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

borkdude16:06:13

yes, that's one way how we use it