Saturday, March 12, 2016

Refocus | CABOOSE Vision, Methods, and Goals | The Ozark-CABOOSE Book

Team. Seeing that this also doubles as a general weblog for computing ideas we had a short note on mathematics recreation. The topic discussed, the Miller-Kovarik Secondary Method, can serve as an effective approach for finding the roots and extrema of various functions. As such, it is important in many of the optimization tasks used in computing. Optimization activities and web development do not overlap often, but the approach seemed worth stating. But, we shall now refocus of CABOOSE: it's vision, method, and goals. Plus, we will provide a rough outline of the Ozark-CABOOSE text.

The Vision of CABOOSE

Providing a methodology for rapid and accurate web application development which is compatible with modern agile techniques, consistent with the "best" practices in software engineering, and adaptable so it can accommodate future software development goals.

The Methods of CABOOSE

Through the use a reuse-able pre-written controller and dynamic invocation, the CABOOSE approach accelerates development. Front-end scripters can develop a "mock-up" of the web application in a standard mark-up language: XHTML, HTML 5.0, Dynamic HTML, or etc. Upon completion of the first draft storyboard, the client can approve it or request revisions. During the iterative refinement of the storyboard's appearance, engineers can write methods which return the dynamic String content that will populate the application "mock up". These efforts can occur in parallel. Also, if need be, a third parallel stream of develop can occur. This extra stream can be responsible for structuring all of the transactions between entity classes and the web application. The most critical step in development is the integration of these streams of development.

The directory.xml file integrates each view of the application and combines the storyboard and populating method streams. Finally, if the third stream of entity class transaction development exists, that code must be interwoven in the fabric of the methods which provide dynamic content for the storyboard.

The Goals of CABOOSE

Simplifying the "common case" of web development. The UNIX Philosophy states that one should make the "common case" simple and quick. This means that 95% of one's tasks will be easy.

Extracting out most of the "web-centric" development tasks in a pre-written controller lets one create a solution using the most common features of the development language. In the case of JEE, this means more Core-JAVA instructions for string handling, database transactions, and etc.

Providing a curriculum that produces well-rounded web developers who can complete full-stack development tasks: front-end, middle-tier business-logic, and back-end. Engineers can participate in CABOOSE development if they skills in any of these three layers and develop competitive skills in the others.

The Ozark-CABOOSE Book

The tentative outline for the Ozark-CABOOSE book is as follows:

A History of JAVA Plus its Urban Legend
A History of JAVA Enterprise Edition (JEE)
A History of Ozark (Oracle's MVC 1.0 [JSR 371])
A History of CABOOSE
Goals in Software Engineering
Goals in Web Development
Fundamental Programming Approaches
Software Architecture Fundamentals
An Ozark Controller Application
An Ozark ViewEngine Application
A CABOOSE Servlet Application
An Ozark-CABOOSE Application


We thought that we would get back on the software engineering track after that last post.

Hunt. Peck. Think. Enjoy this Week of Web Development.

The CABOOSE Team.

Wednesday, March 2, 2016

Math Recreation

Team. We have a recreational mathematician on our squad who is interested in honoring an old friend and teacher. The friend was blind, but amazingly gifted. He could play the piano and had a paper route. The teacher was always encouraging and had a gift for teaching college level subjects from Seth Werner's book on Modern Algebra and Oystein Ore's book on The History of Number Theory in simple ways. The procedure is called the Miller-Kovarik Secondary Method. It is useful in resolving Diophantine Equations. It partially answers Hilbert's 10th Problem. Given a Diophantine equation such as C = 2xy + x + y, one can find its solution by first setting it so it equals zero. Then, one must embed it in a parabolic function through composition, g(x) = ( 2xy + x + y - C )^2. Then, one determines the outer bounds of the solution in the first quadrant. Next, one defines a mesh describing the surface which has a single minimum. This mesh is n x n. This means that it has much fewer points than the total surface. It is an approximation of the surface. Afra Zomorodian wrote a wonderful dissertation on describing the salient features of a shape through decimation. It is a wonderful and interesting work in topology. Basically, the next step is taking some statistical measures of the mesh points. After finding the appropriate deviation of the mesh nearest zero, one has made a step at finding the minimum. This smaller mesh is your secondary. The original mesh was the primary. The process is repeated on the surface comprising the smaller mesh with the resolution of the original mesh. Find the third deviation and repeat until the lone root exist at zero or one find a space in which one can search all the points quickly.. Miller first presented the surface embedding idea in secondary school, hence the double entendre. Being blind, he could not fully visualize the mesh. But, during his presentation, he did say that all the points are not need; he had the surface described as a Bull's Eye with the target at zero. A peer, McQuiddy played the devil by confusing him which is sad and unfortunate, otherwise we might he might have reached this result. Kovarik said that some cleverness was needed for resolving this problem. After reading Afra's thesis around 2005, a moment of cleverness occurred. I know this is hand waving, but I imagine most undergraduate computing or math students might derive this quickly. This approach works well for monotonic Diophantine equations.


Hunt. Peck. Think. Happy Coding.