Fork me on GitHub
#clojure-europe
<
2023-01-02
>
Gabriel Kovacs07:01:41

Happy new year 🙂 !

simongray07:01:44

good morning

lemontea08:01:53

good morning, 2023!

reefersleep08:01:51

Good morning in the new year! Workdays returned too soon, we didn’t get all of our holiday goings-on done at all.

reefersleep08:01:22

So much adulting to do after having a kid :face_with_spiral_eyes:

➕ 4
4
grav08:01:23

Morning! 🙂

Jakub HolĂ˝ (HolyJak)08:01:43

Happy new year, dear friends! Let’s hope it will be a good one! I would like to ask you all a favour and have a look at https://blog.jakubholy.net/2022/language-of-simplicity/ and share your thoughts with me 🙏 Let’s make software development better!

pez09:01:19

Thanks for sharing this. I liked the read. I think I need it to be slightly more concrete in order to more fully grasp the concept. Maybe the further reading provides that? I haven’t checked, yet. A thing I wonder about is the challenging of the level of separation between frontend and backend. How does that relate to the DSL message?

Jakub HolĂ˝ (HolyJak)09:01:33

Thank you! I will think about how to make it more concrete. The last sentence in the blog, which mentions FE x BE separation, is a little orthogonal to the post itself. The whole post is based on the assumption that we are doing software development wrong and need to think out of the box. The last sentence simply challenges the reader to think out of the box in general. I see how it is confusing.

mdiin08:01:02

Thank you for sharing, I enjoyed reading it. As I understand it, you are talking about being at the right level of abstraction for any given part of a software system. In other words, we should be programming in the language of the domain. The Pragmatic Programmer book has a section on this as well you might enjoy. Regarding abstraction, I remember reading an approach to building these abstractions in layers; with the goal of each layer of abstraction being implemented only in terms of the layer directly below it. This is not new, what caught my attention was a very structured approach to detecting which layers the individual pieces belonged to. I wish I could remember where I read that.

pez10:01:41

Can it have been something from Eric Normand? I recall reading something about Onion Architecture...

mdiin16:01:23

You are absolutely right, it was from Eric Normand’s Grokking Simplicity! The chapters on Stratified design are really good.

❤️ 2
Jakub HolĂ˝ (HolyJak)07:01:04

Thank you for reading. Matthias! > talking about being at the right level of abstraction Yes and no 🙂 You are right that this is a part of it but I try to communicate far more than just this. “Right level” is one thing but “right abstraction” is another one. Also, when speaking of abstractions, people often mean abstractions they build in code. I am trying to emphasise that also our libraries and the programming language itself are part of this - and they form a synergetic whole and thus need a holistic approach. Also, I very much like the metaphor of a language and optimizing it to be able to express the things important to us. Abstractions are things, while language is a system that works with abstractions and enables us to relate them to each other and combine them and, most importantly, describe the system (software) that we want.

mdiin10:01:56

That makes sense. As you write, a language, be it for human speech or not, is a tool that enables the building of abstractions by combination. The abstractions cannot exist without a system that defines the rules of combination. Have you though more about what a holistic approach that encapsulates libraries and programming language could be? I think package managers and dependency management tools are the languages for that holistic approach. They allow us to express the needs of our programs and how to run them declaratively. So in a sense they form a language to describe what our programs are and which programming languages they use to define what they do. Could we consider the holistic approach to be a tower of languages, each defining the abstractions that make sense? Sort of the stratified design lifted above the code level. This is a fascinating topic.

Jakub HolĂ˝ (HolyJak)15:01:49

By “holistic” I mean design a language for your domain so you can more easily define the domain abstraction you need and pick the right libraries that will make defining and implementing these abstractions and working with them easier. I.e. all these 3 parts influence each other - either positively or negatively.

pez11:01:47

Holýstic

😹 2
dharrigan11:01:40

I wonder if anyone could test something for me please? I have a small test repo with a single deps and clj file in it, that if you run clj -X:antq, for me the version of expectations, for me, is upgraded to 2.1.1.

dharrigan11:01:57

Can someone confirm if that happens for them too?

lread14:01:27

git status after running shows:

On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.cpcache/

nothing added to commit but untracked files present (use "git add" to track)

lread14:01:51

So deps.edn was not updated for me.

dharrigan17:01:55

that's weird. For some reason, for me, it's pulling down 2.1.1

dharrigan17:01:09

The repo for expectations is , yet the coordinates are https://clojars.org/com.github.seancorfield/expectations

dharrigan17:01:00

so when antq updates this, it's pulling the master for which is 2.1.1

dharrigan17:01:57

trying to see if this is just me, or happening to others.

lread17:01:50

maybe check your local m2 repo?

ls -l ~/.m2/repository/com/github/seancorfield/expectations
Do you see a 2.1.1 there?

dharrigan18:01:10

There is. I delete it, and it comes back again

dharrigan18:01:47

I'll continue to dig

dharrigan18:01:23

Found the problem

dharrigan18:01:50

If I have http://jitpack.io as source of dependencies, that pulls down the errant 2.1.1 version

dharrigan18:01:03

removing it from my list of repositories.

lread18:01:23

Aha! Good sleuthing!

dharrigan18:01:36

no, thank you for helping me to understand it was my problem 🙂

lread19:01:44

happy to help!

genRaiy07:01:23

Isn’t it the problem of jitpack?

dharrigan07:01:35

Yes. Removing the repository from my list of mirrors solved it.

genRaiy17:01:44

I meant that they own the bug ... removing their mirror works for you but should it work with them? Or is this a "feature" for them?

jasonbell11:01:11

Morning friends