Fork me on GitHub
#off-topic
<
2019-06-23
>
seancorfield20:06:04

As someone who “grew up” with Usenet and IRC, it still completely blows my mind that I can now publish a half hour screencast of me working on a programming problem in an editor and 24 hours later, 100 people around the world have watched it… Get off my lawn! dusty_stick

😅 4
😁 8
seancorfield20:06:31

Yeah, I saw that thread yesterday. For any language hosted on the JVM, I think folks with a slow laptop and a poor Internet connection are excluded — at least from a “zero to… in 15 minutes”. Even with the JVM already preinstalled, and Clojure’s libraries installed, you’re not going to get very far without external dependencies that rely on a fast Internet connection (for Maven/Clojars downloads). And trying to run anything on the JVM on a slow laptop is going to be a miserable experience. That applies to Kotlin, Scala, even just Java…

seancorfield20:06:53

I don’t know how you can get around that with anything on the JVM.

seancorfield20:06:40

As others suggested, there are smaller Clojure-related downloads if you’re willing to try something on the JS ecosystem (but, really, with those constraints, how is even Node.js a viable options?).

seancorfield20:06:48

There are websites for many languages that offer ways to try out code in a browser with zero download and zero install — but, again, with a poor 3G connection those are likely to be fairly miserable experiences too.

Aron20:06:02

I think you are right on all accounts here 🙂 I just say that you don't think I want to argue or something like that. maria.cloud/intro took 25 seconds to load when throttled, which I think was quite ok.

seancorfield20:06:13

Python’s probably the best option for someone in that situation — preinstalled on OS X and Linux (I think?), offers a lot of functionality “batteries included” without needing to download/install libraries. It’s also a nice language for beginners to learn/use.

Aron20:06:27

the best is js, you just open a browser console ...

Aron20:06:42

But my point - as you probably guessed - is not to show clojure as inferior to other languages...

seancorfield20:06:15

I don’t work with JS at all so it wouldn’t occur to me to suggest it. All my life I’ve been a server-side developer really.

seancorfield20:06:57

Good to know that maria.cloud isn’t too bad in that situation…

seancorfield20:06:02

But, yeah, I got started in the days when machines had very little memory, were very slow, and Internet was either non-existent or extremely slow (my first online experience, outside university, was dial-up at maybe 14.4k? And I had to pay per minute while I was connected). But in those days, systems came with C and that’s what you learned because that was (usually) preinstalled and low overhead and about as fast to run as you could get. Systems like the JVM were not even practical back then.

seancorfield20:06:59

For years I’ve used a development machine that has “only” 16GB RAM and with a typical modern JVM-and-services-based stack running locally, that really isn’t enough. My next development machine will have to have 32GB I expect.

seancorfield20:06:14

But my first “serious” computer at home had 1M RAM (in 8K chips) and a 20MB HD — and a 5 1/4" floppy drive. And no Internet at all. Luckily, it had Pascal “built-in” (UCSD p-System) so I could do high-level programming.

Aron20:06:24

here is the thing, when someone 1. makes a distinction between server and client side 2. then goes and says they never done client side .. I kinda immediatelly just go numb.. like how is that even possible. Client side is way harder than serverside unless you are one of those few who actually have to work on async stuff even on server side. I can imagine you being someone like that since clojure was specifically developed for this purpose, but its still a frightening concept to think about.

Aron20:06:50

yeah, i never picked up java because i hated how it used memory. i now have 32gb ram laptop, but still, i don't want to think about configuring jvm

seancorfield20:06:03

Times change, sometimes for good, sometimes not.

seancorfield20:06:12

“In my days”, when anyone said client/server, they meant a thick client application on one machine and a complex server elsewhere, with proprietary protocols between them.

seancorfield20:06:49

Back then, I did some client-side work — but it was in assembler and used SNA to communicate with the backend.

seancorfield20:06:51

So the client-side work I’ve done was extremely complex and very timing-sensitive…

Aron20:06:27

So not very different from today's complex UIs then? 🙂

seancorfield20:06:25

Indeed. And I’m in awe of our front end team at work who wrangle JS every day in massively-complex, completely asynchronous applications. And I tell them that often.

👍 4
Aron21:06:42

Is there something (a video perhaps? 🙂 ) that shows how to use this? https://github.com/seancorfield/dot-clojure

seancorfield22:06:15

LMK if you have specific questions after watching that.

Aron23:06:30

it's really great, lots of useful info. May I ask if you do anything special with the audio? Like have filters on it or any kind of processing?

