✉️ Not subscribed yet? Subscribe to the Newsletter

Future of Coding Weekly 2024/11 Week 2

2024-11-10 22:30

🎙️ Hest — The Podcast 🦋 Future of Coding Meetup & Starter Pack 🧑‍💻 inside the head of a J programmer

Our Work

📝 It takes a collective to raise an idea via Mariano Guerra

🧵 conversation

I wrote: It takes a collective to raise an idea

You may know about Alan Turing or John von Neumann, but what about John Vincent Atanasoff or Konrad Zuse?

Devlog Together

📝 Beginning to Work On a REPL for Drawware via Paul Tarvydas

🧵 conversation

Exploring / fooling around with making a REPL for drawware (inspired by Ivan Reese’s reference to the paper Advanced Game Engine Wizardry for Visual Programming Environments.

Surprising revelation: On the same computer, using just a websocket to connect a browser-based GUI to a Python program which interprets the diagram by shelling out results in turn-around that is "fast enough". It looks instantaneous. No further optimization, nor premature optimization, is required. Biggest missing feature at this point: a change to the diagram should cause the Python program to recompile and re-run the diagram and to update the output fields on the GUI. I think that this could be done by having the Python program periodically sample the 'test.drawio' file timestamp. I know that this is possible, but, I haven't worked out the details yet (suggestions welcome).

🎲 probabilistic programming language project via Tom Lieber

🧵 conversation

People who were interested in my probabilistic programming language project for the statistics might enjoy this sprawling post where I dig deep into the guts of the surprisingly approachable inference algorithm underlying it:

alltom.com/pages/spawelo

Cool problem ✅

Cool model ✅

Cool algorithms ✅

💬 Pietu

🧵 conversation

Hi all 👋.

I've started a project to try out some of the ideas I've had regarding markdown and writing.

The perspective I'm coming from is that I've found it difficult to write technical articles. Especially ones containing code examples. The cut-n-paste nature of building such articles usually results in some files missing, broken code or incorrect output.

I've had a bad habit of not sharing what i'm doing, so this time I want to share baby-steps i'm making with the project. It's very barebones. I've got the first feature (if you permit) working, so the below video demonstrates includable blocks.

🎥 Murkdown example blocks

for hopefully the final time via Kartik Agaram

🧵 conversation

I have gotten annoyed by timezone calculations 💬 #present-company@2024-11-07. Here's a static html page you can download and save locally to roughly compare times in different timezones (just hours; you're on your own for minutes)

The way I'm naively imagining using this:

  • Scroll to the timezone you know the time in.
  • Click on the nearest hour.
  • It'll highlight that column all over the page.
  • Scroll or find the timezone you care about.

  • If you're not in a whole-number timezone (Hello India), you'll need to do some additional mental arithmetic by comparing nearby rows.

Right now you need to know if you're currently in Daylight Savings Time. Which is often beyond me, but I'm not yet sure what to do about that..

Inspired by Bret Victor, but of course the inevitable mistakes are all mine.

🎙️ Hest — The Podcast via Ivan Reese

🧵 conversation

Lately I've felt a lot of "big feelings” — pain, yearning, confusion, frustration, desire — about computer programming.

I can't quite explain how I feel. Certainly can't write it down. Most definitely not in brief.

So I did the only thing that comes naturally: felt my way through it, out loud, exploratively.

Titles are hard, so it's called "Live as in Alive”, perhaps glancing sideways at the recent d-d-discourse about live programming vs live coding.

📝 Experiment With A Simple REPL For A DPL via Paul Tarvydas

🧵 conversation

Simple REPL for a DPL including a file watcher.

Towards Higher Level Syntax for Programming Languages

Thinking Together

📝 The Future of Programming via Paul Tarvydas

🧵 conversation

For discussion...The face of hardware is vastly different than it was in the 1950s and as it was in the early days of computer-ing, when concepts like programming languages and operating systems were invented. I think that this means re-imagining how we use what we've got, instead of just tweaking what we've got. It augments the meaning of "programming". To start things off, here are some thoughts: The Future of Programming

💬 Guyren Howe

🧵 conversation

I am quite interested in Event Handlers.

In college, I remember in my languages course discussing how you could have static scope or dynamic scope — whether a non-local identifier is searched for in the scope where the thing being called was defined, or in the scope where it’s being called.

Static won out, because in general it’s easier to reason about.

I mention all this, because I think I understand what Event Handlers are and how they work, and afaict, they’re just “a thing with dynamic scope”.

That all seems fine and good, but I never hear EH being described that way. Maybe because folks have forgotten about dynamic scope?

📝 Thinking about "syntax families", and how to ~categorize them via Jared Forsyth

🧵 conversation

I've put together some thoughts about syntax, they're pretty roughly defined at the moment, but I'd love to get your feedback!

📝 Single-Paradigm vs. Multi-Paradigm Thinking (Slight Return) via Paul Tarvydas

🧵 conversation

Thinking about multi-paradigm programming. Why FP isn't enough, IMO...

Managing Programming Complexity

Content

📝 One way to do applied research via Patrick Dubroy

🧵 conversation

Hello! I just published this blog post which is relevant to folks here:

One way to do applied research

🧑‍💻 ShareMyScreen puts you inside the head of a J programmer as they write a program. via Mariano Guerra

🧵 conversation

🟧 automat.org @ HN via Maikel van de Lisdonk

🧵 conversation

Automat on hacker news .. awesome @Marek Rogalski !!

🌲 best way to visualize / explore nested data structures via Gregor

🧵 conversation

adding onto my post over at bsky:

I'm curious, what is the best way to visualize / explore nested data structures you have seen?

📝 Gregor (@watwa.re)

The core thesis of my new programming environment is once again: we can do better than text

Ironically enough I still dumped its AST (for lack of a better word) as pretty printed JSON. I could not handle that irony, so here's my shot at beating pretty JSON for looking at nested data structures

💬 Maikel van de Lisdonk

🧵 conversation

Here's the date for our next online FoC meetup: wednesday 27 nov 16:00 UTC.. and we have at least one demo already from Kartik Agaram , so we need 2 more. If you want to demo then please react in this thread.

🕸️ wiki.futureofcoding.org/meetups via Maikel van de Lisdonk

🧵 conversation

I created a wiki page for our meetups wiki.futureofcoding.org/meetups .. if anyone organises an offline FoC meetup, this also can be placed there (or online FoC meetup by other people of the community off course). If you need help with this, please let me know.

🦋 Future of Coding - Community via Gregor

🧵 conversation

My BlueSky has a distinct lack of your faces (and thoughts), I tried to collect as many of you into this pack as I could find, but I'd be happy to add more: 🦋 Future of Coding - Community


👨🏽‍💻 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/11 Week 1

2024-11-03 22:33

🎥 Operational Version Control 🔮 The Future of Coding 💡 Subsequently

Our Work

🎥 spreadsheet / paint-program hybrid via Kevin Greer

🧵 conversation

I created this spreadsheet / paint-program hybrid. That may sound weird, but it actually makes sense when you see how it works (I think). Here are two videos showing it's basic features and 2D and 3D turtle graphics support

💬 Kevin Greer

🧵 conversation

I'm working on a server/website so that people can publish and share their creations. Feedback and suggestions appreciated.

🎥 Dialogues on natural code via Lu Wilson

🧵 conversation

Youtube Thumbnail

hello again it's me.

i gave a talk last week on why i am a machine 🤖

🐦 Guyren Howe (@unclouded) on X via Guyren Howe

🧵 conversation

🐦 Guyren Howe (@unclouded) on X: LLMs are a distillation of everything ever written.

We are a distillation of all the successful responses to the experiences that drove our ancestors’ evolution.

I think the distillations methods are kinda similar. But are not experiences. This is how we differ.

Devlog Together

💬 Kartik Agaram

🧵 conversation

A couple of days ago I noticed a bug that's been in all my apps since I started programming with LÖVE at the start of 2022. Start searching for text, type nothing into the pattern to search for, then find again repeatedly. Crash. Caused by misusing a Unicode library, even though this bug needs no special chars to trigger.

Now I've pulled the bugfix into 54 forks 😮‍💨

🎥 Quinebook via Tom Larkworthy

🧵 conversation

I've built a single file notebook export format in Observable userspace. Convert an Observable notebook into a single file. Self-replicating notebooks. You don't even need a local webserver to run them, they work in a file:// context. You can put them on a webserver if you want. This is complement the userspace notebook source💬 #devlog-together@2024-10-20. I still have some more work on this to consider it fully working (e.g. FileAttachment support), but today I finally reached the milestone that the exporter can export an operational version of itself.

Thinking Together

🔮🎥 The future of coding via Jonathan Edwards

🧵 conversation

My talk on the future of coding

Content

💡🎥 Subsequently at LIVE via Ivan Reese

🧵 conversation

Youtube Thumbnail

Marcel Goethals presenting Subsequently at LIVE

Operational Version Control by Jonathan Edwards via Kartik Agaram

🧵 conversation

Vimeo Thumbnail

Graphics

💬 Patrick Dubroy

🧵 conversation

Hello! I'm curious if anyone here has a good idea about interleaving works between a compute shader and a fragment shader.

Some relevant details:

  • My app is built with Rust and wgpu, and I'm running on an M1 Macbook Pro.
  • I have a single encoder with a compute pipeline and a render pipeline.
  • The compute shader writes to a storage buffer defined like this:
@group(0) @binding(2) var<storage, read_write> output: array<vec4<f32>>;
  • The fragment shader reads from the same buffer. Basically, each fragment is just one element of the vec4<f32> . The fragment shader is very simple, and doesn't touch anything else in the storage buffer.

I've added timestamp queries to the pipeline, and what I'm seeing is this:

Duration #1: 47.800208ms

Duration #2: 47.809876ms

Frame time: 51.2545ms

Duration #1 is computed from the compute shader timestamps (the duration between the beginning and end of the compute pass) and Duration #2 is the time for the render pass, computed the same way.

Frame time is measured on the CPU.

I expected the duration of the compute shader and fragment shader to add up to the frame time (approximately). But it doesn't and I'm confused about why! Could it be due to interleaving of the compute pass and render pass? If so, I'm curious how the synchronization works. How does the GPU figure out the dependencies between the write (a compute shader invocation) and the reader (fragment shader invocation)?

I don't have any explicit synchronization, but I'm also not seeing any tearing or anything that would indicate that there is a data race between the shaders.

Music

🎥 Ravescript - Make Music With Code! - Ep. #7 via Alex McLean

🧵 conversation

Youtube Thumbnail

Present Company

🎥 Virtual Meetup 6 • October 30, 2024 via Ivan Reese

🧵 conversation

Youtube Thumbnail

Here's the recording of the Future of Coding virtual meetup 6. We had a demo of Automat.org from @Marek Rogalski, a demo of Inkling from myself, and a demo of Kendra.io's dashboard builder from @Daniel Harris. Good stuff all around! See you next month.


👨🏽‍💻 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/10 Week 4

2024-10-28 10:50

🌊 SPLASH: Arroost | Inkling | Clerk | Code Flow Canvas & More 📢 HYTRADBOI 2025 🎠 Carousel

Our Work

FEELING IS REALITY via Ivan Reese

🧵 conversation

🎥 Feeling is Reality.mp4

🐸 Arroost @ SPLASH / LIVE via Lu Wilson

🧵 conversation

hello everyone i gave a talk yesterday at the live coding conference about why tools-for-thought suck

(starts at 3:27:56)

🛸 Live programming a live programming environment via Philippa Markovics

🧵 conversation

Youtube Thumbnail

Hi @Martin Kavalar, @Elliot and I gave a talk about our experience live programming a live programming environment (using Clojure and Clerk) at LIVE yesterday!

📜 You can read the full paper here: live24.clerk.vision

🎥 Code flow canvas at live 2024 via Maikel van de Lisdonk

🧵 conversation

Youtube Thumbnail

Here's the re-recording of the remote talk I gave at live 2024 about Code Flow Canvas: youtube video (there where some streaming issues, so I rerecorded it).

📝 A case for binary packages via Dany

🧵 conversation

I wrote a blog post about the package / modules in miqula.

☯️ Redressing the Balance: A Yin-Yang Perspective on Information Technology via Konrad Hinsen

🧵 conversation

Youtube Thumbnail

Today I will present my Onward! Essay "Redressing the Balance: A Yin-Yang Perspective on Information Technology" at SPLASH (as a remote participant). It will be live-streamed at 18:00 UTC on YouTube.

The topic is how computing technology can be made to better support processes of learning, understanding, and trusting, for individuals or for society as a whole (we call it "science" then). Such support has requirements very different from those for designing and constructing software systems for deployment as tools.

📝 Arroost: Unblocking creation with friends via Lu Wilson

🧵 conversation

i wrote an essay about how to tackle emotional blockers when building creative tools. (i presented this work here at SPLASH earlier this week)

Devlog Together

💬 Kartik Agaram

🧵 conversation

Emacs-style ranges on a text buffer that I can now hang attributes like color, decorations and click handlers on to.

The final complexity cost was 200 lines but it was a non-linear path getting there. I went up to 500 lines before starting from scratch with a new approach.

Earlier this year I threw out an implementation after suffering with it for 2+ years. It feels like I'm getting the hang of this programming thing that I threw out an implementation after 2 days.

🎥 Attributes

🎠 Carousel via Kartik Agaram

🧵 conversation

I've been getting back into teaching kids programming. Of course, this time using Lua, LÖVE and Carousel. After a couple of months, it occurred to me to collect all my little impromptu puzzles and exercises into a single app anyone can go through on their own schedule.

Carousel cards (LÖVE app, really just a zip file containing source code, 169KB)

Nowhere near done yet. But it has 50 little "levels", each taking between a few seconds and a minute. A full game/curriculum might need 2000 levels or something.

Thinking Together

💡 co-locate a workshop via Mariano Guerra

🧵 conversation

Should we co-locate a workshop at Programming 2025?

Here are some questions and some ideas for answers:

  • Name? I propose "Futures of Computing"
  • Scope? From the name I think it should bring together this and adjacent communities like causal islands, ink & switch, local first, Homebrew Systems Club, whatever Lu Wilson's 🐸 cult is about
  • Format? Short hands on demos plus unconference

📝 the "quite OK" ecosystem via Walker Griggs

🧵 conversation

I'm stewing on the idea of a "literate codec" -- the "quite OK" ecosystem feels like a good place to start. Can anyone recommend modern alternatives to CWEB?

Content

🎥 [SPLASH'24] Pacific A - LIVE (Oct 21th) via Taylor Troesh

🧵 conversation

Youtube Thumbnail

📝 Supporting Virtuosity and Flow in Computer Music via Alex McLean

🧵 conversation

Joshua Horowitz's great LIVE talk on feedback reminded me of Chris Nash's PhD work on feedback and flow in notational use. The diagrams from page 101 are a good place to start

📢 HYTRADBOI 2025: Lightning talk buffet via Jamie Brandon

🧵 conversation

Submissions for lightning talks for HYTRADBOI 2025 are open - hytradboi.com/2025#lightning-talk-buffet. The theme is 'databases, programming languages, and everything in between'.

🎈 Adopting LLMs for the Smalltalk programming experience, Wed, Oct 30, 2024, 7:00 PM via Francisco Garau

🧵 conversation

UKSTUG meeting - Mariano Guerra / Tudor Gîrba: - Wed 30 October 2024 @ 7pm GMT

The UK Smalltalk User Group is inviting for an engaging session on the latest in Generative AI and Large Language Models (LLMs), featuring two insightful presentations.

Introduction to Large Language Models and Gloodata

Speaker: Mariano Guerra

Mariano will walk us through the fundamentals of LLMs and provide a behind-the-scenes look at building the Gloodata application.

A Unique Perspective on LLMs

Speaker: Tudor Girba

Tudor will offer a distinct view on LLMs, showcasing demos based on GT that highlight their innovative approach.

This will be an online meeting from home.

If you’d like to join us, please sign up in advance on the meeting’s Meetup page ( meetup.com/ukstug/events/303944944 ) to receive the meeting details. Don’t forget to bring your laptop and drinks!

[1] gloodata.com

[2] feenk.com

🤖 Observable JS <=> Runtime Toolchain via Tom Larkworthy

🧵 conversation

I am really trying to get AI to do software engineering and be genuinely helpful at the higher end of coding. Still working on it 🙂 but the Observable toolchain I co-produced with AI is a step up from where I was a year ago. The technique that helped was feeding the test suite back into the LLM context so we would co-evolve the suite and implementation at the same time. Furthermore I had extra context tools, so if I wanted it to concentrate on a specific test case I had a UI to select that case. I don't think it could make the whole thing alone yet, I definitely wrote a good chunk of the Observable decompiler/compiler pair, but it was very helpful at

  • Writing semanticallt broken but executing and close first draft of code
  • Choosing which bug to fix next and coming up with a suggestion
  • Using new libraries idiomatically (e.g. acorn-walk)

observablehq.com/@tomlarkworthy/observablejs-toolchain

I've been wanting a decompiler for observable for ages, and I don't think I could have done it alone either.

📝 Kendraio via Daniel Harris

🧵 conversation

Joint funding: seeking US/CA collaborators: Next Generation Internet...

We (the Kendraio team) are seeking a partner in the US or Canada to collaborate on a joint funding application for the Next Generation Internet (NGI) initiative (up to 100K EUR). We are interested in working on no-code, local-first, malleable-software tools. We’re looking for a range of participation anywhere from advice to working on technology jointly, with the mutual aim of empowering end-users.

Kendraio is a nonprofit and open source project . We are exploring and researching solutions to interoperability and data-portability challenges. Our aim is to enable end-users to be in control of their interface and data, without requiring software development skills.

The NGI Sargasso initiative is centred on the future of the Internet. This funding call addresses multiple challenges: privacy, interoperability, internet archiving, data security, sustainable digital infrastructure, harmonised cross-Atlantic governance, inclusive public digital spaces, cybersecurity and AI, redefining intelligence in a hyperconnected world, and space-based internet.

We are most interested in these challenges:

  • Enhanced Data Security and Privacy in a Transcontinental Perspective: Improving data security measures and protecting personal data between Europe and North America.
  • Interoperability and Standardisation Across Borders: Developing seamless system interactions for creating interconnected digital environments.
  • Internet Archiving: Preserving and managing digital information in an accessible and secure way for future generations.
  • Open Challenge for Next Generation Internet: There is also a space for us to propose our own takes on what we believe a new Internet needs.

We would love to discuss a potential collaboration, whether it’s sharing advice or building technology together.

The deadline for this application is November 25, 2024. Find our NGI Sargasso funding application with references here

We look forward to hearing from you!


👨🏽‍💻 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/10 Week 3

2024-10-21 09:49

🥳 Happy Spreadsheet Day! 💡 Consider holding a workshop @ Programming 2025 📊 Towards Reusable & Reactive Widgets

Our Work

📝 Testing via Paul Tarvydas

🧵 conversation

This is in response to 💬 #share-your-work@2024-09-20. I share it here in case it is of interest to anyone else Testing

[September 20th, 2024 9:50 AM] khur.saba: Hi everyone! :wave: I'm doing some user research on building reliable products at scale. If you work in development, testing, or product and have experiences with QA (or :bug: where there shouldn't be), I'd love to hear your story!

Even a short 15-min call would be super helpful. Let me know if you're open to a convo and we'll set up a time. Thanks so much in advance :blush:

📝 Testing

Experiences With Testing Software

🎥 PLAN Virtual Machine demo via Jared Forsyth

🧵 conversation

Youtube Thumbnail

I'm generally quite bad at sharing my work, but tonight I buckled down and recorded a little demo of the virtual machine I'm working on PLAN Virtual Machine demo please forgive the "um"s

📝 Designing the Future of Coding at JetBrains via Pavel Mikhailovskii

🧵 conversation

My new LinkedIn article about Project Ludwig

Our research team at JetBrains aims to design the blueprint for the future of AI-driven software development. We believe that it will enable us to create an entirely new class of developer tools.

📝 On relative references and formula replication via Prabhanshu Gupta

🧵 conversation

I wrote a bit about the evolution of cell references in the spreadsheet formula language

📝 On relative references and formula replication

A lot of spreadsheet usage is centered around copying and pasting formulas. Specifically, replicating formulas across a range of data. Here&rsquo;s an example: I have a …

Devlog Together

💬 Jimmy Miller

🧵 conversation

I've not posted her in a bit partially because it feels like the work I'm doing is a bit "present-company". I put my editor on pause because I hate all languages I could write it in. I want a good dynamic language where I can develop the editor in itself without ever restarting it. I want something multi-threaded. I want something with a lightweight runtime. But ultimately, I really just want to boil the ocean and this feels like a fun way.

So I've been making my own language. It is a dynamically typed functional language that compiles straight to machine code (no vm at all). Today, I finally got my persistent vectors properly working (After finally figuring out that my bug was in the gc (still not fixed) not my implementation.) I decided as an experiment to implement clojures HAMT based persistent vectors into the language itself (not at the compiler/runtime level). In fact, even my mutable arrays are implemented in the language with a primitive allocation function and some fetching "fields" primitives.

Sadly my implementation is about 6x slower than clojures on my artificial benchmark. But honestly that's pretty darn good! I have done 0 optimizations, Clojure's data structures are all implemented in java. That means I'm about 6x slower than java on this benchmark. Not bad. Trying to figure out next if I want to do some performance work, or continue building out features.

💬 Tom Larkworthy

🧵 conversation

Been woking on my malleable Observable project. I can now select and edit cells from userspace. A fair amount of work went into decompiling a runtime variable back to its (near) original source code representation.

image.png

📝 Potluck via Kartik Agaram

🧵 conversation

I've been thinking about Potluck and 💬 #linking-together@2024-10-16. Potluck describes 3 mechanisms:

  • extracting data using (regex) patterns
  • performing computations on that data
  • showing results of computation as annotations

My notebook app does simple variants of 2 and 3, and replaces 1 with explicit in-document markup.

Now I'm playing with another approach to 1. I already have the idea of pivots from 💬 #devlog-together@2024-10-08. Putting two of those pivots together should yield a range that adjusts in intuitive ways in the presence of edits. Think of a range as something like a hyperlink you add to a comment in a UI like this Slack app we're in right now:

  • Inserting/deleting text before a range moves it.
  • Inserting/deleting text after a range leaves it unchanged.
  • Inserting/deleting text within a range grows/shrinks it.
  • Deleting text at a boundary shrinks the range, and only deletes the attached attributes if the range becomes empty. This makes ranges more robust to deletion than my doodles attached to a single pivot.
  • Inserting text at boundaries can't always do what you want. I imagine it'd be nice to have handles that you can drag to adjust a range.

💬 Tom Larkworthy

🧵 conversation

Full round trip decompilation <--> compilation between Observable runtime and my in-notebook editor is working. I've put a CodeMirror UI on it and smooshed it into a single cell for easy import. works on mobile. A few areas are broken: imports, anonymous cell editing and adding variables. Note I am sticking to Observablehq flavoured JS, but it could support any language if you have a compile to JS for it.

image.png

Reading Together

📝 Design Things and Design Thinking: Contemporary Participatory Design Challenges via Jasmine Otto

🧵 conversation

getting some lovely blue-sky Realtalk energy from this piece on 'infrastructuring'

Design Things and Design Thinking: Contemporary Participatory Design Challenges

Erling Bjögvinsson, Pelle Ehn, Per-Anders Hillgren 2012

gobigcreativelab.com/wp-content/uploads/2019/01/Contemporary-Design-Thinking-Challenges.pdf

An infrastructure (e.g., railroad tracks, cables, or the Internet) reaches beyond the single event (temporal) and the site event (spatial); it does not need to be reinvented every time; and it is embedded into other socio-material structures. However, the infrastructure also is accessible only by participation in specific practices. [...] it is relational and becomes infrastructure in the relationships between design Things at project time and (multiple, potentially controversial) design Things in use.

Thinking Together

📝 Towards a Better REGEX via Paul Tarvydas

🧵 conversation

Content

📝 An engine for an editor via Kartik Agaram

🧵 conversation

Text as a foundation for GUIs

The foundation is a text with attributes — a pair of a string and a map from string’s subranges to key-value dictionaries. Attributes express presentation (color, font, text decoration), but also semantics. A range of text can be designated as clickable. Or it can specify a custom keymap, which is only active when the cursor is on this range.

-- An engine for an editor

Unlike full HTML, the text is not nested, and logically is a 2 dimensional grid of characters. This makes text navigation universally applicable.

Unlike terminals there are multiple text buffers. You can have several apps running at the same time and displaying a text buffer each, or you could have a single app that owns multiple buffers.

Buffers are arranged in splits and tabs. Applications have limited control over the spatial arrangement of the buffers. It is the user who chooses which buffers are displayed in the foreground.

-- A new API

📝 ‹Programming› 2025 - Workshops - ‹Programming› 2025 via Jonathan Edwards

🧵 conversation

Please consider holding a workshop at 2025. Those of us doing independent research on software sometimes feel like we are rejected by academic computer science because our work doesn’t have the proper shape. In turn we tend to dismiss academia as a dysfunctional status game. Workshops are a way to bridge this divide between independents and academics. Since workshops offer little credit towards academic career advancement they are less subject to gatekeeping. The conference is particularly open-minded about the form and content of its associated workshops, with a pronounced fondness for the softer and more human aspects of programming. attracts researchers from diverse fields with open minds. Please consider this opportunity to enrich your community by engaging with both independents and academics at a workshop.

The conference will be in Prague, with the workshops held June 2-3, 2025. Further details are in the Call for Proposals. I’m happy to answer any questions.

🎥 Sketchpad via Christopher Shank

🧵 conversation

Youtube Thumbnail

📊 Towards Reusable and Reactive Widgets for Information Visualization Research and Dissemination via Jasmine Otto

🧵 conversation

👀

A Reactive Visualization widget displays data and allows users to directly interact with it (e.g., select a bar in a bar chart 📊). It then emits events based on these interactions (e.g., signaling which bars are selected).

The paper presents several usage examples of the pattern, templates for implementation, and even a wrapper for facilitating the conversion of any

Vega specification into a reactive widget.

🥳🐦 Brian Hempel (@brianhempel) on X via Brian Hempel

🧵 conversation

Today is Spreadsheet Day, the anniversary of VisiCalc’s release in 1979, the first spreadsheet app!

🐦 Brian Hempel (@brianhempel) on X: Today is Spreadsheet Day, the anniversary of VisiCalc's release in 1979, the first spreadsheet app. To cell-ebrate, post a pic or describe your favorite spreadsheet!

👇


👨🏽‍💻 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/10 Week 2

2024-10-13 22:53

🎥 Future of Programming with AI 📝 Definitions and Dimensions of Liveness 🎥 Run, Build and Grow Small Systems Without Leaving Your Text Editor

Our Work

🎥 Death of the tadi web via Lu Wilson

🧵 conversation

Youtube Thumbnail

i gave a talk about the "tadi web". it's my idea for how to make computing better!! please enjoy.

🎥 "What it means to be open" by Lu Wilson at Heart of Clojure 2024 via Lu Wilson

🧵 conversation

Youtube Thumbnail

i gave a talk about what it means to be "open". it's very important to me!! please enjoy.

📝 ara.foundation via Medet Ahmetson

🧵 conversation

Hey. I am working on the Ara project, a social network platform to build projects together. For a general information here is the landing page: ara.foundation

I did the research (Here is the link) and I am quite excited to meet some of the folks that I encountered there. Actually FoC helped me a lot during the research.

As for the sharing, I want to publish the whitepaper, but I need your feedback. Especially critical points if i have the flaws on my thesis.

Much appreciation your feedback

Devlog Together

📝 A text editor that supports doodling by Kartik Agaram

🧵 conversation

A text editor that supports doodling.

Some previous ways to have text coexist with a canvas:

Here I'm instead attaching doodles to a pivot character that they move with in the presence of edits. When you start drawing you're presented with a set of pivot options, one grey square per character on screen. After you pick one, it turns pink and the other options disappear. Now you can start drawing.

Displacements to the pivot are preserved in font-derived units, so it looks "reasonable" as you resize the font.

Deleting a character deletes all drawings pivoted on it. (But there's undo.)

This took 200 lines, so not too much though it was more than I'd initially expected.

Inspired by this thread.

🎥 doodle

🎥 doodle 2

💬 Kartik Agaram

🧵 conversation

(Where's everyone else? I'm feeling lonely in this channel.)

I hadn't tried this until today, but it turns out to work: I can create equations forwards and back, and trigger either selectively based on what blanks I fill in.

The fine print: to switch directions I have to fill in the right blank, clear the old blank, and then type in something outside the old blank (to indicate I'm not going to type further into the old blank).

Works better if I clear the old query first, but who can remember that?

Perhaps I should just recompute on every mouse click. Then the third step could be clicking outside any blanks. More wasteful, because most of the time a mouse click won't require recomputation. It's Tadi, but is it permacomputing? 🦋

🎥 notebook units

🤖 Generative AI inside Github Actions via Scott

🧵 conversation

(I'll join in on the fun!)

I've been experimenting with using generative AI inside Github Actions lately and have been really intrigued by this async/event driven interaction model with code generation.

In this repo we have a Github Action that runs every morning and has Gemini, Claude, and GPT-4 generate a PR adding additional functionality. Then on PR merge a release message is sent to our discord with example use cases and each of them riff on what was merged and try to come up with additional related functionality.

I've already merged a few PRs and some of the ideas they've come up with are pretty interesting, especially the riffs - I merged a PR about querying a notion database, and Gemini came up with taking a row in a Notion database and creating an Asana task.

Some of the things they've come up with so far:

image.png

💬 Scott

🧵 conversation

Merged a couple more exploring this async AI pattern in some new directions and starting to feel a bit like the sorcerer's apprentice with every PR I merge resulting in 3 new PRs 😆

image.png

Reading Together

🎥 Introducing Ara: New Online Collaboration of People using tokens and AI workers via Medet Ahmetson

🧵 conversation

Youtube Thumbnail

Is there any research about 3d user interface? Right now we use the windows from Xerox popularized by Macbooks. But I am considering to make it as a game scene, where everything is represented as a 3d objects. I couldn't find anything related to this, or attempts before. The only close thing for this is the holograms from the sci-fi.

As a reference, I am making a social network, but I want it to be a 3d. As a reference here is the prototype:

youtube.com/watch?v=suOaUQmMSGo&t=144s

I also recorded the new form of interface for the crypto wallets. How the transferring tokens from your address to another is done. If there are any systematic explanation of 3d objects, I would appreciate it. :)

🎥 Screenshare

Thinking Together

💡 It takes two to think via Mariano Guerra

🧵 conversation

It takes two to think

Despite the variety of creative approaches practiced by different scientists, one tried-and-true though often overlooked — trick for generating new ideas stands out. It may sound trivial, yet it is as reliable as it is simple: talk to someone. By talking with other people, we not only pool the information or ideas that each of us individually lacks, but we are also able to improvise new thoughts that are not accessible to us alone. In this episode, Itai Yanai and Martin Lercher talk through the ideas in two of their editorials (available at nature.com/articles/s41587-023-02074-2 and genomebiology.biomedcentral.com/articles/10.1186/s13059-021-02575-w).

GZLj117WUAAHafh.jpeg

💬 Mariano Guerra

🧵 conversation

do you know of a good formal specification of the semantics of spreadsheet evaluation?

💬 Alex McLean

🧵 conversation

I've realised what dynamic media and algorave have in common - they're both 80% community development and 15% projector placement

image.png

💬 Brian Hempel

🧵 conversation

Is there a citation/reference or name for the idea of the gap between the power of spreadsheets and the power of general purpose programming?

image.png

Content

📝 Adobe Source Libraries (ASL) via Mariano Guerra

🧵 conversation

This document serves as an overview to the Adobe Source Libraries (ASL). The goal of ASL is to develop the technology necessary to construct commercial applications by assembling generic algorithms through declarative descriptions.

The first two significant libraries in ASL are known as the property model library (Adam) and layout library (Eve). They are components for modeling the human interface appearance and behavior in a software application. The property model library and layout library are described along with related libraries.

📝 SenseMap via Mariano Guerra

🧵 conversation

SenseMap for Online Sensemaking

What are the challenges in online sensemaking?

Very often, users get lost when solving a task online, such as buying a camera or planning a holiday.

  • Where is that information I saw before?
  • How do I compare different options?
  • Where did I left off two days ago?

SenseMap captures sensemaking actions and visualise their relationships, making it easier to:

  • Find previous information,
  • Re-trace the thinking process,
  • Make sense of the topic,
  • And many other things ...

🎥 Cursor Team: Future of Programming with AI | Lex Fridman Podcast #447 via Jarno Montonen

🧵 conversation

Youtube Thumbnail

Lex Fridman interviewed the founders of maybe the #1 AI-programming tool atm. With a title like this, should be relevant to this community 🙂. Haven't had a chance to listen yet, but interested to hear thoughts in case any of you find couple hours for this

🎥 Run, Build and Grow Small Systems Without Leaving Your Text Editor | LIVE 2024 via Jack Rusher

🧵 conversation

Youtube Thumbnail

So many nice ideas in this demo 🙂

📖 Moral Codes via Jonathan Edwards

🧵 conversation

“My simple answer is that we need better programming languages and less AI.” - Alan Blackwell

📝 Naturalizing relevance realization: why agency and cognition are fundamentally not computational via Stefan Lesser

🧵 conversation

Naturalizing relevance realization: why agency and cognition are fundamentally not computational

This is a psychology paper, so perhaps not what you usually consume, but I want to encourage you to give this a go. I think it’s super useful to leave our bubble from time to time and learn about what other disciplines’ perspectives on computation are. I’ll quote the summary at the end, but there is so much more building up to that that you don’t want to miss, certainly not before commenting on it. :)

The view that intelligence equals some kind of computational optimization is no longer tenable. It does not help us make sense of a large world. Therefore, claims that the study of intelligence is converging onto computational rationality as its ultimate foundation are not only premature, but outright misguided. Quite the opposite: we have shown here that the basic foundation of natural agency and cognition, and therefore of anything we could reasonably call “intelligence,” cannot be computational at all because it cannot be completely formalized. The dream of generating purely algorithmic systems able to think and act like human beings is and remains a pipe dream, because purely symbolic machines exist in small worlds, in which there is no problem of relevance to be solved.

📝 Definitions and Dimensions of Liveness via Kartik Agaram

🧵 conversation

🎥 Why Computing Education is Critical for Democracy via Christopher Shank

🧵 conversation

Youtube Thumbnail

“Why Computing Education is Critical for Democracy” by Mark Guzdial

🎥 How I animate 3Blue1Brown | A Manim demo with Ben Sparks via Mariano Guerra

🧵 conversation

Youtube Thumbnail

Nice behind the scenes of the custom tool and workflow to create 3Blue1Brown videos

I think it reinforces the idea that Effective system design requires insights drawn from serious contexts of use

🤖 OpenAI Realtime API via Tom Larkworthy

🧵 conversation

Just got the Realtime API working observablehq.com/@tomlarkworthy/openai-realtime-api in a pure browser (and forkable) browser implementation. Was quite complicated getting the audio working in a browser, there is a vid inside. I was building this for my daughter so she could have a decent cyber pet/tutor, but the running costs are actually insane, I spend $90 in 2 days building this 😕 So I think I will actually switch to push-to-talk interaction for the actual thing.


👨🏽‍💻 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/10 Week 1

2024-10-07 09:59

🎥 Boxer demo ✍ Exploration of Drawing as Programming Language 🧦 We have Dynamicland at home

Two Minute Week

🎥 k means clustering algorithm implemented in code flow canvas via Maikel van de Lisdonk

🧵 conversation

Youtube Thumbnail

Here's a new video where I show the k-means clustering algorithm build in code flow canvas using some escape hatches. You can try it yourself on demo.codeflowcanvas.io (it's available in the examples)

💬 client-side RAG and ticky UI holder for Observable by Tom Larkworthy

🧵 conversation

I got excited about a client-side RAG thing working this week, but the most videoable thing I also got working was a sticky UI holder for Observable, which will be useful for hanging notebook extension upon.

🎥 sticky view

Our Work

🎥 The Coronavirus dashboard on Kendraio App via Daniel Harris

🧵 conversation

Youtube Thumbnail

Hi everyone! I just made 💬 #introduce-yourself@2024-09-30 and promised a glimpse of our work. We (the Kendraio team) are currently experimenting with no-code, local-first and malleable-software isms.

We want to create a local environment where it is really easy for end-users and non-developers to build workflows and manage their own data, whilst also being able to plug into the services (apps and websites) that they currently use and build their own user-interfaces for those services. It's a big dream and we've started small.

A few years ago during the pandemic we built a dashboard for COVID-19 data. Our Flow plugged into various APIs and then visualised the received data on one page – so a good demonstration of one aspect of our dream. The dashboard still exists but shows historical data. We wrote an article about the dashboard which also has an accompanying video explaining how it works and how you can edit the Flow while it's running.

Enjoy! Look forward to any comments or questions. Cheers!

📝 How we built mietencheck.de via Gregor

🧵 conversation

Come for the rent price rant, stay for the i-cant-believe-its-no-code editor

📑 SPLASH via Thomas van Binsbergen

🧵 conversation

My students and I have worked on three papers (two prototypes) that will be presented at SPLASH at end of October

  • Christopher Esterhuyse -- Cooperative Specification via Composition Control (SLE2024)

  • This paper investigates control mechanisms in declarative languages that can be used by a programmer to have guarantees about the written program even when it is extended by other programmers. The work is motivated by distributed systems governed by policies in which the actors that provide the policies may have been competing interests. Concretely, think about (data sharing) contracts that are embedded in a federated cloud infrastructure.

  • Damian Frölich -- On the Soundness of Auto-completion Services for Dynamically Typed Languages (GPCE2024)

  • This paper investigates the use of "abstract interpretation" to give sound auto-complete suggestions for dynamic languages and demonstrates the technique on a subset of Python. Here "sound" means: if you select a given candidate, the inserted code will not contain variables that turns out to be undefined when the code runs.

  • Max Boksem -- Bridging Incremental Programming and Complex Software Development Environments (PAINT2024)

  • This paper demos a prototype that we built to investigate a modular graph structure for representing and running source code. The tool allows you to create different projections out of the code such as code structure, documentation view, and execution history. The tool supports incremental and exploratory programming and "nested graphs" (importing a graph as a node) for hierarchical views, although this is a more recent add-on.

Devlog Together

📝 My notebook via Kartik Agaram

🧵 conversation

My notebook now synchronizes the results of computation into named blanks in prose.

🎥 notebook eval

💬 Kartik Agaram

🧵 conversation

This debug UI has been surprisingly handy over the last few days. I'm able to visualize a parse tree even after it's been flattened, just using color transparency. All I'm doing is painting all the rects that contain the mouse cursor. Since the color is transparent, it doesn't matter what order they're in. (The larger rects actually come later; they're fall-backs if a more fine-grained rect isn't found.)

🎥 notebook debug

📝 A plain-text notebook with tabsl via Kartik Agaram

🧵 conversation

🎥 Notebook tabs

Reading Together

📝 Eudability: A New Construct at the Intersection of End-User Development and Computational Literacy via Jasmine Otto

🧵 conversation

through the visualization literacy working group, an extensive discussion of end-user development models & overlap with computational thinking. the two design axes alone are worth the price of admission::

  • component-based / rule-based / programming-by-demonstration
  • direct manipulation / conversational interface

Thinking Together

🪵 pinokio via Andreas S

🧵 conversation

Hey 👋 I was recently searching again how "usable" "AI" became. So I stumbled on this tool: pinokio . Its all just JSON. Before just evalutating the tool I might describe the criteria I would be interested in. Broadly speaking I would like to have tool similar to what we see in this clip: youtube.com/watch?v=HGYFEI6uLy0

Consider The following more specific scenario:

I have a PKM Zettelkasten and I have some friends. Now my workflow is to write and then to publish. I want to provide for them a Voice assistant that can summarize contents based on various parameters: By time e.g. topics of last 3 months, last week. But I also want to provide overviews on specific topics as well as interesting interconnections.

Do you know of any tools that could help with creating such use cases?

💬 Tomas Petricek

🧵 conversation

This is a very random thought - but something that I've been occasionally wondering for some time now. If we have lambda calculus as a model of functional languages and Turing machines as a model of imperative languages, what would be a good model for programming systems that have "document" as the basic underlying structure (Subtext is an example of this) - i.e., you have some tree structure and the program evaluates by modifying this document - appending new things or rewriting evaluated bits. (Lambda calculus itself is basically a tree, but what if this also allows imperative document edits?)

Could this be something like a "Turing machine" that works on trees rather than tapes? There would be "current location" which can move in various ways around the tree and modify it. If your document has references (perhaps you can have ../../foo to refer to foo of a parent of a parent), the machine would have to somehow walk up the tree, remembering that it wants to copy a value back to the original location - and then walk over the tree back to put the value in place of the reference).

