Fork me on GitHub
#off-topic
<
2018-05-06
>
soulflyer02:05:58

Something I found helped was not letting my fingers curl as I slept. Did this by putting both hands under my pillow, fingers extended. Weight of my head keeps them that way. It's not a complete solution, posture while typing needs to be sorted too, but for me it was a pretty effective way to relieve the symptoms while working on better posture.

arrdem03:05:09

One thing that was super meaningful for me when I changed jobs was going from a light walk for a commute to a daily 3mi bike ride I can really sprint. Getting that daily activity has been huge for generally feeling better.

arrdem03:05:28

Wasn’t why I made the change, but it’s definitely been a benefit

seancorfield03:05:51

Yeah, that is definitely one of the downsides of working from home -- no commute at all.

arrdem04:05:43

I don’t think I’d choose to work from home again unless I had really meaningful / consistent out of the house commitments. Not mostly leaving the house for an entire summer during GSoC wasn’t great.

arrdem04:05:11

But it definitely beats an open office in terms of balance / being able to put my head down on things.

seancorfield05:05:11

I've worked from home pretty much full time for a decade now. I would never go back to working in an office. But the downsides are important to keep an eye on.

borkdude10:05:51

1.5 years now. I hope I can sustain this. Cannot stand offices.

qqq08:05:23

1. I know it is possible to get a REPL in Kotlin: see https://www.youtube.com/watch?v=wDkWaHYiLWk 2. This, however, is not the same as having a REPL based work flow, where you write some ode in editor, and send last expression / function to the REPL. 3. Question: is there a way to get a Kotlin/REPL based workflow ?

gklijs10:05:00

I’m afraid not, mostly because of the static typing and the like. Even for javascript kotlin it needs a whole rebuild each time..

tbaldridge13:05:45

And there's also the whole issue if even JS not being a repl

tbaldridge13:05:59

REPL = READ, EVAL, PRINT, LOOP

tbaldridge13:05:36

So let's say you do that in JS. What's read? What does it return? Can't be JSON, JSON isn't JS code it's data.

tbaldridge13:05:37

(fn repl []
  (print (eval (read stdin)))
  (repl))

tbaldridge13:05:32

is really only possible in homoiconic languages

qqq18:05:09

@U07TDTQNL : Do you consider shells (bash, zsh, ...) to be homoiconic ? Do you consider shells to have a REPL loop ?

tbaldridge18:05:12

Can they read their code and return it as data?

qqq18:05:08

To me, "Shell" and "REPL" mean the same thing; but clearly, in your mind there is a distinction. (I consider all AST representations to be "code as data").

tbaldridge22:05:55

Well, REPL means the name, it reads something, hands that directly to eval, hands the output directly to print, and loops

tbaldridge22:05:22

most languages, Python, Ruby, Kotlin, Java, miss several critical parts in that chain

tbaldridge22:05:29

At least ruby doesn't call it a repl

borkdude15:05:07

What license should I for a repo where I don’t really care if people use/change/redistribute it without attribution, but I don’t want to be held accountable?

bronsa15:05:53

public domain? like CC0 maybe

bronsa15:05:38

it's the more open license I know of that isn't the wtfpl

bronsa15:05:14

MIT requires keeping attribution doesn't it?

bronsa15:05:35

yeah >The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

bronsa15:05:20

I don't know why you wouldn't want it but..

borkdude15:05:24

And what if your material was inspired and borrows a few lines of code from 1) a project with a Mozilla license and 2) an Eclipse license. What should it be then?

bronsa15:05:09

no idea about the MPL but EPL requires keeping the original bits of code licensed under EPL, with the original attribution retained

bronsa15:05:29

looks like it's the same deal with MPL

borkdude15:05:49

how am I going to keep the original bits of code and include the original LICENSE, if I only used them as inspiration and they got lost into refactoring 🙂 maybe I’m overthinking it, I just went with MIT

borkdude15:05:13

Imagine you’re copying one 5-line function from another repo and change it

tbaldridge15:05:44

That’s a a weird area of licensing. Think of all the implementations or immutable collections that were inspired by Clojure and Rich’s work. Very few of them are still EPL

tbaldridge15:05:23

So I don’t know how all that applies to translation and adaptation of algorithms.

tbaldridge15:05:52

And it doesn’t help that so few of these licenses have been tested in court

bronsa15:05:12

@borkdude sorry I assumed you were talking literally about copying bits of code -- yeah that case is never so clear, usually if the bits of code are not identical or if they're trivial enough that there's not many other ways to write it, then people don't bother, but i have no idea if that's legal..

tbaldridge15:05:20

On that note this guy is still my hero

bronsa15:05:35

i personally wouldn't bother keeping an original license if the original code has only served as broad inspiration and no verbatim copy of the original appears anywhere in your history

bronsa15:05:53

but i'm not a lawyer :)

akiroz17:05:53

On the topic of REPL, interestingly I've been playing with Elixir lately and it does have lisp-like macros and code-as-data...... but it seems like the clojure repl workflow is not a thing in Elixir yet.

qqq20:05:59

@seancorfield: in https://github.com/seancorfield/boot-kotlinc is there a way to have boot-kotlinc inject the newly compiled kotlin classes into the repl ?

seancorfield20:05:00

@qqq Not sure what you're asking -- given that the README shows how to use "newly compiled kotlin classes" in the REPL...

qqq20:05:51

@seancorfield: Sorry, the question is: 1. I run "boot kotlinc repl" 23. I load HelloKt 3. I modify HelloKt 4. how do I reload HelloKt so REPL uses new HelloKt.kt ? === However, I'm currenlty stuck at step 2 -- where does "kotlinc" put HelloKt.class ? I have run Kotlinc, it appears to work fine, but I can't find teh calss file (neither can the repl)

seancorfield20:05:21

As is typical with Boot, you need the target task in the pipeline for the fileset to be written to disk.

qqq20:05:32

more specifically, assuming I have "src/kt/HelloKt.kt" and I run "boot kotlinc"

seancorfield20:05:35

(well, written to a non-temporary fileset).

qqq20:05:44

oh right, thanks

qqq21:05:49

I now have "target/HelloKt.class", however (import HelloKt) gives me "java.lang.ClassNotFoundException: HelloKt"

qqq21:05:03

This sounds like a problem with my boot setup for classpaths.

seancorfield21:05:15

Because target is not on your classpath -- it never is.

tbaldridge22:05:50

@qqq before you put too much more work in, I would suggest thinking about what he end result you're looking for is

tbaldridge22:05:19

Kotlin isn't really a language designed to be hot-reloaded. So the end experience of loading classes in a shell is going to be much worse than in Clojure

tbaldridge22:05:15

None of these other languages do true class swapping, they simply create a new class with the same name, so all those protocol/deftype issues you mentioned the other day? Kotlin will have those as well, maybe worse depending on how it links classes (no vars in kotlin that I'm aware of)

tbaldridge22:05:04

Might just be better to use the workflow recommended by kotlin (whatever that is)