Fork me on GitHub
#off-topic
<
2021-04-06
>
Faris05:04:32

What would have been the consequence if the ruling was in favour of Oracle?

Elliot Stern11:04:20

If you wanted to re-implement an API, you could only do it if you license the API

Elliot Stern11:04:25

From what I understand

Ben Sless14:04:53

It would kill all open source API-compatible projects

mauricio.szabo14:04:48

It would allow people to licence APIs and public interfaces to development. So, for example, Microsoft could license .NET and Windows APIs and kill Mono and Wine, Google could license APIs and kill grpc libraries. Amazon could license their APIs and kill local-stack, moto-server, and other local-based dev tools

Elliot Stern14:04:42

I mean, this still doesn’t prevent something like that, right? Google’s win was based on fair use, so if MS were to sue the creators of Mono for copyright infringement, they’d probably win in court but it’d be prohibitively expensive to fight it for most people.

Elliot Stern14:04:18

since fair use has to be ruled on by a judge

Ben Sless14:04:12

iirc, fair use is a case-by-case analysis, but precedent does come into effect. You have a pretty clear cut case of copying an entire API, but since it was a tiny bit of the actual code base, the judge considered it a new creative work and not a breach. The API was less than 1% of the entire code base, i.e. lots of creation

Ben Sless14:04:15

We should probably read the opinion. If someone wants to bother to link it here

mauricio.szabo17:04:06

Yes, the question was if the ruling was in favour of Oracle. Then, the precedent would be in favor of MS/Google/AWS

mauricio.szabo17:04:33

Even then, the key point - are APIs subject to copyright? - was not addressed in this process, so... ¯\(ツ)

Ben Sless19:04:35

Implicitly, it was - your API is your copyright, but copying it to create a massive project on top of is free use. If all someone did was copy your API, they'd be in violation of your copyright (that's how I understand the decision)

mauricio.szabo00:04:08

Is it possible to copy only the API? I mean, it's literally only the interface, you have to build something concrete over it...

kam07:04:40

Hi ! Anyone using cljs / clj for rpi? please, give good articles and tips 🙂 or maybe any ideas who uses what for rpi (except python)

borkdude07:04:51

@sky.fion Some people use babashka on rpi 64bit

🙏 1
Karol Wójcik08:04:37

Does anyone know what is a limit of memory on github actions? I would like to run some tests with GraalVM native-image compilation. CircleCI limits memory usage to only 4gb. 😞

Karol Wójcik08:04:19

Thanks @borkdude. That should be more than enough for the tests 🙂 Actually something around 5-6gb is fine.

Stuart11:04:03

If you had to represent assoc as a simple image or symbol, what would it look like?

andy.fingerhut12:04:18

Wait, are you making an APL flavor of Clojure? 🙂

🙂 2
Stuart12:04:27

Messing with keyboard layouts for fun and thinkiing of making a custom clojure programming keyboard. Key for reduce, assoc, filter, map, set operations etc

Stuart12:04:47

Wouldn't be practical but a bit of fun

andy.fingerhut12:04:58

I have never used APL, but you might want to look at what symbols it uses for some operations to see if you like them.

andy.fingerhut12:04:25

I don't know if it even has an operation like Clojure's assoc, or even anything like a map/dictionary data structure.

Stuart12:04:26

Thanks, I'll have a look!

andy.fingerhut12:04:40

Very vector-based, if I recall correctly.

Stuart12:04:44

never even seen APL before, so interested to see what its like

andy.fingerhut12:04:44

This Wikipedia page has an image of one keyboard layout used for APL programming: https://en.wikipedia.org/wiki/Digital_encoding_of_APL_symbols

andy.fingerhut12:04:32

Also this table of operations and what symbols APL uses to represent them: https://en.wikipedia.org/wiki/APL_syntax_and_symbols#Monadic_functions

👀 1
Stuart12:04:38

woah, is APL used anywhere as an actual practical language?

andy.fingerhut12:04:50

It is probably more niche than Clojure.

andy.fingerhut12:04:52

