Service Workers and a Promise to Catch

I love Service Workers. I've written previously about my work to use them in Thimble. They've allowed us to support all of the web's dynamic loading mechanisms for images, scripts, etc., which wasn't possible when we only used Blob URLs. But as much as I love them, they add a…

Space Git

Today one of my students wanted some help understanding how to solve a problem with git. I often find that students get stuck on the proper use of git's rebase, merge, pull, and fetch. They want to share and use commits from other repos, but can't quite get the commands…

Remembering Jordan

Yesterday, on Remembrance Day, I travelled to Stratford to attend the funeral of my colleague and friend, Jordan Anastasiade. He passed away suddenly a few weeks ago, and I've been deeply saddened by it. Yesterday was filled with tears and hugs with many colleagues, and his friends, and family. I…

When the music's over, turn out the lights

This week I've been thinking about ways in which GitHub could do a better job with projects and code as they age. Unfortunately, since technology is fundamentally about innovation, growth, and development, we don't tend (or want) to talk about decline, neglect, or endings. GitHub has some great docs on…

On URLs

Today I received a phishing email. There's nothing unique about this, as I get them most days. Here's what this one looked like: I deleted it, and went on with my day. Then I started getting emails from colleagues who had clicked the link: This is a simulated phishing test…

Fixing a bug in TensorBoard

This week I'm talking with my open source students about bugs. Above all, I want them to learn how The Bug is the unit of work of open source. Learning to orient your software practice around the idea that we incrementally improve an existing piece of code (or a new…

Why Good-First-Bugs often aren't

Let me start by saying that I'm a huge fan of open source projects putting a Good-First-Bug type label on issues. From my own experience over the past decade trying to get students engaged in open source projects, it's often a great way to quickly find entry points for new…

Service Workers and Cache Storage in Thimble

tldr; During the spring and summer, I've been working on rewriting Thimble to use Service Workers and CacheStorage. Now that we've shipped it, I wanted to talk about how it works and what I learned. On Twitter a few weeks back, I was reminiscing with Dave Herman and Brendan about…

"When in doubt, WebIDL"

Yesterday I was fixing a bug in some IndexedDB code we use for Thimble's browser-based filesystem. When I'm writing code against an API like IndexedDB, I love knowing the right way to use it. The trouble is, it can be difficult to find the proper use of an API, or…

Git does what you tell it

I've spent hours this week helping students fix problems with their git repos. I've now seen the same types of things happen frequently enough, that I thought I'd offer some advice on how to avoid falling down a git-sized hole. Git does exactly what you tell it to do, regardless…