#tantekhello #social - just a heads-up that today's telcon is still contingent on Evan being able to make it to chair, as discussed in our 2017-07-11 telcon.
#csarvenI can't recall names now but I've come across even systems that are medium-like, posting at medium.com to announce their upcoming stuff. facepalm.
#rhiarocwebber2: Last week I was saying that I was held up by a language issue. I did a lot of work this week to try to resolve that. I needed help from the actual language a-
#cwebber2... I turned on airplane mode with my cheek
#ajordanZakim seems very confused, I didn't see aaronpk present+
#rhiarocwebber2: I figured out a way forward that involves shaving a different yak. It's almost entirely shaved and seems to be working. Tests uite should be up by the next meeting.
#Loqi[puckipedia] #239 mediaUpload: only post to outbox if it's a Create activity?
#rhiaro... There is one that's kind of really open for discussion, but I haven't done enough research on it yet
#rhiaro... I said I'd look at how twitter and other things were doing it to make sure we're doing the right thing, but I havne't had enough time to do that
#rhiaroajordan: I noticed that in all of our specs in the SotD it says send comments to the mailing list but that isn't really where we do things so I'm worried that if someone sends feedback to that address it won't get seen
#rhiaro... Seems that we should find out if we can change that technically/politically, and if so how. And if we can't then there's nothing to do.
#cwebber2ajordan: yeah but you gotta rewrite all your code into continuation-passing-style manually, whereas our language does that for you automatically
#cwebber2(that's what promises are btw: manual continuation passing style... which is an intermediate language form in many compilers)
#cwebber2which is also why they're so confusing to write ;)
#ajordancwebber2: yeah, that's very true! async/await syntactic sugar helps a lot with that though
timbl joined the channel
#cwebber2ajordan: yeah but you still gotta align your coroutines manually right?
#cwebber2iirc they're taking the same approach as in asyncio in python
#ajordanthat's actually one of the biggest things I was thinking about when I wrote https://twitter.com/strugee2/status/891193162122772480 - if I were to do JS again from scratch I'd make it so that it didn't syntactically distinguish between a scalar and a Promise (or really just thenable)
#Loqi[@strugee2] sometimes I'm tempted to make a language literally called YavaScript. it would basically smooth out JS' issues (cont.)
#ajordancwebber2: not sure I quite know what you mean by "align your coroutines manually"
#ajordanso basically async/await lets you do something like
#ajordanlet value = await getSomethingFromNetwork();
#cwebber2in python where you suddenly end up in the "two languages" problem; your old code can't be nonblocking without converting it all to coroutines, and your new code won't work nicely with code that isn't nonblocking
#ajordancwebber2: yes so when you call asyncOp() it will synchronously *start* an HTTP request, create a Promise object, and return the Promise. then yield to the event loop
#cwebber2so delimited continuations let you suspend a function chain at any point
#cwebber2and that's because the continuation passing style is still there, but it's baked in at the language level
#cwebber2so that makes io easy, but of course having multiple concurrent agencies communicating is also challenging, and that's where you either use Communicating Sequential Processes (this is what Go does) or Actors
#cwebber2those are the two big asynchronous models
#cwebber2you're passing in as an argument a function which is where you "return"
#cwebber2direct style can be automatically transformed into CPS
#cwebber2if your language supports it / is aware of it
#ajordanNode.js basically "solves" this on the human side just by making all the stdlib functions async by default (i.e. you have to explicitly opt in to sync operations)
#cwebber2it could have stored it for later execution, maybe after saving a file descriptor to the event loop
#cwebber2or it could have done any number of things
#cwebber2so this is powerful magic, but what's even nicer is that it has solid theoretical underpinnings, but your users don't have to understand it at all
#cwebber2they can just write code that's as straightforward as a normal blocking program
#ajordanI should play with The Little Schemer (which you suggested a while ago)
#cwebber2 - undelimited package up the whole state of your program in something you can call, but when you call it, the place you call it from throws away the whole state of its computation!
#cwebber2 - delimited instead are captured from a certain point up: you can call them like functions, and they return values
#ajordanI started playing with Go too a while back, at the very end of a programming institute thing I was at. never got to the interesting async parts though :/