I'm just amazed someone came up with all of these symbols in the 1960s/1970s for a programming language, when you had to create custom hardware mods in order to represent those symbols visually.

andy.fingerhut12:04:52

I have not read this entire article, but found via a quick Google search looking for users of APL. Not dead, but definitely niche: https://www.sacrideo.us/is-apl-dead/

jkxyz12:04:43

K and q are apparently commonly used for high-frequency trading (with kdb+). It’s very efficient for operating on very large datasets. K and q are both variants of APL but more terse and don’t use special characters. And kdb+ has some form of a dictionary as a native type: https://code.kx.com/q/basics/dictsandtables/ The operator for making a dictionary in q is !

jjttjj13:04:35

the j language is another non-special character APL which is pretty cool

jjttjj13:04:14

(j is open source unlike k and q)

Mno13:04:04

In regards to the original question I'd use a symbol version of <->

emccue14:04:53

🤝 - idk if thats the best, but the best one might be an emoji

Stuart14:04:31

hmmm. emoji might be tricky for me to make an svg off, so i can get the keys printed.

jjttjj14:04:29

there are some open source emojis with svgs you could use, unless you wanted something you could make yourself

Ben Sless14:04:07

mathematically, a map and a function are pretty much the same. Also a morphism. You can try playing off the mathematical notation

Ben Sless14:04:51

(u{} m k v) , or something like that

Ben Sless14:04:25

The notation for extending a set is something like A∪{x}

sova-soars-the-sora19:04:54

green is nicer on the eyes, but orange pops better at icon-size

Stuart19:04:35

Oh, that's a nice idea!

sova-soars-the-sora19:04:15

I have some more ideas, actually this is a great brainstorm, trying to understand how some functions would behave / look visually... as icons/logos

sova-soars-the-sora19:04:25

i am trying to understand the differences with reduce and apply

Stuart19:04:41

I went pretty simple with map / filter / reduce with:

sova-soars-the-sora19:04:55

Oooh an actual Filter! Amazing. A funnel speaks volumes.

sova-soars-the-sora19:04:11

Reduce as Sigma... Like a Riemann Sum? very awesome!

Stuart19:04:17

The one above Summize was meant to be recur

Stuart19:04:22

but that needs more thought

sova-soars-the-sora19:04:49

symbols for recur sounds like a spiral or fractal xD

Stuart19:04:58

yeah, i was thinking like a circular arrow

sova-soars-the-sora19:04:02

mini image of the mandelbrot

sova-soars-the-sora19:04:11

mm that is a clean one too

sova-soars-the-sora19:04:41

what other core functions would be good to brainstorm visuals for?

sova-soars-the-sora19:04:57

map filter reduce... assoc dissoc... how about swap!

Stuart19:04:58

I'm really stuck on for / list comprehension.

Stuart19:04:04

yeah and swap!

Stuart19:04:56

See, now I quite like the idea of them all being in circles somehow 😄

Stuart19:04:17

that's great for swap though!

Ben Sless19:04:38

If you want to have a look at a language with really weird notation, have a gander at Hoon

Ben Sless19:04:53

Hoon:

++  add
  ~/  %add
  |=  [[email protected] [email protected]]
  ^-  @
  ?:  =(0 a)  b
  $(a (dec a), b +(b))

Stuart19:04:13

for apply I have (...)

sova-soars-the-sora19:04:19

😄! in Hoon the letter "hax" is #.

Ben Sless19:04:25

It's like lisp without parens

Ben Sless19:04:09

Back to the OP though, why not just copy symbols from mathematics or APL?

Stuart19:04:43

I don't really know much maths beyond what a year of math at uni. So I'm not sure what the correct notation for these things might be

sova-soars-the-sora19:04:30

APL looks neat, the reduce symbol i drew is in that set, but i don't know what it means in APL ...

sova-soars-the-sora19:04:58

Another nice benefit of circles is the set/intersection and set/union could be shaded venn diagrams

Ben Sless19:04:27

You have to take readability into account

sova-soars-the-sora19:04:47

True. Maybe too concise is an overoptimization

