An der Hochschule möchten wir den Umgang mit freier Software fördern und einüben. VSCodium ist Open-Source - und damit nicht nur umsonst sondern auch frei wie in freier Zugang zu Informationen. VSCode ist dagegen nicht Open-Source - auch wenn es manchmal den Eindruck vermittelt.
Wir gehen hier davon aus, dass Ihr in den Veranstaltungen Infrastruktur und Technik für Wirtschaftsinformatik im zweiten Semester Eure virtuellen Maschinen eingerichtet habt und nach wie vor passwortlos mit ssh ubuntu in die VM kommt. Falls das nicht der Fall ist, richtet Euch die Umgebung wie unter virtuelle-umgebung.html ein.
Unter vscodium.com findet Ihr mehr Informationen zu VSCodium.
Grundsätzlich basiert VSCodium auf der selben Codebasis wie VSCode und die Tutorials zu VSCode, die Ihr im Web findet, gelten auch für VSCodium. Bei VSCodium ist die Telemetrie bereits deaktiviert. Einige Extensions auf dem Marketplace verbietet Microsoft in anderen Editoren. Viele Entwickler:innen veröffentlichen aber mittlerweile ihre Extensions sowohl bei Microsoft als auch auf dem freien Gegenstück open-vsx.org.
Auf der Seite VSCodium wird die aktuelle Version von VSCodium gepflegt. Für die Betriebssysteme MacOS, Windows und Linux ist dort gut beschrieben, wie die Installation funktionieren sollte. Neben VSCodium benötigt Ihr auch noch das Werkzeug git, das aber schon installiert sein sollte. Hier aber noch einmal in Kürze:
Viele von uns favorisieren Linux als Betriebssystem. Unter linuxcapable finden sich gute Anleitungen für debian, ubuntu und fedora.
Wenn Ihr unter Windows bereits mit einem der Paketmanager scoop, winget oder chocolatey Erfahrung habt, dann nutzt den für die Installation. Das ist jeweils gut beschrieben auf der Seite VSCodium etwas weiter unten.
Wir haben Euch gleich im ersten Semester scoop empfohlen und mit Euch eingerichtet. Das solltet Ihr auch weiterhin nutzen.
scoop bucket add extras
scoop install vscodium
Unter Windows solltet Ihr die gitbash als Default-Shell einstellen. Mit der Tastenkombination SHIFT+STRG+P kommt Ihr in die Kommandopalette. Tippt dort terminal select und wählt Terminal: Select Default Profile aus. Wählt dann die Bash, damit beim Öffnen des Terminals mit STRG+J die Bash statt der Powershell erscheint.
Unter MacOS ist es üblich, mit brew als Paketmanager zu arbeiten. Solltet Ihr brew noch nicht installiert haben, helfen wir Euch dabei natürlich auch gerne.
brew install --cask vscodium
Nach der Installation solltet Ihr VSCodium starten können und es sollte etwa so aussehen:
Links könnte noch der Datei-Explorer offen sein, in dem Ihr jeweils die Dateien seht, die Ihr bearbeiten könnt.
Ein Terminal könnt Ihr mit der Tastenkombination STRG+J unter Windows oder Linux bzw. COMMAND+J unter MacOS öffnen. Ein Terminal solltet Ihr immer offen haben ...
Eine Datei könnt Ihr direkt aus dem Terminal heraus mit codium datei.txt öffnen.
Grundsätzlich empfehlen wir Euch, so wenige Extensions wie möglich zu installieren. VSCodium ist für sich genommen ein guter Editor, der aber dennoch eine verstehbare Sicht auf das Basissystem geben soll. Je mehr Extensions für jeden möglichen Zweck eingerichtet sind, desto schneller verliert man die Übersicht.
Eine Extension, die Ihr in jedem Fall benötigt, ist die Open-Remote-Extension von jean413. Sie ähnelt der Remote Extension von Microsoft, die allerdings weder Open-Source ist noch überhaupt in einem anderen Editor als VSCode installiert werden darf.
VSCodium zeichnet sich dadurch aus, dass viele Schritte über Tastenkürzel erreichbar sind. Kennt man einmal die Hauptkombination für die Kommandopalette, kann man immer direkt ein Wort eintippen und das Programm ergänzt dann meist sinnvoll, so dass nur noch der gesuchte Punkt ausgewählt werden muss.
Unter Windows und unter Linux ist die Kombination: SHIFT+STRG+P. Unter MacOS ist die Kombination SHIFT+COMMAND+p.
Dann öffnet sich oben die Kommandopalette. Dort tippt Ihr:
install extensions
Sobald dann unterhalb des Eingabefeldes noch bevor Ihr fertig getippt habt, Extensions: Install Extension erscheint, bewegt Ihr Euch mit den Cursortasten dort hin und bestätigt mit Enter.
Darauf hin tippt Ihr in das links oben erscheinende Feld (Search Extension):
open remote
woraufhin Ihr die Extension Open Remote - SSH auswählt und installiert.
Wenn Ihr jetzt das auf der linken Seite erscheinende Symbol für den Remote Explorer auswählt, wird Eure .ssh/config eingelesen und Ihr könnt Euch auf hopper oder Eurer ubuntu-VM einloggen. Auf dem entfernten Rechner könnt Ihr nun ein Projekt auswählen oder eines mit git clonen. Auch hier gewöhnt Euch den Weg über die Kommandopalette an: remote ...
Jetzt seid Ihr lokal auf Eurem Rechner in der VSCodium-Oberfläche, ihr arbeitet aber remote in einer anderen Maschine.
In der Extension wird ebenfalls registriert, wenn Ihr bereits ein Projekt auf einem entfernten Rechner geöffnet hattet und Ihr könnt das Projekt beim nächsten Mal direkt mit der Maus auswählen. Allerdings empfinde ich es als umständlich, jedes Mal den Weg über die Auswahl des Projektes zu gehen.
Mit einem kleinen Skript lässt sich aus einem Terminal heraus direkt ein Projekt auf einem entfernten Rechner öffnen:
#!/usr/bin/env bash
# open-on-hopper.sh
path=/home/$USER/repos/simple
codium --folder-uri vscode-remote://ssh-remote+hopper/$path
Die Syntax ist etwas gewöhnungsbedürftig und es kann sein, dass ein noch offenes Terminal geschlossen und wieder geöffnet werden muss, damit das Kommando codium zum Öffnen einer Datei den korrekten Prozess findet. Insgesamt aber lohnen sich solche kleinen Shortcuts bei der täglichen Arbeit mit vscodium.
Sobald Ihr mit der Remote-Extension umgehen könnt, solltet Ihr erst einmal grundsätzlich alle Softwareentwicklung in der virtuellen Maschine durchführen, weil dort die gleichen Werkzeuge und Mechanismen greifen wie auf hopper - und damit wie in einer typischen Cloud-Umgebung.
In meinen Projekten gibt es immer das Verzeichnis bin, in dem kleine Skripte zum Übersetzen oder zum Deployment liegen. Diese Skripte sind immer so aufgesetzt, dass sie lokal ohne Interaktion funktionieren und demzufolge auch automatisiert in der Pipeline ablaufen können. Das ist ein unschätzbarer Vorteil, wie Ihr noch feststellen werdet. Ich gehe immer davon aus, dass die Bash installiert ist. Bei manchen Projekten lohnt es sich, Posix-kompatibel nur die Bourne-Shell (/bin/sh) zu nutzen.
Ihr kennt bereits die Konfiguration von ssh auf Eurem lokalen Gerät. Dort habt Ihr sowohl hopper als auch ubuntu so konfiguriert, dass Ihr Euch passwortlos dort einloggen könnt. Auf den Docker-Container auf turing (mydocker) könnt Ihr Euch bisher nur von hopper aus einloggen. Mit einem sogenannten ProxyJump könnt Ihr in einem Schritt über hopper auf mydocker springen.
Wenn Ihr den öffentlichen Schlüssel Eures Laptops in Euren docker-Container auf turing in die authorized_keys eintragt, könnt Ihr auf Eurem lokalen Gerät einen Eintrag hinzufügen, mit dem Ihr direkt in Euren docker-Container springen könnt.
Übertragen des öffentlichen Schlüssels:
cat ~/.ssh/id_ed25519.pub | ssh hopper "ssh mydocker 'cat >> .ssh/authorized_keys'"
Der Eintrag in .ssh/config:
host mydocker
hostname turing
port FINDE_DEINEN_PORT_MIT_HBV_DOCKER_PRUEFEN
user docker-HOPPERUSER
proxyjump hopper
Nun könnt Ihr direkt mit ssh mydocker von Eurem Laptop aus in den Docker-Container auf turing springen und Euch direkt mit VSCodium remote damit verbinden. Die Arbeitsweise ähnelt dann - im Kleinen - Github Codespaces.
Für praktisch jede Umgebung gibt es gesonderte Extensions, von denen einige sicherlich gut sind, manche gruselig und viele nicht besonders gut gepflegt werden.
Das Extension Pack for Java umfasst gleich sieben einzelne Extensions, von der sicherlich die wichtigste Language Support for Java von Redhat ist. Sie ist Open Source, gut gepflegt und durchaus mächtig. Allerdings verbraucht sie auch erheblich Ressourcen und es fühlt sich selbst auf einem modernen Notebook manchmal alles ein wenig träge an. In jedem Fall empfehlen wir Euch Code-Completion zu deaktivieren. Wer wirklich Java beherrscht, ist effizienter, ohne dass ständig irgendwelche Vorschläge aufflackern und vor allem lernt man das, was man für effizientes Programmieren benötigt, nur dann wirklich, wenn man es selber zu tippen lernt.
Auch Java-Projekte sind gut in der VM zu bearbeiten. Nur, wenn ich GUI-Programmierung mit Swing praktiziere, würde ich auf die VM verzichten und direkt auf dem Host arbeiten. Dafür muss dann auf dem Host-System das OpenJDK und gegebenenfalls weitere Werkzeuge installiert sein.
Wer mit C oder C++ programmiert, wird den Großteil der Projekte mit make und den zugehörigen Werkzeugen wie autoconf verwalten. Das solltet Ihr genau so lernen und beibehalten. Die Umgebung in der VM ist ähnlich zu der auf hopper, aber nicht genau die gleiche. Auf hopper läuft Debian und in Eurer VM läuft das darauf aufsetzende Ubuntu.
Im dritten Semester bekommt Ihr einen kleinen Einblick in PHP. Behandelt VSCodium erst einmal als mächtigen Editor und verwaltet Eure Projekte über die Kommandozeile. Arbeitet in der VM, in der der apache mit php installiert ist oder in der docker installiert ist. Wir zeigen Euch, wie das funktioniert.
Ihr könnt durchaus die Extension phptools ausprobieren.
Alle diese Programmierumgebungen haben für die Kommandozeile zum Teil sehr ausgefeilte Werkzeuge. Nutzt sie ...
VSCodium beinhaltet eine kleine git-Integration. Insgesamt ist man auf der Kommandozeile in jedem Fall schneller, aber Ihr solltet auch mit der Integration einmal gearbeitet haben.
Klont Euch am Besten erst einmal eines Eurer eigenen Repos, das Ihr auf hopper in bares habt. Geht wieder mit SHIFT+CTRL+P in den Kommandomodus und tippt git. Es erscheinen wieder mehrere möglich Auswahlpunkte. Wählt Git: Clone und tippt in die Eingabe hopper:bares/first.git. Bei der Nachfrage, wohin das Repo geklont werden soll, wählt auch lokal das Verzeichnis repos aus, wie Ihr es gelernt habt (gegebenenfalls könnt Ihr das noch im Terminal erzeugen).
Wenn Ihr dann auf das Symbol auf der linken Seite klickt, dann seht Ihr die interaktive git-Integration. Vorteilhaft ist, dass diese Integration tatsächlich den Zustand des Repos abbildet - Ihr könnt also auch weiterhin auf der Kommandozeile arbeiten und der Zustand der Dateien wird in der git-Ansicht korrekt abgebildet.
Versucht auch in VSCodium soweit es geht, das Arbeiten mit Maus und Touchpad zu vermeiden!
Linux