To Canterbury
My summer included a trip to Canterbury, England. The University of Kent was hosting a computer science education conference, ITiCSE 2013. I was presenting and I also participated in my favorite part about ITiCSE: a working group. Arriving in Canterbury was painful for a variety of reasons: The rainfall during my departure was so intense […]
Generating Digital Audio for a Pitch
Sound is a wave of pressure that travels through the environment. My high school physics teacher Mr. Oppelt told me that pressure is force applied to a surface, and so when we say that music has a beat, we’re quite right. It “beats” on things. Like our ear drums. It beats on other things too, […]
First Run of Madeup
I’ve been working on building a mobile programming language and environment for generating 3-D objects. It’s called Madeup. The language uses Logo-like syntax, but it supports closures and 3-D navigation commands. The former is so that you don’t have to type as much. Functions just see variables in their enclosing scope; they don’t need as […]
System.out and System.err on Android
Desktop Java programmers are used to using System.out and System.err to issue debugging print statements. As far as I can tell, System.out and System.err point to /dev/null on Android devices, so mobile app developers are advised to use android.util.Log instead. However, when Eclipse autogenerates code for things like exceptions and sysout and syserr, it assumes […]
Learning Elsewhere: Tales from an Extra-curricular Game Development Competition
Following is a draft of a talk I am to give at ITiCSE 2013. The work discussed was done several years ago at Iowa State University, during my first full year of full-time teaching. I wish I had more quantitative results, but its absence is sort of consistent with the premise that we cannot do […]
Keystrokes File Format
A Keystrokes text movie is composed of a number of frames. Each frame is currently stored in a separate file, and all metadata describing the frame is stored in the file name. The only thing inside the file is the text of the frame (or a diff describing how to construct it from the previous […]
Keystrokes Patcher
For our Keystrokes project, we grab “frames” for our text movie as snapshots of the file being edited. We don’t really want to pass the complete file around for every snapshot, so instead we store diffs between frames that allow us to reconstruct any particular frame beyond the first. To produce frame 2, we apply […]
Quick Commenting in Vim
Speedy commenting is a major feature of any IDE like Vim. I’m sure there are good plugins that support it, but I don’t like other people’s code. I wrote my own, and here it is, ready for you to not like it. It works on the premise that for each type of file you have, […]
On Data
People talk about all the stuff we’re going to be able to do once computers are fast enough and storage is cheap enough. Sadly, I don’t think technological advances will gain us much. Taken to the limit, the digital world of computers is just the analog world that we already have. And there’s nothing easy […]
The Programming Gene
My wife and I read to each other. We ran into this the other day in Daniel Defoe’s Robinson Crusoe: So I went to work, and here I must needs observe, that as reason is the substance and original of the mathematics, so by stating and squaring everything by reason, and by making the most […]