Fork me on GitHub
#clojure-europe
<
2020-12-16
>
dharrigan06:12:46

Good Morning!

orestis06:12:05

I recall a mention of some screen-recording software in here ... any reminders ?

synthomat07:12:54

good morning!

orestis07:12:37

For the Mac, sorry!

RAMart07:12:30

The build-in Quick-Time-Player?

RAMart07:12:01

(Which can also capture a connected iPhone/Pad)

RAMart07:12:40

Or do you need to visualize mouse clicks and pressed keys as well?

dominicm08:12:41

@orestis I think we talked about OBS a little while ago

orestis08:12:44

That’s it, OBS! Thanks @dominicm

orestis08:12:21

The quicktime player (or the built-in screen capture thing in later version) produces huge files and takes very long to process. I’m curious to see if there’s better alternatives.

dharrigan08:12:32

I use OBS quite a bit. Fantastic bit of software.

3
orestis08:12:58

> OBS and OBS Studio are created and maintained by Jim.

slipset08:12:35

Oskar Wickstrom, of haskell fame, has this: https://owickstrom.github.io/komposition/

slipset08:12:58

Maybe not Haskell fame, but he’s used this project as a vehicle for talks on property based testing and stuff.

slipset08:12:14

Interestingly, it’s obviously written by a static-typing guy 🙂

slipset08:12:35

“Write a detailed script before recording anything”

orestis08:12:25

@slipset that’s cool. It’s an editor AFAICT, right? Useful for the next step.

slipset08:12:14

Yep, my bad.

orestis08:12:43

The reason I want to do this is that I’d like in our remote team to be able to share snippets of work in the same way we’d do if we were in the office. From editor shortcuts to workflow tips to bug reports etc.

thomas08:12:02

Re yesterdays Google outage. I just read that the Auth service went down and took everything with it. Surely that is actually a good thing in the sense that now we really know that Auth is used and anything that kept on working at Google doesn't depend on Auth. just my 2 cents.

👏 3
otfrom09:12:26

so many people on here sponsored by Cognitect I'm worried that if I congratulate them all individually that I'll miss someone out. 🙂

thomas10:12:25

You can congratulate my any time @otfrom 😉

otfrom10:12:58

congrats on being very, very tall

thomas10:12:38

not sure why, but who cares!

borkdude10:12:51

I'm happy to be sponsored. But I also feel a bit sorry for the folks who are not yet sponsored but perhaps should be. Then again, anyone can sponsor anyone.

👍 6
ordnungswidrig10:12:41

I realize that my sponsorship application at github was stuck at this docusign process somewhere. This was a nice reminder for me today to finalize it.

borkdude10:12:37

Good morning

borkdude10:12:54

The possibility of making a living from open source is becoming more and more a reality if things keep moving in this direction.

👍 9
Ben Hammond10:12:14

without needing to freemium it > we depend on an open source product who is now rewriting to Rust and will charge heavily for some features we're using

borkdude10:12:11

I prefer to keep my "products" without freemium, since I will have to do no additional work for this and it's more accessible to those who can't afford sponsoring or don't want to decide yet

slipset10:12:42

I was super surprised to get sponsored. There are so many people in the community that put in a lot of time on stuff that the community benefits from. I guess I need to think about this as a recognition that the work I do through clj-commons is valuable to the community.

👍 15
borkdude10:12:27

@slipset I was going to suggest that you could consider writing a proposal for Clojurists Together to put more organizational work into clj-commons, since I do think that's valuable.

borkdude10:12:53

But then the sponsoring thing happened :)

borkdude10:12:55

I could also see Clojurists Together sponsoring onboarding of new developers on existing vital clj-commons projects

slipset10:12:07

The “problem” is that the sponsoring doesn’t really change much for me. Since I have a full-time day job, more money doesn’t necessarily give me more time.

slipset10:12:37

Of course, I could use any such money to pay for others to do the work.

slipset10:12:51

But then I’d need some sort of problem statement.

otfrom10:12:10

I take it the sponsoring isn't enough to quit the day job?

slipset10:12:26

Not for me it isn’t

borkdude10:12:36

I thought that was true for me with Clojurists Together, but I have found that the sponsoring motivates me to finish tedious tasks that I would not do for free without sponsoring.

slipset10:12:02

To me it’s an interesting amount of money. It’s significant, but not sufficient.

slipset10:12:14

As in, not sufficient to make me quit my day job

borkdude10:12:27

I have a 4 day workweek which gives me more time for OSS. But if things keep moving in the right direction, I could see myself taking on a sabbatical of 2 days critical support for the company and the rest of the week OSS. And then see from there.

borkdude10:12:49

The last two years it's been mostly 4 days commercial work and 3 days OSS "work" (out of free will)

borkdude10:12:03

