====== Gobby ====== [[https://gobby.github.io/|Gobby]] ist ein Editor für das kollaboratives Schreiben von Textdokumenten. Debian betreibt unter der Adresse ''gobby.debian.org'' einen eigenen Server, auf dem z.B. die Protokolle und Dokumentationen der eigenen Konferenzen umgesetzt werden. Das folgende [[https://www.youtube.com/watch?v=QCDEgvz_Rqw|Video]] zeigt, wie der Editor für das gemeinsame Programmieren eingesetzt werden kann. ===== Gobby als Live-Coding Umgebung ===== {{:schule:gobby_collab_programming.png?nolink|}} Gobby kann auch für das [[schule:live_coding|Live Coding]] eingesetzt werden. Die obige Abbildung zeigt vereinfacht das Prinzip: Wenn der infinoted-Server (das ist der Server, mit dem Gobby kommuniziert) so konfiguriert wird, dass er regelmäßig eine Kopie der erstellten Dokumente macht, können diese Dokumente durch ein eigenes Skript verarbeitet werden. Hier wollen wir eine Quelltextdatei übersetzen. Dazu wird das plugin //directory-sync// in der Datei //%LOCALAPPDATA%\infinoted.conf// (unter Linux liegt diese Datei in ///etc/// oder //~/.config///) aktiviert und konfiguriert. [infinoted] ... plugins=note-text;directory-sync [directory-sync] directory=C:\\Users\\bakera\\AppData\\Local\\gobby\\syncdir interval=5 Wenn der Server läuft, kann ein minimales C#-File in Gobby angelegt werden. using System; public class Test { public static void Main() { Console.WriteLine("Hallo Welt"); } } Sobald die Backup-Datei für die obige Datei angelegt wurde, kann ein Batchscript gestartet werden, das in regelmäßigen Abständen die exportierte Datei kompiliert und ausführt. @echo off REM Datei, die kompiliert werden soll set vsdatei=C:\Users\bakera\AppData\Local\gobby\syncdir\Main.cs REM Umgebung für Visual Studio Tool laden call "C:\Program Files (x86)\Microsoft Visual Studio 12.0"\Common7\Tools\VsDevCmd.bat REM Folgende Befehl laufen in einer Endlosschleife ab :loop REM Die Datei wird kompiliert csc /nologo /out:%tmp%\main.exe %vsdatei% REM ggf. Ein paar Sekunden warten - Dann die folgende Zeile auskommentieren REM timeout /t 1 REM Bildschirm leeren und Programm starten cls %tmp%\main.exe goto loop Nun werden die Änderungen aller Nutzer nicht nur im Quelltext sofort sichtbar, sondern auch im Ergebnis der Programmausführung. Im folgenden Screenshot kann man das Skript, den Server und den Client in Interaktion sehen. {{:schule:gobby-collab-mit-anmerkungen.png?direct|}} Das folgende Video zeigt, wie der Server gestartet und der Quelltext anschließend in Gobby modifiziert wird. Über das Zahnrad sollte die Qualität erhöht werden, damit die Schrift lesbar ist. ==== Mögliche Probleme ==== Das obige Skript funktioniert nicht, wenn Laufzeitfehler im Programm vorhanden sind oder es gar in eine Endlosschleife läuft. In diesem Falle muss es neu gestartet werden. Ebenso funktioniert das Verfahren nur mit Programmen, die wenig oder keine Nutzerinteraktion erfordern. Am besten sind also Szenarien mit einer festen Eingabe, für die man unterschiedliche Parameter durchspielen möchte.