Also check out the Computer Science Playlist!
Inhalt
Learn R in one Video
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:
- https://mobaxterm.mobatek.net/ (Client mit vielen Features)
- http://www.putty.org/ (Schlanker Client)
- Siehe auch https://www.heise.de/ix/heft/Wie-im-falschen-Film-3892743.html
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:
- Es werden zwei mathematisch mitteinander verbundene Schlüssel erzeugt.
- Ein privater Schlüssel, der geheim bleibt und auf dem eigenen PC/Laptop ist
- Ein öffentlicher Schlüssel, der öffentlich sein kann und auf dem jeweiligen Server hinterlegt wird
- 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.
The Python Graph Gallery
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!
DGfS-CL Düsseldorf 2017 – Picture of the Day VI
Nonliteral understanding of number words