Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Werkzeuge zur Corona-Situation

Unixoide Arbeitsumgebung

Wir verwenden für unsere Veranstaltungen meist freie Werkzeuge, welche ein aktuelles POSIX kompatibles Betriebssystemen benötigen.
Referenz ist dabei das im CIP installierte Debian 10 "Buster" , womit auch das verwandte Ubuntu 20.04 / Focal Fossa sehr gut unterstützt wird. Diese freien Betriebssysteme können kostenlos entweder per USB Stick als Live System gestartet oder direkt auf den eigenen PC (auch neben existierende Betriebssysteme wie Windows) installiert werden.

Unter Windows 10 kann über das Windows-Subsystem für Linux (WSL) eine offizielle Debain oder Ubuntu Umgebung installiert werden.
Für die Installation sind Administratorberechtigungen erforderlich, die notwendigen Schritte zur Einrichtung von WSL werden von Microsoft detailliert auf ihrer Webseite beschrieben.

Eine Virtuelle Maschine (VM) ist eine weitere Möglichkeit, um ein weiteres (Gast-)Betriebssystem zu starten - in einem virtuellen Rechner, wie in einer Anwendung, während das eigentliche (Wirts-)Betriebssystem ausgeführt wird.
VirtualBox ist eine freie Virtualisierungssoftware, die dies bequem ermöglicht.
Für die (heutzutage üblichen) 64 Bit Gastsysteme muss jedoch eine Hardwareunterstützung zur Virtualisierung, welche in modernen Systemen standardmäßig vorhanden ist, aktiviert sein - wie man dies prüft und gegebenenfalls ändert, wird im SPiC Übungsvideo 01.2: Übungsumgebung einrechten erklärt, weitere Informationen finden sich auf der zugehörigen Webseite.
Wer nicht selbst eine VM aufsetzen und ein Debian Betriebssystem installieren will, kann das für die Veranstaltung Betriebssysteme erstellte Abbild (1.2 GB) verwenden, das Administratorpasswort dort lautet stubs. Dieses hat (im Gegensatz zur speziell zugeschnittenen SPiC VM) alle relevanten Programme wie Compiler (gcc) und Buildwerkzeuge (make) bereits installiert.

Fernzugriff auf CIP

Für den Zugriff auf Rechner des Informatik CIPs ist ein eigener Zugang notwendig. Dieser kann nun auch bequem online beantragt werden.

Textbasiert (Konsole)

Der einfachste Zugriff erfolgt via SSH, dazu listet die Webseite der CIP Admins Rechner, welche durchgehend online und damit auch als Zielhost prädestiniert sind.
Ein Zugriff erfolgt nach dem Schema ssh benutzername@zielhost, bei der ersten Ausführung sollte noch die Authentizität des Zielrechnerschlüssels geprüft werden:

 ssh uj66ojab@cip2a0.cip.cs.fau.de

Die Verwendung einer passwortlosen SSH-Authentifizierung mittels privatem und öffentlichen Schlüssel lässt sich einfach einrichten und erlaubt deutlich bequemeres (und sicheres) Arbeiten. Außerdem kann bei vielen Verbindungen noch das SSH Multiplexing aktiviert werden, um schneller Verbindungen zu erlauben. Ein von uns erstelltes Hilfskript ist zur Einrichtung (Benutzung auf eigene Gefahr) vorhanden:

wget https://www4.cs.fau.de/Lehre/SS21/corona/cip-ssh.sh
bash cip-ssh.sh

Bei instabilen Verbindungen (z.B. über das Mobilfunknetz) kann anstelle von SSH die Software Mosh verwendet werden, die Benutzung läuft analog zu SSH (und auch die in SSH konfigurierten Schlüssel werden unterstützt):

 mosh uj66ojab@cip2a0.cip.cs.fau.de

Außerdem bieten sich die im CIP bereits installierten Werkzeuge Screen sowie tmux an, um Anwendungen im Hintergrund weiterlaufen zu lassen - auch wenn die SSH Verbindung getrennt wird. Diese brauchen jedoch etwas Einarbeitung durch die zusätzlichen Tastaturkürzel (standardmäßig Strg + A bei Screen und Strg + B bei tmux). Alternativ kann auch noch über den Befehl nohup eine Abarbeitung trotz Terminaltrennung fortgeführt werden.
Bitte beachten: Im CIP werden Anwendungen, die zu lange im Hintergrund laufen, automatisch beendet (dazu bekommt man auch eine Mailbenachrichtigung).

Fensterbasiert

Wer einen grafischen Zugang zum CIP will, kann dies bequem über Remote CIP machen, was - ohne Installation - einen webbasierten Fernzugriff ermöglicht. Diese Lösung verwendet im Hintergrund die Technologie von Xpra an, welche die Anwendung auf einem CIP Rechner ausführt und den Bildschirminhalt überträgt. Sie kann auch nach Installation direkt ausgeführt werden, z.B. um den Firefox Webbrowser aus dem CIP zu starten:

