Skip to content

Commit 00f1980

Browse files
authored
Rubos changes (#2)
* better vscode support * add makefile + darkmode builds * improve style config * apply pre commit hook * remove quotes * fix working dir
1 parent 40834ac commit 00f1980

22 files changed

+607
-466
lines changed

.editorconfig

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,19 @@ end_of_line = lf
1010
charset = utf-8
1111
trim_trailing_whitespace = true
1212
insert_final_newline = true
13-
max_line_length = 130
1413

15-
[*.yml]
14+
[*.{md,mf}]
15+
trim_trailing_whitespace = false
16+
17+
[*.{yml,yaml}]
18+
indent_size = 2
19+
trim_trailing_whitespace = false
20+
21+
[flake.{lock,nix}]
1622
indent_size = 2
23+
24+
[Makefile]
25+
indent_style = tab
26+
27+
[{COPYING,LICENSE,NOTICE,*.{md,mf,xmp,xml}}]
28+
indent_size = unset

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
atlassian-ide-plugin.xml
88

99
### VS-Code ###
10-
.vscode/
10+
.vscode/settings.json
1111
.VSCodeCounter/
1212

1313
### Eclipse ###

.pre-commit-config.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# See https://pre-commit.com for more information
2+
# See https://pre-commit.com/hooks.html for more hooks
3+
repos:
4+
- repo: https://github.com/pre-commit/pre-commit-hooks
5+
rev: v4.5.0
6+
hooks:
7+
- id: end-of-file-fixer
8+
- id: check-yaml
9+
# - id: check-added-large-files
10+
- repo: https://github.com/cmhughes/latexindent.pl.git
11+
rev: V3.23.3
12+
hooks:
13+
- id: latexindent
14+
args: ["--overwriteIfDifferent", "--silent", "-l=latexindent.yaml"]
15+
- repo: https://github.com/editorconfig-checker/editorconfig-checker.python
16+
rev: '2.7.3' # pick a git hash / tag to point to
17+
hooks:
18+
- id: editorconfig-checker
19+
exclude_types: [tex]
20+
alias: ec

.teamcity/settings.kts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,25 +71,29 @@ fun createBuild(buildGroup: String, buildName: String): BuildType {
7171
steps {
7272
exec {
7373
name = "Clean up old pdf"
74-
workingDir = buildGroup
75-
path = "rm"
76-
arguments = "-f $buildGroup-$buildName-RC*.pdf"
74+
path = "make"
75+
arguments = "cleanBuild"
7776
}
7877
exec {
7978
name = "Build $buildGroup/$buildName with AlgoTeX"
80-
workingDir = buildGroup
81-
path = "latexmk"
82-
arguments = "--shell-escape -synctex=1 -interaction=nonstopmode -file-line-error -lualatex $buildName.tex"
79+
path = "make"
80+
arguments = "-j FILES=$buildGroup/$buildName.tex"
8381
}
8482
exec {
8583
name = "Create final pdf"
86-
workingDir = buildGroup
84+
workingDir = "build"
8785
path = "cp"
8886
arguments = "$buildName.pdf $buildGroup-$buildName-RC%env.BUILD_NUMBER%.pdf"
8987
}
88+
exec {
89+
name = "Create final pdf (darkmode)"
90+
workingDir = "build"
91+
path = "cp"
92+
arguments = "$buildName-darkmode.pdf $buildGroup-$buildName-RC%env.BUILD_NUMBER%-darkmode.pdf"
93+
}
9094
}
9195

92-
artifactRules = "+:$buildGroup/$buildGroup-$buildName-RC%env.BUILD_NUMBER%.pdf"
96+
artifactRules = "+:./build/$buildGroup-$buildName-RC%env.BUILD_NUMBER%*.pdf"
9397
}
9498
}
9599
}

.vscode/extensions.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"recommendations": [
3+
"James-Yu.latex-workshop"
4+
]
5+
}

.vscode/settings.default.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"latex-workshop.latexindent.args": [
3+
"-c",
4+
"%DIR%/",
5+
"%TMPFILE%",
6+
"-l=%WORKSPACE_FOLDER%/latexindent.yaml",
7+
"-y=defaultIndent: '%INDENT%'"
8+
],
9+
"latex-workshop.latex.verbatimEnvs": [
10+
"verbatim",
11+
"lstlisting",
12+
"minted",
13+
"codeBlock"
14+
],
15+
"files.associations": {
16+
"*.sty": "latex-expl3",
17+
"*.cls": "latex-expl3",
18+
"*.def": "latex",
19+
"*.aux": "latex",
20+
"*.toc": "latex",
21+
"*.pygstyle": "latex",
22+
"*.pygtex": "latex"
23+
}
24+
}

