Commit 45a815ec authored by nilsl's avatar nilsl
Browse files

Merge branch 'master' of gitlab.ethz.ch:thealternative/courses

parents 5271f71f b0a8fb30
Name,percent Name,percent
Unix,71.4 Unix,71.0
Windows,28.6 Windows,29.0
Name,percent Name,percent
Apache,40.5 Apache,36.1
Nginx,31.7 Nginx,32.5
Cloudflare Server,13.2 Cloudflare Server,16.0
Microsoft-IIS,7.8 Microsoft-IIS,7.7
other,5.8 other,7.7
# for the slide detailing that cryptography/security should be FOSS
https://en.wikipedia.org/wiki/Kerckhoffs%27s_principle
No preview for this file type
\input{../.style/header} \input{../.style/header}
\title{Free and Open Source Software} \title{Free and Open Source Software}
\author{Horea Christian} \author{Alexander Schoch}
\institute{SSC TheAlternative | ETHZ and UZH} \institute{SSC TheAlternative | ETHZ and UZH}
\DTLloaddb{server}{data/web_servers.csv} \DTLloaddb{server}{data/web_servers.csv}
...@@ -340,7 +340,7 @@ ...@@ -340,7 +340,7 @@
\vspace{-0.75em} \vspace{-0.75em}
\centering\tiny \centering\tiny
\DTLpiechart{radius=0.235\textheight,variable=\quantity,innerlabel={\DTLpiepercent\%},outerlabel=\name,cutaway={1-2}}{server}{\name=Name,\quantity=percent} \DTLpiechart{radius=0.235\textheight,variable=\quantity,innerlabel={\DTLpiepercent\%},outerlabel=\name,cutaway={1-2}}{server}{\name=Name,\quantity=percent}
\caption{Web Server Market Share 2020-02-26 via \href{http://w3techs.com/technologies/overview/web_server/all}{w3techs}} \caption{Web Server Market Share 2020-10-06 via \href{http://w3techs.com/technologies/overview/web_server/all}{w3techs}}
\end{figure} \end{figure}
\column{0.5\linewidth} \column{0.5\linewidth}
\begin{figure}[htbp] \begin{figure}[htbp]
...@@ -349,7 +349,7 @@ ...@@ -349,7 +349,7 @@
\DTLsetpiesegmentcolor{1}{green!40} \DTLsetpiesegmentcolor{1}{green!40}
\DTLsetpiesegmentcolor{2}{red!40} \DTLsetpiesegmentcolor{2}{red!40}
\DTLpiechart{radius=0.265\textheight,variable=\quantity,innerlabel={\DTLpiepercent\%},outerlabel=\name,cutaway={2}}{os}{\name=Name,\quantity=percent} \DTLpiechart{radius=0.265\textheight,variable=\quantity,innerlabel={\DTLpiepercent\%},outerlabel=\name,cutaway={2}}{os}{\name=Name,\quantity=percent}
\caption{Website OS Market Share 2020-02-26 via \href{http://w3techs.com/technologies/overview/operating_system/all}{w3techs}} \caption{Website OS Market Share 2020-10-06 via \href{http://w3techs.com/technologies/overview/operating_system/all}{w3techs}}
\end{figure} \end{figure}
\end{columns} \end{columns}
\end{frame} \end{frame}
...@@ -436,7 +436,7 @@ ...@@ -436,7 +436,7 @@
\item Come to the next “Linux Days” events: \item Come to the next “Linux Days” events:
\textcolor{lg}{\url{http://thealternative.ch/}} \textcolor{lg}{\url{http://thealternative.ch/}}
\item Join the next “Stammtisch”:\\ \item Join the next “Stammtisch”:\\
\textcolor{lg}{18:00 Thursday, March 5 - Katholische Hochschulgemeinde Zürich AKI, 2nd floor, Hirschengraben 86, 8001} \textcolor{lg}{This will not take place due to the coronavirus}
\item Give us feedback!\\ \item Give us feedback!\\
\textcolor{lg}{\url{https://feedback.thealternative.ch/}} \textcolor{lg}{\url{https://feedback.thealternative.ch/}}
\end{itemize} \end{itemize}
...@@ -448,7 +448,7 @@ ...@@ -448,7 +448,7 @@
\end{itemize} \end{itemize}
%separate sources from info so it looks nicer %separate sources from info so it looks nicer
\begin{itemize} \begin{itemize}
\item \textcolor{lg}{License:} \href{https://creativecommons.org/licenses/by-sa/3.0/}{CC BY-SA 4.0} \item \textcolor{lg}{License:} \href{https://creativecommons.org/licenses/by-sa/3.0/}{Slides by Alexander Schoch/Christian Horea, CC BY-SA 4.0}
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}{References} \begin{frame}{References}
......
This is a public repository that contains a collection of our current (and past) LinuxDays courses. # Courses
# Downloading the course material
Our course material (slides and several guides) are available as PDFs: This is a public repository that contains a collection of our current (and past) LinuxDays courses.
- [Free and Open Source Software](https://gitlab.ethz.ch/thealternative/courses/blob/master/FOSS_course/slides.pdf)
- [Introduction to Linux](https://gitlab.ethz.ch/thealternative/courses/blob/master/intro_course/slides.pdf)
- [Install Guide](https://gitlab.ethz.ch/thealternative/courses/blob/master/install_event/installguide_complete.pdf)
- [Console Toolkit Part 1](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/console_toolkit_1.pdf)
- [Console Toolkit Part 1&2](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/console_toolkit_2.pdf)
- [Console Toolkit Exercises](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/exercise_files/exercises.pdf)
- [Bash Course (Slides)](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/pres/pres.pdf)
- [Bash Course (Guide)](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/guide/guide.pdf)
- [Bash Course Exercises](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/exercisesheet/sheet.pdf) and [Solutions](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/exercisesheet/sol.pdf)
Introduction:
- [Free and Open Source Software (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/FOSS_course/slides.pdf)
- [Introduction to Linux (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/intro_course/slides.pdf)
- [Install Guide](https://thealternative.ch/guides/install.php)
- [Bash Guide](https://thealternative.ch/guides/bash.php)
Console & Bash:
- [Console Toolkit Part 1 (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/console_toolkit_1.pdf)
- [Console Toolkit Part 1&2 (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/console_toolkit_2.pdf)
- [Console Toolkit Exercises (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/exercise_files/exercises.pdf)
- [Bash Course (Slides) (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/pres/pres.pdf)
- [Bash Course (Guide) (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/guide/guide.pdf)
- [Bash Course Exercises (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/exercisesheet/sheet.pdf) and [Solutions](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/exercisesheet/sol.pdf)
Tools:
- [Git](https://thealternative.ch/courses/git/git.html)
# Cloning the repository # Cloning the repository
......
No preview for this file type
# Welcome to the Bash Workshop! # Welcome to the Bash Workshop!
* If you prefer to work on your own, already know programming or are confident in your abilities, please **sit in the back**. * Please turn of your camera for the lecture part of the course, we only have 2GB of RAM on this server
<!-- -->
* If you prefer guided exercises, are completely new to programming, or want to have your hands held, please **sit in the front**.
* If there are any technical problems, let me know!
--- ---
author: author:
- Aline Abler - Nicolas König
title: Bash Workshop title: Bash Workshop
--- ---
...@@ -78,19 +78,19 @@ title: Bash Workshop ...@@ -78,19 +78,19 @@ title: Bash Workshop
### Meaning of strings ### Meaning of strings
echo Hello World ls my file
* `echo`, `Hello` and `World` are single strings * `ls`, `my` and `file` are single strings
* The first string becomes the command, all following become * The first string becomes the command, all following become
*arguments* *arguments*
<!-- --> <!-- -->
echo 'Hello World' ls 'my file'
* Here, `Hello World` is just one string * Here, `my file` is just one string
### Repeat after me ### Remember!
\bigtext{Every word is a single argument unless you use quotes.} \bigtext{Every word is a single argument unless you use quotes.}
...@@ -111,7 +111,7 @@ title: Bash Workshop ...@@ -111,7 +111,7 @@ title: Bash Workshop
[[1==3]] [[1==3]]
* Bash's answer: * Bash's answer:
bash: [[1==3]]: command not found bash: [[1==3]]: command not found
...@@ -119,7 +119,7 @@ title: Bash Workshop ...@@ -119,7 +119,7 @@ title: Bash Workshop
[[ 1 == 3 ]] [[ 1 == 3 ]]
### Repeat after me ### Remember!
\bigtext{If there's brackets, you probably need spaces.} \bigtext{If there's brackets, you probably need spaces.}
...@@ -151,7 +151,7 @@ title: Bash Workshop ...@@ -151,7 +151,7 @@ title: Bash Workshop
* What bash sees * What bash sees
0 0
### Why is that important? ### Why is that important?
* *&&*, *||*, *if* and *while* all act based on the return value of something * *&&*, *||*, *if* and *while* all act based on the return value of something
...@@ -207,10 +207,41 @@ becomes ...@@ -207,10 +207,41 @@ becomes
rm "$var" rm "$var"
### Repeat after me: ### Remember!
\bigtext{If there's a dollar, you probably need quotes!} \bigtext{If there's a dollar, you probably need quotes!}
## Piping
### Glueing programs together
* Pipes allow us to connect different programs
* The output of one program is used as the input for another
### Glueing programs together
du -b
lists the size of all directories within the current one
sort -n
sorts the input numerically. So
du -b | sort -n
gives us a list of all subdirectories sorted by size.
### Glueing programs together
ls -l | cut -d' ' -f3 | sort | uniq
Complicated functionality can be created from very simple programs.
### Remember!
\bigtext{If you want to connect programs, you probably want pipes!}
# What bash is used for # What bash is used for
## The whole point of bash ## The whole point of bash
...@@ -252,22 +283,20 @@ becomes ...@@ -252,22 +283,20 @@ becomes
## What happens now? ## What happens now?
### Hands on! ### Hands on!
#### Guided exercises
* Solve easy exercises in plenum
* Tailored to complete beginners
#### Self-driven exercises #### Self-driven exercises
* Self study using a guide * Self study using a guide
* Try some of our exercises * Try some of our exercises
* Choose the exercises you find interesting! No need to go in order. * Choose the exercises you find interesting! No need to go in order.
#### Guided exercises
* Solve easy exercises in plenum
* Tailored to complete beginners
* Please sit in the front
### Course material ### Course material
* These slides, exercise sheet and bash guide: \ * These slides, exercise sheet and bash guide: \
\soft{http://thealternative.ch} \soft{http://thealternative.ch}
* Please leave some feedback! \
\soft{http://feedback.thealternative.ch}
<!-- --> <!-- -->
* \soft{Theme by} Christian Horea, [CC BY](https://creativecommons.org/licenses/by/4.0/) * \soft{Theme by} Christian Horea, [CC BY](https://creativecommons.org/licenses/by/4.0/)
* \soft{Original Presentation by} Aline Abler
No preview for this file type
TEX=latexmk
TEXOPTS=-output-directory=build \
-pdf \
-latexoption=-interaction=nonstopmode \
-latexoption=-file-line-error
# Set PREVIEW=1 to enable preview. Make sure an appropriate viewer is
# configured in $HOME/.latexmkrc.
# Example usage: make PREVIEW=1 opendata
ifdef PREVIEW
PREVIEWOPTS=-pvc
endif
defaul: exercises
# To include the current git revision in the header, write it to 'GIT_TAG'
# file, which the LaTeX source can include.
gitrev:
@printf "r%s.%s" "$$(git rev-list --count HEAD)" "$$(git rev-parse --short HEAD)" > GIT_TAG
# Create build directory if it doesnt exist
builddir:
@[ -d build ] || mkdir build
# All documents need to be compiled twice.
# This is because some necessary information is only available after
# the first compiler run, like \pageref{LastPage}.
exercises: exercises.tex gitrev builddir
@$(TEX) $(TEXOPTS) $(PREVIEWOPTS) $<
mv build/exercises.pdf .
clean:
@rm -rf build/*
% vim: set ft=tex:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{TheAlternativeCourse}
% packages
\LoadClass[11pt]{scrartcl} % Base class: KOMA script article
\RequirePackage[utf8]{inputenc} % Support for german 'umlaut' (ä, ö, ü)
\RequirePackage{lastpage} % \pageref{LastPage}
\RequirePackage{scrlayer-scrpage} % KOMA Script header/footer package
\RequirePackage{graphicx} % \includegraphics{...}
\RequirePackage[showseconds=false,showzone=false]{datetime2}
\RequirePackage[table]{xcolor}
\RequirePackage[most]{tcolorbox}
\RequirePackage{hyperref}
% helvetica font
% \RequirePackage[scaled]{helvet}
% \RequirePackage[T1]{fontenc}
% \renewcommand\familydefault{\sfdefault}
% header / footer
\KOMAoptions{headsepline,headheight=27.5pt}
\setkomafont{pagehead}{\normalfont\normalcolor} % non-italic header font
\setkomafont{pagefoot}{\normalfont\normalcolor} % non-italic footer font
\newcommand{\builddate}{\footnotesize Revision: \input{GIT_TAG} \\ Build: \DTMNow}
\newcommand{\thealtlogo}{\includegraphics[width=4.5cm]{assets/logo.png}}
\lohead[\thealtlogo]{\thealtlogo}
\rohead[\builddate]{\builddate}
\cofoot[\footnotesize \thepage~/~\pageref{LastPage}]{\thepage~/~\pageref{LastPage}}
\recalctypearea%
\setlength{\voffset}{-1.2cm} % space before header
\setlength{\textheight}{1.15\textheight} % height of text
\definecolor{ldorange}{HTML}{F18A20}
\definecolor{ldblue}{HTML}{254471}
\definecolor{grey1}{HTML}{aaaaaa}
\definecolor{grey2}{HTML}{efefef}
\definecolor{lightblue}{HTML}{d9edfc}
\definecolor{exclamred}{HTML}{db1515}
\colorlet{lightyellow}{yellow!6!white}
\colorlet{darkeryellow}{red!15!yellow!40!white}
\newtcolorbox[auto counter, number within=section]{exercisebox}[2][]{%
colback=lightyellow,
fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
colframe=ldorange,
coltitle=black,
enhanced,
fonttitle=\bfseries,
title=Task~\thetcbcounter: #2,#1}
\newtcolorbox{cmdbox}{%
colback=grey2,
fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
enhanced,
colframe=grey1,
coltitle=black,
enhanced}
\newtcolorbox{tcbhintbox}{%
enhanced,
skin=bicolor,
segmentation at break=true,
boxrule=0.8pt,
left=3.5mm,
top=0.5mm,
bottom=0.5mm,
arc=1pt,
boxsep=2pt,
lefthand ratio=0.06,
sidebyside,
colframe=ldorange,
coltext=black,
colback=darkeryellow,
colbacklower=lightyellow,
}
\newcommand{\hintbox}[1]{%
\begin{tcbhintbox}
\includegraphics[width=8mm]{img/light_bulb.pdf}%
\tcblower%
#1
\end{tcbhintbox}}
This diff is collapsed.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment