Monday, August 24, 2015

Loopy Fiasco | Do No Harm | Social Responsibility | Earning an Education | Good Neighbor Day (01.15.nnnn) Proposal

Team. This morning upon awakening an old college experience occurred. It is a rather natural event that occurs in the life of many. Whether it is a divine action as some believe in historical religious accounts, the result of an overactive mind taxed with many new concepts or ideas, or the hypersensitive nature of hearing upon falling asleep or awaking, modern medicine classifies it as mundane. Those who are neurotic become scared when it occurs; however, hypnogogic and hypnopompic hallucinations do not indicate any form of psychological, psychiatric, or neurological disorder.

Loopy Fiasco

Upon waking this morning, a crowd of happy, excited voices where talking about the possibility of extremely tight loops which actionable data structures. A queue with a length that exceeds that of the CPU's pipeline might have a dequeue which results in a node action followed by an immediate enqueue of the same (dequeued) node. If the action, enqueue, and dequeue source lack any conditional branches, these would prevent any pipeline stalls in an iterative structure. This might produce a very quick loop, possibly faster than doing the same in a while(true),for(;;),or do...while(true). This might be worth benchmarking. Might not. This would produce an infinite loop, and some say infinite loops are "bad". But, they have uses in computing. Remember, one can spawn new threads with any given action. Also, forgive the grogginess; this might require at least a pair of cooperating action-able structures who request dequeues from each other after an initial operation on the start structure.

Do No Harm 

If this barrage of audible ideas this morning was reliable and this does produce a faster iterative structure (loop), please do not create any malware with it. It would be worse than a worm; it would be a venomous centipede (VC) since such a structure could mount a URL request attack that might overtax a server. This would be compounded if it asexually reproduced with any of the action nodes stored in its queue. This would definitely be a "bad" modern computing version of the 80's video game.

Social Responsibility    .....    Earning an Education

Please, be socially responsible with the information which you glean during this life's experience. One earns his education with the way in which he handles it after getting the degree. If one harm others with the knowledge that one has for any reason, he really never merited having an education since there are an abundance of other "positive" things one can do with an education.

Good Neighbor Day (01.15.nnnn) Proposal

In the spirit of "do no harm", we suggest that those who read javacaboose promote the idea of an international "Good Neighbor" day. There have been many wonderful teachers throughout history who have promoted harmony among the various groups of the human people for the ant is a people, the coney is a people, and the locust are a people. A united, peaceful society is much better that the fragmented, warring one which we currently have. We will probably perform a deliberate act of social kindness for someone in an opposing social group on 01.15.nnnn; however, in honor of all the great teachers through history, chose any day of the year which you see fit and be a Good Samaritan.

Forgive the recent tangential nature of this weblog, more Ozark and CABOOSE is coming soon. Everything which converges must rise.

Have a Peaceful Week. The CABOOSE Team.

Tuesday, August 18, 2015

Reflection versus Interfaces in CABOOSE

Team. We have been thinking and doing less hunting and pecking recently. One thought which has made itself apparent is the use of interfaces for realizing the "dynamic nature" of reflection when invoking page concern handlers in CABOOSE and the action-able data structures which we mentioned in the last few web-post. As with many design decisions in computing, trade-off exist. Using an interface requires that not only is the method signature of the behavior under a contract, but also its identifier likewise is fixed. This might be a non-issue in some implementations, but in some development environments identifier names must follow an "organization-dependent" standard. So, simply calling the method "render" or "draw" might not be acceptable in all cases. Also, a developer might decide that the identifier for the method which fills-in the page content should reflect the purpose of the content which it is drawing in the form of page markup. This would increase the readability and maintainability of the source.

Interfaces for Actionable Data-Structures

The use of interfaces in the creation of action-able data structure nodes might be worthwhile since an informal form of name standardization exists among the behaviors found in these structures. So, an ActionableNode interface with an "action" method which bundles the methods which it should invoke in the before or after events of a push, pop, peek,enqueue, dequeue, and etc. would be acceptable. This is only true if the design permits a constant set of behaviors for a node with each data structure action. If this set of behaviors is variable, then using reflection might be the best choice.

A few simple notes for this day. Since we lost our text files of the second chapter summary, we will deliver the summary of the Ozark 1.0 early draft specification which we promised weeks ago when we find time for recompiling it.

Enjoy This Week....

The CABOOSE Team

Monday, August 3, 2015

Continued Aside: Actionable Data Structures, Object Machines of Various Types, Implementation, and CABOOSE

Actionable Data Structures

As mentioned before in the last couple of post, an actionable data structure can perform zero or more specified tasks when one of the standard operations of that abstract data type (sort) occurs. Each one of these tasks is a method contained within the object node stored in the abstract data type (ADT).

Object Machines of Various Types

Computing machines are modeled using various data types. For instance, a queue of instructions might simulated a pipe-lined processor. Another popular sort for computation is the stack ADT. Stack machines are quite common and are at the heart of many programmable calculators such as the HP 11-C. They are useful in the evaluations of expressions and conversion between prefix and postfix notation. With this in mind, if one constructed and actionable object stack machine, then he could evaluate a language of object expressions based upon the available libraries of a modern object-oriented language.

Implementation

More than one approach exist for creating actionable data structures as with traditional ADTs whose physical structure might be realized with fixed length arrays or dynamic link lists. One might produce the "actionable" behavior of these sorts using reflection, aspect-orientations, or an event-driven programming model like that found in Visual Basic.

CABOOSE

How will CABOOSE use actionable data structures? This is a great question. This dynamic behavior should be available within the model data structure which provides the views which automatically render the specification (HTML, XHTML, DHTML or XML) of the browser's requested content.
We will be revising our implementation of CABOOSE in light of these thoughts on actionable data structures.

Have a Great Week. We are still working on the summaries which we promised.
Hunt... Peck...Think....Please pardon any typos.

The CABOOSE Team