diff --git a/20180413/photo-20180629-130710.jpg b/20180413/photo-20180629-130710.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a8208c02aaf4e9c3bb6bf90fe1a65b80edc24cb4
Binary files /dev/null and b/20180413/photo-20180629-130710.jpg differ
diff --git a/20180706/make-zombies-1.c b/20180706/make-zombies-1.c
new file mode 100644
index 0000000000000000000000000000000000000000..3626861d638c8ad6dc8c5c0831b9f5190e20a4dc
--- /dev/null
+++ b/20180706/make-zombies-1.c
@@ -0,0 +1,41 @@
+#include <stdio.h>
+#include <sys/wait.h>
+#include <stdlib.h>
+#include <unistd.h>
+ 
+int main(void){
+    pid_t pids[10]; // Platz f�r 10 Prozess-IDs (die Kindprozesse)
+    int i; // Laufvariable
+ 
+    for (i = 0; i < 10; ++i) {
+        // Der Vaterprozess erzeugt nun einen Kindprozess,
+        // welcher unabh�ngig vom Vaterprozess mit der
+        // erneuten Ausf�hrung des Programms beginnt.
+        // Ein Kindprozess erzeugt keinen Fork von sich selbst.
+        pids[i] = fork();
+        if (pids[i] == 0) {
+            // dann befinden wir uns in einem der 10 Kindprozesse
+            // Der erste Kindprozess wartet 10 Sekunden und jeder
+            // weitere Kindprozess wartet 1 Sekunde k�rzer als der
+            // vorige.
+            printf ("%d BRAINS! ", i);
+            sleep(10-i);
+            exit(0); // Kindprozess erfolgreich beenden
+        }
+    }
+
+//
+    // hier kommt nur der Vaterprozess vorbei
+    for (i = 0; i < 10; ++i){
+        // Der Vaterprozess wartet nun, bis der Reihe nach jeder
+        // seiner 10 Kindprozesse beendet ist. Leider wird auf das
+        // Kind mit der l�ngsten Wartezeit zuerst gewartet. Obwohl
+        // die anderen Kinder l�ngst erfolgreich beendet wurden,
+        // blockiert das erste Kind eine Bereinigung der Prozesstabelle
+        waitpid(pids[i], NULL, 0);
+    }
+//
+
+//    while (1);
+    return 0; // Vaterprozess erfolgreich beenden
+}
diff --git a/20180706/make-zombies-2.c b/20180706/make-zombies-2.c
new file mode 100644
index 0000000000000000000000000000000000000000..d43b17e278e3df5c2373600753d6ac53d89f7af7
--- /dev/null
+++ b/20180706/make-zombies-2.c
@@ -0,0 +1,41 @@
+#include <stdio.h>
+#include <sys/wait.h>
+#include <stdlib.h>
+#include <unistd.h>
+ 
+int main(void){
+    pid_t pids[10]; // Platz f�r 10 Prozess-IDs (die Kindprozesse)
+    int i; // Laufvariable
+ 
+    for (i = 0; i < 10; ++i) {
+        // Der Vaterprozess erzeugt nun einen Kindprozess,
+        // welcher unabh�ngig vom Vaterprozess mit der
+        // erneuten Ausf�hrung des Programms beginnt.
+        // Ein Kindprozess erzeugt keinen Fork von sich selbst.
+        pids[i] = fork();
+        if (pids[i] == 0) {
+            // dann befinden wir uns in einem der 10 Kindprozesse
+            // Der erste Kindprozess wartet 10 Sekunden und jeder
+            // weitere Kindprozess wartet 1 Sekunde k�rzer als der
+            // vorige.
+            printf ("%d BRAINS! ", i);
+            sleep(10-i);
+            exit(0); // Kindprozess erfolgreich beenden
+        }
+    }
+
+//
+//    // hier kommt nur der Vaterprozess vorbei
+//    for (i = 0; i < 10; ++i){
+//        // Der Vaterprozess wartet nun, bis der Reihe nach jeder
+//        // seiner 10 Kindprozesse beendet ist. Leider wird auf das
+//        // Kind mit der l�ngsten Wartezeit zuerst gewartet. Obwohl
+//        // die anderen Kinder l�ngst erfolgreich beendet wurden,
+//        // blockiert das erste Kind eine Bereinigung der Prozesstabelle
+//        waitpid(pids[i], NULL, 0);
+//    }
+//
+
+//    while (1);
+    return 0; // Vaterprozess erfolgreich beenden
+}
diff --git a/20180706/make-zombies-3.c b/20180706/make-zombies-3.c
new file mode 100644
index 0000000000000000000000000000000000000000..82d671c075e1db7879e8b040f12a8543c0c7436a
--- /dev/null
+++ b/20180706/make-zombies-3.c
@@ -0,0 +1,41 @@
+#include <stdio.h>
+#include <sys/wait.h>
+#include <stdlib.h>
+#include <unistd.h>
+ 
+int main(void){
+    pid_t pids[10]; // Platz f�r 10 Prozess-IDs (die Kindprozesse)
+    int i; // Laufvariable
+ 
+    for (i = 0; i < 10; ++i) {
+        // Der Vaterprozess erzeugt nun einen Kindprozess,
+        // welcher unabh�ngig vom Vaterprozess mit der
+        // erneuten Ausf�hrung des Programms beginnt.
+        // Ein Kindprozess erzeugt keinen Fork von sich selbst.
+        pids[i] = fork();
+        if (pids[i] == 0) {
+            // dann befinden wir uns in einem der 10 Kindprozesse
+            // Der erste Kindprozess wartet 10 Sekunden und jeder
+            // weitere Kindprozess wartet 1 Sekunde k�rzer als der
+            // vorige.
+            printf ("%d BRAINS! ", i);
+            sleep(10-i);
+            exit(0); // Kindprozess erfolgreich beenden
+        }
+    }
+
+//
+//    // hier kommt nur der Vaterprozess vorbei
+//    for (i = 0; i < 10; ++i){
+//        // Der Vaterprozess wartet nun, bis der Reihe nach jeder
+//        // seiner 10 Kindprozesse beendet ist. Leider wird auf das
+//        // Kind mit der l�ngsten Wartezeit zuerst gewartet. Obwohl
+//        // die anderen Kinder l�ngst erfolgreich beendet wurden,
+//        // blockiert das erste Kind eine Bereinigung der Prozesstabelle
+//        waitpid(pids[i], NULL, 0);
+//    }
+//
+
+    while (1);
+//    return 0; // Vaterprozess erfolgreich beenden
+}
diff --git a/20180706/photo-20180706-150855.jpg b/20180706/photo-20180706-150855.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ce07d59510b287548fd64e0365c2ffba7736ff11
Binary files /dev/null and b/20180706/photo-20180706-150855.jpg differ
diff --git a/20180706/photo-20180706-151020.jpg b/20180706/photo-20180706-151020.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ad54cbc3942d6c05f76288edaf384f8b7a4207bf
Binary files /dev/null and b/20180706/photo-20180706-151020.jpg differ
diff --git a/20180706/signals-1.c b/20180706/signals-1.c
new file mode 100644
index 0000000000000000000000000000000000000000..b8c50f12e2e234db520ea04044584ef2441a8194
--- /dev/null
+++ b/20180706/signals-1.c
@@ -0,0 +1,18 @@
+#include <signal.h>
+#include <stdio.h>
+
+static void signal_handler (int signo)
+{
+  printf ("Hello, world!\n");
+}
+
+int main (void)
+{
+  if (signal (SIGINT, signal_handler) == SIG_ERR)
+    {
+      fputs ("Error installing signal handler.\n", stderr);
+      return 1;
+    }
+  while (1);
+  return 0;
+}
diff --git a/20180706/signals-2.c b/20180706/signals-2.c
new file mode 100644
index 0000000000000000000000000000000000000000..87fc7bca06b3f2906b2682e4da23f43b7a18fe99
--- /dev/null
+++ b/20180706/signals-2.c
@@ -0,0 +1,18 @@
+#include <signal.h>
+#include <stdio.h>
+
+static void signal_handler (int signo)
+{
+  printf ("Hello, world!\n");
+}
+
+int main (void)
+{
+  if (signal (SIGUSR1, signal_handler) == SIG_ERR)
+    {
+      fputs ("Error installing signal handler.\n", stderr);
+      return 1;
+    }
+  while (1);
+  return 0;
+}
diff --git a/20180706/signals-3.c b/20180706/signals-3.c
new file mode 100644
index 0000000000000000000000000000000000000000..a14f33703c6a05314cdf0ee8ee467ccd53a45bca
--- /dev/null
+++ b/20180706/signals-3.c
@@ -0,0 +1,27 @@
+#include <signal.h>
+#include <stdio.h>
+#include <sys/time.h>
+
+static void signal_handler (int signo)
+{
+  printf ("Hello, world!\n");
+}
+
+int main (void)
+{
+  if (signal (SIGVTALRM, signal_handler) == SIG_ERR)
+    {
+      fputs ("Error installing signal handler.\n", stderr);
+      return 1;
+    }
+
+  struct itimerval timer;
+  timer.it_value.tv_sec = 1;
+  timer.it_value.tv_usec = 0;
+  timer.it_interval.tv_sec = 1;
+  timer.it_interval.tv_usec = 0;
+  setitimer (ITIMER_VIRTUAL, &timer, NULL);
+
+  while (1);
+  return 0;
+}
diff --git a/20180706/signals-3a.c b/20180706/signals-3a.c
new file mode 100644
index 0000000000000000000000000000000000000000..05f08f0349dfda929d8a0559d15cd831aced9d14
--- /dev/null
+++ b/20180706/signals-3a.c
@@ -0,0 +1,26 @@
+#include <signal.h>
+#include <stdio.h>
+#include <sys/time.h>
+
+static void signal_handler (int signo)
+{
+  printf ("Hello, world!\n");
+}
+
+int main (void)
+{
+  if (signal (SIGVTALRM, signal_handler) == SIG_ERR)
+    {
+      fputs ("Error installing signal handler.\n", stderr);
+      return 1;
+    }
+
+  struct itimerval timer;
+  timer.it_value.tv_sec = 1;
+  timer.it_value.tv_usec = 0;
+  timer.it_interval.tv_sec = 1;
+  timer.it_interval.tv_usec = 0;
+  setitimer (ITIMER_VIRTUAL, &timer, NULL);
+
+  while (1);
+}
diff --git a/20180706/signals-4.c b/20180706/signals-4.c
new file mode 100644
index 0000000000000000000000000000000000000000..357b739fce6a3642b9cc7c6bc8bbd5d6a1645314
--- /dev/null
+++ b/20180706/signals-4.c
@@ -0,0 +1,29 @@
+#include <signal.h>
+#include <stdio.h>
+#include <sys/time.h>
+#include <unistd.h>
+
+static void signal_handler (int signo)
+{
+  printf ("Hello, world!\n");
+}
+
+int main (void)
+{
+  if (signal (SIGVTALRM, signal_handler) == SIG_ERR)
+    {
+      fputs ("Error installing signal handler.\n", stderr);
+      return 1;
+    }
+
+  struct itimerval timer;
+  timer.it_value.tv_sec = 1;
+  timer.it_value.tv_usec = 0;
+  timer.it_interval.tv_sec = 1;
+  timer.it_interval.tv_usec = 0;
+  setitimer (ITIMER_VIRTUAL, &timer, NULL);
+
+  while (1)
+    sleep (10);
+  return 0;
+}
diff --git a/20180706/signals-5.c b/20180706/signals-5.c
new file mode 100644
index 0000000000000000000000000000000000000000..8fd134bc8d6087e6fdaf0e37710d811937b36b3f
--- /dev/null
+++ b/20180706/signals-5.c
@@ -0,0 +1,29 @@
+#include <signal.h>
+#include <stdio.h>
+#include <sys/time.h>
+#include <unistd.h>
+
+static void signal_handler (int signo)
+{
+  printf ("Hello, world!\n");
+}
+
+int main (void)
+{
+  if (signal (SIGALRM, signal_handler) == SIG_ERR)
+    {
+      fputs ("Error installing signal handler.\n", stderr);
+      return 1;
+    }
+
+  struct itimerval timer;
+  timer.it_value.tv_sec = 1;
+  timer.it_value.tv_usec = 0;
+  timer.it_interval.tv_sec = 1;
+  timer.it_interval.tv_usec = 0;
+  setitimer (ITIMER_REAL, &timer, NULL);
+
+  while (1)
+    sleep (10);
+  return 0;
+}
diff --git a/20180706/signals-6.c b/20180706/signals-6.c
new file mode 100644
index 0000000000000000000000000000000000000000..5fabafe62e28fc2baa68c1ef731a05dba5be5eaa
--- /dev/null
+++ b/20180706/signals-6.c
@@ -0,0 +1,22 @@
+#include <signal.h>
+#include <stdio.h>
+#include <unistd.h>
+
+static void signal_handler (int signo)
+{
+  printf ("Hello, world!\n");
+  alarm (1);
+}
+
+int main (void)
+{
+  if (signal (SIGALRM, signal_handler) == SIG_ERR)
+    {
+      fputs ("Error installing signal handler.\n", stderr);
+      return 1;
+    }
+  alarm (1);
+  while (1)
+    sleep (10);
+  return 0;
+}