✉️ Not subscribed yet? Subscribe to the Newsletter

Future of Coding Weekly 2024/03 Week 2

2024-03-11 14:41

🎙️ FoC 70 • Beyond Efficiency 🎈 Alan Kay’s talk at UCLA 👐 folk.computer's February status update

Our Work

🎙️ Future of Coding 70 • Beyond Efficiency via Ivan Reese

🧵 conversation

Future of Coding 70 • Beyond Efficiency by @Dave Ackley

Dave Ackley’s paper Beyond Efficiency is three pages long. With just these three pages, he mounts a compelling argument against the conventional way we engineer software. Instead of inflexibly insisting upon correctness, maybe allow a lil slop? Instead of chasing peak performance with cache and clever tricks, maybe measure many times before you cut. So in this episode, we’re putting every CEO in the guillotine… (oh, that stands for “correctness and efficiency only”, don’t put us on a list)… and considering when, where, and how to do the robust thing.

🌩️ cloudbugfix: cloud infrastructure that proposes verifiable bugfixes via Luifer De Pombo

🧵 conversation

sharing some recent thoughts I have had about verifying LLM-generated bugfixes automatically with cloud infrastructure: lfdepombo.com/cloudbugfix. Today we validate LLM-generated code by looking at it or manually running it within our codebase. However if the expected behavior of the code is verifiable, there is a less painful workflow where the mistakes made by the LLM are not visible to us.

📝 Oberon via Doug Thompson

🧵 conversation

Alrighty, here's the post I mentioned I'd make in #introduce-yourself:

I want to create a computing ecosystem that solves most of the problems in what I call 'unregulated I/O'.

It is quite possibly mad. Or it might work, and I will be surprised.

It takes design cues from Oberon, FlatBuffers, IPFS, Git, Rust.

It also sounds dangerously close to the kind of "great idea" a compsci undergrad would come out with. Yet, I am running out of reasons why this isn't possible (at the very least). This is why I want your opinions 😅

That's all I'll say here - rest is in the 🧵

🧑‍✈️ omnipilot.ai via Michael Jelly

🧵 conversation

If you’ve wondered:

  • why the only copilot we have is for VSCode
  • why not every app is end-user programmable

I wondered the same thing, and I’ve built (omnipilot.ai), an AI copilot that works everywhere on macOS.

Specifically it lets you invoke GPT to type into any app ( particularly interesting to me is it works great in Xcode ), can also autocomplete text in any app, and lets you chat with GPT-4 with context from your recent apps. I’d really appreciate any feedback or first impressions!

Re end-user programmability I’m also working on making it more possible for people to make little “automations” on their computer, whether it’s adding buttons to Finder to convert files or recording little AI-enhanced macros.

Some specific questions I’d love feedback:

  • How often do you find yourself wanting help editing code outside of a Github Copilot-enabled environment? What are those situations or apps?
  • What about text, do you wish you had a copilot for text too?
  • What do you think of the “works everywhere” approach vs. a dedicated app?
  • Do the AI-macros sound appealing or meh?
  • Any thoughts on the landing page copy/design?

I’m also happy to answer any other questions. Thanks in advance for sharing your thoughts, it’s super helpful in shaping the product!

Devlog Together

💬 Kartik Agaram

🧵 conversation

Odd feeling: I just opened a terminal, did a double-take and knew instantly there was a leap year bug in code I wrote almost 25 years ago.

💬 Mariano Guerra

🧵 conversation

Explorable binary operations' progress report:

  • Program outline
  • Expand for instruction details and step execution

binvm-program.gif

first time I include it in the book 🙂

2024-03-07_15-51.png

👾 Sir Box-a-Lot: an 8-bit Sokoban clone via Kartik Agaram

🧵 conversation

The kids and I had a blast playing Baba is You this morning, and it brought up ancient memories of playing Sokoban puzzles (where all you can do push crates around; in particular no pulling). Now I want to play Sokoban on my phone.

lcamtuf.coredump.cx/sir-box-a-lot contains 300 publicly available Sokoban puzzles. It turns out the C syntax that those puzzles are encoded in is just a few search-and-replaces from being perfectly valid and usable Lua. So far I can render the starting state.

🎥 sokoban levels

Reading Together

📗 A Small Matter of Programming by Bonnie A. Nardi via Pete Millspaugh

🧵 conversation

Chapter 2: Conversation and Computers (pages 13-25)

Thinking Together

💬 Alex Cruise

🧵 conversation

Re "beyond efficiency" podcast episode... I remember reading many years ago about this idea, maybe in Scientific American... Basically, evolved systems tend to be inefficient and full of redundancy, whereas designed systems are efficient and parsimonious... But many evolved systems can still function when many components are damaged

🕹️ Robotopia via Mariano Guerra

🧵 conversation

Do you know any games where the core game mechanic is about programming?

Things like Zachtronics games, factorio or robotopia-x.github.io

💬 Paul Tarvydas

🧵 conversation

Is Alan Kay's diagram at 1:05.11 a veiled challenge? Replace 1972 by 2024. What do we see 30 year in the future? A laptop or tablet with 100,000 CPUs? Fosbury Flop? Breaking the Four Minute Mile?

Screenshot 2024-03-07 at 3.13.33 PM.png

🐸 Todepond dot com via Lu Wilson

🧵 conversation

follow up to some recent academia & writing style discussion. I've been trying to formalise some of the writing styles i personally use

Two beat style

💬 Jim Meyer

🧵 conversation

Software products are physical products. That's why they're hard to design and engineer!

The physicality of software is kept at arms-length in a vector-based design tool. Here, the strength and focus is on surface level aesthetics and exploration though mocks — many, many mocks. All needed. All useful. But a mock does not a product make. A mock is an incomplete story of software physics. Which brings us the other side of the spectrum...

The IDEs — the code editors. The product you ship is here, so "I guess someone has to go there". First challenge: To most people it's walls of inexplicable symbols and weird (even hostile?) punctuation. Then, with code, you're essentially play-acting as a computer. You have to "speak computer" fluently to feel at home here. It's a love/hate relationship of running programs in your head. Mostly failing to do so. Then learning to get better at debugging. Eureka moments of finally solving the puzzle that unlocks a bugfix! Endlessly restarting programs to reset state. Today, even after multiple decades of investment in IDEs, coding is still 100 times harder and less fun than it should be! How can we truly move the needle?

A traditional IDE deals with the how to fully describe the physics of a software system. Writing and editing algorithms. Managing data flows. Figuring out logic. Painting pixels. Sending data at the speed of light over the network. But the IDE doesn't actually let you see the program as it manifests to the user in the final medium. It's running somewhere else — the browser, on your phone. This is where vector-tools have the IDEs at least partially beat. Yes, they're just mocks, but the vector-tool tool sees the mocks alongside you. This changes your relationship with the tool. Thinking and touching — moving, dragging, scaling, rotating, duplicating — seamlessly blends on a canvas, and it just feels good, even fun! IDEs and editing code as text offers none of those things with today's tools, and it just feels like... friction!

So the letter to Santa reads as follows:

Dear Santa, give me the best parts of a vector-based design tool, plus the best parts of an IDE, rolled into one — but with none of the downsides. Thanks!

Christmas can't get here fast enough.

Content

📝 Oatmeal - Thoughts on accessibility in smol computing via Eli Mellen

🧵 conversation

I don’t think I’ve shared this here before — if so, sorry!

A first instinct may be to think of accessibility as a technical problem that needs a solution. I’d suggest that it might be an opportunity to reframe how we approach the idea itself; from accessibility to adaptability. Adaptability of methodology, problem solving, software, and devices. 📝 Oatmeal - Thoughts on accessibility in smol computing

What follows is my attempt to spark a conversation in a few converging, but separate communities I lurk in. I’ve already had a bunch of amazing

🎈 Alan Kay’s talk at UCLA (2/21/2024) via Srini K

🧵 conversation

🌉 solvespace.com via Kartik Agaram

🧵 conversation

Carrying the torch of Ivan Sutherland's Sketchpad

🔌 Flyde HN conversation via Mariano Guerra

🧵 conversation

HN conversation about flyde: Open-source, visual programming for developers. Includes VS Code extension, integrates with existing TypeScript code, browser and Node.js

👐 folk.computer's February status update via Mariano Guerra

🧵 conversation

Present Company

💬 Scott Antipa

🧵 conversation

Does anyone know if any good math communities, online or in sf bay?

📑 The Cursed Computer Iceberg via Ivan Reese

🧵 conversation

Here's a nice Table of Contents page for a book on the culture of weird things people do with computers.

