IRC channel logs

2023-11-17.log

back to list of logs

<VonGuard>hey, the "About" page on the Spritely Website is no longer linked to on the front page, it seems.
<VonGuard>also, hacker news front page: https://news.ycombinator.com/item?id=38295524
<mala>I thought these comments by Kenton and Andy did a good job boiling down some of the initial concerns people have about OCapN and Spritely-esque systems. https://news.ycombinator.com/item?id=38296298 -- would it make sense to reply to them? (I don't know enough to know whether there's more novel research on distributed GC, but the idea that transparent remote objects was tried and abandoned definitely resonates.
<mala>Not saying they're right, but I think an explanation about how Spritely deals with the challenges that led folks to move away from this paradigm would make sense (my random contribution is that it has less to do with latency, and more to do with institutional and financial boundaries, but *shrug*)
<sneek>Welcome back mala :)
<cwebber>hi hi mala
<cwebber>oh yeah I should look at that
<cwebber>VonGuard: oh, thanks. I added it to the header though it's made that header even worse on mobile.
<cwebber>I might take a pass at a nicer version of the header this morning that uses flexbox or something.
<chitochi>Hello everyone!
<chitochi>I have a question, is it ok to make an asynchronous call in an actor's behavior without using `on` on the promise?
<chitochi>I am using Goblins for Guile. :-)
<chitochi>Many thanks in advance!!
<cwebber>chitochi: not entirely sure what you mean. do you mean, is there a way to get something like "await" in other languages, or "do you really have to follow up on promises"? :)
<chitochi>thanks for your answer! the second option! \o/
<cwebber>you don't have to follow up on promises! you can fire and forget
<cwebber>and in fact if you don't need the promise
<cwebber>you can save some work
<cwebber>(<-np ...)
<cwebber>means <- but with no promise
<cwebber>no promise no problem ;)
<chitochi>oooh wow, nice!
<cwebber>:)
<chitochi>thank you very much! i will use that!
<cwebber>:D
<cwebber>having fun with goblins?
<cwebber>would love to know what you're making!
<cwebber>also hello, good morning, etc :)
<cwebber>I need to do some cleaning this morning before work so be back in a bit!
<chitochi>good cleaning!
<chitochi>and good morning! :-)
<chitochi>goblins is really a lot of fun honestly, it changed my vision of the internet
<chitochi>i'm currently trying to use guile and goblins with a flutter application for use in a mobile application :-)
<chitochi>my partner will be joining me, maybe we'll have a fun demo to show!
<chitochi>our goal is to make a small application to manage our expenses, but we'll try to make something a bit more fun to start with! XD
<chitochi>we also have this idea of making virtual tamagochis linked via goblins \o/
<dthompson>I think there's now a race to see who will make the first tamagotchi-like with goblins. I think this has come up before ;)
<dthompson>good luck with your projects chitochi!
<dthompson>and please feel free to share with us what you make! we love to see what people are building
<chitochi>it's a new shonen then! we will be the first XD
<chitochi>thank you! we will share it! :D
<chitochi>(and thank you for making this possible! \o/)
<dthompson>:)
<cwebber><chitochi> goblins is really a lot of fun honestly, it changed my vision of the internet
<cwebber>oh I live to hear things like that
<cwebber>chitochi: you just missed me saying so but
<cwebber><chitochi> goblins is really a lot of fun honestly, it changed my vision of the internet
<cwebber>I live to hear that kinda thing! :)
<cwebber>I'm excited to see what you make
<chitochi>i have to setup this bouncing thing i heard about :x
<cwebber>can't wait till we have Goblins compiling to browsers with Hoot
<cwebber>it'll make things even more exciting
<cwebber>bouncing?
<chitochi>bouncer maybe? so that i can stay connected to the irc server
<cwebber>oh that :)
<cwebber>yes!
<cwebber>it can help.
<chitochi>i can't wait for goblins with hoot too, it will unlock so many possibilities!
<cwebber>:)
<Zarutian_iPad>nifty!
<chitochi>XD
<cwebber>lots of exciting stuff has been happening in spritely-land lately and I've been not doing as good of a job talking about it in here :)
<cwebber>would like to do more
<chitochi>the calm before the storm maybe? (i don't know if it's a valid expression in english...)
<Zarutian_iPad>it is a valid expression
<chitochi>good to know, thanks!
<Zarutian_iPad>it is an expression in many languages, like "lognið á undan storminum"
<chitochi>wich language is it? :o
<cwebber>I think tsyesika and I finished planning the end-to-end-encryption design for the relay netlayer this morning
<cwebber>feeling good about it
<chitochi>is the realy netlayer the TURN server of ocapn?
<chitochi>relay*
<cwebber>yes, it's very similar to that
<cwebber>except it creates an ocapn netlayer out of an ocapn netlayer to do it :)
<chitochi>ahah wow, that's deep
<chitochi>meta is a better word maybe
<cwebber> https://dustycloud.org/gfx/goodies/relay-flow.webm
<chitochi>thanks for the link, i think i understand the big picture
<chitochi>does it mean that A and B can use different netlayers to talk together, as long as the two relay know how to talk together?
<cwebber>chitochi: yes that's the case
<chitochi>ok, that's so cool
<cwebber>it's not the primary purpose
<cwebber>eg, we're planning on showing it off with A and B both using encrypted TLS connections to the relay
<cwebber>relay(s) since federation is baked into this design
<cwebber>it already works actually in that way
<cwebber>but it's not end-to-end-encrypted
<cwebber>that's what tsyesika and I spent this morning designing the plan for
<chitochi>i don't understand the "since federation is baked into this design" part :S
<cwebber>we're pretty confident in the design plan for adding the E2EE stuff
<cwebber>chitochi: A and B don't have to use relays on the same node
<cwebber>it can be two different relays, as long as they can talk to each other
<chitochi>oh ok, i understand now
<cwebber>so kind of like ActivityPub federation in that way
<chitochi>i am so curious about the end-to-end encrypted part now xD
<cwebber>except we get it for free thanks to OCapN :)
<Zarutian_iPad>what cryptography are ya thinking of using?
<cwebber> https://dustycloud.org/tmp/e2ee-relay-notes.png
<chitochi>can relays do other things than relaying, like storing message for later delivery?
<cwebber>that was our notes from this morning
<cwebber>the animated diagram was done in blender so I also just used blender for uglier chicken-scratch annotations and the text file ;P
<cwebber>don't worry if you can't read the text in brown
<cwebber>read the stuff on the right instead
<cwebber>chitochi: aha, you're really ahead of the game here :)
<cwebber>yes store & forward relays will come later
<chitochi>that's so hyping \o/
<cwebber>so yeah then you'll be able to use this on a spotty connection
<cwebber>go through a mountain tunnel and come out and reconnect and it keeps going
<cwebber>but not yet.
<cwebber>if you want to look at the code, it's surprisingly not too much.
<chitochi>and you can choose your own relay or self-host it, that's really great to have
<cwebber>needs cleanup, as you can tell from the comments
<cwebber>but both tsyesika & dthompson have reviewed the architectural plan and the code and thought it was good
<chitochi>congrats on that!
<cwebber>we've been sitting on this for a bit actually, you can see the last commit is 3 months ago. but I've been busy with conferences and getting Hoot 0.1.0 took a lot of focus... and the eternal beast that's fundraising at a nonprofit. back on Goblins now tho :)
<cwebber>the other big thing that's in progress right now is Jessica's work on Aurie
<cwebber>the safe serialization stuff.
<cwebber>described on the old website https://spritelyproject.org/#aurie
<cwebber>coming soon to guile-goblins as part of core.
<cwebber>and oh, the other big thing taking focus was getting OCapN out the door
<cwebber>got caught on the implemeentation guide work with tsyesika for a while :)
<chitochi>if i understood aurie correctly, i will be able to serialize an actor, for example a crdt, and persist it on the disk?
<cwebber>chitochi: yup.
<cwebber>serialize a whole complicated network of 'em
<cwebber>and upgrade them too :)
<cwebber>and Hoot 0.2.0 is coming soon too. so yes, I wouldn't say we're quite at a calm because we *have* been making announcements recently but
<chitochi>i tried to understand how upgrades could work in this, but i still don't see how it will work
<cwebber>it's definitely stormy in a good way :)
<Zarutian_iPad>ACTION is attenting friam but has quite a lot to say about the topic of safe serialization and una stuff
<cwebber>Zarutian_iPad: yes I'm sure :)
<chitochi>ahah yes, i was only talking about the irc! :p
<cwebber>Zarutian_iPad pinged me for about 2 or 3 years to read the Safe Serialization paper until I finally got to
<cwebber>ah :)
<chitochi>all the news are awesome!
<cwebber>💜
<Zarutian_iPad>that Ranger in the Fallout has nothing on me in that kind of persitance
<cwebber>;)
<cwebber>never played Fallout if you can believe it
<chitochi>(i will read the paper)
<Zarutian_iPad>that guy has been such a meme that it has gotten known outside the fans of that game
<chitochi>i never heard of it before :s
<chitochi>if let's say a tree of three actors is serialized, when deserialized, can the sturdyref still be valid?
<Zarutian_iPad>depends
<Zarutian_iPad>sturdyrefs into that grap or sturdyrefs out of it?
<chitochi>i was only thinking about the one into, but now i am interested by both!
<Zarutian_iPad>so, does the deserializer get access to the SwissNum table of the vat or a specific facet that allows to assign those SwissNums to those deserialized objects/actors
<chitochi>do you mean that if i serialize the swissnum table + the actors, when i deserialize, using both i can keep the sturdyrefs?
<Zarutian_iPad>sure, plus the public and private keys of the vat
<chitochi>ok i understand, that's great!
<chitochi>thanks for the explanation!
<Zarutian_iPad>re the relay stuff: isnt basically it like bidirectional bytestream proxy?
<Zarutian_iPad>like SOCKS5 over a BEEP multiplexed tcp connection
<mhcat>ACTION waves
<dthompson>welcome aboard, mhcat!
<mhcat>reading thru actor-lib docs, I'm wondering why we're all still using irc :P
<Zarutian_iPad>mhcat: due to the plethora of irc clients that have so many more config options than discord or other such would ever have.
<mhcat>:) I was making a silly joke about writing a pubsub chat system in goblins
<Zarutian_iPad>like the example cwebber wrote :3
<dthompson>mhcat: we do hope that goblins and ocapn (the protocol underlying goblins) help pave the way for better chat applications that aren't controlled by a single company
<dthompson>it's pretty interesting how basically all software built with this stuff becomes "social" in a way
<dthompson>and how it enables richer virtual interaction than just text chat and sending gifs
<mhcat>just got to the ocapn part of the manual - I think I'm going to have to read the erights site next
<mhcat>I am a fan of work on decentralization - I participated in the camb "center for re-decentralization" project a bit this year - but there are goals there I can't get behind, around commerce
<mhcat>I like undermining domineering corporate centralization, but I don't particularly want to use math as a proxy for trust in any capacity
<Zarutian_iPad>mhcat: re commerce, you probably want to see what the Agoric folks are doing regarding that stuff.
<mhcat>games and community seem like laudible goals though
<Zarutian_iPad>"use math as a proxy for trust"? can you expand on that?
<Zarutian_iPad>math like used in reputation systems, or?
<mhcat>I'm talking about the way cryptography has become a mechanism for bypassing actual trust relationships and replacing them with an imaginary accountability relationship
<mhcat>commerce at scale, without actual humans trusting other humans
<mhcat>aka "efficiency" - I find that all to be fundamentally anti-human
<Zarutian_iPad>oh, I see.
<mhcat>I like actual trust, and slow moving transactions :)
<Zarutian_iPad>yeah, I think all that is probably out of scope topic wise for this channel
<mhcat>maybe - though I think this channel is very in scope for my interests along those lines :)
<mhcat>anyway, I will take the hint and be quiet
<Zarutian_iPad>nono, please continue
<dthompson>mhcat: sounds like you will like what we're doing then.
<dthompson>we're very community focused
<mhcat>:) if it comes up naturally, then of course :)
<dthompson>and I think the trust thing is pretty on topic
<mhcat>dthompson: indeed, I already do!
<dthompson>ocaps put you in control of granting capabilities to those you trust
<Zarutian_iPad>it is just that, like I pointed out earlier, Agoric is the group of folks that is dealing with all that kind of commerce stuff in the sense you mean. Spritely is going to interop with that protocol wise so you can buy a UltraSword(tm) and flaunt it in a spritely goblins virtual bar.
<mhcat>haha nice
<dthompson>yeah Agoric is focused on commerce.
<Zarutian_iPad>That the thing was bought via collateralized loan from a default swaps cascade contract might be just on the Agoric side.
<mhcat>dthompson: yep, I like capability systems because they place the establishment of trust out of band - you can do all the stuff that falls under "authentication" without reference to any intermediaries
<Zarutian_iPad>one of the steps might be "okay lets see how far I can throw ya", "three furlongs or so?"
<mhcat>ah yes, that classic measure of trust - as far as I can throw you :)
<mhcat>the mark miller quote that comes up repeatedly reminds me of this ancient wisdom https://nighthacks.com/jag/res/Fallacies.html
<mhcat>I worked at Sun Microsystems back then, and I remember the shocking disparity between bay area lived internet experience and that of, say, folks in singapore or amsterdam, using the same network apps
<Zarutian_iPad>my tool to counter this is using the similie of conducting business via postcards
<Zarutian_iPad>betwixt individuals that live on housboats on a canal network
<mhcat>yes! I was just now thinking about what an implementation of ocapn over yubikey might look like
<mhcat>that would be like fidonet or uucp I guess
<mhcat>s/ocapn/captp/
<Zarutian_iPad>mhcat: way ahead of you. I wouldnt implement connection based captp or ocapn over such Delay&disruption Tollerant Network but use something like WaterKen used or do similiar stuff via ActiveCapCerts (writeup of pending on me)
<Zarutian_iPad>an ActiveCapCert is pretty much a cryptographically signed function expressed as a quasiLiteral of eventual sends, whose closure environment will be that of the safeEnv augmented with gift depositing and withdraw facets whose gifter or recipiant, respectively, is the issuer of the certificate. That issuer is named by the public key or cryptohash
<Zarutian_iPad>thereof.
<Zarutian_iPad>the DTN stuff is then implemented via a PostMeister. You invoke a spefic method giving it an ACC. The method gives you an eventual reference. You do your pipelinable eventual sends on that ref or on ref resulting from such eventual sends. Then you ask the PostMeister for the outgoing mailbag resulting from those sends.
<Zarutian_iPad>in the mailbag are ACCs that will efectuate those eventual sends if you convey those ACCs to their destination vats.
<Zarutian_iPad>sneek, botsnack.
<sneek>:)
<mhcat>I'm not sure what a quasiLiteral is, and what the safeEnv is, but most of the rest of it makes sense to me
<mhcat>specifically, a signed function seems like it is immutable, whereas a closure environment is dynamic and stateful
<Zarutian_iPad>safeEnv is an environment that has no powers.
<mhcat>presumably the closure env is operating using the generational tx mechanism I've been reading about
<Zarutian_iPad>pretty much a scheme closure
<Zarutian_iPad>Scheme
<mhcat>no powers as in not able to do side effects locally?
<Zarutian_iPad>as in not able to effect anything outside it
<Zarutian_iPad>if you have read Reeses Thesis on W7 Scheme then you know what I mean by safeEnv
<mhcat>I have not (yet) :)
<mhcat>prosaic question: how can I convince emacs to format macro calls correctly, instead of indenting them like functions?
<Zarutian_iPad>ACTION looks a cwebber as they seems to live and breath emacs
<Zarutian_iPad>s/s a/s at/
<mhcat>for clojure and common-lisp it typically needs a connected repl, and I think I have this with geiser running...but...
<mhcat>:)
<dthompson>mhcat: you need to customize scheme-indent-function
<dthompson>a lot of projects use a .dir-locals.el to add their special forms to scheme-indent-function so they indent properly
<mhcat>aha, I will see if I can find one in the goblins repo
<mhcat>hmm, not obvious
<dthompson>you can add stuff like (put 'foo 'scheme-indent-function 1) to your emacs init config if you'd like
<dthompson>the .dir-locals.el approach just keeps things local to the project and makes indenting "just work" when you're working on it
<mhcat>got it - I have some for clojure, I will make some entries