Is this something completely silly or something that lots of people have already done but under different names?

💬 Rafi Khan

🧵 conversation

Would anyone be interested in a browser based smalltalk environment that tries to simplify the task of building software?

Content

🎥 Boxer demo by Michael Ballantyne via Kartik Agaram

🧵 conversation

Youtube Thumbnail

A rare and precious video walking us through Boxer.

🧦 A little wheel invention jam making a realtalk like environment. via Jimmy Miller

🧵 conversation

A little wheel invention jam making a realtalk like environment. Super neat project. Love some of the implementation questions at the end as well.

🧦 Bret Victor's Worst Nightmare via Kartik Agaram

🧵 conversation

Oh wow, so there were two Dynamicland homages in the jam! I was following @Ben Visness's project.

λ-2D: An Exploration of Drawing as Programming Language, Featuring Ideas from Lambda Calculus – MIT Media Lab via Alex McLean

🧵 conversation

An Exploration of Drawing as Programming Language, Featuring Ideas from Lambda Calculus

🐦 Maxence Faldor (@maxencefaldor) on X via Mattia Fregola

🧵 conversation

CAX: Cellular Automata Accelerated in JAX, a high-performance and flexible library designed to accelerate cellular automata research.

🐦 Maxence Faldor (@maxencefaldor) on X: Interested in emergence, self-organization or morphogenesis?

