Fork me on GitHub
#off-topic
<
2018-05-03
>
qqq00:05:26

if you need to write high performance code that runs on JVM and JS, is Kotlin the best approach ?

gklijs03:05:16

@qqq I don't think Kotlin performance is much better then clojure, but it might be in some cases. But I did some research about Kotlin to JS but it seems hardly used, and the tooling is no where near what you get with clojurescript. I would guess it's probably best to write the part which needs high performance in rust, and compile to c for JVM, and to wasm for JS.

qqq04:05:55

@gklijs: thanks for the insight on Kotlin / JS. I just worked through a Kotlin-JS tutorial, and came to a similar conclusion -- the tooling does not appear as impressive as CLJS. The code output is almost a straight forward rewrite of Kotlin.

gklijs06:05:51

@qqq there is kotlin-react which is also fast to setup, but it's basically just a kotlin typed wrapper over react.

3Jane07:05:31

So I’ve been thinking

3Jane07:05:40

(to change the subject completely)

3Jane07:05:16

Creatives have various “let’s do stuff together and review it together” groups. You know, writer’s groups, artist support circles, whatnot.

3Jane07:05:28

Is there an equivalent for software devs?

WhoNeedszZz07:05:14

Good question

WhoNeedszZz07:05:14

I'm not aware of any and considering how difficult it is just to try and see if anyone is interested in helping you on a side project I don't think so

3Jane07:05:17

Conversely, I was interested in helping people on side projects and didn’t see a way to find something ¯\(ツ)

WhoNeedszZz07:05:07

Haha, well I happen to be looking for help on a potential project

3Jane07:05:09

What do you think is the reason for people not interested in helping?

3Jane07:05:24

Or groups, etc

WhoNeedszZz07:05:28

Good question and I'm sure it's not a simple answer

WhoNeedszZz07:05:52

My guess is that people see it as a considerable time investment and look at it as a ROI type situation

3Jane07:05:04

I was thinking people wanted to make a name for themselves because all personal project presentations I’ve seen were “brags”… but then so do writers and artists.

bronsa11:05:56

I think it's more of being proud of the results of all the work you've put into something and wanting to show it to people than "bragging"

3Jane11:05:38

that’s why I put bragging in quotes 🙂

3Jane11:05:30

but that is bragging. it’s just that bragging has a negative connotation

bronsa11:05:41

yes! exactly :)

bronsa11:05:21

I don't think there's anything wrong with being proud of your work and wanting to talk about it -- calling it "braggin" makes it feel like a negative thing but I see you didn't mean it that way

bronsa11:05:05

I actually really enjoy talks from people talking about the stuff they've built/are proud of, it's much more interesting and engaging to me when the speaker is clearly passionate about what they've done

3Jane11:05:26

So do I - which is why I’m looking for more 🙂 I’d be very interested in a local event of that type

bronsa11:05:56

we do have threads in the reddit group and in clojureverse from time to time about "what have people been working on this week" btw

3Jane11:05:24

I’ve seen those, I’ll post when I’m doing something Clojure specific

3Jane11:05:08

(right now I’m wrapping up a toy that is functional programming inspired but not actually in Clojure)

3Jane11:05:55

but also “local” because I’ve noticed that to me talking to people makes a great (positive) difference over only communicating online

4
bronsa11:05:59

sounds fun! I'd love to see that, I've done quite a bit of PLT myself

3Jane11:05:33

heh, be careful what you ask for

3Jane11:05:20

https://github.com/ir-regular/itinerant <- graph traversal library that can also be used as a DAG task executor. Next on the list: add some larger examples and rework the docs (…as always).

3Jane11:05:46

(It uses itself to read code from a stream - not necessarily the most efficient approach but it’s a toy, I wanted to see if I could make it do so - and then also to validate the provided AST. Lisp leaves a mark on you.)

bronsa11:05:59

