Apr 2019
May 2019 Issue
Collins Software's Newsletter
Jun 2019

Things we need to know about ever value:

Information needed to make informed decisions about every value:

  1. Name
  2. Type
  3. Format
  4. Selection
  5. Order sequence
  6. Dimensions
  7. Domain
  8. Location
  9. Security
  10. Structure
  11. Relationships
  12. Uses
  13. Context
  14. See
  15. See Also
  16. Possible logic
  17. Probable logic
  18. Realistic logic
  19. Impossible Logic
  20. Storage options
  21. Transfer options
  22. Source
  23. Authority
  24. Uncertainty
  25. Ownership
  26. Lifespan
  27. Accountability
  28. History
  29. Event handling
    1. math
    2. logical
    3. binary
    4. assignment
    5. retrieve
  30. Formatting options
  31. Time critical options
  32. Space critical options
  33. Overhead
  34. Relevance
  35. Accuracy
  36. Reliability
  37. Cost
  38. Impedance
  39. Existence
  40. Fault tolerance
  41. ...many others...

"I'm intelligent enough to survive happily and be compassionate. If I were too smart, I would realize all the ills of the world." -- Adam Levine

"To generalize is to be an idiot." -- William Blake

"The true genius of a Woman is her subtle flair in creating the illusion that you are the smart one" -- Josh Stern

"We cannot solve our problems with the same thinking we used when we created them." -- Albert Einstein

"Confidence is ignorance. If you're feeling cocky, it's because there's something you don't know." -- Eoin Colfer

"You canít build a reputation on what you are going to do." -- Henry Ford

"A good speech should be like a woman's skirt: long enough to cover the subject and short enough to create interest." -- Winston Churchill


Change our Thinking:
This is the hard part. We build software products based on past decisions. To build better software systems, the foundation must be changed.  For a perfect software system we must treat it as an individual, having just one design for the complete system.

I call my system "Jane". The design is as though I, as an individual get a request. What do I known about the request?  Is the request understood?  What would I do in all situations to fulfill the request?  The smarter that I am, the less instruction I need to fulfill a request. So we build smarter computer systems. Not with more logic, but by the system being designed professionally to perform its job.

Communication is the foundation of any system. Name resolution to place information into context quickly. "Elephant, Toenail, Fungus", from here the world gets much smaller.  If we know who is talking the context can be refined even further.  The language we build must be understood by all parties equally.  I cannot understand the programs that I write.  I can understand the individual statements, but that not the concept nor the purpose of the code.

Some design decisions in the past were good, however the layering of versions has diluted their original intent. The value of exiting technologies is impossible to extract except in very rare cases.  Professionally I believe it a waste of effort to use any existing technology if and when we redesign software development.

Parts to begin with:
Some of the foundation systems that needs to be redesigned to create the perfect system:

  1. Numbers
  2. Booleans
  3. Characters
  4. Words
  5. Dates
  6. Structures
  7. Keyboard
  8. CPU
  9. Fonts
  10. Network
  11. Editor
  12. Compiler
  13. Assembler
  14. Device drivers
  15. Databases
  16. Screen Management / Forms
  17. Units
  18. Math Equations
  19. Graphics

The objective of a perfect system is to provide information perfectly. Building of the system does not require massive application development. Actually the main design objective is to reduce the size of the overall Jane system, and to drastically reduce the amount of end user coding to develop new applications.

The foundation of our exiting computer system was based on the need for the calculation of math expressions. We have been, and continue to be, forced to use this paradigm for every application. We need to change the foundation to be based on knowledge. That is to have the computer system know everything that it can, about all information and be seeded with a vast array of logic to professionally handle said information.  A professional product is one that is complete.


Name Resolution:
Unlike anything else "words" define our thinking. Our thoughts start with a word; think "elephant". Once the word is given, we can then conjure up concrete and abstract thinking directed toward a desired goal.

The words we use should mean something, as such their full meaning should be available and used in the decision making process. There should be no preferential treatment of one word over another.

We had our big step forward when someone said why can't we create values and give them a name dynamically.  This only took us 60 years to come up with this idea, yet even this still have naysayers.

However name resolution is much larger in scope than just static or dynamic locations of values. It should include complete intelligent knowledge resolution as a need to know on demand concept.

Redesigning Hardware:
Our current desire for building a computer, starting in 1642 with the Blaise Pascal calculator, up to today's latest systems. Computers only perform math operations.  We as software designers force our systems into using numbers as characters, dates, and other simple units of information. All logic is implemented with rudimentary math operations.

As we know the original design of our binary numbering system fails constantly. It is unable to offer reliable solutions. Our first and last design decision when building any software is how big of a number shall I, as a programmer, allocate for this value. This decision is the curse of the industry. Why are we forced to make such a decision?

Redesign the hardware should be our first effort in building better systems. Have number without limits, Infinite dates, numbers with units, characters, words, fonts, and all the basic features needed to create software.

Finally to have a computer system that requires no documentation.

Will computers ever become self aware?
I do not know how we are self aware. I am not sure that we are.  Many of our awareness's are automated (Vision, hearing, breathing, thinking,... ).  Our subconscious, which we ignore because we are not aware of its role or existence, but it does exists and we are not aware of it. Much of our awareness is self preservation.  The computer does not have a millions of years of history of being eaten. The fear and sex awareness will never be present in computer.

We humans inject our fears and prejudices into everything, especially our children.  We can, of course, program in fear and sex into computers, it will be our own fault if we do. Will the computer become self aware? No! not without some form of natural selection and evolution. 

Author: Clif Collins

Houston, Texas
May 1, 2019

email: web4@CollinsSoftware.com