<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Mutating Programs</title>
		<link>http://www.allegro.cc/forums/view/293256</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 19 Aug 2003 06:47:48 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I thought I should finally just say it.</p><p>A couple of months ago, maybe half a year to a year ago, I made what I call a Progranism (cross between the words Program and Organism). The point of the program was to prove my theory that a program could mutate and show signs of evolution by doing so. The project was a success, mind you.</p><p>It took several tries before I got a good version of my Progranism. The final version is a win32 app, if I remember correctly. Here is what it does:</p><p>1. On run it waits 60000 milliseconds (1 minute)<br />2. It then creates two copies of itself in the same directory.<br />3. As it reads through its own file and outputs to one of the copies, it has a 10% chance of making a mistake(mutation), either adding, removing, or changing a byte of machine code. There is also a 1% chance of 2 mistakes.<br />4. It runs the two new copies, and shuts itself down.</p><p>The first &quot;lab&quot; computer I used was not prime feasting grounds for my baby Progranisms, so I switched to a rather decent Win XP computer. The babies grew into ugly, but cool, mutants.</p><p>So, what exactly went on? Well, of course the Progranisms multiplied, the system would always max out at 800 processes because then the number of Progranisms being added was equal to the number being removed, due to the ever decreasing CPU power per Progranism. After about 2 hours of running the Progranisms I&#39;d do a cold shutdown, i.e. unplug the comp. The folder with the Progranisms would often have 10,000+ files. I&#39;d find the 800 most recent, non-empty Progranisms, delete the rest, and run what was left. </p><p>These tests went on for a long time before I eventually stopped for whatever reason. By the time I had stopped though, the Progranisms had gained some amazing abilities. They now created 3 copies, and multiplied every 10 seconds instead of the original 60. You can see how that was a problem for my computer, heh. Even more amazing was that they had learned how to kill each other...a bit brutal, but they did it. They would delete other Progranisms in the folder, don&#39;t ask me how they did it, but they did, and I was fricken amazed when I noticed that they were doing that.</p><p>I&#39;m sure they are doing WAY more things, but it&#39;s not like I can watch the computer process their code, so a lot of what they do is hidden from me, heh.</p><p>They also increased in file size several bytes, I can&#39;t remember how many, but it was a fair amount. OH, and one time, a Progranism found its way to my Desktop <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> didn&#39;t work though, was what I call a defective Progranism :-\</p><p>So, besides this being a really cool project, I think it can also benefit games. How about mutating AI? Create some sort of &quot;Tactical code&quot; and have that mutated, favoring AIs that can score the most points.</p><p>So, after this long post, what do you gals/guys think of what this freakish idea? Want to try some Progranisms out for yourself? If anyone is interested I have both the source code I used to make the original Progranism, and I have a set of 800 Progranisms from the last &quot;batch&quot; that was run. OH and I have a couple of Progranisms from my enlargement tests where I tried to breed a Progranism that would grow in file size as fast as possible. So, if anyone here is interested, just ask and I&#39;ll whip up a zip file for ya&#39;ll.</p><p>NOTES:<br />One thing I should mention is that Progranisms are !DANGEROUS! They mutate their machine code, hence they can do all sorts of things, and overwhelm the system with dieing processes. Occasionally I had to use the Win XP disc to boot and run a scandisk, because Win XP would error on boot <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />. This is why I used a &quot;lab&quot; computer that didn&#39;t have important stuff on the HD. That and the Progranisms will likely shorten the life of your HD.</p><p>OH, and you may ask why I&#39;m posting about this NOW that it had been like half a year...well...cause I wanted to make a safer and cooler Progranisms 3D game, basically giving the Progranisms a 3D environment to play in...but I have other projects I got to do, so I decided to just let the secret go.</p><p>Another Note: I&#39;m not sure this is the right area to post in...seems like it, I mean it is a Game Concept, it isn&#39;t exactly Programming related, and since it is a game concept, I don&#39;t think it belongs in Off-Topic ordeals...any who, don&#39;t yell at me if it&#39;s not in the right spot please.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 03:20:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
That is incredibly cool - it&#39;s basically Darwinian evolution applied to machine code. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>I wanted to do a project like this, but I never got around to it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 03:26:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>NICE!!!</p><p>Anyways, in practice, just use a simulated GA using your own VM instead of dangerous machine code. Maybve have them modify their LUA source like that. BTW, that is NOT a good idea for a game AI, randomly doing stuff like that.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 03:26:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, in the case of AI, of course the concept would need to be advanced more so it doesn&#39;t do crazy stuff, heh, but it isn&#39;t like it COULDN&#39;T be applied. Also, once Progranisms are taken away from the machine, and attached to a virtual machine, they lose some important concept features, like being able to hack into a fellow Progranism...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 03:31:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>once Progranisms are taken away from the machine, and attached to a virtual machine, they lose some important concept features, like being able to hack into a fellow Progranism</p></div></div><p>

Then you need a better VM. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 03:35:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>true......anywho...it&#39;s cool watching my computer choke on Progranims, hehe, that and, how would they ever gain the ability to spread across a network if they are stuck inside a VM? I'm dumb!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 03:37:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If it was supposed to be anything biological, they can&#39;t just kill others. But maybe have them all running in one script space?</p><p>Have you read on GAs? You basically make a tree of all your statements (or the machine code, but not as effective), like an if node with a true node and a false node, then mutate them by taking one random section and putting it onto another:
</p><div class="source-code snippet"><div class="inner"><pre>      p1          p2
       <span class="k3">|</span>           <span class="k3">|</span>
      s1          s2
      <span class="k3">/</span>\          <span class="k3">/</span>\
    s3  s4      s5  s6
     <span class="k3">|</span>  <span class="k3">/</span>\      <span class="k3">/</span>\   <span class="k3">/</span>\
    s7 s8 s9  sa sb sc sd
</pre></div></div><p>
Then to mutate, pick two random nodes, say s3 and s2, and interchange them:
</p><div class="source-code snippet"><div class="inner"><pre>      p1          p2
       <span class="k3">|</span>           <span class="k3">|</span>
      s1          s3
      <span class="k3">/</span>\           <span class="k3">|</span>
     <span class="k3">|</span>  s4        s7
     <span class="k3">|</span>  <span class="k3">/</span>\
     <span class="k3">|</span> s8 s9
    s2
    <span class="k3">/</span> \
   s5  s6
  <span class="k3">/</span>\   <span class="k3">/</span>\
sa sb sc sd
</pre></div></div><p>
It leads to things working more properly more often <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 03:37:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>interesting....anywho. The one thing I&#39;d like to do is take out the extra junk in the EXE, like error messages and fluff that MSVC puts in there. That was the mutations are more likely to hit the core code, instead of the fluff.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 04:11:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Compile it to pure machine code and have it be a .com file.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 04:16:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thats really cool, but it seems like you would have to change more than one byte of a program for it to have an effect AND have the program still work. Also it seems like 99.9999% of the programs wouldnt work correctly. Are you just changing one byte every pass?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kazzmir)</author>
		<pubDate>Fri, 15 Aug 2003 04:19:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p> Also it seems like 99.9999% of the programs wouldnt work correctly.</p></div></div><p>

That&#39;s a basic principle of evolution - quantity over quality. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 04:19:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>you&#39;d be surprised how much EXE can take before it chokes on itself, heh. Course, I&#39;m sure a lot of the mutations are hitting the &quot;fluff&quot;, but the mutations worked, cause the progranisms started deleting files...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 04:23:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
It&#39;s dangerous letting them run wild like that, though; what if one of them suddenly develops the ability to erase your MBR? You&#39;d be pretty screwed then. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 04:27:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>MUWHAHAHAHAHAHA, and so would they, I'm dumb!. Accually, Win XP might protect the MBR? Or maybe I should run them under a non-admin account...that&#39;d be safe.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 04:35:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>And suddenly one day, Skynet is born <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>Interesting idea to meddle with the executable itself instead of the source code <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Fri, 15 Aug 2003 04:46:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>messing with the source code would be hard? sorta...computers aren&#39;t usually good at understanding languages other than machine code <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> I'm dumb!. and about skynet, the Progranims are working on it, they said they&#39;d be done by tuesday next week. <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 04:49:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So when two of your Progranisms create another Progranism, do they get a Prograsm? <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Fri, 15 Aug 2003 04:50:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
It would be interesting to run these in a controlled environment (i.e. a VM) for a while and see what happens, which ones survive and which don&#39;t, etc ... and possibly use those conclusions to draw some more conclusions regarding evolution in general?</p><p>I think we would find that the winners are the ones that cheat. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 04:51:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Kick a.s.s idea! I bet this can be done for AI, maybe a &quot;brain&quot; class / neural net that is virtual, that can be screwed up?</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>1. On run it waits 60000 milliseconds (1 minute)<br />2. It then creates two copies of itself in the same directory.<br />3. As it reads through its own file and outputs to one of the copies, it has a 10% chance of making a mistake(mutation), either adding, removing, or changing a byte of machine code. There is also a 1% chance of 2 mistakes.<br />4. It runs the two new copies, and shuts itself down.
</p></div></div><p>