Aron23:06:43

this video is a gem though, like I think you should pin it to some place where any beginner can see it well, it has most of the stuff I had no idea how to ask about even but are necessary for day-to-days things.

seancorfield23:06:19

Thank you. Perhaps I should pin it in #tools-deps which is where we normal direct folks who want to deep-dive on the CLI and deps.edn stuff?

seancorfield23:06:44

(and perhaps that channel should get renamed at this point — I’ll ask folks there about that)

seancorfield23:06:09

As for the audio, no, the whole thing is a live capture of the screen and audio by QuickTime Player on macOS, followed by an export to 1080p and then uploaded to YouTube. It takes ages to do the export/upload/processing but it’s simple (for me). I’m looking at livestreaming via Twitch soon, and publishing those sessions as videos but that’s still all “exploratory”…

seancorfield23:06:29

So the audio is just “me” 🙂

Aron23:06:30

no, I mean, like people who just start with clojure should see this or something similar. Like this page https://clojure.org/guides/deps_and_cli

Aron23:06:59

but the video is better, this page got me all confused with lots of not very important specific details

seancorfield23:06:50

Interesting. I think that guide is pretty straightforward and my video certainly isn’t intended to be introductory in that same way. If I was looking at getting a video linked from that guide, I’d want it to start with the bare bones of deps.edn and spend more time on demos, rather than talking about what is in my dot clojure file…

Aron23:06:00

I was assuming that you dont do post processing on it because it has some distortion at high frequencies which at time combine with your tongue clicking can be distracting. Nothing major or disturbing, just thought to mention it, I think for stuff like this it doesn't matter if the bitrate is less, if it's optimized for human speech frequencies

Aron23:06:24

this always bothered me in clojure. there is a lot of documention then there is a gap, and then there is what actual clojure developers do. I am much more interested in your workflow and the tools you find useful and why do you find them useful than your ideas of what you think I should learn first... 🙂 If you don't mind my blunt honesty 🙂

seancorfield23:06:46

Like I’ve said, I’m totally new to A/V stuff and that is only my second ever screencast, so I’ve really no idea how any of that stuff (filters, post-processing, etc) works — and it’s not something I care to spend time learning since none of it relates to what I actually enjoy doing (or get paid to do). I just did these three screencasts coz’ folks kept asking.

seancorfield23:06:32

I hear you on the docs. What we have on http://clojure.org today is night-and-day improved over what we used to have. And it’s on GitHub so “anyone” can propose improvements.

Aron23:06:58

Thank you for doing them, I don't think I found anything as useful as this video you just linked me for clojure as of yet... so please don't see any comments from my part as a critique of your work here.

Aron23:06:37

http://clojure.org is really good, I have to admit. I used to not like it because it didn't have much on it, but now it's more like it has 'too much' if that's possible 😄 anyway, really good.

seancorfield23:06:49

For a long time, the only people using Clojure were experienced devs in other languages, who were very motivated to learn and use a new technology. It’s only been the last few years where there’s been an influx of newer developers and even Clojure-as-a-first-language developers so things are shifting around slowly.

seancorfield23:06:54

Documentation is hard. Writing and organizing good documentation is harder than writing and organizing good software, IMO.

Aron23:06:20

It is so weird, how inverted we think.

Aron23:06:36

you say people who used clojure were experienced devs who were motivated...

Aron23:06:12

i saw this . and for 6 years i have been complaining about it, in fact I remember once misunderstanding you wrote something online because it fit this particular narrative too well 😄

Aron23:06:19

I don't see how it's not obviously elitist to exclude anyone who appears to have less motivation or less experience? Excuse me if it's a too harsh word, perhaps someone who knows English better than me could formulate it better...

seancorfield23:06:13

I think it’s an interesting question to ask who should create things that do not benefit them, so that other people who would benefit don’t have to create those things?

seancorfield23:06:40

No one considered the early adopters of Clojure to be “elitist” until more junior developers tried to adopt Clojure and complained about the poor documentation — and this goes back to the issue of “entitlement”: complaining that that something someone built for free isn’t “good enough” and that someone should spend more time and effort creating additional stuff, for free, that benefits the complainer instead of the creator. And that time and effort is taken away from working on the core of the thing itself.

seancorfield23:06:00

In other words, there are two sides to this coin and the people on each side have different needs, different priorities, and often different expectations.

seancorfield23:06:23

