diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7b01508 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.aux +*.log +*.out +*.toc +*.nav +*.snm +*.pdf +with-notes.* +auto-images/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..44287dc --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ +XKCD_FILES = $(shell bin/xkcd-filenames) + +main.pdf: main.latex $(XKCD_FILES) + pdflatex -output-directory="./" main.latex + +with-notes.pdf: with-notes.latex + pdflatex -output-directory="./" with-notes.latex + +with-notes.latex: main.latex $(XKCD_FILES) + sed 's/\%showNotes\%//' main.latex > with-notes.latex + +clean: + rm *.aux *.log *.out *.toc *.nav *.snm *.pdf + rm with-notes.latex + +auto-images/auto-xkcd-%.png: + mkdir -p auto-images + curl https://xkcd.com/$*/info.0.json 2> /dev/null | jq '.img' | sed 's/.png/_2x.png/g' | xargs curl -s -o $@ + +clean-images: + rm -rf auto-images/ + +clean-all: clean clean-images diff --git a/bin/xkcd-filenames b/bin/xkcd-filenames new file mode 100755 index 0000000..b705f39 --- /dev/null +++ b/bin/xkcd-filenames @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +grep -o '\\includegraphics.*\}' main.latex | + cut -d'{' -f2 | + cut -d'}' -f 1 | + grep '^auto-' | + awk '{print "./auto-images/" $1 ".png"}' diff --git a/main.latex b/main.latex new file mode 100644 index 0000000..54c7952 --- /dev/null +++ b/main.latex @@ -0,0 +1,87 @@ +\documentclass{beamer} + + +\usepackage{pgfpages} +%showNotes%\setbeameroption{show notes on second screen=right} +%\setbeamertemplate{note page}{\pagecolor{yellow!5}\insertnote} +\setbeamertemplate{note page}{\setlength{\parskip}{12pt}\pagecolor{yellow!5}\vfill\insertnote\vfill} +\usepackage{palatino} +\usepackage[utf8]{inputenc} + +\usetheme{default} +\beamertemplatenavigationsymbolsempty +\hypersetup{pdfpagemode=UseNone} % don't show bookmarks on initial view + +\usepackage{graphicx} +\graphicspath{ {./auto-images/} } + +%Information to be included in the title page: +\title{Git} +\author{Jonathan Hodgson (Archie)} +\date{\today} + + + +\begin{document} + +\frame{\titlepage} + +\note{% + A few people recently have asked me about Git. + + Git has become the de-facto for most situations. + + Microsoft recently moved to git for version controlling Windows and Office. +} + +\begin{frame} +\frametitle{Obligitary XKCD Comic} + \begin{center} + \includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]{auto-xkcd-1597} + \end{center} + \note{% + Git's interface can seem weird, mainly because it is. I think that understanding a bit about how Git works under the hood helps with understanding why some of the commands do what they do. + } +\end{frame} + +\begin{frame} + \frametitle{Why bother?} + + \begin{itemize} + \item Keep track of source code (or other folders and files) + \item Facilitate collaboration + \end{itemize} + + \note{% + This applies to most (if not all) version control systems. + + It's useful even if you're working on things by your self. This presentation is version controlled. + + You can use it to find out when something broke. I won't be covering it today but there is a tool called git bisect that can take a unit test (or script) to analyse when something broke using a binary search. + } + +\end{frame} + + +\begin{frame} + \frametitle{A bit of theory - Blob} + + In Git, a file is called a blob. + + + + \note{% + This bit is a bit boring but I really think it will help with grasping what git does. + + I think with a lot of tools that we use, having a deep understand of how they work means that we can use them better. + } +\end{frame} + +\begin{frame} + \frametitle{Commits} + \begin{center} + \includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]{auto-xkcd-1296} + \end{center} +\end{frame} + +\end{document}