hehe I remember doing (well, trying to) do some non trivial metaprogramming in php almost a decade ago when I was starting out, after reading sicp

bronsa11:05:23

thanks! the abstract looks really interesting

bronsa11:05:28

it sounds like something I've actually been thinking about quite a lot for implementing better compilers

3Jane11:05:06

heh, yeah. it got a lot better in those 10 years 🙂 they’ve stolen enough nifty things that I keep borrowing mental patterns from Clojure and getting annoyed when they almost work

bronsa11:05:33

yeah I was just looking at the code and it looks nothing like the php 5.2 I remember :)

3Jane11:05:00

(like, array destructuring works, but not in function argument declaration. Conversely, you can have the equivalent of &rest but only in arguments, not normal destructuring)

bronsa11:05:11

simple_smile my nick is not hard to google

bronsa12:05:29

thanks a lot for that paper btw, I'm skimming through it and it seems to tackle exactly what I've been thinking of for a next iteration of a clojure in clojure compiler

3Jane12:05:25

…tell me more 😄

bronsa12:05:36

feels like it has some connections to spec too?

bronsa12:05:35

I think I talked about this idea in my cognicast chat with tim baldridge but essentially what I eventually want to do is decomplect the analysis phase from the macroexpansion phase

3Jane12:05:51

if you’re thinking of AST wrangling, I have a couple more papers to recommend - currently working on a federated database/query optimiser thing of sorts and this was one of the early subjects to research

bronsa12:05:02

which is not hard per se, but I also want to extract the traversal structure of each special form to avoid having to reimplement it twice

bronsa12:05:17

another completely different approach I've been thinking of tackling to solve the same problem would be "self-healing/computing" ASTs, in the vein of https://13a75b74-a-62cb3a1a-s-sites.googlegroups.com/site/umutacar/publications/ruy-thesis.pdf

bronsa12:05:15

please! if you have papers to suggest that are even tangentially related I'd love it if you sent them my way

3Jane12:05:29

(the last one has some interesting references in it as well, but I haven’t tracked them down yet)

3Jane12:05:33

what do they mean self-adjusting? adjusting in response to what?

bronsa12:05:15

essentially by "self-adjusting computation" they mean data structures that behave very efficiently like a spreadsheet

bronsa12:05:34

Imagine writing an AST using that style, then starting to do type inference on a local and the type information gets automatically propagated outwards after just specifying the type inference algorithm rather than concretely updating nodes

bronsa12:05:50

Ideally if you could write a generic version of this data structure where the update logic is pluggable then you get a sort of generic "recipe" for tree traversal/update that is guaranteed to be self-consistent

3Jane12:05:18

that’d be an inference engine, no?

bronsa12:05:43

yes! but I'm using "type inference" just as an instance of a traversing + updating logic

bronsa12:05:53

it could be macroexpansion

bronsa12:05:02

or tree optimization

3Jane12:05:30

my boss just came back from lunch so I have to start looking like I’m working

3Jane12:05:00

how about a #{:beer :cider :coffee :other} sometime over the weekend and talk more about that?

bronsa12:05:51

sure! unfortunately I had to fly back to italy yesterday due to family issues but I'll be back in London next saturday

bronsa12:05:48

if you're nearby london we could grab something sometime after that

3Jane12:05:57

I’m sorry to hear that 😞 hope things work out

3Jane12:05:24

Next weekend sounds good! I’ll catch up on reading in the meantime XD I live in London 🙂

3Jane12:05:00

(also: “data structures that behave very efficiently like a spreadsheet”: dataframes. I have been missing a PHP-dataframe so badly, it’s on the list of “toy” things after itinerant)

WhoNeedszZz07:05:25

Not sure what you mean

3Jane07:05:01

Wow, this is hard to explain without sounding ugly

3Jane07:05:23

People like to be admired for what they produced. You’ll find a drive for fame with every artist.

WhoNeedszZz07:05:00

