off-topic

https://github.com/clojurians/community-development/blob/master/Code-of-Conduct.md Clojurians Slack Community Code of Conduct. Searchable message archives are at https://clojurians-log.clojureverse.org/
Faris 2021-04-06T05:47:32.059700Z

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

Elliot Stern 2021-04-06T11:46:20.064700Z

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

Elliot Stern 2021-04-06T11:46:25.064900Z

From what I understand

Ben Sless 2021-04-06T14:19:53.071300Z

It would kill all open source API-compatible projects

mauricio.szabo 2021-04-06T14:41:48.072100Z

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 Stern 2021-04-06T14:51:42.072300Z

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 Stern 2021-04-06T14:52:18.072500Z

since fair use has to be ruled on by a judge

Ben Sless 2021-04-06T14:55:12.072700Z

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 Sless 2021-04-06T14:56:15.072900Z

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

mauricio.szabo 2021-04-06T17:17:06.075900Z

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

mauricio.szabo 2021-04-06T17:18:33.076100Z

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

Ben Sless 2021-04-06T19:19:35.080100Z

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.szabo 2021-04-07T00:52:08.092700Z

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

kam 2021-04-06T07:24:40.061800Z

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

borkdude 2021-04-06T07:45:51.062100Z

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

🙏 1
Karol Wójcik 2021-04-06T08:18:37.063300Z

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ójcik 2021-04-06T08:34:19.064400Z

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

2021-04-06T11:59:03.065700Z

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

2021-04-06T12:02:18.065900Z

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

🙂 2
2021-04-06T12:03:27.066100Z

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

2021-04-06T12:03:47.066300Z

Wouldn't be practical but a bit of fun

2021-04-06T12:04:58.066500Z

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.

2021-04-06T12:05:25.066700Z

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

2021-04-06T12:05:26.066900Z

Thanks, I'll have a look!

2021-04-06T12:05:40.067100Z

Very vector-based, if I recall correctly.

2021-04-06T12:05:44.067300Z

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

2021-04-06T12:06:44.067500Z

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

2021-04-06T12:08:32.067800Z

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
2021-04-06T12:10:38.068400Z

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

2021-04-06T12:10:50.068600Z

It is probably more niche than Clojure.

2021-04-06T12:11:52.068800Z

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.

2021-04-06T12:17:52.069Z

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/

jkxyz 2021-04-06T12:48:43.069400Z

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 !

2021-04-06T13:35:35.069900Z

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

2021-04-06T13:36:14.070100Z

(j is open source unlike k and q)

Mno 2021-04-06T13:45:04.070300Z

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

emccue 2021-04-06T14:00:53.070600Z

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

2021-04-06T14:02:31.070900Z

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

2021-04-06T14:04:29.071100Z

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

Ben Sless 2021-04-06T14:37:07.071500Z

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

Ben Sless 2021-04-06T14:37:51.071700Z

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

Ben Sless 2021-04-06T14:39:25.071900Z

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

Elliot Stern 2021-04-06T16:48:39.075100Z

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.

borkdude 2021-04-15T21:02:12.225100Z

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

Ben Sless 2021-04-06T16:52:04.075200Z

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

👀 1
2021-04-06T16:54:57.075700Z

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

slipset 2021-04-06T17:31:59.076300Z

I tend to like https://corecursive.com

💯 1
anthonyrrubin 2021-04-06T18:47:03.076700Z

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/

sova-soars-the-sora 2021-04-06T19:12:01.077800Z

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?

Ben Sless 2021-04-06T19:16:57.078800Z

@jjttjj haha! Ninja-ed!

🥷 1
2021-04-06T19:17:18.079100Z

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.

2021-04-06T19:18:32.079700Z

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

sova-soars-the-sora 2021-04-06T19:20:15.080300Z

dissoc

2021-04-06T19:20:17.080500Z

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.

2021-04-06T19:20:35.080700Z

Oh, that's a nice idea!

Ben Sless 2021-04-06T19:21:21.080900Z

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 Sless 2021-04-06T19:21:58.081100Z

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

