For example broadband facilitates the spread of free software as more people can download large source packages more quickly and so spend more time working on the source. Also p2p technology might in the future make it unnessescary to have large centralised servers for the ditribution of free software.
I'm looking at how to help the Freedom 1 of free software, the ability to adapt the software to your own needs.
However if we are to avoid having a huge unwieldy human speech to machine code program that needs to be udpated by coders, I think we will have to rethink how computers work.
What I am proposing, although it may not be the only way of to help freedom 1, is to try an evolutionary aproach. Some of you may have heard of Tierra, which was one of the first computer systems that had self-replicating computer code. The process of coding in that program was embodied in a random changes to code, to simulate cosmic rays and the like. Now as we coders know, that method of programming isn't the best :). So my proposal is to encode a method of programming into the programs themselves. And this method is then used to alter a copy of that program, hopefully to improve it. Then the programs complete a task, fetching information from the internet or similar and the user rewards the best ones. Those with the higher reward survive.
This means the method of programming can also be maintained and improved, as the previous generation can change the next generations method of programming. Also my memory has unix inspired permissions on all sections of the memory so that programs can protect themselves from overwriting and viruses in the system.
It also means programs can communicate with each other and I hope they will cooperate, fulfiling the Unix philosophy of lots of specialised programs.
I have started work on it already, but I am looking for help, which is not easy to find on a risky project that may not pay off very quickly, and also different views on how free software might go in the future.
It is because they ignore what I call probabilistic oracles, although there may be a different name for them. Basically they get all there probabilistic information first hand, they cannot currently incorporate other probabilistic information, from other learners. For example I could not convince them that suns age and change colour over time, without showing them the actual stars changing colour. Whereas we know that stars are likely to change over time as they run out of hydrogen and other lighter atoms, without direct experience.
However if you do allow probabilistic oracles, you get into problems of trust, which oracles do you trust and which don't you.
Hopefully my solution where the trustworthiness of an oracle could be encoded within a program and those programs evaluated to see how well it acts in the real world, might get around those problems. Although these sorts of systems do definately bear more thinking about.
It seems that it is being used for a whole mishmash of different purposes, from professional diary to personal, and a method of informal chat about advogato itself. Perhaps a more specialised approach would be a good idea, categories perhaps? Any ideas people?
Anyway, work on Codesoup is going okay with a seperate (slower) sub-project for visualisation and program design being near alpha release. A few problems include slightly different behaviour of the programs (they don't seem to evolve as fast) and trying to figure out automake so that it will include the sub-project and a known bug in the visualisation. Anyway once those are sorted it should be time for another release.
3 Jul 2003 (updated 7 Jul 2003 at 00:29 UTC) »
I am working on a qt interface for my project codesoup. It contains a custom widget that displays a representation of the internal state of the soup, and a few buttons for control of the actions of the soup. This should be hopefully useful for debugging the internal programs.
Next on the list of things that most need improving is the compiler for my own brand of assembler. Ideas include the ability to reuse sections of code (including passing in Symbol Information from the main file pseudo-functions).
I am also thinking about my real work, which is designing programs that alter, in a fairly random but clever way, a copy of themselves. Coming up with a few useful ideas, but none that seem amazing.
I have been working on the Frequently Asked Questions for my project, Codesoup, and because they are short at the moment, I decided to post them here
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!