Collins Software Newsletter
January 2014
Feb 2014
Issue

LIST OF: I have added a new page to my web site that provides some common and useful data files. The files may be shown in a variety of formats cg2, csv, json, xml, <tr>, and <option> formatted text. This page permits you to copy and freely use this information for any purpose. A few of the useful tables are:

  • Html Color Names and their Hex values
  • US Zip Code centroids
  • 100 Boy / Girl Names
  • Chemical Elements
  • US Presidents
  • US State Names and abbreviations
  • World Countries
  • Many more...

Currently there are some 48 files that you might find of interest, to use in your web pages or software development efforts.

If anyone has a LIST that they wish to contribute please email them to me (any format) at c.collins@collinssoftware.com and I will post them on my site for everyone to use. Please make sure you have the copyrights and release them for public use. I will be adding more lists as time permits, so you may wish to return to this page to see what has been added.

LIST OF page


Software Logic Management: A new science for the accessibility, changeability, and scalability of software logic. As software gets more complex this new science is designed to answer the questions needed for the management and creation of new applications. Unlike the traditional method of using developer's artistic license, logic should be managed with precision. This new science ignores how logic gets implemented, and focuses on the analysis of an approach to produce a desired result.

The purpose of this science is to determine, using the scientific method, the best way to create, organize and maintain software logic. Some of the questions I have started to ask using this new science are:

  • Can we write an infinitely large application?
  • Is reusing code the correct approach?
  • Is software accumulative?
  • Can we describe logic?
  • What is the best method to access logic?
  • What is best data structure for logic?
  • Can we write perfect logic?

I created this science to describe software logic without any hindrances imposed by techno-babble, Adam language, software conventions, or specific application's use of logic.  I created two technologies to share information and logic, and to validate these technologies a scientific method was needed.  It turns out that the technical side of the creating better software is easy; it is the organization of the technology where the real work will be performed, so I created this science to organize logic.
 

Data-Driven Logic: There are many examples of data-driven logic; for instance, html and compilers. These are processes where logic is controlled by a data file created by humans. As processes get more complex there will be a greater need to perfect the science of data-driven logic. The emphasis is on building logic from a base set of commands expressed in simple language that humans can understand.

All three technologies I have built are my efforts at providing data-driven logic as a standard for software development. Common Ground 2000 for information transfer between applications, Software Robots using a data-driven interface (RobotTalk) and Software Logic Management for looking at design considerations connected to the human to machine interfaces that we build.

The emphasis here is; "What is the simplest form of machine communication that can be designed that humans can remember"?. Machines can process anything we give them as seen over the past 70 years of software development. The level of skill to design systems for humans to perform even the simplest of tasks still seems beyond our grasp.  So we change our development effort from brute-force coding to data-driven logic to produce the type of systems we all dream about.


Common Ground 2000: A common data format for all digital information.  This format contains all structures needed by every application for the storage and access both direct and sequential, and can be indexed for speed.  The format can also be used as a general transfer media between all applications.

All other data formats are missing one or more critical components needed for application-to- application transfer of information. These components are sometimes provided as documentation, and sometimes not, known as hijacking your information, or ransoming your own information back to you. 

A simple comparison is "json", a JavaScript format, which is missing the data-type and the intent. Data-type is useful for formatting, and sorting, where intent is useful to determine the purpose of the information.  So I pass you name=value, but also specify intent=patient, and format=128 characters and Last-Name-First. I have provided you and the Adam everything I think you both need to know to process the information. 

All other data formats are application specific, designed with a very specific need of their own. Common Ground 2000 (.cg2) format is designed with no limitations to its, descriptive intent, formatting or content.


WebGL Data-Drive: The WebGL API interface provided by most browsers permits access to the Graphic Processing Unit (GPU) for 3D hardware rendering.  I have started development on a data-driven interface as an example for my technology.

Using the browser supplied API required 500 lines of code to draw a simple example which required a few weeks of trial an error programming. With my data-drive interface, the same example required 4 lines and 90 seconds to develop.

Software Robots: a self-contained logic module to perform a set of actions given commands that humans can remember.

Software Robots are a data-driven interface to API and component development.  I spend 90% of my development time on learning other developer's logic. Six weeks in WegGL just to draw a cube, 8 hours to read a file, thousands upon thousands of hours spent bending someone else's logic to meet my needs. 

Software Robots permit software development to be accumulative, instantly available, and controlled with a concise language.


Do Not Reuse Code: After years of development I have finally come to realize that reusing code has no benefit.

In the best development environment I will have complete access to all code, and have the freedom to change anything at any time. The best design environment is to work on one problem at a time. In this utopian environment, there is no extra logic or code to contend with. Dividing your problem into manageable parts will reduce your development time 50 to 90%. More importantly, this will give you a far better product, for it will be easier to code and easier to test.

This is definitely not the natural instinct of developers, and the hardest part of development. It takes practice to write independence into your logic. But, the result will be the ability to visualize every part of your project, and the confidence that the product you create is what you expected and is correct.


CollinsPDF: 100% JavaScript PDF generator, if anyone is still interested in this product let me know and I can send you a copy.

The latest work has been to include multiple type-1 fonts for the different font modes of Bold, Italic and Bold Italic.


MaverickHex:  A free HEX file viewer is available for download. A windows application for viewing any size file as byte encoded hex values. 


Tiger Streets: Coming Soon, Turning US county Tiger Line files (street centerlines) into expanded Right-of-way and edge-of-payment maps. Perfect for royalty free maps that you can use for design work or as a base maps for small or large facility mapping projects.

 

Author: Clif Collins
Houston, Texas

Jan 14, 2014
http://CollinsSoftware.com

email: c2@CollinsSoftware.com