📝 Torn leaf gallery via Lu Wilson

🧵 conversation

I would like to invite you all to make a submission for Torn Leaf, an experimental gallery I'm creating.

Papers on the future of coding are very welcome (or anything else)


👨🏽‍💻 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

Future of Coding Weekly 2024/03 Week 1

2024-03-04 00:24

🎙️ The New Physics (with Stefan Lesser) 🛸 Moldable development for Common Lisp 🎥 Project Updates

Our Work

🎙️ The New Physics (with Stefan Lesser) via Ivan Reese

🧵 conversation

I had a lovely call with Stefan Lesser a few weeks ago, and he was kind enough to let me record it and release it as the patreon bonus podcast episode this month. We'd been DMing about 💬 #thinking-together@2024-01-01T21:17:17.966Z, keen to exchange our thoughts on a (new?) subtle kind of idea: those that can only be expressed (or received) by designing (or playing with) an interactive system. For instance, there's a subjective experience of interacting with a system, and I posit that this feeling engenders a kind of meaningful thought. So we set out to talk about this, and of course about some related things too (such as "the new physics" that exist inside the computer). Lots of fun. Thanks Stefan Lesser for the chat, and for letting me share it as boco . And thanks to all of you who support our effort to make the best, weirdest, most interesting podcast we can. Look forward to the next main episode… with a real subjective experience of soon-ness!

📝 The Parallel Reality Computer via Duncan Cragg

🧵 conversation

The Parallel Reality Computer

(very short article!)

📝 Zest: dialects and metaprogramming via Jamie Brandon

🧵 conversation

Some thoughts on skirting the line between static and dynamic typing

💻 Programming as Theory Building via Eoghan Mulcahy

🧵 conversation

Inspired by the Programming as Theory Building episode we are building a tool to help development teams capture & store the theory of their program text.

We achieve this through auto-generation of logical paths through the codebase which developers explain to each-other through voice and video.

We would love to hear the thoughts of this community specifically as many of you will see what we are trying to achieve here.

Checkout out our launch for more info.

launchdemo-higher-qual.gif

💬 Jim Meyer

🧵 conversation

Had the terrible realization that our code-native multiplayer canvas is the perfect opportunity to troll coworkers 😂

