All Posts

Why I Won’t Use nbgrader

Jupyter Logo

I use Jupyter Lab to teach CIS-15: Python Programming for Everyone. My assignments are distributed as Jupyter Notebooks that are filled out by students and turned in. Some assignments have automated checking that students can use to see how I will evaluate their code. Sounds like a job for nbgrader, but it’s not for me and here’s why.

Read more ...

How To Install Ubuntu on a USB Flash Drive

Bootable USB Drive

The easiest way to run Ubuntu on a flash key is, of course, to download the Ubuntu ISO and use Startup Disk Creator. This process creates a bootable USB disk that has a read-only system drive with a writable overlay to make it feel like a “real” system. But doing so also has some significant limitations:

Read more ...

Cloud Native: A Helm Chart For an SSH Server

Helm and Kubernetes

You’ve got some software that you want to deploy to Kubernetes. The first step is to create the Kuernetes manifests that implement the application. At minimum you’ll create YAML for:

Read more ...

Cloud Native: The Power of Standards, Kata and the OCI Runtime

Go to the website of the Cloud Native Computing Foundation and you’ll be confronted with this picture of the cloud world:

CCNF Landscape

Read more ...

Cloud Native: Privilege and Security


This project was inspired by running LXD containers for the last few years. They took the place of VMware VMs and I was really happy with how much easier they are to build and manage. I started to wonder, would it be possible to run systemd in an unprivileged container in Kubernetes? It turns out the answer is no. This post is what I learned from the experience and how I eventually implemented unprivileged servers.

Read more ...

Cloud Native: Thinking About Data

Image Credit: Lisa Hornung/TechRepublic

Wanna see the code? It’s in this GitHub repository.

Read more ...

Rethinking the Login Server: Can UNIX Classes Become Cloud Native?

Since the dawn of the modern operating system, computer classes have used a shared login server to create a work environment for students. In the cloud era we’ve used virtual machines in place of physical servers (IaaS) to make our workloads more convenient to manage. But, our severs are still pets, they are precious to us, because they are stateful appliances running bespoke applications. Should anything go wrong with them it’s a crisis that requires our full attention.

Read more ...