โœ‰๏ธ Not subscribed yet? Subscribe to the Newsletter

Future of Coding Weekly 2024/12 Week 1

2024-12-01 23:30

๐ŸŽฅ Bottom up engineering for robust-first computing ๐ŸŽˆ Smalltalk & LLMs ๐ŸŽฅ FoC Virtual Meetup Video

Two Minute Week

๐ŸŽฅ Node output preview when dragging values on edges via Maikel van de Lisdonk

๐Ÿงต conversation

Youtube Thumbnail

In this video I show a small new feature : when dragging values on to edges (or connections as I like to call them), for node-types that support it ... a small preview shows the node output as a hint above the node. Currently only the expression and sum node-type support this. I am looking for a way to have every node-type support this.

Another small tweak is that the expression node-type triggers its output directly when the expression is changed. Previously the whole flow was retrigged and this new behavior feels much better.

Our Work

๐ŸŽฅ Mariano Guerra & Tudor Girba - LLMs & Smalltalk - UK Smalltalk User Group via Francisco Garau

๐Ÿงต conversation

The videos from last month presentation are now available:

[:kind | โ€˜Regards from โ€™, kind ] value: โ€˜The UK Smalltalk User Groupโ€™.

๐ŸŽฅ Mariano Guerra on LLMs

MarianoGuerra - LLM - 30-Oct-2024

๐ŸŽฅ Tudor Girba on LLMs

Tudor Girba - LLM - 30-Oct-2024

๐Ÿ•ธ๏ธ smallweb via Achille Lacoin

๐Ÿงต conversation

Hey, I'm working on smallweb, a self-hostable personal cloud.

It's inspired by by serveless platforms like val.town and old standards like cgi-bin. I still struggle to describe it. It feels like coding in dropbox, but in a good way.

For example, if I want to host my new blog in smallweb, I can do it by just creating a new folder at ~/smallweb/blog/main.ts :

import { Smallblog } from "jsr:@tayzendev/smallblog@1.1.5";



export default new Smallblog({

  siteTitle: "Pomdtr's Blog",

  defaultAuthors: ["pomdtr"],

});

Then, no need to run any terminal command or to wait for a deploy step, my blog is instantly available on the blog.pomdtr.me subdomain: blog.pomdtr.me (this one is hosted on my raspberrypi).

Apps also have write access to their own dir. For example, if you go to vscode-demo.smallweb.run, you'll be able to write in my own smallweb dir. Or feel free to draw me something at excalidraw.smallweb.run !

All of the websites hosted under the smallweb.run domain are open-source, and can be found at: gh.smallweb.run

๐Ÿ“ fishtower.conradgodfrey.com via Conrad Godfrey

๐Ÿงต conversation

Hi,

Sharing fish tower

Was built as half experiment with how quickly I could get a websocket real time thingy up and running, and to see if I could market a London Filet O Fish First Timer meetup using a webtoy.

I think people don't use webtoys to market real world events as much as I would've thought - I think this gets cheaper with AI and perhaps we'll see this a lot more?

fishtower.conradgodfrey.com

๐Ÿ‘“ LookAtThat: Render source code in 3D, for macOS and iOS via Ivan Lugo

๐Ÿงต conversation

Hello Future of Coding folks!

It's been a while since I've crawled out from my cave, but I've come to share something fun, at least I think so. I've finally managed to get the downloadable TestFlight betas up for free for my visualizer tool for macOS and iOS, and you can get the links here on the main GitHub page:

github.com/tikimcfee/LookAtThat

Many thanks go out to everyone here that helped answer odd questions at odd hours to help me build this first releasable beta. Cheers, and let me know what breaks!

Project Screenshot

Devlog Together

๐Ÿ’ฌ Christopher Shank

๐Ÿงต conversation

"make illegal states unconnectable"

๐ŸŽฅ Screen Recording

๐Ÿ“ github.com/uprun/git-auto-commit via Oleksandr Kryvonos

