aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bibliography.bib65
-rw-r--r--software/chapter.tex24
2 files changed, 67 insertions, 22 deletions
diff --git a/bibliography.bib b/bibliography.bib
index 2ddd43a..9e5921c 100644
--- a/bibliography.bib
+++ b/bibliography.bib
@@ -107,6 +107,19 @@
month = {feb},
}
+@article{BarnesNick2010a,
+ author = {Nick Barnes},
+ title = {Publish your computer code: it is good enough},
+ journal = {Nature},
+ volume = 467,
+ number = 7317,
+ pages = {753--753},
+ year = 2010,
+ doi = {10.1038/467753a},
+ month = {oct},
+ publisher = {Springer Nature},
+}
+
@article{BesemannDanielM2004a,
author = {Besemann, Daniel M. and Meyer, Kent A. and Wright, John C.},
title = {{Spectroscopic Characteristics of Triply Vibrationally Enhanced Four-Wave Mixing
@@ -585,6 +598,12 @@ year = {1998}
month = {may},
}
+@misc{FITS,
+ note = {Accessed: 2018-03-27},
+ title = {FITS: Flexable image transport},
+ url = {https://fits.gsfc.nasa.gov/},
+}
+
@article{FangHui2014a,
author = {H. Fang and C. Battaglia and C. Carraro and S. Nemsak and B.
Ozdol and J. S. Kang and H. A. Bechtel and S. B. Desai and F.
@@ -624,6 +643,17 @@ year = {1998}
month = {feb},
}
+@inproceedings{FolkMike2011a,
+ author = {Mike Folk and Gerd Heber and Quincey Koziol and Elena Pourmal and Dana Robinson},
+ title = {An overview of the {HDF}5 technology suite and its applications},
+ booktitle = {Proceedings of the {EDBT}/{ICDT} 2011 Workshop on Array Databases - {AD}
+ {\textquotesingle}11},
+ year = 2011,
+ doi = {10.1145/1966895.1966900},
+ publisher = {{ACM} Press},
+}
+
+
@article{FourkasJohnT1992a,
author = {Fourkas, John T. and Trebino, Rick and Fayer, M. D.},
title = {{The grating decomposition method: A new approach for understanding
@@ -639,7 +669,6 @@ year = {1998}
month = {jul},
}
-
@article{FourkasJohnT1992b,
author = {Fourkas, John T and Trebino, Rick and Fayer, M D},
title = {{The grating decomposition method: A new approach for understanding
@@ -857,7 +886,6 @@ year = {1998}
journal = {Science},
doi = {10.1126/science.37.955.610},
}
-
@article{HyblJohnD2001a,
author = {Hybl, John D. and {Albrecht Ferro}, Allison and Jonas, David M.},
title = {{Two-dimensional Fourier transform electronic spectroscopy}},
@@ -869,6 +897,7 @@ year = {1998}
doi = {10.1063/1.1398579},
issn = 00219606,
}
+
@article{HyblJohnD2001b,
author = {Hybl, John D. and Christophe, Yannick and Jonas, David M.},
title = {{Peak shapes in femtosecond 2D correlation spectroscopy}},
@@ -1319,6 +1348,13 @@ year = {1998}
month = {dec},
}
+@book{OliphantTravisE2006a,
+ author = {Travis E Oliphant},
+ title = {A guide to NumPy},
+ year = 2006,
+ publisher = {Trelgol Publishing},
+}
+
@article{OliphantTravisE2007a,
author = {Oliphant, Travis E.},
title = {{Python for Scientific Computing}},
@@ -1650,6 +1686,13 @@ year = {1998}
month = {mar},
}
+@Misc{SciPy,
+ author = {Eric Jones and Travis Oliphant and Pearu Peterson and others},
+ note = {Accessed: 2018-04-04},
+ title = {{SciPy}: Open source scientific tools for {Python}},
+ url = {http://www.scipy.org/},
+}
+
@inproceedings{SeamanCarolynB1997a,
author = {Carolyn B. Seaman and Victor R. Basili},
title = {An empirical study of communication in code inspections},
@@ -2001,6 +2044,7 @@ year = {1998}
month = {oct},
}
+
@article{WrightJohnCurtis1997a,
author = {Wright, John C.},
title = {{New selective nonlinear vibrational spectroscopies}},
@@ -2014,7 +2058,6 @@ year = {1998}
month = {jun},
}
-
@article{WrightJohnCurtis1997b,
author = {Wright, John C. and Chen, Peter C. and Hamilton, James P. and Zilian, Arne and
Labuda, Mitchell J.},
@@ -2196,20 +2239,22 @@ year = {1998}
url = {https://git.chem.wisc.edu/},
}
+@misc{h5py,
+ note = {Accessed: 2018-04-04},
+ title = {h5py: HDF5 for Python},
+ url = {https://www.h5py.org/},
+}
+
+
@misc{h5py.Group,
note = {Accessed: 2018-03-25},
title = {h5py Groups documentation.},
url = {http://docs.h5py.org/en/latest/high/group.html#groups},
}
-@misc{FITS,
- note = {Accessed: 2018-03-27},
- title = {FITS: Flexable image transport},
- url = {https://fits.gsfc.nasa.gov/},
-}
-
@misc{pyqtgraph,
note = {Accessed: 2018-03-27},
title = {PyQtGraph: Scientific Graphics and GUI Library for Python},
url = {http://pyqtgraph.org/},
-} \ No newline at end of file
+}
+
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} %