Commit cbaf9983 authored by Alexander Schoch's avatar Alexander Schoch
Browse files

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

parents fa33852f a12ed82e
......@@ -5,7 +5,7 @@ This is a public repository that contains a collection of our current (and past)
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)
- [Install Guide](https://gitlab.ethz.ch/thealternative/courses/-/blob/master/install_guide_updated/master/install_guide_updated.pdf)
- [Bash Guide](https://thealternative.ch/guides/bash.php)
Console & Bash:
......
......@@ -11,6 +11,18 @@
class: center, middle
# Slides
<img src="images/slides_QR.png" width="50%">
<a> http://0x0.st/N0oX</a>
Download them from the link, then open `index.html` in your browser
---
class: center, middle
# Linux Toolbox
Nils Leuzinger
......@@ -202,6 +214,8 @@ Both redirect command output:
<img src="images/catpiperedirection.png" width="60%">
<p style="color: #BBBBBB;">(you're not supposed to pipe cat's output but no one cares)</p>
---
# Demo
......@@ -255,7 +269,7 @@ Bash is a different way of interacting with your system
Bash runs in your terminal.
Bash is a shell. there are others: Zsh, fish, Dash, csh
Bash is a shell. There are others: Zsh, fish, Dash, csh
Resources:
- our bash guide (https://thealternative.ch/guides/bash.php)
......@@ -346,7 +360,7 @@ class: center, middle
# Notifications
Typically, linux has a notification deamon integrated.
Typically, linux has a notification daemon integrated.
```bash
notify-send "Hello"
......@@ -393,7 +407,7 @@ and then let's us choose one of them.
echo "one,two,three" | rofi -sep ',' -dmenu
```
Rofi's dmenu mode on its own is not useful, but can serve as a powerful launcher
Rofi's dmenu mode on its own is not useful, but can serve as a powerful launcher
when combined with other commands:
```bash
......@@ -428,7 +442,7 @@ class: center, middle
# xbindkeys
A **keydeamon**! Let's us configure keyboard shortcuts.
A **keydaemon**! Let's us configure keyboard shortcuts.
In file `~/.xbindkeysrc`:
......@@ -517,7 +531,7 @@ We can put multiple greps together to chain filters!
Hot tip: Put `alias grep='grep -P'` into `~/.bashrc`.
`-P` switches to "extended regular expressions".
`-P` switches to "Perl regular expressions".
Unfortunately, there are lots of regex standards with minor differences.
Stick with one and don't worry about it (until you do).
......@@ -530,7 +544,7 @@ https://www.rexegg.com/
Hot tip: Put `alias grep='grep -P'` into `~/.bashrc`.
`-P` switches to "extended regular expressions".
`-P` switches to "Perl regular expressions".
Unfortunately, there are lots of regex standards with minor differences.
Stick with one and don't worry about it (until you do).
......@@ -704,9 +718,7 @@ git stash
git pull
```
*Visit the git course next week!*
Also recommended: Git for ages 4 and up (video)
Recommended: Git for ages 4 and up (video)
---
......@@ -805,7 +817,7 @@ sleep 0.2
xdotool key ctrl+w
```
Of course you can bind this to a shortcut!
Of course you can bind this to a shortcut with **xbindkeys**!
```bash
"xdotool key F6; sleep 0.2; xdotool key ctrl+c; sleep 0.2; xdotool key ctrl+w"
F10
......@@ -862,14 +874,14 @@ class: center, middle
# Vim
The best editor since sliced bread.
The best invention since sliced bread. Observe:
Tree-based undo function with timetravelling!
Composable shortcut keys and modal editing!
Composable shortcuts and modal editing!
Tree-based undo with timetravelling!
Can edit files remotely via SSH!
Recursive keyboard macros!
Can edit remote files directly via SSH!
Takes weeks to learn!
29 years old!
30 years old!
<img src="images/vimlogo.png" width="40%">
......@@ -930,11 +942,13 @@ class: center, middle
**stow** lets you manage config files easily.
**ranger** is a console-based file manager.
**i3** is an alternative window manager.
**i3** is an alternative window manager. (<a href="https://events.thealternative.ch/e/window-manager-workshop">come to our workshop in 2 weeks</a>)
**Borg** is a great backup tool.
---
---
# On analysis paralysis
Having so many choices sometimes makes it hard to start.
......@@ -961,7 +975,7 @@ https://thealternative.ch
# Next up
Come to the Git talk on Monday, 17:15 (no need to register).
Come to the Bash talk on Thursday, 17:15 (<a href="https://events.thealternative.ch/e/the-alternative-bash-HS21">register</a>).
It would be great if you could fill out the feedback:
https://feedback.thealternative.ch/
......@@ -970,6 +984,16 @@ https://feedback.thealternative.ch/
---
# Bash Mnemonics
**echo** - gives back same thing, like an echo
**ls** - list
**pwd** - present working directory
**cd** - change directory
**rm** - remove
**cat** - con**cat**enate (originally mainly used to concatenate files)
---
# Unhelpful descriptions
......@@ -980,7 +1004,8 @@ https://feedback.thealternative.ch/
**screen** is **tmux** for boomers.
**Git** is just a bunch of **SVN**s.
**Vim** is to vigor as Tom is to Jerry.
**Emacs** is a popular alternative to GNU/Hurd.
**Emacs** is a popular alternative to GNU/Hurd.
**OpenRC** is **systemd** without features.
</textarea>
<script src="js/remark.min.js" type="text/javascript"></script>
......
MIT License
Copyright (c) 2021 Florian Moser
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
# Piracy
Pirates come in many forms. Some violently board ships, killing the crew and taking its possessions. Others simply want to read "Analysis I - Third Edition". This lecture will be about the latter.
We will explore different ways how to find what you want in the internet, and argue for its ethical and legal standing.
body { font-family: sans-serif; }
h1, h2, h3 {
font-family: serif;
font-weight: normal;
}
.remark-code, .remark-inline-code { font-family: monospace; }
.row {
display: flex;
}
.column {
flex-basis: 0;
flex-grow: 1;
max-width: 100%;
}
table {
border-collapse: collapse;
border-bottom: 1px solid #dee2e6;
border-top: 1px solid #dee2e6;
width: 100%;
}
table th,
table td {
border-top: 1px solid #dee2e6;
padding: 5px;
}
table tr:nth-child(2n) {
background-color: rgba(0, 0, 0, 0.05);
}
table thead th {
border-bottom: 2px solid #dee2e6;
vertical-align: bottom;
}
blockquote {
background: #dee2e6;
margin-left: 0;
padding: 0.5em;
}
blockquote > *:first-child {
margin-top: 0;
}
blockquote > *:last-child {
margin-bottom: 0
}
.color-red {
color: red
}
.ml-2 {
margin-left: 2em
}
.inverted {
background-color: black;
color: white;
}
.pyro > .before, .pyro > .after {
position: absolute;
width: 5px;
height: 5px;
border-radius: 50%;
box-shadow: -120px -218.66667px blue, 248px -16.66667px #00ff84, 190px 16.33333px #002bff, -113px -308.66667px #ff009d, -109px -287.66667px #ffb300, -50px -313.66667px #ff006e, 226px -31.66667px #ff4000, 180px -351.66667px #ff00d0, -12px -338.66667px #00f6ff, 220px -388.66667px #99ff00, -69px -27.66667px #ff0400, -111px -339.66667px #6200ff, 155px -237.66667px #00ddff, -152px -380.66667px #00ffd0, -50px -37.66667px #00ffdd, -95px -175.66667px #a6ff00, -88px 10.33333px #0d00ff, 112px -309.66667px #005eff, 69px -415.66667px #ff00a6, 168px -100.66667px #ff004c, -244px 24.33333px #ff6600, 97px -325.66667px #ff0066, -211px -182.66667px #00ffa2, 236px -126.66667px #b700ff, 140px -196.66667px #9000ff, 125px -175.66667px #00bbff, 118px -381.66667px #ff002f, 144px -111.66667px #ffae00, 36px -78.66667px #f600ff, -63px -196.66667px #c800ff, -218px -227.66667px #d4ff00, -134px -377.66667px #ea00ff, -36px -412.66667px #ff00d4, 209px -106.66667px #00fff2, 91px -278.66667px #000dff, -22px -191.66667px #9dff00, 139px -392.66667px #a6ff00, 56px -2.66667px #0099ff, -156px -276.66667px #ea00ff, -163px -233.66667px #00fffb, -238px -346.66667px #00ff73, 62px -363.66667px #0088ff, 244px -170.66667px #0062ff, 224px -142.66667px #b300ff, 141px -208.66667px #9000ff, 211px -285.66667px #ff6600, 181px -128.66667px #1e00ff, 90px -123.66667px #c800ff, 189px 70.33333px #00ffc8, -18px -383.66667px #00ff33, 100px -6.66667px #ff008c;
-moz-animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;
-webkit-animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;
-o-animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;
-ms-animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;
animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards; }
.pyro > .after {
-moz-animation-delay: 1.25s, 1.25s, 1.25s;
-webkit-animation-delay: 1.25s, 1.25s, 1.25s;
-o-animation-delay: 1.25s, 1.25s, 1.25s;
-ms-animation-delay: 1.25s, 1.25s, 1.25s;
animation-delay: 1.25s, 1.25s, 1.25s;
-moz-animation-duration: 1.25s, 1.25s, 6.25s;
-webkit-animation-duration: 1.25s, 1.25s, 6.25s;
-o-animation-duration: 1.25s, 1.25s, 6.25s;
-ms-animation-duration: 1.25s, 1.25s, 6.25s;
animation-duration: 1.25s, 1.25s, 6.25s; }
@-webkit-keyframes bang {
from {
box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white; } }
@-moz-keyframes bang {
from {
box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white; } }
@-o-keyframes bang {
from {
box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white; } }
@-ms-keyframes bang {
from {
box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white; } }
@keyframes bang {
from {
box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white; } }
@-webkit-keyframes gravity {
to {
transform: translateY(200px);
-moz-transform: translateY(200px);
-webkit-transform: translateY(200px);
-o-transform: translateY(200px);
-ms-transform: translateY(200px);
opacity: 0; } }
@-moz-keyframes gravity {
to {
transform: translateY(200px);
-moz-transform: translateY(200px);
-webkit-transform: translateY(200px);
-o-transform: translateY(200px);
-ms-transform: translateY(200px);
opacity: 0; } }
@-o-keyframes gravity {
to {
transform: translateY(200px);
-moz-transform: translateY(200px);
-webkit-transform: translateY(200px);
-o-transform: translateY(200px);
-ms-transform: translateY(200px);
opacity: 0; } }
@-ms-keyframes gravity {
to {
transform: translateY(200px);
-moz-transform: translateY(200px);
-webkit-transform: translateY(200px);
-o-transform: translateY(200px);
-ms-transform: translateY(200px);
opacity: 0; } }
@keyframes gravity {
to {
transform: translateY(200px);
-moz-transform: translateY(200px);
-webkit-transform: translateY(200px);
-o-transform: translateY(200px);
-ms-transform: translateY(200px);
opacity: 0; } }
@-webkit-keyframes position {
0%, 19.9% {
margin-top: 10%;
margin-left: 40%; }
20%, 39.9% {
margin-top: 40%;
margin-left: 30%; }
40%, 59.9% {
margin-top: 20%;
margin-left: 70%; }
60%, 79.9% {
margin-top: 30%;
margin-left: 20%; }
80%, 99.9% {
margin-top: 30%;
margin-left: 80%; } }
@-moz-keyframes position {
0%, 19.9% {
margin-top: 10%;
margin-left: 40%; }
20%, 39.9% {
margin-top: 40%;
margin-left: 30%; }
40%, 59.9% {
margin-top: 20%;
margin-left: 70%; }
60%, 79.9% {
margin-top: 30%;
margin-left: 20%; }
80%, 99.9% {
margin-top: 30%;
margin-left: 80%; } }
@-o-keyframes position {
0%, 19.9% {
margin-top: 10%;
margin-left: 40%; }
20%, 39.9% {
margin-top: 40%;
margin-left: 30%; }
40%, 59.9% {
margin-top: 20%;
margin-left: 70%; }
60%, 79.9% {
margin-top: 30%;
margin-left: 20%; }
80%, 99.9% {
margin-top: 30%;
margin-left: 80%; } }
@-ms-keyframes position {
0%, 19.9% {
margin-top: 10%;
margin-left: 40%; }
20%, 39.9% {
margin-top: 40%;
margin-left: 30%; }
40%, 59.9% {
margin-top: 20%;
margin-left: 70%; }
60%, 79.9% {
margin-top: 30%;
margin-left: 20%; }
80%, 99.9% {
margin-top: 30%;
margin-left: 80%; } }
@keyframes position {
0%, 19.9% {
margin-top: 10%;
margin-left: 40%; }
20%, 39.9% {
margin-top: 40%;
margin-left: 30%; }
40%, 59.9% {
margin-top: 20%;
margin-left: 70%; }
60%, 79.9% {
margin-top: 30%;
margin-left: 20%; }
80%, 99.9% {
margin-top: 30%;
margin-left: 80%; } }
\ No newline at end of file
@media print {
.remark-slide-scaler {
width: 100% !important;
height: 100% !important;
transform: scale(1) !important;
top: 0 !important;
left: 0 !important;
}
}
\ No newline at end of file
var slideshow = remark.create();
\ No newline at end of file
This diff is collapsed.
<!DOCTYPE html>
<html>
<head>
<title>Piracy</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" href="css/remark.css">
<link rel="stylesheet" media="print" href="css/remark.print.css">
</head>
<body>
<textarea id="source">
class: center, middle
# Piracy
<img src="images/thealternative-logo.jpg" width="30%">
---
# why this talk
motivation:
- intellectual property is different to real property
- knowledge should be distributed as much as possible
- everyone should know what is legal, and think about what is ethical
---
# targets of this course
you:
- know the central legal provisions / concepts that apply
- know where to find what you need
- can argue about legal and ethical standing of what you are accessing
---
class: center, middle
# legal background
---
# what is law about
**not** about finding loopholes
about *fairness* and *justice*
society needs balance:
- free speech vs protection of minorities
- individual medical decisions vs medical health of society
- free movement vs incarceration of dangerous individuals
today:
- tragedy of the commons vs monopoly
- protection of creators vs distribution of knowledge
- market incentives vs market efficiency
---
# intellectual property
cases:
- urheberrecht (works like books, photos, videos, drawings)
- patents (ideas like inventions, processes,
---
# Urheberrecht
owner of urheberrecht has sole right to allow/deny others access
motivation: tragedy of the commons breaks market
because anyone case use, and one's use does not impact other's use
but introduces monopoly, leading to market inefficiencies
---
# eigengebrauch (CH) / fair use (US)
eigengebrauch (CH)
-> can use copyrighted works for Eigengebraucht
-> excempted is software
fair use (US)
-> as long as no profits made allowed
---
# breaking the law
in general:
-> have to reimbruse other party for caused damage
-> potential additional punishment imposed by the state
how to be illegal:
- relative law (inter partes)
-> you have signed a contract with your employeer to not download something
- absolute law (erga omnes)
-> some things are forbidden
---
# why its complicated
how to calculate damage cause to other party?
what if never would have downloaded the product if price would have been known?
---
# where to find stuff
examples:
- https://weboas.is/
- https://www.reddit.com/r/CrackWatch
---
# download
- https://sci-hub.se/ (papers)
- https://z-lib.org/ (books)
- https://www.mutaz.net (software)
---
books & more as direct download
---
# other sources
remember; downloading is legal
"Avicii .mp3"
(search engine tricks)
sites come and go as server weak link -> torrents
music sheets: https://imslp.org/wiki/Main_Page
---