<< July 2008 | Home | September 2008 >>

Consciousness

The Mystery of Consciousness

A few years ago I was at a conference attended by various people involved in genetic algorithms and evolutionary computation. I had been doing research on XCS, a learning classifier system, research that really didn't lead anywhere interesting. One of the conference attendees, David Goldberg gave a talk about some of the more interesting things happening in the field that I caught most of. I was a bit late due to having a flat tire on the trip to Champaign-Urbana. The key point that I remember, that has stuck with me since, was that we really need to work out what exactly it means to be conscious, what a minimally conscious machine would look like....

Read more...

Simple Parser in JavaCC

I've pretty much decided to write an improved NNTP server for USENET that includes a number of features that USENET really requires. Basically the idea is to improve USENET. I don't know that I'll be successful in this attempt, but I'm going to write the code anyway.

Read more...

Evolutionary Computation and General Programming

Why you should write your own

I've recently been conducting research on the various mapping from permutations strings of floating point values for use in differential evolution. This gave me an opportunity to sit down and develop a generic framework for evolutionary computation. I could plug in various algorithms and did so for particle swarm optimization, a standard genetic algorithm and differential evolution. It all works great. It even reads in a list of experiments from an XML file. I implemented a number of different standard problems to work on, also available as plug ins.

The problem with all this is that the system ends up being optimized for none of the various algorithms. It works. It does the job it was intended to do, but some of my experiments take months of computer time. It turned out that I would have been better off writing special purpose programs for each of the different algorithms, possibly using libraries for some of the more general portions of the program e.g. the problem definitions.

So if you are working on comparing the performance of various methods of evolutionary computation, I would suggest that you write a few special purpose programs rather than trying to tie them all together in a neat general purpose library. It really isn't worth the effort except for the purpose of educating yourself on the algorithms themselves.

NewsNet

A new USENET

USENET has been plagued by problems for many years. Much of the functionality of USENET has fallen into a state of such disorder that servers simply refuse to implement basic functionality like cancel and supersede messages. Spam, off topic posts, and vandalism are problems that users have to deal with every single day.

I've decided to spend a bit of time and write an upwardly compatible replacement for the the NNTP servers of today. The basic idea would be to support everything that NNTP supports now, allowing legacy clients to use the new server, but to provide enhancements that limit the ability of spammers and vandals to use the network. This will be accomplished through the use of authentication and community moderation built into the protocol.

My goal is to have a server up and running that only carries one set of newsgroups, the comp.lang.java hierarchy, within the next few months. I will also write a client to operate with this server that supports the community moderation aspect of the new protocol a few months later. I'm hoping to get some of the comp.lang.java.programmer readers to start using my new server shortly thereafter. I'll need to figure out exactly how to handle propagating articles to and from the new servers without breaking anything on the old servers. For text messages, I don't think this will be too difficult.

Any suggestions on requirements, or on the best ways to improve the USENET protocol would be greatly appreciated. My current plan is to allow messages to either be plain text (for anonymous posts) or S/MIME for signed posts.