Makefile

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
2+
OUT_DIR := build/
3+
TOPTARGETS := clean all
4+
FILES := $(wildcard git-days/*.tex sheet/*.tex)
5+
6+
define compile_latex_with_jobname_and_env
7+
cd $(4) && $(3) latexmk --shell-escape -synctex=1 -interaction=nonstopmode -file-line-error -lualatex -jobname=$(2) "$(1)"
8+
endef
9+
10+
define build_latex_with_jobname_and_env
11+
$(eval DIR := $(dir $(1)))
12+
$(eval FILE := $(notdir $(1)))
13+
@echo -e "\e[1;32mCompiling \"$(FILE)\" in \"$(DIR)\" with jobname \"$(2)\"$<\e[0m"
14+
@$(call compile_latex_with_jobname_and_env,$(FILE),$(2),$(3),$(DIR))
15+
@echo -e "\e[1;32mSuccessfully compiled \"$(FILE)\" in \"$(DIR)\" with jobname \"$(2)\"$<\e[0m"
16+
@mkdir -p $(OUT_DIR)
17+
@cp $(DIR)/$(2).pdf $(OUT_DIR)/
18+
endef
19+
20+
all:
21+
$(MAKE) compile
22+
23+
$(FILES:.tex=.tex.regular):
24+
$(eval FILE := $(patsubst %.tex.regular,%.tex,$@))
25+
$(call build_latex_with_jobname_and_env,$(FILE),$(notdir $(patsubst %.tex,%,$(FILE))),)
26+
27+
$(FILES:.tex=.tex.darkmode):
28+
$(eval FILE := $(patsubst %.tex.darkmode,%.tex,$@))
29+
$(call build_latex_with_jobname_and_env,$(FILE),$(notdir $(patsubst %.tex,%-darkmode,$(FILE))),DARK_MODE=1)
30+
31+
compile: $(FILES:.tex=.tex.regular) $(FILES:.tex=.tex.darkmode)
32+
@echo -e "\e[1;42mAll Done. PDFs can be found in $(OUT_DIR)\e[0m"
33+
34+
clean:
35+
@echo -e "\e[1;34mCleaning up leftover build files...$<\e[0m"
36+
@latexmk -C -f git-days
37+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/options.cfg' -exec rm -rf {} \;
38+
@find . -ignore_readdir_race -maxdepth 1 -not \( -path "*/.git/*" -prune \) -wholename '**/*.pdf' -exec rm -rf {} \;
39+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.aux' -exec rm -rf {} \;
40+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.fdb_latexmk' -exec rm -rf {} \;
41+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.fls' -exec rm -rf {} \;
42+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.len' -exec rm -rf {} \;
43+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.listing' -exec rm -rf {} \;
44+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.log' -exec rm -rf {} \;
45+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.out' -exec rm -rf {} \;
46+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.synctex.gz' -exec rm -rf {} \;
47+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.toc' -exec rm -rf {} \;
48+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.nav' -exec rm -rf {} \;
49+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.snm' -exec rm -rf {} \;
50+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.vrb' -exec rm -rf {} \;
51+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.bbl' -exec rm -rf {} \;
52+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.blg' -exec rm -rf {} \;
53+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.idx' -exec rm -rf {} \;
54+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.ilg' -exec rm -rf {} \;
55+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.ind' -exec rm -rf {} \;
56+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.pyg' -exec rm -rf {} \;
57+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.bak[0-9]*' -exec rm -rf {} \;
58+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/_minted-*' -exec rm -rf {} \;
59+
@find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/svg-inkscape' -exec rm -rf {} \;
60+
@echo -e "\e[1;44mDone cleaning up leftover build files.$<\e[0m"
61+
62+
cleanBuild:
63+
@echo -e "\e[1;34mCleaning up build directory...$<\e[0m"
64+
@rm -rf $(OUT_DIR)
65+
@echo -e "\e[1;44mDone cleaning up build directory.$<\e[0m"
66+
67+
cleanAll: clean cleanBuild

chapters/commits.tex

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ \section{Commits}\label{sec:commits}
2222
\slidehead
2323
\begin{itemize}
2424
\item Ein Commit ist ein logischer Snapshot von einer Repository
25-
\begin{itemize}
26-
\item Zeitpunkt
27-
\item Dateisystemzustand
28-
\end{itemize}
25+
\begin{itemize}
26+
\item Zeitpunkt
27+
\item Dateisystemzustand
28+
\end{itemize}
2929
\item Datei hinzugefügt, geändert, verschoben oder gelöscht
3030
\item mit Nachricht versehen
3131
\item \enquote{kryptische} Bezeichnung (Hash), z.B. \texttt{bc7f1a9e22bc7f19e22bc}\dots
32-
\begin{itemize}
33-
\item erste fünf Zeichen zur Identifizierung meist ausreichend
34-
\end{itemize}
32+
\begin{itemize}
33+
\item erste fünf Zeichen zur Identifizierung meist ausreichend
34+
\end{itemize}
3535
\end{itemize}
3636
\end{frame}
3737

@@ -122,10 +122,10 @@ \subsection{Exkurs: Hashing}\label{subsec:exkurs:-hashing}
122122
\end{tikzpicture}
123123
}
124124
\begin{align*}
125-
\mathbb{B} &:= \{0, 1\}^* \quad \text{(binäre Zahl, beliebige Länge)} \\
126-
\mathbb{B}_n &:= \{0, 1\}^n \quad \text{(binäre Zahl, Länge $n$)} \\
127-
h &: \mathbb{B} \rightarrow \mathbb{B}_n \\
128-
h(x) &= y \quad \forall x \in \mathbb{B}, \, \exists y \in \mathbb{B}_n
125+
\mathbb{B} & := \{0, 1\}^* \quad \text{(binäre Zahl, beliebige Länge)} \\
126+
\mathbb{B}_n & := \{0, 1\}^n \quad \text{(binäre Zahl, Länge $n$)} \\
127+
h & : \mathbb{B} \rightarrow \mathbb{B}_n \\
128+
h(x) & = y \quad \forall x \in \mathbb{B}, \, \exists y \in \mathbb{B}_n
129129
\end{align*}
130130
\end{frame}
131131

