What would have been the consequence if the ruling was in favour of Oracle?
If you wanted to re-implement an API, you could only do it if you license the API
From what I understand
It would kill all open source API-compatible projects
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
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.
since fair use has to be ruled on by a judge
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
We should probably read the opinion. If someone wants to bother to link it here
Yes, the question was if the ruling was in favour of Oracle. Then, the precedent would be in favor of MS/Google/AWS
Even then, the key point - are APIs subject to copyright? - was not addressed in this process, so... ¯\(ツ)/¯
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)
Is it possible to copy only the API? I mean, it's literally only the interface, you have to build something concrete over it...
Hi ! Anyone using cljs / clj for rpi? please, give good articles and tips 🙂 or maybe any ideas who uses what for rpi (except python)
@sky.fion Some people use babashka on rpi 64bit
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.wojcik Github actions has 7: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
Thanks @borkdude. That should be more than enough for the tests 🙂 Actually something around 5-6gb is fine.
If you had to represent assoc as a simple image or symbol, what would it look like?
Wait, are you making an APL flavor of Clojure? 🙂
Messing with keyboard layouts for fun and thinkiing of making a custom clojure programming keyboard. Key for reduce, assoc, filter, map, set operations etc
Wouldn't be practical but a bit of fun
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.
I don't know if it even has an operation like Clojure's assoc
, or even anything like a map/dictionary data structure.
Thanks, I'll have a look!
Very vector-based, if I recall correctly.
never even seen APL before, so interested to see what its like
This Wikipedia page has an image of one keyboard layout used for APL programming: https://en.wikipedia.org/wiki/Digital_encoding_of_APL_symbols
Also this table of operations and what symbols APL uses to represent them: https://en.wikipedia.org/wiki/APL_syntax_and_symbols#Monadic_functions
woah, is APL used anywhere as an actual practical language?
It is probably more niche than Clojure.
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.
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/
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 !
the j language is another non-special character APL which is pretty cool
(j is open source unlike k and q)
In regards to the original question I'd use a symbol version of <->
🤝 - idk if thats the best, but the best one might be an emoji
hmmm. emoji might be tricky for me to make an svg off, so i can get the keys printed.
there are some open source emojis with svgs you could use, unless you wanted something you could make yourself
mathematically, a map and a function are pretty much the same. Also a morphism. You can try playing off the mathematical notation
(u{} m k v)
, or something like that
The notation for extending a set is something like A∪{x}
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.
I created a #podcasts channel to discuss all things podcasts. New episodes can also be shared there (in addition to #news-and-articles)
I'll go ahead and recommend something outside of clojureland because that would probably be well covered by others here - Signals and Threads
Clojure podcasts: - defn: https://soundcloud.com/defn-771544745 - https://clojurescriptpodcast.com/ - apropos: https://www.youtube.com/channel/UC1UxEQuBvfLJgWR5tk_XIXA Non-clojure ones I like sometimes: - https://inside.java/podcast/ - https://aws.amazon.com/podcasts/aws-podcast/ - https://signalsandthreads.com/ [@ben.sless just beat me to this] - https://www.thoughtworks.com/podcasts
Software Engineering Daily is nice and polished, and has some good topics, although it can at times feel a bit marketing-heavy
I tend to like https://corecursive.com
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/
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?
@jjttjj haha! Ninja-ed!
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.
I've also bought albums before by pre-ordering where everyone that pre-ordered got their name in the booklet at the end.
dissoc
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.
Oh, that's a nice idea!
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.
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
I have some more ideas, actually this is a great brainstorm, trying to understand how some functions would behave / look visually... as icons/logos
map
filter
reduce
i am trying to understand the differences with reduce
and apply
I went pretty simple with map / filter / reduce with:
Oooh an actual Filter! Amazing. A funnel speaks volumes.
Reduce as Sigma... Like a Riemann Sum? very awesome!
The one above Summize was meant to be recur
but that needs more thought
symbols for recur
sounds like a spiral or fractal xD
yeah, i was thinking like a circular arrow
mini image of the mandelbrot
mm that is a clean one too
what other core functions would be good to brainstorm visuals for?
map filter reduce... assoc dissoc... how about swap!
I'm really stuck on for / list comprehension.
yeah and swap!
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…).
swap!
See, now I quite like the idea of them all being in circles somehow 😄
😄
that's great for swap though!
If you want to have a look at a language with really weird notation, have a gander at Hoon
reset!
Hoon?
Hoon:
++ add
~/ %add
|= [a=@ b=@]
^- @
?: =(0 a) b
$(a (dec a), b +(b))
for apply I have (...)
😄! in Hoon the letter "hax" is #.
It's like lisp without parens
wow
Back to the OP though, why not just copy symbols from mathematics or APL?
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
Ah
APL looks neat, the reduce symbol i drew is in that set, but i don't know what it means in APL ...
Another nice benefit of circles is the set/intersection and set/union could be shaded venn diagrams
You have to take readability into account
True. Maybe too concise is an overoptimization
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
We already have a symbol for set unification: ∪, why not use it?
Just thinking in logos 😄
etch some code into some marble for posterity sake... we might need cool glyphs xD
We already have cool glyphs, 256 of them 😉
Which 256 are you referring to?
can i get your opinion on this?
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 λ
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
256 ascii characters
Symbols are never intuitive, btw, we develop that intuition with time. Let's think of something easier - conj, concat, first, rest
I like that image as a company logo though, if you were a self employed clojure contractor and your company was swap Atom incorporated.
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...