[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)