clojure-europe

For people in Europe... or elsewhere... UGT https://indieweb.org/Universal_Greeting_Time
pez 2021-05-07T03:31:05.117600Z

Good morning! I have just been to Seattle where I presented Calva. 😃

5👍1
RAMart 2021-05-07T05:23:29.118Z

☀️ 😎

djm 2021-05-07T05:57:14.118300Z

👋

mccraigmccraig 2021-05-07T06:22:24.118400Z

månmån

dharrigan 2021-05-07T06:32:01.118700Z

Good Morning!

simongray 2021-05-07T06:37:08.118900Z

morning

simongray 2021-05-07T06:40:46.122400Z

Does anyone else get kinda bored with how many Clojure (and other programming language) discussions get side-tracked by static typing enthusiasts these days? It’s always the same stuff…. “I could never live without types”, “my editor does this and that”, blabla - and never any discussion of the cost incurred by types. Case in point, yesterday’s HN discussion: https://news.ycombinator.com/item?id=27054839

simongray 2021-05-07T06:42:55.122800Z

I blame TypeScript for this

pez 2021-05-07T06:43:11.123Z

Hey!

pez 2021-05-07T06:43:26.123300Z

TypeScript is quite awesome. 😃

simongray 2021-05-07T06:44:39.124300Z

Sure, but it has lead to a situation where anything that isn’t statically typed is bad and “like JavaScript” - at least that’s my impression

pez 2021-05-07T06:45:20.125700Z

Yeah, I think you might be right about the blame.

simongray 2021-05-07T06:45:26.125800Z

people have become much more unwilling to consider an alternative point of view on types

pez 2021-05-07T06:47:12.128200Z

It’s arrogance to a large part, I think. And ignorance caused by it.

1👆
RAMart 2021-05-07T06:47:31.128600Z

Every bug you hunt passed your type checker“ (Rich Hickey)

pez 2021-05-07T06:48:27.128900Z

Indeed. The false sense of security is a thing.

RAMart 2021-05-07T06:50:22.132400Z

And most people being so eager about types don‘t even use them in the right way. As far as I had the pleasure to be part of such discussions…

pez 2021-05-07T06:50:30.132500Z

In TypeScript I use types sometimes and sometimes not. And when I do it, it is rather to get help typing out things correctly, than to guard against bugs.

pez 2021-05-07T06:54:55.136Z

On the tangent of this discussion I can just observe that I feel very productive using TypeScript. Almost as productive as with Clojure. It is not as fun as with Clojure, but the feeling of expressing my intentions easily and effectively is there.

pez 2021-05-07T06:56:18.137200Z

I’m still a Clojure beginner so it might be that at some point I can find Clojure solutions much quicker than I find TypeScript solutions. Unless I am a hopeless case. We’ll see.

RAMart 2021-05-07T07:03:39.137300Z

All fingers crossed! 😁

2🤘
RAMart 2021-05-07T07:03:39.137300Z

All fingers crossed! 😁

2🤘
2021-05-07T07:18:41.137600Z

Morning

javahippie 2021-05-07T07:23:58.137900Z

Morning!

dharrigan 2021-05-07T07:27:33.140Z

I too follow the HN discussions and yes, they do descend into "types good, untyped bad". Boring really. I tend to skim over such comments and see if I can find some insights 🙂

djm 2021-05-07T07:49:01.141300Z

I recently came across a series of blog posts by a Java/Kotlin developer, that were intended to introduce his audience to Clojure. The second post was about how spec, because he couldn't live without static types, which made me chuckle

thomas 2021-05-07T08:50:23.141700Z

morning

slipset 2021-05-07T10:14:01.143100Z

I stopped doing frontend dev at ardoq when the frontenders switched to typescript. I think the main reason was that IM(NS)HO, they were doing it wrong.

slipset 2021-05-07T10:14:36.143800Z

And, I wasn’t ready to “teach” them how to properly type things, (not that I would have been able to, for that sake)

slipset 2021-05-07T10:15:31.144500Z

And, I believe that just converting an existing javascript project to typescript and slapping some types on it doesn’t really help.

slipset 2021-05-07T10:16:26.145500Z

Because, more likely than not, the “types” that exist in the javascript project are not sound, and thus, won’t be more sound if you switch to typescript and continue to use the same “types”

1💯
2021-05-07T10:25:54.145800Z

Thought Ardoq was a Clojure shop

