aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bibliography.bib16
-rw-r--r--dissertation.tex32
-rw-r--r--software/chapter.tex31
3 files changed, 53 insertions, 26 deletions
diff --git a/bibliography.bib b/bibliography.bib
index 0859f66..b633eae 100644
--- a/bibliography.bib
+++ b/bibliography.bib
@@ -843,7 +843,6 @@ year = {1998}
publisher = {{AIP} Publishing},
}
-
@article{HammPeter1999a,
author = {Hamm, Peter and Lim, Manho and DeGrado, W. F. and Hochstrasser, Robin M},
title = {{The two-dimensional IR nonlinear spectroscopy of a cyclic penta-peptide in
@@ -858,6 +857,7 @@ year = {1998}
month = {mar},
}
+
@article{HammPeter2000a,
author = {Hamm, Peter and Lim, Manho and DeGrado, William F. and Hochstrasser, Robin M},
title = {{Pump/probe self heterodyned 2D spectroscopy of vibrational transitions of a
@@ -1003,6 +1003,20 @@ year = {1998}
}
@article{JoppaLucasN2013a,
+ author = {L. N. Joppa and G. McInerny and R. Harper and L. Salido and K. Takeda and K.
+ O{\textquotesingle}Hara and D. Gavaghan and S. Emmott},
+ title = {Troubling Trends in Scientific Software Use},
+ journal = {Science},
+ volume = 340,
+ number = 6134,
+ pages = {814--815},
+ year = 2013,
+ doi = {10.1126/science.1231535},
+ month = {may},
+ publisher = {American Association for the Advancement of Science ({AAAS})},
+}
+
+@article{JoppaLucasN2013a,
author = {Joppa, Lucas N. and McInerny, Greg and Harper, Richard and Salido, Lara and
Takeda, Kenji and O{\textquoteright}Hara, Kenton and Gavaghan, David and Emmott,
Stephen},
diff --git a/dissertation.tex b/dissertation.tex
index 29d1821..b2aa572 100644
--- a/dissertation.tex
+++ b/dissertation.tex
@@ -68,16 +68,16 @@ This dissertation is approved by the following members of the Final Oral Committ
\include{software/chapter}
\part{Development} \label{prt:development}
-%\include{processing/chapter}
-%\include{acquisition/chapter}
-%\include{active_correction/chapter}
-%\include{opa/chapter}
-%\include{mixed_domain/chapter}
+\include{processing/chapter}
+\include{acquisition/chapter}
+\include{active_correction/chapter}
+\include{opa/chapter}
+\include{mixed_domain/chapter}
\part{Applications} \label{prt:applications}
-%\include{PbSe/chapter}
-%\include{MX2/chapter}
-%\include{PEDOT_PSS/chapter}
+\include{PbSe/chapter}
+\include{MX2/chapter}
+\include{PEDOT_PSS/chapter}
% appendix -----------------------------------------------------------------------------------------
@@ -85,15 +85,15 @@ This dissertation is approved by the following members of the Final Oral Committ
\part{Appendix} \label{prt:appendix}
\begin{appendix}
-%\include{public/chapter}
-%\include{procedures/chapter}
-%\include{hardware/chapter}
+\include{public/chapter}
+\include{procedures/chapter}
+\include{hardware/chapter}
% TODO: consider inserting WrightTools documentation as PDF
-%\include{irf/chapter}
-%\include{quantitative_ta/chapter}
-%\include{tg/chapter}
-%\include{errata/chapter}
-%\include{colophon/chapter}
+\include{irf/chapter}
+\include{quantitative_ta/chapter}
+\include{tg/chapter}
+\include{errata/chapter}
+\include{colophon/chapter}
\end{appendix}
% post --------------------------------------------------------------------------------------------
diff --git a/software/chapter.tex b/software/chapter.tex
index 26636f1..14693ee 100644
--- a/software/chapter.tex
+++ b/software/chapter.tex
@@ -158,17 +158,30 @@ written by generation upon generation of student. %
Worse, software is sometimes abandoned or left untouched to become a crucial but arcane component
of a scientific research project. %
-\textbf{Testing.} \cite{SandersRebecca2008a, PrabhuPrakash2011a}
+\textbf{Lack of testing.} \cite{SandersRebecca2008a, PrabhuPrakash2011a, JoppaLucasN2013a}
Testing is a huge part of software development practices, but many researchers do not engage in
-sufficient testing of their software... %
-The issue of testing is also consistent with the system of peer review...
-Software is not typically peer reviewed...
+sufficient testing of their software. %
+Without testing, even small software projects can rapidly ``get out of hand''---they can become
+unsustainable and unmaintainable. %
Especially for domain-specific computational software, determining the ``correct outcome'' to test
against is often infeasible. %
-
-\textbf{Optimization.} \cite{PrabhuPrakash2011a}
-Scientists do not optimize for the common case. %
-Scientists are unaware of parallelization paradigms. %
+Software is not typically peer reviewed, so a lack of software testing is often a weak link in the
+loop of critical self assessment that science depends upon. %
+On the positive side, testing can be an easy-to-add development practice with huge rewards. %
+Well written tests can be a programmers best friend: helping her to ensure that her code has met
+all of the given requirements. %
+Well written tests allow programmers to optimize without worrying about breaking crucial components
+of their software. %
+
+\textbf{Struggles with optimization.} \cite{PrabhuPrakash2011a}
+Sometimes, a scientific application requires performant code. %
+Scientists typically struggle to write such code. %
+They may struggle with parallelization paradigms, or they may not understand what is limiting the
+speed of their software. %
+They may not have good intuitions about how long certain operations should take, or what patterns
+could be used to speed up execution. %
+Scientists typically do not use profiling tools which help them see which parts of their program
+would benefit most from optimization. %
\section{Good-enough practices} % ================================================================
@@ -274,7 +287,7 @@ Don't be afraid to be verbose, most programming environments have tab completion
not all that hard to type. %
Try to follow the recommended style for your language, but don't obsess about it. %
-\textbf{Avoid premature optimization.} \cite{WilsonGreg2017a}
+\textbf{Avoid premature optimization.} \cite{WilsonGreg2014a, WilsonGreg2017a}
Don't get pulled into the trap of trying to make things perfect the first time. %
Software design is typically a very iterative process, and for good reason. %
Write for correctness first, and if it works, consider optimization. %