News for hackers. Stuff that matters.
Re:Ask HN: API to run Python code, what can go wrong? by Jugurtha on Sunday March 20, 2022 @08:18AM (#30742037)
Here are some references:

  - Giles Thomas - Lessons Learned from Serving 1/4 million in-browser Python Consoles with Tornado - EuroPython2013
    - Link: https://www.youtube.com/watch?v=U_qp8u_BH_E
    - Description: Giles is from PythonAnywhere, the author of [Interactive shells on Python.org](https://blog.pythonanywhere.com/83/) blog post.

    - PythonAnywhere uses:
      - SockJS:
      - Repo: https://github.com/sockjs
      - pty (Python built-in module) for handling pseudo-terminals (with pty.fork):
        - Docs: https://docs.python.org/3.7/library/pty.html
      - epoll (Tornado's IOLoop.add_handler for async):
        - Docs: https://www.tornadoweb.org/en/stable/

  - Xterm.js: Terminal on the browser at https://xtermjs.org/

  - Jessica McKellar: Building and Breaking a Python Sandbox - Pycon 2014:
    - Link: https://www.youtube.com/watch?v=sL_syMmRkoU
    - pysandbox (author recommends running Python in a sandbox, not the opposite)

  - Interactive Shells on Python.org:
    - Link: https://blog.pythonanywhere.com/83/


  - CodeSandbox: Online web application editor (Angular, React, Vue, Vanilla JS)
    - Website: https://codesandbox.io/
    - Repo: https://github.com/codesandbox/codesandbox-client


  - Kaggle:

    - Description: Kaggle's infrastructure and systems allow for arbitrary code execution and scoring. It would be good to check it out and see what they get right.

    - Kaggle Learntools:
      - Purpose: Check exercises and notebooks submitted by users
      - Link: https://github.com/Kaggle/learntools

    - Kaggle Docker:
      - Purpose: Kaggle Python docker image
      - Link: https://github.com/Kaggle/docker-python/

    - Kaggle Infrastructure (Lessons Learned from Tens of Thousands of Kaggle Notebooks):
      - Link: https://www.youtube.com/watch?v=ENPBTl0uNOE

  - Miscellaneous Links:
    - Jinja has a sandboxed environment:
      - Link: https://github.com/pallets/jinja/blob/master/jinja2/sandbox.py

There are no comments on this comment yet.