๐Ÿงต conversation

I am back with small project ( ~work in progress~ already finalized),

Have you ever thought that git diff does not really show the history of changes you made and just shows the final state,

this can be solved with more granual commits,

so my project - github.com/uprun/git-auto-commit - creates commits when file changes,

in such way ~changes will be sent real-time and~ the transformation history is saved as well.

๐Ÿ›ธ Eclector via Konrad Hinsen

๐Ÿงต conversation

Over the last weeks I have been working on my moldable inspector for Common Lisp again, with the goal of turning it into a support platform for explainable data science. One big task that I have finally achieved is code browsing. You can navigate through the code by clicking on symbols in displayed code. And you can transclude code into HTML, as shown on the first pane.

This wasn't trivial to do because Common Lisp cannot be statically parsed. When loading code, Lisp reads one top-level form (everything between a top-level pair of parentheses), executes it, and then goes on to the next one. The semantics of each form thus depend on the previous ones. Static parsing, as I do here, can never be perfect. The goal is getting the parser to deal with 99% of code correctly and not crash on the remaining 1%.

Fortunately, others had done most of the hard work, and I could use Eclector, a portable and extensible Common Lisp reader, as the basis for my code browser.

The code for my demo available on Codeberg.

๐ŸŽฅ Demo

๐Ÿ’ป exporter via Tom Larkworthy

๐Ÿงต conversation

So orthogonal artifact 1 of (maybe) 3 for reimplementing (a subset of) Observable in userspace is done (exporter). The next thing, as discussed in the demo, is to preserve the editing experience by adding a userspace code editor, so that the exported, unbundled (offline-first) notebook carries its own editor around with it.

Progress is pretty good. It ends up a little different to Observable as it is pinned to a specific cell, but it can also do extra things like edit the variables in dependancies which is what you want when the export format has bundled all the dependancies. You might need to change them too!

The third required project, I thought of while preparing for the demo, is the notebook renderer itself. That should also be in userspace and hackable. Even with the editor component, you can't reorder cells, as there is a whole presentation layer that lives above the runtime that chooses how to render the results. That rendering process itself needs to be hackable, so you can leave the vertical notebook format entirely. Currently the single file format follows the path of the existing observable runtime of instantiating the DOM before starting the runtime and piping observations to the DOM, but for maximum control we should let userspace be informed of the runtime changes and choose how to render. Just a shower thought at the moment but I definitely think the "renderer" should be another orthogonal component.

I am trying to document my learnings about the Observable system in some reference documentation here if you want to learn more. That documentation actually hacks the runtime so the concepts are explained adjacent to the actually executing concepts. I love literate programming.

aside: I am enjoying the single file hermetic webpage format, its like portable statically linked binary that ends up being way faster than normal webpages.

image.png

๐Ÿ’ฌ Jason Morris

๐Ÿงต conversation

I'm doing one weird stuff with knowledge graphs in my "real job", and it is sufficiently weird that I am finding that my intuitions about what's going on in the graph are dramatically incorrect, and I don't have any comprehension of how wrong I am until after I select a random collection of nodes, and visualize them somehow. The degree to which this is a pain in the ass compared to using other data structures is wild. You just cannot usefully inspect a graph in text. Are there some tricks of the trade I'm missing, here?

๐Ÿ’ฌ Kartik Agaram

๐Ÿงต conversation

I've been watching my wife teach the kids second-grade math for a few weeks now with the glimmer of an idea in my head that just came out.

The tree notation for addition and subtraction shows the symmetry between them, and also the symmetry between operands.

I know it's valuable, because it got instantly adopted in lessons, where most of my ideas get gently humored and booted out of the room.

I'd never have the sense something like this was valuable before hanging out here โค

addition.png

Thinking Together

๐Ÿ“ github.com/bellard/quickjs via John Flockton

๐Ÿงต conversation

