My name is Kyle Woodward. I'm a 27-year-old resident of California, currently in my third year of PhD studies in Economics, at UCLA. I did my undergraduate thing at Stanford University, and came out the other end with degrees in math, economics, and computer science. I am an ardent supporter of bicycle commuting, although my own has been cut down lately due to a hit-and-run and a broken face. I relax by generating content, physically manifested by screw-heavy furniture and digitally manifested by a growing compendium of hobby projects. I believe that data should be used for fun and profit.
I learned to program in Pascal, the first fruits of my labor being a terminal-based program to help my five-year-old sister practice addition and subtraction (sadly lost in the sands of dissolved disks). My first real bug came shortly after my graduation to Javascript, and it took several long sixth-grade hours to find a trailing whitespace error in an HTML English-to-Pig Latin translator. Historically, I've coded more to interact than to compute, but when I'm feeling uppity and I forget about monad hell I'll dip into Haskell from time to time; economics is further shifting the balance.
Strategy and interaction made sense to me long before prices did, and it shows in my approach to economic thought; a recent conversation left the other half puzzling over how someone could learn Gale-Shapley before hearing of the Walrasian auctioneer. I have a tendency to solve from first principles when theora will do fine, which manifests in a purely-constructivist, bottom-up approach. One can argue that this is akin to attempting to derive quantum mechanics without comprehension of Newtonian systems, but this is purely orthogonal given that we are still waiting for Copernicus.
Since spammers seem to find me without too much trouble, there's little sense in hiding my lines of communication from the well-intended. To keep it interesting — and to make sure you really want it — you're going to need to solve the following limit to within three decimal places (tip: Google functions as a calculator, but it won't do calculus).
Someone once mentioned to me that, "Things without web pages, they just don't exist." Inasmuch as I consider myself an Internet-renaissance man, hearing this was inspiration enough to get something up and running. It took many long nights to come up with a suitable (sub)domain, and I'd like to think this is parked at one that more or less tilts toward the site's intent.
The color scheme is more-or-less cribbed from The New St. Martin's Handbook, which for some reason is easily visible on my bookshelf at home. Props to them for picking a simple, enticing palette which largely matched the colors of the schools I've snagged a degree from.
The splash page images represent convergence rates under the Newton-Raphson method for the associated complex functions, using naive differentiation (with a maximum of 24 iterations, and convergence defined as 0±10-10). I won't swear by the function label, as I've got no real, quick way to check that they are what they say they are — my code formed the functions from sets of zeroes — but I've got no reason to believe my code is bad (source forever lost, due to human error). This whole thing entered my head via a thoroughly entertaining and fascinating article by some guy, available at Fractals derived from Newton-Raphson iteration. The animations on the site caught my eye, and I wondered what psuedo-random fractal motion would look like if the zeroes were instead subject to boids-type rules; the splash images are the result of that experiment.
The current banner image is the result of a biased Brownian motion simulation; the colors are meaningless except for making the result look more appealing. A particle starts at the far left, in the middle, and wanders rightward. Wandering is uniform over small distances and angles within a particular cone; bounds are enforced by rotating and shrinking the uniform cone to ensure that the particle stays roughly on the rails. The method is fairly simple, and exists in the source of this very page as a sequence of Logo commands passed through Logo-to-JS conversion.
Formerly, there was a graphic in the upper left-hand corner of the banner, part of a dynamic mow-the-lawn simulation. Each time the image is loaded, the mower (red square) advances and mows a new square; the mower's advance is determined by looking for the patch of grass which maximizes the need for mowing; if there are multiple such patches, it minimizes distance according to the Taxicab metric, and if there are still multiple hits it just wanders randomly. Need for mowing is determined not by impressions, but by time since last mowing — that's how grass grows, after all — so (theoretically) if you want the entire lawn mowed, you can just keep refreshing the graphic.