Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
State of the SqueakPhone (syndicate-lang.org)
133 points by tonyg on July 15, 2022 | hide | past | favorite | 14 comments


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.


As part of working on synit, I've managed to write up some of the core Syndicated ideas a bit better:

- An essay on what the Syndicated Actor Model is: https://synit.org/book/syndicated-actor-model.html

- A big ol' glossary of relevant concepts: https://synit.org/book/glossary.html

- A protocol spec for interoperation among Syndicated programs: https://synit.org/book/protocol.html

Maybe some of these will be of use to you. I'm also happy to answer questions if you have any!


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.

[1] https://squeaksource.com/X11.html


Red, yellow, blue buttons.

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.

Congratulations, Tony!

[0] https://preserves.dev/

[1] https://git.syndicate-lang.org/synit/synit/src/branch/main/e...


Thanks, Andrew :-)


Fascinating.

Smalltalk projects like this (and Pharo) are the only things keeping me interested in OOP and hesitating to go all in on FP.


I haven't had time to do a deep dive, but Glamorous Toolkit also looks quite interesting:

https://gtoolkit.com/


One major question went completely unanswered: Does it run Smalltalk?

Because that's the main thing I am looking for in a smartphone.


OMG I was just thinking about this idea. I'll have to check it out.


You might throw in a few more comments about how synit is a replacement for systemd and d-bus.

Seriously though, is "not being systemd" such a strong part of the project's identity that it bears being repeated so much?


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.


Yes please!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: