From 8c899a01c80fdceab395e5c11389ca8334c67864 Mon Sep 17 00:00:00 2001
From: Blaise Thompson <blaise@untzag.com>
Date: Mon, 26 Mar 2018 19:52:39 -0500
Subject: 2018-01-26 19:52

---
 processing/chapter.tex | 96 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 87 insertions(+), 9 deletions(-)

(limited to 'processing/chapter.tex')

diff --git a/processing/chapter.tex b/processing/chapter.tex
index 4f8f029..a32f170 100644
--- a/processing/chapter.tex
+++ b/processing/chapter.tex
@@ -795,7 +795,7 @@ It is also not a method of the \python{Data} class, it is a bare function.  %
 Join accepts multiple data objects and attempts to join them together.  %
 To do this, the variable and channel names must agree.  %
 
-% TODO: join example
+% TODO: join example (from Darien on slack)
 
 \section{Fitting}  % ==============================================================================
 
@@ -832,20 +832,98 @@ Can be used directly...
 Loops through...
 Returns model and outs...
 
-\section{Construction and maintenance}  % =========================================================
+\section{Construction, maintenance, and distribution}  % ==========================================
+
+While WrightTools has already been useful to the work done in the WrightGroup over the last 3
+years, the true potential of the package is in potential future uses.  %
+WrightTools is designed to be extended and continuously enhanced to serve an ever-wider set of
+users and spectroscopies.  %
+Despite it's name, WrightTools is built to be used even by those outside of the Wright Group.  %
+Currently WrightTools may be only 75\% of what a typical multidimensional spectroscopist needs, but
+if those scientists work to enhance the package with what \emph{they} need, they may also solve
+problems for others such that the usefulness of the software gradually increases.  %
+
+In order for this dream to come true, WrightTools must be constructed and maintained by
+collaborative tools such that users feel comfortable contributing to future enhancements.  %
+It has not been easy to build this software as a group of 3 to 5 contributors, and the coordination
+problems will be harder as more users and developers join.  %
+To this end, the following section discusses strategies for keeping WrightTools collaborative and
+useful.  %
+
+\subsection{Licensing}  % ------------------------------------------------------------------------
+
+In order to even talk about collaborative development, one must at least have an open source
+license.  %
+According to US copyright law, software is fully copyright protected by default.  % TODO: cite
+Those writing software must explicitly license their project in order to ensure that users have
+basic rights to copy edit and distribute code.  %
+A whole set of licenses have been written to use for this purpose.  %
+Briefly, strong copyleft licenses do not allow for software to be modified or enhancements without
+sharing those enhancements under the same licenses.  %
+These ``viral'' licenses are meant to force companies and individuals who would otherwise not open
+source to share their code.  %
+The strongest copyleft licenses do not even allow others to link against the licensed software
+without themselves being copyleft.  %
+This strategy has been moderately successful, but is becoming less popular.  % TODO: cite
+Open source licenses are less opinionated, merely granting users the right to copy, modify,
+distribute, and publish code without restriction except perhaps credit to the source.  %
+
+% TODO: link GPL, LGPL etc
+
+WrightTools is MIT licensed (otherwise called the Expat license).  %
+This license is incredibly permissive and puts as few restrictions as possible on the end users.  %
+Because the license is short, it is reproduced below.  %
 
-\subsection{Collaborative development}  % ---------------------------------------------------------
+\begin{dquote}
+  The MIT License (MIT)
 
-\subsection{Version control}  % -------------------------------------------------------------------
+  Copyright (c) 2016-2018 WrightTools Developers.
 
-\subsection{Unit tests}  % ------------------------------------------------------------------------
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction, including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in all
+  copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
+  NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+  DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\end{dquote}
+
+As an aside, since Python is an interpreted language the source code of a library \emph{must} be
+distributed for that library to work.  %
+In this way, ``closed-source Python'' is a kind of oxymoron.  %
+However many Python libraries end up being interfaces to compiled code that could in theory be
+closed-source.  %
+The Scientific Python Stack have MIT-compatible licenses, including BSD-like licenses.  %
+
+\subsection{Distribution}  % ----------------------------------------------------------------------
 
-\section{Distribution and licensing} \label{pro:sec:disbribution}  % ==============================
+How does WrightTools get onto end-users machines?  %
+Distribution...
 
-WrightTools is MIT licensed.  %
+WrightTools is distributed on PyPI and conda-forge.  %
 
-WrightTools is distributed on PyPI and conda-forge.
+WrightTools uses semantic versioning.  %
+
+% TODO: citations to WrightTools on PyPI and conda-forge
+
+\subsection{Collaborative development}  % ---------------------------------------------------------
+
+Git...
+
+\subsection{Unit tests}  % ------------------------------------------------------------------------
+
+Unit testing...
 
 \section{Future directions}  % ====================================================================
 
-Single variable decomposition.
\ No newline at end of file
+Single variable decomposition.  %
+
+Usage in next-generation simulation packages.  %
\ No newline at end of file
-- 
cgit v1.2.3