Hey folks! Bit of a random question, but can any one think of any language interpreters which parse text straight to bytecode, omitting the AST step completely? Quick.js is one of the most well-known (github.com/bellard/quickjs/tree/master) but I wondered if any one knew of any other interesting examples for other languages?

Content

๐ŸŽฅ ABI-DOS Announcement Trailer via Ivan Reese

๐Ÿงต conversation

Youtube Thumbnail

Here's a lil circuit simulation game that looks pretty neat โ€” ABI-DOS

EDIT: Ended up collecting a handful of these.

๐Ÿ“ Viewing document history is now easy as scrubbing through a video. via Mattia Fregola

๐Ÿงต conversation

Pretty great thing I wish I had through life:

Viewing document history is now easy as scrubbing through a video.

Usable on lex.page

๐Ÿ“ƒ Feels Like Paper via Ivan Reese

๐Ÿงต conversation

Some lovely explorations of physical paper + augmented reality in this project Feels Like Paper from Lukas Moro

๐ŸŽฅ Bottom up engineering for robust-first computing via Konrad Hinsen

๐Ÿงต conversation

Youtube Thumbnail

What machines want, by @Dave Ackley. The subtitle " Bottom up engineering for robust-first computing " is more informative. It's about building computing systems that remain robust under scale.

๐ŸŽฅ Handmade Cities via misha

๐Ÿงต conversation

We are the largest indie conferences for low-level programmers. This is your portal to meet with folks into graphics, game engines, kernels, compilers, and more!

๐ŸŽฅ UIST'09: Bonfire: a nomadic system for hybrid laptop-tabletop interaction via Mariano Guerra

๐Ÿงต conversation

Youtube Thumbnail

๐Ÿ“ Oliver Kreylos' Research and Development Homepage - Augmented Reality Sandbox via Mariano Guerra

๐Ÿงต conversation

Augmented Reality Sandbox

The goal of this project was to develop a real-time integrated augmented reality system to physically create topography models which are then scanned into a computer in real time, and used as background for a variety of graphics effects and simulations. The final product is supposed to be self-contained to the point where it can be used as a hands-on exhibit in science museums with little supervision.

๐ŸŽฅ WUW / sixthsense - a wearable gestural interface via Mariano Guerra

๐Ÿงต conversation

Youtube Thumbnail

'WUW' bridges this gap by augmenting the physical world around us with digital information and proposing natural hand gestures as the mechanism to interact with that information. 'WUW' brings the intangible information out into the tangible world. By using a camera and a tiny projector mounted on a hat or coupled in a pendant like device, 'WUW' sees what you see and visually augments any surfaces or objects you are interacting with. 'WUW' projects information to any surface, walls, and the objects around us, and to interact with the information through natural hand gestures, arm movements, or with the object itself.

๐Ÿ“ Bret Victor on climate change via Kartik Agaram

๐Ÿงต conversation

Rereading Bret Victor on climate change, it finally sunk in that he really really cares about software tools for scientific computing.

Iโ€™m happy to endorse Julia because, well, itโ€™s just about the only example of well-grounded academic research in technical computing. Itโ€™s the craziest thing. Iโ€™ve been following the programming language community for a decade, Iโ€™ve spoken at SPLASH and POPL and Strange Loop, and itโ€™s only slightly an unfair generalization to say that almost every programming language researcher is working on (a) languages and methods for software developers, (b) languages for novices or end-users, (c) implementation of compilers or runtimes, or (d) theoretical considerations, often of type systems. The very concept of a โ€œprogramming languageโ€ originated with languages for scientists โ€” now such languages arenโ€™t even part of the discussion! Yet they remain the tools by which humanity understands the world and builds a better one. If we can provide our climate scientists and energy engineers with a civilized computing environment, I believe it will make a very significant difference. But not one that is easily visible or measured!

Music

๐Ÿ“ Orbita โ€“ a new device from Playtronica via Tak Tran