chapters/filesystem.tex

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,14 @@ \subsection{Was ist ein Dateisystem?}\label{subsec:was-ist-ein-dateisystem}
5555
[<+->]
5656
\item Programme, um Dateien zu verwalten
5757
\item Diese Dateien befinden sich auf einem Dateisystem
58-
\begin{itemize}
59-
\item NTFS
60-
\item exFAT
61-
\item ext4
62-
\item APFS
63-
\item ZFS
64-
\item \dots und viele mehr
65-
\end{itemize}
58+
\begin{itemize}
59+
\item NTFS
60+
\item exFAT
61+
\item ext4
62+
\item APFS
63+
\item ZFS
64+
\item \dots und viele mehr
65+
\end{itemize}
6666
\end{itemize}
6767
\end{frame}
6868

@@ -84,21 +84,21 @@ \subsection{Zusammenarbeit}\label{subsec:zusammenarbeit}
8484
\slidehead
8585
\begin{itemize}[<+->]
8686
\item Dateisysteme sind oberflächlich sehr ähnlich
87-
\begin{itemize}
88-
\item Ordner
89-
\item Dateien
90-
\end{itemize}
87+
\begin{itemize}
88+
\item Ordner
89+
\item Dateien
90+
\end{itemize}
9191
\item Es gibt auch sehr viele Unterschiede
92-
\begin{itemize}
93-
\item OS Kompatibilität
94-
\item Line-Endings
95-
\item Metadaten
96-
\end{itemize}
92+
\begin{itemize}
93+
\item OS Kompatibilität
94+
\item Line-Endings
95+
\item Metadaten
96+
\end{itemize}
9797
\item Für die Zusammenarbeit besonders wichtig:
98-
\begin{itemize}
99-
\item Wie können wir ein Dateisystem verteilen?
100-
\item Wie können wir den Zustand an einem bestimmten Zeitpunkt wiederherstellen?
101-
\end{itemize}
98+
\begin{itemize}
99+
\item Wie können wir ein Dateisystem verteilen?
100+
\item Wie können wir den Zustand an einem bestimmten Zeitpunkt wiederherstellen?
101+
\end{itemize}
102102
\end{itemize}
103103
\end{frame}
104104