xpra start ssh:uj66ojab@cip2a0.cip.cs.fau.de --exit-with-children --start-child=firefox

Alternativ kann auch der gesamte Fenstermanager (hier: Xfce4 ) gestartet werden:

xpra start-desktop ssh:uj66ojab@cip2a0.cip.cs.fau.de --exit-with-children --start-child=xfce4-session

Gegebenenfalls muss noch mit weiteren Parametern nachjustiert werden, relevant sind unter anderem --dpi=90 um die Punktdichte (bei HiDPI) anzupassen und --opengl=no bei Grafikproblemen.

Paarprogrammierung

Die nachfolgend gelisteten Werkzeuge erlauben das gleichzeitige Bearbeiten derselben Quelltextdateien (wobei Änderungen der anderen Teilnehmer instantan sichtbar werden) für umfangereiche Projekte – sofern nur eine Lösung gebraucht wird, um kurzzeitig (z.B. zur Fehlersuche) eine einzelne Quelltextdatei gemeinsam zu besprechen, bieten die im Abschnitt Hilfswerkzeuge gezeigten Webanwendungen eine bequeme Alternative.
Außerdem sind in den präsentierten Lösungen keine Sprachkommunikation integriert, hier empfiehlt sich beispielsweise der gleichzeitige Einsatz des weiter unten vorgestellten Mumble.

Der schlanke freie Editor Gobby erlaubt das gleichzeitige Bearbeiten von Dateien durch mehrere Benutzer und ist für die meisten Betriebssysteme verfügbar.
Dabei kann sich zum Beispiel mit Gobby auf den im CIP gestarteten dazugehörigen dedizierten Server infinoted verbunden werden – was wiederum komfortabel über das Skript /proj/i4stubs/tools/infinoted gestartet werden kann (im Beispiel werden Kopien der bearbeiteten Dokumente im Ordner foo im CIP Home abgelegt):

$ ssh uj66ojab@cip2a0.cip.cs.fau.de
uj66ojab@cip2a0:~$ /proj/i4stubs/tools/infinoted -d foo
Starting Infinoted in directory: /home/cip/2009/uj66ojab/foo

Connect with Gobby to
	Servername: cip2a0.cip.cs.fau.de:39510
	Password: lNrMMOV77xGYya2KkfwG2az

Infinoted running in background (pid 20266) - stop it using
	/proj/i4stubs/tools/infinoted -d /home/cip/2009/uj66ojab/foo -k

