Code Scrap Heap
It’s a good thing I’m not a carpenter, otherwise I’d have warehouses crammed with unfinished furniture.
Any Eiffel code on this page requires an ancient version of the SmartEiffel compiler, back when it was called "SmallEiffel".
URLs ending with ".git" are Git repositories.
An ancient implementation of "pigeon sort": pigeon.c.
Writing documents in a wiki format soundly beats editing raw HTML. It took me a long time to realize this due to geek snobbery, and a phobia acquired after seeing generated HTML from once-popular web editors.
In a stroke of genius, I realized I could design a wiki format that looked like a text document yet could be converted to HTML in a well-defined manner. Why didn’t the internet start with such a format? At once I began putting my ideas into practice, learning Python along the way.
Git repository: http://cs.stanford.edu/~blynn/scrap/wiki.git
How hard is it really to write a browser? I don’t know, because I didn’t get far: http://cs.stanford.edu/~blynn/scrap/fussy.git
Both Windows and Linux tolerate extraneous bytes on the end of executables, With a cross-compiler, we can use this to build self-extracting executables for both platforms from Linux.
Git repository: http://cs.stanford.edu/~blynn/scrap/linstall.git
There was a time when almost all Windows users played their MP3s with WinAmp. XMMS was Linux' answer. This plugin sets up a named pipe through which this once-ubiquitous music player can be controlled.
DDR Does Recurse
I’m slightly perturbed I have no memory of creating this long-lost tarball. It looks like I started to write a compiler for an Eiffel-like language.
Another bunch of files that I cannot recall writing appears to be the ruins of an attempt to learn Ocaml and build a simple synthesizer.
Before I rebelled against object-oriented programming, my favourite language was Eiffel. I set out to prove its superiority in the Third Annual ICFP Programming Contest. I had to build a ray tracer in three days, complete with constructive solid geometry. My program crashed and burned in the last round.
Final entry: icfpfinal.tgz.
problem solving framework
For a object-oriented programming course, I wrote code that solves simple problems via some sort of search. I can’t remember the details, though I do recall Jeff Kingston’s rough instructions: start with a "blackboard", a shared working space that all algorithms can see. Then each algorithm attempts to make some progress, perhaps leaving more clues for other algorithms to use. Unfortunately I didn’t get far.
9P file server
Rob Pike happened to be taking a sabbatical at my university one semester, and loosely supervised a project: a Linux file server that uses the 9P protocol. The code is terrible, as it was my first attempt at network programming, but it worked.
Long before dedicated graphics cards were commonplace, I wrote a ray tracer, a polygon shader, a texture editor and a real-time 3D first-person maze for a computer graphics course. In the last program, you could insert walls on the fly; my program would recompute the BSP tree and remove new hidden surfaces.
The binaries still work on DOSBox.
Ben Lynn email@example.com