clojure-europe

For people in Europe... or elsewhere... UGT https://indieweb.org/Universal_Greeting_Time
dharrigan 2020-12-16T06:16:46.379500Z

Good Morning!

slipset 2020-12-16T06:29:48.379700Z

Morning.

orestis 2020-12-16T06:58:32.379900Z

Morning!

orestis 2020-12-16T06:59:05.380900Z

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

synthomat 2020-12-16T07:05:42.381100Z

OS?

synthomat 2020-12-16T07:05:54.381300Z

good morning!

orestis 2020-12-16T07:11:37.381600Z

For the Mac, sorry!

RAMart 2020-12-16T07:18:30.381900Z

The build-in Quick-Time-Player?

RAMart 2020-12-16T07:19:01.382400Z

(Which can also capture a connected iPhone/Pad)

RAMart 2020-12-16T07:20:40.383400Z

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

thomas 2020-12-16T08:07:34.383600Z

morning

dominicm 2020-12-16T08:21:41.384300Z

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

orestis 2020-12-16T08:31:44.384500Z

That’s it, OBS! Thanks @dominicm

orestis 2020-12-16T08:32:21.385200Z

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.

dharrigan 2020-12-16T08:32:32.385500Z

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

1
orestis 2020-12-16T08:33:58.385800Z

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

orestis 2020-12-16T08:34:00.386Z

Love this

slipset 2020-12-16T08:36:35.386700Z

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

slipset 2020-12-16T08:36:58.387300Z

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

slipset 2020-12-16T08:38:14.387800Z

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

slipset 2020-12-16T08:38:35.388600Z

“Write a detailed script before recording anything”

jasonbell 2020-12-16T08:40:13.388800Z

Morning

orestis 2020-12-16T08:42:25.389400Z

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

slipset 2020-12-16T08:43:14.390800Z

Yep, my bad.

orestis 2020-12-16T08:43:43.391500Z

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.

thomas 2020-12-16T08:51:02.393300Z

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.

👏 1
2020-12-16T09:03:01.393500Z

morning

2020-12-16T09:03:26.394100Z

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

ordnungswidrig 2020-12-16T09:06:53.394300Z

Good morning.

thomas 2020-12-16T10:05:25.395500Z

You can congratulate my any time @otfrom 😉

thomas 2020-12-16T10:05:38.396Z

not sure why, but who cares!

borkdude 2020-12-16T10:05:51.396300Z

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.

👍 2
borkdude 2020-12-16T10:06:37.396500Z

Good morning

borkdude 2020-12-16T10:07:54.397300Z

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

👍 3
2020-12-16T10:10:14.399100Z

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

borkdude 2020-12-16T10:10:24.399400Z

yes

borkdude 2020-12-16T10:11:11.400900Z

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

slipset 2020-12-16T10:11:42.401300Z

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.

👍 5
borkdude 2020-12-16T10:12:27.402Z

@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.

borkdude 2020-12-16T10:12:53.402600Z

But then the sponsoring thing happened :)

borkdude 2020-12-16T10:13:55.404100Z

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

slipset 2020-12-16T10:14:07.404500Z

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.

slipset 2020-12-16T10:14:37.405400Z

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

slipset 2020-12-16T10:14:51.406100Z

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

2020-12-16T10:15:10.406500Z

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

slipset 2020-12-16T10:15:26.407Z

Not for me it isn’t

borkdude 2020-12-16T10:15:36.407400Z

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.

2020-12-16T10:15:58.407800Z

congrats on being very, very tall

slipset 2020-12-16T10:16:02.408Z

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

slipset 2020-12-16T10:17:14.409Z

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

borkdude 2020-12-16T10:17:27.409300Z

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.

borkdude 2020-12-16T10:19:49.410600Z

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

borkdude 2020-12-16T10:21:03.411500Z

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.

slipset 2020-12-16T10:22:00.412500Z

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.

1
borkdude 2020-12-16T10:23:32.413600Z

@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.

slipset 2020-12-16T10:24:00.414200Z

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.

slipset 2020-12-16T10:24:13.414600Z

(we already have 10% do whatever time)

borkdude 2020-12-16T10:24:32.415Z

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

slipset 2020-12-16T10:24:42.415300Z

Exactly.

slipset 2020-12-16T10:25:13.415800Z

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”

borkdude 2020-12-16T10:27:26.417Z

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?

ordnungswidrig 2020-12-16T10:28:41.417200Z

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.

ordnungswidrig 2020-12-16T10:29:36.418100Z

Even gifts can be relevant to taxation.

borkdude 2020-12-16T10:30:13.419200Z

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

borkdude 2020-12-16T10:30:33.420Z

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

ordnungswidrig 2020-12-16T10:30:51.420500Z

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!”

borkdude 2020-12-16T10:31:25.421400Z

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

slipset 2020-12-16T10:31:33.421600Z

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

ordnungswidrig 2020-12-16T10:31:39.421700Z

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 😛

ordnungswidrig 2020-12-16T10:32:10.422500Z

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

borkdude 2020-12-16T10:32:28.423300Z

liberator2 on top of ring2? async? :)

slipset 2020-12-16T10:32:29.423500Z

I hope namespaced kws are in there somewhere 🙂

ordnungswidrig 2020-12-16T10:33:05.424500Z

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.