Were the chances rand()? Or were they just because machines now a days suck? ^_^</p><p><b>EDIT</b></p><p>How long did it take to write the program? I sure as hell would love to write something like this..Maybe you can give me a basic outline? I mean, how in the hell did it move one to the DESKTOP?</p><p><b>EDIT2</b><br />On second thought, can you post the source code here? We could all bennefit from something like that...;D pweaze?</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>And suddenly one day, Skynet is born </p></div></div><p>
<img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> Thats the plan <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 04:56:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>rand(), I'm dumb!, computers don&#39;t make mistakes, coders make mistakes, hehe. It&#39;s rather easy to code, I made the first one rather quickly, but the final product took awhile, cause I had to keep running back and forth with diskettes between the main comp and the lab comp.</p><p>It got on the desktop cause one of the progranisms got a mutation in its code and truncated the path(the Progranisms folder is on the desktop). Course, the mutation failed <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /> OH, I forgot to note a mutation. I coded in an anti-biotic in the Progranisms so if the file Progranisms.AntiBiotic exsists, the progranisms will stop having babies <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> Well, took them awhile, but eventually a strain came about that was immune to this and now they are ALL immune, muwhahahaha. funny stuff.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 05:02:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Kick a.s.s idea!</p></div></div><p>

Like most really good idea&#39;s, someone else beat you to it. Look into Artificial Life AI algorithms.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Korval)</author>
		<pubDate>Fri, 15 Aug 2003 05:04:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm? Can you post source code? I don&#39;t know how I would run the exes I'm dumb!..I wanna try a project like this...hmm..I see a future: Randomly Generated Computers ^_~
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 05:07:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m uploading the zip file containing the latest progranisms from the standard run and the enlargement tests, but it&#39;s a big file so will take a minute. In the mean time: [url <a href="http://www.cljy.com/~billy/Progranism">http://www.cljy.com/~billy/Progranism</a> Source.zip] That&#39;s the source code...now that I look at it, I did some crazy stuff in there...anywho. I&#39;ll edit back the other url to the progranisms.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 05:16:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Things like this is really funny! <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /><br />I did some genetic programming stuff a couple of years ago. Nothing like this. I tried to make my small &quot;organism&quot; to calculate PI. Of course they cheated. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /><br />But it wasn&#39;t a serious attempt. Just wanted to try it out a little.</p><p>I was on a demo party some months ago and one guy talked about this. He also showed some videos of 3d organism trying to walk. Very interesting.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (psundlin)</author>
		<pubDate>Fri, 15 Aug 2003 05:18:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes..Very crazy. Is that for MSVC++?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 05:21:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>uhhh...sorta kinda, you can easily tear it down into stuff that&#39;ll compile elsewhere.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 05:22:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>7 Letters. K.I.C.K. A.S.S
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (theforgotten)</author>
		<pubDate>Fri, 15 Aug 2003 05:23:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Theres a file missing according to MSVC++. ProgranismApp.h is MISSING! <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 05:27:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have a GA app somewhere... lemme see if I can find it...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 05:28:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>[url <a href="http://www.cljy.com/~billy/Progranism">http://www.cljy.com/~billy/Progranism</a> Source.zip]<br />for the source, updated, forgot two files</p><p>[url <a href="http://www.cljy.com/~billy/ProgranismsPack">http://www.cljy.com/~billy/ProgranismsPack</a> 08142003.zip]<br />for the pack of progranisms. 1600 of &#39;em, 22mb.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 05:30:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Nice <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" /> I may want to make something like this, but from William&#39;s code.....uhhh..confusion I'm dumb!...Well, its missing a file that is one problem <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Linking...<br />Progranism.obj : error LNK2001: unresolved external symbol &quot;public: __thiscall CProgranismApp::~CProgranismApp(void)&quot; (??1CProgranismApp@@QAE@XZ)<br />Progranism.obj : error LNK2001: unresolved external symbol &quot;public: __thiscall CProgranismApp::CProgranismApp(void)&quot; (??0CProgranismApp@@QAE@XZ)<br />Progranism.obj : error LNK2001: unresolved external symbol &quot;public: void <u>_thiscall CProgranismApp::Init(struct HINSTANCE</u>_ *,struct HINSTANCE__ *,char *,int)&quot; (?Init@CProgranismApp@@QAEXPAUHINSTANCE__@@0PADH@Z)<br />LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main</p></div></div><p>

Hmmm.....am I doing something wrong? <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 05:31:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>you need the ProgranismApp.cpp file in your project.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 05:34:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh, I guess I didn&#39;t actually do GA... But I do have a backpropogation nueral network class, and a SOM class, too... Attatched.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 05:34:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>and what now with the he&#39;s a what? I'm dumb!, explain <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 05:35:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Linking...<br />LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main<br />Debug/Progranism.exe : fatal error LNK1120: 1 unresolved externals</p></div></div><p>

..............uhhhh....
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 05:36:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Win32 app, not win32 console app, do you want my project files?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 05:38:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ah okay. That <b>may</b> just help it a bit <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />......</p><p>I believe I have an idea to do something with this. Instead of it being all writing and stuff, maybe I can use this code in an AI class, and then add Allegro stuff so that we can see what they are doing to each other. Then, when they mate/breed/split, they either loose, add, gain, lose, whatever information. Then, the parent is split in half and maybe some information is lost...</p><p>Ahhh..I see a nice simulation game comming along :-x
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 05:41:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I'm dumb!. Well, I would have coded breeding into the Progranisms, however, I decided not too, cause I left it up to them to figure out how &gt;8)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 05:42:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think my project idea would be quite interesting..I shall work on it right away <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 05:46:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>coo, when do you expect a concept demo? I'm dumb!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 05:48:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /> May be a while...I will first off have to decide if I want to do cloning by RAM or by writing to a file, etc...Hmm..any ideas?</p><p><b>EDIT</b></p><p>Here is an idea. A single bitmap, which it starts out with..It then copies itself into memory, and reads the BITMAP back to itself. Then it changes/adds/deletes 1 pixel of it, shifting everything back or whatever. Ack..I don&#39;t know how to modify bitmaps like <u>this</u>! Crap, but it would be a good start.</p><p> This way it can also grow big and small, and also change colors <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 06:02:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>both? store a file counter-part for later loading(when the program closes), and another copy in RAM for interpretting. Course, these suckers multiple like crazy, so be careful about maxing out of RAM and being forced to use the HD anyway.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:06:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now what would be cool is if you could write two seperate programisms and have them interact with each other...  Such as requiring that Type A programism must consume Type B programism in order to reproduce.  If it cannot find enough of Type A, you could make it stop reproducing.</p><p>Another cool thing is if you could implement some form of &#39;sexual&#39; reproduction... In other words, two programs take %50 of each others code and output it into a new source program.  That would be pretty cool, although the chance of Machine Code Mutation is much higher.   Too bad there is no way to kill of bad processes from the computer by having them &#39;die&#39;.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 06:06:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes...</p><p>Which idea would you like to see better?</p><p> - AI simulation. Multiple clones in an app, which write to the HD of themselves, and they clone. But they only last for 2 clone cycles, that way it saves me space. It then also changes it <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p> - Or the bitmap simulation. It changes the bitmap, and maybe splits it up....At diffrent parts?</p><p>Other ideas would be loved with care. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p><b>EDIT</b></p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Another cool thing is if you could implement some form of &#39;sexual&#39; reproduction... In other words, two programs take %50 of each others code and output it into a new source program. That would be pretty cool, although the chance of Machine Code Mutation is much higher. Too bad there is no what to kill of bad processes from the computer by having them &#39;die&#39;.</p></div></div><p>

50% of the A, with the addition/deletion/change.<br />50% of the B, with the addition/deletion/change.</p><p>Thats a good idea..But communicate between 2 is hard, unless I do the enviorment demo I was talkin&#39; about.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 06:08:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>like I said before, the Progranisms are suppose to be open-ended, they&#39;ll learn to reproduce if they discover how and if it&#39;s a good thing, &gt;8). As for that food thing, what I was going to do in Progranisms 3D was about the same thing, pop food around, and the Progranisms multiple every time they eat a peice of food and die after a certain amount of time. Then they&#39;d have to fight over food &gt;8)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:09:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why 3D?</p><p>Maybe we should work on a project like this together?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 06:11:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>kanzure: I don&#39;t get the bitmap idea? surely you&#39;d start off with a nice looking bitmap which would then turn into a mass of random coloured pixels? </p><p>or did I not read your post properly.. <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (James Howard)</author>
		<pubDate>Fri, 15 Aug 2003 06:13:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm... I have an idea, kinda psycho, but it might work...</p><p>Have two programs... ProgramA, ProgramB. The two programs interface with each other on the first run, and generate ProgramChild... Program Child Randomly Selects another program and interfaces with it, generating program child 2.  Program Child 2 randomly selects one program for deletion, and randomly selects one program to interface with.  Generates Child 3... And so forth.</p><p>Of course, the deletion could be modified to be just a move to a different directory... But that would eventually get mutated anyway.  Maybe you could implement some form of *.DLL File that contains some common rules that you do not want altered on runtime?  Of course, if the machine code changes the dll include, your screwed...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 06:13:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>yea, it would get messy, and I thought about that too for the 3D thing, and what I came up with was fractals, but I&#39;m not experienced with fractals....Not sure why I choose 3d....*shrugs*
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:14:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, do evolution of multi-cellurlar organisms:</p><p>Have some sort of interface where you can link together systems and have them interact, one would be the reproduction system, and all organisms would start with it, but might lose it, one could be a growth module, which expands, possibly stealing other&#39;s modules, and possibly a development module, which merges two organisms into one, and maybe a symbiosis module, which interacts with organisms doing well in one area and stuff.... Hmm... That way you don&#39;t have to worry about totally f&#39;ing up the computer.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 06:15:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now what would be cool is if everyone submitted there own programism and we ran it on someones machine and see how the interact.  The only problem is that we REALLY BADLY need some form of &#39;master&#39; program to monitor everything... That way we can trace what exactly is being changed on some of the runtimes, and if it gets to hectic on the processor, we could trigger Armegeddon or the Ice Age or something...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 06:17:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I thought about DLLs as well, cause one time(this was when I hadn&#39;t perfected the Progranism) a strain came up that didn&#39;t mutate...but I figure, hey, if they don&#39;t want to mutate, then they don&#39;t want to mutate, I ain&#39;t going to force them <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> Free Will system idea.</p><p>P.S. YEa, I know, that last statement is kinda funny cause my name is will...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:17:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, somebody write some interface that uses A VM!!!!!!!!! and I&#39;ll be happy to offer my system as a test bed. The VM can get whatever information it needs about my system, but can&#39;t change nothin important.</p><p>Bother me enough (read: ask me nicely) and I just might write you your own machine language to use.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 06:19:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Master program is needed.</p><p>Should we do a Program Organic Compition? </p><p>Maybe William shall design that one master thingy, and all ours MUST run under that...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 06:19:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
CGP: How about using an emulator like Bochs to act as a VM?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 06:20:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>QUESTION: Java....how bout that? Can Java access and run files on the computer? Java would be nice, cause it compiles and has tons of checking.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:20:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The number one problem is, that in order to avoid massive unrunable applications, they need to be in bytecode.  True, we could most likely use java as the VM or something...</p><p>Note: Is it just me or is this post getting really long real fast?  May I suggest a move to IRC?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 06:21:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>We must make sure the Master Program can spawn 2 at once, maybe the first one running while the other one is spawming.</p><p>Also, the master program will monitor the top parts where the VITAL crap is, so if that is changed, it is re-changed so it will still run.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 06:21:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>X-G: Eh? An ix86 emulator? that&#39;d be kewl, then they could run in protected mode and stuff, not having to worry about an OS or nothin.<br />But having custom-made VM would be kewl, because you can create all kinds of intresting simulations that might be really wacky.</p><p>Seeing as how I need practice writing VMs, I think I&#39;ll do it anyways and if people use it, they use it <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>[edit]<br />Kanzure: Do you realize how impossibly hard that&#39;ll be on WIndows? Too much work.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 06:22:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>CG, make sure it can change the vital information so everything will run even if it was already changed..MAKE IT OPEN SOURCE <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 06:23:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>having to re-write the progranisms for a VM without a C++ compiler will suck, I'm dumb!. I might write a VM...or not, I got to work on my German homework... <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:27:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now, if, in essence, we could implement some way to maintain certian portions of the code (Aka. Refrain from having there bytecode edited) this could prove VERY useful.  </p><p>The only thing I can think if is to find the EXACT INDEX in the file that the vital information starts at, and have the program only alter code beyond that.  But, once again, this would mean that a mutation in the code could always mess up the vital information anyway.  No matter how you spin it, it is kinda pointless to retain vital code.</p><p>One more thing on the process overload... If there is an easy way to kill processes in windows, we could further the evolution of the programs by &#39;destroying&#39; random processes once the CPU starts choking because of the number of processes.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 06:28:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, plan for the VM, should you like to use it:</p><p>Instructions, in ASM like format:
</p><div class="source-code snippet"><div class="inner"><pre>mov     l1, l2      <span class="k2">;</span> Moves l2 to l1
<span class="k1">xor</span>     l1, l2, l3  <span class="k2">;</span> XORs l1 with l2, stored in l3
<span class="k1">or</span>      l1, l2, l3  <span class="k2">;</span> ORs ...
<span class="k1">and</span>     l1, l2, l3  <span class="k2">;</span> ANDs....
<span class="k1">not</span>     l1, l2      <span class="k2">;</span> Inverts l1  <span class="k1">and</span> stores in l2
cmp     l1, l2      <span class="k2">;</span> Compares l1 with l2.
jl      l1          <span class="k2">;</span> Executes at l1 <span class="k1">if</span> the previous cmp had l1 <span class="k3">&lt;</span> l2
jg      l1          <span class="k2">;</span> ... l1 <span class="k3">&gt;</span> l2
je      l1          <span class="k2">;</span> ... l1 <span class="k3">=</span><span class="k3">=</span> l2
jmp     l1          <span class="k2">;</span> Continues execution at l1
</pre></div></div><p>
Anything else?</p><p>To keep consistancy, each instruction will be the same size, so programs don&#39;t have to worry about that.</p><p>Also, you&#39;ll note the lack of registers. Also, the code segment is indistingusished from the data segment for extra fun <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 06:30:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
You&#39;ve got the order with mov wrong. ANd boolean operations take two parameters as well. And make sure to have aliases for jl, jg, je, etc.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 06:32:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Now, if, in essence, we could implement some way to maintain certian portions of the code (Aka. Refrain from having there bytecode edited) this could prove VERY useful. </p></div></div><p>

Yup..We need to maybe figure out the vital parts, not DLL crap, but ... other..stuff...</p><p>William - can you write a special prog thing that only writes to 1 new file, and runs that 1 new file? That way...well, it wouldn&#39;t take up that much memory..</p><p>(WORTHLESS 128 MEG OF RAM LAPTOP)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 06:32:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You cant stop the Progranisms once they&#39;ve stated, trust me. If you start a progranism and wait more than a couple of minutes, you HAVE to do a cold shutdown, they grow so fast you can&#39;t kill them all AND once the CPU is maxed, you can&#39;t open the task manager. Also, killing random progranisms is bad, because there is no pattern behind the killing, they&#39;ll never figure out what&#39;s happening and thus can never adapt to it, there must be a method to the destruction, so they can figure out how to counter the threat &gt;8)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:33:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, so you don&#39;t kill random progranisms, you just kill the progranisms that are the smallest on disk or something...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 06:35:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Or just run it in a VM <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>X-G: No, the bitwise ops will take 3 params because of the lack of registers.</p><p>[edit]<br />Also, I could do it as a tree instead, prolly be better for this application. Any takers?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 06:36:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
How many registers does your VM have? Three is pretty much minimum ...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 06:37:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>X-G: The apps are designed to do one thing: Get themselves wasted <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" /> They shouldn&#39;t have registers. They can use already executed code space as registers <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>[edit]<br />However I really think the tree application would be better here.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 06:38:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now what would be funny is if a program &#39;adapted&#39; to take control of the VM itself and started going Rogue on your system.  That would be hillarious.</p><p>And, come to think of it, you could implement some form of list in memory of all currently running processes.  You could reduce the processor load by only running 10-20 at a time and cycling to another set...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 06:39:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, I guess I&#39;m ok with ASM, just as long as you document everything well for us half-non-asm&#39;ers, heh.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:40:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
CGP: You&#39;re going to need the C register at the very least. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 06:41:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Move to IRC, anyone?  That way we don&#39;t have to keep hitting refresh every 10 seconds, and someone could just log the chat to post it on here...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 06:42:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, the tree would be kewl, because there could be a node that decided to change other nodes, and it would work much better and more efficiently than just a string of bytes. Altough, consider other possibilities as well.</p><p>Perhaps model an actual cell&#39;s function as it joins with others?<br />Perhaps model a neural network that can rewire itself as other neurons are more active?<br />Perhaps a box of hairpins that makes shapes of it&#39;s own accord?</p><p>No idea is too off, here <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Carrus: gimme a channel <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 06:43:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>WOAH, I just remembered something, I made an Emulator of the Shadow I proccessor. heh, anywho, just this topic brought that up.</p><p>BTW, If the Shadow I proccessor doesn&#39;t seem like a familiar name, it shouldn&#39;t be, it was an imaginary proccessor used in the imaginary Classic Fantasy system I was going to emulate. WEIRD huh? Sorry, I was on drugs when I came up with that idea.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:44:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Post IRC channel. Log everything. My computer is tooooo sloooowww...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 06:44:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>#Progranisms on EFNet if anyone wants to join
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 06:45:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>arg, I knew I should have learned what irc was. NEVER FEAR, I shall search the web.</p><p><b>dang this music blows</b>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:47:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Download <a href="http://www.mozilla.org">Mozilla</a>.  It has a built in IRC client.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 06:48:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><b>runs around</b> ahhhh, slow download....mha
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:49:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>must...join! I&#39;m downloadin&#39; hold ur horses...</p><p>uhh..done o_O damn that was fast</p><p>{EDIT}<br />Connecting is SLOW! Sigh..
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 06:56:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>slow for me...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 06:59:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can&#39;t connect error. </p><p>Set the IRC network as &quot;All&quot; (Wtf?) and lets just go to #Progranisms <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 07:00:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Join EFNet, like, irc.choopa.net or irc.prison.net then join #progranisms
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 07:01:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You have to set your network to EFNET then you can join #progranisms.  Just try multiple times... Sometimes the servers are annoying, and with the east coast power down, it could be quite a feat to get online...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 07:01:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I wasn&#39;t able to connect to EFNet the first time, went the second time though
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 07:01:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Meh, I got in.......3rd time is the charm.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 07:02:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">William said:</div><div class="quote"><p> 3. As it reads through its own file and outputs to one of the copies, it has a 10% chance of making a mistake(mutation), either adding, removing, or changing a byte of machine code. There is also a 1% chance of 2 mistakes. </p></div></div><p>

Sorry, but I don&#39;t understand how you could get this to work. If you randomly change machine code it is <b>highly</b> likely that you will create code that causes <br />- segment violation exceptions<br />- unknown opcode exceptions<br />- other weird errors</p><p>Secondly, you need a tonne of generations to get anything useful evolved. 1 generation/minute probably won&#39;t give you enough generations.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (damage)</author>
		<pubDate>Fri, 15 Aug 2003 07:12:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s the point, the ones that fail die &gt;8) Win XP wont crash, at least it hasn&#39;t yet. And trust me, these progranisms make THOUSANDS of mutations and they evolved
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 07:16:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>But we need something that won&#39;t crash.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 07:17:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
That&#39;s now Darwinian evolution works. Some times something changes; most often it&#39;s bad, some times it&#39;s not. The bad mutations die, the good ones survive to make copies of themselves.</p><p>Same thing here. You just have to be lucky and run LOTS of copies.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 07:18:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What we need to do is just find a way to prevent those crashes from halting the system completely...  If we could do that, it would be one killer application of computers...</p><p>Unfortunately, my short progranism code doesn&#39;t work, gives me MSVCRT.DLL errors.  GDB gives me SIGSEV errors as well...</p><p>Well, here is my code.  Pretty short, but it should do the job...
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;stdio.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;string.h&gt;</span></td></tr><tr><td class="number">3</td><td><span class="p">#include &lt;stdlib.h&gt;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="p">#define FILENAMEROOT "pros"</span></td></tr><tr><td class="number">6</td><td><span class="p">#define RATE_OF_MUTATION 10000</span></td></tr><tr><td class="number">7</td><td><span class="p">#define SLEEPTIME 60000</span></td></tr><tr><td class="number">8</td><td><span class="p">#define FILENUMB 1001</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="k1">int</span> main <span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>  FILE <span class="k3">*</span>fp, <span class="k3">*</span>fcopy, <span class="k3">*</span>fin<span class="k2">;</span></td></tr><tr><td class="number">12</td><td>  </td></tr><tr><td class="number">13</td><td>  <span class="k1">unsigned</span> <span class="k1">long</span> seedcalc<span class="k3">=</span><span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>  <span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k3">=</span><span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>  </td></tr><tr><td class="number">16</td><td>  <span class="k1">char</span> filename<span class="k2">[</span><span class="n">80</span><span class="k2">]</span>, c<span class="k2">;</span></td></tr><tr><td class="number">17</td><td>  </td></tr><tr><td class="number">18</td><td>  <span class="k1">while</span> <span class="k2">(</span>argv<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span><span class="k3">!</span><span class="k3">=</span><span class="s">'\0'</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">19</td><td>    seedcalc<span class="k3">+</span><span class="k3">=</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>argv<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">22</td><td>  </td></tr><tr><td class="number">23</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span>seedcalc<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_731.html" target="_blank">sleep</a><span class="k2">(</span>SLEEPTIME<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  </td></tr><tr><td class="number">26</td><td>  <span class="k1">for</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k3">=</span><span class="n">0</span><span class="k2">;</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k3">&lt;</span><span class="n">2</span><span class="k2">;</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">27</td><td>    <span class="k1">if</span> <span class="k2">(</span>fin <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span>argv<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>, <span class="s">"rb"</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">28</td><td>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>fp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">30</td><td>    </td></tr><tr><td class="number">31</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_737.html" target="_blank">sprintf</a><span class="k2">(</span>filename, FILENAMEROOT<span class="s">"%d.exe"</span>, <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%FILENUMB<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>    </td></tr><tr><td class="number">33</td><td>    <span class="k1">if</span> <span class="k2">(</span>fp <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span>filename, <span class="s">"wb"</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">34</td><td>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>fp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">36</td><td>    </td></tr><tr><td class="number">37</td><td>    <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">38</td><td>      c <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_317.html" target="_blank">fgetc</a><span class="k2">(</span> fin <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>      </td></tr><tr><td class="number">40</td><td>      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%RATE_OF_MUTATION<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">41</td><td>        c <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">256</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">43</td><td>      </td></tr><tr><td class="number">44</td><td>      <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_313.html" target="_blank">feof</a><span class="k2">(</span>fin<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">45</td><td>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_347.html" target="_blank">fputc</a><span class="k2">(</span> c, fp <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">47</td><td>      </td></tr><tr><td class="number">48</td><td>      <span class="k1">else</span></td></tr><tr><td class="number">49</td><td>        <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">51</td><td>    </td></tr><tr><td class="number">52</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>fin<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>fp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>    </td></tr><tr><td class="number">55</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_737.html" target="_blank">sprintf</a><span class="k2">(</span>filename, <span class="s">"start %s"</span>, filename<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_802.html" target="_blank">system</a><span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">57</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">58</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">59</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Compiles down to 24.96 kb, FYI.  If we can get this to work, it should take up a minimum of resources...</p><p>And please, don&#39;t kick me for using something not completely supported by C (It compiles with GCC... Should be pretty much valid C), I&#39;m more of a C++ person anyway.</p><p>FYI: It locks up when trying to perform a binary read open on the source file...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Fri, 15 Aug 2003 07:23:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>            <span class="k1">if</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%RATE_OF_MUTATION<span class="k2">)</span> <span class="k2">{</span>
                c <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">256</span><span class="k2">;</span>
            <span class="k2">}</span>
