2017-01-11
| 00:26 | foobar_ | hello, how do you implement a threaded code interpreter without tail call? |
| 00:27 | foobar_ | as far as i see recur is only for recursive tail position.. |
| 01:40 | uberdan | exit |
| 01:40 | uberdan | exit |
| 03:05 | Hanonime | Hola |
| 03:05 | mavbozo | halo |
| 03:05 | dysfun | yo |
| 03:07 | Hanonime | how 'r'y'all in this fine morning ? |
| 03:08 | dysfun | i was sat down for a few seconds when i got your message |
| 03:08 | dysfun | so tired as |
| 03:13 | Hanonime | rough night ? |
| 03:13 | dysfun | no, just rough morning. most mornings are |
| 03:15 | mavbozo | rough morning a couple hours ago because I slept late and have to get up early |
| 03:17 | Hanonime | have a bit of trouble starting work myself |
| 03:20 | dysfun | i do every morning |
| 03:20 | dysfun | that's why i sit in here and read the internet for a couple of hours before doing anything |
| 03:24 | deadghost | listening to trance music works very very well for me to kickstart work |
| 03:25 | dysfun | I can't really. i only have shit earphones any my partner is in bed sleeping |
| 03:26 | deadghost | I used cheapo $30 headphones |
| 03:26 | deadghost | sound is great, not comfortable for 12 hour code sessions |
| 03:27 | dysfun | most of my code is written during long sessions |
| 03:31 | Hanonime | for certain programming tasks, music is a real boost |
| 03:31 | deadghost | it's the only way I can do long sessions without getting distracted |
| 03:32 | Hanonime | but then you need the right kind of music |
| 03:33 | Hanonime | sometimes i listen to atonal music because it's very good for putting distractions away, although it's shit if you try to enjoy it |
| 03:33 | fantazo_ | music is also a helpful blanket against colleagues noise. |
| 03:34 | Hanonime | i work a lot at home, it's very quiet, too quiet sometimes |
| 03:36 | deadghost | would be nice to upgrade to a nicer pair of headphones one day |
| 03:37 | deadghost | very important piece of equipment |
| 03:38 | Hanonime | go for Ath-M50X if you can treat yourself |
| 03:39 | deadghost | Hanonime, shooting to get that in 4 months if I make it back home |
| 03:39 | deadghost | and have a bit of extra money |
| 03:40 | deadghost | my current pair is already falling apart |
| 03:40 | deadghost | need to position the wire just right otherwise one side doesn't work |
| 03:41 | deadghost | head strap is gone |
| 03:41 | dysfun | yeah it's no fun being broke is it? |
| 03:41 | deadghost | I wake up every morning wishing for death |
| 03:42 | dysfun | we only really do code, not MH advice |
| 03:42 | Hanonime | MH ? |
| 03:42 | dysfun | mental health |
| 03:43 | deadghost | dysfun, funny enough my code productivity has never been higher |
| 03:43 | dysfun | because you're making long sessions to sit down and hack |
| 03:43 | dysfun | btw, i figured out that datomic question yesterday |
| 03:44 | deadghost | right |
| 03:44 | deadghost | what's the answer |
| 03:44 | dysfun | you use :db.unique/value instead of :db.unique/identity |
| 03:44 | Hanonime | i think programmers are more prone to have MH issues than the average |
| 03:44 | dysfun | and then it will just do the right thing |
| 03:44 | Hanonime | well, maybe not mathematicians |
| 03:45 | deadghost | I can't stop reading MH has men's health |
| 03:45 | dysfun | Hanonime: certainly is. i used to make a point of speaking about mental health at programming conferences, but i just don't even go anymore |
| 03:45 | deadghost | dysfun, got a link where I can read more about that? |
| 03:46 | deadghost | oh I think I found it |
| 03:46 | dysfun | it's the 'schema' page on the datomic site |
| 03:47 | dysfun | does anyone know if nikitonsky ircs anywhere? |
| 03:47 | deadghost | "Attempts to assert a new tempid with a unique value already in the database will cause an IllegalStateException" |
| 03:47 | deadghost | ok so you try catch the exception and handle it from there yeah? |
| 03:48 | dysfun | yes |
| 03:48 | dysfun | obviously you can't add a user if they exist, so you just tell the user that |
| 03:48 | deadghost | alright I'll put that in my do eventually list |
| 03:58 | dysfun | hrm, ekmett says "i tend to write large quantities of code before attempting to compile". I do that too, makes me feel slightly better |
| 03:59 | deadghost | ? |
| 03:59 | deadghost | I mean |
| 03:59 | deadghost | you eval in the repl right? |
| 03:59 | dysfun | i just write code and eventually try and run it most of the time |
| 03:59 | dysfun | only when debugging or i'm not sure of something |
| 04:00 | deadghost | no I need that interactivity |
| 04:00 | dysfun | i don't. while i find it annoying tidying up the bugs afterwards, it's not as annoying as losing flow |
| 04:00 | deadghost | a tiny bit more discipline up front to prevent possible headaches 30 minutes down |
| 04:01 | deadghost | eval is part of my flow |
| 04:02 | dysfun | basically, waiting for things to come back stops my braining |
| 04:09 | dysfun | that's why i'm so big on speeding up dev workfow |
| 04:09 | deadghost | dysfun, tooling is essential |
| 04:10 | deadghost | I still have a lot of speed bumps |
| 04:10 | dysfun | don't we all |
| 04:10 | deadghost | I thought emacs + evil would get me super super fast |
| 04:10 | dysfun | i've tried to move things around to focus on delivering more often |
| 04:10 | deadghost | and it did |
| 04:10 | deadghost | but I only found more bumps |
| 04:10 | dysfun | so i've been tackling simpler problems that can be used in combination to tackle other things |
| 04:11 | dysfun | for example i made a bunch of updates to my spec library yesterday and threw away a lot of code in some other libraries |
| 04:11 | deadghost | cljr also could be better |
| 04:11 | deadghost | find-usages takes forever |
| 04:11 | dysfun | to get the sort of performance we like requires proper integration |
| 04:12 | deadghost | my hardware is also choking up sometimes |
| 04:12 | dysfun | which is in general something clojure does terribly, because we like small libraries that do one thing well |
| 04:12 | deadghost | need more ram and a ssd |
| 04:12 | dysfun | but it's still early days |
| 04:13 | deadghost | small libraries made getting started with web dev a pain |
| 04:13 | dysfun | yes |
| 04:13 | deadghost | now it's *mostly* smooth sailing |
| 04:13 | dysfun | a few of us are trying to tackle that one |
| 04:13 | dysfun | i still point people at luminus to get starterd |
| 04:13 | deadghost | well it's been 10 years |
| 04:13 | deadghost | I suppose that's still early |
| 04:13 | deadghost | certainly not the golden age |
| 04:13 | dysfun | sure. and how many people from here do you think were here ten years ago? |
| 04:14 | dysfun | there are enough libraries to do most things now, which is great |
| 04:14 | deadghost | when I started |
| 04:14 | dysfun | now is a great time to focus on creating an integrated experience |
| 04:14 | deadghost | the lib ecosystem was already pretty good |
| 04:14 | deadghost | 2-3 years ago |
| 04:14 | dysfun | when i started, it was okay. the documentation was generally terrible |
| 04:15 | deadghost | cljs is definitely early days though |
| 04:16 | deadghost | I still don't quite have the hang of it |
| 04:16 | deadghost | and having a concoction of cljs deps that worked was a pain for me when I got started |
| 04:17 | deadghost | seemed to have stabled out a bit |
| 04:18 | dysfun | oh yes, libs did not work well together in the early days of cljs |
| 04:18 | dysfun | i haven't had a problem in ages though |
| 04:18 | dysfun | not to say cljs is without its problems today, but it's much better |
| 04:18 | deadghost | it is |
| 04:18 | deadghost | at least we can all kinda agree on figwheel |
| 04:19 | deadghost | jumped through 2-3 other brepls before figwheel |
| 04:20 | dysfun | oh i'm back to boot-reload, which now uses figwheel-sidecar |
| 04:20 | deadghost | I never tried boot |
| 04:20 | deadghost | lein just werks |
| 04:21 | dysfun | boot definitely does not 'just work', but it's powerfu |
| 04:24 | mavbozo | fighwheel just works through leiningen repl |
| 04:24 | dysfun | except when it gets confused |
| 04:25 | deadghost | I actually haven't been using the actual repl |
| 04:25 | deadghost | and just modifying the file |
| 04:31 | mavbozo | yeah, that confusing part in the repl. sometimes when I evaluate something it says symbol not found and at the same time return the result |
| 05:14 | justin_smith | foobar_: you can use trampoline for that |
| 05:15 | justin_smith | foobar_: the fundamental limitation is that goto in the jvm can only jump within a single method, and recur is a goto, but trampoline allows ditching the previous stack frame and starting a new one (instead of going deeper) |
| 05:59 | dysfun | justin_smith: "but how do they work?" |
| 06:00 | justin_smith | dysfun: it's a while loop that calls your return value with no args as until it's not a function any more |
| 06:03 | dysfun | :o |
| 06:03 | dysfun | such dynamic. very webscale |
| 06:03 | justin_smith | dysfun: the source of trampoline is remarkably simple and readable, in fact |
| 06:03 | dysfun | despite being written in java? |
| 06:03 | justin_smith | it's clojure! |
| 06:03 | dysfun | ooh |