[HN Gopher] Butler Virtual Operating System
___________________________________________________________________
Butler Virtual Operating System
Author : njrc9
Score : 251 points
Date : 2023-03-23 14:24 UTC (8 hours ago)
(HTM) web link (tristancacqueray.github.io)
(TXT) w3m dump (tristancacqueray.github.io)
| DustinBrett wrote:
| This sounds quite cool. Is there any working demos online to try
| it out?
| mxuribe wrote:
| Here again, references and uses of htmx...Man, i really gotta
| dive into htmx some more...I keep seeing it pop up in so many
| places (well, at least many places that are showcased on HN,
| anyway)
| JoelMcCracken wrote:
| This is great. This is actually fairly similar to something I've
| been thinking about doing for some time, so I have a few comments
| to make!
|
| For a previous job I wrote a miniature/lightweight "actor system"
| with haskell threads and STM. Basically, each actor was
| represented by a thread, threads operated in a loop (like erlang
| actors), and threads had mailboxes implemented via STM
| primitives. It worked like a dream, and I've been wanting to
| write up a blog post about it for a good while now, but alas,
| there is always something else that needs to be done.
|
| There is an idea that's been floating around in my head for some
| time now. I want to expose Unix ideas to the web era. If a
| "shell" were built to expose a lot of these things via the web
| (of course, only to authorized users), I could see an explosion
| in creativity.
|
| This leads into the next thing, enabling people to have their
| own, independent servers. This is a massive topic, but basically,
| I'd like to see more ideas like sandstorm.io or cloudron.io take
| off.
|
| I may be looking at this project as a place to start for my own
| code, and/or inspiration! Thanks.
| nicolast wrote:
| You may be interested in
| https://discourse.haskell.org/t/towards-an-actor-
| framework-f..., then!
| JoelMcCracken wrote:
| Thank you, I am! I saw this linked in the original post.
|
| I actually had started working on modernizing the cloud
| haskell code, but just realized it was far more work than I
| had time to put towards it at that time. I'm trying to get
| some things complete so I can focus on some other things
| instead, such as contributing towards this =)
|
| Assuming you are the same NicholasT, if you want I can share
| some of the code snippets that I used to implement what i'm
| talking about. I just know that I can't commit any
| significant time toward this right now though.
| nicolast wrote:
| I am indeed. Feel free to reach out, would be happy to
| learn from the approach you took.
| n0w wrote:
| As someone interested in pursuing similar ideas I would
| recommend taking a look at Object Capabilities and the E
| Language if you haven't already.
|
| I believe Sandstorm.io (and Cap'n Proto) at least adopts some
| of the ideas.
| JoelMcCracken wrote:
| Ah right, I remember this to an extent. That's cool, i think
| that's an interesting direction for research, but to be
| honest I probably wouldn't start with solving those problems.
| There's enough difficulty in simply modeling the unix world
| for the web.
|
| I suspect one of the things Sanndstorm did that probably
| caused it issues was was biting off too much, for example
| implementing its own linux containers system (I don't know
| what the details were, I just know that at the time, I was
| thinking "if it were me, I would just use docker.")
| garganzol wrote:
| Choosing HTML for UI subsystem of an operating environment is
| refreshing. Is there a demo URL?
| pjmlp wrote:
| https://en.wikipedia.org/wiki/Active_Desktop
| garganzol wrote:
| Active desktop was not a proper UI subsystem for apps. It was
| just a "content" on the Desktop and maybe in some folder
| views with appropriate desktop.ini file.
| pjmlp wrote:
| Nope, it was also one of the first Electron like
| distribution formats, with packaged Web applications.
|
| https://en.m.wikipedia.org/wiki/HTML_Application
| MillionthOdin16 wrote:
| You can run a demo with docker pretty quickly, but I didn't see
| any live demos. I was able to get it running with a one-line
| command though.
| samsquire wrote:
| This is really interesting. I especially like the use of actors.
|
| If you think of the Win32 API message loop then you can kind of
| think of each program and GUI as a mesh of independent actors
| with inboxes that communicate user GUI events to backend server
| actor that does CPU work or network work in the background.
|
| I think this is an easy to understand architecture. If you think
| of it as MVC but what would be a method call in MVC is actually a
| cross thread event queue between server threads and client GUI
| threads.
|
| Where GUIs get complicated and hard for me to read the code for
| is all the state management and complexity of components of the
| GUI itself. I wouldn't want to be tasked with implementing Qt or
| GTK.
|
| The actor idea reminds me of programmatic "agents" or bots that
| work on your behalf on a schedule or in response to events
| (messages) such as Huginn.
|
| The idea of plugging GUI components together so they interoperate
| is really interesting. COM and XPCOM is an example of this in
| practice for communication between applications (and the GUI) The
| DOM is an example of it too! You can insert arbitrary blocks in
| Notion or Obsidian or COM objects in Word documents.
|
| https://github.com/huginn/huginn
|
| I like the process viewer on the right hand side. Would be nice
| to be capable of visualisation what the applications are doing.
| toast0 wrote:
| If you're in this frame of mind, X11 protocol is actually a
| distributed systems communication protocol that happens to
| output graphics as a side effect; it's not fully meshed like
| Erlang dist though.
___________________________________________________________________
(page generated 2023-03-23 23:00 UTC)