๐Ÿงต conversation

Coloured dots for making a sequencer - the same company are making a MIDI controller using plants too

Turn color and gesture into music with Orbita - a new device in Playtronicaโ€™s range of quirky sound gadgets

๐ŸŽฅ Virtual Meetup 7 โ€ข November 27, 2024 via Ivan Reese

๐Ÿงต conversation

Youtube Thumbnail

Here's the recording of the Future of Coding Virtual Meetup 7. This time, I added some notes and timestamps to the description, just in case that's helpful.

For next month, we'll have to figure out something a little different so we don't collide uncomfortably with the holiday season. TBD!


๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป 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 4

2024-11-24 23:34

๐Ÿง‘๐Ÿฝโ€๐Ÿ’ป Notebook Demos ๐Ÿ”Œ Node & Wires Demos ๐Ÿ“บ Democratizing Software โ˜ƒ๏ธ Dynamic Language Winter is Coming?

Two Minute Week

๐Ÿ’ฌ Taylor Troesh

๐Ÿงต conversation

working on a local-first podcast client for video podcasts and youtube rss :)

CleanShot 2024-11-20 at 08.12.59.gif

๐ŸŽฅ Dragging and dropping values on edges in code flow canvas via Maikel van de Lisdonk

๐Ÿงต conversation

Youtube Thumbnail

Thanks to Ivan Reese for coming up with the idea and putting it in my head: I've added a new feature to code flow canvas.. you can now drag and drop arbitrary values which are on the canvas on edges (or use the clipboard). I've made a small video about and you can see it here . Off course you can try it yourself on demo.codeflowcanvas.io

Our Work

๐Ÿ“ก public.me/anton via Anton Podviaznikov

๐Ÿงต conversation

made micro blogging tool(twitter replacements) that works using imessage.

allows publishing things through imessage without consuming tons of tweets first. the bonus is that all my data is on my devices anyway.

here is my micro blog public.me/anton

๐Ÿ“ Research manifesto via Konrad Hinsen

๐Ÿงต conversation

Yesterday I revised my home page and added a section "Research manifesto". It's mostly about my ideas for FoSC (Future of Scientific Computing), so I feel it fits here.

๐ŸŽฅ LLM chat assistant in code flow canvas via Maikel van de Lisdonk

๐Ÿงต conversation

Youtube Thumbnail

I've made a new small video where I've implemented a chat assistant using the OpenAI Chat Completion API in Code flow canvas (this is the visual programming system that I am building in my spare time). Goals for building this visual flow are to learn more about the OpenAI API's and LLM's in general, but also to see if something like this could be build without building in special knowledge about OpenAI in code flow canvas itself. I had to extend code flow canvas off course, but only with generic node-types which could be used in this flow. You can try it our yourself on demo.codeflowcanvas.io, but only if you have an OpenAI API key with some credits

๐ŸŽฅ Reverse Engineering a 218-Byte Wasm Compiler in JavaScript via Mariano Guerra

๐Ÿงต conversation

Youtube Thumbnail

Reverse Engineering a 218-Byte Wasm Compiler in JavaScript

Starting with a 218-byte one-liner that implements a Reverse Polish Notation arithmetic compiler, we'll work backward to transform it into readable JS by removing one code golf trick at a time

Devlog Together

๐Ÿ“ the lab notebook entry via Tom Lieber

๐Ÿงต conversation

I finished the lab notebook entry that my earlier posts were about. ๐Ÿ™‚ I was burnt out on the ugly charts I was making before, and the outcome of this experiment with schematic tables is: I am pumped to keep going!!

exam-fairness-schematic-table.gif

๐Ÿ“ Building Software Using Black Boxes via Paul Tarvydas

๐Ÿงต conversation

I've been experimenting and thinking about just how little we need to worry about "efficiency" these days, and how to expand the gamut of notations for programming. A snapshot of my thoughts... Building Software Using Black Boxes