But currently the income from OSS is not yet at a level where I'm courageous enough to take this step, although it's growing significantly and I could probably feed myself from it at a bare minimum level.

slipset10:12:00

What’s certain is that the sponsorship definitively tells me that the work that I do is important and that it should be continued and improved.

3
borkdude10:12:32

@slipset Maybe OpenCollective is a good model for clj-commons. People can donate and you decide how the money is distributed to developers. Fully transparent.

slipset10:12:00

And that I now actually have some motivation/tool/whatever to go to my employer and ask/demand for more time to work on this.

slipset10:12:13

(we already have 10% do whatever time)

borkdude10:12:32

you could use the money to free up this time because it's already been paid for

slipset10:12:13

Or better, “The community is willing to pay me this much for the work, how much are you willing to chip in in terms of hours”

borkdude10:12:26

One thing I'm currently trying to find out is how to view this money: is it a gift and should it be treated like this for taxes? should I pay income taxes over it?

ordnungswidrig10:12:36

Even gifts can be relevant to taxation.

borkdude10:12:13

yes, the question is: which category does this belong to. OpenCollective is pretty clear: I send an invoice for services, they pay me out and I pay income taxes like any other company I do business with

borkdude10:12:33

but with Github sponsors you just get money, without any explicit invoicing

ordnungswidrig10:12:39

At least in german tax law it does not depend on an invoice. That would be nice to tell my client “just send money!” if there is no invoice - no taxes 😛

ordnungswidrig11:12:07

But it can make a difference regarding VAT. Still I think any tax administration would assume this is a business if you’re not carefule and then the paymount would due for VAT.

borkdude11:12:48

Since this is handled in the USA I think it's exempt from VAT

ordnungswidrig11:12:55

That’s actually true.

ordnungswidrig11:12:27

(Should have known as my main client is in the US cough)

ordnungswidrig11:12:57

But assumed you get a sponsorship by a european found this could be a problem.

borkdude11:12:58

mine too ;)

borkdude11:12:34

I'm getting this money from Github, I can't track where all the individual donations are coming from.

borkdude11:12:04

I mean, I could go on every profile on Github but this doesn't give me the legal info of every individual sponsor / company

borkdude11:12:19

Anyway, my accountant is on this

borkdude11:12:36

With OpenCollective this is way easier since I get paid by OpenCollective, not from the sponsors directly

borkdude11:12:13

I assume it's a bit of a grey area right now

borkdude11:12:28

I'd be happy to pay taxes they way I should

borkdude11:12:38

This is the Sheldon Cooper in me

ordnungswidrig13:12:06

Paying taxes is good. It shows that there is income 🙂

ordnungswidrig13:12:20

I wonder if the money comes from github it basically them paying you. 🤷

ordnungswidrig10:12:51

Btw. I can see how some sponsorship would allow me to address all the accumulated issues with liberator without the preassure of “I’m doing that for free. I could have charged my client five thousand million bucks for the same time!”

borkdude10:12:25

Exactly. This is what I mean with: finishing the tedious stuff because someone is paying for it.

slipset10:12:33

@ordnungswidrig thanks for liberator btw. Using it at work, and interacting with it daily 🙂

ordnungswidrig10:12:10

You would be surprised what my backlog for “liberator2” looks like. It’s huge. But there is no time thinking-face

borkdude10:12:28

liberator2 on top of ring2? async? :)

slipset10:12:29

I hope namespaced kws are in there somewhere 🙂

ordnungswidrig10:12:05

yes, that’s on of the things. And getting rid of the cumbesome multimethod response generation which makes me add some “util” functions to all project where I’m using it.

thomas10:12:26

I am just glad no one uses my OSS in earnest.

ordnungswidrig10:12:48

@slipset Also non-local-returns, e.g. be able to return a “412” from any decision.

slipset10:12:51

the multimethods are not a pain-point for us I think. It just sits there and does its job.

borkdude10:12:15

we're using yada, but I can see the effect of liberator on its design ... I think

ordnungswidrig10:12:17

@slipset if you need to add custom headers and stuff it can be tricky

borkdude10:12:27

I used liberator in one of my first commercial CLJ projects

ordnungswidrig10:12:51

@borkdude well, @malcolmsparks contributed substantially to liberator (not only the name) before he created yada.

slipset10:12:41

A couple of things that have shot us severly in the foot: 1. non-ns’d kw, as we returned maps from our fns that had :status which was string. 2. deep merge. We happened to return our system as the truthy value for some of the decision points. That was rather slow.

ordnungswidrig10:12:56

One think I don’t like about liberator is that it ties the idea of a “decision graph” to the specific implementation. This prevents async or good integration in servers like pedestal. (Although most run ring handler functions, which liberator creates, well)

borkdude10:12:29

I'm keeping an eye on apex which will be the next "yada" like thing