Ben Sless19:04:28

Not concision, more like the symbols you designed are very dense and full of information, they'll be virtually unreadable for font size of 12 points

Ben Sless19:04:41

We already have a symbol for set unification: ∪, why not use it?

sova-soars-the-sora19:04:40

Just thinking in logos 😄

sova-soars-the-sora19:04:27

etch some code into some marble for posterity sake... we might need cool glyphs xD

Ben Sless19:04:01

We already have cool glyphs, 256 of them 😉

sova-soars-the-sora20:04:37

Which 256 are you referring to?

sova-soars-the-sora20:04:44

can i get your opinion on this?

Stuart20:04:41

I like that as swap. But I know you mean swap. I wonder if it's intuitive though, like if you asked a random person who knows clojure outside of the context of atom inc, if they would be able to reason it was swap. I think they might! It would be cool as an option to display (swap as that symbol straight into the editor. Like how defn shows for me in emacs as λ

Stuart20:04:37

I like the general idea of replacing keywords with intuitive symbols, less text is less code to get in the way of what you want to express IMO

Ben Sless20:04:09

256 ascii characters

Ben Sless20:04:17

Symbols are never intuitive, btw, we develop that intuition with time. Let's think of something easier - conj, concat, first, rest

Stuart20:04:48

I like that image as a company logo though, if you were a self employed clojure contractor and your company was swap Atom incorporated.

😄 1
Elliot Stern16:04:39

What are people’s favorite software podcasts? Either clojure-specific or more general software-related. My team was thinking of finding a podcast to listen to as a group and discuss.

Ben Sless16:04:04

I'll go ahead and recommend something outside of clojureland because that would probably be well covered by others here - Signals and Threads

👀 1
Jeff Evans16:04:57

Software Engineering Daily is nice and polished, and has some good topics, although it can at times feel a bit marketing-heavy

anthonyrrubin18:04:03

Eric Normand is on apropros, but also has his own podcast which covers Clojure as well as more general functional programming topics: https://lispcast.com/category/podcast/

Ben Sless19:04:57

@U064UGEUQ haha! Ninja-ed!

🥷 1
borkdude21:04:12

I created a #podcasts channel to discuss all things podcasts. New episodes can also be shared there (in addition to #news-and-articles)

sova-soars-the-sora19:04:01

how do you support your favorite musicians and sound artists? would you pay money for an initial album if it was "pay what you can" or would you like it if an artist provided their music for free and made money on merch?

Stuart19:04:18

I still buy all my music as mp3s or cds, especially if I'm getting a nice CD or vinyl with like an art book, or a good book about the mustic and the artist etc.

Stuart19:04:32

I've also bought albums before by pre-ordering where everyone that pre-ordered got their name in the booklet at the end.

Stuart19:04:17

If the booklet has nice art it then they might be able to sell prints off the artwork too, and of course hopefully soon we will be able to get back to going to see live music again! I've got tickets for a gig in September I'm hoping to get to.

Ben Sless19:04:21

Master Boot Record uploads all his stuff to youtube and it's available to listen on bandcamp. I listened for a while, then decided to throw some money his way and bought his entire catalog.

Ben Sless19:04:58

This model of making the music available for listening but not for download unless you purchase it at a very reasonable price seems like a good middle ground

seancorfield19:04:32

If they’re on Patreon, that can be a good way to support them. Also Bandcamp when you can often pay what you want (and maybe SoundCloud? I haven’t used that much — only occasionally to listen online — but it looks like you can pay for something there…).

sova-soars-the-sora19:04:54

green is nicer on the eyes, but orange pops better at icon-size

Stuart21:04:30

You know when you write some really neat and concise code, it's readable and pretty. But you've accidentally missed out an entire requirement, but adding in that requirement will ruin the pretty code so you try to explain in an email to your boss why this requirement needs to go...

😆 5
🙂 1
gklijs04:04:49

I remember we once had a kind of nice and neat state machine. Then we got a requirement to enable an action on whatever the state was, and it wasn't pretty anymore 😔.