Email or username:

Password:

Forgot your password?
Top-level
Kartik Agaram

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.

codeberg.org/akkartik/driver.l

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

5 comments
Kartik Agaram

Inspired by @ltratt's tratt.net/laurie/blog/2023/com, 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.

Kartik Agaram

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

Kartik Agaram

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.

git.sr.ht/~akkartik/driver.lov

(What is a "freewheeling" app? akkartik.name/post/roundup22)

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.

Kartik Agaram replied to Kartik

Some distilled reference documentation on my Freewheeling Apps (a way of building low-maintenance Situated Software for small groups)

In a bare-bones template repo (~500 LoC): codeberg.org/akkartik/template

In a more elaborate template with testable primitives and an editor widget: codeberg.org/akkartik/template

Open it on a browser tab when you clone and start editing using git.sr.ht/~akkartik/driver.lov. There are a few examples in the Readme to spark ideas. Works on any Windows and Unix.

Some distilled reference documentation on my Freewheeling Apps (a way of building low-maintenance Situated Software for small groups)

In a bare-bones template repo (~500 LoC): codeberg.org/akkartik/template

In a more elaborate template with testable primitives and an editor widget: codeberg.org/akkartik/template

Kartik Agaram replied to Kartik

A little app for drawing graphs

git.sr.ht/~akkartik/snap.love

I've wanted something like this for a long time. Intended for small graphs where laying things out by hand is not too painful, and it's nice that things don't move around every time I make a change, as happens with graphviz (graphviz.org). The file format is also amenable to git; no long lines, and adding new nodes or edges doesn't reorder unrelated nodes and edges.

Go Up