slipset10:12:26

So, since liberator doesn’t have namespaced-kws, we add stuff to the context under namespaced keys

ordnungswidrig10:12:30

@slipset yes, these are on my list. To my defence, this was basically the first clojure project I’ve every created. It suffers from a lot of bad design decisions. But I need to stick with it because compatibility. That’s why there will be no “liberator 2” but a spiritual successofr.

borkdude10:12:41

@ordnungswidrig oh yes, apex is going to be swagger-centric I think

borkdude10:12:59

and json-schema centric

ordnungswidrig10:12:08

@slipset I am! But when people suddenly using it in production 😱 You inherited a lot of reposibility 😛

ordnungswidrig10:12:42

@borkdude Juxt was hit by the requirements of real world software development 😉

slipset10:12:14

@ordnungswidrig Now imagine taking on aleph and manifold…

ordnungswidrig10:12:01

I just realize I even did a talk about this topic https://www.youtube.com/watch?v=fTBEMpmFFmw

ordnungswidrig10:12:13

Holy cow, that’s already 5 years ago?

ordnungswidrig10:12:24

I still had boring hair.

😬 3
slipset10:12:55

Re using it in production. That was our choice. And, since it’s OSS we’re free to fix things.

👍 3
borkdude10:12:57

It's interesting to see how many libs are "not perfect" , and while there are in some regards, more "perfect" or "optimized" solutions, the "not perfect" libraries remain useful and popular because they work well for the majority of use cases they were initially designed for.

borkdude10:12:54

What was the quote from Zach Tellman: (software) utility is contextual?

ordnungswidrig10:12:12

And often the libs that are available first, stick in a community. There is a price to pay for migration, not only in a project, but also in a community. Leiningen is great but boot never left the niche. deps.edn however took over quicky. I think because the price to pay was lower than migration to boot.

ordnungswidrig10:12:27

(Which says exactly nothing about the quality of boot, btw.)

borkdude10:12:49

I think deps.edn adoption is also pushed by that it is the "official" tool brought forward by Cognitect

🚰 6
borkdude10:12:38

We're leaving boot at work, although it has served us well. We have the impression it's no longer maintained really

ordnungswidrig10:12:49

Yes, this is all about the “perceived price”. Official tool by cognitect reduces the “price”.

3
slipset12:12:47

on that. I’ve been thinking about switching from compojure to something else ever since I started at ardoq three years ago, for no other reason than that I thought a datadriven router would be “better” for some measure of better. But the cost of switching out compojure was always to high, and it wasn’t really a pain point for us.

slipset12:12:10

Likewise, the upside of ditching lein and adopting deps.edn is very small.

slipset12:12:00

And even though I do have a reason now for changing from http-kit to aleph, that’s probably never gonna happen.

borkdude12:12:57

http-kit is also one of this libs that I deem "not perfect" but still useful and popular. since I adopted it in babashka (both server and client) I had on-going doubts if I made the right decision because it has limitations: 1) blows the heap with big requests/responses, 2) no http2 support, ... I've come up with alternatives that are "better" but for bb usage http-kit may actually fit very well: people aren't going to write "big" apps with it and the binary size it yields is as small as it gets for the functionality it provides

plexus12:12:24

Morning!

👋 9
3
mpenet12:12:29

the jdk has a simple http server too

mpenet12:12:00

it's clearly not for advanced usage, I guess for testing and simple uses it might be ok

mpenet12:12:27

it's in http://com.sun.net so maybe it's not available everywhere, not sure

borkdude13:12:22

com.sun packages are not meant for public consumption afaik

mpenet13:12:51

it depends. netty for instance will happily use them

mpenet13:12:20

maybe it's a risky thing, I don't really know

borkdude13:12:21

it's risky as in implementation detail, but maybe it's a risk worth taking. I also use some of this in babashka

3
plexus13:12:32

They've been in there for proverbial (or literal) decades now, pretty sure the oracle/open jdk won't drop them. But if you're on other implementations they may not be available. Then again not sure who's still really maintaining a jvm that can compete. Is IBM's still a thing? IcedTea?

plexus13:12:08

It used to be that they at least tried to keep the details of these sun classes secret, but the implementation is open now so not really that secret any more.

borkdude13:12:36

GraalVM might not have some of these things

thomas13:12:43

I think IBM has adopted OpenJDK with its J9 implementation.

borkdude13:12:46

e.g. they don't have the Thread#stop method :/

thomas13:12:19

so there are differences. Confluence has/had problems with J9 last year for instance

otfrom14:12:41

com.sun can disappear w/o Snorcle telling you about it whereas the main language should be much more stable. I know from some other libraries that the disappearance of some com.sun things caused a real problem for them

dominicm14:12:59

Some of the com.sun stuff has been made part of the official api due to heavy use.