From 5c0cd9524716e91bfce3386cf13f29236c56568e Mon Sep 17 00:00:00 2001 From: Blaise Thompson Date: Wed, 4 Apr 2018 21:38:14 -0500 Subject: 2018-04-04 21:38 --- software/chapter.tex | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'software/chapter.tex') diff --git a/software/chapter.tex b/software/chapter.tex index 36e2949..b52764b 100644 --- a/software/chapter.tex +++ b/software/chapter.tex @@ -1,5 +1,4 @@ % TODO: add StoddenVictoria2016a (Enhancing reproducibility for computational methods) -% TODO: http://pubs.acs.org/doi/10.1021/cen-09535-scitech2 \chapter{Software} @@ -146,11 +145,11 @@ parallelization paradigms'' \section{Good-enough practices} % ================================================================ In their [...] perspective, ``Good enough practices in scientific computing'', (from which this -section gets its name) [WILSON ET AL] describe a set of techniques that, in their words, ``every -researcher can and should consider adopting''. % +section gets its name) \textcite{WilsonGreg2017a} describe a set of techniques that, in their +words, ``every researcher can and should consider adopting''. % In this section, I attempt to very quickly summarize my personal perspective on what makes good software development good---with citations to literature that supports each idea. % -These practices are not, generally, ``extra work''. % +These practices are not, generally, \emph{extra work}. % In fact, many of them save massive amounts of time and effort in the long \emph{and} short run, when properly applied. % @@ -178,7 +177,7 @@ Choose a non-proprietary format if at all possible---remember: you yourself migh to the proprietary software in 10 years. % Choose plain text if you can. % Consider conforming to specifications, such as Tidy Data \cite{WickhamHadley2014a}. % -If you must, use open binary formats such as HDF5 [CITE]. % +If you must, use open binary formats such as HDF5 \cite{FolkMike2011a}. % Put as much metadata as you can into the file. % Any piece of metadata that can automatically be added by the computer is essentially free---you might as well do it. % @@ -221,7 +220,7 @@ unless your project becomes very important. % Distribute test datasets, when appropriate. % Remember, your tests can serve double duty as simple minimal examples. % -\textbf{Collaborate and share.} \cite{WilsonGreg2017a} % +\textbf{Collaborate and share.} \cite{WilsonGreg2017a, BarnesNick2010a} % If you are part of a team, consider sharing software and collaborating to create it. % Try using practices like code review and issue tracking, but don't feel obligated to use them if it doesn't make sense for your project. % @@ -229,7 +228,7 @@ When working as part of a team, making incremental changes and using version con more important. % Earlier we mentioned ``do not reinvent''. % The other side of that coin is ``if you make something, consider sharing it''. % -Put your software on an open platform, like GitHub, and mint a DOI. % +Put your software on an open platform, like GitHub \cite{GitHub}, and mint a DOI. % Cite your software, and ask other people who are using your software to do the same. % Choose a license early, and choose permissive and commercially compatible unless you 1. know what you are doing and 2. plan to enforce. % @@ -371,11 +370,11 @@ backwards compatibility. \cite{FITS, WellsDC1981a} % Fits is still popular in the astronomy community. % Today, these hierarchical data formats have gathered under the umbrella of the HDF5 format, built -and maintained by the HDF Group. [CITE] % +and maintained by the HDF Group. \cite{FolkMike2011a} % This format has all of the advantages of FITS, CDF, and NetCDF. % It can support arbitrary datatypes and is optimized to quickly process large and complex datasets. % -In Python, HDF5 is supported primarily through the h5py package. [CITE] % +In Python, HDF5 is supported primarily through the h5py package. \cite{h5py} % \section{Scientific Python} % -------------------------------------------------------------------- @@ -384,7 +383,8 @@ SciPy is a collection of ``open-source software for mathematics, science, and eg SciPy was an absolute essential component of this dissertation and the work it describes. % There are packages under the SciPy umbrella. % NumPy is a very powerful and fast package for working with multidimensional arrays. -\cite{vanderWaltStefan2011a} % +\cite{OliphantTravisE2006a} % The SciPy library contains a vast number of scientific computing tools, including many mathematical -operations that this work depends on. [CITE] % -Matplotlib is a beautiful visualization package for 1, 2, and 3D plotting. [CITE] % +operations that this work depends on. \cite{SciPy} % +Matplotlib is a beautiful visualization package for 1, 2, and 3D plotting. +\cite{HunterJohnD2007a} % -- cgit v1.2.3