Introducing CAX: Cellular Automata Accelerated in JAX, a high-performance and flexible library designed to accelerate cellular automata research. 🦎

📄: CAX: Cellular Automata Accelerated in JAX 🌟: https://github.com/maxencefaldor/cax 🧵1/12

Tweet Thumbnail

Music

🎹 trane is a music playground via Greg Ash

🧵 conversation

A few people were asking for a link at the London meetup earlier, so posting here:

lisp.trane.studio/?tutor

Code/docs here

🤖

💬 William Taysom

🧵 conversation

Fiddling with OpenAI o1-preview, I didn't know it cannot run Python to draw charts. Still it tried its darndest using ASCII art... Not bad except when you compare with the data it's trying to chart.

not-quite-right.png

raw-data.png

Present Company

🎥 Back to Basics with Technology - Future of Coding Meetup - London, 2nd Oct 2024 via Tak Tran

🧵 conversation

Youtube Thumbnail

This is the talk I gave at the last Future of Coding London Meetup - Back to Basics with Technology. It goes through some of my recent explorations in electronics, crochet and light + a bunch of ideas I’ve been mulling over: Back to Basics with Technology

Also in blog form: forestinthetree.com/blog/back-to-basics


👨🏽‍💻 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/09 Week 5

2024-09-29 22:50

