2 comments

  • wonger_ 20 hours ago
    Most of the talk introduces tiddlywiki. It's neat to hear its history and motivations, and to hear Joe's thoughts on software and web and hypertext.

    Unfortunately the actual intersection of tiddlywiki and erlang starts around 39:44, and they only have a few bullet points to share about unfinished experiments. Mainly about wikis communicating through shared tags.

    Anybody know what happened to their project?

    • fsiefken 18 hours ago
      I was a fan of TiddlyWiki for a while, a cross-platform way to maintain your wiki in 1 portable html file powered by javascript. It's very speedy in the browser. Now I'm using Logseq, Obsidian as I like the markdown/org format better and there are more plugins available. The interesting thing with TiddlyWiki is that you can export to markdown, and through an SSG to html or just export directly to html.

      The 'Intertwinkled' project ceased following Joe Armstrong's passing in 2019. From the video I gather Joe and Jeremy worked on 3 specific technical implementations together:

      # 'Mailboxes' for Tiddlers To give Tiddlers and Wikis specific "addresses" so they could send messages to one another (e.g., a "Request for Information"). This was implemented as a prototype where a TiddlyWiki could act as a front-end "office" and forward queries to an Erlang backend process.

      # Bayesian & TF-IDF auto-tagging

      If Wikis are going to talk to each other, they need a shared ontology (understanding of words). Joe wrote code to analyze Tiddlers and predict tags based on content. The presentation showed that Bayesian inference worked well for predicting existing tags (85% accuracy) but TF-IDF provided tags that felt more "human." Similar functionality exists via modern plugins (like the TiddlyWiki Natural Language Processing plugins), though not the specific Erlang implementation Joe built.

      # Provenance tracking

      To track exactly where a Tiddler they borrowed the idea from Ted Nelson’s Project Xanadu). TiddlyWiki today has fields for source and creator, but the deep, automated chain-of-custody tracking across the web (Xanadu style) was a theoretical goal rather than a concrete feature.

      -- In time TiddlyWiki has developed other methods to achieve similar goals of "Inter-tiddler" communication.

      TiddlyWiki 5 uses an internal messaging system that mirrors the Actor model slightly. Widgets (UI elements) send messages up the DOM tree (eg. tm-navigate, tm-save-tiddler). It is event-based, but it is strictly local to the browser session and hierarchical, whereas the Erlang prototype was distributed and peer-to-peer.

      TiddlyWiki standardized on Node.js for its server-side implementation. This allows TiddlyWiki to run as a server, load tiddlers from the file system, and serve them to multiple clients. As it was simpler I preferred using the 1 TiddlyWiki html file solution. https://talk.tiddlywiki.org/t/how-to-tiddlywiki-on-nodejs-ng...

      You can HTTP fetch tiddlers from other TiddlyWikis, but it is a pull model (importing), not the asynchronous push/mailbox model Joe Armstrong envisioned. If you wanted to build a "Federation" of wikis today without using complex custom backends, you would indeed use tm-http-request to poll other wikis for updates. https://tiddlywiki.com/#WidgetMessage%3A%20tm-http-request

      A community version of TiddlyWiki called Bob (by OokTech) implements real-time, two-way communication between the server and the browser, and between different wikis managed by the same server. This is the closest functional equivalent to what Joe and Jeremy discussed, but it's built on WebSockets and Node.js. https://github.com/OokTech/TW5-Bob

  • cyberpunk 20 hours ago
    Oh I hadn’t seen this one. Any presentation from JoeA is worth the time.