[HN Gopher] Show HN: I made an in-browser code editor with code ...
       ___________________________________________________________________
        
       Show HN: I made an in-browser code editor with code replay and REPL
        
       I made a Logicboard.com -- A collaborative code editor with code-
       replay feature.  Code-replay lets you run the coding session like a
       movie, I wrote a blog post on how I implemented this:
       https://logicboard.com/blog/code-replay  You can try out the demo
       here: https://logicboard.com/demo/:replay  And play around with the
       code editor here: https://logicboard.com/demo/  Logicboard also has
       an REPL shell, just type "start()" and hit enter in the output
       area.
        
       Author : logicboard
       Score  : 48 points
       Date   : 2023-05-26 19:06 UTC (3 hours ago)
        
 (HTM) web link (logicboard.com)
 (TXT) w3m dump (logicboard.com)
        
       | andrewstuart wrote:
       | Is that code mirror?
        
       | ceepee wrote:
       | I'm curious if anyone would like to use the code-execution as a
       | service. It's basically a websocket based API where you send a
       | blob of code and get execution result as response.
       | 
       | In case of REPL, you send STDIN to websocket and get STDOUT as
       | response. All code execution happens in separate Docker
       | containers.
        
         | camdenreslink wrote:
         | Docker containers probably aren't enough isolation. But throw
         | some firecrackervm in the pot and you've got a stew going.
        
           | rohitpaulk wrote:
           | Repl.it uses Docker containers too, only recently started
           | work on moving to better isolation mechanisms like VMs
        
             | wahnfrieden wrote:
             | I'm using https://github.com/live-codes/livecodes to just
             | move it all completely into the client with a replit-like
             | alternative thing we're working on
        
         | vikp wrote:
         | This would be interesting to me. There are a few options now,
         | like Judge0, but the language versions are pretty out of date.
         | Self-hosting is not a good time investment at the moment.
         | 
         | Email me at hn at vikas.sh if you have a service. I'd need an
         | SLA for sure, and multi-file support would be nice to have.
        
           | paulgb wrote:
           | We serve production code execution use cases (mainly Python)
           | with Jamsocket: https://jamsocket.com/
           | 
           | We've been running it for over a year and would be willing to
           | talk about an SLA. Each instance gets its own gvisor-
           | sandboxed runtime and we do some network isolation on top of
           | that. (We also have some crypto miner mitigation, because if
           | you provide free compute to strangers they _will_ manage to
           | find you.)
        
         | LoganDark wrote:
         | > In case of REPL, you send STDIN to websocket and get STDOUT
         | as response.
         | 
         | I wonder if repl.it ever did this, or if they've always used
         | WebAssembly? (They definitely use wasm now.)
        
       | Takennickname wrote:
       | Where is the code being executed?
        
       | nacs wrote:
       | This allows outbound network access, allows program execution
       | (within the container) and more.
       | 
       | You might want to restrict some of these things before Amazon
       | shuts your account down for abuse requests.
       | 
       | You're basically handing everyone on the internet an EC2 instance
       | to do literally anything with -- it'll be minutes to hours before
       | this gets abused.
       | 
       | `uname` output from the container for example: Linux a976bf3f5ff7
       | 4.14.193-113.317.amzn1.x86_64 #1 SMP Thu Sep 3 19:08:08 UTC 2020
       | x86_64 x86_64 x86_64 GNU/Linux
        
       ___________________________________________________________________
       (page generated 2023-05-26 23:00 UTC)