2021-05-07T10:26:24.146400Z

it still is I guess, but just back-end then

1👍
RAMart 2021-05-07T10:30:23.148400Z

I really never ever want to miss shared sources for front-end and back-end again. (Yes, not necessarily Clojure(Script), but – for me – preferably. 😬)

ordnungswidrig 2021-05-07T10:32:18.148600Z

good morning!

1☕
pez 2021-05-07T10:44:46.150400Z

Is there something coming close to Clojure/ClojureScript apart from JavaScript/JavaScript, when it comes to backend/frontend code sharing? If I remember correctly GWT was there, because you used Java/Java.

borkdude 2021-05-07T10:56:48.150700Z

Scala has such a thing too

borkdude 2021-05-07T10:57:18.151200Z

Haskell presumably has GHCJS but I haven't heard good things about it

dharrigan 2021-05-07T10:58:07.151600Z

kotlin has kotln js <https://kotlinlang.org/docs/js-overview.html>

dharrigan 2021-05-07T10:58:09.151800Z

i.e., kotlin multiplatform

djm 2021-05-07T11:07:12.154300Z

There are some python->javascript transpilers. Maybe Vaadin (Java) counts too

pez 2021-05-07T11:11:48.155400Z

Is GWT still in use much, btw? I don’t see much activity on my human readable timestamp library these days 😃 https://github.com/PEZ/GWT-Relative-Time

pez 2021-05-07T11:13:30.156500Z

I abandoned that project pretty hard…

borkdude 2021-05-07T11:15:20.156900Z

@pez May I recommend the "archived" setting that Github now supports? :)

borkdude 2021-05-07T11:17:56.158700Z

I worked at a software engineering education program where one of the lecturers had the brilliant idea: if the students already know Java, they can also do front-end programming with GWT, so let's also teach them that. In theory, a nice idea. In practice it was very confusing for the students why some basic stuff from Java didn't work in the browser ;)

pez 2021-05-07T11:20:29.159Z

Now archived.

pez 2021-05-07T11:23:07.160Z

I can’t believe how over-architectured that silly library is. Takes forever to figure out what is going on.

borkdude 2021-05-07T11:25:19.160600Z

Maybe Kubernetes is the GWT of the devops world, also from Google? ;)

borkdude 2021-05-07T11:25:36.161Z

(I don't know what kubernetes is really, I'm just saying something silly)

2😂
pez 2021-05-07T11:29:07.161300Z

7😅
thomas 2021-05-07T12:42:19.162Z

I had to do a bit of work on a project that use GWT... very special shall we say... just getting it up and running again took a whole day.

raymcdermott 2021-05-07T13:24:37.162800Z

morning

raymcdermott 2021-05-07T13:25:04.163400Z

regarding types, I prefer a real sense of insecurity rather than a false one 😉

dominicm 2021-05-07T13:28:03.165800Z

Morning

raymcdermott 2021-05-07T13:28:06.165900Z

and k8s really is urgh - perfect for Google cos reasons but way too complex for most needs. For example, why is there a cottage industry (eg Helm charts) for configuring k8s?

dominicm 2021-05-07T13:28:30.166200Z

I'm avoiding k8s.

dominicm 2021-05-07T13:28:35.166400Z

I'll catch the next wave, maybe

mpenet 2021-05-07T13:29:01.166900Z

it's not too bad, as long as you use a managed version

mpenet 2021-05-07T13:29:12.167300Z

that cuts the complexity quite a bit

raymcdermott 2021-05-07T13:29:16.167700Z

I can believe that

mpenet 2021-05-07T13:29:28.168200Z

you still have to manage user level stuff, but it's relatively close to docker-compose stuff

dominicm 2021-05-07T13:29:30.168400Z

There's still a lot of problems around the gradual migration towards states though, right?

dominicm 2021-05-07T13:29:49.168900Z

I remember sitting next to a very confused developer wondering why his state wasn't being reached.

raymcdermott 2021-05-07T13:29:58.169200Z

there are lots of defaults that are insecure

mpenet 2021-05-07T13:30:25.169700Z

it's a cert fest on the admin side

mpenet 2021-05-07T13:30:31.170Z

when it's done well

mpenet 2021-05-07T13:30:50.170500Z

so yeah, it's easy to miss details and shoot yourself in the foot if you try to do everything yourself

mpenet 2021-05-07T13:31:55.171800Z

