FSI Korpuslinguistik

Studiengang Linguistische Informatik

Inhalt

Essential Emacs Tips

Das effiziente Arbeiten mit Emacs kann für viele Anfänger ein Ding der Unmöglichkeit sein. Warum nicht einfach Notepad nutzen? Oder gedit? Ein guter Editor soll das Leben einfacher machen, nicht schwerer.

Bei komplexeren Editoren wie Emacs (oder VIM) gilt: Erst wenn man die ersten Schwierigkeiten überwunden hat, wird das Leben leichter. Deswegen hier eine kleine Starthilfe für Anfänger, die sich schon mit den Grundlagen auskennen.

Emacs Server-Client

Kennt man die ersten Tastengriffe und fühlt sich so langsam wohl in Emacs, stellt man fest: Emacs zu starten, dauert eine Ewigkeit. Das liegt daran, dass Emacs nicht nur ein Editor ist, sondern eine voll einsatzbereite und bewaffnete Kampfstation LISP Umgebung. Lösen kann man dieses Problem, indem man Emacs in einem Server-Client laufen lässt. Hier wird ein Emacs Server Prozess gestartet, der dann im Hintergrund läuft und Dateien über den Emacs-Client geschickt bekommt. Dadurch öffnen sich Dateien in Sekunden.

Einen Emacs-Server startet man beim Hochfahren des Rechners:

emacs --daemon

Mit dem Emacs-Client öffnet man dann Dateien, entweder im Terminal (schneller) oder in einer grafischen Umgebung:

emacsclient myfile.txt # Grafisch

emacsclient -t myfile.txt # Terminal

Um noch schneller zu sein, kann man sich mit alias Shortcuts einrichten:

# Prüft ob Emacs-Server schon läuft und startet dann
alias edaemon='test -e "/tmp/emacs1000/server" || emacs --daemon'

# Emacs-Client Alias
alias e='emacsclient -t'

Diese schreibt man sich in die Konfiguration seiner Shell: ~/.bashrc

Emacs Pinky Problem

Schreibt man mit dem Zehnfingersystem, bleibt der Kleine Finger (Pinky) auf der a-Taste. Emacs nutzt primär die Strg-Taste. Also muss man um Strg-x zu drücken seinen Pinky ständig extrem verbiegen: Das Emacs Pinky Problem!

Eine mögliche Lösung ist: man macht die, normalerweise wenig genutzte, Feststelltaste (Caps Lock) neben der a-Taste zu einer Strg-Taste. Schon lässt sich Strg-x mit Eleganz und Leichtigkeit erreichen. Wie man die Taste umstellt hängt vom jeweiligen Betriebssystem ab. In Linux reicht meistens:

setxkbmap -option ctrl:nocaps de

Emacs StarterKits

Eine Standard Emacs Installation scheint für jemanden, der Umgebungen wie Ecplise oder Atom/Sublime gewohnt ist, ohne jeden Vorteil. Das liegt daran, dass Emacs sich über LISP Code erweitern lässt; und seit 1976 schreiben die Leute Erweiterungen: https://melpa.org

Als Anfänger ist es manchmal schwer, sich einen Überblick über vernünftige Erweiterungen zu machen. Daher gibt es sogenannte StarterKits für Emacs, also eine vordefinierte Konfiguration mit Erweiterungen:

https://www.emacswiki.org/emacs/StarterKits

Welches StarterKit für einen geeignet ist, kann Ich leider nicht sagen. Oft hilft nur Ausprobieren. Persönlich kann Ich die Konfiguration von Steve Purcell empfehlen, auf der auch meine eigene Konfiguration basiert: https://github.com/purcell/emacs.d

Remote Zugang im CIP-Pool

Auf alle Rechner im CIP-Pool kann man auch von außerhalb der Universität zugreifen. Dazu wird eine verschlüsselte Netzwerkverbindung mittels SSH aufgebaut. Hier eine kurze Anleitung, wie man sich diesen Zugriff auf seinem Rechner einrichtet.