๐Ÿ“ my notebook app via Kartik Agaram

๐Ÿงต conversation

I haven't really felt like building in a while, but there's a cricket match on and today I felt moved to use my notebook app to create a little scenario calculator for the world championship.

This requires Lร–VE (basically some way to draw pixels on a canvas) and 2.8kLoC of Lua. Compare Excel, or Google sheets + a web browser, or Jupyter. Much fewer features, of course, but well-sized for things like this. Though I did find myself wishing I could sort lines, the notebook doesn't support that yet..

notebook.png

calculations.png

๐Ÿ—’๏ธ wtc

๐Ÿ“Š A small update via Tom Lieber

๐Ÿงต conversation

A small update today: I draped flags onto the bar charts so that you can answer "how do the observations affect the priors?" with a glance.

final-chart-with-flags.gif

๐Ÿ“ thinking ahead via Pietu

๐Ÿงต conversation

Hi again ๐Ÿ‘‹.

Continuing my journey on building an experimental markup language based on blocks.

Someone was already ๐Ÿ’ฌ #devlog-together@2024-11-16 last week and suggested that blocks should be executable.

I've got now the bare minimum demo of executing inline code embedded in markup documents.

๐ŸŽฅ Murkdown exec blocks

๐Ÿ“ draw.io via Paul Tarvydas

๐Ÿงต conversation

brainstorming: In what I'm writing these days, I want to include lots of diagrams / figures. Currently, I'm using Apple Pages and just drag'n'dropping screenshots into documents then publishing them to Substack (a painful process). I happen to use draw.io and excalidraw for diagramming. For a while, I was using markdown editors, but they didn't give me a WYSIWYG editing experience. I used Obsidian for a while - it did give me WYSIWYG for excalidraw diagrams, but wanted $$$s to allow me use their publishing mechanism and made it difficult to use Github Pages for $-less publishing. I keep thinking that I should just cobble together an RTF parser and use only a markdown-ish subset of features in Apple's RTF editors, but, I don't want to get side-tracked [I would use 't2t' to parse and transmogrify RTF, I think, and, use it to transpile subsetted-RTF to markdown - what's needed is an RTF-to-markdown or RTF-to-murkdown tool, I think]

Thinking Together

๐Ÿ’ฌ Mariano Guerra

๐Ÿงต conversation

What do you think of "It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures."?

If you agree, what is that data structure for you?

๐Ÿ“ Bret Victor's PROCESS via Kartik Agaram

๐Ÿงต conversation

Bret Victor's PROCESS

๐Ÿ’ฌ Alex McLean

๐Ÿงต conversation

Love this (partly) analogue modular live coding system for 3d printing by Maas Goudswaard

image.png

Content

๐Ÿฆ• Reactive HTML notebooks via Tom Larkworthy

๐Ÿงต conversation

Content editable Observable runtime based notebooks ๐Ÿค” Pretty cool!

๐ŸŽฅ MIT Theory of Computation, Fall 2020 via Mariano Guerra

๐Ÿงต conversation

MIT Theory of Computation, Fall 2020

๐Ÿ”‘ Foundation DB Query Language via Taylor Troesh

๐Ÿงต conversation

My friend made a query language for KV stores! Already being used on very large production datasets. Check it out:

demo.gif

๐Ÿ“บ Democratizing Software - Handmade Seattle 2024 via Konrad Hinsen

๐Ÿงต conversation

"Democratizing Software" Talk at Handmade Seattle, starting at 1:24. Starts out with a statement of goals and values, as the title suggests, and then explains why rewriting techniques are a good way to reach those goals. Ends with a presentation of Nova, a rewriting system for nearly-plain-language.

This is so incredibly similar to my own work over the last years that I am probably going to rewatch this at least once. The only difference is the target audience: Wryl (the speaker) uses everyday language as a building material, addressing games and other use cases that everyone can relate to, whereas I use mathematics as a building block, addressing scientists. I could probably set up a rewriting system for translating their talk to my own scenario.