@mcorbin knows all this stuff very well but generally there's a lot of fud around k8s imho

dominicm 2021-05-07T13:32:19.172300Z

psshht. Let me continue to be afraid.

dominicm 2021-05-07T13:32:40.172800Z

Maybe I should try it, I get put off by all the "stuff" though.

mpenet 2021-05-07T13:33:21.173700Z

if you want a voucher to try it on exoscale feel free to ask 🙂

2021-05-07T13:33:46.174300Z

Like every tech, the answer to "should I use kubernetes or not" is "it depends" :D

mpenet 2021-05-07T13:34:21.175400Z

I heard some people run their blogs on k8s 🙂 /looking at @mcorbin

2021-05-07T13:34:41.175800Z

first, as mpenet said, there is a big difference between using a managed offering vs deploying kubernetes yourself. And even with managed offerings, you really need to know how the beast work (and what are the best practices), and it takes time

2021-05-07T13:37:50.177600Z

my main concerns with k8s is that everyone is moving to it, there is more and more tools "kubernetes only" (so it's not an open ecosystem), and operators etc... brings with a lot of complexity (and when it fails, you're on your own).

2021-05-07T13:38:41.178700Z

But it's not a bad tech, but I don't think having k8s everywhere for every context is mandatory at all. And indeed my blog is running on k8s (but it's clojure driving the control plane :D)

2021-05-07T13:40:21.179900Z

Also, when you switch to kubernetes, you are a bit forced to also switch to Prometheus for monitoring (meh), switch to argo or something else for CD... so it pulls a lot of things at the end

dharrigan 2021-05-07T14:22:07.180400Z

I run my own little docker swarm at home 🙂

dharrigan 2021-05-07T14:23:17.181200Z

I also have my own hosted gitlab instance that does my deployments for me when I push my local code

dharrigan 2021-05-07T14:23:23.181400Z

I'm just geeky that way I suppose 🙂

borkdude 2021-05-07T14:28:43.182100Z

We are also using docker swarm at work, instead if k8s

borkdude 2021-05-07T14:29:01.182300Z

We found k8s too much overhead

dharrigan 2021-05-07T14:39:36.183400Z

ditto at work

dharrigan 2021-05-07T14:40:03.183800Z

Every now and again, people talk about moving to k8s but no-one has the willpower

dharrigan 2021-05-07T14:40:06.184Z

too busy

2021-05-07T14:40:44.184400Z

if you current platform work as you want, no need to move 😄

2021-05-07T14:41:24.185Z

there is no silver bullet

mccraigmccraig 2021-05-07T14:46:54.187600Z

i've had a pretty nice time with eks (aws managed k8s) - it fits very nicely into the AWS ecosystem (pod IPs are real VPC IPs, ingresses are AWS load balancers, storage volumes are EBS vols, autoscaling uses AWS ASGs &c) - but i don't think i'd want to do my own bare metal k8s deployment

dominicm 2021-05-07T14:46:59.187800Z

Oh wow, exoscale is actually hosting. I should look more at what all the Clojure companies actually do!

dominicm 2021-05-07T14:47:24.188200Z

@mpenet I must admit, knowing that you're selling k8s makes your advocacy dubious 😜

1🙈
mpenet 2021-05-07T14:47:45.188900Z

🙂 I should have added a disclaimer, but it was fairly obvious

dominicm 2021-05-07T14:48:27.189800Z

@mpenet Curious, what's your take on other managed services, like Redis, etc. Looks like you have some kind of third-party system for that?

dominicm 2021-05-12T12:55:07.253300Z

Nice! Managed or otherwise?

mpenet 2021-05-12T12:57:51.255600Z

Managed

1❤️
mpenet 2021-05-07T14:49:47.190800Z

I can't say much, I can only say we have a lot of exciting stuff coming very soon. I can let you know when this happens

1👀1
dominicm 2021-05-07T14:50:32.191800Z

What I'll add is, I'm never hosting anything, ever again. I resent that on AWS I can't just give it a Jar to host behind a load balancer for me and they do all the logs.

dominicm 2021-05-07T14:50:49.192400Z

You can have all my money if you solve those problems for me 😄

dharrigan 2021-05-07T14:50:53.192500Z

I think Redis are disallowing service providers from running Redis now

dharrigan 2021-05-07T14:52:00.193400Z

due to big companies that have the letters WSA in them profiting off their work and not giving anything back

dharrigan 2021-05-07T14:52:10.193800Z

see eyes passim re: elasticsearch

mpenet 2021-05-07T14:52:11.193900Z

redis is bsd iirc

mpenet 2021-05-07T14:52:23.194200Z

it's the redislab stuff that's licensed differently I think

mpenet 2021-05-07T14:52:33.194400Z

I mean the modules they develop

dominicm 2021-05-07T14:53:02.194900Z

I do like the modules, RedisGraph is very nice.

mpenet 2021-05-07T14:53:06.195200Z

but I don't know the details, I am not the right person to tell all the details about this

dominicm 2021-05-07T14:53:14.195400Z

I'm still waiting for "Redis as primary database".

dharrigan 2021-05-07T14:53:25.195900Z

indeed <https://redislabs.com/legal/licenses/>

dharrigan 2021-05-07T14:53:34.196300Z

I use redis a lot, very nice it is

mccraigmccraig 2021-05-07T14:54:28.196400Z

@dominicm isn't "jar behind a load-balancer" pretty much a lambda ?

dominicm 2021-05-07T14:55:58.196900Z

@mccraigmccraig nuuuuuu. I don't want all the lambda pain!

dominicm 2021-05-07T14:56:00.197100Z

Make it stop

dominicm 2021-05-07T14:56:13.197500Z

More like Heroku. Elastic beanstalk isn't the same.

1
dominicm 2021-05-07T14:56:28.198400Z

ECS might fit the bill.

mccraigmccraig 2021-05-07T14:56:37.198800Z

haha, i've not actually tried lambdas, so i don't know the pain yet

2021-05-07T14:56:41.199Z

Imo one of the advantage of k8s is that you can (more or less) easily switch between cloud providers if they provide a k8s offering

dominicm 2021-05-07T14:57:40.200200Z

@mccraigmccraig if nothing else, startup time kills the option. I like long-running servers. I just don't like logging, intrusion detection, etc.

mpenet 2021-05-07T14:58:09.201100Z

@dominicm I think in theory you can cheat with stuff like firecracker

mpenet 2021-05-07T14:58:23.201800Z

like snapshot your app after startup

mpenet 2021-05-07T14:58:30.202100Z

and run your fns from there

dominicm 2021-05-07T14:58:38.202500Z

https://redislabs.com/blog/top-9-takeaways-from-redisconf-2021/ #5 > Redis adoption as a primary database is on the rise with more than 66% of Redis Labs customers relying on Redis as their main database, Bloody hell.

mccraigmccraig 2021-05-07T14:58:44.202900Z

and despite warnings about the inscrutability of operators @mcorbin - i've only had good experiences so far - the strimzi kafka operator has been awesome, and we've got a gnatsd operator and an elasticsearch operator which have both been straightforward

1👍
2021-05-07T14:59:28.204600Z

yes, some are nice. But I'm always afraid of storing stateful stuff on top of k8s 😄

dominicm 2021-05-07T14:59:43.205200Z

@mpenet I don't think that's what firecracker is for. It's more about starting OS VMs quickly, that's what is behind Lambda. It's also definitely not for civilians.

mpenet 2021-05-07T14:59:59.205800Z

not for civilians for sure

mpenet 2021-05-07T15:00:26.206700Z

but you can solve that via firecracker. One of its strong points is snapshotting, just for that, reduce startup

1
mccraigmccraig 2021-05-07T15:00:32.206900Z

ha, me too @mcorbin - i'm not going near the cassandra operators, but we're only using kafka, gnatsd and ES for ephemeral stuff so it's good

2021-05-07T15:00:53.207400Z

yes, tu spin up dev environment it's handy

dominicm 2021-05-07T15:01:09.208100Z

@mpenet I must have missed snapshotting in it. I have actually tried using it 😛

mpenet 2021-05-07T15:01:32.208900Z

it's one of the best things with firecracker

mpenet 2021-05-07T15:01:35.209100Z

imho

dominicm 2021-05-07T15:01:46.209400Z

Yeah, I totally missed that 😄

dominicm 2021-05-07T15:01:58.209700Z

I was just interested in using it for benchmarking code.

dominicm 2021-05-07T15:02:13.210Z

I wonder if that means eventually lambda will be faster for java

dominicm 2021-05-07T15:02:57.210500Z

I will add, I didn't particularly like using api gateway, etc. with lambda. It was much more comfortable to use a normal load balancer.