From 1e57669742728a12e16b2f503f672a6eb2d27f3c Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Thu, 30 Jul 2015 10:22:38 -0700 Subject: [PATCH] add start of using make for science presentation --- .gitignore | 9 +++ Makefile | 19 ++++++ using_make_for_science.Rnw | 132 +++++++++++++++++++++++++++++++++++++ 3 files changed, 160 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 using_make_for_science.Rnw diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..78be273 --- /dev/null +++ b/.gitignore @@ -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 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 index 0000000..d17222f --- /dev/null +++ b/using_make_for_science.Rnw @@ -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
{ + \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
{ + \oddsidemargin 0.0in + \textwidth 6.5in + \raggedbottom + \clubpenalty = 10000 + \widowpenalty = 10000 + \pagestyle{fancy} +} + +\mode{ + \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
{\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} -- 2.39.2