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 […]
CS 245 – Advanced Programming and Data Structures
Information Syllabus Enrollment: 22 Lectures Labs Homework Exams
CS 491 – Mobile Software Development
Information Syllabus Enrollment: 20 Lecture Homework Post mortems
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, […]
CS 330 Lecture 39 – Mixins and Wrap-up
Agenda what ?s multiple inheritance in Ruby? implementing Orderable wrap-up Code vec3.rb Haiku
CS 330 Lecture 38 – Monkey patching, Meta-programming, Blocks, and Mixins
Agenda what ?s monkey patching why monkey patch? a custom malloc reflection and meta-programming why meta-program? a testing framework adding blocks to TestTest mixins making things Orderable (IRL, use Comparable) ?s Are there non-English languages? http://en.wikipedia.org/wiki/Non-English-based_programming_languages http://www.codinghorror.com/blog/2009/03/the-ugly-american-programmer.html What’s the point of symbols? http://www.troubleshooters.com/codecorn/ruby/symbols.htm http://glu.ttono.us/articles/2005/08/19/understanding-ruby-symbols http://www.robertsosinski.com/2009/01/11/the-difference-between-ruby-symbols-and-strings Is there something like tryruby.org for Haskell? http://tryhaskell.org Is there something […]