sova-soars-the-sora 2021-04-06T19:30:15.081300Z

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-sora 2021-04-06T19:30:26.081500Z

map

sova-soars-the-sora 2021-04-06T19:30:35.081700Z

filter

sova-soars-the-sora 2021-04-06T19:30:46.081900Z

reduce

sova-soars-the-sora 2021-04-06T19:31:25.082100Z

i am trying to understand the differences with reduce and apply

2021-04-06T19:31:41.082300Z

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

sova-soars-the-sora 2021-04-06T19:31:55.082500Z

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

sova-soars-the-sora 2021-04-06T19:32:11.082700Z

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

2021-04-06T19:32:17.082900Z

The one above Summize was meant to be recur

2021-04-06T19:32:22.083100Z

but that needs more thought

sova-soars-the-sora 2021-04-06T19:32:49.083300Z

symbols for recur sounds like a spiral or fractal xD

2021-04-06T19:32:58.083500Z

yeah, i was thinking like a circular arrow

sova-soars-the-sora 2021-04-06T19:33:02.083700Z

mini image of the mandelbrot

sova-soars-the-sora 2021-04-06T19:33:11.083900Z

mm that is a clean one too

sova-soars-the-sora 2021-04-06T19:33:41.084100Z

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

sova-soars-the-sora 2021-04-06T19:33:57.084300Z

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

2021-04-06T19:33:58.084500Z

I'm really stuck on for / list comprehension.

2021-04-06T19:34:04.084700Z

yeah and swap!

seancorfield 2021-04-06T19:34:32.084900Z

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-sora 2021-04-06T19:36:32.085100Z

swap!

2021-04-06T19:36:56.085300Z

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

sova-soars-the-sora 2021-04-06T19:37:14.085500Z

😄

2021-04-06T19:37:17.085700Z

that's great for swap though!

Ben Sless 2021-04-06T19:37:38.085900Z

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

sova-soars-the-sora 2021-04-06T19:38:07.086100Z

reset!

sova-soars-the-sora 2021-04-06T19:38:31.086300Z

Hoon?

Ben Sless 2021-04-06T19:38:53.086500Z

Hoon:

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

2021-04-06T19:39:13.086700Z

for apply I have (...)

sova-soars-the-sora 2021-04-06T19:39:19.086900Z

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

Ben Sless 2021-04-06T19:39:25.087100Z

It's like lisp without parens

sova-soars-the-sora 2021-04-06T19:39:50.087300Z

wow

Ben Sless 2021-04-06T19:40:09.087500Z

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

2021-04-06T19:40:43.087700Z

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

Ben Sless 2021-04-06T19:41:01.087900Z

Ah

sova-soars-the-sora 2021-04-06T19:41:30.088100Z

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-sora 2021-04-06T19:42:58.088300Z

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

Ben Sless 2021-04-06T19:43:27.088500Z

You have to take readability into account

sova-soars-the-sora 2021-04-06T19:43:47.088700Z

True. Maybe too concise is an overoptimization

Ben Sless 2021-04-06T19:44:28.088900Z

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 Sless 2021-04-06T19:44:41.089100Z

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

sova-soars-the-sora 2021-04-06T19:45:40.089300Z

Just thinking in logos 😄

sova-soars-the-sora 2021-04-06T19:46:27.089500Z

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

Ben Sless 2021-04-06T19:53:01.089700Z

We already have cool glyphs, 256 of them 😉

sova-soars-the-sora 2021-04-06T20:02:37.089900Z

Which 256 are you referring to?

sova-soars-the-sora 2021-04-06T20:13:44.090100Z

can i get your opinion on this?

2021-04-06T20:16:41.090400Z

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 λ

2021-04-06T20:17:37.090600Z

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 Sless 2021-04-06T20:22:09.090800Z

256 ascii characters

Ben Sless 2021-04-06T20:23:17.091Z

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

2021-04-06T20:24:48.091200Z

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
2021-04-06T21:20:30.091800Z

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