Die Microsoft IDE Visual Studio unterstützt mit Live Share nativ einen Modus zur gemeinsamen Entwicklung. Auch in der für Linux & MacOS verfügbaren Open Source Variante VScode kann Live Share via Plugin installiert werden. Dabei ist es sogar ausreichend, wenn nur einer der Beteiligten die Anwendung ausführt, dieser kann weitere Teilnehmer via (Webbrowser)[https://docs.microsoft.com/en-us/visualstudio/liveshare/quickstart/browser-join] in den Editor einladen.

Für den leicht anpassbaren ("hackable") freien Editor Atom gibt es mit Teletype und Pair zwei Plugins zur einfachen Kollaboration.

Auch für die populäre Java IDE Eclipse gibt es unter anderem mit Saros ein Plugin welches diese Funktionalität bietet.

Das Saros Plugin gibt es auch für IntelliJ , allerdings wurde mit Code With Me kürzlich vom Entwickler selbst ein Plugin für Pair Programming veröffentlicht.

Kommunikation

Sprach-/Videokonferenz

Reine Sprachkonferenzen können über die freie Software Mumble gestartet werden, dabei ist die Audioqualität im Vergleich zu den Videokonferenzlösungen meist deutlich besser, bei gleichzeitig niedrigerer Bandbreitennutzung – eine ideale Unterstützung bei der entfernten Paarprogrammierung.
Der kompakte und für alle relevanten Betriebssysteme vorhandene Desktopclient sollte idealerweise auf Sprachaktiverung geschalten werden, außerdem sollte die intelligente Rauschunterdrückung RNNoise in den Einstellungen aktiviert werden.
Für die Veranstaltungen am Lehrstuhl gibt es dieses Semester einen eigenen Mumbleserver auf i4corona.cs.fau.de (Standardport 64738), zur Anmeldung muss lediglich die IDM Benutzerkennung angegeben werden. Sofern gerade kein Desktopclient verfügbar ist, kann auch der Webclient verwendet werden (allerdings mit etwas eingeschränkter Funktionalität und Qualität).

Für unsere Lehrveranstaltungen werden wir zum Teil die freie, webbasierte Videokonferenzlösung BigBlueButton verwenden, wofür wir eine eigene [Test-]Instanz auf i4bbb.cs.fau.de betreiben. Diese kann mittels unseres Duck-as-a-Service getestet werden.
Bitte beachten: Eine Registrierung ist nicht notwendig und ein Account wird nur genehmigt, wenn dies explizit via Mail mit Begründung (Verwendung für Lehrveranstaltung, FSI / Hochschulgruppe) angefragt wird (bei Bernhard Heinloth). Eine Garantie auf Verfügbarkeit gibt es nicht.

Mit Jitsi können schnell im Webbrowser Videokonferenzen erstellt und mittels Link geteilt werden, auch ist damit das Teilen des Bildschirminhaltes möglich. Das RRZE bietet eine eigene Instanz an - welche jedoch qualitative Einschränkungen gegenüber dem offiziellen Dienst hat.

Außerdem kann natürlich auch die Videokonferenzsoftware Zoom verwendet werden, dass RRZE hat dazu weitere Informationen sowie eine Anleitung auf ihrer Webseite.

Textchat

Der Internet Relay Chat (IRC) ist ein offenes Chatsystem aus den Anfangstagen des Internets - und wird auch immer noch verwendet: Im IRCnet befinden sich viele Räume (Channels) unserer Informatik, unter anderem auch für einige unserer Veranstaltungen: #i4passt und #i4stubs
Die Universität hat auch ihren eigenen Servernode (irc.fau.de), aber auch mit anderen Server kann teilgenommen werden. Dazu gibt es Clients wie das grafische HexChat oder das konsolenbasierte Irssi , welches auch gut mit den oben genannten Tools Screen/tmux permanent auf dem dafür vorgesehenen CIP Terminalserver ircbox.cs.fau.de ausgeführt werden kann.
Alternativ kann auch schnell über einen Webchat eine Verbindung hergestellt werden.

Die quelloffene WebChat-Plattform Rocket.Chat lässt es sich entweder im Browser oder alternativ mit Desktop- oder Smartphone-App nutzen. Die FSI Informatik betreibt eine eigene Instanz, auf der man sich mit der FAU-eMail-Adresse registrieren kann und für einige Veranstaltungen des Lehrstuhls mit den IRC überbrückte Kanäle (z.B. #i4stubs für Betriebssysteme) finden kann.

Das ebenfalls freie Protokoll XMPP (frühers Jabber) erlaubt eine etwas modernere Chatkommunikation, dabei gibt es eine Vielzahl von Clients wie Gajim , Dino, das browserbasierte Converse sowie Mobileapps wie Conversations (Android) und ChatSecure (iOS) .
Mittels Spiegelung sind unsere IRC Räume auch als XMPP-MUC (Gruppenchat) erreichbar: i4passt@conference.cs.fau.de sowie i4stubs@conference.cs.fau.de.
Auch das RRZE bietet (inoffiziell) XMPP an (inklusive Webclient), die JID bildet sich nach dem Schema benutzername@linux-chat.rrze.fau.de – eine Benutzung ist bequem ohne Registrierung über IDM möglich und auch auf die oben genannten Gruppenchaträume kann damit zugegriffen werden. Nicht ausgelieferte Nachrichten werden bei der nächsten Verbindung zugestellt.

Weitere Hilfswerkzeuge

CryptPad bietet (ähnlich wie Etherpad ) eine Weboberfläche, welche ein einfaches kollaboratives Bearbeiten von Text erlaubt, ähnlich der unter Paarprogrammierung genannten Werkzeuge, jedoch nur für einzelne Dateien (statt Projekte). Allerdings ist CryptPad nicht nur auf reinen Text beschränkt, sondern bietet (neben anderen wie Whiteboard und Tabellenkalkulation) auch einen Modus für Quelltext (mit Syntaxhervorhebung) an. Eine Benutzung ist direkt (ohne Anmeldung) möglich, jedoch kann man sich auch (lediglich mit Benutzername & Passwort) einen Account anlegen, womit man die volle Kontrolle über den Zugriff und die Lebensdauer der selbst angelegten Dokumente erhält. Entsprechend sollte dies auch für Codeausschnitte den öffentlichen Textablagen (wie Pastebin) vorgezogen werden.
Auf i4corona.cs.fau.de läuft eine Instanz, welche im Rahmen der Veranstaltungen am Lehrstuhl verwendet werden darf.

Screego erlaubt das Teilen eines Anwendungsfensters bzw. des gesamten Bildschirms mit mehreren Teilnehmern. Diese Funktionalität wird zwar auch von den meisten Videokonferenzanwendungen angeboten, allerdings ist Screego auf die Übertragung von textlastigen Fenstern optimiert und besonders einfach zu bedienen (mit nur einem Klick wird ein neuer Raum erstellt, lediglich der Raumlink ist für die direkte Teilnahme notwendig).
Eine lehrstuhlinterne Instanz ist über i4corona.cs.fau.de/screenshare erreichbar.