How to become a Fool Stack Programmer

At least once in your career as a programmer, and hopefully more than once and with deliberate regularity, it is important to leave the comfort of your usual place along the stack and travel up or down it. While you usually fix bugs and add features using a particular application,…

The kind of open source I admire

There are a number of ways that a project or company can look at contributions from "the community." Let me start by saying that in almost every case, it is amazing to have people suddenly show up and surprise you with some gift of work that is given…

Introducing a New Thimble and Bramble

Introduction This week we're shipping something really cool with Mozilla, and I wanted to pause and tell you about what it is, and how it works. The tldr; is that we took the Mozilla Foundation's existing web code editor, Thimble, and rewrote it to use Bramble, our forked version of…

Messing with MessageChannel

We're getting close to being able to ship a beta release of our work porting Brackets to the browser. I'll spend a bunch of time blogging about it when we do, and detail some of the interesting problems we solved along the way. Today I wanted to talk about a…

Learning to git bisect

Yesterday one of my students hit a bug in Brackets. We're working on an extension for Thimble that adds an autocomplete option to take a selfie when you are typing a URL that might be an image (e.g., <img src="...">). It also needs to work…

Repeating old mistakes

This morning I've been reading various posts about the difficulty ahead for the Pointer Events spec, namely, Apple's (and by extension Google's) unwillingness to implement it. I'd encourage you to read both pieces, and whatever else gets written on this in the coming days. I want to comment not on…

Embedding license data in images

This term I've got a good group of students taking my second open source course. Unlike the first course, which aims to teach the theory and practice of open source, the second course aims to get students engaged with a larger piece of work. During the fall I was chatting…

Video killed the radio star

One of the personal experiments I'm considering in 2015 is a conscious movement away from video-based participation in open source communities. There are a number of reasons, but the main one is that I have found the preference for "realtime," video-based communication media inevitably leads to ever narrowing…

Minimum Viable Product

This week in class I was discussing the value of thinking in terms of a Minimum Viable Product (MVP), and how open source tends to favour the approach, because it allows one to ship, test things with real users, get feedback quickly, find and fix bugs, and repeat. Structuring your…

How to encourage contributors

One of the techniques I've used over the years in teaching open source is to invite core members of the projects we're working within to come and give guest lectures. I do this for a variety of reasons. First, I find that students are intimidated by the size and complexity…