6th May 1996.

 

In this "issue":

  • What's happening?
  • Fantasm a5 global and BSS sizes!
  • A.I.
  • General chat
    What's Happening?

    General
    Well, a lot. Firstly, thank you to all the people who have bought PowerFant in recent weeks. If you are waiting for your copy to arrive, we are currently processing orders dated up to 27th Apr. from the States - we will clear the orders by Tuesday 7th May. The delay has come about because (as you may know) I have been away during the week, and so the orders only get processed on the weekend when I come home and email them onto Rob who, in my absence, has been processing them.

    I have basically finished the networking course I was on, which gave me a very valuable insight into Novell Netware. You may be asking why, as a Mac type person, I'm interested in Netware? Well, Netware really is a superb OS, and we need secure storage, retrieval and access to all our development material. Hence next weekend we are setting up a server, with Mac clients (natch!) and remote access via modem. Netware provides the ideal kind of setting for this system as it automatically handles disk duplexing (or for that matter mirroring which is just two drives on one controller) but the big plus is you can span volumes across multiple disks. It does away with DOS's segment limitations, gives a flat 32 bit address space, runs fast on cheap hardware and most improtantly, understands Apple Talk :-).
    As you may imagine, what with four or five big projects on the go, we need effective and secure archiving and retrieval systems - we are pretty sure the new network will improve our productivity and security.

    Anyway, enough of the Novell advertisment. What you may be interested in (in response to all those of you who have filled in the questionaires when ordering Fantasm) is that along with the server, in the next few weeks/months Lightsoft will be getting it's first dedicated telephone line which will handle data, fax and voice courtesy of one of those magic black box splitter thingies .

    Development
    A lot is happening in this area at the moment. We are currently working on:

  • PowerFantasm V4.10
  • Eddie V2.00
  • Fanta_C

    PowerFantasm - Very shortly we will be "closing down" the discussion about what will and will not appear in PowerFant V4.10. We pretty well know what it will look like now, and a lot of the development is tied up with Fanta_C, specially the new project manager side of things. We fully expect V4.03 to be the last with the "spread out" controls covering menus and seperate dialog boxes. Barring a major bug in 4.03 there should be no more updates before 4.10. Indeed 4.10 is such a major update, we may have to go to V5 simply because so much of the project manager will change - for example, there will be no BCF.
    If you have bought V4.0x then v4.1 or V5 (or whatever it is) will be a free upgrade via post (you pay postage only).

    At this moment in time, we have no plans to upgrade the 68k version past 4.03. If you feel this is a "bad call", then let us know - we can only go on feedback, and currently most people seem to be buying PowerFant simply because it is future proof and will only get better as we upgrade it.

    Eddie V2 - development is going smoothly - so far, the colour sets, native code and C chroma have gone in pretty much as expected. Again, Eddie V2 will not be released as a stand alone article, but will go with PowerFant 4.1 and Fanta_C.

    Fanta_C - development is accelerating. We know (from what you tell us when you order PowerFant) that you would like a C compiler, and demand for this product is likely to be high.
    Rather than rush it to market (it is now 2 1/2 years into development), we are concerned to get it right first time. We also know that a lot of the facilities it will offer will not be needed by a lot of people. To this end, we are seriously considering two versions, viz:

    "The little version"
    This is a straight forward ANSI C compiler running under LIDE, outputting both 68k and PowerPC native code. It is doubtful you will be able to write in assembly language in this version - it is designed for high level work only.

    "The big version"
    We know a lot of people want to write in mixed C and low level, and to this end, the full package will do just that fine - you will be able to write in C, 68k and PowerPC in the same source file (obviously you need to control the processors context when dropping in to and out of assembly language). Bundled with this version will be the full PowerFantasm V5 and both the 68k and PowerPC code generators in the compiler itself. You will have the option of keeping the source code generated by the compiler for hand tuning, or for faster work, running in tokenised mode only. The version of PowerFant in this version will handle tokenised code as well as normal "human readable" source code. Indeed, this version of PowerFant will be the most powerful to date and will also be released on it's own for the same price as current vrsions of PowerFantasm. We have no intention of changing our prices (either up or down) for our assemblers.
    We expect to start preliminary testing in June with a view to releasing later in the year. The price of either version of Fanta_C has not been decided yet.

    While we're on the subject of development, we may look at converting LIDE over to Mac LINUX when the time comes. If you are interested in this then please contact us.


    Fantasm A5 Globals and BSS sizes!

    This could save you a headache! One of our development testers spent a long time figuring out just why the reported size of A5 (after the linker has run) never goes down in size?
    For example, you have the following line in a project:

    my_data:           globoff.l          1000

    When built, the linker reports a5 size as 4000 bytes. Now, if the line is changed to:

    my_data:           globoff.l          200

    You would expect the linker to report the a5 size as 800 bytes. However, it still reports 4000 bytes!

    This is all due to an ommision in the manual. Fantasm always keeps an eye on the global data size by recording it in the resource fork of the BCF. Build is currently programmed on the assumption that during development of a project, the globals size will increase, but not decrease, and so if the linker reports (to Build) that a5 (or bss size for that matter) is smaller than what was last stored by Build, Build will ignore the linkers reported size and show the last recorded size, whereas it should adjust it's stored size accordingly.
    Hopefully this report will save you the brain ache as suffered by James!


    A.I.

    Last week I wrote the following short essay, which you may find interesting?

    I should point out, that this is something I like to explore. Having discussed this with various people I have seen reactions ranging from "you're mad" through "that's immoral" to "Get a life!". Do not take the following too seriously, it is merely idea play, but I should add that the program is about 10 years old, and ongoing.

    Emotion Emulation

    Assuming human intelligence is emotion based...
    Just how are we to simulate emotions?

    What is a key emotion (KE)?
    Well, lets pick an obvious Human one - for example - boredom. For a long time I have believed that a lot of human actvity is centered around the fact that life is short, and no time is to be wasted. So rule #1 - time is not limitless.

    Now assuming we can somehow get a computer program to understand this basic fact (we can, but with important psychological implications as discussed later) we can provide some impetus for said program to actually do something.

    This I believe to be the underlying principle of all human activity, and will I believe prove to be invaluable in machine intelligence. Now if we can force this belief on the program, then we will be some way towards some kind of driving force.

    Is there a human driving force? Well there are always small driving "events", but is there always an overriding goal? Even if there isn't I believe we may well be programmed to think there should be. If not, there would be "no point to life". In most people this comes down to "getting the most out of life". In other people, they may well have worked out their own agenda - for example somebody may well decide to "travel the whole world". How they come to this conclusion is a result of previous experiences forming an overall state of mind - it is almost an "integration" of previous thoughts, experiences, conversations etc.

    Thus, because of this "life is short" realisation, we have an integrating emotion called boredom. If we are left with nothing to do, we get bored, which when a suitable trigger level is reached (which is personality based) we will take action to remedy the boredom. As the boredom level increases, we become more aware of it - that is to say its as if the boredoms priority increases and we realise sooner or later that we are becoming bored. Thus I can justify boredom as being a key emotion.

    We now come back to how we can indicate to the program that time is not limitless. Well, we can simply introduce a down counter - when zero is reached the program will terminate. If we can make the program realise that this is the case, then we can impart a sense of mortality to the program. HOWEVER, this would lead to a completely manic program - it would know when it was to die! Not good, and not a good fundamental building block. It may seem strange to be talking about a programs "death" , but as explained above, it is a considerable driving force that must be simulated as accurately as possible.

    Lets examine the biological scenario. Humans learn about death. We are not born knowing we will die. We learn about it at the right time from our parents. Usually it is not the parents that decide to tell their offspring that they are sure to die. More often than not the offspring will pick up on the notion from somewhere else and ask their parents for more information. When first encountered, the parent will normally keep the whole thing very simple, and leave it up to the child to ASK for more information as the child digests the previous data. The child will ask for more and eventually come to realise that they will die some day. This is normally reinforced by actually seeing death, either directly (relation dies) or indirectly via some communication medium with which the child can associate. Sooner or later the child will know that it is to die. Is this true of other species where intelligence may be considered as real? It could be. For example, does a Cat know a dead Cat when it sees one? Are Cats what we would class as intelligent? Personally I don't think so. They may well posses a large number of higher order functions, but most of it is preprogrammed.

    Dolphins are supposidly intelligent, but you don't see Dolphin Cities, or Dolphins creating anything that could be considered worthwhile? Maybe they do, but I don't know about it.

    But maybe animals don't exhibit any creative behaviour because they are simply too busy surviving? We have seen extremely bored monkeys in zoological gardens - do they simply lack the resources and freedom to express themselves in a constructive way? We'll never know because if they weere to be given the freedom, they would simply revert back to the survival mode of existence. A vicious circle, or design?

    So, back to imparting a sense of mortality on our program. We can emulate mortality a lot better than simply a counter. Humans know they are to die. They know how long an average human lives, and they know what's bad for them, and whats good. Thus if we can say to the program, rather than your life counter counting down, we will count up (as humans do with their years), and when you get to a certain age, which will almost certainly be above age x, you will die. Just when, we don't know. It may be crucial to emulate the aging process - one way we know we are getting old is by the physical changes that take place as time passes - this I believe does not place a huge worry on us, as it's a natural process that happens in everybody - it can almost be neglected, but I wanted to at least pay passing note to the process just in case we do need to refine anything later on.

    Of course, the other thing all mortal beings live in fear (another KE?) of is accidents. Is this crucial to the driving force? I don't think so - hence whilst we cannot remove fear, we can remove fear of accidents to a very small amount - on a scale of 1-100 it would come in at 0.001.

    Thus, in LEE, we need AGE, and I would suggest that program death comes fairly quickly for prototypes. Becaue the only way LEE can experience anything is from interaction with humans, it is very possible that the psyche of the individuals could have a dramatic effect on LEE - possibly leading to logic cascade problems (positive feedback must be very strictly controlled) at a very early age.

    LEE would not know what death is when first switched on - but would have to learn, the same way we do, or possibly via a simulation involving being switched off for a period of time. When switched on LEE would be told that his father had died (The databases would be left intact for LEE to "playback" the death of its father). It sounds "cruel" to make it a goal that forces a program to understand what death is, then tell it it is to die, and record resulting data for playback to a sibling - this is what I have received most objection to, and is, I guess, fairly understandable - indeed depressing - but it is just a mechanical simulation.

    I would suggest some kind of "high pressure" switch that will shutdown LEE without destroying the databases, that may well have taken a long time to aggregate. It could be that for meaningful results to be achieved, we could be talking about many months of running, and to simply "pull the plug" could damage any databases that have been built up, as introducing degredation into fractal algorithms can result in corrupt data fairly easily.

    Key emotions MUST be emulated as accurately as possible. They should be identified and researched. The above paras are merely my interpretation of the way boredom may work. Hopefully the way key emotions work will be very similar for all KE's, so a suitable algorithm may be realised.

    Another large factor in intelligence emulation is memory simulation, particularly long term degredation, short term cognition and sleep....


    General Chat

    Firstly, appologies for the general mal-structure of this "issue" of StuChat". I had a serious progging session last night, and haven't had a lot of sleep. On the plus side, I've finally got 2112 on CD, and borrowed some Asia CD's from a mate, which makes working easier!

    Whilst I've been away, Rob has really ploughed through the compiler, and almost caught me out on the pre-processor :-) I'll be LIDEifying it next weekend, and with a bit of luck we'll be compiling by the end of May, which would be really cool. 2 1/2 years it's taken, and now it looks as if it's finally coming together. It's actually quite exciting, in a strange sort of way. The great thing about big projects, is it's easy to split the project up into separate areas, so we can "team" it up quite easily.

    Last night I did the "colour sets" for Eddie V2 - so now we can set up the chroma coders, forground and background colours and save them as a "set" - so far I've defined about 10 sets, including some great "classics" such as "Commodore 64 (tm)", Mars, and even emulated a popular Mac Dev environment in a rather cruel way :-)

    Friday night, I was so happy at passing my networking test (the pass rate was well low, and I found the test was full of "trick" questions, some of which I fell for big time), I decided to continue my "Guiness Exploration" track. Drank about 4 cans, followed by a bottle of wine. After which I thought I'd just play about with a few ideas on the 7200. Luckily, the burgular deterant caught me out - yup, the banister on the stairs to the attic came away from the wall (as designed by some dodgy rawl-plug manufacturer) , and I was left in a semi-conscious heap at the bottom. Just as well really :-)

     

    Code on!
    Stu.

     


    Send mail to Stu



    Back to Stu's Page Top Level

    Back to Home Page