@@ -144,21 +144,21 @@ \subsection{Replikation}\label{subsec:replikation}
144144
\begin{itemize}
145145
[<+->]
146146
\item Ein Fileserver agiert als zentrale Schnittstelle und \enquote{Single source of truth}
147-
\begin{itemize}
148-
\item Writes werden direkt im Globalen Zustand geschrieben und sind für alle direkt sichtbar
149-
\item Reads liefern immer den aktuellsten Zustand
150-
\end{itemize}
147+
\begin{itemize}
148+
\item Writes werden direkt im Globalen Zustand geschrieben und sind für alle direkt sichtbar
149+
\item Reads liefern immer den aktuellsten Zustand
150+
\end{itemize}
151151
\item \enquote{Single point of failure} (SPOF)
152152
\item Keine klare \enquote{history}
153-
\begin{itemize}
154-
\item Veränderungen werden nicht gruppiert
155-
\item Unmöglich\footnote{Ja, es gibt Backups - dazu kommen wir noch} auf einen alten Zustand zurückzugehen
156-
\end{itemize}
153+
\begin{itemize}
154+
\item Veränderungen werden nicht gruppiert
155+
\item Unmöglich\footnote{Ja, es gibt Backups - dazu kommen wir noch} auf einen alten Zustand zurückzugehen
156+
\end{itemize}
157157
\item Unabhängige Arbeit unmöglich!
158-
\begin{itemize}
159-
\item Wenn gerade am Code gearbeitet wird, kompiliert er meistens nicht
160-
\item Dateien werden gegenseitig überschrieben
161-
\end{itemize}
158+
\begin{itemize}
159+
\item Wenn gerade am Code gearbeitet wird, kompiliert er meistens nicht
160+
\item Dateien werden gegenseitig überschrieben
161+
\end{itemize}
162162
\end{itemize}
163163
\end{frame}
164164

@@ -237,12 +237,12 @@ \subsection{Snapshots}\label{subsec:snapshots}
237237
\begin{itemize}
238238
[<+->]
239239
\item Projektzustand nur zu bestimmten Zeitpunkten gespeichert.
240-
\begin{itemize}
241-
\item Wiederherstellen von einzelnen Veränderungen sehr schwierig
242-
\item Vergleich von Zuständen sehr schwierig
243-
\item Kein \enquote{Blame}
244-
\item Backups sind keine Versionsverwaltung!
245-
\end{itemize}
240+
\begin{itemize}
241+
\item Wiederherstellen von einzelnen Veränderungen sehr schwierig
242+
\item Vergleich von Zuständen sehr schwierig
243+
\item Kein \enquote{Blame}
244+
\item Backups sind keine Versionsverwaltung!
245+
\end{itemize}
246246
\item USB-Stick Verfahren ist noch ungeeigneter
247247
\end{itemize}
248248
\end{frame}

chapters/git.tex

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@ \subsection{Kurzer Überblick über die Historie}\label{subsec:kurzer-uberblick-
2020
\item 1991--2002 wurden Änderungen am Linux Kernel in Form von Patches herumgereicht
2121
\item Ab 2002 mit DVCS Bitkeeper (\enquote{Distributed Version Control System})
2222
\item 2005 ging die Beziehung \enquote{in die Brüche}
23-
\begin{itemize}
24-
\item Die zuvor ausgesprochene Erlaubnis, BitKeeper kostenlos zu verwenden, wurde widerrufen
25-
\end{itemize}
23+
\begin{itemize}
24+
\item Die zuvor ausgesprochene Erlaubnis, BitKeeper kostenlos zu verwenden, wurde widerrufen
25+
\end{itemize}
2626
\item April 2005 - Linus Torvalds fängt an, Git zu entwickeln.\ Die Ziele waren unter Anderem:
27-
\begin{itemize}
28-
\item Geschwindigkeit
29-
\item Einfaches Design
30-
\item Gute Unterstützung von nicht-linearer Entwicklung (tausende parallele Entwicklungszweige)
31-
\item Vollständig dezentrale Struktur
32-
\item Fähigkeit, große Projekte, wie den Linux Kernel, effektiv zu verwalten (Geschwindigkeit und Datenumfang)
33-
\end{itemize}
27+
\begin{itemize}
28+
\item Geschwindigkeit
29+
\item Einfaches Design
30+
\item Gute Unterstützung von nicht-linearer Entwicklung (tausende parallele Entwicklungszweige)
31+
\item Vollständig dezentrale Struktur
32+
\item Fähigkeit, große Projekte, wie den Linux Kernel, effektiv zu verwalten (Geschwindigkeit und Datenumfang)
33+
\end{itemize}
3434
\end{itemize}
3535
\renewcommand{\thefootnote}{\relax}\footnotetext{https://git-scm.com/book/de/v2/Erste-Schritte-Kurzer-\%C3\%9Cberblick-\%C3\%BCber-die-Historie-von-Git}
3636
\end{frame}

0 commit comments

Comments
 (0)