๐Ÿ’ฌ Paul Tarvydas

๐Ÿงต conversation

Konrad Hinsen I haven't watched this yet, but the words you use are tickling my neurons.

  1. "rewriting"

  2. makes me think that this may be incredibly similar to my t2t ("text to text" rewriting)

  3. "a rewriting system for nearly-plain-language"

  4. makes me think of Steve Phillips' work with ChatGPT / Claude. He used LLMs to generate OhmJS. The generated OhmJS implemented his new programming language by using Golang as an assembler. It mapped his new language into legal Go code that he would run. I.e. new-lang -> new-age assembler -> executable, where new-age assembler == Go. (Private communication, details available, the only blocker is writing this up in a readable manner)

  5. I'm currently using Python as an assembler in defining an HHLL and am compiling a 1,400 LOC HHLL program (into Python [done] and am working on generating Common Lisp, with an eye on generating JS).
  6. Kinopio to markdown. I use the Kinopio app as a mind mapping / bubble-charting / brainstorming device. I invoke a Prolog program to rearrange the mind map in hierarchical order and to spit out the points as markdown (.md). I told ChatGPT to turn the point-form .md file into full-blown prose and generated at least one blog post in English that way.

(Details and repos available, if interested).

โ˜ƒ๏ธ Are we Heading Towards a Dynamic Language Winter? via Mariano Guerra

๐Ÿงต conversation

Youtube Thumbnail

๐Ÿง‘โ€๐Ÿ”ฌ Open positions at the College of the Atlantic via Eli Mellen

๐Ÿงต conversation

A potentially future of coding shaped CS prof. role is available at COA up on MDI in Maine

I can talk to what the school is like and make intros if anyone is interested.


๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป 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 3

2024-11-18 10:24

๐ŸŽฅ A New Kind of Spatial Computer ๐Ÿ“˜ Live Coding: A User's Manual ๐ŸŽฅ Single File Notebooks

Two Minute Week

๐Ÿ’ฌ Marek Rogalski

๐Ÿงต conversation

Developing without a GUI framework comes with a risk of falling into some deep rabbit holes. This one is about exploiting the slowness of some widgets to create a sort of "Into the Spider-Verse" animation effect.

๐ŸŽฅ Export Observable notebooks as single self-sustainable offline files. via Tom Larkworthy

๐Ÿงต conversation

Youtube Thumbnail

The self-sustaining single file observable notebook export format is ready and implemented in userspace

Our Work

๐Ÿ“ Dialogues on Natural Code | Proceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software via Lu Wilson

๐Ÿงต conversation

My first ever proper academic publication!!!!

It's called "Dialogues on Natural Code" โ€” an essay that Dave Ackley and I wrote together

I'd be really grateful if you could give it a read. I promise it's not boring

Also it's a stage play

Devlog Together

๐ŸŽฅ Edited via Paul Tarvydas

๐Ÿงต conversation

Youtube Thumbnail

Revelation: I like to think in terms of UNIX pipelines. 0D is like UNIX pipelines, but, 0D is more efficient and 0D allows many more input and output ports in software components. Using UNIX's stdin , stdout and stderr are not enough in the presence of multiple ports. It looks like JSON might fit the bill, though. I know from previous experience that SWIPL (a PROLOG) can cast its results to JSON. I imagine that any modern programming language can produce JSON. I hope to poke at this idea of using JSON instead of using raw, unstructured text like stdout in hopes of creating a cheapo multi-language REPL.

๐Ÿ’ฌ Jason Morris

๐Ÿงต conversation

Incidentally re-read something I wrote in October of '23, and realized that I am still working on implementing those same thoughts today. The thing I wrote about then has been an evenings and weekends project for me since, and I am hoping to have a version live for people to play with early in the new year. Is 15 months too long to go between releases? ๐Ÿ˜…

