✉️ Not subscribed yet? Subscribe to the Newsletter
Future of Coding Weekly 2024/02 Week 3
2024-02-18 22:32
📢 You should write an Onward! paper 💡 Maybe Everything Is a Coroutine ߷ Unison Cloud Demo
Two Minute Week
💬 Robin Allison
A screen recording from a program I did a while ago. Its an idea.
Our Work
🎥 Embed an Extensible AI Copilot in Any Web Application via Mariano Guerra
Making Gloodata embeddable using Web Components and Shadow DOM
The demo embeds Gloodata in the Future of Coding history search web app and shows how it can do external requests to the app and get information back from it.
Shadow DOM allows to isolate all scripts and styles from both sides and allow embedding in any web app using vanilla js/DOM and Web Components.
Devlog Together
I started all this by saying PPLs were surprisingly visual and physical, so I'm concentrating on the interaction loop that I had in mind when I said those things: every time you edit a program, you see how it affects the distributions of data flowing through.
So in the attached GIF, there's a dataflow graph for a simple model where every few seconds I add an additional wire.
PPLs don't solve for a result—they converge . So I expected the visualizations to have a very springy response to changes. And that's what I get! In fact, the juiciness of the program output contrasts so much with the stilted UI that I might have to resubscribe to some game design blogs sooner than later. 😬
But this is good. I have ideas for where to take the language that are milquetoast but implementable by me in my spare time, at a pace that I think should allow me to explore complex models within my lifetime.
📝 Lab notebook for “Tom’s PPL” via Tom Lieber
I've actually been keeping a lab notebook for this project. Tonight I decided to put it online, since it explains some of my design choices at a length that wouldn't be appropriate in Slack.
🎠 New version after 51 days via Kartik Agaram
I just published a new version of my thing, with focus not on the new version number but on the number of days the previous version lasted. Because I find these numbers in our statements subconsciously go from facts to bragging to metrics..
I just published a new version with a few changes. Firstly, an incompatibility: creating an editor now requires a font, where it used to implicitly use the current font. I'm fixing one previous Devlog...
I haven't been doing much coding lately (past ~4 months), so I'm doing a tiny side project to test out some new ways of working.
- I'm converting an old CLJS project to TypeScript. I really wanted to authentically live in CLJS, but after months and months of trying, I never got over pain caused by the tooling. (This was back in ~2016, and I hear things have come a long way since. I'd give it another shot, but I no longer have much free time to learn languages/ecosystems.) I tried to get GPT to actually just convert the whole CLJS codebase. It was a mixed success. This is why I chose TypeScript, rather than (my preference) some dynamically-typed language. As it passes through an intentional state of chaotic mush , I want as much structure as possible to be imposed upon my work. Once the conversion is done and I'm ready to resume work on the actual capabilities of the system, I'll probably gradually convert it to JS so that I can get away from needing a build step at all.
- Inspired by @Maggie Appleton, I'm using native apps for Whisper and GPT. When I want to know how to do something, I just ramble out loud. Eg: "Does JavaScript have any syntax yet for iterating over the keys and values of an object without using object.entries?" I've found that for certain kinds of question, it feels really fluid. It might not be any faster than switching to my browser, typing mdn.io followed by my query, and then scanning the page. But it often is, and even when it isn't it just feels really nice to get some help from the computer without having to touch the keyboard. (I have a weird relationship with my sense of touch — for instance, I really dislike touching anything made of metal and think we need to put all the metal back in the ground where it belongs, we've awoken a demon of unhindered conduction and are reaping the consequences, we're all damn fools — so it's nice to be able to converse directly with my computer without having to touch anything)
📝 What's immediately next? via Tom Lieber
I've resigned myself to the fact that models in my language are going to get worse before they get better. There are things I love about this representation already, but I can already see it getting mired in "syntax".
I'll get to it. I want to work on model editing so badly that I'm just throwing in first drafts of the language features that I need in order to implement more interesting models as quickly as possible. I'm only a few away.
I added new entries in the lab notebook about why and how, and created this lovely GIF for you. This is a "trait attribution" model that infers whether an exam is fair based on an assumption about the base rate of exams being fair, and how many people pass. (Only one person took this particular test—and they failed. 😰) Cute and small.
Reading Together
📝 Programming-in-the-large versus programming-in-the-small by DeRemer and Kron (1975) via Christopher Shank
📝 A Small Matter of Programming Perspectives on End User Computing By Bonnie A. Nardi via Stephen De Gabrielle
~Chapter 1 Introduction~ (11 pages)
A Small Matter of Programming Perspectives on End User Computing By Bonnie A. Nardi
Thinking Together
💬 Guyren Howe
Trying to see what I can do with the relational model, only supporting multi-model. Tagging each row of tables with a “model” identifier, much as temporal databases attach an interval or whatever to a row.
This would be give us a First Order Modal logic. I could have some fund pondering what various modal logics can do here (I’ve studied Modal Logic, but not recently). It occurred to me to ask about existing work in the area. At least what the concept is called, so I can go look for prior art.
Think of having a Datalog database and being able to set a “current model” or being able to do separate parts of queries in different models.
I’m also interested in the idea of merging multiple models to build new ones.
What should I look for?
Thanks.
📼 WAFlash is a WebAssembly AS2/AS3 Flash compatible player developed with HTML5, WebGL, WebAssembly and Emscripten. via Justin Janes
I’m not sure which channel this belongs in or the usernames of the podcast but i’ve been working through the podcasts backlog. I wanted to share that Flash isn’t entirely dead and it’s based on a usable and sandboxed Wasm.
❓ app.myinnergenius.com/ibm/techtypes via Justin Janes
I’m not planning on working for IBM/Rhel when i share this but - i did learn in 2015-2016 that for a long time IBM was the third largest employer of psychologists and therefore they have good assessments and profiling quizes lol.
Content
🐦 Duncan Cragg on X via Duncan Cragg
🐦 Duncan Cragg (@Duncan__Cragg) on X: @jonathoda I'm a "crazy, misfit, rebel, trouble-making" person, who "sees things differently"
I don't just "provide entertainment for jaded developers" in my blog; I want to "add to human knowledge"
But:
I see folk stifled by conformist academia
What did I miss?
💡 Maybe Everything Is a Coroutine - Adam Nelson via Kartik Agaram
Coroutines as a foundation for state machines, effect types and resumable exceptions.
I was inspired, after reading the excellent blog post Let Futures Be Futures, by the author's thought experiment of a language in which all functions are coroutines and this is used to express asynchr…
🎥 Tomorrow Corporation Tech Demo via Ivan Reese
Reposting a classic in case any of the new folks here haven't seen it.
📝 Capital and enclosure in software commons: Linux & Ethereum via Andreas S
Stumbled upon this interesting perspective on Commons
Entities which extract profits from software commons like Linux and Ethereum have the greatest incentive and capacity to co-opt them.
🎥 Creating and Deploying Slackbots with Unison Cloud via Mariano Guerra
This video guides you through creating a Slackbot in Unison and deploying it to Unison Cloud, starting with a simple example and finishing with a ChatGPT bot.
Present Company
📢 To the crazy ones via Jonathan Edwards
To: the crazy ones, the misfits, the rebels, the troublemakers, the ones who see things differently
Subject: you should write an Onward! paper
👨🏽💻 By 🐘 @marianoguerra@hachyderm.io 🐦 @warianoguerra
💬 Not a member yet? Check the Future of Coding Community
✉️ Not subscribed yet? Subscribe to the Newsletter / Archive / RSS
🎙️ Prefer podcasts? check the Future of Coding Podcast