From c4ce88fc704a7fe994e677c237afb0c29ff06211 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Wed, 15 May 2013 21:05:09 -0400 Subject: [PATCH] pyafm/main.tex: Explain 'stack' and why modularization is useful --- src/pyafm/main.tex | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/pyafm/main.tex b/src/pyafm/main.tex index 964e0e7..c47f2b0 100644 --- a/src/pyafm/main.tex +++ b/src/pyafm/main.tex @@ -18,10 +18,31 @@ written in \citetalias{labview} and analysis software written in \citetalias{wavemetrics-igor}, both developed in-house. The existing software was not designed to control sample temperature or for easy extension, so I proceeded to write my own control and analysis stack -to add this capabilities. In this chapter, I will discuss the earlier -frameworks and some abortive attempts that lead me towards my current -architecture (\cref{sec:aio-frameworks,sec:pyafm:stack}). I will also -discuss some auxiliary packages I developed to support the main stack +to add this capabilities. + +For those of you thinking, ``Why is he calling this thing a stack?'', +software is rarely developed as a single monolithic program. Instead, +developers write a software as a series of modular components, with +each layer in the stack using lower level features from the layers +below it to supply higher level features to the layers above it +(\cref{fig:pyafm:stack}). New high-level programs will contain logic +for the new idea (perform velocity-clamp unfolding experiments) and +leverage pre-existing packages for all the old ideas that you need to +get the job done (open a file, Fourier transform an array, \ldots). A +well structured suite of software breaks the task at hand up into many +sub-components, with a distinct package handling each component. + +\citet{whitehead11} introduces his claim about civilization and +subconscious operations to motivate the utility of symbolism in +subconcious reasoning. By encapsulating already established ideas in +a compact form, we can focus on the crux of an issue +(\cref{fig:unfold-protein:unfolder}) without being distracted by the +peripheral boilerplate (\cref{fig:labview}). + +In this chapter, I will discuss the earlier frameworks and abortive +attempts that lead me towards my current architecture +(\cref{sec:aio-frameworks,sec:pyafm:stack}). I will also discuss some +auxiliary packages I developed to support the main stack (\cref{sec:pyafm:auxiliary}). I'll wrap up by comparing my stack with Prof.~Yang's earlier framework and summarizing lessons I've learned along the way (\cref{sec:pyafm:discussion,sec:pyafm:conclusions}). -- 2.26.2