Fork me on GitHub
#off-topic
<
2022-06-13
>
emccue02:06:16

Dall-E doing a decent job at "Clojure"

😄 1
Martynas Maciulevičius05:06:36

That's pretty artistic :thinking_face:

Mno10:06:06

Honestly pretty, might use as a logo for something

teodorlu12:06:01

can you feed it some other clojur-y words too? clojure data oriented immutable

Martynas Maciulevičius12:06:39

I think Clojure messed it up and suggested it's green+blue. I'll try to remove clojure 😄 bottom-left looks promising 😄

Martynas Maciulevičius12:06:46

Servers. Servers everywhere...

😄 1
Martynas Maciulevičius19:06:27

You can host it on your computer. But... something is not right 😕 I can't generate clojure logos anymore 😕 That's a bummer 😕

teodorlu19:06:39

might I ask how you installed it?

Martynas Maciulevičius19:06:21

git clone 
docker-compose up
And then fix the issues with Nvidia and docker integration. I installed nvidia-docker and nvidia-container-toolkit. I'm on Manjaro (arch linux).

💯 1
teodorlu19:06:50

Thanks! :hugging_face:

Martynas Maciulevičius19:06:16

Oh right -- you'll also need to restart docker once you install those packages. systemctl restart docker . And one of the images weighs 1.3GB.

Martynas Maciulevičius19:06:08

It kind of gets the green and blue but nothing else :thinking_face: No abstractness, no minimalism... I guess I'll need to add these as words 😄

Martynas Maciulevičius19:06:59

This is soo great

❤️ 1
Stuart14:06:20

Signed a contract today for a new job. So happy, current place has been far too stressful, miserable work, geetting moaned at if my timesheets is missing more than 5 minutes entries for the day. No dev processes, everything broken all the time. Going to a place that sounds great, up to date tech stack (.NET Core / net6.0), they are going to train me up on Angular too. A lot better money, private healthcare, more holidays, more bonus. NO TIMESHEETS! I told my boss a while back that I wasn't happy with salary and was looking to leave, they basically ambushed me in a meeting shortly after and tried to talk down to me, tell me I'm useless and they'd rather I just leave. I have no value to them, and definitely not getting a payrise... Then I hand in my notice today and my boss basically said "I never saw this coming... "... WAT, how could you not have seen this coming...

🎉 18
🧡 6
Jon Boone15:06:24

Negging is definitely not a winning strategy for retention

teodorlu15:06:14

Wow, that's shitty. Congrats on the new job!

Ivar Refsdal15:06:17

Congrats! Hope you'll be happier there 💚

littleli17:06:24

You did the right thing. Good luck!

scriptor18:06:52

Sounds like you're walking away from an awful place, congrats! Hopefully you have enough time between jobs to decompress

chucklehead19:06:42

Congrats, no timesheets is liberating.

dvingo18:06:16

Watched this Lamport talk over the weekend and found it had a lot of overlap with Hammock driven dev (Write it down!) https://www.youtube.com/watch?v=-4Yp3j_jk8Q and wanted to recommend for other curious clojurians. Separately: is there a channel for sharing talks/videos/articles?

sansarip18:06:44

There’s a #news-and-articles channel which seems relevant!

dvingo18:06:38

wasn't sure - b/c it seems more related to clojure instead of problem solving/programming in general

sansarip18:06:30

:man-shrugging: I think it’s fine, worst case someone will tell you not to. There’s also #videos but it doesn’t seem to get a lot of traffic :paw_prints:

dvingo18:06:21

makes sense, thanks!

clojure-spin 1
teodorlu19:06:08

I'm very glad you shared here!

wizard 1
Adam Helins20:06:06

I was surprised to learn that (max 0.0 -0.0) always returns 0.0, irrelevant of the order of the args. Likewise about (min 0.0 -0.0) and -0.0. It doesn't look too odd until you remember that both zeroes are supposed to be numerically equivalent. Of course (< -0.0 0.0)is false. Those functions are respectively calling Math/max and Math/min so this isn't really a Clojure design choice. I was wondering if someone had some information about that. In case of numerical equivalence, you could expect the first (or last) arg to be systemically returned instead of making it look like 0.0is somehow greater than -0.0 .

