D2L Logo

At MSU we use Desire to Learn for our classroom content management system. Students can go to D2L to get their assignments and turn in their assignments though the D2L dropbox.

When grading, I can download all of the student's submissions into a zip file such as the following:

Part 1 - Software Evaluation Download Mar 23, 2019 609 AM.zip

HW1 - Matrix Transpose Download Feb 2, 2019 1001 AM.zip

If this folder is unzipped files similar to the following will appear:

323771-372818 - Sam Smith - Jan 21, 2019 652 PM - submission.tgz
325034-372818 - Nan Carpenter - Jan 21, 2019 330 PM - 1d wave eqn.pages
325034-372818 - Nan Carpenter - Jan 21, 2019 330 PM - wave1d.py
331582-372818 - Joe Taylor - Jan 19, 2019 315 PM - HW1.ipynb
331582-372818 - Joe Taylor - Jan 19, 2019 315 PM - HW1_report.pdf
331582-372818 - Joe Taylor - Jan 19, 2019 315 PM - short.mp4
331582-372818 - Joe Taylor - Jan 19, 2019 320 PM - HW1.tgz

For many of the topics we cover (mostly programming) these filenames are not easy to use. In my classes student often submit files that need to work together with given file names (everything after the final dash). I wrote the following program to convert the directory of complex filenames into folders. A separate folder for each student with the files in the folder:

find . -iname "*" | while read file
        echo $file
        folder=`echo $file | cut -d "-" -f 3 | xargs`
        echo "creating folder $folder"
        mkdir -p "$folder"
        newname=`echo $file | cut -d "-" -f5- | xargs`
        echo "Renaming to $newname"
        mv "$file" "./$folder/$newname"
Sam Smith
Nan Carpenter
Joe Taylor

Each directory contains that student's files. For example the Joe Taylor folder will have:


I hope you find this script useful.

Accessibility of Jupyter for Impaired Individuals

Fri 05 April 2019 by Dr. Dirk Colbry

Asha in front of her poster

This poster presents work by CMSETech Intern, Ahsa Shekar and her work on finding ways to make Jupyter More accessible.


Jupyter is an open-source programming environment that uses "literate programming" by combining documentation, coding and visualization into one file format. The Jupyter notebook format is also particularly well-suited for …

read more

The challenges of developing research tools in active and responsive open source communities

Fri 05 April 2019 by Dr. Dirk Colbry

Poster with Ty and Hattie

This poster presents work by Professorial Assistance, Ty Buckly and Hattie Pimentel and their work on building an image annotation system inside of Jupyter.


Scientists often gather observations of the world using images and need efficient image annotating tools to extract data from these images. Project Insight seeks to …

read more

HPCC SLURM Buy-in Notes

Thu 28 March 2019 by Dr. Dirk Colbry


This year, the HPCC moved over to SLURM. Overall, I think the new scheduler is nice but it required me to relearn a bunch of things I have gotten to know by reflex.

One nice new feature is that I can manage our own Buy-in account. The CMSE department has …

read more

Understanding Research Technology Support and Where it Fails

Tue 26 March 2019 by Dr. Dirk Colbry

Image of a Microscope

I was invited to give a talk to a newly formed IT Research Support group here on MSU campus. As the name suggests, the purpose of this group is to find the best ways to help researchers use technology to do their science.

This talk was a patchwork of many …

read more

Managing Files on the MSU Engineering Jupyterhub server

Fri 08 March 2019 by Dr. Dirk Colbry

Disk Icon

The MSU Engineering Jupyterhub server provides 2GB of disk storage space for each student. It can be helpful to learn some disk management so you can use this space effectively.

For example, pip install uses a temporary folder when downloading packages. Periodically, deleting this folder can significantly free up space …

read more

Virtual Reality Talk at the MSU Library

Tue 26 February 2019 by Dr. Dirk Colbry

VR Image

A few weeks ago I was asked by Terence O'Neill to give a talk to the VR/AR seminar group being held at the library. He wanted me to talk about our "Mobile beast" and show how we are using VR equipment in CMSE.

The VR equipment had a bug …

read more

Quick Makefile Overview

Wed 06 February 2019 by Dr. Dirk Colbry

Makefile as a Directed Acyclic Graph

Example Makefile

A former student recently emailed me asking for a good reference about makefiles. To be honest, I teach a lot about makefiles but I am not sure I have a go-to source. I could have googled something but instead I just tapped out this quick description. I thought …

read more

Quick Graphviz Tutorial

Wed 02 January 2019 by Dr. Dirk Colbry

vim system diagram

This quick tutorial shows provides basic instructions for generating the above graph using Graphviz.


If you already have Anaconda installed on your system, you can quickly install graphviz using the following command:

conda install graphviz

Once graphviz is installed you need to create a text file with the connections. This …

read more

Accessing a computer's camera inside of jupyter without installing OpenCV (Also works in Jupyterhub)

Fri 21 December 2018 by Dirk Colbry

The following code lets you take pictures inside of jupyter notebooks. It uses Javascript inside of jupyterhub to access the client computers camera and transfer images back into python.

I am particularly proud of this code because of the following features:

  • Does not require the installation of OpenCV (This can be tricky)
  • read more