NOBLE APE MAILOUT - OCTOBER 2005
TRAVEL AND ERRORS
TRAVEL AND ERRORS
I have been traveling for about a third of this month. I did take one of my development laptops with me and was able to work on the errors ApeScript produces. ApeScript - in fact all the errors displayed by the Simulation - is limited to thirty characters for display in the Brain window. Creating technically informative errors in under thirty characters is proving a challenge for ApeScript in particular.
The solution to-date has been to provide an error to probable cause decoder in the Noble Ape Simulation manual. I have adapted the Noble Ape Simulation source code to be easier to parse remove the specific error codes but the helpful expansion of these errors versus real world solutions is still quiet challenging. Part of the problem has been a progressive reduction on my part. Consider an integer that can only be in the range from 0 to 255, like brain_value for example. Previously the ApeScript error noted not only if the number was less than zero, but also if it was above 255 with different errors that acknowledged the respective range bottom or top. Now the errors note a blanket ''out of range'' which halves the error explanation but may result in some confusion.
The golden rule when in doubt, and writing ApeScript, always return to the debugger. The debugging output will display the associated values and the error if and when it occurs.
NOBLE APE 0.672
Earlier this month I released 0.672 of the Simulation including a release note on the high profile ALife-Announcement mailing list. 0.672 was as bug free as any release has been in recent memory. A good combination of new features through the biology simulation accessible through ApeScript and numerous bug fixes.
Through a combination of factors, the Simulation page was also featured on a popular linguistics weblog, see the Simulation page for more;
This linguistic review produced an addition 600+ visitors together with about 100 more from associated sites that pulled the linguist link and added their own narrative.
The new features I would like to add for 0.673 - improved performance through excessive profiling. Aside from the Mac, I don't have a profiler for the code and my Mac profiler is plagued with the legacy nature of my Mac - circa 1996, 133 Mhz.
I'm hoping to pick up a new(er) MS VC++ suite with a profiler included. The Simulation is currently compiled with VC++ 6.0 Standard Edition. I have considered gprof, but again there are problems with getting reliable Windows output. Without some decent profiling, I am sure there are some major bottlenecks in the code that can be streamlined or removed.
The other feature I would like to add (if profiling was considered a feature) is a correct life-cycle. This means introducing birth and the related engineering. I have been scribbling various potential life cycle into code diagrams. I am hoping to have some actual code by the next mailout.
HISTORICAL MONKEY MUSIC
I went through our entire CD collection over the past couple of days. In a case, burnt around the same time I started dating my wife, I found a CD anthology of the music I recorded from 1997 to 2000. I have updated the Noble Ape Music page with three additional tracks;
The Steel Traffic track was my first digital recording taken in the Shed in 1997. I used to play for hours on the piano, just tinkering away. It represents just under six minutes of this tinkering.
With the changes in the Simulation in recent months, one of the largest code introductions has been the Apple Altivec/SSE code for the brain simulation. There is a substantial delta between this new code and the code Apple releases with their CHUD Tools.
To bridge this gap, I pulled together a brief document explaining how to get the current source to behave like the Apple distributed source, together with some additional information on the current source optimizations on the Apple distributed code.
Hope all is well with you all,
Tom Barbalet, 23 October 2005.