*** Last Update On: Nov. 3, 1996, *** rev. 1





This history may not be exciting, in fact it may be boring, in many ways an old story so many have experienced, but it strongly relates to the following section on "PROBLEMS IMPORTANT TO SOLVE".

It was mid to late 1987 when I sat down to do something on my Amiga 1000, something I thought should and would be simple to do. I saw all the parts working and I know the computer CAN do this. But I did not realize, it was what caused the inspiration of this thing that was going to be in the way most of all. What is causing the problem has also been keeping the solution from happening. What I call "self supported dependencies."

I'd had my Amiga for about a year or so and I saw all these cool little programs coming out and being made freely available. This was the early days of the Amiga and many where wanting to learn, help others learn, and do more with the Amiga. I started out with AmigaDOS 1.1 and AmigaDOS 1.2 came along somewhere here.

I knew what commands were available through the AmigaDOS cli (command line interface) and had enough of these freely available programs to see what could be done. I saw where it would be good to have a command that would look at the filename extension and run the correct program to access the file. But not being a programmer I put the idea out for a command named EXT. Someone eventually created something that would do this, though I doubt it was due my efforts because many users and programmers where seeing the need for such tools. Someone even came out with the ability to look inside a file to determine what it was and then execute the proper command or program to access the file. In time these tools were incorporated, in one way or another, in other programs and commands.

Shortly after making the EXT command request, I saw where it would be good to have a another set of commands. One to ask the user for input, and one to search a file for a pattern and execute a command line based on it's findings. Findings that would also contain the command line to execute. And these commands would work together and be named AFI and QCL for "ask for input" and "queue command line". Again, not being a programmer, I described the programs in a text file and put the word out.

In time, commands similar to AFI came out but not quite with the same functionality I described. The QCL command never really appeared though in time other programs came out having such functionality to do some facet of what I wanted to do. But with all of this I still could not do what I sat down to do, which was to simplify my use of the computer. I wanted to reduce what all I had to learn, remember and do in order to do something with all these little programs and other more extensive programs. I wanted to get all these programs to work together to accomplish something, without having to remember all the details of each program. I realized I was learning how to do things but in time I would forget enough to have to learn all over again. Hunting down documentation was no easy task, no matter how organized I tried to be.

From here I went in two direction. One of searching for the programs or tools that would allow me to do what I wanted. And in putting more thought into what the functionality should be, realizing the more versatile the better. It was early 1988 when I identified, documented and dated the small set of nine commands and the objective of each in some detail. My search wasn't limited to just Amiga related things. I went on BBS's and Usenet and tried to narrow my search down some, as to where I might find such tools, and doing this I found the artificial intelligence conferences. It wasn't that I wanted to do A.I. but this field seemed to be the best place to get direction from.

I tried to communicate what I was looking for, but in short time found this was not the way to go. It didn't seem to matter who I tried to communicate with, about what I was looking for and trying to do, what I always got in response was misunderstanding. The responses ranged from "you cannot do this" to being directed to such programs that might do what I wanted. Overall, what I came to realize was the mindset of those responding, they were relating to their knowledge and interest in thinking of what I was trying to communicate. I too, in my search for programs or tools found many things that at first look seemed to have the answer, but on closer inspection didn't, much like my first look at AmigaDOS and utility programs. I looked at alot of things, not just programs for the Amiga, but programs for Unix and Dos, as well as different OS's and programming languages. Yet, I had seen enough in the beginning to know this can be done and is not so difficult, complicated or impossible as so many perceived it to be in their interpretation. Actually, I saw facets all over the place of what I wanted to do. And this brought me understanding as to why I was having a difficult time with communication. I could communicate the facets and combination of facets and others would understand but I couldn't get anyone to understand the configuration and the why behind it. I couldn't get anyone to see the whole thing. It was not uncommon for another to make a conclusion about me and what I was wanting to do, like "your a prolog user", only to have to tell them they are mistaken but that I understand why.

