Archive for August, 2013

Life of A Programmer — Session 4 — How can you become more skilled than your fellow employees.

August 31, 2013

PRINCIPLE 3: MAKE SMALL SELF-DOCUMENTING SOURCE FILES.

Each of your source code files should not be longer than
three or four pages.

Each source code file should have lots of descriptive
comments.

Each source code file should reference a section of
your plan.

Each variable name should be instantly identifiable.

Keep in mind that your source-code goal is to be able
to instantly relate to its design and use when you open
its file.

You might have to answer a question over the phone a year
after you complete the project.

MORE IN THE NEXT MESSAGE

The Role of the Media

August 31, 2013

Both the incompetent and the competent benefit from
media attention.

The competent leader requires community participation.
The media helps him to obtain the participants.

The incompetent needs 15 minutes of fame. The media
helps him to satisfy his greedy goals.

Unfortunately the entertainment associated with the
incompetent attracts a lot of media attention.

The competent pioneer finds new solutions to current
problems.

WHATIFWE were to provide the media attention needed
to develop hope from the new ideas of the competent
pioneers?

Development of Basic Text Write/Certification Utility Libraries

August 30, 2013

The effort associated with the development, upgrading and testing the
basic output software parts library will be documented here. If there
is anyone who desires to assist me in this development process, please
contact me by e-mail.

The affected software parts and their functional description are listed
below. The purpose of this library is to be able to write or certify
one or more text files. These parts are similar to object oriented
subroutines. The parts that have been completely tested are noted.

_BASIC_OUT_CONSTRUCT: Initializes the library for a write or
certification function.  COMPLETELY TESTED.

_BASIC_OUT_DESTROY:   Completes the operation by eliminating the
specific setup. COMPLETELY TESTED.

_BASIC_OUT_BEGIN_SETUP: Begins a setup procedure by which the files to
be processed are specified. COMPLETELY TESTED.

_BASIC_OUT_ADD_FILE: Add a file to the process list.

_BASIC_OUT_END_SETUP: Completes the setup procedure. COMPLETELY TESTED.

_BASIC_OUT_GET_WRITE_NO: Utility: Search the output file list for the
the specified file. COMPLETELY TESTED.

_BASIC_OUT_GET_READ_NO: Utility: Search the input file list for the the
specified file. COMPLETELY TESTED.

_BASIC_OUT_ALIAS_FORMAT: Utility: Check for duplicate file
specification.

_BASIC_OUT_FILES_BEGIN: Begin the processing of files. COMPLETELY
TESTED.

_BASIC_OUT_FILES_END: Ends the processing of files. COMPLETELY TESTED.

_BASIC_OUT_TEXT: Processes a text segment in a specified file.

_BASIC_OUT_CHAR: Processes a special character in a specified file.

_BASIC_OUT_END_LINE: Processes a CRLF in a specified file.

_BASIC_OUT_READ_SEGMENT: Utility — Reads a text segment or special
character.

_BASIC_OUT_BASIC_READ: Utility — Basic Read for text segment, special
character, or CRLF. COMPLETELY TESTED.

_BASIC_OUT_FILE_LINE_END: Utility — Find the next CRLF in the file.
COMPLETELY TESTED.

_BASIC_OUT_ERROR_INITIAL: Utility — Initial Error Management System
file.  COMPLETELY TESTED.

_BASIC_OUT_ERROR_RECORD: Utility — Record Error, COMPLETELY TESTED.

_BASIC_OUT_ERROR_END_FILE: Utility — Record Unexpected End of File.
COMPLETELY TESTED.

_BASIC_OUT_ERROR_READ_OK: Utility — Permission to read a line.
COMPLETELY TESTED.

_BASIC_OUT_GET_NO_ERRORS: Return the number of error entries.

TITLE: Development of Basic Text Write/Certification Utility Libraries
_BASIC_OUT_GET_ERROR_TYPE: Return the error type associated  with a
error number.

_BASIC_OUT_GET_ERROR_LINE_NO: Return the line number associated with a
error number.

_BASIC_OUT_GET_ERROR_PREP_NO: Return the preparation number associated
with a error number.

_BASIC_OUT_TEST_NO_ERRORS: Verify the number of error entries.

_BASIC_OUT_TEST_ERROR_TYPE: Verify the error type associated with a
error number.

_BASIC_OUT_TEST_ERROR_LINE_NO: Verify the line number associated with a
error number.

_BASIC_OUT_TEST_ERROR_PREP_NO: Verify the preparation number associated
with a error number.

_BASIC_OUT_WRITE_REPORT: UTILITY — Record a certification error.
COMPLETELY TESTED.

_BASIC_OUT_VERIFY_ALIAS: UTILITY — Verify Postal Alias .

THURSDAY: 2013/08/29

STATUS: The _BASIC_OUT_CONSTRUCT, _BASIC_OUT_ADD, and
LOG_BASIC_OUT_ERROR_INITIAL have been modified to enable the number
lines to be read before  testing begins to be optionally specified by
an additional __BASIC_OUT_ADD   parameter. These changes have been
tested and found to be functional.

DETAIL: Each file may need a different number of lines to be read
before testing begins.  In particular, it may be important to
discontinue the testing of a file when another is being corrected.
This feature has been tested.