</pre></div></div><p>That mutates every 9999 out of 10000, btw...
</p><div class="source-code snippet"><div class="inner"><pre>        <span class="k1">if</span> <span class="k2">(</span>fp <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span>filename, <span class="s">"wb"</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
            <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>fp<span class="k2">)</span><span class="k2">;</span>
        <span class="k2">}</span>
</pre></div></div><p>What? If the file fails to open properly the close it? huh?</p><p>And what happened to the VM?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 15 Aug 2003 15:58:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What I&#39;d do is to have some &quot;silent sectors&quot; in the code, which aren&#39;t in use right now. And a lot of jump calls and labels everywhere, so if one of those jump calls gets mutated, and jumps to the &quot;silent code&quot;, strange things would happen.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fladimir da Gorf)</author>
		<pubDate>Fri, 15 Aug 2003 16:21:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Junk DNA?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 16:22:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Wow....this is sooooo cool! William, you&#39;ve made up for all your programming/off-topic forum errors!! I&#39;m definatly gonna mess with this stuff!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (aybabtu)</author>
		<pubDate>Fri, 15 Aug 2003 19:57:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry... but you guys are absolutley crazy.<br />First of all: His program is buggy even w/o some random chanes.<br />Secondly, if you change your program randomly, it&#39;s not very hard to wipe out your hd. <br />Or randomly altering files you don&#39;t intend to alter.</p><p>If you guys want to do something like this, use VM ware google for &quot;genetic algorithms&quot; and/or &quot;artificial life&quot;.</p><p>That&#39;s why better than playing russian roulette with your computer.</p><p>When I read his post I though, ok, I&#39;ll shut up and won&#39;t flame him. In fact I thought Korval or 23 would do that for me.<br />Next day the thread had around 90 very positive replies... either youo guys are trying to force him to do even more stupid things and I just didn&#39;t get it... or... well.... don&#39;t know.</p><p>Geez.<br />If you want to ruin your puter, you should at least make sure the exe header stays intact. That way the exe will be executed, that gives your experiment a better chance to fry your system.</p><p>Have fun.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (spellcaster)</author>
		<pubDate>Fri, 15 Aug 2003 22:04:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