✍ Bloom: Optimization-Driven Interactive Diagramming 🔮 The Future of Programming Systems 💬 FoC Bangalore Demos

Our Work

Bloom: Optimization-Driven Interactive Diagramming via Josh Sunshine

🧵 conversation

We just released Bloom, new way to create interactive diagrams and visual explanations. Creating interactive diagrams usually requires a programmer to write tedious event handling, collision detection, and tree update code. In Bloom, you simply tell the library what properties you want to maintain and the system does the hard work for you. Read this blog post to see cool example diagrams and learn more about Bloom.

💬 Some demos shown at the FOC meetup in Bangalore by Nilesh Trivedi

🧵 conversation

In this thread: Some demos shown at the FOC meetup in Bangalore yesterday (not everyone has joined this Slack yet):

Devlog Together

💬 my parser via Kartik Agaram

🧵 conversation

It took a couple of days but I've now completely rewritten my parser so it can serve both for display and computation duties. Displaying requires keeping track of spaces. Computation requires detecting invalid statements.

Now 💬 #devlog-together@2024-09-18 can perform computations in (indented) code lines.

Still missing: synchronization between code lines and prose lines. The screenshot for example shows me redundantly defining ice_kg = 2 to provide it to code lines. Also, heat_flux is computed in code, but not yet filled in the blank space in prose.

