Friday, 15 February 2008

Meeting 4

Daniel provided an archive containing the newest revision of his code. I've now merged my code and commited it to the subversion repository [revision 2]. My tasks for this week are to continue working on the GUI and, if possible, clean-up the ListModel syncing.

The main GUI task is to allow the loading and saving of schemas. Daniel is handling the backend and will most likely be dumping the schema library to a text file which can be parsed back in again. The frontend should be simple enough(!) as there is the JFileChooser Swing component already written. Although I've never used this component the Swing API looks like it has a helpful tutorial.

Thursday, 14 February 2008

ListModel problem solved (for now)

After looking at Daniel's newest version of the code, where the Vectors containing Schemas have been replaced by ArrayLists, I have given up on automatically syncing the two data structures. The quick-and-dirty fix is simply to find every action which changes the ArrayList, and perform the equivilent action in the ListModel. This works well for the moment, and any progress is good, but I'd like to re-visit this and find a more elegant way to do it. One thought I have at the moment is to write an add/remove method in the Processor class which would take a schema as a parameter and add/remove is from both structures. Something like this should act to keep things in sync, so long as it is used everytime in place of modifying the structures directly.

Vectors and ListModels

For the last few days I've been trying to show the library of schemas and the current active schemas in jLists on the GUI. Each list of schemas is currently stored in a public Vector in the Const class, so accessing and displaying them from the GUI should be easy.

That seems to be only partly correct...

Accessing the Vector is fine, but displaying it in the jList is causing a major problem. I think the problem is caused by using passing the Vector directly to the jList constructer. This is allowed, but doesn't seem to take into account changes to the Vector itself. The solution looks like defining a ListModel, and making changes to that rather than the Vector. The problem with this is that apart from writing my own ListModel class, there doesn't seem to be a way to use a Vector to create a ListModel.

After spending a few days on this, I'm starting to consider just writing my own ListModel. Hopefully this will be simple enough, although I'd rather use a tested solution than hack together a link between such important components.

Monday, 11 February 2008

Subversion

Our Subversion repository has been created! There's nothing in it yet, but that should change in a couple of days.

Sunday, 10 February 2008

Another Paper

Intelligence without representation, Rodney A. Brooks (PDF)

Abstract:
Brooks, R.A., Intelligence without representation, Artificial Intelligence 47 (1991) 139-159.

Artificial intelligence research has foundered on the issue of representation. When intelligence is approached in an incremental manner, with strict reliance on interfacing to the real world through perception and action, reliance on representation disappears. In this paper we outline our approach to incrementally building complete intelligent Creatures. The fundamental decomposition of the intelligent system is not into independent information processing units which must interface with each other via representations. Instead, the intelligent system is decomposed into independent and parallel activity producers which all interface directly to the world through perception and action, rather than interface to each other particularly much. The notions of central and peripheral systems evaporate-- everything is both central and peripheral. Based on these principles we have built a very successful series of mobile robots which operate without supervision as Creatures in standard office environments.