I think I remember saying quite early that this should be done inside a VM - it&#39;s the idea that&#39;s cool, not the way he&#39;s doing it. <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" /></p><p>http://www.gamleby.net/x-g/guru.gif
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 22:14:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>We agreed for a VM <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p> - Meh I&#39;m out of the project. In the IRC room they were talking about an ENTIRE operating system for this thing.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 22:21:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Operating system? That&#39;s nothing. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>You&#39;re going to have to implement the entire processor. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 22:22:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>X-G: and do all the logic circuits with FPGAs <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Fri, 15 Aug 2003 22:23:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, they were thinking of also there own byte code language....AHHHHH <b>runs into a brick wall</b>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kanzure)</author>
		<pubDate>Fri, 15 Aug 2003 22:27:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Kanzure: You realize, of course, that that is what a VM is? <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Fri, 15 Aug 2003 22:48:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ahhh, a fresh morning with a fresh cup of Progranisms.</p><p>spellcaster, yes, I do realize the risk, but we all have to take risks some time, eh? So far the computer has suffered nothing but some minor harddrive glitches. Now adays the computer is being used as just a plain computer, not a lab computer, and I didn&#39;t have to reinstall windows are anything. Now, just cause it hasn&#39;t happened yet, doesn&#39;t mean it wont happen, I know that. Last night Kanzure, or maybe someone else, was running them and I freaked out and made sure he knew that they we dangerous.</p><p>Anywho, I&#39;m not doing anymore pure computer tests, like is being mentioned, we are thinking about making a VM for the thing to play on <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p><b>grabs gun</b> Ok Computer, do you feel lucky?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Fri, 15 Aug 2003 23:46:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>When I read his post I though, ok, I&#39;ll shut up and won&#39;t flame him. In fact I thought Korval or 23 would do that for me.</p></div></div><p>I&#39;m purposely staying out of this <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> The parallels are too close to Darwinian Evolutionary Theory (hell, X-G already mentioned it) and putting me near that is a flamewar waiting to happen <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> Needless to say, this isn&#39;t going to work unless you lay down strict rules about how it can &quot;mutate&quot; and (as you say) run it in a VM, etc. Of course, in the process you support ID, not ToE <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> ... anyway, yeah. I&#39;m not following well enough to know exactly what you guys are doing, but maybe you&#39;ll ultimately end up with some interesting results. In the meanwhile, I won&#39;t care, but hey, knock yourselves out <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> It would be interesting if someone could make a simple little game with AI that learns to outsmart you as you play ...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Sat, 16 Aug 2003 00:16:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok yea, nobody dare say anything about evolution are this thread will really sky rocket. Anywho, I don&#39;t like rules in games, never have. I&#39;ve always been a Free-Will designer for some odd reason, maybe cause it makes betters games, games where you aren&#39;t restricted. But, as such, I never coded rules into the Progranisms, because in real life, there really aren&#39;t that many rules that HAVE to be followed, there&#39;s rules that should be followed, but you don&#39;t HAVE to.</p><p>Yea, a quick game like that would be cool &gt;8) We need a game where the player is killing hundreds upon hundreds of enemies, hehe.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 00:37:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, for some VM nodes, how about these:</p><ul><li><p>If: If on node returns true, another is executed, otherwise a third.</p></li><li><p>Compound: one statement gets executed, then the other. The most common type of node.</p></li><li><p>Move: Moves the whole script in the global script&#39;s memory space. Things can overlap, causing the script to merge.</p></li><li><p>Mutate: Randomly reconstruct part of the program using a random tree.</p></li><li><p>Transpose: Randomly switches two tree branches.</p></li><li><p>Putpixel: Places a pixel of a determined color on the screen at a position representing the script.</p></li></ul><p>
