The Mimir IDE is a completely in browser IDE that can be used by both instructors and students to work on projects and homework from anywhere with internet access.

While this application will work on almost any browser (it even mostly works on phone/tablet browsers), The Mimir IDE V2 generally has improved support for all modern browsers (Firefox, Edge, and Safari but we recommend Google Chrome for the most stable experience) 

Note: This article is about the IDE itself and what features it has. If you're looking for a tutorial or help on how to use the terminal, check out this help doc!

Here is an example screenshot of what the base interface looks like:

The Mimir IDE is comprised of a Linux workspace (based on Ubuntu 16.04 LTS) which you have root access to, and the web interface, allowing you to interact with the instance from your browser. You can run almost anything on the Mimir IDE, provided it works on Linux. The Mimir IDE has:

  1. Terminal and root access

  2. File system access

  3. Persistent workspaces and user settings for Mimir Classroom users, allowing cloud storage

  4. Graphical text editor with syntax highlighting and linting for certain languages

  5. Mimir Classroom submission functionality with test case information

  6. Live chat support

  7. Port 80 access so you can run development servers and interact with them

The Mimir IDE has the following environments installed:

  1. Java 8, 11, 12

  2. Python 2.7/3.5/3.6, 3.7

  3. Node v10.13.0

  4. gcc/g++ 6, 8 with multilib support

  5. sqlite3

  6. clang/clang++ 6.0

As well as the following tools (including but not limited to):

  1. git

  2. nano

  3. vim

  4. emacs

  5. curl/wget

  6. zip

  7. pip/pip3/pip3.6

  8. valgrind

  9. gdb

  10. maven

  11. gradle

  12. netcat

If you need something other than the above, let us know using the chat bubble and we will try our best to accommodate you. You can install other runtimes/compilers/environments on your own, but only the above items and those stored in your workspace will be persistent.

If you want to keep python (pip) packages or node (npm) packages persistent, be sure to only install for your user! Examples below:

pip install --user django
# or just use virtualenv to keep packages in the project folder!
virtualenv $project_folder
cd $project_folder
source bin/activate

npm install $package_name

While in Mimir IDE, you have a personal workspace that is persistent while you are signed in to your Mimir Classroom account. You can keep files here, dotfiles for shell configuration, downloaded programs and libraries, and more; it is a normal file system saved specifically for your account. Your workspace is located at '/home/{your first name}' when you load in. When you load a Mimir IDE, the instance will not stay around forever, but it will stay up for as long as you're using it. Instances are recycled after they haven't been in use for a period of time, or at a hard time limit to ensure that they aren't used for malicious purposes.

Mimir IDE can be started up from a project's main page if it is enabled by your instructor, or from a project submission page. In the latter case, the selected submission will be loaded into a dynamically linked folder in your home folder called 'temp'. This folder is not persistent, and will be deleted when your instance is recycled, so make sure if you want to keep the contents of temp that you copy them to your work space at '/home/{your first name}', as that is persistent.

To submit a project for grading, either right click on a file or directory in the file tree on the left sidebar or click the New Submission button in the Mimir menu and follow the prompts to submit your files to the appropriate project.

This allows you to select files/directories to submit (which will auto-load with what you right-clicked) and select a project to submit to.

The Mimir IDE is a great way to allow people to program in a full development environment from nothing more than a web browser, while maintaining a development environment look and feel. This is just a step on the road to making CS education easier and more available to students around the world.

If you run into any issues, or have any suggestions on how to improve Mimir IDE, please get in touch via the chat bubble at the bottom right of the page, and we will be happy to help!

Did this answer your question?