The “Pending Projects” blog exists to allow everyone to discuss ideas for projects that haven’t yet been launched; everyone can post to this blog just by logging in (use your Hampnet ID/password).
Archive for the 'Uncategorized' Category
The idea behind this project is to create an artificial simulation in which simple interacting parts combine to perform complex actions of some sort. While this is a vague starting point, there is a wealth of information available about prior research in this area. The direction our group is currently headed in is using the Push programming language to set up some analogue of a natural organism that will then be tested based on a selection criteria we have yet to create. In each consecutive trial the organisms will modify themselves and each other towards the eventual goal of solving whatever problem they are presented with in a more efficient manner. The environment in which our program will run will have to have a selection gradient present; that is, there must be a ‘better’ and a ‘worse’, and possibly a ‘neutral’, way of adapting during each trial, such that advantageous modifications, those that help the host program perform better on the fitness test, are propagated more often than those modifications that do not. The end result of this, we hope, is that the system will modify itself in such a way that the basic pieces of code it starts with will run, modify themselves and each other, and eventually outperform their original selves.
One of the problems we face at the moment is how, exactly, we intend to set up a selection gradient, and how we are going to interpret the results of our experiment as being successful or not. Our thoughts on this at the moment are that each individual ‘organism’ in our simulation will have to operate within a given set of rules determining how and when it can propagate itself or its code. By performing these actions more efficiently it will allow organisms to propagate themselves more often or more successfully, thus increasing the propensity of that particular set of code. If we interpret segments of code in this environment as being akin to genetic information, or more broadly as simply a meme, we can interpret success as being an increase in the propensity of a given set of code. By planting tracking information in the code before we begin the simulation, we can, at the end of the simulation, track a given piece of code’s ‘offspring’ all the way through the length of the simulation. This would allow us to create a ‘family tree’, of sorts, that details the interactions and outcomes of the code. The exact details of how we are going to design this have yet to be determined.
Free and Open Source Neurofeedback at Hampshire College using an EEG modeled after the OpenEEG project.
As you’ve probably heard, Google and the Open Handset Alliance have recently released an open source mobile computing platform called Android. This platform, IMHO, has the potential to completely revolutionize handheld computing (especially when combined with an open hardware device like the Neo Freerunner).
While there are a lot of great things we can do with the Android platform (and I encourage you to post your own ideas in the comments or in a separate Pending Projects post), I think the number one thing that should be implemented now is a GnuPG/OpenPGP system.
- Easy key signing and verification. The biggest problem with our Public Key Infrastructure today is that verifying another person’s key is a big hassle. If you don’t know how much of a hassle it is, check out the Keysinging Party HowTo. Imagine if all it took to verify someone’s key was to glance at their phone’s screen and push a button on your own. We could still have keysigning parties, but there’d be a lot more party and lot less keysigning.
- It opens the way for an opt in replacement to government issued IDs. We can have all the integrity of government IDs without the government and with the ability to selectively choose the information we wish to reveal about ourselves. Sounds a whole lot better than RealID if you ask me.
- All the other cool things you can do with public/private key pairs: Opening doors; logging into your computer; encryption, signing and verification of messages.
- Because we can. Google has provided most of the crypto libraries we need in the standard library so all we really have to implement is the trust database and bundle it up in a nice package.
Email me if you’re interested in working on this or want to talk about it more,
jms07[ at ]hampshire[ dot ]edu — GPG Key: 0xA1D39D09
Also, if you haven’t heard about Hampshire Hacktivists yet, there’s a new student group starting devoted to working on projects like this, talking/teaching about data protection and privacy, and other fun stuff like that. We’ll probably be meeting sometime in this week (maybe even having a keysigning party).
– John Schanck
A few specific programming tasks that would help support research and development projects at Hampshire and elsewhere:
- a version of breve in which simulations can be written in Common Lisp (under development)
- a Push programming language library for Processing, probably using Jon Klein’s Psh implementation of Push (http://www.spiderland.org/Psh/) (open)
- a Lisp programming library for Processing, preferably Common Lisp (there are Java implementations such as http://common-lisp.net/project/armedbear/ and others listed at http://www.is-research.de/info/vmlanguages/lisp.html) (open)
- a parallel (cluster or GPU) physics engine for breve (open)
Some general research areas in which I am always happy to supervise work or collaborate, but they each require significant and broad skills:
- application of evolutionary computing to problems in quantum computing
- application of evolutionary computing to problems related to climate change
- application of evolutionary computing to problems in mathematics
- development, enhancement, and testing of new techniques for evolutionary computation
- development, enhancement, and testing of “computational creativity” tools
If you’re interested please drop me a line (firstname.lastname@example.org).