In my search and communication efforts, I tried to inspire the mindset of others to evolve in the direction of seeing what I saw and wanted to do. I did this through the A.I. conference on one of the networks. I wasn't communicating everything but starting out with simple concepts and then building on them. Again, this seemed to lead into the same problem. Though I had some real good conversations and it seemed I was making progress, there was a point where things just slowed to a stop. Near this stop I was told I was presenting concepts that were of current A.I. research. I wasn't in school nor working in a field even remotely related to the field of A.I., but I was pulled into learning alot about the general field of A.I., due my search. Perhaps I was pulled in a little to much. But I didn't do this for very long at all, maybe a year and only in my spare time.

I began teaching myself the C programming language and eventually went back to school to better learn C. I had been mislead for about eight months in my efforts to enroll due the colleges course catalog. It listed courses offered at the college next door but wasn't very clear about this. At the right college I had to talk to quite a few people to by-pass many course requirement having nothing to do with learning C. Eventually, I got the signature of a teacher who taught C and although I did agree to take a few intro to programming classes, I didn't have to learn COBAL or PASCAL. I bought a used XT and while working full-time, in a field no way connected to programming or computers, went to school. I made the deans list a few times, completing advanced C with an overall GPA of 4.0.

Well the Amiga is a bit different, it's multi-tasking and I learned C on an XT. Realizing, if I worked in the field of programming, I would gain the experience and environment habits to easily do this thing. I tried to get a job programming but a recession caused thing to be slow, so employers had their choice pick and I didn't have a degree.

There were other things I did in effort to create this simple tools set, but it had to be done in my spare time, which was not enough. Getting married and having physically and mentally draining employment. Increasing headaches due a car accident from years before and doctors wasting my time and money to not be able to tell me what a simple chiropractic xray showed (A pinched nerve I still have to deal with). Changing type of work and a few other things of major distraction, etc.. And when I did find time I also found frustration for one reason or another.

I obtained the source code to csh (An Amiga based shell program) and figured I could bust it up to put together a working prototype. But in trying to follow the source code I would have to dig through the rom kernel manuals and other books, and what a nightmare that is. And if this wasn't enough I either didn't have the right compiler or compiler version. At one point I had the right compiler, Lattice C v5.10b, but the source code was hard to follow and the rom kernel manuals certainly didn't help. In time the source was redone and reformatted to be much easier to follow, but now I no longer had the right version of the compiler and I still needed to figure out what was happening in the parser section of the code. I couldn't get through the rom kernel manuals without so much frustration that I simply couldn't keep focus.

I obtained the Minix package for the XT, and after about a month or two I finally got this installed. What a difficult process that was, having to do the trial and error process to pin down and generally lie to the XT to get Minix installed. And then to learn enough about Minix to write a few simple programs. Only problem was, I wanted to do this on the Amiga where all these other programs existed as well as AREXX.

At one point I began to write a program for the PC that would be useful in the field of work I was in. But the library package I was using was being extended to include much that would make writing this program easier and faster. So I invested in this package that was to be out in a few months. Something over a year later I finally got it and it didn't do as much as was promised, but this was coming. And if this wasn't enough I had to upgrade my compiler and compile the libraries, which took alot of time considering my XT ran at 10Mhz. Needless to say, that project came to a halt with only the expense to show for it. Eventually I received the rest of the package, after about two years from my original order date, and my compiler again needed to be upgraded and so did my computer. So the package sits on a shelf or somewhere collecting dust.

Over the years, since 1988, my focus on this tool set has come and gone many times. Earning a living, trying to increase my income, change in type of work, etc. has grabbed much of my focus. But this small set of tools continues to come to mind, strongly grabbing my attention. A degree of attention requiring much of my focused concentration. There is no one reason for the persistance of this tool set, what might trigger off my attention to it. It has been a number of different things and at different times over the years. As a result of this, I have prioritized my work in communicating this tool set to others. Over the years I have communicated to many around the world, through the nets in conferences, email, and the mail. Communicating everything from general concepts to more specific details. I cannot begin to recall all the different subjects or topics of discussion I have had with others over the years, regarding this tool set. And in this effort, there will be success.