There have been quite a few conference talks lately on the “burden” of being an OSS maintainer and how hard it can be to deal with the expectations of users — some of whom petition very loudly for more of the maintainer’s time and effort. I can understand why some OSS maintainers decide to abandon their community and/or their project. Many users can seem very ungrateful about what’s been provided for free.

Aron23:06:22

'do not benefit them' is quite an assumption... has this shadow if idealism, bit as if competition would be the best and only way to achieve optimum efficiency (not saying you said this, only that I got reminded of this)

seancorfield23:06:07

And of course on that other side — the users who ask for better documentation or whatever — they feel that the maintainer is ignoring them or being elitist or whatever. And they often say “Well, if you want more people to use your project, you should do X, Y, or Z” and not all maintainers actually want to end up with a vastly popular project with tens of thousands of users. That can be a full-time job!

Aron23:06:23

and you misrepresent my position. I wasn't complaining about free lunch. I was complaining about people pretending that there wasn't a barrier. The pretense was bothering me, not the barrier. Of course it's hard to learn...

seancorfield23:06:53

I don’t really think anyone is “pretending there is no barrier”.

Aron23:06:21

not anymore, no 🙂

seancorfield23:06:30

I think some people feel the barrier is “reasonable” is various ways, or at least “reasonably surmountable” for enough people.

Aron23:06:34

and really, the barrier is way way way lower nowadays...

Aron23:06:51

after what I saw today, I 100% agree with that

seancorfield23:06:13

Yes, and generally it continues to get lower and lower. Time (and lots of effort by volunteers) will continue to improve the situation.

Aron23:06:49

here is one thing though, this constant reminder of how much people are not paid to do this

seancorfield23:06:30

Given the “entitlement” that a lot of people express, it seems important to repeat that reminder 🙂

Aron23:06:54

I feel it's a bit too much, considering that if everyone wanted to get paid for everything clojure would've gotten nowhere. It's very much an investment, even if you are not directly compensated

Aron23:06:59

if you think i express entitlement, it just shows that i am unable to express myself properly and clearly in english so you get confused. i am not entitled, quite the opposite, I don't think anyone should have any kind of titles, I usually ask people to not use Mr. and sir when talk to me...

seancorfield23:06:49

I’ve been producing OSS for 25 years or so. Has it been beneficial to my career? Sometimes, yes. Have I sunk a lot of my personal time and effort into it? Hell, yes. Has it been frustrating when users complain about it and “demand” better docs / more features / immediate bug fixes? Yeah, very frustrating. The ratio of creators to users has always been painful (for both sides).

Aron23:06:51

anyway, I appreciated your work before but today with this video this just grew, thanks again for this and for the interesting discourse. I need to go to sleep. it's 1am

seancorfield00:06:16

“entitled” meaning “expecting to be owed something”

seancorfield00:06:14

I produce an OSS library because it’s useful to me, or “scratches some itch” of curiosity. And now I have users who demand more/better docs, more features, faster bug fixes. Or who get really upset when I reject an issue (or, worse, a pull request) because I don’t think it fits with my vision of the project.

seancorfield00:06:30

That’s what I’m talking about with the “entitlement” of users.

seancorfield00:06:43

Anyways, good to chat! Catch you another day.

Aron06:06:38

🙂 I know what entitled means, I just have this theory that a person can't really be entitled without imagining themselves with a 'title', a pretense, a kind of 'rank'. They deserve something because of who they are (or what they feel, but that's the same thing in that moment). No one can be really entitled - or behave entitled, who believes that they are equal of others -> since in that case they wouldn't want others to do the work but rather they would do it themselves. But I didn't expect anyone to do the work for me, I spent lots of time trying and trying and only got back responses that if I can't do it I should spend more time on it... as if I had any, or that I am entitled, or that instead of complaining about not understanding, I should write the docs that would explain to me what I don't understand etc. All my complaints were about this attitude and the exclusivism of the clojure community that stem from it up until about 2-3 years ago when things started changing and nowadays nothing seems to be the same. And even then I tried to explain that I see this exclusivity not as something wished for or wanted in any way by clojurians, rather it is the unfortunate sideeffect of several decisions that were somewhat shortsighted and based on assumptions that were true for a few people who were building clojure, but not in general. The major one was the JVM. It did limit clojure to a niche and it still mostly lives in that niche, it's not really a universally useful language - although it technically would be just by its features. But the tooling is too limiting 😉 Another one was the way documentation was managed - mostly with hindsight. I bet there are still people who say to beginners to write docs. And then wonder why those docs are confusing. https://en.wikipedia.org/wiki/The_Blind_Leading_the_Blind blindingly obvious 😄