Jan 28, 2023
I just had a fun hour with the kids and this program:

iga: texture synthesis

Based on the Wave Function Collapse algorithm.

We tried out different tiles for a while.

After I got sick of typing out the filenames, I added the ability to drop files on the window.

Then we noticed that some of the tiles are more boring. I hardcoded the starting point near the bottom rather than the top, and that helped.

Finally I had it take the starting point from the place where you drop the file on the window.

permalink

* *
Jan 23, 2023
Dealing with failing tests when all you have is a map for code

Mechanisms:

  • Highlight tests in green.
  • Run all tests on any change.
  • Highlight failing test cases in red.
  • Turn edges of vision red when there's any failures, just in case failing tests are out of view.
  • Hotkey to zoom out over all of current view.
  • Same hotkey to restore viewport settings.
  • Click anywhere to zoom in.

Check it out in my live-editing programming environment.

(What is a "freewheeling" app?)

permalink

* *
Jan 16, 2023
Inspired by a recent blog post by Laurence Tratt, I spent some time kicking the wheels on my code map based programming environment by building a BF interpreter.

Next up: reproducing in Lua Laurence's results regarding the compiler-interpreter spectrum.

Here's the "load screen" for my environment, showing a visual overview of the code I've written.

permalink

* *
Jan 8, 2023
A map for code

In this video, I start up in quick succession:

  • a simple test app
  • the 'driver' programming environment showing the map for the app's code
  • the 'meta-driver' programming environment showing the map for the driver's code

On initial load the driver (glitchily) zooms out over the whole codebase before zooming back in to the previous session.

Check it out.

(Inspiration: early side-scrolling videogames that would often start a new level by panning across all of it.)

permalink

* *
Jan 3, 2023
This is pretty cool, a blog arranged in a Hilbert curve on an infinite 2D grid.

permalink

* *
Dec 28, 2022
I've been live-coding my Lua-based markup language luaML using a driver program. Now I've pulled luaML into the driver program so that I can open multiple buffers, move them around, zoom in, zoom out, etc.

(And yes, you can live-program the driver. Not quite using itself, but by copying it into a "meta driver" and making a handful of edits.)

Compare v1 and v2 of the driver.

permalink

* *
Dec 24, 2022
luaML on an infinite surface

You can draw various graphics and edit text in arbitrary grid layouts, all on a pannable, zoomable infinite surface.

Repo

permalink

* *
Dec 19, 2022
Today I discovered "How many computers are in your computer?", which seems to have been started around 2010.

(I started Wart in 2010, Mu1 in 2014 and Mu in 2017.)

permalink

* *
Dec 17, 2022
Black triangles for the umpteenth time.

I reimplemented my little box model atop a foundation of an infinite 2D surface that can be panned and zoomed.

permalink

* *
Dec 14, 2022
The world is cranking through AoC and zooming toward a ChatGPT future, and I'm still here thinking about the right way to visualize past versions in a live-programming environment.

And my note-taking app. One thing I did recently: a move command that moves columns (analogous to browser tabs) to the left, while continually truncating columns on the right beyond some limit. The combination of these two has changed how I work, from messes all over the surface to much more localized access patterns where I live near the top left and move things over to it as I need them. (It's not a catastrophe if I lose a tab because on-disk search is working well.)

permalink

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