Interestingly, FireFox is WAY FASTER than IE6 - averaging under 20 microseconds to append a 10-character string to another string, while IE can take from 200 to 1000(!) microseconds to perform the same action.
I believe BOTH browsers take more than constant time on average (since they have to re-allocate and copy the old string to append the new one to it).
|Rubik's Cube Simulator||
Following up on my WildTangent programming class, I thought it would be fun to write a Rubik's cube simulator.
REVISED January 14, 2006
|self||JScript hack - web page whose source is the same as it's display. This version is 195 characters long - can you come up with a smaller one? (My first attempt - at 257 characters is here).|
|browsercaps||Displays information about the browser.|
This summer, Scott McCloud, author of Understanding Comics, came to Microsoft to give a talk. At one point, he mentioned that he wished that readers could just "grab" onto web pages with the mouse and sling them around - rather than have to resort to using the scroll bars [This effect is reminiscent of some of the early Print Preview features on the Mac].
I copied a page from Scott's web
site, and added some code that would allow you do just that. Try
clicking in the page and drag it around; "sling it". You
can also use the arrow and page up/down keys to sling the page
An extension of my interesting in abstract games - here's a prototype "Hex" game. The board is implemented as a collection of VML objects, rather than using standard HTML.
(Note that Microsoft holds the copyright to this file and it is subject to Microsoft's licensing restrictions.)
At present, this contains code for playing a two person (at the same computer) game. It contains a valid move generator, an evaluation function, and a graphical board display.
Good example of data structures, and event processing. Parts may be easily generalizable to play other board games.
I plan to add AI to the game so you can play against the computer.
Functions that can emulate an Enigma-like device. Computer permutations and has rotation functions. Also has permutation display functions.
Demonstration of using Enumeration object to build an XML-format from extracted property information (table driven). This was a sample experiment for code that went into Office Web Server to do Outlook import.
An experiment to determine the number of iterations needed to achieve a given degree of accuracy using the JScript Date functions as a timer.
This is a particularly interesting hack. I created a virtual machine language that I used to create programs for solving the Max-Sum-Subarray problem. I think randomly mutate an initial solution and compute a "score" for the desirability. This is an incomplete experiment in using genetic programming to derive optimal program fragments.
Some routines that cycle between a collection of images. I use this to display a day's worth of web cam images as a time-lapse animation.
|Structured Graphic||I didn't write this one, but I thought it was a clever demonstration of the use of the drawing activeX controls built into IE (in future, I'd probably prefer to use VML to achieve calculated graphical images in web pages.|
|Ball (Head)||This was a sample program I helped Chris with for a 4th grade project (spring of 1998) - it bounces an image of Chris's head around a box on the screen. Parameters can be changed to adjust initial velocity and "gravity" (actually looks like this version is broken in that the head does not "bounce").|
A demonstration of the probabistically generated text based on N-gram frequency distributions. Choice of larger and larger N-grams creates a text closer and closer to Alice's Adventures in Wonderland.
(Werner is the same program with a different and shorter text used to generate the frequency distributions).
Programs to assist in cryptanalysis of the ciphers in the appendix of Simon Singh's The Code Book.
|Asteroids||One of the original IE 4 demos of DHTML - an amazingly good simulation of the original asteroids game.|
|Junior Pokemon||The beginnings of a map-based game that I was helping Chris with. A piece can be moved around the screen using the arrow keys, and sounds are played when obstacles are encountered. Never completed.|