๐Ÿ’ฌ Pietu

๐Ÿงต conversation

Hi again ๐Ÿ‘‹.

I've recently started a project to try out some of the ideas I've had regarding markdown and writing. The approach i've taken is to implement my own markup language with some interesting properties.

The perspective this time is, "why should a piece of content be represented as one thing". A list is a list, an image is an image, a quote is a quote. Could we somehow compose these to make eg. a "code quote".

This time, i've got a bare-bones video demoing how blocks of content can be composed.

๐ŸŽฅ Murkdown composable blocks

๐Ÿ“ Programming Language Workbench - Beginnings via Paul Tarvydas

๐Ÿงต conversation

Inspired by my previous REPL experiments, Iโ€™ve begun playing around with a more complicated example - a programming language workbench.

๐Ÿ’ฌ Tom Lieber

๐Ÿงต conversation

The layout in this next prototype is complicated enough that I finally got around to some automatic layout.

image.png

๐Ÿ’ฌ Tom Lieber

๐Ÿงต conversation

A few debug passes, and it renders schematic tables!

image.png

Thinking Together

๐Ÿ“ Nilesh Trivedi (@nilesh.trivedi.link) via Nilesh Trivedi

๐Ÿงต conversation

Somewhat off-topic but I saw a lot of people moving to BlueSky, decided to read up on the underlying AT protocol and its promise of decentralization and found things I did not like. Posted some thoughts.

๐Ÿ’ฌ Sam Gentle

๐Ÿงต conversation

Random thought about Things Spreadsheets Got Right โ€“ I've heard a lot about "no invisible state" etc, but another interesting thing about spreadsheets is that they treat data as a first-class citizen in a way that most programming models don't.

In a conventional programming language, you model processes and leave the data implicit; in a spreadsheet, you model data and the processes are implicit. The data is what you see in the cells, and the processes are plumbing that you only see by inspecting the cell that the data lives in. What other programming systems start with the data you want to process before you write the process itself?

And maybe spreadsheet programming's lack of implicit state is actually a consequence of this data-first paradigm, rather than an end in itself. In fact, even calling data "state" implies a kind of process-first mindset, only conceptualising data through its relation to a process. And this could be a key blind spot for programmers creating systems for non-programmers, or rather process-first people creating systems for data-first people.

Content

๐Ÿค– AI Makes Tech Debt More Expensive via Steve Dekorte

๐Ÿงต conversation

I've been thinking a lot about this in the last 6 months and ran across this today: ๐Ÿ“ AI Makes Tech Debt More Expensive

AI increases the penalty for low quality code

๐ŸŽฅ A New Kind of Spatial Computer via Taylor Troesh

๐Ÿงต conversation

Youtube Thumbnail

spatialpixel.com

๐Ÿ“˜ Live Coding: A User's Manual via Lu Wilson

๐Ÿงต conversation

Lots of nuggets of wisdom in this book about live coding

๐Ÿ“ Live Coding: A User's Manual

Live Coding: A User's Manual, published by MIT Press

Present Company

๐Ÿ“ Modo End of life extended license via Ivan Reese

๐Ÿงต conversation

If anyone wants a free production-grade 3D modelling/animation/rendering tool, the venerable Modo just got end-of-life'd and the company is giving everyone a free 10-year license.

Sure, Blender exists โ€” but for us HCI-inclined folks this is a rare opportunity to casually check out how a different team approached this corner of the GUI possibility space. I personally find 3D modelling tools to be hugely inspirational, and frequently draw on my experiences with them when designing programming systems. If you've never kicked the tires on one of these, or only have experience with Blender, CAD, or game engines, Modo is a really interesting point of comparison.

EOL announcement and free license: campaigns.foundry.com/modo-eol-license

Download (requires a free account): foundry.com/products/modo/download


๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป 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 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

Contents ยฉ 2024 Mariano Guerra - Powered by Nikola