Nov 5, 2022
Implementing the Potluck system in LÖVE

Potluck

Research is awesome, but sometimes when you read a paper you just want to add it to your toolbox right now. In a way that fits in with your other tools.

Properties of my tools:

  • minimal dependencies (no browser!)
  • cross-platform; runs on Windows
  • easy for anyone to modify (https://www.inkandswitch.com/end-user-programming)
  • live; modify without restarting (https://www.youtube.com/watch?v=8Ab3ArE8W3s)

Done so far: Potluck annotations

permalink

* *
Oct 16, 2022
New video: Live-coding using LÖVE

(audio/video; 20 minutes)

Credits:

permalink

* *
Sep 18, 2022
✅ Edit source code from within the app
✅ Edit source code for source code editor from within the app
✅ Create graphical debug experiences for source code editor from within the app


  A programming environment showing source code on the left, menu bar on top, a log of runs on the right.

  The program being edited is itself the source code editor. The logs graphically show menu options being selected in response to keystrokes.

permalink

* *
Sep 3, 2022
"Here's 6kLoC, now go reinvent Smalltalk."

An example LÖVE repo that can be used to modify its own sources.

Editor: a lightly forked version of lines.love

Debugger: a graphical log of what the program did, as demonstrated here.

These tools aren't general-purpose. Instead, they're intended to evolve with the sole app they're used to modify: themselves.


Today I went through and gave every fork of lines.love the ability to modify and debug its own source code. Just press ctrl+e to edit the sources.

A chart plotting lines.love and its 8 forks so far to show relative complexity and upstream/downstream relationships.

It's kinda funny to add a code editor to a text editor. The code editor can hide debug prints, and has a teeny bit of colorization. On the other hand it doesn't (yet) support drawings or selecting text.

permalink

* *
Aug 27, 2022
Here's the final demo of the project I did for last week's Wheel Reinvention Jam: rethinking development tools to center debug by print. I think you can replace the benefits of debuggers and save on a bunch of complexity in language infrastructure and tooling.

permalink

* *
Aug 23, 2022
I just added hyperlinks to my text editor in 35 lines of Lua

Here's the code.

Deep in the guts of the renderer, right before it renders a fragment of text, check if it's a file, and turn it into my button abstraction if so.

Caveats: links can't wrap over multiple lines, links can't contain spaces.

Incredibly inefficient, to check the file system for every single word. So it's in a fork for now while I decide just what to do with this new super power.


It's interesting to compare this approach with Gemini.

Gemini: links on their own line, support arbitrary link text.

Me: inline links are ok, but the text will always be the URL.

permalink

* *
Aug 14, 2022
As preparation for tomorrow's wheel reinvention jam, I just created a fork of lines.love with all the drawing support ripped out. Time to take it in a new direction.

text.love

permalink

* *
Aug 7, 2022
Idea for a new tool

Drop a Mastodon or HN URL on a window, and it constructs a more dense 2D graphical layout for a thread.

  • Separate card for each comment.
  • Ideal readable width per card.
  • Short arrows from comments to their replies.
  • Keyboard shortcuts to pan along semantically to sibling or child.

Side-effects:

  • It needs the network, obviously.
  • Zero contact with file-system.

Inspirations:

permalink

* *
Aug 4, 2022
Current state of my note-taking app

Things of note:

  • Operates on a hard-coded directory of text files.
  • No overlapping, no tiling, just an infinite 2D surface of columns. Commands open new columns.
  • Wordstar-style menu up top of important commands in current context, and their shortcuts.
  • Command palette at top left that filters commands available in current context.
  • Files/nodes can have links. Links can form graphs, as the picture shows (original: http://www.maplefish.com/todd/papers/Experiences.html)
  • Links have labels (next/previous by default).
  • Graph-traversal commands can take an argument (next/previous by default) of the edge label you want to follow.
  • 'add' adds an edge immediately to the current node, 'append' traverses the edge repeatedly to the end, then adds.
  • 'step' navigates along an edge from the current node and opens it in a new column, 'unroll' traverses the edge repeatedly to the end and collects all nodes into a single column.

add:append :: step:unroll

permalink

* *
Aug 2, 2022
I'm doing a major migration of my notes schema to make it work better with my note-taking app. In the process I've been reading a random (mostly embarrassing) sampling of 10+ years of notes. But here's a non-embarrassing one:

Jun 2012: I need fuck you software.

That pretty much explains why I started Mu 2 years later :D

permalink

* *
archive
projects
writings
videos
subscribe
Mastodon
RSS (?)
twtxt (?)
Station (?)