Fork me on GitHub
#clojure
<
2022-01-01
>
Drew Verlee01:01:51

I'll admit, i have no idea what i'm looking at here seltzer. I do a lot of cljs work so i have likely forgotten some of the java~clj build story options. > It's a Maven archetype designed to put you in control. > > just project stereotypes > > developers to create a new projects, patterned for a specific purpose. > > just a maven pom that fits neatly within a current Maven DevOps pipeline system. Why do we need a maven file to, among other things, list a build directory when we already have deps.edn? So that build tools that expect maven poms dont get confused i suppose.

seancorfield05:01:56

One of the big "pluses" for me about Clojure, right from the get go, was "no more Maven". Even Leiningen was a breath of fresh air in that regard and the CLI with deps.edn is even better. But if you live and work in a Maven-driven world -- and a lot of enterprises are like that -- and you're trying to introduce Clojure to a stuffy corporate Java world, having a full-featured Maven bridge to basic Clojure stuff is gold 🙂

emccue06:01:30

I was more vauge on what it would mean before i learned more about how deps.edn projects work in practice, but now i am actually almost certain - deps.edn would be a better way to manage java projects

emccue06:01:01

maybe some different tools that take classes as entrypoints

emccue06:01:15

but a data oriented build ecosystem would be a breath of fresh air

emccue07:01:30

(okay data oriented is vauge I know, but whatever

Carlo11:01:35

Why is specter giving me the reverse order of the collection in this snippet?

(specter/transform specter/ALL identity "123")
=> (\3 \2 \1)
especially since:
(specter/select specter/ALL "123")
=> [\1 \2 \3]

p-himik11:01:14

I would create an issue on its GitHub page for that.

Carlo11:01:15

will do, thank you!

Carlo11:01:26

I just checked that they didn't have one

Cora (she/her)18:01:17

it's not the reason for the underlying data structure choice but one is working on a vec and one on a list and conj does different things to each

Cora (she/her)18:01:47

(conj (conj [] 1) 2) vs (conj (conj () \1) \2)

Cora (she/her)18:01:20

conj on a list sticks it in the front, conj on a vec sticks it on the back

Cora (she/her)18:01:27

and so in both cases the values were conj'd onto their data structure in the same sequence it's just that the list one ends up being in reverse order because each entry is added to the front

respatialized18:01:21

if I'm in a situation where I have an agent nested inside of another agent, I should probably take a step back and rethink how state is organized in my application, right? am I correct in assuming it's a huge antipattern/source of ambiguity to have asynchronous state nested like this?

Ben Sless18:01:31

It is kinda weird but doesn't have to be a bad idea. See all of Erlang for counter example

respatialized18:01:46

if I had a supervisor tree like erlang's I could probably get a better handle on this tbh

respatialized18:01:38

to be a bit more specific, the thing that's making me nervous is that I have an agent in the interior state that is calling send-off to modify the exterior state of the agent that contains it, which seems bad and potentially extremely confusing to debug

Ben Sless19:01:41

Why not do it with channels? It would allow you to flatten the architecture

1
didibus21:01:48

If the leaf modifies the parents that's not a tree anymore but a graph

didibus22:01:55

Agents are called as such cause you can think of them as Agents that do things one after the other. You know for sure the Agent will execute all tasks in order they are received and you can await for them to be completed. So you could say have an agent that has a list of agents, and one of those agents could send a takes to the outer agent to remove itself or to add a new agent. I think such thing would be fine.

emccue23:01:36

What exactly is the maven protocol?

emccue23:01:30

I ask because of a conversation in r/rust that makes me think about a package repository that enforces some minimum degree of what you want your versioning scheme to be and makes that visible.

Alex Miller (Clojure team)23:01:35

what do you mean by "maven protocol"?