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 --- bibliography.bib | 65 ++++++++++++++++++++++++++++++++++++++++++++-------- software/chapter.tex | 24 +++++++++---------- 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} % -- cgit v1.2.3