Collective Trivia System
February 26th, 2010I built this trivia system for a trivia night, so everyone could contribute questions: Trivia Site
I also made a simple sheet for cutting out fortune cookies: Fortune Cookies
Garage Sale Community Auctioning
June 18th, 2008
Sell your stuff by Community Auction! Try it out at the Garage Sale Site!
The auctions here differ from normal auctions in three big ways:
- The seller only gets what they ask for (mostly).
- If you lose the auction to a higher bidder, you get the difference.
- You bid as high you want other people to pay to take the item from you, because if you win the auction, you only pay the second-place bid’s price (or you pay the asking price, if you were the only bidder).
There’s more information on the What is Community Auction Page.
J. Arthur Random’s 10th Birthday Party
March 15th, 2008I co-chaired the group that organized J. Arthur Random’s 10th Birthday Party, for the 40th anniversary of the initial opening of my dorm, Random Hall, on February 29, 2008. The easiest contributions I have to show are my artistic attempts:
Shirt Designs: First Text (GIF and Visio); Second Text (GIF and Visio)
Map for Pins: GIF and Visio (and pin tags Visio)
The Infinite Canvas
January 1st, 2008Participate in a collaborative art project of infinite scope! The infinite canvas lets you draw anywhere on a infinitely large canvas. And because it’s infinite in size, you can zoom in or out to any extent and make your mark on any scale.
http://www.existencia.org/canvas/
You’ll be dropped somewhere random on the Canvas where there’s already some drawing. Use the tools at the top to move around and zoom in or out (you can do any of these indefinitely). Then select a color and start drawing! Click the save icon at the top at any time to commit your drawing to the Canvas for others to discover.
Automated Meme System
July 15th, 2007A blog meme system which can take an arbitrary corpus of questions and answer documents. It uses googling and word frequency comparisons to determine a result.
The system randomly selects a question, displaying it to the user. When the user clicks on an answer, the system googles the words in the chosen answer and in all other answers, collecting the google result pages. It then generates word histograms for each of the answer documents and compares these to word histograms for the google result pages. For each google-answer document-answer pair, each word gets an error value, calculated is the difference of the histograms counts for that word, divided by the maximum of the two counts (or 1 if the word only appears in one histogram). These error values are summed and divided by the total number of unique words, giving a “histogram match” value between 0 and 1. A running score for each answer document is then updated by adding the match value for the answer the user chose, and subtracting the average match value for the other answers.
As questions are answered, the user can see a “percent determined” value, which is a kind of geometric average of the fraction of questions answered (completion) and the fraction that the maximum-scored answer is over the total scores (confidence). The percent determined value is calculated as 1 - sqrt((1 - completion) * (1 - confidence)).
Each quiz (a wrapper on the meme system engine) specifies a number of display constants, a file of questions, a directory of answer documents, and the result page function. The result page function should display the results of the quiz (often performing some processing on the answer page to get out information), and usually includes an image and a certain number of Nth-place answers.
You can try out the book quiz, the rocky quiz, and the fetish quiz. Download the meme engine, and any of the books, rocky, and fetish wrappers for example usage (you’ll have to save the page to a file). Also grab the html generation functions for basic tags, form elements, and my curl wrappers.
Scheme Teaching Notes
May 31st, 2007The following are my notes and exercises from various 6.001 classes I’ve taught:
- Equality Operator Notes (2002-03-06): eqnotes.txt
- Garbage Collection Notes (2002-05-14): garb-coll.txt
- Macro Evaluator Extension (2002-05-15): finalrev.scm and finalrev2.scm (answers)
Markov Music-Maker
April 27th, 2007The idea is to use Paul Viola’s pattern-recognition pyramids with arbitrary metrics to form the data for a Markov chainer which could automatically generate music with different features and a coherent fluid structure.
Apollonius Circle Fractal
April 25th, 2007Fractal formed by successive infinite applications of Apollonius’s Circle problem (forming “kissing” circles within circles). Written as a Scheme procedure that returns parameterized function, taking an independent variable and returning a point (cons x y). See an image of the result.
Scheme Teaching Examples
April 19th, 2007I have lots of scheme code for exemplifying different ideas for 6.001, Structure and Interpretation of Computer Programs. Here’re some.
- Data Abstraction examples (prep. notes): dataabs1.scm (2002-02-07)
- Decompiler examples: long and short (2002-04-10)
- Environment model exercises: envxpl.scm (2007-04-18)
- A simple example of continuations: cccexpl.scm (2007-04-20)
- Final Review Worksheet, Adding Macros to the Compiler: questions and answers (2002-05-15)