The inspiration of this tool set came from problems I originally faced. But I didn't realize, at the time, the depth and width, the extent of the problems or how much these problems would grow. Yes, the problems exist, but as I have learned, I do not face these problems alone. I saw a simple solution to difficulties I was faced with in doing things on my computer. A solution I thought others would find as a useful tool set. Ironicly, it is these difficulties, the problems, that have been in the way of my creating and/or communicating the tool set. A simple tool set solution to the problems. Problems exposed through the twenty/twenty vision of hindsight. A solution observed from stepping back again and again to see a bigger and bigger picture, while tested against smaller and smaller pictures pieces, to see what must be.



Attention Getting Points

------ FROM ------


Power Panel - "What's Wrong with Software Development"

** In The U.S. Only **

$81 Billion = 31% of software development gets cancelled before complete

$59 Billion = 53% of software development has cost over-runs of 189%

16% success - project success and failure ratio

61% customer requested features and functions make it in

Maintenance and repair is where most of the U.S. dollars are going,
instead of new, better, easier to use software.

---- Overall ----

Problems - all-around lack of complete documentation and weak training, faulty user input and feed back - self contradictory user request, lack of project leadership between developers and users, management created problems and low quality control standards, feature creep and software size increase, advancing technology rate of change and lack of general standards, solutions around the corner but never arrive and our tools are better than theirs attitude, lack of a value chain structure for value added abilities, failure to produce a functional model before coding and constant remodeling, etc.

Solution directions - code re-use, object oriented programming, component-based programming, distributed components, better tools, better programming methodologies, leaner software, a splitting of code writer types into two catagories - architects and assemblers, better effort to establish a working vocabulary between developers and users so users can in some way lead development, etc.

---- A Few Comments from Panel Members ----