Anything else that might simulate what biological organisms running inside a VM should be able to do to themselveS? Remeber, we are NOT talking classical life, so yes, organisms should be able to randomly mutate themselves.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sat, 16 Aug 2003 01:04:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><b>shrugs</b>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 01:17:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
I would just implement basic simple opcodes within a certain memory space.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Sat, 16 Aug 2003 01:20:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, CGames, here are some clafifications:</p><p>1) The reason the file closes on error, is I&#39;m simulating a &#39;replication error&#39;.  Essentially, if there is a file name collision, just don&#39;t write anything...</p><p>2) I was just wondering why my code generates seg faults, that is all...</p><p>Could anyone help me, please?</p><p>And about the VM... We most definately need a VM!  It is way to risky to just plug all of this sutff into your machine... You could very easily wipe your hard disk, flood your network with packets, heck... You could do all sorts of wierd junk...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Sat, 16 Aug 2003 01:26:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>X-G: Simple opcde might not be optimal... It depends on wether you want to picture the programs as living strings of bytes, or as working programs that evolve.</p><p>Your choice, but I think I&#39;d need some help deciding what opcodes to use in the former case.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sat, 16 Aug 2003 01:43:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>We&#39;ll do both? Experiment, see which methods come out best.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 02:02:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh, that&#39;s why as of previous week my computer keeps crashing (svchost shutdown, RPC shutdown!!! why? it did not do this before).</p><p>Why are you doing this with executables? do it like the game of life, inside a program, simulating.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (axilmar)</author>
		<pubDate>Sat, 16 Aug 2003 02:18:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I started reading this thread, thought &quot;cool&quot;<br />and continued to read.</p><p>Now I have an Idea for a very simple <br />VM/evolution simulation though<br />I&#39;m not as good a programmer as I want to be:</p><p>first: the &quot;play area&quot; is an allegro bitmap<br />in memory.<br />There&#39;s an &quot;instruction pointer&quot; (x,y) who<br />points to the pixel wich is the &quot;statement&quot;<br />or whatever wich is to be executed<br />and the pixel color is some op code value</p><p>255=cmp (compare pixels)<br />105=and (and pixels)<br />104=mov (set pixel colour)<br />054=jmp (&quot;execute&quot; another pixel)</p><p>...I hope you get the Idea...</p><p>Now the pixel right of the current op code pixel<br />is the first parameter next pixel=next parameter<br />then the program only has to read as many<br />parameters it needs...</p><p>Now I know that this will be only one program<br />and not some sort of breeding between programs<br />but I think <i>I</i> will give it a try...</p><p>Then of course theprogram will display the bitmap<br />on screen...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (redMarvin)</author>
		<pubDate>Sat, 16 Aug 2003 02:32:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I bit confusing but I think I get ya....like basically your saying use bitmaps to store byte-code data, so you can visualize a program&#39;s code? heh, that would be cool to watch the Progranisms mutate and see the differences easily.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 02:57:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is there a way to prevent the &quot;program crashed&quot; dialog from showing up?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LSd016)</author>
		<pubDate>Sat, 16 Aug 2003 03:46:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Under what? With the progranisms? With progranisms, no, under any other non-mutating program, yea, sort. Inclose all the code in exception handlers.</p><p>EDIT:<br />!WOOT! I found it. I found my Shadow I emulator and the documents I wrote. Now I got to grab a hex editor and start making sure the thing stuff works.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 04:13:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm, unlike spellcaster I don&#39;t think this is dangerous but I do think that it&#39;s highly unlikely to work. So far there&#39;s been no real evidence.</p><p>But enough kvetching, here are some suggestions. </p><p>1. Don&#39;t use a VM. Speed is essential. Instead, create a program that will &quot;fix&quot; a given binary by disassembling it, checking that the opcodes are correct, then reassembling. Bad opcodes can be replaced by nops (0x90). Also, you can remove high-valued immediate operands as they are probably useful in these small proganisms.</p><p>With this you could also disable potentially dangerous things like interrupt calls. I&#39;ve done a similar thing in the past (lost the code now, sorry), and it was surprisingly easy if you work from the opcode tables in the IASDM manuals.</p><p>2. During evolution, don&#39;t copy progranisms to the hard drive. Keep everything in memory for speed. You can make occasional backups of course.</p><p>3. Reduce the size of the progranisms as much as possible and write obvious code yourself for the progranisms to use. Don&#39;t leave obvious things for the progranisms to evolve; every new thing that they have to evolve will slow things down by a factor - evolution is trial and error.</p><p>4. Try to make a simulation, game or some kind of display so we can actually see evolution happening. For example, some guy evolved some CoreWar warriors once as part of a thesis on evolutionary algorithms. The evolved warriors were close to simple human designs, which was impressive. </p><p>5. Create a virus which runs the evolution program as a distributed app. That way you can harness the powers of thousands of computers for evolution. <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (damage)</author>
		<pubDate>Sat, 16 Aug 2003 08:05:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Or better yet, create a virus that evolves after every replication, so it is a pain in the rear to protect your system from it.... I'm dumb!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Sat, 16 Aug 2003 08:13:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s be funny.</p><p>&quot;CNN has confirmed a new type of computer virus known as Progranism. This new type of virus is expected to be unstopable as its ability to mutate prevents virus scanner detect.&quot;</p><p><img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> Anywho, naw.</p><p>EDIT:<br />oops, forgot to ask stuff:<br />damage, how would you keep the Progranisms in memory? What was that word, Terminate and stay Resident..or somethin like that, is that what you mean? Cause if so, I&#39;ve never done something like that and you&#39;ll have to teach me <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> As for disabling stuff: The only problem is that you&#39;d also disable file writing, no? And you&#39;d disable everything USEFUL the Progranism would want, you disable all that, all the progranism can do is preform calculations that we WONT see, I'm dumb!, which defeats the entire purpose.</p><p>Also, if I run the Progranisms under a non-admin account under WinXP, isn&#39;t that protected? I don&#39;t think WinXp would let it do anything if it&#39;s under a non-admin account.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 09:01:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>try putting it in to a stack the stack register is always in memory just pop the code that is needed
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (piccolo)</author>
		<pubDate>Sat, 16 Aug 2003 09:19:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can&#39;t run the stack and the stack is too small?? heh. BTW, I&#39;ve got a very nice Assembler working that I&#39;m using to generate test code for my Shadow I emulator. So far so good...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 09:21:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Hmm, unlike spellcaster I don&#39;t think this is dangerous</p></div></div><p>
