Wednesday, August 23, 2017

Reviving the Living Paper Project

A very long time ago, I wrote some computer programs to go with my price theory textbook. The idea, in each case, was to do something on the computer that could not be done on paper. My favorite was a program I called curvedraw, which let you draw a total cost curve freehand on the computer. As you did so, the computer drew the corresponding marginal cost and/or average cost curves. At any point you could switch from drawing total cost to drawing one of the other two, at which point the computer would take over drawing the total cost curve. You could click on any part of the total cost curve and have the program draw a tangent with horizontal length one, hence vertical length equal to the slope, i.e. the marginal cost, thus seeing visually why the marginal cost curve was what it was. The idea was to teach the student to intuit the relation between total, marginal and average, between a function, its derivative, and its average.

My plan was to produce more programs and offer to customize them to other textbooks, and I sketched out ideas for some of them. I also had a design for a computer game in which the player was  building a trade league, an "empire" based not on conquest but on mutual advantage. An early version was written  by a programmer friend of mine but the living paper project eventually died, since neither I nor my friend was willing to put enough time and effort into it.

I put up a description of the project a few years ago, in the hope of bringing it back to life as open source. That may now be happening.  Ricardo Cruz has been looking at doing my programs in javascript so that anyone could try them using the browser. He has asked me to announce the mailing list [1] and the github page [2]:

Ricardo Cruz said...

Hi guys. It would be great to have some of you over the mailing list, even if just to comment on designs. It's not always straight-forward how to resurrect some of the "living paper" concepts to a web format.

LH said...

Hansa source code + (Stuffit archive) (http://www.daviddfriedman.com/Living_Paper/hansa.sit)
Hansa 2: Mikel Evins' project to rewrite Hansa in Java (http://evins.net/~mikel/hansa)

LH said...

Also, .sit (Stuffit) archives aren't the friendliest format. In fact, they are something of a barrier to entry in this case. It might be better to provide a different type of archive, or suggest that someone might upload a different format to another location, with your permission.

David Friedman said...

I have fixed the first broken link, have no control over the second.

You are more than welcome to convert the stuffit archives to some other form, and either web them yourself or send them to me to web. As you can probably tell, all this was done quite a long time ago,back when stuffit was a reasonably standard compression program.

Ricardo Cruz said...

LH, in Linux, you can extract it using unar hansa.sit. The code is C and the old Mac API itself is well document and fairly simple. I think the real barrier are the resource files. Some of these contain save files and other user data, but others contain actual game data like maps. I think programming something from the scratch will actually be simpler, but I am open to be convinced otherwise and help in that endeavor if you want my hand. :)

One problem I have is that I never played the old games, and a lot of the mechanics are unclear to me. We have just created a price-theory github account. You can put the old Hansa code in there if you want. Personally, I like the idea of using web technologies because anyone with a browser can use them, and can be provided in tandem with the textbook material. But we can have a healthy discussion on the technicalities over the mailing list, or we can follow different directions if that's what people want.

LH said...

Thanks for the info, Ricardo. As a matter of fact, I ended up using unar yesterday. I uploaded the files this morning to a repository I created here: https://github.com/sentientbeings/ddf-lpp, but you (or I) can add them to the price-theory repo if you'd like. I signed up for the mailing list and will send out any thoughts I have.

Ricardo Cruz said...

LH, I have considering using the older code, and for instance this one is a port of the QBasic code. I have some thoughts to share about this if you would like to discuss it.

Unknown said...

Are there good agent-based models of the basic principles you discuss in your Price Theory text? I've wondered about building an interactive simulation where you can play with, for instance, sliders to manipulate supply and demand and watch a community of simple agents find a price.

David Friedman said...

Unknown:

One of the living paper programs, which I did some work on but didn't complete, shows equilibrium of grocery store lines. You get to watch from above the pattern of behavior by the individual shoppers that leads (usually) to all lines being about the same length. If it had ever been finished, it would probably have included controls that could be used to produce a corner solution (not enough people qualified for the express land to make it as slow as the others, for instance).

I don't know of something similar for supply and demand along the lines you suggest.