I would agree with that

WhoNeedszZz07:05:43

Now the question is would someone creating a side project to put as a project on their resume be in the same classification?

3Jane07:05:09

Well, that depends. Is the goal to get you a job and then discard the project? Then no, it’s not.

WhoNeedszZz07:05:45

Discard meaning what exactly?

3Jane07:05:09

Not work on it anymore or have emotional involvement because you already achieved your goal (job)

WhoNeedszZz07:05:33

What if your goal is to get a job, but also design software that you would use and thus maintain?

3Jane07:05:35

On the other hand, if more people “liking” it and talking about it and using it would give you extra motivation to work on it further then it does fall into the classification.

WhoNeedszZz07:05:01

Interesting. I wouldn't agree with that

3Jane07:05:42

(sorry, cut a sentence in half and it looked like I was responding to you with the other half - but I wasn’t)

WhoNeedszZz07:05:56

ha except now my response doesn't make sense

3Jane07:05:09

Software that you use and thus maintain also doesn’t fall under it, because you don’t need to opensource such software.

3Jane07:05:25

Gah, async communication 😄

WhoNeedszZz07:05:27

You don't need to, but you could

3Jane07:05:35

Yes, sure

WhoNeedszZz07:05:47

If it's not OSS you can't really show it on a resume

WhoNeedszZz07:05:56

Only the end result

3Jane07:05:18

Yeah, I’m just trying to point at separate goals / what you get out of it

WhoNeedszZz07:05:44

So i'm curious your motivation for asking the initial question

3Jane07:05:46

You can do a thing because it gets you a job. You can do a thing because you use it. You can do a thing because it gets you status. You can do a thing because it helps you learn.

3Jane07:05:41

Re motivation, pretty much what you’d expect 🙂

3Jane07:05:08

I’d like to make contacts with the local community of people who actually enjoy making things. I’ve recently written a thing myself, but I have no idea how to get feedback about it. Based on previous experiences with (pen and paper) game designers, the way to do so is to help other people with their stuff first.

WhoNeedszZz07:05:00

Makes sense to me 🙂

valerauko08:05:12

if you're interested in contributing to OSS i'm sure basically any project on github will gladly welcome any help

3Jane08:05:19

“is OSS” and “is open to contributions” and “developer is going to reciprocate” are not fully overlapping categories because they increase in time investment.

3Jane08:05:05

“is OSS” basically means “I made a thing, look.” “is open to contributions” means the dev/s will actively take time to review said contributions. “is going to reciprocate” means the dev/s will take time to review said contributions, and also take time to review / contribute to someone else’s project.

3Jane08:05:25

So if I were to join an OSS project, which I will eventually, I’m probably going to look at the larger and more established ones. These guys don’t have time for option 3 🙂 so that’s why a local writer’s circle equivalent would be more appropriate.

3Jane08:05:35

(Basically, how do people ever get better?!)

WhoNeedszZz08:05:21

That's a dramatic over-simplification

valerauko08:05:21

i see your point but i don't think bigger projects will give you better results

3Jane08:05:03

Not with regards to people helping me out, but that’s for different reasons: larger projects can show you how to deal with things at a different scale than a single-person project.

valerauko08:05:12

tiny teams of just a few people are the level imo where you can establish personal relationships where you can ask favors of each other

valerauko08:05:42

larger projects seldom do that in the open. issues/prs are just references to irc/basecamp discussions that are concluded off sight

WhoNeedszZz08:05:47

I would agree with that

WhoNeedszZz08:05:26

Which is then ironic that it is so difficult to find help

valerauko08:05:40

people only contribute to stuff they're either legit interested in, or have an interest in fixing

valerauko08:05:02

most i see are people fixing bugs that cause THEM trouble

👆 4
WhoNeedszZz08:05:06

So back to the basic human characteristic of self-interest

valerauko08:05:17

don't go out of their way to fix bugs others are having trouble with

