I’ve been watching this project with much interest, though I haven’t yet had the time to play around with it myself. A capability-style system layer for Linux is very exciting!
(The phone side of things is exciting too, though as much as I like Smalltalk I wonder if Squeak is entirely up to the task of hosting a phone UI.)
Still need to dive further into the syndicated actor model side of things though; I think I have use cases for it but don’t entirely grok it yet.
Incidentally, I'm not sure about Squeak as the main user-facing bit, either. I love the idea of having a handheld, battery-powered, internet connected Smalltalk machine; but Squeak's UI is currently very desktop-focussed, and single-host-window-focussed, at that. (I'm working on that latter elsewhere [1].) Squeak's flexibility means it doesn't have to stay that way, and experimenting with alternatives is easy, making it maybe a good environment to prototype alternative phone UIs. Whichever way you slice it, it's a lot of work, of course.
I worked with VisualWorks (nee Objectworks) for many years, and red/yellow/blue button events were still in the low level user input processing of code. They predated the semi-standardization of mouse buttons. I still have a strong synaptic response for them. My brain just automatically knows what kind of operations it will find for each of those colors.
This is really cool! I've been thinking how cool it would be to turn MezzanoOS into a running mobileOS and then flash it onto my Librem 5. This is seems like a (working) version of what I want with image-based programing, but inside the smalltalk universe. Will keep a close eye on this one.
I've been playing around with Synit & Syndicate a bit already, and it's an impressive system. I've told Tony that Syndicate is the "missing session layer" for the Internet, since Syndicate enables multicast & broadcast communication between parties, not just unicast.
If anyone wants to really understand what's going on, I'd recommend looking at preserves[0], a serialization format Tony and some others have been working on. Preserves is a superset of JSON with actual semantics, a schema language and a binary representation. Syndicate, syndicate-server and synit all follow protocols defined in preserves schema, and so those are a good hook into learning how this system works.
Synit itself is impressive. With nearly trivial effort, I was able to get a web server running as a daemon, and verified that it was resilient to my repeated `killall`s.[1] I simply replaced the `"echo httpd"` with `"python -m http.server"` and then started `syndicate-server -c ./boot` inside the `experiments/layered-server-config/` directory. This example is actually overkill for my use case (a replacement for supervisord), but is simple enough that it can show how Synit works without much clutter.
If you casually look at a project and decide to install it, knowing that it's a replacement for your operating system's init system is quite important.
The systemd people have managed to get their project in as the default on many distributions. They have no excuse for having a thin skin about being labelled as the default which will be replaced.
(The phone side of things is exciting too, though as much as I like Smalltalk I wonder if Squeak is entirely up to the task of hosting a phone UI.)
Still need to dive further into the syndicated actor model side of things though; I think I have use cases for it but don’t entirely grok it yet.