Martynas Maciulevičius20:06:35

Should (min 0 5) randomly return -0?

Adam Helins20:06:26

Well I'd say that (min -0.0 0.0) could return -0.0 while (min 0.0 -0.0) could return 0.0 for instance.

Martynas Maciulevičius20:06:09

But then also (< -0 0) should return true, and > should return false?

Martynas Maciulevičius20:06:09

Why not wrap it into your own number implementation and try to use it. Who knows how bad it can be.

dpsutton20:06:48

* Compares two {@code Double} objects numerically.  There

     * are two ways in which comparisons performed by this method

     * differ from those performed by the Java language numerical

     * comparison operators ({@code <, <=, ==, >=, >})

     * when applied to primitive {@code double} values:

     * <ul><li>
     * <li>

     *          {@code 0.0d} is considered by this method to be greater

     *          than {@code -0.0d}.

     * </ul>

dpsutton20:06:24

dates=> (.compareTo 0.0 -0.0)
1
dates=> (.compareTo -0.0 0.0)
-1

Martynas Maciulevičius20:06:36

What should be returned by this in your model? (sign (max -0 0)) +1 or -1? Are signs suddenly equivalent?

dpsutton20:06:52

so seems like 0.0 is ordered greater than -0.0 but they compare as equal

2
William LaFrance20:06:16

As a new Clojure dev but an old dev, I would expect the hardcoded value -0.0 to lose its sign once tokenized and represent the same value as 0.0 with the implied (though ineffective) positive sign. To me, the fact that (println -0.0) prints -0.0 is the surprise.

Adam Helins20:06:26

@U11BV7MTK Thanks for the pointers! At least this behavior is super consistent. @U028ART884X Well (sign (max -0.0 0.0))would return -1 if we apply such a rule that the first arg is returned in case of numerical equivalence. Not saying it's inherently better than the current state of affair.

Adam Helins20:06:13

@U03JPRPTSTX Haha, I see we all have our preferences.

🙂 1
Martynas Maciulevičius20:06:49

If you would have (+ (- 5) 5) return -0 and (- 5 5) return 0 you would get some pretty nasty bugs to solve. Because then sign would return -1 and 1 based on the order of your calculations. And if you would use sign later then you would get undefined behavior :thinking_face:

teodorlu20:06:07

this might just be weirdness for floats. I think there's two ways to represent zero because the sign is stored as a bit, and you can have the rest be zero. So - since the sign can be positive or negative, you can (by accident) represent 0 and -0, which should be the same. But when you do comparisons, perhaps you compare the sign first? Not sure.

☝️ 1
Adam Helins20:06:57

Right, I can see how not having an ordering might be problematic in the grander scheme of things.

teodorlu21:06:22

#sicmutils doesn't seem to produce -0:

(ns toad.polywrath
  (:require [sicmutils.env]))

(clojure.core/* 0.0 -3)
;; => -0.0

(sicmutils.env/* 0.0 -3)
;; => 0

andy.fingerhut21:06:30

I believe that some of the Java method behavior is probably recommended and/or mandated by IEEE floating point standards.

andy.fingerhut21:06:35

As in, there are probably numerical libraries out there that depend upon exactly iEEE floating point behavior, and will break if you change those. That doesn't mandate the behavior for Clojure functions, of course, but for efficiency it is certainly more efficient for Clojure's implementation if it does not change the behavior of underlying Java methods.

1
andy.fingerhut21:06:15

I believe there is a great amount more than the existence and differences between +0.0 and -0.0 that people find surprising about floating point numerics on computers, hence this article: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html. I noticed today that it has a section titled "Signed zero"

👍 2
Sam Ritchie00:09:59

That's because it short circuits multiplication if either side is 0

👍 1
andy.fingerhut13:09:48

I suspect that when IEEE floats and the results of their operations were designed, if there were multiple designers involved, there were probably interesting arguments involved in that process.