Zum Verständnis: Es wird sich zunächst auf den Dialog/Gateway Server des FAU Rechenzentrum verbunden, von diesem Server aus hat man Zugriff auf das Universitäts-Netzwerk und auf den Korpuslinguistik CIP-Pool.

Linux / Mac OS

Die Einrichtung unter Linux/Mac OS ist trivial, da das Betriebsystem alles Software zum Zugriff bereits mitbringt.

1. Konsole/Terminal öffnen und per SSH auf den RRZE Dialogserver verbinden:

ssh idm-kennung@dialog.rrze.uni-erlangen.de

2. Vom Dialogserver in dem CIP-Pool verbinden. Zum Beispiel auf den Rechner clue21 (andere sind auch möglich):

ssh clue21.linguistik

Möchte man nicht ständig sein Passwort eingeben, kann man sich ein SSH Schlüssel generieren und sich so ohne Passworteingabe anmelden. Siehe unten.

Windows

Um eine SSH Verbindung unter Windows aufzubauen, benötigt man einen SSH Client für Windows. Mögliche Software ist zum Beispiel:

1. SSH Client öffnen und SSH Verbindung zum RRZE Dialogserver aufbauen. Beispiel für PuTTY:

2. Vom Dialogserver in dem CIP-Pool verbinden. Zum Beispiel auf den Rechner clue21 (andere sind auch möglich):

ssh clue21.linguistik

Möchte man nicht ständig sein Passwort eingeben, kann man sich ein SSH Schlüssel generieren und sich so ohne Passworteingabe anmelden. Siehe unten.

SSH Schlüsselpaar einrichten

Alternativ zur Verbindung mit Benutzername/Passwort, kann man sich ein SSH Schlüsselpaar (Asymmetrisches Kryptosystem) einrichten. Das grundlegende Konzept ist:

  1. Es werden zwei mathematisch mitteinander verbundene Schlüssel erzeugt.
    1. Ein privater Schlüssel, der geheim bleibt und auf dem eigenen PC/Laptop ist
    2. Ein öffentlicher Schlüssel, der öffentlich sein kann und auf dem jeweiligen Server hinterlegt wird
  2. Beim Anmelden prüft der Server den hinterlegten öffentlichen Schlüssel mit dem privaten Schlüssel und kann den Benutzer authentifizieren.

Die Generierung des Schlüsselpaars unter Linux/Mac OS ist trivial:

1.1 Konsole/Terminal öffnen und Schlüsselpaar erstellen:

ssh-keygen -t ed25519

1.2 Für Windows muss das Tool PuTTYgen (http://www.putty.org/) genutzt werden.

Bei der Erstellung muss kein Passwort hinterlegt werden. Nach diesem Schritt hat man zwei Dateien:

~/.ssh/id_ed25519 # Privater Schlüssel

cat ~/.ssh/id_ed25519.pub # Öffentlicher Schlüssel

ssh-ed25519 AAAAC3NzaC1lDDI1NTE5AAAAIPPNVfvaQQ1n8aKG+VFslDjN6yZNp91ZooYIZMppGkh/ markus@laptop

2. Dieser öffentliche Schlüssel muss jetzt auf dem jeweiligen Server hinterlegt werden. Der private Schlüssel muss geheim bleiben.

vi ~/.ssh/authorized_keys

Alle öffentlichen Schlüssel, die sich am Server anmelden können werden in diese Datei eingetragen.

 

Mathe für Computerlinguisten

Weil die Einführungsbücher in Mathematik oft zu generisch sind und es einen speziellen Kurs für Computerlinguisten gibt, haben wir uns hingesetzt und eine kleine Ansammlung an Mathematik für Computerlinguisten geschrieben:

https://github.com/martialblog/clmaths

Der Kurs befindet sich aktuell noch im Aufbau und wird in der nächsten Zeit noch erweitert. Außerdem, kann jeder an diesem Projekt mitarbeiten!