A culture needs to evolve that respect software engineers as crafts-people. Writing code is not just writing code but like the field of writing where you have technical, creative, documentary, etc., there are different types of code writing. (Authors' note: I agree with this but also realize end users are even more specialized in what they need and do. Respect for the end user needs and abilities is needed even more so. Without respect given to the end user, the software engineer will not be given respect in return.)

A fundamental change in the programming environment needs to happen that allows the tools to work together more. (Authors' note: the panel member making this comment, did not specify what tools or who the tools would be used by. It was a very general comment pointing to a fundamental programming environment change. A lead in to the concept of componet programming. But, there was no recognition given to the concept of componet software or componet applications. At least not in the sense of being outside of "plugins". Read on!)

Jokingly - one of the best ways to copy protect software is to put it in a dll, give it an obscure name and put it in the windows system directory. Because you'd never find it. (Authors' note: This does not make it any easier for the end user in keeping their system organized, clean and optimized. This attitude of constraints, though humorous, cost end users alot.)

The meaning of "intellectual property" became questioned. Did it mean you take the best ideas or something owned? (Authors' note: it was the panel supporting "best ideas" but wouldn't the correct term for this use be "intellectual value" rather than "intellectual property"? What would happen, regarding this, in a court room? The audience member whom brought this up, was a bit angry about the distortion. Her question was: Is it the developers whom are creating the problems? And what are the developers going to do about it? The responce was "that's not the problem!")

Users shouldn't develope software but know, better than the developers, what they want and need. (Authors' note: users don't have the time to write code, it's not their job or duties!!! I can cut the lawn, I know how, but if I don't have the time, I hire someone. And because I know how to better communicate what I want done, I'll get what I want and know I'll not be greatly overcharged.)

Analogy used to start off power panel: Getting the right software development tools is alot like dating. And it evolved to something about programmers not being able to get dates, while touching a nerve with a panel member. (Authors' note: Phillip needs to get a amiga. Amiga is mexican for - girl friend. Phillip, if you see this, you know you gotta laugh about it.)

(Author observation from attending this gathering - alot of good points where brought up from both the audience and members of the panel but it became clear there was no solution being brought forward to satisfy the majority. The audience saw this as it thinned out over the course, as they perceived the power panel struggling for a sales pitch. There where two on the panel not biased due their position, leaving six biased. Microsoft, Borland, Powersoft, Oracle, Software Associates, and IBM were the biased parties.)

Panel mix - Tools developers, Data Base Developers, Application Developers, Application salvagers, and software consultants.

------ AND FROM ------


Article - "Software's Chronic Crisis"

The article covers much the same ground as the above but with a focus and flavor of the magazine. The article also goes more into solution efforts with software development on large scale projects. But finding consistent solutions are still hard to come by.

Mass-produced PC products makes up less than 10% of the $92.8 billion U.S. software market.

Mary M. Shaw of Carnegie Mellon University, observes a parallel between chemical engineering evolution and software engineering evolution. However, this evolution has not made the connection between science and commercialization required to establish a consistent experimental foundation for professional software engineering.


Ok, so now that I've gotten your attention to problems important to solve, I'll add one more important factor that is not included in the above figures. The expense end users incur in the process of dealing with faulty and difficult to use software. The expense caused from loss of work effort, time and money in dealing with the results of faulty and difficult to use software. From the simple loss of a letter, due an application crash to the loss of a great deal of work from complete system crashes, and the expense of dealing with it. And lets not forget the frustration and distraction it causes end users. Been there, done that, who hasn't!?

What else has been going on in the computer industry? The computer industry has suffered a slump, companies have been and are going out of business or struggling to stay above water. And this is not specific to any manufacture, minor or major. Commodore is gone, Apple has been having a real hard time and even IBM has had to do what they said they would never do, layoff employees via under-employment. This has been going on for far to many years. Prices have been dropping and rather quickly, so much that you can find a "great deal" today only to find a much better deal in the next week or so. To assume all this is happening only in the U.S., due the U.S. economy, then your not looking far enough in depth and width. This is not just happening in the U.S.! Escom, the company who picked up the Amiga, had investors like Seimens-Nixdorf and Quelle, always showing a profit for shareholders, went bankrupt due a bad investment in a large but failed retail computer chain. If you take a good look, you may realize the base or foundation of economy is productivity. So, what non-productive expenses are being generated and where? What is this beast that is costing us so much in productivity, when we have more in knowledge and technology than any other time in our history.

Warning - the following intentionally gets off track in order to look at the incentive program of this beast, presented here but exposed for it's real value.

The Amiga is currently a computer platform without a company but VIScorp is in the process of obtaining it, if they can sort out the patents? A computer that has been owned by banks more than companies, over the last three years. The Amiga has never been said to generate a loss from it's own sales. When Commodore went out of business the value of the Amiga went up. Used system were going for much more than the price paid earlier of new Amigas. Perhaps this was the first time this has happened in the computer industry but a contradiction to falling prices elsewhere. But of note is the plans VIScorp has for the Amiga, to produce a dual product line of one being set-top boxes for internet connection and the other the desk-top systems the Amiga has always been.

The Internet, the World Wide Web, it's growing fast. Ten to fifteen years ago Usenet was considered a good resource for research. Today many consider it a junk yard that contains valuable information, if you can find it. "How to waste more time, wasting time on the web" has been a theme many recognize. Take a look at the computer section of magazine racks today and compare them to even five years ago. What you'll see is that much has vanished and been replaced with Internet and Web magazine.

So this Internet, this world wide web, is this the solution, does it contain the solution, will it contribute to or bring about the solution? Or is it just a another promise, never to be delivered, an illusion? Let's take a look. But before we do, understand everyone has an opinion, their idea of what and why things are happening the way they are. Understand there is much more than mentioned here about the details of the problems important to solve and there is no one source capable of answering all the arguments for this or that opinion.

Does the real problem come from hardware, considering hardware manufactures are having trouble, going out of business or being bought out, prices dropping etc.? No, not really, because hardware technology is evolving faster than the software supported by it.

How about software? Well we already know it's a problem, so yes but will the internet at least help solve this problem?

The internet is about communication, it has the potential to help. Through the promotion and growth of it, computer sales have at least stabilized, maybe even grown a little. (Authors' note: I don't know the status, good or bad but base this on the increase in promotion of the internet) But will this last? Will set-top boxes become common-place or is there something more to consider before this can really happen?

Where is most of the growth of the internet coming from, being generated from? Is it consumer end users or companies investing? The internet started out as communication media for research and information, grew into an end user media of communication and hobby, then recognized by business as a media for promotion to consumers and other businesses alike. So it is business that is now promoting and causing the growth of the internet and world wide web.

But where is this web leading us? Is it just an extension of the problems important to solve? Is it really going to help us solve the problems? Perhaps there is a scale of balance to consider in seeing where it is leading us?

The internet is nothing more than a media of communication, a very versatile media. The hardware technology to access it can be put into a set-top box. How it is used determines the overall value it has - productivity vs. expense. As a communication media, what happened to the value it once had for communicating research information? Although the information may still be there, where is it that any serious research may be communicated and accessed by those with genuine efforts to contribute, without having to sort through the noise? Why the theme of "how to waste more time wasting time on the internet?"

Ah, let's not get distracted from the real issue! Software! And guess what? The internet uses software. The internet, due to the way it is being used, is an extension of the problem. An extension that does not address the problem but only just appears to off-set the cost of not solving the problem. And it does this by the complex illusion of presenting facets of the solution to those only looking at selected facets. An illusion that is easy to see when you look at the sum total amount of energy, time, money and other resources being expended on it, through it and to access it vs. the amount of real productivity it is generating. And those whom are certain to profit from it are putting more into its growth.

The internet, the world wide web, is not the problem. It is the way it is being used that is the problem. And it is the software that dictates how it is used. It was not long ago that one could connect to Usenet through a BBS or other connection point, enter a command and have alot of information packed and sent to the user in just a few minutes. The user could then disconnect from the phone line and at their convenience read through and even respond to information. Then reconnect and send the responses. All this at the cost of connecting for a few minutes, a connection expense equal to no more than one tenth of what it cost today. Today this may still be available but harder and harder to find, not to mention the decreased quality vs. increased quantity of the information. Today when you connect to the world wide web, you stay online and add to the bottle-neck of everyone else staying on-line, slowing the servers down, slowing information down, slowing real productivity down.

There is alot more information available but you've got to spend the time looking for it, capturing it, sorting it. Technology is keeping up with faster and faster servers and end use equipment. But is productivity keeping up? Or more to the point, is software keeping up with the need to accomplish what was intended in the creation of the computer? To decrease the amount of time needed in being productive, enable being more productive with the same amount of time? Or is it just causing alot of money to be changing hands without real production?

Certainly the operation and use of the web is adding to the overall non-productive expense. Software development failures and over-runs increase as computer use increases..


It really is amazing how so easy it is to mislead people into the darkness. Distractions and detours, anything to keep something hidden, promises never filled and oh what a waste of time it is. Consider the opinions you have had in regards to the above, maybe the above has alot of truth to it, maybe it doesn't. Take for example how you, right now, are still being mislead. The above problems mean nothing, gives no direction, leads no-where, contains no real solutions, the answer is just not there, all the way back to "attention getting points", you can't get to the solution from here. The problem is real enough, but if you look at the source of the problem, the gotchas', you might just find what your looking for. You might just expose the beast enough to remove the damage it is causing.

It seem we have reached an impassable problem here, the constraints, the limitations reached by our view, our perspective, our language. Let's face it, there is only so much frustration and distraction people will put up with before dumping the whole thing and this may well be what has really happened in the computer industry, causing the slump. And the internet and world wide web, well unless something happens to increase general productivity on computers, it too will find a serious drop in growth, find a quick and hard limit. Perhaps it's time to look under the hood, to see how to change the constraints. Until we see things from another perspective, a simple perspective, we will remain lost, confused by the simplicity of what is communicated by perceiving what is communicated as something to complicated, to complex to understand or solve. A beast to be afraid of, but if you look at the source causing gotcha, you might just find what your looking for....



The objective is to simplify ones use of the computer by making available the tool set to do so.

The objective of the V.I.C. is so simple, so fundamental yet so versatile, it seems to be beyond the comprehension of many. Looking for the complicated is not what is needed or what the V.I.C. is about. It's about the simplicity of doing the same thing over and over but with the ability to change what is being done over and over. The simplicity of allowing the computer user, regardless of what they are doing or want to do with the computer, to create definitions of what they do. Definitions to reduce what all they need to remember and do, to do something again. The simplicity of being able to use the vocabulary they have created, to build new definitions, to build on the vocabulary using the vocabulary so they can do more in the same amount of time. The simplicity of using vocabularies created by others, both in direct use and in building their own use vocabulary.

To reach the objective of the V.I.C. requires looking at the must exist functionality, regardless of what your doing. The underlying functionality in all that one does in doing anything. The functionality that can be reduced to a small and easy to remember set of commands. The objective is not about what you do but the functionality under how you do, over and over and over, etc..

To give an example of V.I.C. use, is to risk misunderstanding, to risk assumption, to risk missing the simple underlying functionality due the complexity of the example. To give an example of this easy to miss functionality: a=1, b=2, c=+, d=acb, e=dcd and I tell the computer d, it could easily be assumed I'm doing math followed by the suggestion to just use a calculator. If I give an example of defining the syntax processes of the english langauge and building a vocabulary, it could easily be misunderstood that I'm doing natural language processing. If I give an example of defining the sequence of actions I take in starting up an application, doing something in it and exiting it, it may be assumed that all I need is a recorder. (and if your really out of touch you may assume, since I use the word recorder, that I've got a camera pointed at my monitor). Examples will not help communicate the objective but can help to identify the functionality, if many and various examples are looked at to identify what underlying functionality is consistent with all of them. The functionality that can also tie together the above examples into a single, but more complex, example.

The objective of producing the V.I.C. is to identify the underlying functionality and to make that functionality available for anyone to use, regardless of what they may use it for. After this is done then the objective continues with defining standard definitions. (i.e. definitions for easier creation of definitions - which would really be handy in creating the definitions for vocabularies already existing through the AREXX port of many Amiga programs. Or in creating definitions that tie to the computer hardware and programming languages, in creation use and reference documentation - being productively useful to programmers).

The objective is to make this functionality available from a shell or command line interface, but this does not mean it is limited to this "interface". Although the keyboard is the fastest and most versatile iconic interface, for those whom want to click on a screen icon, simply create a definition and tie it to a screen icon via iconx. And for accessing the V.I.C from within an application, there is the macros and application AREXX port.

For systems other than the Amiga, you have macros, shell and plugin abilities to make use of. For a system like the Mac, totally iconic interface, then someone needs to figure it out, perhaps a plugin, I don't know. But what I do know is this: If you build a system with constraints to versatility, then your own growth in using the system will be limited to those same constraints!


1) Mr. Bill Gates and Microsoft have intentionally created illusional constraints as to what all is possible with computers and have made a fortune from doing this. But they do not realize the damage they have caused and continue to cause. Although Mr. Gates may realize he cannot take his fortune with him when he dies, he does not realize these illusional constraints may very well prevent research from being done that helps to extend his life. Understand: constraints are needed to produce tools but when the tools are causing illusional constraints, it's time to change the constraints of the tools. Or change the tools altogether.

2) The industry of software development with "its" problems. Problems it claims to be working on solutions to, but never really delivering. The real problem here is in lack of understanding the problem, which inherently and consistently results in non-delivery. The concept of re-use, object oriented programming, component programming - at what access level to this general concept of combining parts are we, the end users and programmers, going to be denied?

3) Chemical engineering is founded on connecting what exist in physical reality with what exist in physical reality. Software engineering is founded on connecting what exist in physical reality with what comes from imagination through the concept of definitions and use of. Definitions we create or evolve from our imagination and tie to the physical reality of computers through software - to control what is positive, what is negative, and what is not used. Or in other words, and one level up in abstraction definition, 1s' and 0s'. The foundation is where imagination connects with physical reality, and is probably why it is so easy to be hidden, yet so difficult to find. The connection between software science and software commercialization has not happen, to give us a consistent experimental foundation for professional software engineering, because of failure to recognize the role conscious imagination plays. Failure to recognize there are many levels of applying conscious imagination in making use of computers. From the programmers use of machine language, directly accessing the 1s' and 0s' to combine parts, to the end users use of definitions and script processes to combine bigger parts.


There really is something to how: you cannot get there from here. But if you take a good look at the source, by "Gotcha!", you will find what your looking for. And if you don't get it by now, then your not looking under the hood to see what is there. There is more, but you must understand the objective, to get there. Hint: Place-Value Resolution Recursion.


Email: timrue@mindspring.com

Copyright © 1988, 1994, 1996 Timothy V. Rue