I feel like adding the bedrock abstract definition from LoperOS, it’s from one of my favourite blog posts:
A bedrock abstraction level is found in every man-made system. No recoverable failure, no matter how catastrophic, will ever demand intelligent intervention below it. Repair at those depths consists purely of physical replacement. [1] No car crash, however brutal, will ever produce piles of loose protons and neutrons. When a Unix binary crashes, it might leave behind a core dump but never a “logic gate dump” and certainly not a “transistor dump.” Logic gates and transistors lie well below the bedrock abstraction level of any ordinary computer.
Hi @akkartik! I have been far away for long time. But now that the semester is ending, I hope to have more time to hang around over here, so I’m slowly coming back and heating motors. Also I have been unable to answer in the detail I like your post on Freewheeling apps, as detailed as I would like. But I have enjoyed it a lot and I have comments about how some local practices/ideas are in resonance but take another approach to your pitch there in favor of small apps easily modifiable by a small community of users around such apps (which was the topic of my research).
Also, I have being finding Lua time and again in my common practices, this time via NeoVim, Neorg and some idea of having a minimalist interactive notebook experience, as the one I have with my extensions to GToolkit/Lepiter, but for more constrained environments, like tablets or when GToolkit just don’t launch without any notice under Manjaro (which is not so uncommon). Some interactive notebook based on Löve2D, instead of NeoVim+Neorg would be a dream in terms of portability!
I hope to be back with detailed comments to your Freewheeling apps post. But that would be until the end of the semester, in the first weeks of December.
Update: I’ve been spending a lot of time lately trying to make my phone more malleable. The new Freewheeling App is a cross-platform programming environment for little scripts called Lua Carousel.
Part of my goal for Lua Carousel is a durable artifact that seldom requires updates. Still very much aspirational (15 versions in 30 days), but it’s gotten me to focus on a cultural problem I’d face if I ever achieved my goal: projects with no updates look dead. But I think I’m figuring out an answer: to show that a project is alive, continually show it being used. Then it won’t matter that it’s not updated. In this vein I’ve been trying to share little programs using Lua Carousel on a near-daily basis:
For example, today I made a tutorial showing 4 kinds of widgets: button, slider, text editor and audio recorder/player. They now exist in Lua Carousel in a form factor suitable for mixing and matching right on your phone, the site of use for any scripts you create.
All this is still following my Freewheeling principles, of course. Lua Carousel is a simple download on Android (installing LÖVE is more complex on iOS but possible, which is in itself a huge accomplishment). Now it’s also portable. You can still edit its sources live while it runs (albeit only on a computer).
Ugh, I hate this so much. The constantly shifting foundations that are the current popular systems are so bad for this. Perfectly working programs “bitrotting” away to no fault of their own.
At least there are some environments where a piece of code can be “done” and will work forever. (Common Lisp has some of this)
This is the best reason I’ve come up with for exhibitionism. To keep projects you care about from seeming dead, Always Be Showing Off what you’re doing with them.
I also decided to use Common Lisp for the stuff I used to do in Python. Even maintaining small virtual Python environments across platforms had become too much of a headache. Long live boring technology!
There has been a few collapse computing related papers at the ComputingWithinLimits workshop this year, shall I make a thread about it? Is that malleable adjacent?
I think what Malleable Software and Collapse Computing share is the idea that a software system (language/os) should be simple enough for one programmer to hold in their head and rebuild from scratch. Also with building from scratch comes the idea of tailoring to your own needs, repurposing older devices, and making changes without a distant owner’s permission. They do seem connected in that way.
Interesting though to compare with the Alan Kay ARPA / PARC vision which was a bit different: very much Malleable, yet not at all Collapse. PARC’s “inventing the future” mindset was build-from-scratch but relied on using very expensive supercomputers and was against recycling tech.