Week 8 Backend Progress

Bailey Tincher

Bailey Tincher

Backend Dev for Actually Colab

Backend#

  • Fixed issues with the authorizer policy that didn't properly cache per function
  • Deployed a demo server to AWS
  • Added support for changing a cell's language

Week 8 Frontend Progress

Jeff Taylor-Chang

Jeff Taylor-Chang

Frontend Dev for Actually Colab

Frontend#

  • Created a Redux middleware to support the @actually-colab/editor socket client
  • Moved the Kernel to a Redux middleware
  • Auto select the example notebook for first time users, auto open the most recently opened notebook if possible
  • Users can make edits to cells as changes are debounced in the @actually-colab/editor client
  • Keep track of execution wall time and render it under a cell
  • Automatically disconnect from the socket and kernel upon closing the window
  • Released the v0.1.0 of @actually-colab/desktop-launcher

Week 7 Backend Progress

Bailey Tincher

Bailey Tincher

Backend Dev for Actually Colab

Backend#

  • Created a client for the websocket endpoints
  • Setup Google OAuth to allow clients to sign in
  • Added an endpoint to refresh session tokens
  • Added an event emitter to properly type events from the socket server
  • Added support for opening notebooks and getting the contents
  • Added support for locking and unlocking cells and notifying clients
  • Added support for editing cell contents and notifying clients

Week 7 Frontend Progress

Jeff Taylor-Chang

Jeff Taylor-Chang

Frontend Dev for Actually Colab

Frontend#

  • Separated the notion of a "selected" cell from a "locked" cell. This allows the run button to be able to advance without locks
  • Added the ability to queue cell executions that way you can start a bunch of jobs and walk away
  • Allowed the user to interrupt a cell execution. If a cell gets carried away or you accidentally start a long process, you can stop at any time
  • Added the ability to disconnect from a kernel as well as disable auto connecting
  • Users can now export their project to the ipynb format which could be used in jupyter, Google Colab, turned in as a deliverable, etc.
  • Integrated the get/create notebook REST endpoints from @actually-colab/editor so users can create and see a list of notebooks
  • Converted the cells and outputs to nested Immutable maps and lists to improve performance and avoid mutating the redux store

Queued cells

Week 6 Frontend Progress

Jeff Taylor-Chang

Jeff Taylor-Chang

Frontend Dev for Actually Colab

Frontend#

  • Integrated @nteract's Open Source outputs component to replace my manual version. This added support for more output types at a slight trade off of speed and bundle size. The main benefit is a big boost to maintainability, don't need to reinvent the wheel for rendering complex outputs
  • Implemented the kernel panel with logs of when various actions occurred
  • Keep trying to connect to the kernel periodically in case the user doesn't start it till after
  • Detect a kernel disconnect and connect to a new kernel if it dies
  • Added support for LaTeX in markdown
  • Added a help panel that explains how to setup the kernel as well as common issues for displaying output with things like matplotlib and pandas

Kernel and Help Panels

Week 5 Frontend Progress

Jeff Taylor-Chang

Jeff Taylor-Chang

Frontend Dev for Actually Colab

Frontend#

  • Started separating the electron application into a web hosted frontend and a smaller native kernel manager. This decreases our native platform dependency because our core client is available via a browser regardless of platform. This even allows it to be run on an iPad.
  • Moved authentication directly into the client since redirects are no longer necessary with a web app
  • Added support for markdown cells with syntax highlighting and rendering as html
  • Added support for rich html outputs like pandas DataFrames
  • Stripped down the newly forked desktop-launcher into a minimal kernel process manager
  • Secured the Kernel Gateway by automatically setting the Access-Control-Allow-Origin header depending on if it is dev or prod

New Desktop Launcher

New Web Editor

Week 4 Backend Progress

Bailey Tincher

Bailey Tincher

Backend Dev for Actually Colab

Backend#

  • Created the client for all CRUD endpoints that can now be used by the frontend
  • Refactor Notebook and User tables from DynamoDB to Postgres
  • Reconfigured the environment to be ran and tested locally with ease
  • Created Lambda authorizer functions and configured authentication for local development
  • Enabled the socket connect/disconnect endpoints to track active user sessions
  • Began architecting the websocket endpoints End-to-End

Misc#

Week 4 Frontend Progress

Jeff Taylor-Chang

Jeff Taylor-Chang

Frontend Dev for Actually Colab

Frontend#

  • Implemented the auth redirects with our website
  • Added support for cell locking, creating new cells, deleting cells, and editing them locally
  • Built output component to support text, base64 images (matplotlib outputs) and renders ANSI encoded errors with tracebacks
  • Incorporated the kernel gateway into a hidden renderer that communicates via IPC and is automatically managed by the main process

Login page on website Desktop outputs

Misc#

Week 3 Progress

Bailey Tincher

Bailey Tincher

Backend Dev for Actually Colab

Backend#

An overview of the demo goals was put together here

  • Fleshed out the development environment
  • Configured DynamoDB resources in the Serverless config
  • Added connect/disconnect entrypoints for the socket server
  • Created a few CRUD endpoints for interacting with notebook configs

Frontend#

Misc#

  • Created this docs site and deployed with Netlify
  • Acquired the domains actuallcolab.org and actuallycolab.com