(Instantly send code changes to your coworker's canvas via multiplayer)

🎥 Turing complete trolling

Devlog Together

💬 Ivan Reese

🧵 conversation

I'm getting more and more into a new… idea? Let's see if I can explain it.

  • There are programs, like photoshop, that are tools for artists. You can use them to make art. They're a digital equivalent of traditional art tools. The fact that they're digital has, just to give one example, enabled artists to easily do some things that used to be really hard. This has, in turn, changed the sort of art that gets made.

  • There are programs, like flash, that are tools for _ to make tools for artists. (I'm leaving a blank there because… I could have said "programmers", but I actually want you to not think of them as programmers for a sec. Just go with me.) For example, in the late 00s, I worked as a ______ making tools for artists, and I used flash to do this, because it gave me a programming environment that was designed in tandem with a drawing environment. Really nice fit here. But flash wasn't really designed for people to make tools for artists. It was designed to be a tool for artists, but it was also programmable, which made it a good tool for making tools for artists.

  • There are —————, that are tools for making tools for _ to make tools for artists. (I'm adding another blank. I could have said "programming languages", but I actually want you to not think of these —————s_ as programming languages for a sec. Just go with me.) For example, going to school, or reading books, or a good night's sleep, or taking a shower, or having a stimulating conversation with a friend. These are all —————, but they're outside the computer.

Just as the computer allowed artists to have a new kind of tool that changed the sort of art that got made, I'm interested in how the computer might give us new kinds of ——————, which would in turn make new kinds of ___.

It's possible that FoC as a community is a —————. But I also think there's ————— software that's not a programming language.

💬 Mariano Guerra

🧵 conversation

Progress on the binary operations explorable: step through binary AND, shift left and shift right.

binvm-and.gif

binvm-shift.gif

💬 Mariano Guerra

🧵 conversation

🚂 All onboard the shift operation train (showing intermediate results during stepping)

binvm-shift-train.gif

🛸 A moldable Common Lisp object inspector based on CLOG via Konrad Hinsen

🧵 conversation

Moldable development is coming to Common Lisp

💻 SplootCode tiny program via Mattia Fregola

🧵 conversation

Hi everyone,

I have a big question about a programming-related problem I only partly understand, hoping not to get an answer, but rather pointers to where I should be looking. Here it goes.

For the past two years I have been working on SplootCode wanting to make code more accessible to non-engineers. The initial product (as is today) is basically a structured editor with drag and drop a-la-Scratch capabilities, and some other things to help non-engineers see and understand what the code is doing. You can see an example tiny program here.

During the interviews I conducted with several people, I bumped into a non-native English speaker who revealed their frustrations with having to learn English in order to code.

After speaking to another dozen non-native speakers - some of whom teach programming in non-English speaking countries using their native language - I figured that this is a really big problem for a lot people, and I want to solve it.

Since I have been deep into SplootCode for over two years, I am sure that I am suffering from sunk cost fallacy like crazy, thus the reason I am asking the question here is to get some outside perspective.

So, to solve the problem for people, I am wanting to address the nested problem that – AFAIK – the vast majority of programming languages, with the exclusion of any purely symbolic ones, are effectively a subset of the English language.

My first train of thoughts was: “perfect use case for building on top of SplootCode! The structured editing part means half the work is done already since I can label keywords however I want”.

Followed by: “but wait! how can this be actually solved so that anyone can use their own tool of choice, which is what people will need?”


Thus my question is:

I believe that the proper solution is to add a layer * to code – call the tongue layer – that defines the label ** for each tongue .

What do I need to understand thoroughly, in order to build such a solution? Who should I speak to?

  • layer intended as a standalone structure that doesn’t interact with anything but the semantic label of any literal, variable, operator, or function (or any other atomic structure that may exist within a programming language)

** label intended as the human-readable part of an atomic structure of a program. For example, the if in the structure if () {} in javascript, would be se in Italian, and もし in Japanese.

💬 Mariano Guerra

🧵 conversation

Where are the nibbles?

binvm-bytes-shorts-ints.gif

📝 Science Fiction Short: Hijack via Kartik Agaram

🧵 conversation

Some doggerel while reading spectrum.ieee.org/hard-science-fiction-computer:

If an Agile org and Private Cloud

put in a million sprints,

Do you suppose their OKRs

might start to overload Mars?

(With apologies to Lewis Carroll: The Walrus and the Carpenter)

📝 Entry 005: Functions: take 1 via Tom Lieber

🧵 conversation

Pictured: the equivalent of this WebPPL model

var clamp = function(num) {

  return num > 2 ? 2 : num

}

clamp(sum(repeat(3, function() {

  return flip()

})))

What's new this time? User-defined functions! There's one anonymous, single-use function at the top (the one that's passed to repeat() ), and a function named clamp below that's written to be reused. Functions = Boxes. Lu took lines, but I think boxes are still available.

The writeup is here: alltom.com/pages/ppl-lab-notebook/005.html If you want to know the whys and the hows, it's for you. I love how the lab notebook / experiment writeup format gives me places to hang all the random things I'd like to write about. Design vicariously with me. 🙂

(Even if you don't have the time to read the writeup, I want you to know that I do not like how the clamp function's source code looks. I'm not done. But I decided a few entries back that I was going to dump all the LEGO bricks onto the floor where I could see them before I started picking the ones I wanted in my spaceship.)

2024-02-21 clamped sum.gif

🎥 mandelbrot fractal in my visual programming environment via Maikel van de Lisdonk

🧵 conversation

Youtube Thumbnail

The last couple of weeks I've been mainly focussing on the editing/creating of composition nodes in the visual programming system that I am building, which is more work than I expected. At least it's now possible to add input and output ports dynamically for existing compositions.

Since I also wanted to have some fun (and procastinate) I decided to implement a zoomable mandelbrot fractal in the gl-flow app, which can be seen in this little video youtu.be/y71c1IBBBsk. This also required some extra node-types and adjustments to the pull-based gl-flow engine. Like having support for a for-loop-node which can be breaked out of depending on a condition. I implemented both the for-node as the condition as containers due to the way the pull-based engine works.

To give some background on the implementation of the pull-based flow engine which is used in the gl-flow app: the nodes get executed backwards starting at an end node and their output is glsl-code which can be run by a fragment shader on the gpu. So, the nodes themselves are not executed by the shader but the generated output is.

The spatial placement of the "end-nodes" is used to determine which node gets executed first and then the input nodes are executed backwards. A container is also an end-node. So, the contained nodes are executed in a code block.

I think the fractal renderer works quite nicely but you can't zoom very deep because of precision issues. I might try to solve these in the future, but my goal is not to make the perfect visual shadertoy😊.

📝 Entry 006: Layout by dragging via Tom Lieber

🧵 conversation

Catharsis: I finally don't have to lay code out (solely) by typing coordinates. 😌

The write up is here, though it's more like a programming livestream this time because I didn't iterate on the language much: alltom.com/pages/ppl-lab-notebook/006.html

🎥 drag nodes and charts

Thinking Together

💬 Hamish Todd

🧵 conversation

Hey folks. I've been working on a VR ui for animation, inspired by Stop Drawing Dead Fish and a system called Projective Geometric Algebra. In this gif you can see me making something called a PGA Rotor, which is TLDR is an object that generalizes vectors and quaternions.

chrome-capture-2024-1-28.gif

You animate by making a bunch of these things, and then "snapping" them together, so they are joined end-to-end for example, and that becomes constantly-updated behaviour. Problem that I'd appreciate input on an idea for is how to visualize the "code"

Problem: my setup is already cluttered. Eg, animated characters are already surrounded by a halo of crazy clockwork; it's all I can do to hide it. But sometimes you want to see a lot of it. And I don't want to add boxes-and-arrows, and I don't want to add spreadsheets much either. I'm thinking that instead of showing the relations, I just let you fiddle with the things and see what happens

But maybe someone here has already tried this?

📝 Academia from the outside via Lu Wilson

🧵 conversation

I wrote down my perceptions of academia as someone on the outside.

Content

🐦 worrydream.com/Tweets via Kartik Agaram

🧵 conversation

Bret Victor has redesigned his website. Poking around it, I noticed this wing of tweets: worrydream.com/Tweets

Example content:

2011-09-30:

Spent the last two days trying to write a paragraph. WHY CAN'T I WRITE PARAGRAPH.

📝 How to adopt Christopher Alexander’s ideas in the software industry via Andreas S

🧵 conversation

Digging around for Christopher Alexander I found Stefan Lesser 🙂

📝 List of 2024 Leap Day Bugs via Beni Cherniavsky-Paskin

🧵 conversation

Some hilarious examples if "software legalism" 🤦... (literally legalism in the case of marriage certificates) codeofmatt.com/list-of-2024-leap-day-bugs

Well, it's 2024 and leap day has come once again. As I've done in prior leap years, I've captured as many bug reports and outages as I can, along with links to the source where possible. For those have been following along, you'll notice these have been organized a bit

🤖

📝 AI is bad/good actually via Lu Wilson

🧵 conversation

I'd like to introduce a new way of talking about good/bad bad/good AI

1709279393169.png

Present Company

💬 Beni Cherniavsky-Paskin

🧵 conversation

My 11yo son is learning the piano, and I rigged him a midi->raspberry pi->RGB LED strip so keys he plays light up then fade (it's a 144/m strip so nearly 2 leds per key).

Now i'd like him to program he visualizer himself. Tweak the colors, maybe do some analysis like recognize chords, try record/replay, maybe even ignore the music and make some game using the piano as input device?

He knows Scratch/Snap!, and wants to learn python (which my current script happens to already use), but the audio/visual nature here just screams "missed FoC/live coding opportunity" 😆

What would you recommend?

[constraint: myself I know zero about music 🙉]


👨🏽‍💻 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

Future of Coding Weekly 2024/02 Week 4

2024-02-25 22:35

💡 Embracing Software Variability 🆕 Experiment visualizing structure diffs 🧮 Calculang

Our Work

🕴️ vanishing.page via nichoth

🧵 conversation

New fun side project vanishing.page

E2E encrypted messages that disappear

🎥 Let's talk about effect types via Peter Saxton

🧵 conversation

Vimeo Thumbnail

"Let's talk about Effect types" I built a language workbench to show all the internals of EYG's type inference. It's useful for showing effect typing and I've recently added highlighting for all the places than can raise effects.

🛸 github.com/KinaKnowledge/juno-lang via Rafi Khan

🧵 conversation

A demo of livecoding the dom using junolang and reactjs

🎥 junolang react live coding

📝 emweb via Gregor

🧵 conversation

I started thinking, prototyping and now writing about a more interwoven web: emweb

A while ago I migrated some group chats from Twitter to Signal, for a myriad of reasons. One of the things lost in that particular fire was the ability to view tweets embedded directly in the chat…

Devlog Together

💬 Kartik Agaram

🧵 conversation

Screenshot_20240219-213852.jpg

💬 Mariano Guerra

🧵 conversation

WIP binary interactive explorable explanation

binvm-demo.gif

🎠 Lots of charts via Kartik Agaram

🧵 conversation

A few years after I started programming I used to spend lots of free time tweaking my editor and shell configuration. After many years, I find I'm back to doing that 😕, only I then spend a few hours every few days trying to write up my configuration for imaginary others. This most recent post I'd never have gotten around to if I'd known how much proof-reading it would take.

carousel-points.png

carousel-linespoints.png

carousel-ellipses.png

carousel-boxerrorbars.png

♟️ maiachess.com via Jimmy Miller

🧵 conversation

I've taken a short break from my language, debugger, and editor to program my digital chess board (Chessnut air). I've been trying to learn/get better at chess for a while now and thought a digital chess board would be a great way to practice away from the computer. It is, except 1) bots don't play like people 2) the apps for the board suck. If fixed the first by using maiachess.com a chess bot trained on Lichess data to play like real people (it's impressive). I also had to whip up a custom openings book. And 2 by writing my own software for the board. The bluetooth protocol was surprisingly simple (and luckily someone already reverse engineered it for me).

I think the most fun part about all of this has been building an interface in the chess board itself, rather than in an app. My program has no ui other than the chess board. Want to play a game as black, setup up the pieces, and pick up the black king. The game will start when you place it down. Setup a similar setup for choosing a unique starting position. The UI has changed everything for me. I use it now way more since I don't have to mess with an annoying app on my phone.

Thinking Together

🤔 red-lang.org via Mariano Guerra

🧵 conversation

Anyone here uses/used red-lang.org ? Could you share your thoughts on it?

🎥 I just realized why I´m doing the Marble Machine Project via Mariano Guerra

🧵 conversation

Youtube Thumbnail

Why are you doing your FoC project?

🔌 Akka GraphDSL via Safta Catalin Mihai

🧵 conversation

Does anyone know of a: 1. open source, 2. visual programming, 3. streaming ( as in recative streams), 4. statically typed project for visually building a data streaming graph and running it ?

I think this should be quite natural to do since looking at the code for Akka GraphDSL - it’s already pretty close to a visual language.

🐸 Prior art for See It via Lu Wilson

🧵 conversation

I mapped out a huge list of prior art for visualised LINES of memory in coding environments.

I've annotated the LINEs in each example. Please check it out and let me know if it prompts any ideas/thoughts!

And if you know anything I could add, please send em over!

image.png

💡🎥 Embracing Software Variability to build Explainable Systems via Francisco Garau

🧵 conversation

Youtube Thumbnail

Nice presentation of the Glamorous Toolkit in the latest Vamos 2024 Conference in Bern.

vamosconf.net

vamos2024.inf.unibe.ch

Content

🛸 github.com/KinaKnowledge/juno-lang via Rafi Khan

🧵 conversation

An image based lisp in the browser that plays well with JavaScript.

You can do live programming on the Dom!

🧮 calculang via Mariano Guerra

🧵 conversation

calculang is a language for calculations, It aims to be:

  • shareable, communicable 💬 💌
  • transparent, verifiable 🕵️‍♀️
  • understandable, concise 📖
  • flexible, reusable ♻

only for calculations ⇔ numbers ⇔ workings

calculang doesn’t ‘do things’ (“side-effects”) like regular programming languages 💥

This serves to simplify, permitting the aims above for calculations, numbers, and their workings ✅️

📝 The Xylophone Maze: Screen-free coding for children | Gabor Torok via Kartik Agaram

🧵 conversation

Help papa find her daughter

My child is 3 years old. I was looking for a game that we could play together and would be her first programming-like activity. I wasn’t keen to teach her anything specifically but rather offer her the option to explore what coding or algorithmic thinking tasted like (similarly when you would give your child a sheet of paper, brush, and paint to play with). I evaluated some computer game options but I wished to find screen-free, unplugged alternatives, especially since she has not been used to interact with a computer or screen at all.

🆕 Experiment visualizing structure diffs via Kartik Agaram

🧵 conversation

An experiment in diffing structured data by Jonathan Edwards

📝 Why Bloat Is Still Software’s Biggest Vulnerability via Shalabh Chaturvedi

🧵 conversation


👨🏽‍💻 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

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

🧵 conversation

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

🧵 conversation

Youtube Thumbnail

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

💬 Tom Lieber

🧵 conversation

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.

2024-02-11 binomialish buildup.gif

📝 Lab notebook for “Tom’s PPL” via Tom Lieber

🧵 conversation

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

🧵 conversation

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...

💬 Ivan Reese

🧵 conversation

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

🧵 conversation

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.

2024-02-17 fair exam - one failure.gif

Reading Together

📝 Programming-in-the-large versus programming-in-the-small by DeRemer and Kron (1975) via Christopher Shank

🧵 conversation

📝 A Small Matter of Programming Perspectives on End User Computing By Bonnie A. Nardi via Stephen De Gabrielle

🧵 conversation

~Chapter 1 Introduction~ (11 pages)

A Small Matter of Programming Perspectives on End User Computing By Bonnie A. Nardi

Thinking Together

💬 Guyren Howe

🧵 conversation

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

🧵 conversation

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

🧵 conversation

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.

IMG_3665

Content

🐦 Duncan Cragg on X via Duncan Cragg

🧵 conversation

🐦 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:

https://t.co/oTZHbNBVYB

I see folk stifled by conformist academia

What did I miss?

Tweet Thumbnail

💡 Maybe Everything Is a Coroutine - Adam Nelson via Kartik Agaram

🧵 conversation

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

🧵 conversation

Youtube Thumbnail

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

🧵 conversation

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

🧵 conversation

Youtube Thumbnail

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

🧵 conversation

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

Future of Coding Weekly 2024/02 Week 2

2024-02-12 00:17

💡 Notation & representation 🪢 Combine nodes into compositions 🦠 Will Wright's Dynamics for Designers

Our Work

💡 Zest: notation and representation via Jamie Brandon

🧵 conversation

Struggling with nominal types sneaking in everywhere

👄 Teaching computers to speak: the prosody problem via Kilian Butler

🧵 conversation

I wrote this article which covers speech synthesis ML, with a focus on the most challenging + interesting problem in speech: prosody generation.

Understanding this is key to building multi-modal input/output for LLMs

~_*Teaching computers to talk: the prosody problem*_~

papercup.com/blog/realistic-synthetic-voices

If anyone’s interested in the topic hit me up 🤩

🎥 Gloodata: Smart Labels & Mistral Model using Anyscale Endpoints via Mariano Guerra

🧵 conversation

Youtube Thumbnail

Smart labels are a visual indication that a value has detailed information and contextual actions accessible with a click

Plugins can register their own smart label types and detailed views and contextual actions for those types or types registered by other plugins

First demo using an open model instead of ChatGPT

💭 tldraw.com via Daniel Buckmaster

🧵 conversation

Not exactly a project, but I was thinking about the way I use tldraw.com as an infinite single notepad - not starting new files, just gradually moving to a new part of the canvas as I need to. And as I was thinking I thought it'd be amusing to show off my canvas. This is about a year's worth of intermittent diagramming. I still use pen and paper a lot, and I don't yet know what the trigger is for me to get on tldraw instead of reaching for my notebook.

image.png

🐸🎥 DreamBerd Vision Pro [FULL COMPREHENSIVE REVIEW] via Lu Wilson

🧵 conversation

Youtube Thumbnail

Introducing the DreamBerd Vision Pro

(satire)

💬 Tom Lieber

🧵 conversation

The future of coding may involve rendering histograms of random variables in Three.js, so here we are.

2024-02-07 animated histogram.gif

💬 Tom Lieber

🧵 conversation

It's all smoke and mirrors, but seeing the charts fill up was part of the UX that I wanted to test first, and… oh yeah, that's what I was hoping for. 👌

2024-02-08 marginals with code.gif

💬 Lu Wilson

🧵 conversation

🎥 is this silly?

🪢 Combine nodes into compositions in a visual programming system via Maikel van de Lisdonk

🧵 conversation

Youtube Thumbnail

Hi, in this video I show the progress on a new feature that I really wanted for quite some time: combining nodes into reusable compositions. This helps in making flows smaller. The compositions can be accessed from within the node-type selector so they can be added to the flow. One thing that I really like is how the inputs and outputs to compositions are created based on the connections which cross the bounds of the selected area. I've also finally added a way to copy & paste nodes which is a nice productivity improvement.

In the video I demonstrate my other flow engine instance with which you can create fragment shaders in webgl and here I've recreated a shader form shadertoy made by kishimisu (see shadertoy.com/view/mtyGWy ). I had to extend the node-types to make this possible. Currently I cant yet create nested compositions but once that is possible I hope it will help decrease the "node-spaghetti" further. Because I do think that the textual shadertoy code is still easier to read then my visual version. Which obviously I want to improve.

I am almost ready to send out a link to my visual editor but decided to work on it a little bit more for ar least this month. I want to extend and improve some features and create more example flows.

📝 Cognition and conditioning via Tom Lieber

🧵 conversation

I wanted to make a pit stop at this tug-of-war example from ProbMods before I moved on to working on the code editor because it's one of the most eye-opening in terms of what's possible in PPLs, and because this is the visual I wanted that I couldn't get in WebPPL, in two ways: 1) all the plots, arranged how I wanted them, and 2) always-on plots that let me see the samples as they come in, with the charts getting smoother and smoother the longer I'm willing to wait.

2024-02-10 tug-of-war.gif

Reading Together

📝 If What We Made Were Real: Against Imperialism and Cartesianism in Computer Science, and for a discipline that creates real artifacts for real communities, following the faculties of real cognition via Stephen De Gabrielle

🧵 conversation

If What We Made Were Real: Against Imperialism and Cartesianism in Computer Science, and for a discipline that creates real artifacts for real communities, following the faculties of real cognition~

Antranig Basman

Abstract: I argue that we have not yet succeeded in constructing any real software, but merely simulations or cardboard prototypes of software…

PPIG 2017 - 28th Annual Workshop

ppig.org/papers/2017-ppig-28th-basman

Not new, but new to me. Indeed PPIG seems to be a goldmine

🖊️ video: Mobile Pen-based Computing (1992) via Pietu

🧵 conversation

An inspiring video: Mobile Pen-based Computing (1992). 1hr 3 min.

In the conference recording, Terry Winograd demos the PenPoint OS, a mobile operating system focused on the "notebook interface". This is around the time PDA's and Apple Newton were on the radar.

🗨️ Software Craftsmanship: The New Imperative via Dave Liepmann

🧵 conversation

Pete McBreen's Software Craftsmanship: The New Imperative (2002).

Most of the book is about the consequences of distinguishing between "software engineering" (defined as armies of programmers going down a waterfall) and "software craftsmanship" (defined as small teams working incrementally). He runs deep with the craftsman metaphor, taking seriously how to make real the "apprentice" and "journeyman" stages in a software developer's career.

One interesting thread is that he points out how "best practices" are firmly a creation of the software engineering side of his binary, and do not satisfy craftspeople's very different trade-offs. Some by nature will wind around on their own path, custom-fitting each architectural decision to their preferences and the needs of the specific project.

There is overlap with our 💬 #thinking-together@2023-12-30, exploring Jack Rusher's ontology of [programming, computer science, software engineering]. It seems useful to me to further distinguish the "strong S.E." that Jack and McBreen use as definitional from the "soft S.E." which we all seem to use colloquially to mean all manner of techniques for making an application error-resistant. The work of the latter may not be intellectually engaging or novel but it lacks the qualities which make strong SE distasteful: centralization of power, treating developers interchangeably, the urge towards monoculture, a cultural belief in "training" instead of learning.

image.png

Thinking Together

💬 Jim Meyer

🧵 conversation

New visual programming languages don't fail as visual programming languages.

They fail as programming languages, which is what most new programming languages do.

💬 Guyren Howe

🧵 conversation

Is there an attempt at making a more beginner-friendly, perhaps graphical, form of prolog. Perhaps something like Squeak, but where the computation model is more logic programming than imperative, structured programming?

Or perhaps some other friendly presentation of logic programming?

Content

📜 Vesuvius Challenge 2023 Grand Prize awarded: we can read the scrolls! via Walker Griggs

🧵 conversation

This might be old news to some, but: Vesuvius Challenge 2023 Grand Prize awarded: we can read the first scroll!. I'm blanking on who exactly (if it's you, I apologize), but I met someone at a FoC SF meetup last year who was working on this project. Immensely cool work!

The 2000-year-old scroll discusses music, food, and how to enjoy life’s pleasures.

📝 The Unreasonable Sufficiency of Protocols via Christopher Galtenberg

🧵 conversation

Bumping this from history, as a submission for FoC podcast papers to consider, at least a background text to have in the toolbelt – as so many of the podcast's conversations are around bridges yet-to-be-built – the meta-domain of protocols supplies much of the missing scaffolding

Protocols, we believe, deserve to be first-class concepts in any discussion of coordination phenomena, at every level: from handshakes to civilizational futures. We believe that protocols, especially ones mediated by computers, will play an increasingly important role across all aspects of modern human life.

venkatesh-rao.gitbook.io/summer-of-protocols

Unreasonable Sufficiency of Protocols snippet.png

🦠 Will Wright's Dynamics for Designers via Mariano Guerra

🧵 conversation

Youtube Thumbnail

Present Company

💬 Tom Lieber

🧵 conversation

Can I be happy writing TypeScript for the browser? I made a Node project that imports Three.js, and Browserify takes almost four seconds to bundle it every time I make a change. Is this how it’s done?

📢 Levlo: looking for the first team member via Jarno Montonen

🧵 conversation

I'm looking for the first team member for a natural language programming startup I've been working on since the beginning of 2021: levlo.com.

The responsibilities can be defined based on experience and interests to fit somewhere between passionate frontend developer + designer and full-stack developer + product owner/chief product officer.

I live in Espoo, Finland, but we'd work mostly full-remote. However, due to bureaucracy, residence in Finland is required. Atm I have funding for 12 months of 4200€/month salary (with working time and benefits as defined by Finnish law) and will be offering equity on top. The goal is certainly to find funding for paying the salary going forward as well.

Since releasing the demo shown on the site, I've been working on rewritting large parts of the underlaying technology to be able to add features required by potential use-cases that have come up. Now, after ~5 months, I've finally been able to start adding those language features and start work towards enabling real world use-cases. Sales effort hase been fairly minimal so far, but I have one confirmed pilot customer (B2B) and will be putting more effort into sales going forward.

The techstack is C#, Azure and Blazor (similar to Vue). The most important skills would be web frontend development (& design), cloud (Azure), and C#. In that order. The C# you'll need to write will be fairly trivial and it should be easy for anyone familiar with eg. Java or TypeScript to pick it up. But first and foremost I'm looking for someone passionate about the future of programming willing to embark on this hopefully decades long journey with me!

Textual no-code platform for creating logic-focused web apps usable by people and other software


👨🏽‍💻 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

Future of Coding Weekly 2024/02 Week 1

2024-02-04 23:10

Our Work

🎥 Inventing on Principle for Gleam via Peter Saxton

🧵 conversation

Vimeo Thumbnail

I've implemented an interpreter for Gleam, (in Gleam) so that I could make a bunch of tooling quickly. This is my first effort at brett victors version of Live Coding.

📝 Software Instruments via Jasmine Otto

🧵 conversation

My PhD thesis about my ongoing attempts to marry AI and HCI is now up. (A lot of it is about academia, where those two fields do not like to talk.) Plenty of stuff about paper tools, rapid visualization prototyping, and the connection between domain-specific languages and direct-manipulation interfaces.

Author(s): Otto, Jasmine Tan | Advisor(s): Smith, Adam M | Abstract: Software instruments are intelligent interfaces used by domain experts to manipulate complex artifacts. By contributing the concept of software instruments, this thesis connects the field of data visualization to its relations in both artificial intelligence and computer-supported collaborative work. Software instruments arise from projects carried out by teams with complex datasets in aerospace and narrative design, whom I have worked closely with, and which are developed and documented in this thesis. They are a lens for other computational media practitioners to introspect about their own design processes and artifacts. I argue that the evaluation of software instruments occurs in discussion with expert stakeholders, adopting the lens of critical technical practice to avoid disciplinary silos and narrow strategies of evaluation.

💻 github.com/sublayerapp/blueprints via Scott

🧵 conversation

We just open sourced this concept we've been working on for programming with LLMs we're calling Blueprints. It is kind of an alternative to coding copilots. It allows you to capture patterns/sections/chunks/classes/etc of your code to store as a "blueprint" then use those blueprints as a base template for generating something new - in your particular style. Think about it similarly to how when you work on a new feature, a lot of the time there's similar code in your codebase that you look at and modify for this new use case you're working on.

The way it works is that when you capture a blueprint, the server generates a description with GPT4 along with vector embeddings of that description so that the next time you want to do something you just need to describe it, it finds the closest description, and uses the description+code to prompt for the new code generation.

Would love feedback or to chat if this sounds interesting to anyone!

Repo here: github.com/sublayerapp/blueprints

Short demo of it in action

💬 Elliot

🧵 conversation

Hey y'all. I'm working towards a library for rendering and adding direct-manipulation to infinite recursive things. I want to share this picture showing where I'm at.

On the left is the rendered infinite recursive thing. On the right is the diagrammatic specification for the thing on the left. The library interprets the diagrammatic spec and produces a program that takes the initial transformation (position, rotation, scale, and skew) of a shape (data for a t in the diagram), and then runs forever, adding more shapes to the left and the right as it runs.

The arrows in the spec mean "depends on", and the lines mean "depends on" both ways. I could have drawn the lines as two-sided arrows but I found that it was harder to read. Explaining this now I realize its kind of confusing tho lol.

The self-loop on the t in the spec is what makes the resulting diagram recursive, otherwise it would be a single red, green, and blue thing.

Currently the diagrammatic spec is actually specified in text 😐

image.png

💬 Gabriel Grinberg

🧵 conversation

Hey everyone 👋 made some big progress with Flyde in the recent months, and would love to share it here!

Flyde is an open-source, visual programming language. It runs in the IDE, integrates with existing TypeScript code, both browser and Node.js.

Flyde is

Would love to hear your thoughts and feedback 🕺

🎥 Demo

Devlog Together

🎠 Pong Wars via Kartik Agaram

🧵 conversation

Have y'all heard the good word yet about Pong Wars, a.k.a Yin-Yang for Pong, a.k.a Pin-Pong?

🎥 Ping Pong

🎲 Intro to WebPPL, a Probabilistic Programming Language (PPL) via Tom Lieber

🧵 conversation

Thanks to the power of View Source, I've embedded WebPPL on a web page of my own site! Just a simple (but perhaps more evocative than usual) intro to the language for now: alltom.com/pages/webppl-intro

💬 Oleksandr Kryvonos

🧵 conversation

so this has been developed a while ago, I just wanted to see how 🎥 code on canvas looks like

Reading Together

📝 The half-life of developer skills is shrinking rapidly - Stack Overflow via Salmen Hichri

🧵 conversation

A very interesting podcast talking about the future of software engineering 💡

  • How classic programming differs from ML/AI programming ..
  • How to software engineers can adapt to emerging AI technologies ..
  • And few other topics related to AI/ML and software engineering ...

Content

📘 The Architecture of Open Source Applications via Florian Schulz

🧵 conversation

Just learned about this: “The Architecture of Open Source Applications”

📝 The Engineering behind Figma's Vector Networks via Shalabh Chaturvedi

🧵 conversation

Interesting read covering vector graphics "paths" and "vector networks"

A deep dive into the world of vector networks, and the engineering challenges involved in their implementation.

🧑🏽‍💻 getspectral.io via Mariano Guerra

🧵 conversation

Figma meets Visual Studio Code: Collaboratively navigate, debug and edit your codebase on an infinite canvas


👨🏽‍💻 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

Future of Coding Weekly 2024/01 Week 5

2024-01-28 22:46

📍 Spatial Computing 🧑‍🏫 Future of Kids Coding

Our Work

📝 Structured data. Not too much. Mostly text. via Kartik Agaram

🧵 conversation

📍 Spatial Computing with links not apps via Duncan Cragg

🧵 conversation

My latest article:

Spatial Computing with links not apps

Freedom from the Metal to the Metaverse

Devlog Together

💬 Jason Morris

🧵 conversation

This week I paid off some technical debt, and refactored a single 7500-line file into 134 different JavaScript modules. I did this to myself. No one to blame but me. But it's finished.

Thinking Together

💬 Mariano Guerra

🧵 conversation

Why aren't you using one of these? What's missing in them? is your use case not covered?

  • gtoolkit.com is the Moldable Development environment. It empowers you to make systems explainable through experiences tailored for each problem.
  • unison-lang.org A new approach to Distributed programming
  • github.com/hyperfiddle/electric A reactive DSL for full-stack web development, with compiler-managed frontend/backend network sync
  • redplanetlabs.com a new programming platform that ** reduces the cost of building scalable backends by 100x
  • croquet.io Multiplayer Platform for Web and Unity
  • enso.org Nodes and wires data manipulation
  • rvbbit.com reactive data boards & flows
  • wolfram.com/language a symbolic language, deliberately designed with the breadth and unity needed to develop powerful programs quickly.

💬 Jacob Zimmerman

🧵 conversation

Just curious for all your thoughts, is being ahead of your time a good thing? I’m thinking of a conversation I had with @Toby Schachman in the Cuttle discord a while back where he mentioned that Cuttle aimed certain details at a status-quo of programming style unlike it’s predecessor Apparatus, I thought that was quite profound. I’m thinking also of Fortran vs Lisp (or perhaps Forth). When is it not worth it to meet people where they are?

📍💬 Eli Mellen

🧵 conversation

I wanted to bounce 2 terms I've been thinking of off of this group:

I dig visual programming, but think the term is like a little bit of a brain poison because it isn't really descriptive of the goals, and, like, almost all textual programming is inherently visual, too...just...in the way text is.

I think Ivan Reese was the person I first heard float the term "spatial programming," which I dig, but at least for me, it also misses the real value add of what I'm looking for in a "visual" system.

So, the two terms I've been kicking around:

  • relational programming
  • cartographic programming

Neither are perfect, and both feel exhaustingly pretentious (a good thing, may haps?) but my intention with both terms is to highlight that these sorts of systems, unlike text-based programming, help make the relationships between different elements (classes, data flow, inheritance, etc.) meaningful using information other than similar names.

Useful? Stupid? Prior art?

Content

🎥 The Only Unbreakable Law via Konrad Hinsen

🧵 conversation

Youtube Thumbnail

A nice talk about Conway's law

📝 Visualization of Cultural Heritage Collection Data: State of the Art and Future Challenges via Jasmine Otto

🧵 conversation

Given recent discussion of what social scientists need from computing (and is it plain-text scripting?), sharing this recent survey of cultural heritage visualization systems (16p). Section 3.4 (Granularity and Interactivity) will be especially interesting; the authors avoid flattening this idea to a 'file system'.

💬 Eli Mellen

🧵 conversation

Another one of those developer thriving comics from pluralsight’s research folks. I like that this one hits on contest culture, and its relationship to AI. (also, love that the PDF includes accessible text)

📄 Brilliant Blobs.pdf

🧑‍🏫🎥 Testing a new programming approach with 11 and 12 year-old children by Agustín R. Martínez via Beni Cherniavsky-Paskin

🧵 conversation

Youtube Thumbnail

Whoa. Similar to Lu Wilson's probabilistic rule-driven VMs,

plus a touch of Orca? (Specifically the way the kid built a timer out of a character pacing back and forth, see around 11:10-14:30)

I particularly love the use of user-drawn icons in lieu of symbols. Naming is hard (and requires literacy).

End User Programming

📝 Myths and Mythconceptions via Stephen De Gabrielle

🧵 conversation

Almost finished listening to the marathon podcast on this 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

Future of Coding Weekly 2024/01 Week 4

2024-01-21 23:07

🤖 Intersection of programming & AI ⌨️ Keys, Boxes & Arrows 📚 Probabilistic Models of Cognition

Our Work

🎼 Polygon via Clam R

🧵 conversation

Polygon: A spatial approach to sequencing musical rhythms

Inspired by Bret Victor's lectures and some of the cool stuff i've seen on here, I made a drum sequencer where the relative positions of nodes determines the spaces between notes in a pattern.

Generate drum patterns through spatial computing.

🤖🎥 Gloodata: Your Personal Productivity Assistant via Mariano Guerra

🧵 conversation

Youtube Thumbnail

I recorded a short demo showing the latest plugins and improvements I've been working on in gloodata.

Gloodata: Your Personal Productivity Assistant

The demo shows timezone information, weather forecast, maps, routes, content extraction and summarisation plugins.

📝 public.me via Anton Podviaznikov

🧵 conversation

made a simple tool to publish Apple Reminders online public.me.

Sounds not impressive, but Apple Reminders gave me an interesting data structure: list of items with predefined format(name, description, date, url, isCompleted, images etc).

So I was able to build habits tracker directly in reminders and have nice visualizations of streaks like this public.me/anton/daily

🤖🐦 Tweet from @io_sammt via Samuel Timbó

🧵 conversation

I see lots of folks here are interested in the intersection of programming and AI (to say little); I finally posted an example combining Unit and LLMs on X. It is a reactive graph for text reasoning and image generation. I start from a statement, then apply commands to transform it, ultimately rendering generated images. Take a look . Full preview:

Screenshot 2024-01-20 at 10.56.26.png

Devlog Together

🎠 A little game integrated with its tools via Kartik Agaram

🧵 conversation

Integrating a little game with a sprite editor and a maze editor, all on a touch-screen.

🎥 sprite game

💬 Jimmy Miller

🧵 conversation

When working on my language I've been frustrated by the lack of symbols and extra information for my JIT compiled code. There is a way to get this kind of information, but it involves building an elf binary in memory. Way too much overhead for this point in my development.

So I started building my own debugger frontend to lldb. Not much to show right now. But the idea is to specifically tailor it to my language. So you'll get a compiler explorer like experience, but also be able to view the stack and heap and all of that live. See the language level values stored in there.

The fun part to for me was how to convey the information I need to the debugger. The answer came from the standard JIT interface. How do you tell your debugger things? You make a function that the debugger has a breakpoint in. The function does nothing in the body. You just pass some args that tells the debugger where in memory to get the information it needs. Super clever. So now I'm working on passing all my compiler metadata to the debugger frontend so it can know how to render things intelligently.

⌨️🎥 Using just the keyboard for visual programming via Maikel van de Lisdonk

🧵 conversation

Youtube Thumbnail

This week I spend a lot of time adding basic keyboaed support in the visual programming system that I am developing. For productivity I think that just using a mouse for creating a visual flow is not enough. One of the reasons why we are so productive when using a text editor for programming is the usage of the keyboard I think. Off course it's not the only reason but I do think it's of major influence.

So being able to use the keyboard for visual programming seems like a very good idea. In this video I show exactly that.

Currently after every update to the flow, the tabindex is set on all the nodes and input elements. In normal webapps this is not a good idea, but here it is the only way to give the browser the proper and logical tab order. When tabbing through the flow, the camera is focused on the selected node overriding default browser scroll-behavior when a focused element is out of the current view. Using ctrl+a you can add a new node and also select the thumbs for the connection.

Furthermore I've added some other features like being able to run a flow using the keyboard (ctrl + Enter) and opening the properties popup. A missing feature is being able to add a new node before the currently selected node.

Lots of small tweaks were needed to make this work, but I am glad I spend the time because this also increases the accessibility.

💬 Oleksandr Kryvonos

🧵 conversation

I created a simple Linked-Data / RDF console app (I call it MondAI),

it allows creation of triples Entity->Connection->Another-Entity

and allows query data

🎥 Demo

Reading Together

💬 Tom Lieber

🧵 conversation

Ivan Reese, in episode 9 of a podcast I can’t tell if I’m supposed to know about or not, you asked, “Where is [data] going when you’re throwing it away, and when you rewind, how does it come back?” And I don’t think it has answers that you’d want to apply directly to your situation, but ~Feynman’s Lectures on Computing~ comes back to the idea of reversible computing again and again with various playful metaphorical lenses. I think that at the very least it might be a nice way to take a break and think about the problem from a physicist’s perspective now and then, if this is still a problem you’re working on.

Content

🐇 rabbit.tech/keynote via Pietu

🧵 conversation

rabbit.tech/keynote (demo starts at 7:33) shows an un-released portable personal-assistant device. There's a lot going on in the keynote, both in UI-wise, and how they demo and describe this "new kind" of device.

📄 Modern Plain Text Computing via Ivan Reese

🧵 conversation

This Modern Plain Text Computing course at Duke has a refreshingly frank description written by Kieran Healy. I can't tell if I should feel positively, negatively , or overwhelmingly negatively — double adverb !! — about the existence of this course, though.

📚 Probabilistic Models of Cognition via Tom Lieber

🧵 conversation

I’ve been really into probabilistic programming languages (PPLs) lately. I had a few “aha” moments and I’m decidedly in the “hit everything with this hammer to figure out where the nails are” phase.

Anyway, is anybody here in a similar headspace? Or already experienced with PPLs?

Is anybody curious to enter this headspace with me? I reviewed the (online, free, programmable) book that brought me here: micro.alltom.com/2024/01/11/the-cognition-in.html

The “Cognition” in Probabilistic Models of Cognition 📚 is the hardest part to get across when I recommend this book. Because the book isn’t “Bayes works, yawn.” It’s so much more interesting if you, like me, exist primarily in ML circles that focus on curve-fitting: What could be going on in our heads when we can’t tell that the two grid squares in that optical illusion are the same color?


👨🏽‍💻 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

Future of Coding Weekly 2024/01 Week 3

2024-01-14 23:16

🐦‍🎵🐸 Arrows in Arrows in Arrows 💡 Moldable Development Patterns 🤖 LLMs & Languages

Two Minute Week

💬 Jason Morris

🧵 conversation

Big milestone. Three minute video, shows my system using LLM code generation to generate visual logic code representing sections of a law, based only on the text of the law. (play at 2x, there's a lot of waiting)

🎥 LLM code generation

Our Work

🧮 Binary Tetris: What if tetris had a baby with a hex editor? via Mariano Guerra

🧵 conversation

Binary Tetris: Interactive Binary Operation Playground

What if tetris had a baby with a hex editor?

🐸🎥 🎵 Arrows in Arrows in Arrows via Lu Wilson

🧵 conversation

Youtube Thumbnail

hello i made a little explainer video for my node-based visual programming language please enjoy

Devlog Together

🤖💬 Jason Morris

🧵 conversation

Proof of concept for having an LLM generate logical code in a visual coding environment for legislation.

🎥 blawx autogen

🎥 Timeline slider for a visual programming system via Maikel van de Lisdonk

🧵 conversation

Youtube Thumbnail

In this video I show a timeline slider with which you can scroll through the executed path of a visual flow program. Some node-types like variables and the node-tree-visualizer have there state being recorded for each execution.. so when moving through the timeline, these nodes are updated and especially with the node-tree-visualizer this gives a good overview of how a program/algorithm works (in this case quicksort). Instead of having to visualize this in your head , you see the effect of the program for each execution step and you can also inspect the variables like the left and right arrays and the pivot variable.

On the end of this month I hope to release a demo version of the project I am working on, so the last weeks I've also been fixing bugs and making other improvements. One of the bigger improvements is the way the moving message bubble is handled, it's now much smoother especially on lower execution speeds because of the use of requestAnimationFrame, it was on my wishlist from the beginning I implemented this but hadn't come around to it yet.

Thinking Together

🤖📝 The Future is Conversational ― Crafting Next-Gen User Experiences With AI via Salmen Hichri

🧵 conversation

I wrote an article discussing The Future of User Interfaces .. and the role of Conversational AI :

I'm curious to know what the community thinks! 🧠💡

  • Do you foresee a world where chatbots and voice are the dominant user interfaces?
  • Or will the mouse/screen always maintain a leading role in human/machine interactions?

Conversational AI is transforming software design. Learn how AI co-pilots, chatbots, voice assistants, and spatial interfaces are changing UX and development from NLUX founder Salmen Hichri. Get hands-on advice for auditing and integrating intuitive conversational interfaces today.

Content

🤖🎥 The Near Future of AI [Entire Talk] - Andrew Ng via Paul Tarvydas

🧵 conversation

Youtube Thumbnail

Ng talks about upcoming opportunities for entrepreneurs exploring AI technology and addresses questions of responsibility and risk.

Ng understands the technology, yet, in this talk concentrates on opportunities.

📝 What Can Software Learn From Hypermedia? via Shalabh Chaturvedi

🧵 conversation

I really like the premise of this paper and the first few sections of this paper, framing hypermedia as an underlying medium in software.

Hypermedia was introduced not as a subgenre of software, but as a different conceptualization of what software is.

I'm not too excited by their implemented solution though (Webstrates). Still, the premise can be taken in many other directions I imagine.

📝 Missing the Point of WebAssembly via Ivan Reese

🧵 conversation

I enjoyed this article on Missing the Point of WebAssembly. Count me as one of the people previously "missing the point" by this definition. I now feel less inclined to explore wasm in my web dev work, and more inclined to explore it in my VPL work.

💡🎥 Keynote: Moldable Development patterns by Oscar Nierstrasz via Konrad Hinsen

🧵 conversation

Youtube Thumbnail

This talk on Moldable Development gives a nice introduction

📑 Folk (Browser) Interfaces via Nilesh Trivedi

🧵 conversation

Really liked the take on digital library :

I think of these as folk interfaces, akin to the jigs one makes in wood-working. Divorced from grandiose ambitions of building comprehensive systems, it leads the programmer to directly engage with data.

🤖

🤖🎥 LLM/Copilot UX Experiment: Fuzzy Matching via Josh Bleecher Snyder

🧵 conversation

Youtube Thumbnail

Not sure whether this is quite on topic for FoC, but I made a toy and I'm pleased with it.

I was inspired by Dasher, which uses the low entropy of natural language to make it possible to enter text using only a 1-dimensional input device. The core idea is to make the most likely next input take up a lot of space and thus make it easy to reach.

Most interactions we have with a computer involve low entropy input.

With (1) good models, and (2) a lossy encoding/decoding model that is easy for humans to use, you should be able to get away with entering a lot less.

For code, LLMs are pretty powerful models. And fuzzy matching is a pretty easy-to-use lossy encoding model.

So I made this


👨🏽‍💻 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

Future of Coding Weekly 2024/01 Week 2

2024-01-08 00:09

💡 Communicating programming ideas 📑 On simplicity 🎥 What even is code?

Our Work

💬 Robin Allison

🧵 conversation

I really like TodePond's video "Screens in Screens in Screens". I've been wanting to do the same kinda thing with mathematical formulas instead of shapes, a kind of "formulas in formulas in formulas", but I'm an awful programmer so I'll describe some math you can do to that effect. Apologies in advance for the shoddy explanation though.

Here's a thing you can do with "screens". You can name screens. Start with some screens A B C. Then if C is inside A, and A and B are the same color, then there is a copy of C inside B. What do you call this copy? "The copy of B from A to C"? It will be convenient if we give it a symbolic name. Call it (A->B)C. Or if you are really hardcore you can call it just t(A,B,C) where t is a ternary operator describing the result of copying C from A to B. You may think to only consider (A->B)C when C is inside A, but the math becomes tractable if you consider all screens at once. Then we can stipulate some axioms:

  1. (A->A)B = B

  2. (A->B)A=B

  3. (B->C)(A->B)=(A->C)

  4. (A->(X->Y)A)=(X->Y)

The first axiom means if you are copying a screen from one screen to itself, you aren't changing anything. The second axiom is "obvious" except for considering (A->B)A in the first place. The third axiom means if you copy a screen from A to B and then from B to C that is the same as if you were to copy it from A to C directly. It is also shorthand for (B->C)((A->B)D) = (A->C)D for all screens D. The fourth axiom takes a bit more explaining. Basically we want this equation to be true whenever A is in X, and both sides are being used to copy something from A. But our theory at this point doesn't have a predicate for "A is contained in X" so we say it holds in all cases.

With these axioms you can show the operators (A->B) form an algebraic structure called a group: You can multiply them by performing one copy after the other (C->D)(A->B). This operation is associative (I mean, it must be), and has an identity element and inverses. The identity being (A->A) and the inverse of (A->B) being (B->A).

Another perspective is to view screens as points in an affine space (i.e. vector space without a specified origin). Then (A->B)C can be thought of as (B-A)+C, and each of the axioms above can be interpreted as vector equations. This isn't a good model though because it ends up saying some screens are the same when they should be different. You can still take the above axioms and show that screens form a generalization of affine spaces called torsors.

I'll share more if anybody is interested. It really needs a much longer write up, but I thought somebody might know if its already been done before.

📝 Don't strip the meaning away from your runtime via Mariano Guerra

🧵 conversation

Don't strip the meaning away from your runtime: Exploring extending programming languages to include descriptions in the domain of the problem and solution

Spoiler alert: interactive example inside 🙂

First draft, feedback welcome!

📑 On simplicity via Stefan Lesser

🧵 conversation

A few weeks ago I started a new series of blog posts (or “newsletters”, in Substack parlance) about simplicity :

1 • On simplicity introduces the series with how my thinking about simplicity has changed over the years.

2 • Meaning-ful design connects simplicity to meaning making and coherence.

3 • Familiarity explores how complex things can be surprisingly simple and why we can’t ignore context.

4 • Reciprocal realization frames design as a complex dynamic process of mutual adaptation between designer and designed object.

I expect about four or five more posts coming after that, but I haven’t written them yet, so I have no idea. 🙂

A lot of this draws on 4E cognitive science, design theory, and philosophy. As such it may perhaps be less technical than you would expect it to be, although I try much harder in this series to relate it more directly to programming and software development than in my last.

And that’s why I post it here, today. I’m hoping to learn if this resonates at all with a technical audience, or if this is still too abstract. I know we’re all craving for the easily applicable Top 10 Things to Make Things Simple (and number 6 will surprise you), but I have reason to believe that it’s just not that… well… simple. But I think I’m slowly making progress towards synthesizing something valuable, even if I can’t express it as beautifully as I would like to. Yet.

Let me know what you think, and please ask any questions you may have (in thread or via DM). Appreciate your feedback!

💬 Jim Meyer

🧵 conversation

Spinners are boring, so might as well get creative with AI UX for loading states, even with fast LLMs like Mixtral.

The thinking is to not only show multiplayer presence on our canvas, but also what the AI is doing and working on, including visualizing the code its writing in real-time.

henosia-ai-code-minimap.gif

Devlog Together

💬 Kartik Agaram

🧵 conversation

I think I have a usable app development experience now on my tablet. I basically took my recent Lua Carousel and made a few changes. In Carousel (first clip) you start in the programming environment, each screen runs a separate script, scripts run in the background of the editor, and each screen manages its own canvas. The new setup (second clip) starts in the app, which takes over the entire device until I 'exit' into the programming environment. In the programming environment, screens are now just editors with a shared 'run' button and canvas. Hopefully I can now finish polishing this ~turd~ app entirely on the tablet.

🎥 dash-baseline

🎥 dash

💬 Oleksandr Kryvonos

🧵 conversation

I built a bare-minimum in-browser text editor,

it saves files immediately on every key press,

I also created a history of revisions but realised I do not need them, git works good enough for now.

🎥 Demo

Some squishy balls via Kartik Agaram

🧵 conversation

🎥 boids

💬 Jason Morris

🧵 conversation

So I've only been a real developer again for a month, but holy cow. I would have thought keeping your data persistence layer in sync with your code would be easier than this, by now. Irritating.

Thinking Together

💡 Communicating programming ideas by Ivan Reese

🧵 conversation

Someone reached out to ask me for more thoughts about communicating programming ideas through media other than the academic paper. I wrote a reply, and then decided it would be worth sharing here to see if other folks have their own inspirations they'd like to share, or ideas for how our industry can go paper-free ;)


I feel like I owe reading an apology. I certainly try to play up my "crank" side on the podcast, but it does run the risk of mixing-up this is being silly with this is thoughtful critique .

I have tremendous reverence for the communicative potential of the written word. I just think there are some kinds of ideas that lend themselves better to other forms of expression, or some ideas that can't be written down.

For instance, it's very strange to me whenever I read a paper about HCI, especially if they're discussing GUI ideas. Sure, often these papers will be accompanied by a video. But, like, the work being described is about interacting with interfaces . I think the work should be presented as an interface you can interact with!

I'm especially fond of Bret's essays, naturally. Bartosz also does great work with visualization, though I feel like he leans a little too heavily on text and that the visualizations are too linear. Amit also does excellent work, but he has the advantage that most of the things he demos are inherently about interactive graphics so they lend themselves naturally to this sort of presentation (not to diminish the incredible effort Amit puts in to these articles).

The thing I want to see more of is… people finding ideas that can only be expressed through interaction. I think successfully achieving this requires that someone work natively in interaction, a lot, for a long time. As a result, most of these ideas seem to emerge in the periphery of video games.

One of my favourite examples is Dys4ia, a collection of microgames about the trans experience. It uses written language and (meaningfully crude) visual art to set up the plot , but interaction to tell the story .

Something I'm very interested in seeing (and have made a few attempts at myself, but nothing worth sharing) is an attempt to create a fully-usable programming environment presented as a game specifically for the purpose of communicating ideas about programming. There've been plenty of the inverse, where a programming system is the setting within which a game takes place (see all the works of Zachtronics, for instance), but I haven't seen anyone do a game as the setting within which actual programming takes place. Closest to that might be something like Minecraft or Dreams (etc), but I don't think those were designed to communicate ideas about programming the way, say, The Witness was designed to communicate a philosophy of science.

Another close comparison might be Advent of Code, where you playfully approach programming differently than in your normal work. The programming you do for AoC should feel meaningfully different. Similarly, imagine building your own Rosetta Code from scratch. That should give you a really particular feeling. I think it's related to, say, the feeling of writing a rasterizer for the dozenth time. I think these feelings are ideas, and that there's a whole language of them, and that the language is expressed through the creation of systems. I think if we studied this language, it would guide us toward building different kinds of tools.

And hell, you might eventually be able to write a paper about that. (Countdown to someone arguing that this is what Christopher Alexander has made a career of, in a sense.) But I don't think we will arrive at those system-feeling ideas in any way other than by building and playing with systems, and with a particular intention at that.

📖 tiktok.com/@etymologynerd via Steve Krouse

🧵 conversation

Hey friends!

I don't know if you're familiar with this harvard linguist on tiktok but he's the best: tiktok.com/@etymologynerd

I think it would be AWESOME if someone from "our community" would make those style of tiktoks, but about computer and programming history. I think it would become quite popular and be super enriching and educational

I have some amount of capacity to help and sponsor this, but I mostly wanted to put it out there as a general request for someone in our community to take up the gauntlet in this new medium

💬 Ivan Lugo

🧵 conversation

Heya internetpeoples ❤ I’ve spent a long time refining this and brought in “The LLMs” to help craft the tone here, and I think I’ve finally gotten it to a point where I feel like it hits my message and question, and doesn’t assume too much negativity or… doomcalling, heh. Thanks for the time and shared space, as always.


I’ve despaired when stuck on problems I just couldn’t crack. I’ve also felt the joy of those “aha!” moments when things finally click. We’ve all been there as coders. While documentation and searches can help fill gaps, little replaces another human sitting alongside, guiding with patience earned from experience. In those moments when someone more seasoned gave guidance, I felt hope renewed. How might we foster more of these vital human connections?

Key Discussion Points:

  • Knowledge flows when passion meets patience . I’m grateful for the patient coders who “reached down” to guide me. Let’s discuss barriers hampering these relationships. Generalizations about certain groups being “unwilling” to help are counterproductive. However, empathetic mentorship remains scarce. How might we change incentives?

  • Truly supporting newcomers requires understanding their frustrations are valid. I want to open a thoughtful discussion on constructive ways we can keep improving in this regard.

  • There are always exceptions by those dedicated to lifting others up. But much room remains for improving access, channels and incentives for more direct peer sharing across experience levels. It’s on each of us to reflect on where we can have an impact.

I welcome reactions, shared experiences, and dialogue toward that aim. How might we strengthen coder communities through human connections? Where do you see the biggest opportunities? Together, I believe we can guide positive change.

Content

📼 Cassette is a small, Lisp-like programming language via Eli Mellen

🧵 conversation

I ran across Cassette, a programming language today. I liked some of the stuff on the webpage and think it is interestingly aligned with the Future of Coding community.

I made Cassette as a simple language for “playful programming”. Playful programming is writing something for the sake of writing it. It’s making a software 3D renderer or a GIF reader, even though better implementations of those already exist. It’s making generative art programs and drawing them with a pen plotter. Cassette itself is playful programming—there are certainly other scripting languages that may be better for personal projects like these, but this one is mine.

Continuing,

In particular, I wanted Cassette to feel “essential”, where each aspect of the language reflects some fundamental aspect of computing (from a functional language perspective, at least). For example, I consider garbage collection, lexical scopes, and immutable types essential. The result is a little boring, but I hope it’s a good platform to play with other programming concepts.

Emphasis mine.

📝 This looks fun: Creative Coding 2024 via Eli Mellen

🧵 conversation

This looks fun

🎥 "What even is code? Building a non-code coding interface" - Katie Bell (LCA 2021 Online) via Nilesh Trivedi

🧵 conversation

Youtube Thumbnail

by @Katie Bell is 👍

🤖

💬 Jason Morris

🧵 conversation

Is anyone aware of any papers on LLM assisted code generation inside a visual programming environment? I've only seen one. I'm going to be doing some experiments later this month, and I don't really know the state of the art.


👨🏽‍💻 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

Contents © 2024 Mariano Guerra - Powered by Nikola