add start of using make for science presentation
authorDon Armstrong <don@donarmstrong.com>
Thu, 30 Jul 2015 17:22:38 +0000 (10:22 -0700)
committerDon Armstrong <don@donarmstrong.com>
Thu, 30 Jul 2015 17:22:38 +0000 (10:22 -0700)
.gitignore [new file with mode: 0644]
Makefile [new file with mode: 0644]
using_make_for_science.Rnw [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..78be273
--- /dev/null
@@ -0,0 +1,9 @@
+auto
+/using_make_for_science.aux
+/using_make_for_science.bcf
+/using_make_for_science.blg
+/using_make_for_science.fdb_latexmk
+/using_make_for_science.fls
+/using_make_for_science.log
+/using_make_for_science.out
+/using_make_for_science.pdf
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..1acfd01
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,19 @@
+#!/usr/bin/make -f
+
+all: using_make_for_science.pdf
+
+R ?= R
+
+%.pdf: %.svg
+       inkscape -A $@ $<
+       pdfcrop $@
+       mv $(dir $@)*-crop.pdf $@
+
+%.png: %.svg
+       inkscape -e $@ -d 300 $<
+
+%.tex: %.Rnw
+       $(R) --encoding=utf-8 -e "library('knitr'); knit('$<')"
+
+%.pdf: %.tex $(wildcard *.bib) $(wildcard *.tex)
+       latexmk -pdf -pdflatex='xelatex -interaction=nonstopmode %O %S' -bibtex -use-make $<
diff --git a/using_make_for_science.Rnw b/using_make_for_science.Rnw
new file mode 100644 (file)
index 0000000..d17222f
--- /dev/null
@@ -0,0 +1,132 @@
+\documentclass[ignorenonframetext]{beamer}
+\usepackage[Symbols,MiscellaneousSymbols]{ucharclasses}
+\usepackage{fontspec}
+% \usepackage{bidi}
+\setmainfont{FreeSerif}
+\setsansfont{FreeSans}
+\setmonofont{FreeMono}
+
+\usepackage{array}
+\usepackage{fancyref}
+\usepackage{booktabs}
+\usepackage{threeparttable}
+\usepackage[backend=biber,natbib=true,hyperref=true,style=numeric-comp]{biblatex}
+\bibliography{references}
+\usepackage[nomargin,inline,draft]{fixme}
+\usepackage{texshade}
+\usepackage{tikz}
+\usepackage{nameref}
+\usepackage{zref-xr,zref-user}
+\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
+\mode<article>{
+  \usepackage[x11names,svgnames,usenames,dvipsnames]{xcolor}
+  \usepackage[noxcolor]{beamerarticle}
+  \usepackage{fancyhdr}
+  \usepackage{graphicx}
+  \usepackage[bf]{caption}
+  \usepackage{rotating}
+  \usepackage{setspace}
+  \usepackage{acronym}
+  \usepackage{dcolumn}
+  \usepackage{adjustbox}
+  \usepackage{longtable}
+  \usepackage{geometry}
+  \usepackage{pdflscape}
+  \usepackage[hyperfigures,bookmarks,colorlinks]{hyperref}
+}
+\mode<article>{
+  \oddsidemargin 0.0in 
+  \textwidth 6.5in
+  \raggedbottom
+  \clubpenalty = 10000
+  \widowpenalty = 10000
+  \pagestyle{fancy}
+}
+
+\mode<presentation>{ 
+  \usetheme{CambridgeUS}
+  \usecolortheme{beaver}
+  \setbeamercovered{transparent}  
+  \logo{\begin{tikzpicture}% Pale figure
+      {\node[opacity=0.3] {%\includegraphics[width=2cm]{LOGO}%
+        };}%
+    \end{tikzpicture}}
+}
+
+\title{Using make for science}
+
+\author{Don Armstrong}
+\date{\today}
+\subject{make for science}
+\begin{document}
+
+\frame[plain]{\titlepage}
+
+\mode<article>{\maketitle}
+
+\section{What make was made for}
+\begin{frame}{What was make originally made to do?}
+  \begin{itemize}
+  \item Compiling and installing software from source
+  \item Replacement of operating system specific compilation and
+    installation shell scripts
+  \item Re-compile when dependencies of the software were modified
+  \end{itemize}
+\end{frame}
+
+\subsection{Brief history of makes}
+
+\begin{frame}{Brief history of make-alikes}
+  \begin{itemize}
+  \item
+    \href{http://pubs.opengroup.org/onlinepubs/009695399/utilities/make.html}{POSIX
+      Make} (standardization of basic features of make)
+  \item \href{http://www.gnu.org/software/make/manual/}{GNU Make}
+    (standard make on Linux and OS X)
+  \item \href{https://www.freebsd.org/cgi/man.cgi?query=make(1)}{BSD
+      Make} (pmake or bmake)
+  \item
+    \href{https://msdn.microsoft.com/en-us/library/dd9y37ha.aspx}{nmake}
+    (Part of visual studio)
+  \item \href{http://plan9.bell-labs.com/sys/doc/mk.html}{Mk} (Plan 9
+    replacement of make)
+  \end{itemize}
+\end{frame}
+
+\subsection{Other solutions in this problem space}
+
+\begin{frame}{Other non-make dependency builders}
+  \begin{itemize}
+  \item Ant (popular for java software)
+  \item Cabal (popular for Haskell)
+  \item Maven (also java)
+  \item Rake (ruby build took)
+  \item Gradle (Rake DSL)
+  \item Leiningen (Clojure)
+  \item Tweaker (task definitions in any language)
+  \item
+    \href{https://en.wikipedia.org/wiki/List_of_build_automation_software}{Wikipedia
+      List of build automation software}
+  \end{itemize}
+\end{frame}
+
+\section{Introduction to Makefiles}
+
+\section{Examples}
+
+\subsection{This Presentation}
+
+\subsection{Can you dig it?}
+
+\subsection{Calling records from SRA}
+
+\section{Why not make?}
+
+\subsection{Timestamps}
+
+\subsection{Complicated Workflows}
+
+\section{Further Resources}
+
+
+\end{document}