Couldn't make it to #FOSDEM? Here's a list of talks by #spritely folks, including me, plus a list of talks I just recommend! social.coop/@cwebber/116...
Coming to #FOSDEM? Come see the #Spritely crew speak! We've got a whole bunch of exciting talks lined up this year! community.spritely.institute/t/spritely-f...
*Browser again: clientside wasm.* @@html:<a id="deploy-hoot-wasm" name="deploy-hoot-wasm"></a>@@ To run clientside, you can package your project with [[https://spritely.institute/hoot/][Hoot]]: build an interface and compile to wasm: #+begin_src wisp :results output :tangle hoot.w ;; file: hoot.w use-modules : hoot ffi ;; guile specific import ;; the interface define-foreign document-body "document" "body" . -> (ref null extern) define-foreign make-text-node "document" "createTextNode" . (ref string) -> (ref null extern) define-foreign append-child! "element" "appendChild" . (ref null extern) (ref null extern) . -> (ref null extern) ;; your code append-child! : document-body make-text-node "Hello, world!" #+end_src Transpile with =wisp2lisp= and =guild compile-wasm=. If you run Guix: #+begin_src bash guix shell guile guile-wisp -- \ wisp2lisp hoot.w > hoot.scm && \ guix shell guile-hoot guile-next -- \ guild compile-wasm -o hoot.wasm hoot.scm #+end_src Get reflection tools from Guile Hoot (licensed Apache 2.0) with Guix: #+latex: \ThisLLCornerWallPaper{0.26}{programming-scheme-hoot}% #+begin_src bash guix shell guile-hoot guile-next -- bash -c \ 'cp $GUIX_ENVIRONMENT/share/*hoot/*/re*/{*.js,*.wasm} ./' #+end_src
Load your interface (includes startup time optimizations): #+begin_src js :tangle hoot.js /* file: hoot.js */ var f = window.fetch; window.fetch = (inp, ini) => f(inp, {credentials: 'include', mode: 'no-cors', ...ini}); window.addEventListener("load", () => fetch("hoot.wasm") .then(r => r.arrayBuffer()) .then(bytes => Scheme.load_main(bytes, { user_imports: { // mapped via define-foreign document: { body() { return document.body; }, createTextNode: Document.prototype .createTextNode.bind(document) }, element: { appendChild(parent, child) { return parent.appendChild(child);}}}}))); #+end_src Include =reflect.js= and =hoot.js= from a HTML page: #+begin_src html :tangle hoot.html <!DOCTYPE html> <!-- file: hoot.html --> <html><head><title>Hello Hoot</title> <script type="text/javascript" src="reflect.js"></script> <script type="text/javascript" src="hoot.js"></script> <link rel="preload" as="fetch" href="hoot.wasm"></link> <link rel="preload" as="fetch" href="wtf8.wasm"></link> <link rel="preload" as="fetch" href="reflect.wasm"></link> </head><body><h1>Hoot Test</h1></body></html> #+end_src For local testing, hoot provides a minimal webserver: #+begin_src bash guix shell guile-hoot guile-next -- \ guile -c '((@ (hoot web-server) serve))' #+end_src
#spritely #hoot in a toot: how to deploy #Guile #Scheme as static website via #webassembly (complete example).
The code from the two attached images, as written, runs on
https://www.draketo.de/software/hoot.html
Try it out!
It’s two pages from Naming & […]
[Original post on rollenspiel.social]
Spritely office hours! At 4pm ET! community.spritely.institute/t/next-offic...
Learn what #spritely folks are up to! Talk about your own projects! Hang out with us!
I have heard discussion about upcoming Fediverse technology. Is there a new protocol coming in the future, and will the current fediverse platforms adapt it? Is the ActivityPub protocol being improved as well?
My main concern is that some fediverse platforms are not compatible. For example […]
With all the confusion this week about Mastodon, #ATproto, #ActivityPub, #FreeOurFeeds and #SocialWebFoundation, I think #Spritely is doing the best work in creating a new way forward with social media.
Somewhat of a niche interest post maybe, but if you're into #guix and #spritely BOTH, maybe you'll be excited to hear that we now have a Guix channel for bleeding edge versions of Goblins and Hoot! gitlab.com/spritely/spr...
Just learned a lot by reading @cwebber’s essay on “How decentralised is BlueSky?”.
dustycloud.org/blog/how-decentralized-i...
#fediverse #bluesky #activitypub #atproto #spritely
The above thread is excerpt from
dustycloud.org/blog/how-dec...
by @dustyweb.bsky.social
Hashtags apply to the whole thread:
#Fediverse #federated #Bluesky #Mastodon #ATProto #ActivityPub #centralization #distributed #Twitter #decentralized #DID #CredibleExit #trust #VentureCapitalists #Spritely