Think again. It may not be too bad in a secure operating system, such as WXP or Linux (though it&#39;s always possible that a program accidentally exploits a security hole and gains root acces), but it&#39;s still a dangerous, if not foolish idea in general.</p><p>About ten years ago, I decided it&#39;d be cool to learn how to call interrupt services, so I wrote a BAsIC program that called a number of them in sequence to see what they did (I&#39;m not kidding! I really was that stupid). Fortunately, I managed to knock out the DOS kernel before I formatted my harddrive. It was funny in a pathetic sort of way because Windows continued to run, but couldn&#39;t get disk access anymore. The computer was fine when I rebooted, but it did scare the freezing hell out of me.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>&quot;CNN has confirmed a new type of computer virus known as Progranism. This new type of virus is expected to be unstopable as its ability to mutate prevents virus scanner detect.&quot;</p></div></div><p>
In which case they&#39;re out of date. Self-modifying viruses used to exist back when a virus was more than a VB script running in Outlook. I don&#39;t think they were very effective though...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sat, 16 Aug 2003 15:17:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>&lt;quote&gt;I bit confusing but I think I get ya....like basically your saying use bitmaps to store byte-code data, so you can visualize a program&#39;s code? heh, that would be cool to watch the Progranisms mutate and see the differences easily.&lt;quote&gt;</p><p>yeah that sounds like what I meant...<br />...but the hour was to late for my brain and<br />english is not my mother tounge:)...</p><p>Well, I made an attempt today but it didn&#39;t seem<br />to work as I wanted, something with the srand(time(NULL))<br />and rand()%max<br />Well I might try again. <br />What system do you recommend to test a &quot;!VM&quot;<br />progranism on? and how can I be sure it won&#39;t<br />mess up my BIOS?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (redMarvin)</author>
		<pubDate>Sat, 16 Aug 2003 18:35:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yep. The first virus I wrote had a section that encrypted the rest of it, so it was impossible to trace, but better than that, the decryptor code changed, too <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Unfortunately, a virus has to be small to be unnoticable (not so much nowadays though) so you can&#39;t have a large database of possible decryptors to use... In which case there still are some signatures it leaves. Plus, all the methods you find probably are already used. I set off my virus scanner several times <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Damage: They are very dangerous. Speed is not essential. You should really be using a VM if you want to have a display: all the organisms will run in the same memory space.</p><p>Elver: Wow. You know there&#39;s an interrupt that when called, in all likeliness would have writtien over your partition table?</p><p>I like my opcodes still, (rather, my nodes) because they alow a lot of freedom, you can add more, the programisms have something more digitally alive rather than digital representations of biological creatures. (No, we shouldn&#39;t emulate something like anything biological).</p><p>[edit]<br />RedMarvin: The VM can&#39;t do anything dangerous.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sat, 16 Aug 2003 18:36:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>well with &quot;<b>!</b>VM&quot; I mean such progranisms<br />as was shown first here where windows was the VM
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (redMarvin)</author>
		<pubDate>Sat, 16 Aug 2003 20:16:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, seeing as how that isn&#39;t a VM, my statement still holds.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sat, 16 Aug 2003 20:30:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>redMarvin, you really can&#39;t prevent that. Like I&#39;ve asked twice before though, under a non-admin account does Win XP stop programs from modifing things like that? If it does, then we&#39;re safe under that setting <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p><b>finds a major logical error in the Shadow I&#39;s ASM code...</b>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 22:25:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
What if your programs suddenly develop the ability to exploit a previously unknown bug in Windows and suddenly gain admin privileges? <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Sat, 16 Aug 2003 22:28:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;d be overflowing with joy because they found an unknown windows exploit <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> heh, I&#39;d let them have their fun.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 22:31:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Who needs exploits? Does Admin even do anything to programs? I&#39;m certain there would be simple ways around it. And not unknown to microsoft. Of course, if you just run it in a VM, you DON&#39;T HAVE THAT PROBLEM!!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sat, 16 Aug 2003 23:04:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m trying to run it under bochs, but I&#39;m having a very hard time with bochs. I finally got it to boot with the WinXP disc, but then I got a PANIC error cause by [HD  ].... <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /> maybe my disc image is too big...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 23:30:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What if, like human will someday, discover something outside the vm and learn how to manipulate it muhahaha. It&#39;s kinda like how maybe humans will leave this unverse or something <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>Muhahaha, like, what i&#39;m also implying is, what if there is a program called NEO! Will you, the architect simply reboot the matrix or what will happen.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Goalie Ca)</author>
		<pubDate>Sat, 16 Aug 2003 23:40:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can&#39;t get out of the VM, all the Progranisms are batteries and they&#39;ll stay that way &gt;8)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sat, 16 Aug 2003 23:42:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Heh.  This is kinda neat.</p><p>It doesn&#39;t really have to be a complete VM, it could just recognise 256 (anyone feeling creative?) assembly-esque commands.  Or rather, recognise some primitive maths, memory handling, branching, and file IO.</p><p>Of course, this would all be restricted to an array malloc()ed by the VM, and either a folder or a disk image on the HD.</p><p>Should it multitask, and allow one Progranism to write to others&#39; memory (ie access violate)? Or would an access violating program get terminated by the VM (as in a real system)? <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Irrelevant)</author>
		<pubDate>Sun, 17 Aug 2003 00:20:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What I want:<br />*Multi-tasking VM, 32-bit<br />*Global memory, can be allocated, but VM does not block access violations, thus allowing for the Progranisms to hack each other.<br />*Programs in memory, copies of them on the HD<br />*A max process limit, denying new processes if this limit is hit.</p><p>Now, I have a 16-bit Console VM, and I&#39;ve been upgrading it a bit, but it&#39;s still far from what I want...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sun, 17 Aug 2003 00:32:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now, multiple threads are going to be hard when there is no one memory space for the programs. You&#39;ll bsically have a bunch of IPs all taking turns and such.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sun, 17 Aug 2003 00:42:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>installing linux on Bochs is taking a long time... I hope it works and that I can figure out how to convert Progranisms to linux, I'm dumb!.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sun, 17 Aug 2003 02:14:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Have any of you guys heard of &quot;Corewars&quot;? It&#39;s a game where you write machine-code programs for a VM. All programs are run in a single memory-space. The idea is for your program to kill off all the other programs (by writing non-functioning op-codes in them IIRC) and survive the longest. The VM goes round giving each program a single opcode execution cycle before it goes on to the next program. These programs can spawn multiple processes, but when it&#39;s the program&#39;s execution cycle, only one of the process gets to execute it&#39;s opcode on that cycle (the other processes have to wait for the next cycle of the program).</p><p>On some implementations, the &#39;areana&#39; (the memory where the competing programs are run) is shown graphically. Each program is given a different colour, and the instruction-pointer of the program or process is shown in a lighter shade of the colour.</p><p>I&#39;m sure some good old Googling will bring you more information on Corewars and possible implementations for your platform.</p><p>AE.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Andrei Ellman)</author>
		<pubDate>Sun, 17 Aug 2003 03:17:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
That post reminds me of <a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=166888">this GameDev contest</a>. Check out the <a href="http://www.gamedev.net/community/forums/forum.asp?forum_id=50">rest of the forum</a> for more info. Maybe you guys could do something like that <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Sun, 17 Aug 2003 03:23:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Have any of you guys heard of &quot;Corewars&quot;?</p></div></div><p>

I used to play Corewars at one point! <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /> Never was any good though. <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Sun, 17 Aug 2003 03:27:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s what I want to do, but writing an emulator isn&#39;t easy, so I&#39;m taking other routes and see what I come up with.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sun, 17 Aug 2003 03:42:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It shouldn&#39;t be to hard to have a file that handles the 256 bytecode operations?  You could go with a format something like this...<br />ABXXXXXXXXXX</p><p>A is the opcode<br />B is the Number of Following Bytes controled with that opcode (0-255)<br />X is a value that is used by that opcode....</p><p>Just make sure you write your programs in a hex editor, and your set!</p><p>And, in the future, you could double the number of supported opcodes by simply making the template like this...<br />AA</p><p>Shouldn&#39;t be too hard...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Sun, 17 Aug 2003 04:30:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Carrus: Each opcode accepts a set amount of parameters, so the &quot;B&quot; is unnecessary. As for having two-byte opcodes, you would reserve a couple of values for the first byte that signifies that there is another byte following, I believe ...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Sun, 17 Aug 2003 04:33:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, I&#39;m not very good at opcodes and I am kinda new at it...</p><p>I&#39;ve worked out a system that uses two opcode flags... I&#39;ll post my system when it is up.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Sun, 17 Aug 2003 04:51:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t understand why the program launches the two children when it&#39;s done. I can see why it would, formatically speaking, but I can&#39;t find the code that executes the children.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Synapse Jumps)</author>
		<pubDate>Sun, 17 Aug 2003 07:17:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just tried you proganisms, and it seems cool. Didn&#39;t dare run them for more than one cycle, though, but still they managed to put a file named &quot;~&quot; on my desktop <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> way cool, man!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( mEmO)</author>
		<pubDate>Sun, 17 Aug 2003 07:47:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
but still they managed to put a file named &quot;~&quot; on my desktop 
</p></div></div><p>
They did? Sweet, never seen that before, hehe.</p><p>And as for what calls the children:</p><div class="source-code snippet"><div class="inner"><pre>WinExec<span class="k2">(</span>Temp, SW_SHOW<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sun, 17 Aug 2003 09:44:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve got a question. Why does the parent&#39;s process never finish? Shouldn&#39;t it, or is the WinExec function blocking or something?<br />EDIT: WTF, it used to...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Synapse Jumps)</author>
		<pubDate>Sun, 17 Aug 2003 10:34:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I can&#39;t believe you guys are running those. I hope at least you have everything backed up. I mean, even if they don&#39;t kill your whole HD, they might just casually overwrite a few files or something...</p><p>BUt, if you want to continue to be reckless:</p><p>You guys are only modifying the data section. You can&#39;t touch the code. When it changed the path, it was changing something in the data section. If you want to do really kewl and stupid (as in dangerous) stuff, look up the header of PE executables, and set the flag to make the code section writeable. That way you really change what the program is doing. Whenever you got pointer errors (access violations), it was probably because the code was trying to write to it&#39;s own code section and couldn&#39;t. You might have wanted to code these in ASM also, much less bloat.</p><p>Or wait, you were changing the file on disk, not in memeory, weren&#39;t you? Ok, disregard all that <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sun, 17 Aug 2003 17:30:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Following the idea of making a specialised enviroment, I have some questions for the masses:
</p><ul><li><p>How low level should the opcodes be?  Assembly-esque (direct register use and whatnot), or higher level (registers, stack, etc automated)?</p></li><li><p>If assembly (or lower), how many registers, stack size, etc?</p></li><li><p>How much memory would the enviroment have?</p></li><li><p>Should its HD be a disk image, or could each progranism have its own file?</p></li><li><p>If disk image, how big?</p></li><li><p>If files, should they be restricted to a &#39;disk&#39; folder, or be free to wander the (real) HD?  (The second option would be more fun, methinks, but you&#39;d  need to log the location of all the files.) *</p></li><li><p>Should a program be able to kill other <i>processes</i>, as well as delete their files?</p></li><li><p>Should the processor handle memory leaks, or would the progranisms be forced to use their initiative and invade lost memory?</p></li></ul><p>
</p><ul><li><p>The advantage of using an enviroment to track and run the progranisms is that you can still have them popping up unexpectedly on your desktop, but the enviroment can block attempts to overwrite or delete files not on its list (so your non-progranism files are safe).</p></li></ul><p>I might have a shot at an enviroment, but I&#39;ll wait for our ideas to settle a bit.  I don&#39;t want to write something noone wants. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Irrelevant)</author>
		<pubDate>Sun, 17 Aug 2003 19:47:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
For level: I say machine opcodes. Shared memory is likely a bad idea, though, if you want multi-tasking. Have the stack be as large as you feel is necessary. Registers? Depends on what you need. You&#39;re going to need things like an IP, an accumulator and data register, etc.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Sun, 17 Aug 2003 19:59:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Right, so, progranisms shouldn&#39;t be allowed to mess with each other while they run, right?  Just with each other&#39;s files?</p><p>In that case, is there any point in multitasking, or would just running progranisms sequentially off a buffer do just as well?  That is, taking the progranism from the top of the buffer, running it, and adding any new progranisms to the bottom of the buffer.</p><p>Actually, that would remove the point of having delays.  OK, I just answered my own question.  But would multitasking still be worth it if they can&#39;t mess with each other?</p><p>If you wanted to reduce the havoc they could wreak on each other, but still allow <i>some</i> sabotage, you could kill any access violating progranism, but leave the change changed.</p><p>[edit]<br />My thoughts on memory sizes:</p><p>65536 byte RAM (2 byte memory bus)<br />256 byte stack (1 byte stack pointer)</p><p>Registers:</p><p>Accumulator (1(?) byte)<br />X + Y reg&#39;s (1(?) byte each)<br />instruction pointer (2 bytes)<br />flags (As big as necessary.  2 bytes is pro&#39;lly max.)<br />stack pointer</p><p>The memory address register, memory data register, instruction register and so on can be automated if it&#39;s working at Assembly level, but if it&#39;s right down at machine code then they&#39;d be needed as well.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Irrelevant)</author>
		<pubDate>Sun, 17 Aug 2003 20:20:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>As I recall correctly, stacks are low level, not high level. Built directly into the processor. Anywho, I feel that all of us should make our own VM <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> Why do I feel this? Because it&#39;s good practice, I mean, who doesn&#39;t want to make their own VM <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> It helps you to understand how computers work, which is a requirement when you get into deep engine design. So yea, we&#39;ll all make our own VM, find out which one is best, and if we can&#39;t decide which is best, we&#39;ll squeeze &#39;em together into a mega VM <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" /></p><p>Here&#39;s my idea for a processor design:<br />*7 32-bit registers: A, B, C, D, E, F, G<br />*2 32-bit memory pointers: H, I<br />*8000 bytes of stack</p><p>Why so many registers? When I did my first custom VM(processor emulator) I did that whole Xh, Xl, thing, which basically gives you extra registers without the CPU having to store more registers....well that idea blows, this is a VM and the number of registers doesn&#39;t matter in a VM, so I went all out and put 7 32-bit registers &gt;8)</p><p>Why so much stack? cause...I like stack.</p><p>Operations include: MOV, ADD, SUB, MUL, DIV, AND, OR(EOR), XOR, BSL(&lt;&lt;), BSR(&gt;&gt;), LJP(local jump), GJP(global jump), INC, DEC, MMV(Memory Move), IF operations, PUSH, POP, INT</p><p>I think that&#39;s it.... The whole local/global jump idea is this: local jump will jump in reference to the program&#39;s memory, global jump will jump in reference to the WHOLE memory. Now, I haven&#39;t given direct support for function calls, because I believe I shouldn&#39;t, I&#39;ll give support for it in the Assembler which will convert it to the pure machine version(PUSH registers, LJP), this&#39;ll give progranisms more control...although maybe I don&#39;t want them to have that much controll...hmm...maybe I&#39;ll give support for it...ya. The VM will be multitasking, no access violations to allow for hacking. I think that&#39;s about it, so far I&#39;ve written up the MOV portion of the OPCode document, I'm dumb!, all those registers take a long time write(81 different combinations, excluding a constant...which would make it 90).</p><p><img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Mon, 18 Aug 2003 00:37:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>As I recall correctly, stacks are low level, not high level. Built directly into the processor.</p></div></div><p>

No, the stack is in ram, and the cpu has a pointer to its current position(ESP).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LSd016)</author>
		<pubDate>Mon, 18 Aug 2003 00:54:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Still, the point stands, the feature is built into the processor, your program doesn&#39;t have to handle pushing, poping, and keeping an ESP pointer. <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p><p>But yea, I thought it was in the CPU...guess it wouldn&#39;t make too much sense in the CPU....anywho, thanks for pointing that out.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Mon, 18 Aug 2003 01:00:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Um, I was wondering, does anyone know of any good tutorials on VM Development?  I&#39;ve googled like mad and I get all sorts of JavaVM crap, that doesn&#39;t really help...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Mon, 18 Aug 2003 01:24:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Obviously you could find processors with built-in stack(like 256 bytes), in simple electronic devices. But not in PC.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LSd016)</author>
		<pubDate>Mon, 18 Aug 2003 01:27:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Carrus85, there isn&#39;t much too it. Just build your interpreter and then add stuff like multitasking to it. If you really want some help though, search for info on emulating things like the nintendo, that&#39;ll help with writing the interpreter.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Mon, 18 Aug 2003 01:29:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Besides, what the heck is the point of having the stack in the processor?  Just write a class that encapsulates the stack, or just use the STL class, and BINGO! Stacks Made Easy...</p><p>BTW... PLEASE Someone tell me where a tutorial on designing VMs is located.</p><p>EDIT<br />--------------<br />William  Hmm... That is what I thought.</p><p>Personally, I was thinking about customizing the VM commands so they are designed around the our &quot;evolution&quot; concept.  True, it would be quite high level, but that isn&#39;t an issue.</p><p>I just need to figure out how to implement logic of some form.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Mon, 18 Aug 2003 01:29:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Besides, what the heck is the point of having the stack in the processor?</p></div></div><p>

Speed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Mon, 18 Aug 2003 01:31:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">X-G said:</div><div class="quote"><p>
Speed.
</p></div></div><p>

True, but with todays processors, stacks in the processor or stacks in the CPU don&#39;t make a lot of difference.  I mean, the TI89 has a processor stack, but that only helps to a certain extent.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Mon, 18 Aug 2003 01:32:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>yea, RAM is fast, but seeing as how it&#39;s getting faster, it isn&#39;t fast enough <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />. But personally I&#39;d rather have faster CPUs than a big stack sitting in the CPU, plus the stack in a CPU wouldn&#39;t be used because for Windows and other OSs to operate in a multitasking environment, they must change the stack from program to program...the RAM system works great cause all you have to do is swap out the ESP.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Mon, 18 Aug 2003 01:34:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>And the difference between processor and CPU is?<br />AFAIK it the same thing. Or is there something i don&#39;t know about?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (psundlin)</author>
		<pubDate>Mon, 18 Aug 2003 01:38:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Heatley: That&#39;s why you don&#39;t see CPU stacks on normal x86 CPU&#39;s, but more usually in embedded systems.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Mon, 18 Aug 2003 01:38:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
But yea, I thought it was in the CPU...guess it wouldn&#39;t make too much sense in the CPU
</p></div></div><p>

yea, I figured that out...re-organized my logic and junk.</p><p>Umm, CPU is a dangerous word. Originally I think it meant processor(Centeral Processing Unit), but now adays it can also be used to describe the computer as a whole...anywho, I was just using it as a synonym for processor.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Mon, 18 Aug 2003 01:47:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, nowadays, people call the monitor the computer, and the case the CPu <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Mon, 18 Aug 2003 02:14:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s probably cause of the Mac and how some of their comps are just a monitor with a computer crammed into the base of the monitor...anywho, I&#39;m on OPCode 01BC after documenting MOV, ADD, SUB, MUL, DIV, AND, and EOR...my hand hurts.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Mon, 18 Aug 2003 02:30:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is this the longest thread in GD&amp;C ever? </p><p>I have an old idea of making a life simulation where I would let bugs (beetles) evolve and mutate. They would contain a set of genes, one determinig the sex (xx and xy) and lots of others determining outlook, behaviour, fertility etc. Compared to your mutating progranisms this might not be as exciting, but it wouldn&#39;t harm my computer.</p><p>A good prologue or trailer for Terminator 4: &quot;Back in the early 21st century, some geeks on an Internet site discussed what would happen, if a computer program were given a possibility to mutate. Little did they know what their...&quot; Feel free to continue.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Johan Halmén)</author>
		<pubDate>Mon, 18 Aug 2003 22:30:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Johan,</p><p>I actually saw someone who made a program that simulated evolution and breeding for beetles shapes over 15 years ago on the spectrum. Pretty impressive for the time. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Mon, 18 Aug 2003 23:52:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is &#39;copying and changing randomly some bytes&#39; really ai? I would say no.</p><p>In fact, true ai can never really exist into a machine. Machines always need instructions from a user(input) so the machine will always act based uppon its given knowledge.</p><p>An evolutionary type of program would be for instance:</p><p>- a program that continiously scan&#39;s its own source.<br />- a program that only starts by copying itself, but also tries out other abilities<br />- a program that &#39;learns&#39; how to code another function to clear up &#39;the mess&#39; (breeded programs that are not needed anymore)<br />- etc...</p><p>the problem remains-&gt; programs will never learn this if they don&#39;t know they CAN learn this.</p><p>I have been working almost 3 years on a Counter-Strike BOT AI. And some dude just came in smashing the entire Bot concept idea because all counter-strike bots are NOT REAL ai. They are purely 100% given instructions, acting they way they do because the programmer tells them to act like this. Even when using statistics and arrays with low/high scores using trial/error systems and such, it is still hard coded. Because-&gt; the bot never will try another aproaches but the given one by the user.</p><p>I have made a little, &#39;ai document&#39;, here it is:</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
ProblemResult(int problem)<br />{<br /> // problem attributes <br /> for (every attribute)</p><p>  return()<br />  {<br />   - most found attribute property<br />  }<br />}</p><p>Example:<br />Can i move from A to B.<br />attributes:<br />- able to move? (do i have feet, have wings?)<br />- can i go from a to b?<br />- &lt;any other attribute available you can think off&gt;</p><p>when all true, the function returns true and executes<br />the given problem/task. If not, it will not execute the<br />task/problem. Assuming that every task/problem should<br />be solved, the program should loop through every attribute<br />and try to solve this:</p><p>- able to move? (false)<br /> - do i have feet? (true)<br /> - freezetime over? (false)</p><p>if no more attributes left, the program knows the<br />problem is now &#39;freezetime&#39;. The sollution would be<br />&#39;wait for freezetime to be over&#39; so this attribute will<br />turn into TRUE.</p><p>PROBLEM: How to identify attributes or problems?</p><p>POSSIBLE SOLLUTION: Given by the coder... when the situation is unknown the coder should<br />make the problem aware of it. Danger is that the program would be to hard-coded with<br />problems and therefor the identification function is delicate and very hard to code.</p><p>------------ exploring the map ----------------</p><p>.... to be continued?
</p></div></div><p>

AI is nothing but &#39;problem solving&#39; as for every human actually. A simple example would be &#39;pick up a glass&#39;. For us, we see the glass, reach, grab, take it and perhaps drink. For an AI its different, whats a glass? (AI needs user input, it is not able to &#39;learn&#39; that itself), how to reach? do i have instruments for that? (arms? hand? , etc) when reached, what to do? grab? whats that? etc...</p><p>if the user will insert the commands for the computer:</p><p>function: grab()<br />{<br />use arm to reach, if not reachable, use legs to move closer<br />grab object with hand<br />move arm back and hold object in front of body<br />}</p><p>... AI is a tough thing, gets ya dizzy (certainly at this time. :S)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Stefan Hendriks)</author>
		<pubDate>Tue, 19 Aug 2003 02:51:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p> In fact, true ai can never really exist into a machine. Machines always need instructions from a user(input) so the machine will always act based uppon its given knowledge.</p></div></div><p>

I disagree. I know we don&#39;t have the knowledge to create a real AI, but there is also so much we don&#39;t know about this whole idea. We don&#39;t even fully understand how our brains work.<br />I believe mankind will create a real AI in the future.<br />And i don&#39;t think that there will be any problems with robots walking around and killing all of us. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /><br />If we can make a machine to think, we can also force it to test its actions to some rules. Like the robot laws by Asimov. Or some better ones if needed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (psundlin)</author>
		<pubDate>Tue, 19 Aug 2003 03:02:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Umm... perhaps you should substitute &quot;AI&quot; with just plain &quot;I&quot;? What we have is exactly that: artifical intelligence. This is a simulated behavior, however gotten. If you think we can&#39;t truly teach computers to learn, then you are right, but only because you&#39;re being stubborn. Be a creationist: God put humans on this Earth, already we had the knowledge to learn and breed and change. Why not the same for computer programs?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Tue, 19 Aug 2003 03:26:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Acording to my crazy logical theories:</p><p>There are currently two levels of learning known. The first is what I call brute force learning. This is what the Progranisms mimic. They try random approaches to &quot;life&quot; finding the best ones. This is just like when you hack a password &quot;brute force&quot; you try EVERY combination until one works. Now, this is not what you would call intelegent, but it is learning.</p><p>The second level is what we call intelegence. This is where, instead of randomly trying things, the entity trying to learn with use past experiences to influcence the &quot;randomness&quot;. It is still random in a sense, but it reorginizes what random ideas it picks first.</p><p>I&#39;m not sure whether the second level is possible or not in machines, since machines, like was basically said, are static, they follow only instructions, the instructions may change, but they are still restricted.</p><p>There is a way to find out if it is possible though, and I think it is through the first level. Maybe the Progranisms can evolve to the second level? I&#39;m not sure. I have way too many theological questions that need answers before I can decide if this is truely possible. It seems logical, I mean we are all made of the first level of learning anyway(cells), so it would make sense that it would be possible, but we are still limited in knowledge, we don&#39;t know all that goes into &quot;life&quot; and thinking...so...whatever.</p><p>Let&#39;s leave it at that, PLEASE, cause this is a flame war waiting to go off, so let&#39;s be civil, please.</p><p>Oh, and Johan, your idea is known as Genetic Algorithims I think...not sure, but I think. </p><p>BTW, [url <a href="http://alifegames.sourceforge.net/">http://alifegames.sourceforge.net/</a>] Check that out! Cool stuff, genetic algorithims. The first game kinda blows, cause it is poorly designed you can&#39;t turn(eeeee), but it&#39;s a nice idea.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Tue, 19 Aug 2003 05:17:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have to agree with William on this one.  Intelligence in life, according to Darwins theory of evolotion, was not just initialialy intelligent... In essence, early lifeforms WERE following just a predefined pattern.  Find Food, Consume, Divide, and Repeat.  This, in essence, is what William is refering to as &quot;Brute Force&quot; Intelligence.  Personally, I prefer to call it &quot;Psuedo-Intelligence,&quot; just so I can use the word &quot;Psuedo&quot; <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />.  But anyway.  Following this pattern, however, the programisms, in theory, will evolve out of this cycle, just because of the &quot;survival of the fittest&quot; theory.</p><p>When the programisms start &quot;learning&quot; to avoid hazards... Such as a virus scanner, process killer implemented by the VM, or another programism... Then they start developing rudementary intellegence.</p><p>True, the chances of developing human-level intelligence are slim to none to nonexistant, but it is still an idea.</p><p>Just think of all the processing power it would take to generate such an AI via programisms... <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Tue, 19 Aug 2003 06:36:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><b>Gets the urge to go theological crazy</b> &quot;No William, you can&#39;t start the war&quot; &quot;Fine... <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /> But if we start a war just think how big this thread will get then &gt;8)&quot; &quot;No, wars are bad.&quot; &quot; <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /> &quot;</p><p>Ok, I&#39;ve consulted myself and have decided to not go &quot;Theological Crazy&quot;.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Tue, 19 Aug 2003 06:47:48 +0000</pubDate>
	</item>
</rss>
