IRC channel logs
2024-05-10.log
back to list of logs
<dckc>so excited about the shepherd project! <dckc>I'm installing guix on my ThinkPad (the one I got to run genode) <dckc>installation image weighs in at 853.5mb... <dckc>sha256: 087a97dba2319477185471a28812949cc165e60e58863403e4a606c1baa05f81 <dthompson>twice now there's been a time when I've pulled a module out of chickadee and into a spritely project. last year I used chickadee's ring buffer implementation for goblins' vat event log, and I just snarfed the binary heap module to use for hoot's test async scheduler. <dthompson>perhaps this is an indicator that they would be useful to include in guile itself... <civodul>i rolled my own ring buffer in the Shepherd, also for event logging <dthompson>the binary heap is useful for priority queues <dthompson>which is what a scheduler needs... and usually programs that roll their own event loop need a scheduler <dthompson>civodul: ah but it's persistent! for chickadee/goblins I wanted a mutable one <dthompson>so that the ring buffer itself didn't add to gc pressure <civodul>yeah in this case i thought it’s okay to cons a bit <dthompson>would be good to have mutable and persistent variants of many data structures <dthompson>for goblins, persistent is always preferred for using within an actor because you get the time-travel property <dthompson>tsyesika, cwebber, and I all just joined in on a little prototype text-based virtual world during our daily meeting and it was a lot of fun! things are getting very exciting over here! <dpk>metaverse, Scheme edition :P <dpk>a programmable MUD type thing in Scheme would be cool. i miss MUDs (i mostly hung out on MOOs, which were programmable from within as a central element of their design. some notable Lispers and Smalltalkers worked on it) <dthompson>for that we'll just little wasm modules that run in the hoot interpreter (jk jk... unless?) <dthompson>we want to add some games to the thing we're making <dthompson>we got on a bit of a tangent about games this morning lol <dckc>congrats on funding for the shepherd thing! that's been on my wish-list for a few years. <dckc>Of course, it's all your fault: I was up into the wee hours last night installing guix on my thinkpad, and studying the shepherd code. <dthompson>oh wow! didn't know you were "one of us" over in guix land <dthompson>I think shepherd may have something like socket activation now <dthompson>civodul can speak to whether or not I'm right ;) <dckc>the guix crowd is a hearty one... willing to forgo support for the thinkpad's wifi chip, keybase, and various other things I bumped into <dthompson>the solution is to add in the nonguix channel ;) <dthompson>I use that for plain ol' linux and firefox and chrome <dthompson>I use firefox mainly but chrome has become important for hoot testing <dthompson>guix has come a long way... I became a user back when you basically also had to be a guix developer because you always needed to package stuff <dthompson>still plenty of stuff to package but the selection feels pretty good these days <dckc>perhaps my main point was how slow it was to download packages. i'm spoiled by 1G fiber and the bandwidth that gets donated to projects like nix <cwebber>Guix could definitely use more resources <cwebber>we should have p2p package distribution <cwebber>it's a big expense for Nix, PyPi, etc to make their packages so available <dthompson>however I also remember the bad old days (that were still good) when downloading was *very slow* <dthompson>so I'm grateful for the speed that's there now <dckc>I thought about p2p distribution... it seems like there are a _lot_ of different packages, and the odds that lots of peers have the one I want aren't great. <dthompson>would be an interesting research area. I know at least some people in the guix community have looked into this. <dckc>there's a project to distribute nix stuff over IPFS. made lots of progress... but I think it's kind of a long way from critical mass <dthompson>I wrote the initial version of a tool called 'guix publish', which lets *anyone* quickly start up a guix substitute server <dthompson>it's been improved by others since, but I'd say that's the place where something p2p could be inserted <dckc>cachix is something to aspire to... `guix publish` reminded me of that. <cwebber>distribute packages over Goblins and OCapN! (libp2p netlayer maybe? <dckc>so the shepherd thing... is there a code repository to watch yet? <dckc>(my experience with funding is: one typically has 1/3rd of 2/3rds of the thing done by the time you can announce it :) <dthompson>yeah I think our socials, blog, and this channel are places where you'll hear about major milestones <jfred>goblins-y MUD programmable from within would be *amazing* <jfred>I did a little spelunking on lambdamoo a few years back and the kinds of things people built were wild <civodul>re p2p distribution, there’s been a lot of work by pukkamustard <cwebber>yes we're very interested in pukkamustard's work here <qeqpep>How do I use use ,hoot-compile-file? I ,use and ,m (hoot repl) from geiser, but get Unknown meta command <qeqpep>I'll try replicating from guix shell -C <dthompson>and ',help hoot' will list the hoot commands if they are available <dthompson>these are only available in the main branch right now <dthompson>if you're using 0.4.1 that would explain why you don't see them <qeqpep>I have guile-hoot-game-jam-template/modules in %load-path, but (compile-file "game.scm") says: module not found (dom canvas) <dckc>tempting: port rock-paper-scissors to scheme with https://github.com/cwebber/rockit . I wonder if the correspondence is sufficient to fit with goblins. I suspect mutable state might be a sticking point. but maybe there's a JS dialect that corresponds <cwebber>dckc: I think you'll make more success with Hoot <cwebber>which actually the news is that core Goblins is now compiling with! <cwebber>the core transactional version, enough to do eg Terminal Phase that is. vats probably coming next week or so <cwebber>I mostly consider rockit deprecated now that Hoot is functioning <dckc>I'm not sure how Hoot helps. I want to re-use JS code. <dckc>maybe rockit is backwards too, for that goal <dthompson>I don't have much context here but generally speaking reusing JS code is possible with hoot <dthompson>like if you had a js library you didn't want to rewrite you could call it from scheme <dthompson>hoot has an ffi for this and it's how most interesting things are done <dckc>rock-paper-scissors.js makes an actor. it sort of expect to run isolated, connected to the rest of the world only via captp. <daviwil>I'm now switching to be a full time MUD streamer <dthompson>that is sure to get the twitch affiliate bucks