NOBLE APE MAIL OUT - MARCH 2002
Although February was a short month, there was no shortage of Noble Ape Simulation development. The manual is taking shape all of its own, and the simulation itself has reached a level of stability that demands a number of new features. This mailout focuses on two releases over February and the work which needs to be done in March.
NOBLE APE 0.653
Noble Ape 0.653 was released on info-mac on 17 February 2002. The transition between 0.652 and 0.653 was relatively short. Part of the redevelopment of the Noble Ape Simulation comes through regular releases both locally on the site and also through public-distribution means like info-mac.
There were a few transitional changes between 0.652 and 0.653. Minor bugs with the file handling and ape's brain were ironed out. A few structural changes were made too and the version dependency of each file was removed. This cut the function count by six.
NOBLE APE 0.653b
As soon as 0.653 was released, I started noticing small bugs. The bug tracking for the Noble Ape Simulation has always been a matter of trial and error. Automated bug checking would be ideal in the future, but currently just keeping it all ticking and the various components building - reducing/optimising code etc. - is enough. Not to mention documentation...
The fixes to the various bugs took most of the week. I have limited time to work on the Noble Ape Project during the week, but a few tools proved invaluable. I have written a program which decomposes the chosen program into functions and the functions they are called by. This provides a text map of the software. Once I had identified the problem areas it was just a matter of traversing the function tree until I found the various problems. All the problems where introduced in the past two version releases. Most related to the new fringe graphics rendering.
OS Events [platform.c]
In the past the simulation component contained functions which drew the Buffer. Once these were removed there were functions in the OS Events that still wrote to the buffer. I recall a couple still remain for things like updating the view dramatically in graphics state changes (from Contour view to Vector view for example). But most (roughly twenty calls to show_cond() and staticape()) have been cut. These functions were legacy calls from the original Noble Ape Simulation code. If something didn't work, a quick call to show_cond() (which draws all the ape information to the Buffer), would solve most problems.
When I finished 0.653 I hoped it would be a holding version. According to the Noble Ape Simulation Manual, March 2002 heralds new manual documentation to replace "A Tale from Noble Ape". Noble Ape 0.653b turned out to be the holding version. This version allows me to develop the documentation whilst having a stable version of the Noble Ape Simulation that holds all its features. Noble Ape 0.653b was released on 24 February 2002.
The astute will notice a lingering bug in the time format. Quite a no-brainer, but one which was easily missed. This was spotted and is fixed in all future releases (the fix is already in the CVS).
CNET and SOURCEFORGE
"Amazing - by far one of the most interesting app i've seen. you DO have to be able to deal with abstract concepts, though..." - anonymous CNet review of Noble Ape 0.653.
Since January 1997, CNet - one of the major software resources - has linked to Noble Ape 0.3. Noble Ape 0.3, whilst historically interesting, was the first major release of the Noble Ape Simulation and... it sucked. Consequently for more than five years, CNet has harboured discontent with the Noble Ape Project. "What's the point?" "Dots on the screen!" etc. etc.
On 22 February 2002, CNet kicked in with Noble Ape 0.653 and a link to the Noble Ape Project website. The information on CNet was wrong - it said the simulation was a Mac OS X application - but there was a noticeable increase in the number of viewers to the Noble Ape website from this development. Ten viewers from the first day and then ten to twenty additional visitors to the website. Boosting the daily throughput to roughly 80+ unique visitors per day.
The Noble Ape Simulation has been listed with SourceForge since November 2001. I haven't really put the time into getting good version releases or anything more than the basic CVS listed with the SourceForge site. SourceForge and the Mac CVS software took a number of weeks to resolve. I have been spoilt with the drag and drop school of website design. The user base of SourceForge and CNet are totally different, but both compliment the Noble Ape Project.
MARCH IS DOCUMENTATION MONTH
March 2002 has been designated documentation month since the release of the current Noble Ape Simulation Manual. The Noble Ape Project documentation has improved greatly in the past five months, but the current Noble Ape Manual still lacks a lot of the detail (however poorly laid out) contained in 'A Tale from Noble Ape' - the original Noble Ape Manuals.
There are many ways to bring the documentation up to date. I like the structure of the current Noble Ape Simulation Manual. But some of the information from a Tale' needs to be transcribed and there are a number of additional points that users should be introduced to through documentation. I have started combing a Tale' for information that is needed in the current Noble Ape Simulation Manual. Breadth of explanation and basic points like 'Why use the Noble Ape Simulation?' 'Why is the Noble Ape Simulation interesting?' etc. are useful points that should be included in an introduction to the current Noble Ape Simulation manual. A lot of the metaphysics - whilst historical - does not appear relevant in the modern Noble Ape Simulation.
BUILDING NOBLE APE
The need for documentation is typified in the lack of information on compiling/building the Noble Ape Simulation. There are currently three versions of the Noble Ape Simulation;
Platform - the Vector3 line interface version
CLE and Platform support nervmake, the Noble Ape Project's make utility. For example, a GCC user wanting to build the Noble Ape Simulation would group all the source from;
And then type;
cc nervmake.c -o nm
This compile nervmake (line1), run nervmake (line2) which will group all the Noble Ape Simulation source files (into a single file called cle_nm.c). Finally it will compile cle_nm.c into nervcle (line3) and run nervcle (line4).
The original Noble Ape Simulation was developed with drag and drop project based environments developed in the late 1980s. For more than six years, I used a 1988 copyrighted 68000 compiler THINK C. I often ponder the digression of modern application development. The reversion to make utilities and command line environments seems a little surreal. But enough of the digression.
For drag and drop development;
Platform (Mac OS Classic)
I am just betaing a Carbon version of the Noble Ape Simulation. Now I have beaten the direct graphics, all I have to beat is the file system and some of the eccentricities of the menus. Slowly, but surely. When that is completed it will be a Platform version;
The structure - as shown in countless bubble graphics - is to reuse substantial sections of the simulation to give functionality. nervio - for example - defines the Noble Ape Simulation file format and is located in the core of the simulation.
NOBLE APE 0.654 - work in progress
I have experimented with various development designs for programmable ape's brains. This is part of the cognitive simulation re-development discussed in previous mail outs. I have been looking at my old Ic: First Notation Compiler from 1993-1994 for some ideas. For any who are interested, I will put a link through to the Ic Manual on this version of the mail out on the Noble Ape Project website.
Whilst the Ic syntax is not applicable, the underlying concepts are very relevant. I plan on recycling a lot of the functionality in nervio, for reading the ape's brain 'programming'.
I was hoping to release some interesting news with this mailout, but I will have to delay another month. Stay tuned for the next Noble Ape Mailout for more.
Hope all is well with you all,
Tom Barbalet, 5 March 2002.