RESULTS: I believe that this software parts library is now functional
and can be used in other applications.

NEXT TASK: The software parts of this library will be examined to see
whether any further tests are required to render the library usable.

Life of A Programmer — How Can You Become More Skilled Than Your Fellow employees.

August 29, 2013

PRINCIPLE 2: KEEP A WRITTEN DAILY LOG

Keep an accurate written log of your activities.

This log should contain the beginning and end time
for each activity.

This log should briefly define the activity and its
results.

Where appropriate, the log should reference particular
sections of your plan.

The “Weight of The Evidence” is always valuable in any
progress report.

You will always be able to show management your current
status at any time.

MORE IN THE NEXT MESSAGE

Monte-Carlo Test Method

August 29, 2013

A Number of years ago, I had a contract to build a hardware
control sub-system software product.

This hardware control sub-system was designed to control
legacy hardware shipped back from the Middle East.

This legacy hardware appeared to have not been well-maintained;
it needed a lot of service.

I was afraid that I might break this hardware when I tested my
hardware control sub-system software product.

I developed a Monte-Carlo Simulator/Stimulator Test System to
validate my hardware control sub-system product.

The Monte-Carlo technology is based on a pseudo-random generator.
It was originally used in the development of nuclear weapons.

The random nature of my Monte-Carlo Test System enabled me to
rapidly and thoroughly test the hardware control sub-system, both
from a user and hardware point-of-view.

The use of a Monte-Carlo Simulator/Stimulator Test System
enabled me to deliver an error-free software product.

WHATIFWE used Monte-Carlo software test methods for all software.
Would we get better products?

Life of A Programmer — Session 4 — How can you become more skilled than your fellow employees.

August 28, 2013

PRINCIPLE 1: WRITE AND EXECUTE A PLAN

In many companies, when a new major task is assigned, the
responsible software engineer will be asked to make a plan.

This plan will be presented to management and the senior
programmers for their comments and criticism.

In most cases, this plan will become obsolete and forgotten
with the first software development keystroke.

To become more valuable in the eyes of management, you must
strictly execute the plan that you have prepared.

It can be done and you will learn how to plan your tasks much
better than anyone else

MORE IN THE NEXT MESSAGE

The Experimental Process — Any One Can do It!

August 28, 2013

Many years ago, there was the HeathKit company.

It had for sale various electronics kits.

They sold amateur radio, television, instrumentation kits.

I bought my first personal computer from them.  It was a Heathkit H89.

That computer was the beginning of my personal research effort.

This computer resulted in three overseas conference publications.

I have never taken any course in software engineering or electronics.

I have learned everything through an extensive experimental effort.

Would you believe it if I told you that every person knows how
to experiment.

No! Let me show you that it is true.

As soon as a baby gains enough strength to roll over and get his
tummy off of the floor, he crawls around and gets into things.

What does he do with them?  He puts them in his mouth.

Did you ever think that a baby’s mouth is his best instrument at birth?

It has to be! Otherwise he won’t be able to eat.

You are not a little green guy from outer space.

You were once a baby. When you started to crawl, you put things
into your mouth.

Therefore, you basically know how to experiment.

I rest my case.

Life of A Programmer — Session 4 — How can you become more skilled than your fellow employees.

August 26, 2013

You were recently employed as a software developer in a major software engineering company.

You have a family that needs the financial resources that your job provides.

You need to reduce the risk of layoff and increase the probability of a raise.

Your needs are more likely to be met if you adopt the following four principles.

PRINCIPLE 1: WRITE AND EXECUTE A PLAN

PRINCIPLE 2: KEEP A WRITTEN DAILY LOG

PRINCIPLE 3: MAKE SMALL SELF-DOCUMENTING SOURCE FILES.

PRINCIPLE 4: ACCEPT NO VERBAL ORDERS

MORE IN THE NEXT MESSAGE

Prague Conference in 1987

August 26, 2013

In 1987, I presented a scientific paper at a conference
in Prague, Czechoslovakia.

At that time, Prague was a city in the territory under
control of the Soviet Union.

I have always performed my research on my own time and money.

I attended the conference on my vacation.

Needless to say, the other attendees were quite curious
about my personal research efforts.

During this time, I had an interesting conversation with
a Polish attendee while walking along the river:

POLISH ATTENDEE:  We are not special.

MY RESPONSE: Being special is defined by what you do
to be the very best in your field.

POLISH ATTENDEE:  We have no resources.

MY RESPONSE: Do you have a personal computer at your home?

POLISH ATTENDEE:  Yes.

MY RESPONSE: Probably a better one than I have.  My is
a Heathkit H89.

POLISH ATTENDEE:  The bosses will not like it.

MY RESPONSE: Usually, the bosses don’t kill the goose
that lays the golden egg right away.

At this point he understood and I was effectively
“walking on water”.

You ask: why am I sharing this little bit of history
with you.

History is a great teacher and today we need to learn
this lesson.

Open Source Software Development Tool: Upgrade Progress

August 26, 2013

MONDAY: 2013/08/26

STATUS: The manual pages associated with the _SOURCE_NAME and
_READ_TEXT of the INPUT_FILE Command Sub-Section have been updated the
new, non Front Page format.

NEXT TASK: The next task will be to update the _STATE_READ_TEXT manual
page.