valerauko08:05:38

it's the free time of people after all

valerauko08:05:42

when to be selfish if not then

WhoNeedszZz08:05:03

So screw the greater good then, eh?

valerauko08:05:59

as for open source projects you're not paid to work on, yes.

WhoNeedszZz08:05:11

So again, self-interest

valerauko08:05:09

which is why you either need people to get interested in your project (which is pretty difficult) or establish relationships where you can ask them to devote some of their time for you

WhoNeedszZz08:05:29

So basically people suck

WhoNeedszZz08:05:25

And how do you establish relationships where the default is to be hostile to helping without pay?

WhoNeedszZz08:05:49

Or some other self-interest

valerauko08:05:14

you go in instead of waiting for others to come to you

WhoNeedszZz08:05:45

That would be a huge waste of time if the project requires multiple people to be sucessful

WhoNeedszZz08:05:58

Which the majority do

valerauko08:05:30

put in a very mean way, consider it an investment

WhoNeedszZz08:05:43

I mentioned that before you joined in

WhoNeedszZz08:05:07

Which is a nice way of saying people are selfish

WhoNeedszZz08:05:43

"If I don't directly and immediately benefit from this it isn't worth my time."

WhoNeedszZz08:05:47

So to try and help this, I created a channel to seek help or offer it here - #side-project-help

andy.fingerhut10:05:17

@whoneedszzz Are you trying to advocate for people working on projects that they have no personal interest in?

WhoNeedszZz10:05:33

I'm not sure what you're asking

andy.fingerhut10:05:17

Not sure if you are bemoaning or celebrating the common occurrence that people don't often work on things that they don't get some benefit from.

WhoNeedszZz11:05:49

Neither. We were discussing why it is so difficult to find help for a side project.

seancorfield17:05:47

Re: motivation and OSS -- I've contributed to a lot of open source projects over the last 25+ years and they basically fall into two categories: they are interesting/scratch an itch, or they are something I'm already using in another project (usually at work)... or at least something I want to use and my involvement might make them more suitable for use in another project.

seancorfield17:05:50

The itch-scratching projects tend to get discarded once sufficient scratching has occurred -- although, very occasionally, such projects garner users and then I'm on the hook to actually maintain the project for... years, potentially...

seancorfield17:05:10

(in another tech, I created a minimal MVC framework to scratch an itch back in 2009... and it became one of the two most popular MVC frameworks for that tech... and I'm still maintaining it, nine years later! -- even tho' I no longer use that tech 🙂 )

jgh17:05:04

how do you usually deal with the at work contributions considering how sensitive a lot of companies are to IP?

jgh17:05:26

(although i guess if ‘at work’ for you == your own company then the question is moot)

jgh17:05:13

i ran a popular-ish livestreaming oss project a few years ago, although ended up having to archive it due to ip considerations when my startup got funding and so on…anyway i really enjoyed doing it and occasionally would get enthusiastic contributors. My biggest takeaway was that it was mostly a really good lead generator for consulting. If you have a project that solves a problem for people, obviously. Random code on Github doesn’t do much for you.

WhoNeedszZz17:05:27

Exactly why I'm trying to find help to work on a meaningful project

seancorfield18:05:03

@jgh I only work for companies that allow employees to continue to work on OSS 🙂

jgh18:05:20

ah, well that’s pretty good then!

jgh18:05:33

companies get too carried away

seancorfield18:05:54

It was one of my issues with Adobe, after they acquired Macromedia, where I'd worked happily for six years.

jgh18:05:19

dont tell me you’re one of the masterminds behind rtmp in addition to c++

seancorfield18:05:58

Nah, I was senior software architect for Macromedia's internal systems -- not for any of their products etc.

jgh18:05:57

ah gotcha

seancorfield18:05:10

Although I did spend a summer working on the Flash Player team, helping them with their ActionScript compiler test suite (because of my compiler background).