Git Commit Logs
This semester I managed homework differently. On Bitbucket, I created a repository containing the homework specifications and some autograders. Each student made a private fork of my repository, inheriting permissions so that I could access the fork when a homework was submitted. When students commit a changeset, they include a brief description of the changes […]
Garbage Collection and Music
I’ve been reading a couple of books from the 1980s about Logo education research. What passed for research papers back then is incredible. Many of them read more like letters to the editor than reports on scientific experiments. Yesterday I was browsing Allan Martin’s Teaching and Learning with Logo. In chapter 9, Making Music with […]
Implicit Named Parameters?
In Learnable Programming, Bret Victor argues that to dispel the mysteries of source code we must show data in its context. One of the examples he suggests of offering context is to add a feature to IDEs: when a developer hovers over a parameter in source code, the IDE shows a message indicating the semantic […]
Madeup at the Phillips Library
Last Saturday, Madeup took its first step outside this building. The American Library Association designated this week as Teen Tech Week, and our local public library asked my department if we’d be interested in putting on a workshop for teenagers. I volunteered Madeup, despite its wobbly state. About 30 participants showed up, with half as […]
Some Starter Models
Madeup is going on the road for the first time tomorrow—at our local public library. Participants are going to create their own models and we’re going to try printing them. Since many models exhibit printing issues (too steep an overhang, intersecting geometry, non-manifoldness), we’ve generated a handful of objects that are well-behaved. Rook Hazmat X-Men […]
You won’t believe what happens when you type these 19 things into Vim!
A student group at my university asked me to come talk about Vim at their upcoming meeting—which was two days away. I said no. Then they wised up and asked me to speak at a meeting sometime next semester. I said okay. Following are 19 of my favorite Vim editing tricks. Insert Mode Complete filenames […]
Limiting Execution Time in a Shell
Every fall my school participates in the ACM’s International Collegiate Programming Contest. Thankfully, we don’t have far to travel. In even years, we host the competition locally. In odd years, we go to a town only a half-hour away. This year was odd. When we arrived, I learned that there was zero infrastructure for judging […]
Madeup in a Browser
Finals week has afforded me a chance to think about something else for a while. Like getting the Madeup interpreter to run in a web browser! Thanks to the folks behind THREE.js and the Ace Editor, we’ve got a way to program and view 3-D models in a browser.
Getting a List of Forks of a Bitbucket Repository
A friend of mine handles the distribution and submission of homework assignments in an elegant manner: He creates one source repository on Bitbucket for an assignment, committing to it any scaffolding code that he provides to students. Each student forks his repository. The student makes the fork private, so only he and the student can […]
Running a Mac Bundle Synchronously
My holiday wishlist is pretty simple this year: I want to be able to run Mac bundles from the Terminal, such that standard in and out stay in Terminal and that the application window is frontmost. OS X provides the utility open, but open runs the bundle asynchronously, and we lose standard in and standard out from […]