Fork me on GitHub
#clojure-nl
<
2019-12-03
>
Mno08:12:35

goeiemorgen

borkdude11:12:45

goeiesmorgens deze morgen

yannvahalewyn11:12:50

Next week I’m giving a talk at Dutch Clojure Meetup but I only have a bunch of unorganized notes so far. Today I’m gonna structure them, come up with a fun name, write an abstract and @skuro also asked for a short bio

yannvahalewyn11:12:46

I also want to make my slides in clojure to prove some points, so I might experiment with this a bit

borkdude11:12:30

if you have nice diagramming tips from clojure, I'd be interested in that. I want to make some diagrams for clj-kondo and babashka to help people contribute

borkdude11:12:57

preferably I would write data and the tool would generate a diagram without me messing with guis

yannvahalewyn11:12:36

Yeah I’ve used clojure to generate stuff with dot and graphiz. Usually graphs

yannvahalewyn11:12:18

In https://yannvanhalewyn.github.io/boyscout/, if you click on “Change” next to the alg name, there are little graph diagrams for every option. Those are actually accurate for each algorithm, I used clojure to generate them

yannvahalewyn11:12:24

I could show you some example code?

borkdude11:12:45

there was a nice presentation about diagramming on the last clojure conj where he compared graphviz, plantuml and c4

yannvahalewyn11:12:57

oh I don’t know the other ones

borkdude11:12:14

I believe @skuro has a tool around plantuml, maybe also a clojure one?

borkdude11:12:57

http://draw.io is a nice open source tool, but you still have to do the drawing yourself

yannvahalewyn11:12:32

Probably not what you need, but for others: This is the raw code I wrote to generate those graphs in boyscout. Not pretty code, but it did the trick for me. I feel like you could easily make a little functional wrapper around it to fit your needs.

yannvahalewyn11:12:21

Thanks for the resources @borkdude! But what are you looking for then exactly?

borkdude11:12:49

What am I exactly looking for: probably something in the middle of plantuml and fc4, using EDN

borkdude11:12:02

anyway, good luck with the slides @yannvahalewyn 🙂

🙌 4
Mno15:12:15

I've been considering just doing contributions to clojure projects recently, because that way I get feedback about the merge/pull request and it should help me get better without having to start an entire project that I'll probably abandon. You know kinda like short in-and-out adventures.

borkdude15:12:49

@hobosarefriends clj-kondo has a lot of open issues, if you're looking for something

Mno15:12:23

considering that I use it, It might be nice to start there

borkdude15:12:15

The cljdoc project is also always looking for help

borkdude15:12:21

see #cljdoc

Mno15:12:50

oooh that one is nice too, because look at that prestige 😮

Mno15:12:44

Daaaang, who forgot to feed the springboot?

gklijs15:12:04

It now limited, might try again with more memory.. rust is much easier that respect, just takes what it really needs. Java takes much if it can..

borkdude15:12:00

I tried a Rust hello world today, it's pretty easy to set up. I installed rustup

gklijs15:12:22

I maintain a rust library 🙂

borkdude15:12:27

ah, which one?

borkdude15:12:33

I think Rust might be better now that it was since I last tried it, with the question mark thing instead of the weird error handling boilerplate it was then

borkdude15:12:42

also the plantuml thing you got there is probably what I want for clj-kondo

borkdude15:12:53

where is the code?

borkdude15:12:00

I can't find the github link

gklijs15:12:15

There is still some boiler plate to transform errors into you 'own' errors. And not having a classpath to dynamically create instances makes it hard to get it on par with the Java version. Basically you need a function taking the data, and creating the correct instance. Which might be done with a macro, but didn't touch macro's yet.

borkdude15:12:54

just write a Clojure function that generates Rust

borkdude15:12:30

hmm, a Clojure to Rust transpiler... hmm...

gklijs15:12:49

I can't as a library. It's kind of neat with java. You just put your generated data structures on the classpath. And with the binary information from kafka, with the schema from the registry, it can create an instance with the values encoded in the binary.

borkdude15:12:26

maybe that's one of the things where Java is pretty dynamic which is what Rich Hickey likes about it

borkdude15:12:32

the JVM I mean

gklijs15:12:08

Yes, that part is pretty amazing.

borkdude15:12:53

@gklijs in terms of memory and startup, have you also tried GraalVM native?

gklijs16:12:03

I'm more interested in a comparison on throughput. Should give it an other try some say. Before I tried Kafka things and there was a known bug making it impossible. At least with micronaut that's no issue anymore.

borkdude16:12:13

throughput is possibly worse with graalvm, but startup and memory usage are probably more friendly

gklijs16:12:06

Yes, it will be worse, they (Oracle) are clear on that. But I would like to know just by how much.

gklijs16:12:51

Hmm, actually seems the other way around, not sure when doing io through, https://medium.com/graalvm/stream-api-performance-with-graalvm-be6cfe7fbb52

borkdude16:12:41

it's unclear to me if they used native compilation there, it seems not?

gklijs16:12:02

Yes, but It's a very syntactic benchmark. Like of you have a program calculating the first 50 fibonacci numbers, you could natively just put the numbers in the binary. And most things are limited by io, so it's really not saying anything to me.