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…

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…

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…

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…

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…

I'm doing some marking today, and one of the labs I gave my students was to contribute a pull request to a node.js module project on GitHub. None of the students knew node.js or had used GitHub before, so I wrote extensively about it here, with detailed instructions…

I really enjoyed reading The Biggest and Weirdest Commits in Linux Kernel Git History this week. If you haven't read it yet, it describes some of the edge case merges in the Linux Kernel, including one octopus merge that has 66 parent commits. the kernel developers are expert git users…

I wrote previously about the steps necessary to make a contribution to an open source project via a Pull Request to Github. In that post I outlined the steps necessary to find and add/fix fields in package.json files for node.js modules. In this post I'm going to…

This week in my open source course, I'm starting to teach the students how to use git and Github. I love taking the time to teach it well, because it opens so many doors for students to participate in open source projects, to effectively manage their own software projects, and…

I'm working on rewriting an app with my daughters, and one of the features we wanted to test was whether or not we could add automatic tag extraction from photos. I've long been interested in services like Google's Cloud Vision API, which seem to do amazing things on images taken…