Software flâneur for decades. Interested in functional programming, Clojure, Scheme, and programming languages in general. Worried about the state of the planet but won't get into online spats over that. Suspicious of neoliberals and not interested in interacting with trolls. Let's keep this corner of the world nice!
Public Key
npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Profile Code
nprofile1qqs8xh9ezlqewkh0dgstp355qa5hz8alf8478q3sgm63h0mtjuyv5sqpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qz9thwden5te0wfjkccte9ejxjar5duh8qatzud25ks
Show more details
Published at
2025-04-27T16:52:08Z Event JSON
{
"id": "24b571bf854c7739b75d6c082d55356fb65afdbd005d8c28ce8544188352e2e4" ,
"pubkey": "735cb917c1975aef6a20b0c6940769711fbf49ebe3823046f51bbf6b9708ca40" ,
"created_at": 1745772728 ,
"kind": 0 ,
"tags": [
[
"proxy",
"https://fosstodon.org/users/monkey1",
"activitypub"
],
[
"client",
"Mostr",
"31990:6be38f8c63df7dbf84db7ec4a6e6fbbd8d19dca3b980efad18585c46f04b26f9:mostr",
"wss://relay.mostr.pub"
]
],
"content": "{\"name\":\"Andres Moreno\",\"about\":\"Software flâneur for decades.\\n\\nInterested in functional programming, Clojure, Scheme, and programming languages in general.\\n\\nWorried about the state of the planet but won't get into online spats over that.\\n\\nSuspicious of neoliberals and not interested in interacting with trolls.\\n\\nLet's keep this corner of the world nice!\",\"picture\":\"https://cdn.fosstodon.org/accounts/avatars/000/172/686/original/8ed10c89b5a42c8c.jpg\",\"nip05\":\"[email protected] \",\"fields\":[[\"Pronouns\",\"He/him\"]]}" ,
"sig": "fcd9e1abb88c895f2d90062c530a054a84a4a70f1f647ea92f994e49b113609c25529302c3d63f2c67e6ddeb49a3b3279e4b2a483cb3d06e5dd859665145e65d"
}
Last Notes npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…jrff You are totally right--it is a really tricky problem because you might have other programs and processors running on the machine (e.g., compiling a large program). I do remember that Fibers did not scale as linearly as one would want from Wingo's talk. But I think it is pretty good. My solution is OK if the aim is just to cut-off runaway programs that have an infinite loop or are blocking forever. Not very good if you want to be fair. npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…y8el @nprofile…jrff Fibers in #guile provides a nice way to compute a function up to a timeout: https://git.sr.ht/~afmoreno/limiter/tree/main/item/main.scm Comments/critiques welcome npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…jrff Here's the main idea: https://git.sr.ht/~afmoreno/limiter/tree/main/item/main.scm I haven't kicked the tires hard but I think the code is correct. npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…jrff I think that Fibers does this rather easily. You spawn a fiber and put the computation on channel A, where it is put on channel B upon completion. The magic is a choice operation on reading from channel B and a timer. Your runner creates all this scaffolding and executes a perform operation on the previously defined choice operation. I think this is the point of Guile Fibers: communicating concurrent execution which in your case involves a timer. Ping me if you want working code npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…8f02 Yikes! I was going to go to floss.social but now I am reconsidering! Please let me know if you find a good option npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…8f02 Have you found good instructions for how to migrate to another instance? I looked and haven't had a lot of luck finding a simple "how to". It looks like one has to download some data and then upload it. Any pointers appreciated! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…zwgs @nprofile…0v7r @nprofile…fykc This is fantastic! It is hard to believe that such a small group of folks is bringing so much goodness to Guile! Congrats to everyone at Spritely! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…jrff Are you implementing this function? Scheme? Fibers? npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…cvt4 @nprofile…d8h0 He was also a cool dude. I was teaching at a Catholic university in the 90s when he was invited to give a talk, dinner and conversation to follow with the "important people". He gave his talk, ate, and right after snuck out, connected with some undergraduates, and closed the bar with them in the town next to the campus. Unlike most academics, he asked them questions instead of talking at them and they loved it. One of the undergrads was my student. npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno A blog post written to get my head around #guile #hoot and #fibers, based on my 2024 December Adventure: https://afmoreno.srht.site/blog/guile-hoot-fibers.html The folks at #spritely were really patient and helpful. I am very grateful for the excellent feedback I received from Dave Thompson. Many thanks to this team! Any corrections and/or clarifications are really appreciated. While it is still early days, I think the #spritely software stack is really promising! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…jrff I am very much looking forward to it. Considering giving up my geiser addiction.... npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…jmss I just got a proof-of-concept going for using Fibers in Guile-Hoot. The clever piece is code by #spritely which allows for asynchronous messaging. https://git.sr.ht/~afmoreno/tic-tac-toe Ping me if you have any questions npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…tu3k The idea is that you'd be able to go back to an earlier state of the board and make a move. This doesn't matter for Tic-Tac-Toe but it is a key feature of event-driven development. For example, if you hit a bug, you can go back in time and examine state to see what happened. Moreover, if you have a copy of initial state and all your events, you can replay the system to your heart's content until you figure out what went wrong. npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno #DecemberAdventure Got help getting #Fibers working on #Hoot on the browser. I think I finally have all the pieces for my Tic-Tac-Toe game with time travel. Daily technical logging has helped me to keep on task. I will keep at it after this adventure is done. npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…zdmg Hey, thanks for doing this! I am a big fan of this little utility! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…33hd Is https://git.savannah.gnu.org/cgit/shepherd/website.git/tree/herd-demo.scm not available for inspection? I get a 502 error when trying to access it. Just wanted to see how Hoot was being used in the website. Thanks! afm npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…jrff Happy birthday, Andrew! Wishing you a great weekend! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…gyrf I am genuinely astounded by your superpower for totally random and extreme internet findings. All the more because you don't seem to be unemployed! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…y6g5 break a leg! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…g668 @nprofile…y6g5 gave me a nudge to take part in this year's #DecemberAdventure My log: http://localhost:8080/srht/blog/2024-december-adventure.html npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…gyrf Marc Andreesen is the polite version. I am so done with tech bros! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @nprofile…jrff wishing you all the best. Unemployed currently so all I can send are good wishes. npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1zgl…rqd7 I have been wanting such a thing since I started learning Guile after a few years with Clojure. npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1qu5…4evr Looking forward to seeing you in town! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1zgl…rqd7 Thanks for sharing! I am having some #guix path issues on Fedora, so this diagram is really handy! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 You had mentioned the inclusion of atomics for just this use-case, right? npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 So Clojureism should be thread-safe? npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 Oh, that's very cool! did you succeed on getting srfi-125 packaged in the #guix main channel? npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 Clojureism looks good, but the hash maps are mutable, not persistent, right? npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1w66…rc58 Go for it! You've done a lot to build community, so in this context it is clear that you are not just shilling stuff. Good luck! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1w66…rc58 Do it! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 I got it working too. Very cool! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 Yes, I noticed that too so that's why I am puzzled... Can you send me a link to an update so that I can try to figure it out? I think this is a cool srfi npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 Rather, when I tried to use it, it wasnt finding srfi-126 npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 I had issues building the prior version--it wasn't finding srfi-126 npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 Nope. Spoke too soon npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 It works for me: https://pastebin.com/9CFMZByV npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 Do you have this directory in your guile_load_path? npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1zgl…rqd7 Good luck with your Schengen visa! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1zgl…rqd7 so sorry to hear about your residency issues. Good luck finding a permanent place that works for you! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1w66…rc58 Blade Runner 2049! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 I am sorry about all that is happening in the world. npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub19cv…qnc3 Maybe you already know this but you can look for packages in a bunch of channels besides the official one here: https://toys.whereis.xn--q9jyb4c/ npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1zgl…rqd7 What Guix channel are the IDE components in? I couldn't find them in the regular Guix channel. npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1px9…jddc @npub1f3s…jzfc Did you try the systemcrafters ISO? They have detailed instructions and a video to make it dead simple. The process above will give you a base generation. Then you can do whatever you want and revert to base of things break. Good luck! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 did you look at the brave clojure job site? npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ced…vlf2 @npub1cww…ny8k @npub1f3s…jzfc @npub1gch…00vs So you want to update the closure of f? npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1sys…ckr3 Your talk on dimensional shifting was really interesting--thanks for sharing. I have been programming for over 30 years and feel that anything that has any complexity ends up becoming a monster over time. Writing code, turns out, is really, really hard. Glad to hear it isn't just me! I'll keep on plugging to see if I stumble upon some epiphany. I doubt that will happen but the journey will be fun! npub1wdwtj97pjadw763qkrrfgpmfwy0m7j0tuwprq3h4rwlkh9cgefqql2tme8 Andres Moreno @npub1ptm…2xku I have been playing with Guix instead. It is less mature than Nix but the language used, Guile Scheme, is more interesting to me. Math -> Guile -> Guix -> Emacs -> Everything is very attractive