thomas 2020-12-16T10:33:26.425400Z

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

ordnungswidrig 2020-12-16T10:33:34.425800Z

lol yes

ordnungswidrig 2020-12-16T10:33:48.426500Z

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

slipset 2020-12-16T10:33:51.426700Z

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

borkdude 2020-12-16T10:34:15.427800Z

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

ordnungswidrig 2020-12-16T10:34:17.428Z

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

borkdude 2020-12-16T10:34:27.428600Z

I used liberator in one of my first commercial CLJ projects

ordnungswidrig 2020-12-16T10:34:51.429400Z

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

slipset 2020-12-16T10:35:41.431100Z

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.

ordnungswidrig 2020-12-16T10:35:56.431500Z

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)

borkdude 2020-12-16T10:36:29.432200Z

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

slipset 2020-12-16T10:37:26.434Z

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

ordnungswidrig 2020-12-16T10:37:30.434100Z

@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.

ordnungswidrig 2020-12-16T10:38:24.435900Z

I still want to explore the “resource” abstraction more. But on the other hand, honestly, most of the HTTP implementations nowadays are RPC (swagger putting this into the spotlight very much)

slipset 2020-12-16T10:38:26.436Z

@ordnungswidrig it’s a very impressive first clojure project. And a successful one as well. You should be proud.

👍 2
borkdude 2020-12-16T10:38:41.436500Z

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

borkdude 2020-12-16T10:38:59.437100Z

and json-schema centric

ordnungswidrig 2020-12-16T10:39:08.437400Z

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

ordnungswidrig 2020-12-16T10:39:42.438200Z

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

borkdude 2020-12-16T10:40:10.438600Z

good point

slipset 2020-12-16T10:40:14.438900Z

@ordnungswidrig Now imagine taking on aleph and manifold…

ordnungswidrig 2020-12-16T10:40:25.439100Z

exactly!

ordnungswidrig 2020-12-16T10:41:01.439700Z

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

ordnungswidrig 2020-12-16T10:41:13.440Z

Holy cow, that’s already 5 years ago?

ordnungswidrig 2020-12-16T10:42:24.440600Z

I still had boring hair.

😬 1
slipset 2020-12-16T10:42:55.441300Z

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

👍 1
borkdude 2020-12-16T10:43:57.442700Z

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.

borkdude 2020-12-16T10:45:54.443600Z

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

ordnungswidrig 2020-12-16T10:48:12.446200Z

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.

ordnungswidrig 2020-12-16T10:48:27.446600Z

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

borkdude 2020-12-16T10:49:49.447200Z

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

🚰 2
borkdude 2020-12-16T10:50:38.447800Z

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

ordnungswidrig 2020-12-16T10:54:49.448600Z

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

1
ordnungswidrig 2020-12-16T11:06:07.448700Z

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.

borkdude 2020-12-16T11:06:48.449100Z

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

ordnungswidrig 2020-12-16T11:06:55.449300Z

That’s actually true.

ordnungswidrig 2020-12-16T11:07:27.449600Z

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

ordnungswidrig 2020-12-16T11:07:57.449900Z

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

borkdude 2020-12-16T11:07:58.450100Z

mine too ;)

borkdude 2020-12-16T11:08:34.450300Z

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

borkdude 2020-12-16T11:09:04.450500Z

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

borkdude 2020-12-16T11:10:19.450700Z

Anyway, my accountant is on this

borkdude 2020-12-16T11:10:36.451Z

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

borkdude 2020-12-16T11:12:13.451200Z

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

borkdude 2020-12-16T11:12:28.451400Z

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

borkdude 2020-12-16T11:12:38.451600Z

This is the Sheldon Cooper in me

slipset 2020-12-16T12:19:47.453500Z

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.

slipset 2020-12-16T12:20:10.454100Z

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

slipset 2020-12-16T12:22:00.454900Z

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

borkdude 2020-12-16T12:24:57.457300Z

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

plexus 2020-12-16T12:25:24.457500Z

Morning!

1
👋 3
mpenet 2020-12-16T12:35:29.458Z

the jdk has a simple http server too

mpenet 2020-12-16T12:36:00.458700Z

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

mpenet 2020-12-16T12:37:27.459100Z

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

borkdude 2020-12-16T13:04:22.460200Z

com.sun packages are not meant for public consumption afaik

mpenet 2020-12-16T13:06:51.460700Z

it depends. netty for instance will happily use them

mpenet 2020-12-16T13:07:20.461300Z

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

borkdude 2020-12-16T13:09:21.461900Z

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

1
plexus 2020-12-16T13:17:32.464800Z

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?

plexus 2020-12-16T13:19:08.465800Z

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.

borkdude 2020-12-16T13:24:36.466600Z

GraalVM might not have some of these things

thomas 2020-12-16T13:24:43.466900Z

I think IBM has adopted OpenJDK with its J9 implementation.

borkdude 2020-12-16T13:24:46.467100Z

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

thomas 2020-12-16T13:25:19.467800Z

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

ordnungswidrig 2020-12-16T13:42:06.467900Z

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

ordnungswidrig 2020-12-16T13:42:20.468100Z

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

2020-12-16T14:00:41.469200Z

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

dominicm 2020-12-16T14:20:59.470Z

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