I'm continuing to accumulate design principles:

  • (generalizing from before) Everything is visible and easy to discover, whether it's the formula for a blank or the syntax to define a new blank or how to change colors. Any pattern you see on screen is easy to copy with the keyboard. (The one exception right now is the use of | characters in blanks and / in code. Both turn into horizontal lines.)
  • What you typed in is saved in the document -- except what you put into blanks in prose. Blanks are not saved, but can override default values defined in code.

notebook-eval2.png

🔌 demo.codeflowcanvas.io via Maikel van de Lisdonk

🧵 conversation

Hi, this weekend I spend a lot of time tweaking and improving some stuff under the hood of Code Flow Canvas.. and I finally started building some unit/integration tests for the runtime flow engine as I want to reliably know when a flow is finished. I found some situations with certain node-types (the map and foreach node-types) that had some bugs in it that I didn't notice before. Also when the flow-engine was used in a none DOM environment there was a nasty bug somewhere deep in the system which caused nodes not to be reached... building tests for this really helped and save me some time debugging. All of this is important anyway but especially for the demo that I will give remotely at Live this year, because I don't want to surprise myself and anyone else 😊...

In the attached screenshot you can see a new flow example that I made and hopefully make a video of next week: the K-Means clustering algorithm including visualisation of the clusters and centroids. You can already try it on demo.codeflowcanvas.io (it's in the examples).

image.png

Thinking Together

💬 Declan

🧵 conversation

I have lots of functions that map sets of inputs to values - depending on some rules (if branches). Now I want to enumerate all the rules/code paths; it will help me to analyse, optimise, explain, understand.

This can't be new, I guess it should be a thing that's feasible in any functional programming language. Maybe there is a name for this? Or a tool that does this?

I'm thinking about writing something, but it seems like a typechecker like tsc would have a lot of related logic, and if I can I'll experiment using some other friendly tool first. Any tips/references please shout, thanks!

💬 Dany

🧵 conversation

Should code completion preselect in the dropdown?

For example, if I write "object.l", this opens a dropdown with "length". Should the length be selected, so pressing "enter", inserts it directly or should I first need to press "down arrow"?

In visual studio, it is not preselect if I write a function, but does preselect for members. Is there some common approach?

🔮 The Future of Programming Systems - four thoughts via Jouke Waleson

🧵 conversation

Not sure if this is the right place to post this and whether this is interesting to this group, but I gave a short presentation last week about the future of programming systems and curious what you think about it. I wrote it down in a blog post here: blog.waleson.com/2024/09/the-future-of-programming-systems-four.html

There are four thoughts that I think will shape the future:

  • Software development systems have a lot of vestigial parts (left-overs from the way it evolved)
  • Understanding is crucial to development, and with the right mediums we can understand the subject much faster
  • Most software platforms developed bottom-up, from the silicon, instead of focusing on the needs of the people
  • Software is truly different from other technologies in the freedom it gives us, so we can and should invent new abstractions that make things simpler than they are now

This isn't in the post, but I think that in the future we'll see:

  • Great integration between design tools, version control, IDEs, databases, monitoring & logging systems.
  • High-level concepts as first class systems in the programming systems. Simple examples are an email or phone number type as a database primitive, instead of strings.
  • Better reasoning / business logic rules so that IDEs can give feedback on "you are not allowed to store PII in this database".

This way all stakeholders can collaborate and the system can check correctness much better, and we require less discipline/in-depth knowledge from the team members.

I suspect most of these ideas have come by in this community already, but still curious what you think!

📝 Functional Programming Is Letting Us Down via Paul Tarvydas

🧵 conversation

💬 Tomas Petricek

🧵 conversation

I've been looking at programming by demonstration recently (somewhat inspired by Pygmalion). There are some nice recent examples of using PbD for things like data wrangling (clean up data, extraction, etc.) and I know some examples for visual things (bar chart) - but I was hoping to use PbD to create something like TODO list app - do people in this group know if there are any systems (recent or ancient) that do something like this?

I actually have a prototype where I can construct adding of new items to the list using PbD (you do a sequence of actions to create and add an item and then you can replay that), but other things are trickier - e.g. to count checked items or to remove items that are completed, there needs to be some way of parameterizing the actions (so that they can be applied to all items) and specifying pre-conditions (so that they only apply to certain items) - I'm really not quite sure how to best do those...

💬 Kartik Agaram

🧵 conversation

Today in non-convivial computing experiences: I found out a modern car can get into a state where it won't turn off. And can't be put into neutral (so it can't be towed).

Content

📝 Conway’s Game of Life implemented in PURE (no scummy Apps Script) Google Sheets via Mattia Fregola

🧵 conversation

(also related my – admittedly less dynamic – Cellular Automata Google Sheet)

💬 Robin Allison

🧵 conversation

Hey future of coding folks,

I want to advertise the idea of non-abelian spreadsheets. The idea has slowly drifted into the center of my thinking this last year. I'm not sure if its a good idea or not. It kinda depends on how you build on it. So for now I just want to convey the general idea.

Picture in your mind a normal spreadsheet. In some sense it is 'abelian' (commutative) because from any cell going down and then right is the same as going right and then going down. If we make it non-abelian, so the order we go right and down matters, we get something like the picture attached below.

If you tilt your head slightly you may recognize it as the infinite binary tree. So an infinite binary tree is just the non-abelian version of the usual grid-based spreadsheet. The nodes of the tree are the cells. We can also think of finite binary trees as the analogue of tables.

A key feature of regular spreadsheets is the ability to write formulas with relative references. For instance in a regular spreadsheet you can use relative references so a formula always refers to the cell to the right of the given one, and in a tree you can write a formula that always refers to the cell you get by going down and to the right from the given cell.

Another key feature of spreadsheets is that you put stuff in cells! And we do that with trees all the time. For example if we write down the syntax tree for (a+b)*c what we are doing is putting each of the symbols into a cell of the tree.

We can push this analogy to account for all trees (in particular all syntax trees). This tree can't really be visualized because it branches infinitely at each node. It is much easier to describe algebraically. I'll use the term 'free monoid on a set X', which if you aren't in the know just means the set of strings made out of the elements of X regarded as distinct characters. The infinite binary tree, or more precisely the set of nodes of the infinite binary tree, can be described as the free monoid on a two element set {L, R}. e.g. RLL describes the node you get by going right, then left, and then left again. Now let X_n denote a set with n elements and X the disjoint union of the X_n for all n. It suffices to take the free monoid on X.

A reasonable question at this point is what is the interface for an infinitely branching tree? You would think it is even worse than an infinite dimensional grid, which is the abelian version. But if we are restricting ourselves to trees coming from symbolic expressions then for the most part we already have the interface. It is just the symbolic expressions we would have written down in the first place.

I'll leave it at that.

unnamed.png

🍄 Propagators via Mariano Guerra

🧵 conversation

I created a wiki page about Propagators any resource you would add? Do you know of related ideas?

🧑‍🎨 Turnstyle via Mariano Guerra

🧵 conversation

Turnstyle is a graphical esoteric programming language loosely inspired by Piet. Both encode programs as images, however, the similarities end at the syntax level.

Where Piet is really a stack machine in disguise, Turnstyle is an encoding of the (untyped) Lambda calculus. This allows for building more reusable images at a higher level of abstraction, while still keeping the specification small, making it relatively easy to develop new interpreters.

📝 Turnstyle

Turnstyle is an graphical esoteric programming language based on lambda calculus.

Present Company

💬 Jimmy Miller

🧵 conversation

Anyone else here going to splash? I know Ivan Reese and Lu Wilson are presenting. I’ll be attending. Just wanted to see if anyone else is going to


👨🏽‍💻 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/09 Week 4

2024-09-23 19:02

🤖 Bret Victor on AI 📝 Functional reactive programming 📢 Unconference by Ink & Switch

Two Minute Week

🎥 codeflowcanvas swagger endpoint generation via Maikel van de Lisdonk

🧵 conversation

Youtube Thumbnail

In this video I show a new feature that I am working on in my codeflowcanvas project (which is a visual programming system and language): exporting a flow to typescript so that it can be used in other code-bases. In this example it's a nodejs-hono project for creating an api with a swagger/openapi documentation page

Our Work

🎥 Visualizing Vector Embeddings in 3D with transformers.js and t-SNE/UMAP via Mariano Guerra

🧵 conversation

Youtube Thumbnail

I made a small tool: Visualizing Vector Embeddings in 3D with transformers.js, t-SNE/UMAP and echarts-gl

Get it here: github.com/marianoguerra/webvectors

💻 Motif Designer via Natalie Freed

🧵 conversation

Hello! I just listened to the AgentSheets episode and wanted to share that I’m working on a PBE + block programming educational tool. It’s a work in progress but the vision is of something like “a macro recorder for Kid Pix” that lets you switch between drawing and code editing. motifdesigner.netlify.app Target audience is elementary school age kids, though it’s also meant to be fun for adults to tinker with.

I’m excited that there seems to be a bit more traction (or at least interest?) around PBE again. I thought it was an interesting point in the paper/episode that it hasn’t necessarily gone out of fashion because it wasn’t a good idea, but because other solutions emerged to some of the problems it was trying to solve.

Devlog Together

📝 Experiments With Text to Text Transpilation via Paul Tarvydas

🧵 conversation

... Chipping away at articles regarding a bunch of experiments towards creating higher level syntax for programming languages. Thus far, I've managed to consolidate t2t (text-to-text transpilation) into a single .mjs file and to redocument it. Wrote an adjunct article about experimenting with "t2t" using a toy meta-programming language to generate code in existing languages. "T2T creates DSLs. T2T reduces the amount of work required to build a DSL. You should be able to create a new DSL in an afternoon. ..."

💬 Kartik Agaram

🧵 conversation

Very initial draft of a notebook UI.

There are 2 kinds of lines here:

  • Regular lines are prose, but you can also insert named blanks into them using the syntax [value|name] , which renders vertically across 2 lines. You can't nest blanks within blanks. These lines can wrap, but a single blank can't wrap across multiple lines on screen.
  • Indented lines (though the indentation is currently subtle) are code. They can render fractions using the syntax (a/b) as I showed before. (Not sure I'll keep this in the long term.) You can nest fractions within fractions. These lines don't support wrapping.

Planned:

  • synchronizing blanks with the same name
  • using code in indented lines to compute derived names without values inline.

Inspirations:

20240917-notebook.png

💬 Kartik Agaram

🧵 conversation

Today I've added some rudimentary styling syntax to my notebook.

It looks like I care about always making the styling very transparent, so it's possible in principle to guess what characters one needs to type to copy the look of something one sees on screen. So the style directives will never be hidden.

🎥 Style

💬 Cross-link to a different thread. via Kartik Agaram

🧵 conversation

There's a bug in my parser. Here's a debug UI showing it at a glance. The parse tree in the background is for the line the mouse pointer is hovering on.

One fun thing is the couple of lines in the middle there. I reached for a notebook to scribble some equations for myself, but then realized all I wanted was to be able to draw the fraction line horizontally -- and I'm sitting in a tool that can do that. Using the tool to debug the tool 💥 (At least until I have no tools because I broke my tools using my tools. 💬 #of-ai@2024-09-22)

notebook-debug.png

Thinking Together

📝 The Myopia of Professionalism via Jasmine Otto

🧵 conversation

I am now blogging about design engineering in organizations that deal with lots of domain knowledge(s). This post covers metrics that don't do what your manager thinks they do, and why interdisciplinary work has trouble finding a good home.

💬 Misha A

🧵 conversation

What is "program"? essentially, conceptually.

🐦 leslie (@lesliexin) on X via Christopher Shank

🧵 conversation

I like this metaphor of translucent software both as a callback to the translucent hardware aesthetic of the 2000s, but also to progressively display the underlying mechanisms of software ~if~ you want to see it.

🐦 leslie (@lesliexin) on X: Finally got around to building this :)

Try it at https://translucentweb.site/

Tweet Thumbnail

Content

📢 Unconference hosted by Ink & Switch via Ivan Reese

🧵 conversation

Tight zoom-in — mid-September 2024 — virtual roomful of online humanoid computer brains who maintain material co-presence in LA, or are translocating to SPLASH in October

There's going to be an unconference hosted by Ink & Switch on the 26th of October.

This has not been broadly announced yet. We're in the "invite the people who you really want to be there" phase. That means all of you!

Take a look at the list of attendees. Brilliant weirdos, the lot. You should come, you should come, you should come.

📝 Functional reactive programming via Jasmine Otto

🧵 conversation

A full-blown tutorial on DIY functional reactive programming, from one of the Spritely folks. Also collects relevant PL dissertations on dataflow, e.g. FrTime and propagators, as well as explorables like Holograph.

📝 SwissGL tutorial: Reaction-Diffusion donut via Mattia Fregola

🧵 conversation

🕸️ 1992 mailing list post from Tim Berners-Lee via Ivan Reese

🧵 conversation

A fascinating 1992 mailing list post from Tim Berners-Lee where he briefly outlines his desires for a programming language for the web — basically, what JavaScript could have been.

The principles of hypertext are on full display:

You need something really powerful, but at the same time ubiquitous. Remember a facet of the web is universal readership.

Then there's the PL nerdery:

Ideally, the language should include object-oriented inheritance, a basically functional nature, and a clean syntax. It should be interpretable and compilable. At least one public domain. A pre-compiled standard binary form would be cool too.

My favourite bit, though, is the desire for the client/server to negotiate over the language of the executable document, just like they negotiate other details. There are some wild isomorphism implications here.

In reality, what we would be able to offer you real soon now with document format negotiation is the ability to return a document in some language for execution, with the option of being able to provide it in several languages, the language being a "data format" which can be negotiated between client and server at run-time. For, for example, one could provide it in viola script and/or in /bin/sh which would cover most ofthe unix world.

🤖

📝 Stephen Fry on technology and AI via Nilesh Trivedi

🧵 conversation

Stephen Fry on technology and AI:

Machines are capable of bias, hallucination, drift and overfitting on their own, but a greater and more urgent problem in my view is their use, abuse and misuse by the three Cs . They are Countries with their specific ambitions, paranoias, enmities and pride; Corporations with their unaccountable rapacity and of course Criminals . All of them united by one deadly sin: greed. Greed for power, for status, for money, for control.

🎥 ChatGPT o1 preview + mini Wrote My PhD Code in 1 Hour*—What Took Me ~1 Year via Mattia Fregola

🧵 conversation

Youtube Thumbnail

💻 Test Driven Development with AI: Writing a Decompiler via Tom Larkworthy

🧵 conversation

I got test-driven-development working with AI ( o1-preview ) and it is totally nuts. It can do complex stuff, I am making serious progress with a decompiler with it

Test Driven Development with AI: Writing a Decompiler. The key was feeding the test suite results back into context (plus o1-preview's ability to improve code without forgetting half the stuff in the middle)

📝 Very AI-skeptical article via Konrad Hinsen

🧵 conversation

I just read this very AI-skeptical article, that basically says that today's generative AI has no credible business model and is unlikely to improve significantly enough to get one. While I am aware of counter-arguments to the technical aspects, I wonder if there are more positive takes on the financial/business aspects, coming from anyone else than AI vendors.

🤖 Bret Victor on AI via Kartik Agaram

🧵 conversation

Present Company

🎙️ A new bonus episode of the FoC podcast via Ivan Reese

🧵 conversation

For our Patreon supporters, there's a new bonus episode of the FoC podcast where we try… really, we do try… to talk about the new Dynamicland archive website, and the cool stuff on it. But, it's just damned hard to take all of this new material without considering a bunch of bigger picture questions about society, and visions of the future, and what it means to be "open" about your work. So hard.


👨🏽‍💻 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/09 Week 3

2024-09-15 23:17

📑 Little Languages Reading Club 🐛 Debugging in the Multiverse 💡 DrawTalking: Building Interactive Worlds by Sketching and Speaking

Two Minute Week

🎥 warping text in webgl space via Leonard Pauli

🧵 conversation

Youtube Thumbnail

Our Work

💻 An editor for text that renders fractions vertically via Kartik Agaram

🧵 conversation

A minimalist project for creating arbitrary policies for drawing text to screen while remembering where you put everything so you can respond to mouse and keyboard events.

🎥 Juice demo (vim++) via Zak Miller

🧵 conversation

Youtube Thumbnail

Very early days (and not as innovative as a lot of the things I see on here), but I started working on a vscode extension that takes some ideas from semantic editing to build something sort of vimlike but that has things like functions, parameters, etc as first class ideas so you can e.g. press f to select the nearest function, press q to go to parameters, and then press a to append a new parameter at the end (which adds a comma and space, or newline and space, or whatever, and then drops you in insert mode) Here's a little video if you're interested

🧮 HowMuchIs13BillionEuros.com via Declan

🧵 conversation

Hi all, I made a page to contextualize 13 billion euros (or 14): an amount owed to Ireland in an EU Apple tax case and all over the airwaves here this week. I use some pretty silly back-of-the-envelope type calculations (the same ones also repeated a lot here this week!).

These calculations aren't especially interesting, but I think I'll use this example to illustrate a close link between numbers: the type that we read and report about everyday, and their formulas/workings - because all numbers have these.

Here you can also change numbers in calculang (e.g. change that 13Bn to 14Bn) and related numbers on the page will flash with updates.

I was glad of this exercise to focus on something a little more relatable to a simple spreadsheet, but portable and structured in terms of calculations imo, unlike a spreadsheet.

And I needed to face a wee small bit about the pains of finding data, and even afterwards: "linking" to it 🤒 (i did a lot of c&p hardcode :dotted_line_face:)

The page is: HowMuchIs13BillionEuros.com

🎥 Future of Coding Schrödinger's Wiki as a Gloodata Plugin via Mariano Guerra

🧵 conversation

Youtube Thumbnail

My contribution to the wikijam: Schrödinger's Wiki

A wiki with all the articles in it, each page "collapses" into existence on the first observation/visit.

The generation process uses Slack messages, podcast transcripts and community-adjacent papers to produce articles grounded in FoC's ideas.

It also has hypermedia features to navigate and explore the references in the same application.

📊 graph.cubode.com via Rebeca Garcia

🧵 conversation

Hey guys, we built, documented, and soft-launched graph.cubode.com using agentic AI technology.

It’s a basic micro platform that auto-generates customisable graphs from csv your data files, it then renders an embeddable web component and we’ve used echarts, which we’re very happy with.

It took us one month to build it and another month to ship it, (highlighting a potential opportunity in AI deployment infrastructure). We’re rolling out new features weekly like a filtering settings, improvements in the AI Engine or pulling data from Notion DBs directly, we’re gathering user feedback to refine the UX and functionalities if you use it and like it/dislike it let me know!

Or if anyone is interested in the Medium articles look for Cubode and they’re all there with step by step guides on AI architecting.

🎥 Cubode Product Demo

Devlog Together

📝 Peeking Behind the Curtain via Paul Tarvydas

🧵 conversation

a one-liner reply to someone turned into something with more lines than 1 ...

My biggest interest is in thinking about programming instead of coding .

Make reprogrammable electronic machines do something using whatever means possible.

ATM, I'm using draw.io[1] to draw programs, then t2t to compile draw.io's XML (graphML[2]) to code (say Python), then run.

Articles on my desktop, awaiting attention (coded and running and in github, but need more expansive docs and/or people with more energy) ...

💬 Kartik Agaram

🧵 conversation

I've got a REPL loaded up with all of FoC archives.

Just Lua, not something powerful like Common Lisp or Smalltalk. Still quite nice.

Thinking Together

🗭 My reaction to something mentioned in the latest FoC podcast via Paul Tarvydas

🧵 conversation

FWIW, my reaction to something mentioned in the latest FoC podcast (futureofcoding.org/episodes/073):

Computer Science isn’t about programming . Computer Science is about mapping computational thinking into the digital domain and discovering problems in an ad-hoc manner, then fixing the problems to make the mapping work on reprogrammable electronic machines.

💬 Jason Morris

🧵 conversation

When I started my law firm, I thought everything I knew about a client matter needed to be in "the file". I wasted a lot of time moving things that were perfectly fine where they were. I realized that "the file" was a naive metaphor I took from law firms pre-cloud. That changed my outlook about data models. I don't want my digital model of things to mimic the real world artifacts involved, and spend a lot of time trying to explain to my colleagues that just because a person files a motion by delivering a real or digital pile of pages with real or digital ink on them doesn't mean that the document and the motion are the same thing. A motion doesn't have a page orientation, and a document isn't potentially vexatious. But when I argue that we should be modeling the domain, not only the artifacts, my colleagues — who are all also former lawyers — don't seem to disagree so much as act as though I'm speaking heavenly script. Does anyone have any tips for persuading people who haven't been converted to the wisdom of domain modeling that maybe our systems should deal with the things we care about, and not only the things we can download or touch?

📱 Huawei's triple foldable display phone via Nilesh Trivedi

🧵 conversation

Youtube Thumbnail

Could Huawei's triple foldable display phone combined with software like Samsung Dex liberate portable devices from being consumption-oriented devices? 🤔

Apple has kept a strong hold on keeping ipadOS from threatening macOS. But the Android ecosystem does not have that limitation (see Waydroid or BlissOS or PostmarketOS for example)

Projecting in the future, we might even get briefcase size displays/machines that unfold into a full tabletop-style communal computing interface.

🍰 The main ideas behind Hest are... via Ivan Reese

🧵 conversation

Reposting ;)

Periodic self-reminder.

The main ideas behind Hest are:

  • Nobody’s made a good computer code out of things moving through space.
  • Moving through space is also about moving through time. Rewind is table stakes.
  • If moving through space is meaningful, then space itself is part of that meaning. Position, distance, velocity — they mean something.
  • You can do things with this meaningful space-time visual code that you simply can't do in a non-moving visual code.

🤔 Are there languages that emphasize the single-datum <=> collection-of-data duality? by Beni Cherniavsky-Paskin

🧵 conversation

Are there languages that emphasize the single-datum <=> collection-of-data duality? E.g. making loop-with- if <=> filter -on-the-whole look very similar?

But that's just a programming curiousity; I'm more interested if there are any mind bicycles that help one think about local vs. global rules?

Physics is rich with examples where seeing both perspectives is insightful:

  • local F = ma <=> conservation of potential energy independent of specific path (for certain forces)
  • Gauss's laws relating single-point "differential" <=> volume/surface "integral" formulations of Maxwell equations
  • Noether's theorem is certainly up there, relating shapes of laws with conserved stuff, but I'll admit over my head...

Example task: For a while now I've dreamed of making a model of weather that's simple enough for paper+pen+tokens, or generally something "board game-ish". Lies-to-children are fine, but would like it to demonstrate at least basic mechanics: (A) wind caused by hotter air rising and leaving a vacuum; (B) evaporation over sea => rain over land (C) "rain shadow" beyond a mountain (my country has this).

It's not easy to discretize continuous-quantity equations into something like a cellular automaton... I'm leaning towards representing conserved quantities like water with tokens you can move, rather than per-cell state.

And I don't want some huge "simulation"—I'd love to find rules that can demonstrate these processes in few enough steps to follow by hand.

Hmm say I have air that wants to go up + right, and it holds just 1 water token—which way do I move it? Well I suppose I want a bit larger numbers so quantization won't matter that much... And I probably want alternating horizontal vs. vertical game phases (also dealing with 1D slice at a time can reduce previous-vs-next-state confusions).

Any advice for tools to help think about rules/mechanics and what can emerge from them, beyond "try and see what what happens"?

(But I guess I really should play with large "sand" style models, then try to scale down! try-and-see is more powerful than merely keeping in my head.)

Content

📑 Little Languages - Reading Club via Mariano Guerra

🧵 conversation

Little Languages - Reading Club a list of reading resources around programming languages organized by topic

💡 DrawTalking: Building Interactive Worlds by Sketching and Speaking via Lu Wilson

🧵 conversation

Don't know if this already got linked here but... very cool paper about creating interactive scenes by drawing and talking

🐛 Debugging in the Multiverse via Nilesh Trivedi

🧵 conversation

Antithesis simulates a purely deterministic universe. The reasons we do that are to find bugs faster, and to make them perfectly reproducible once found.

🤔 Containers via Kartik Agaram

🧵 conversation

This XKCD still hits with the force of revelation 5 years later.

🧦🎥 Hypercard in the World, May 2016 via Daniel Garcia

🧵 conversation

Youtube Thumbnail

HyperCard in the world. A laser-powered live-programming environment for the real world.

📝 a turnkey solution for making inline canvases as a Jupyter extension via Jasmine Otto

🧵 conversation

There might be a turnkey solution for making inline canvases as a Jupyter extension. Good luck identifying logical objects, but there must be some advantages over drag-and-drop. I'd use this for my current prototype but that my target domain's existing DSL is not (yet) graphical. For any other paper tool, diagram, nonlinear algebraic notation, what have you, there is a lot of potential.


👨🏽‍💻 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/09 Week 2

2024-09-09 09:59

📢 PAINT & Causal Islands Berlin 💻 Decode: an augmented coding canvas 🎥 Roboco-op: mimetic engineering

Two Minute Week

💬 Marek Rogalski

🧵 conversation

Working on performance improvements now. Getting some nice visual effects thanks to uninitialized memory.

Our Work

🧑‍🔬 Account of the research project we’re doing at JetBrains by Pavel Mikhailovskii

🧵 conversation

Hi everyone!

I’d like to give an account of the research project we’re doing at JetBrains.

It is called Ludwig after Ludwig Wittgenstein and has an ambitious goal of re-engineering the foundations of the software development stack.

At the moment, we are still at a very early design and prototyping stage, but we believe that this project will let us create the next generation of development tools.

Here are the most important ideas we’re trying to materialize:

Liberation of code from the shackles of textual representation

Human-readable textual notations were a great innovation back in the 1950s. However, we have made great progress in the ways we store complex data structures since then, and the typical codebase sizes have also grown by a few orders of magnitude.

Code is essentially a graph with one tree-like perspective more important than others. An adequate way of storing such complex and evolving data as code would be to put it in a versioned graph / linked document database, supporting Git-like branching and merging. That would get rid of the need for continuous parsing, indexing, symbol resolution and typechecking that constitute the code editing workflow in modern IDEs. We would resolve symbols once, at the moment of typing and store their unique identifiers (not just names!) in an indexed by construction and preserving referential integrity database.

That would also make such intentions as Rename, Move, Find Usages or Go To Definition trivial to implement. Of course, structural representation of code will come hand-in-hand with structural (semantic) diff and merge.

This graph-like representation should allow for a fine-grained tracking of changes and dependencies and dramatically reduce feedback times in such scenarios as incremental compilation.

A minimalist approach towards programming language design

To prevent our language from becoming “fat and weak” as John Backus has put it in his famous lecture, we want to pass our language through a series of aggressive optimization rounds or distillation passes.

This should result in something comparable with Smalltalk’s “syntax on a postcard”. Actually, we believe that we could make it even more symmetric by eliminating the distinctions between methods, named and anonymous functions, operators and statements. (As you know, Smalltalk has different syntaxes and different behavior of return statements for methods and blocks and “surprising” execution order rules for different kinds of messages).

The goal is to come up with a language that would be easy to learn and read and straightforward to reason about for all kinds of agents-be it humans, static analysis tools or AI.

In terms of notation, it will look like an indentation-based syntax for a tiny subset of Lisp, but without its macros or the zoo of “special forms”. Being freed from the limitations of plain text, we’re going to use semantic coloring to make the notation even more expressive and compact.

Obviously, our programming language, as any other, should be able to express computation logic and code structure; what is less common is that we also want it to be able to express data, configurations and knowledge, thus eliminating the need for additional DSLs. A YAML-like data notation emerges from our tiny language as naturally as JSON emerged from JavaScript. The only difference is that JSON was discovered by chance, and our language is consciously designed to be able to declaratively describe complex data structures.

Unification of Object-Oriented and Functional programming

As a part of our minimalist program, we are aiming to heal the great schism that divided programming into the object-oriented and the functional worlds.

We believe that the class-free approach in the form proposed by Douglas Crockford will let us make OOP an integral part of functional programming, thus converging the two into what could be called unified programming. This form of OOP will keep the best parts—encapsulation and polymorphism and get rid of the "considered harmful" implementation inheritance. There will be no need for classes, constructors, prototypes, visibility modifiers, this and new - just immutable structures and anonymous functions.

An IDE designed for focus and context awareness

We want to build an immersive Smalltalk-like environment with structural navigation, a smaller editing scope and richer and more dynamic context compared to the traditional file- and text-based IDEs. This seems well-aligned with both the minimalist design of the language and the non-textual storage format. The latter should allow us to store some additional information alongside the code. That will include all kinds of metadata, normally invisible to the users, but also some unusual forms of embedded content. Think of a documentation comment containing a video explaining the algorithm or a discussion between multiple developers linked to a certain place in the code.

Smart typing

We also have some ideas on how we could implement some smart typing techniques, combining the convenience of automatic type inference with the solidness and discipline of explicit type annotations.

The key idea is that the flexibility of the non-textual representation will eliminate the need for the user to choose between the two worlds. Manual annotations can be hidden to reduce visual distraction, automatically inferred types can be displayed and persisted in the code database, etc.

Designed to be AI-fitting

Finally, we want the whole thing to be future-proof and provide better support for AI-aided development compared to the traditional languages. The simplicity of the language as well as its fine granularity and its property of always having all the symbols resolved should allow for high-quality “understanding” and retrieval-augmented generation of code compared to such languages as Python or Java.


As I said, at the moment we’re still at a very early stage. Many of our challenges are not technical, but about finding the way of how we could shape this set of ideas into a product vision. We are, of course, open to collaboration with like-minded people.

I will be happy to answer your questions and hear your feedback.

🎥 code::dive 2017 – Douglas Crockford – The better parts

code::dive 2017 – Douglas Crockford – The better parts

💬 Jarno Montonen

🧵 conversation

Added tabular data and document template import to my notebook demo so now it can be used to fill/generate documents from csv/spreadsheet rows. Would any of you find something like this useful? I know there are a bunch of document generators, but the ones I've seen seem kinda crappy. Happy to hear about experiences using any of the existing solutions and why they suck though 😆.

🎥 Document Generation

📝 About - The Parallel Reality Computer via Duncan Cragg

🧵 conversation

Hiya folks, now that many of you have been digging in to Dynamicland's website for a bit and are in the right frame of mind, I was hoping that you may have had your neurons tickled in just the right ways to be open to reading about a project with some similarities: mine! 🤗

So I updated my About page, and I was hoping that it's now short and accessible enough to be just the info needed for you to "get" what my project is all about:

📝 About - The Parallel Reality Computer

💬 Kartik Agaram

🧵 conversation

Still lots missing, but check this out.

Lol, look at how it renders hyperlinks. This isn't going to be useful without some sort of delimiter or fence around math.

fractions-bug.png

Thinking Together

🪼 Physics of JellyCar: Soft Body Physics Explained via Christopher Shank

🧵 conversation

Youtube Thumbnail

What are ways we can make computation more squishy with soft-body physics? Most visual notations are overwhelmingly rigid and structured!

Content

💻 Decode via Ivan Reese

🧵 conversation

Decode — a new tldraw-based augmented coding canvas tool from @Francois Laberge

📝 Situated Computations: Bridging Craft and Computation in the Trinidad and Tobago Carnival via Jasmine Otto

🧵 conversation

a paper from an architectural journal that combines an ethnography with a sculptural grammar ('situated computations').

🧦 dynamicland.org via Alex McLean

🧵 conversation

I hear dynamicland.org will update sometime today..

💡 Donate to dynamicland via Ivan Reese

🧵 conversation

Somewhat buried in the new DL webpage — you can now directly donate to support their work. This is absolutely the sort of thing I'd back on Patreon, so I'm glad to see they offer those sorts of $n/month options.

📝 The Canary via Kartik Agaram

🧵 conversation

No coding here, but this is fantastic.

The Canary

And yet even now his father hovered in the background both as a rhyme and a presence. The careers of both men had been redirected by a simple question posed in a college class. Both spent their lives measuring the stress in stone. Both used scientific methods to answer questions that had seemed to everyone else beyond the reach of science. Both sought to understand what prevented roofs from collapsing. The father’s work had received a lot of public attention and the son’s had not. But that was just an accident of what people cared about. A lot of people cared about Gothic cathedrals; fewer were concerned with whatever was happening to workers deep underground.

📢 PAINT: Programming Abstractions and Interactive Notations, Tools, and Environments via Beni Cherniavsky-Paskin

🧵 conversation

Looking at SPLASH '24 program, I knew LIVE workshop is always very relevant (this year majority of lectures involve folks here); but also found PAINT which sounds great too 👀

In the workshop on Programming Abstractions and Interactive Notations, Tools, and Environments (PAINT), we want to discuss programming environments that support users in working with and creating notations and abstractions that matter to them. We are interested in the relationship between people centric notations and general-purpose programming languages and environments. How do we reflect the various experiences, needs, and priorities of the many people involved in programming — whether they call it that or not?

Areas of interest to PAINT include but are not limited to:

  • Design and implementation of program representations and their means of interaction for end-users of all ages
  • Design and implementation of visual programming environments
  • Block-based environments and their application
  • Projectional editors and their application
  • Languages and their environments with mixed notations
  • Meta tools or tool creation frameworks
  • Methods to support working with abstractions, such as example-based programming
  • Input and output devices for interacting with programming environments
  • Theories of the above

PAINT format is flipped, kinda critical review, and not recorded IIUC. But the past papers look interesting.

📝 A note on the PERQ computer via Ivan Reese

🧵 conversation

A fun little rollercoaster of computing history shared in this short blog post by Graydon Hoare, looking at the lesser known Xerox Alto descendant, the PERQ.

📢 Causal Islands Berlin via Orion Reed

🧵 conversation

The Causal Islands Berlin conference (organised by me, Boris Mann, and Jack Rusher) is happening next month (Oct 4 & 5). Would love to see some of you there. It'll be quite small (100-ish capacity) but loaded with great talks and conversations. We'll also be doing a more full-size conference in May next year. The vibes are "future of computing" and "spiritual successor to Strange Loop" with a more socio-political bent.

Also, there is a CfP up if you want to submit a presentation!

🧑‍💻 To Write Code: The Cultural Fabrication of Programming Notation and Practice via Joel Chan

🧵 conversation

greetings! am thoroughly enjoying the latest podcast episode on agentsheets, and the discussion of “is programming a Language(TM)” and the history of how it came to be that programming was considered language in the sense of “has a formal grammar” reminded me of this paper by Ian Arawjo on the history of programming notation and its cultural referents (e.g., typewriters, and how it moved away from more “visual” forms and converged around “programming as typing on a typewriter”: To Write Code: The Cultural Fabrication of Programming Notation and Practice

i found the resulting frame of programming as translation work of “mapping one culture to another” provocative too!

CleanShot 2024-09-07 at 14.41.31@2x.png

CleanShot 2024-09-07 at 14.43.59@2x.png

🤖

💬 Nilesh Trivedi

🧵 conversation

TIL:

image.png

image.png

🎥 Roboco-op explainer via Tom Larkworthy

🧵 conversation

Youtube Thumbnail

I thought I had shared roboco-op here but it seems I had not. The idea is to mix code/runtime/chat context into a single materialised human editable representation to enable "mimetic engineering". Copy and pasting "skills" between notebooks and therefore engineering the AIs context to suit the task at hand, all while having a machine checked code based conversation (I demoed this at Berlin's GenAI meetup) withou context switches.


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