Beim Stichwort Produktivität im Team denken wir als erstes an bekannte und verbreitete Tools wie Docker, CI/CD-Plattformen oder Monitoring-Tools.
Viele Engineers arbeiten aber auch mit kleineren, teilweise spezialisierten Tools, um ihre Arbeitsabläufe an ganz individuelle Anforderungen anzupassen. Wie hilfreich diese Tools sind hängt dabei stark von den jeweiligen Wünschen ab; richtig eingesetzt können jedoch selbst kleine Tools eine große Wirkung erzielen.
In diesem Artikel haben wir unsere wichtigsten Tools für Machine Learning-Projekte gesammelt, die wir nicht mehr missen möchten.
Tool Übersicht
- K9s: interaktives Verwalten von Kubernetes-Clustern;
- Tmux: mehrere Fenster mit Terminal-Multiplexing steuern;
- Tmuxinator: Tmux mit YAML konfigurieren;
- Guake: Terminal-Fenster an beliebiger Stelle ausklappen;
- McFly: Bash-Verläufe durchsuchen;
- Autojump: intelligentes cd zu ausgewählten Ordnern;
- Jrnl.sh: Notizen und Protokolle von der Befehlszeile aus erstellen;
- Peek: Gifs direkt vom Bildschirm aufnehmen.;
- Lightshot: Screenshots aufnehmen und mit Kommentaren versehen;
- Grammarly: Grammatik und Rechtschreibung korrigieren;
- Krisp: Hintergrundgeräusche bei Videoanrufen reduzieren;
- Karabiner: komplexe Tastenkombinationen erstellen (Mac);
- F.lux: Bildschirmfarben an die Tageszeit anpassen (Mac);
Kubernetes Tools
Kubernetes wird gerne auch liebevoll "K8s" genannt. Teilweise gestaltet es sich jedoch recht mühselig, in Kubernetes Cluster zu verwalten oder lange kubectl Befehle manuell einzugeben.
K9s
K9s bietet uns eine interaktivere Sicht auf unsere Cluster. Wir können Protokolle einsehen und Pods interaktiver steuern als mit Kubectl.
K9s ist ein Befehlszeilentool, das einen praktischen Überblick über deine Cluster bietet. Anstatt den vollständigen Namen eines Pods eintippen zu müssen, kannst du stattdessen über die Tastatur navigieren und Pods auswählen.
Terminal Tools
Wir richten unsere Terminals alle etwas unterschiedlich ein, die meisten von uns verwenden dafür jedoch Tmux. Dieses Tool bietet uns die Möglichkeit, ein einzelnes Terminalfenster in mehrere virtuelle Fenster aufzuteilen oder bestimmte Tasks im Hintergrund laufen zu lassen.
Außerdem arbeiten wir auch mit Tmuxinator, womit man komplexe Tmux-Sitzungen einschließlich des Layouts über YAML-Dateien definieren kann. Anstatt unser Terminal unnötig lang manuell einzurichten, reicht ein einziger Shortcut, um das Terminal exakt nach unseren Vorstellungen anzuzeigen.
Tmux + Tmuxinator
Tmux + Tmuxinator + OhMyBash
Während Tmuxinator die Effizienz steigert, versorgt OhMyBash unsere Terminals mit zusätzlichen Informationen. Es lässt uns Informationen über Git einsehen (z. B. welcher Branch überprüft wird) und mithilfe von Farben und Designs wichtige Parts hervorheben.
Guake
Mit Guake ist ein Terminalfenster immer nur einen einzigen Klick entfernt. Anstatt mit Alt-Tab zwischen allen offenen Fenstern zu suchen, öffnet Guake bei Bedarf ein übersichtliches Dropdown-Terminal. Es erscheint am oberen Rand des Bildschirms und verdeckt alle anderen geöffneten Fenster, sodass wir ohne Umwege Befehle ausführen können.
Befehlszeilen-Tools
Es gibt jede Menge Befehlszeilen Tools, die überflüssige Schreibarbeit vermeiden. Hier sind einige unserer Favoriten.
McFly
Teilweise dauert es mehrere Minuten - oder noch länger - einen komplizierten Befehl zu erstellen. Geht dann ein fertiger Befehl wieder verloren und muss nochmal auf Neue erstellt werden, ist das nicht nur zeitaufwendig, sondern vor allem äußerst frustrierend. Um das zu vermeiden enthalten die meisten Shells einen integrierten Verlauf, sodass ältere Befehle durchsucht und wiedergefunden werden können.
McFly macht es jedoch um einiges einfacher, ältere Befehle wiederzufinden. Es ersetzt die Standard Strg + R Suche und verwendet stattdessen Fuzzy Matching sowie einen Ranking-Algorithmus, um in kürzester Zeit alle übereinstimmenden oder teilweise übereinstimmenden Befehle einer bestimmten Suche anzuzeigen. Der gefundene Befehl kann dann angepasst oder direkt ausgeführt werden.
Autojump
Autojump funktioniert ähnlich wie McFly, dient aber der Navigation in deiner Ordnerstruktur. Anstatt den vollständigen Datei- und Ordnernamen eintippen zu müssen, führt dich Autojump nach der Eingabe weniger Buchstaben bereits an die richtige Stelle. Das Ganze funktioniert ebenfalls durch Analysen deines Verlaufs und Fuzzy Matching.
Anstatt also etwas einzugeben wie:
cd /home/me/projects/phoenixproject/zeus-app
Reicht mit Autojump bereits:
j zeus
und du landest im gewünschten Verzeichnis.
Jrnl.sh
Wissenschaftler führen klassischerweise Protokolle und Laborberichte, um all ihre Erkenntnisse und Arbeitsschritte reproduzieren zu können. Für Machine Learning Experimente nutzen wir dafür MLFlow; für akute Bugs oder kurze Notizen ist jedoch jrnl.sh noch praktischer. Damit können wir vom Terminal aus eine kurze Notiz verfassen, die mit Datum und Uhrzeit versehen ist. Außerdem können wir Tags mit einem @-Symbol hinzufügen, sodass frühere Einträge sehr schnell durchsucht werden können.
Screenshot und Aufnahmetools
Weil in unserem Team sehr viel dokumentiert wird, erstellen wir jede Menge Screenshots und Gifs.
Peek
Peek eignet sich hervorragend zur Erstellung schneller Gifs, um etwas zu demonstrieren, was zu kompliziert für einen einzelnen Screenshot ist. Peek ist Open Source und läuft unter Linux. Wir nutzen Peek vor allem, um Demonstrationen zur Dokumentation hinzuzufügen oder uns gegenseitig via Slack auszuhelfen.
Lightshot
Mit Lightshot kannst du ohne Umwege einen Screenshot von bestimmten Bereichen des Bildschirms erstellen und ihn dann direkt mit Anmerkungen versehen, um bestimmte Stellen hervorzuheben oder eine Notiz hinzuzufügen. Es läuft unter MacOS und hat sich als weitaus praktischer als die meisten built-in Tools erwiesen.
Sonstige Tools
Es gibt noch ein paar andere Tools, die wir einsetzen, um unsere Produktivität und allgemeine Arbeitsabläufe zu optimieren.
Grammarly
Schriftliche Kommunikation ist ein wesentlicher Bestandteil unserer Teamkultur. Dabei hilft es enorm, Grammatik, Rechtschreibung und Satzstruktur von einem automatischen Editor korrigieren zu lassen. Grammarly lässt sich problemlos in unsere anderen Tools integrieren und trägt mit seinen Vorschlägen stets zu einer reibungslosen schriftlichen Kommunikation bei - sowohl intern, als auch im Austausch mit unseren Kunden.
Krisp
Als international verteiltes Team sind viele von uns oft unterwegs. Obwohl wir uns normalerweise einen ruhigen Platz zum Arbeiten suchen, kommen wir manchmal um laute Coworking Spaces oder andere Orte mit Hintergrundgeräuschen nicht drum herum.
Krisp.ai ist ein absoluter Lifesaver. Es blendet alle Hintergrundgeräusche aus - sei es ein lautes Café, ein bellender Hund oder Verkehr - und ermöglicht uns, problemlos und ohne Geräuschkulisse untereinander und mit unseren Kunden zu kommunizieren.
Karabiner
Mit Karabiner lässt sich deine Tastatur individuell anpassen (nur MacOS). So kannst du beispielsweise eine Taste einfach einer anderen zuordnen oder komplizierte Regeln aufstellen, welche Tasten wie verwendet werden sollen.
F.lux
F.lux entfernt im Laufe des Tages Stück für Stück das blaue Licht von deinem Bildschirm, was die Augen der Nachteulen unter uns besonders entlastet.