I ham working on Willow, a Python framework for experimental economics. So far, Willow has been used for the interfaces for two actual experiments, and a third is in the works. Willow is also being used in an informal seminar taught by Dr. Kevin McCabe on computational methods in experimental economics.
I am involved with Dr. Omar Al-Ubaydli and Dr. Garett Jones of the Department of Economics at George Mason University in an experimental study of the relation between individual psychological differences (cognitive ability and personality) and decision making.
I am involved with Dr. Kevin McCabe of the Center for the Study of Neuroeconomics at George Mason University in two experimental economics projects involving the Second Life virtual world.
This was my MSc thesis at VU.
To succeed at increasing the value of computational resources by pooling them across participants, grid computing needs a way of distinguishing resource allocations that increase value from ones that do not. I present an algorithm called GOSSIPTRON that is a fully decentralized grid resource allocator and replacement for Oner's peer-to-peer grid scheduler that reduces opportunities for free riding and other abusive patterns of resource use to acceptable levels without getting in the way of effective scheduling. To do so, GOSSIPTRON employs gradual escalation in one-on-one barter relationships, such as in BitTorrent, but extends the concept to transitive barter. I have implemented a simulation of the algorithm, compared results among several of its variants, and analyzed the remaining vulnerability to abuse. GOSSIPTRON maintains effective scheduling and reduces opportunities for abuse to acceptable levels.
Read the PETRIMATIC report... [pdf]
Petri nets are a computational formalism designed to model concurrent systems, including biological systems. A Petri net to model even a simple biological system can get quite complicated, and it is no longer possible to adjust all its the parameters by hand in order to find which combination of parameters best models a given biological system.
In particular, a Petri net has been developed that models a biological process responsible for vulval development in the well studied organism C. Elegans. In this Petri net—or more precisely, this parameterized family of Petri nets—certain parameters are as of yet uncertain. We will use an evolutionary algorithm to find the parameter settings for which the behavior in silico of the Petri net most closely approximates the behavior of the actual organism in vivo.
For this project, we start with two fixed inputs: the initial Petri net, given as a PNML file, and the evaluation function that determines how closely its behavior mirrors that of the organism in 38 particular test cases, given as an executable C++ program that processes a PNML file and returns a floating-point number between 0 and 1.
Given these two inputs, I have chosen a representation for the Petri nets as a set of parameters, and an evolutionary algorithm to optimize that set of parameters.
I have contributed documentation to the following Hackage packages:
I have written the following Hackage packages:
A packet filter language, for the Compiler Construction Practical class at Vrije Universiteit.
This project is "done" in that I have submitted it to be graded. If anybody ends up actually using it, I will probably have to add some features, and of course fix any bugs that come up.
A functional systems programming language, in the ML tradition, but with explicit support for tag-free memory management and precise control over data representation. This project has proven much more complicated and unwieldy than I had thought it would be, and it has been transferred from class project to hobbyist status, but it may still get going some day.
The purpose of this project is to enhance MINIX 3 reliability, security, and tractability by rewriting components of it in the Higher Order, Typed ('HOT') language OCaml. The current focus is on device drivers.
I worked on OMinix in 2006 as a research assistant for Andy Tanenbaum. I never quite got it to work, but I have put the code up on the net, just in case other people might want to try and get it to work, because I still like the idea a lot. I have since been contacted by somebody who is working on it. If he gets the basic system call interface to work, I guess I'll have to go back and actually write a driver with it.
I have ported the Open Posix Test Suite to MINIX 3.
I have written a compiler for the BlooP and FlooP languages described by Douglas Hofstadter in his book "Gödel, Escher, Bach; an Eternal Golden Braid." It should be fun to play with if you're reading that book, which I highly recommend. The compiler compiles the BlooP and FlooP languages into Scheme or C. I have been supervised during this project by Mike Vanier at Caltech. The compiler is extremely simple, largely owing to the use of some recent developments in functional programming, such as parser combinators, pretty-printing combinators, and "scrap-your-boilerplate" style generic programming.
With two fellow students -- Ting Liao and Benji Stein -- I wrote a rudimentary x86 OS kernel. We managed to program the interrupt chip, the keyboard controller, and the video controller before the term was over. OS134 has no concept of disks, file systems, memory management, or processes.
During the 2004/2005 academic year I worked with professor DeHon on a type-safe microprocessor called the DEI, using some of the ideas from this[pdf] and this paper. Although some progress was made on the design, the project itself came to an end before any hardware was implemented. It left me with some interesting ideas about computer security that I am currently trying to explore.
In the summer of 2003 I participated in the Caltech SURF (Summer Undergraduate Research Fellows) programme. I worked with Dr Kenneth Libbrecht at the Physics Department. Here is the abstract.
Electrically Enhanced Structure Formation from the Vapour
Phase
We have constructed a vacuum chamber and associated hardware for
examining the electrically enhanced deposition of thin needle-like
structures from organometallic vapour precursors. Using this
apparatus, we have grown needle-shaped crystals of chromium metal by
the dissociation of chromium hexacarbonyl (Cr(CO)6) vapour in a corona
discharge. We have observed needle tip radii as small as 30 nm using
in situ Fowler-Nordheim field emission and scanning
electron-microscopy, and are beginning to examine the formation of
these structures as a function of various growth conditions.
During the academic year 2002-2003 I continued to work at LIGO. I developed code to analyze data from the suspensions using nonlinear fits.
In the summer of 2002 I participated in the Caltech SURF (Summer Undergraduate Research Fellows) programme. I worked with Dr Phil Willems at LIGO. Here is the abstract of the report I am writing on this.
Nonlinear Thermoelastic Damping in a Fused Silica Suspensions
In interferometric gravitational wave detectors,
thermal motion in optics suspension wires causes noise. A major
thermal noise source is dissipation of energy due to irreversible heat
flow in a bending material, known as thermoelastic damping. This
damping may be cancelled out in certain fibres by non-linear
thermoelastic damping, which is due to the temperature dependence of
the material's Young's modulus. In order to show the existence of this
effect, we investigate a fused silica suspension in which it should
significantly lower dissipation.
Latest news: we're getting published! A research paper describing several different experiments, including my SURF project, has been accepted by Physics Letters A. The paper is entitled "Investigations of the Dynamics and Mechanical Dissipation of a Fused Silica Suspension," and the authors are Phil Willems (my mentor), Virginio Sannibale, Valery Mitrofanov, and Jaap Weel (me). It eventually wound up in Physics Letters A, Volume 297, Issues 1-2, Pages 37-48 (6 May 2002). The abstract and, for those of you with ScienceDirect subscriptions, the preliminary full text are available from Elsevier's website.
There is another paper coming up, "The Science of Learning to Speak; The Logical Problem of First-Language Acquisition and the Logic of Scientific Discovery", by me, to be published in the Spring 2002 issue of Eidos, the University College Students' "scholarly" magazine (as opposed to Boomerang, which is the UC students' "leisurely" magazine). It was originally written as a term paper for "Language and Development: Modern Linguistics", the UC senior-level linguistics course.
In the summer of 2001 I participated in the Caltech SURF (Summer Undergraduate Research Fellows) programme. I worked with Dr Phil Willems at LIGO. Here is the abstract of the report I wrote on this. You can also view the entire report[pdf].
As a consequence of the fluctuation-dissipation theorem, energy dissipation in optics suspensions increases the thermal noise in interferometric gravitational wave detectors. The dissipation of kinetic energy is proportional to the internal friction of the material and inversely proportional to the dilution factor. For certain fibre thicknesses, the change of violin mode frequencies of the fibre with temperature is inversely proportional to the dilution factor. The dilution factor of a double-pendulum fused silica suspension is determined by measuring violin modes as a function of temperature. Results will be applied to deviations of measured energy dissipations from predictions.