Update on my live-editing environment. It's still extremely easy (1% for me, 10% for others?) to crash the driver, so I've been trying to track down thoses corner cases. Realization: my memory of such crashes and instinct for situations causing crashes is extremely unreliable. Possibly the app's error behavior is changing under me during seemingly unrelated changes. I've been spinning my wheels on this for a couple of weeks. Hopefully it'll clarify over time. I might need a more elaborate set of tests that involve configuring a client app just so.
Today I got a feature request from someone in the LÖVE community and created a fork of lines.love with 2 buttons:
* `clear` the buffer. I imagine this like clearing an Etch-a-sketch.
* `export` the buffer to html. I imagine it emerging out of the app like a Polaroid.
One consequence/challenge of working with lots of forks: you develop a heatmap of the areas of your code most likely to have merge conflicts. I feel a very tangible pain now any time I have to touch something within 3 lines of the place where I set the window title. Every fork has a different window title, and the idiosyncracies of text-based diff guarantee every fork will flag a spurious conflict.
Hmm, perhaps I should start surrounding such lines with 3 empty lines..
The layout is extremely jank, but it makes up for it somewhat using keyboard navigation. And you can click on any node to copy its URL.
LÖVE doesn't yet support https. The next version should, but I finally lost patience and temporarily put together a Lua+luasec crawler that invokes LÖVE.
Like my last few apps, this one can be edited live without restarting it.
Hmm, the second point in the alt-text for the second image requires a correction.
> The current implementation definitely has a bug relative to my intent..
The bug isn't in the implementation but in the algorithm itself. It violates the final constraint I'd set for it.
> cousins never overlap columns
Hmm, time to read the literature.
Ah, it only took a slight tweak. This looks much better.
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.