Wer Code schreiben will, braucht einen Code-Editor. Es lohnt sich, sich einen Guten zu suchen, denn man wird viel Zeit mit ihm verbringen und er ist schnell ein essentieller Teil des Computers.

Ich selbst bin noch immer auf der Suche nach einem Editor, der mich restlos zufrieden stellt.

Was ich will

Ein Editor mit dem ich glücklich werde müsste ein paar Mindestanforderung erfüllen.

  • Open Source
  • Erweiterbar durch Plugins
  • Cross-Platform zumindest für alle Unixoiden Systeme. Wer weiß schon was die Zukunft bringt.
  • schnell (auch bei wirklich großen Files mit mehr als 100000 Zeilen)
  • durchdacht und nicht durchwachsen. Man merkt einem Programm an ob es designed wurde oder mit der Zeit gewachsen ist.
  • Starken Language Support für die Sprachen, die ich oft benutze. Das ist im Moment hauptsächlich Haskell und Markdown.
  • Starke Shortcuts die das editieren erleichtern und schneller machen
  • Git Integration gerne auch durch Plugin
  • Build um Code auch mal direkt im Editor auführen zu lassen

Außerdem gibt es noch ein paar Standardfeatures, die ohnehin bei den meisten Editoren dabei sind, wie

  • Zeilennummern
  • Wortergänzung
  • Syntax Highlighting
  • Klammer Support für runde, eckige, geschweifte, spitze Klammern und was für die jeweilige Sprache noch als Klammer dient (bei Markdown zum Beispiel auch _, __, *, ** etc)
  • Distractionfree Programming (eher wenn man normalen Text schreibt und dafür keine Seitenleisten, Menüleisten, Vorschau… braucht)

Shortcuts

Shortcuts die ich besonders häufig verwende sind

  • Zeile löschen
  • Zeile dublizieren
  • Zeile verschieben (nach oben oder unten)
  • Zeile markieren
  • Wort markieren
  • nächstes gleiches Wort markieren (Multicursor)
  • zu Wort springen (mit fuzzy search oder regulären Ausdrücken)

Ich lerne langsam auch neue dazu (man muss sie ja dann auch verwenden), aber das braucht immer etwas Zeit. Im Idealfall finde ich einen Editor der all das erfüllt und verwachse so sehr mit ihm, dass alle Shortuts intuitiv werden.

Besonders toll (auch wenn ich es nie gelernt habe) finde ich die modularen Shortcuts beim vim:

  • man tippt 3 um den Befehl dreimal auszuführen, d für delete und aw für a word. Der Editor entfernt dann die nächsten 3 Worte.
  • man tippt d für delete und 0 für Anfang der Zeile. Der Editor entfernt alles vom Anfang der Zeile bis zum Courser.
  • man tippt 10 für zehnmal und x für delete Character und die nächsten 10 Buchstaben werden entfernt.

Wer das einmal verinnerlicht hat will das sicher nicht mehr missen.

große Files

Manchmal verprogrammiert man sich und erzeugt aus Versehen rießige Dateien. Manchmal muss man Logfiles anschauen und bearbeiten, die seit Jahren geschreiben werden. Manchmal muss man eine seltsame Datei im Editor aufmachen, weil man dann vielleicht versteht welches Format sie hat (funktioniert öfter als man denkt, probiert das mal mit PDF/Bilddateien/Websiten).

Deshalb muss mein Editor mit Files umgehen können, die seeeeeehr lang sind.

Language Support

Knifflig, da will man ja immer was anderes.

Für Markdown reicht mir eine Semi-Vorschau im Editor und ab und zu ein Blick auf das gerenderte (html-)Dokument im Browser. Immerhin ist Markdown (Aktuelle Lösung: Sublimetext im Distraction Free Mode mit den Paketen MarkdownEditing (dark) und Markdown Priview und Firefox mit dem Plugin Auto Reload).

Da kann man sich konzentrieren.

Für Haskell (und alle Sprachen die ich danach lerne) will ich die krasseste Unterstützung die auf diesem Planeten möglich ist, bitte. Ich wünsche mir

  • Syntax Highlighting
  • Qualifizierte Vorschläge und Ergänzungen
  • Snippets
  • Automatische Einrückung
  • Cabal Support
  • Linting
  • Warungen bei unnötigen imports
  • integrierte Documentation (auch zum offline abrufen)
  • Benchmarking
  • Automatische Berechnung von Signaturen

Sprich, wenn ich Code schreibe soll mein Editor zur mächtigen IDE werden. Das ist alles möglich (und im ghc schon angelegt), also keine Ausreden!

Die Kandidaten

Es gibt ein paar Kandidaten die erstmal in die engere Auswahl kommen. Ich werde zu den Einzelnen noch etwas schreiben, vielleicht (hoffentlich) kommen ja noch was dazu. Bis jetzt habe ich auf dem Schirm:

  • Sublime Text
  • Vim
  • Atom
  • Emacs

Ich habe schon einige Editoren getestet und mit den meisten bin ich nicht recht warm geworden. Von den vielen seien hier erwähnt:

Wer noch Tipps für mich hat, immer her damit. Die Mailadresse steht zum Beispiel im Impressum.

To be continiued…

Viele Programme besonders unter Unix kann man sogenannten configs (“Konfigurationsdateien”) tunen. Es sind einfache Textfiles, in die man Anweisungen für das Programm aufschreibt und die man dann an eine bestimmte stelle im Dateisystem legt, wo sie das Programm dann auch findet.

Es gibt ein paar Dinge, die einem recht schnell klar werden wenn man sich mit configs beschäftigt:

  • In einer config kann sehr viel Arbeit drin stecken.
  • Wenn man sich mit dem Programm noch nicht auskennt ist es oft nützlich Beispielconfigs zu haben.
  • Die Syntax ist nicht einheitlich festgelegt. Zumindest kann man meistens mit # auskommentieren.
  • configs können beliebig komplex und kompliziert werden.
  • Bei manchen Programmen sind sehr nützliche Beispielconfigs gleich mitgeliefert.
  • Es ist nicht immer klar, wo die config zu einem Programm liegen soll. Oft (naja, eher ab und zu) liegt sie unter ~/.config/programmname oder direct im home. Dann heißt sie oft ._programmname_rc (das rc steht angeblich für “run commands”, aber das halte ich für keinen guten Namen).

Wer ein bestimmtes Programm oft verwenden will hat wahrscheinlich einen Vorteil, wenn er ein bisschen in dessen config rumspielt.

Beispiel!

Meine bashrc (die die Kommandozeile an meine Bedürfnisse anpasst) sieht im Moment so aus:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# User specific aliases and functions

# ls: als detailierte Liste mit Indikatoren (*/=>@|) anzeigen
alias ls='ls -F -l'

# bei rm und mv immer nachfragen, bevor man was kaput macht
alias rm='rm -i'
alias mv='mv -i'

# bei less soll die tablaenge immer 4 sein
alias less='less --tabs=4'

# gramps soll auf Deutsch laufen
alias gramps='LANG=de_DE.UTF-8 gramps'

# dump .o and .hi files in an extra directory
alias ghc='ghc -outputdir=ghc_outputdir'

# rm .o and .hi files
alias ghcleanup='rm *.o *.hi'

# very simple promt.  
export PS1="\[\e[00;31m\]\W\[\e[0m\]\[\e[00;37m\] \[\e[0m\]\[\e[00;31m\]\\$\[\e[0m\]\[\e[00;37m\] \[\e[0m\]"

# my editor
export EDITOR="subl -n -w"

Versionskontrolle für configs

Mir ist relativ schnell bewusst geworden, dass ich meine configs mit git versionieren möchte. Deswegen liegt neben jeder config, mit der ich mich beschäfftigt habe eine .git Datei. (Wer sich mit git nicht auskennt, sollte sich mal damit beschäftigen. Wirklich)

Das hat sich für mich schon das eine oder andere mal ausgezahlt, wie es halt mit Verionskontrolle so ist.

Freiheit für configfiles!

Ich finde, dass noch zu wenig configs im Internet stehen. Oft einmal hätte ich das eine oder andere Beispiel brauchen können und habe keines gefunden.

Deshalb stelle ich alle meine configs öffentlich ins Netz und zwar auf Github.

Configs auf Github

Warum github?

Dafür gibt es ein paar einfache Gründe:

  • Ich versioniere mit git
  • Ich mag die Website von Github
  • Man bekommt dort beliebig viele öffentliche Repositorys

Wie macht man das?

Es ist wirklich einfach, Github selbst liefert eine gute Anleitung (siehe Bild).

add remote

Ich schreibe die Schritte hier trotzdem nochmal übersichtlich auf.

config auf Github hochladen

  • Schreibe und bearbeite ein configfile, hier als Beispiel die .bashrc
  • Versioniere es mit git
  • Lege ein Konto auf Github an. Wenn es ok für dich ist, dass dein Code öffentlich ist reicht ein kostenloses Konto absolut aus. Neues Repo
  • Erstelle auf Github ein neues Repository (idealerweise gleich mit einer freien Lizens)
  • Füge mit

    git remote add origin [PfadZuDeinemRepository]
    

    dein neues Repository zu git hinzu.

  • Schiebe deinen aktuellen Stand zum Remote mit

    git push origin master
    

    oder (noch kürzer) mit

    git push
    

    zu Github.

  • Gib deinen Username und dein Passwort an.

configs auf Github aktualisieren

Wenn man später nocheinmal etwas an seiner Config ändert, so comittet man mit git und führt dannach noch einmal den Befehl

git push

aus. Fertig.

Wo liegen die configs denn jetzt?

https://github.com/USERNAME

Ist die Welt dadurch besser geworden?

Ja, denn jetzt sind die configs…

  • öffentlich einsehbar für alle, die sich gerade damit herumschlagen. Diesen Menschen hast du geholfen.
  • auf Github vor Datenverlust geschützt. Wenn der Computer abschmiert kannst du sie dir einfach wieder hersyncen, selbst wenn du sie sonst nicht gebackupt hast.
  • syncron auf allen deinen Rechnern und Geräten, denn du kannst, stat alles mehrmals zu schreiben einfach deine configs dorthin _pull_en, wo du sie hinhaben willst.

Nachtrag zur RSS Software:

Pritlove, dessen Frueher noch frueher ist als meines

Na gut, ich sehe es ja ein…

… ich hab was vergessen.

Wer nur ein Gerät hat auf dem er Nachrichten ließt oder wem Sync allgemein auf den Keks geht oder keine Lust hat irgendwas in der Cloud zu machen oder was weiß ich - der kann auch einfach alles in einem Programm haben. Man installiere dazu einen Newsreader auf einem seiner Geräte.

Der Workflow

  • Ich finde eine interessante Website im Internet und aboniere sie in meinem Newsreader. Ab jetzt beobachtet mein Feedreader die Website.
  • Ein Autor schreibt einen Artikel auf der Website.
  • Wenn ich meinen Feedreader öffne erkennt er den neuen Inhalt, befreit ihn von dem Websitedesign (so gut wie möglich) und legt ihn zum lesen bereit.
  • Ich lese die neuen Artikel von verschiedenen Websiten, alle in einem Programm gebündelt.

Der Zwischenschritt über den RSS Reader fällt also weg.

Vorteile

  • Die Feeds liegen nicht in der Cloud
  • Ich hab alles an einer Stelle und muss nicht hoffen, dass alle Programme gut aufeinander abgestimmt sind (oder evtl sogar mit Plugins nachhelfen)
  • Die Einstiegshürde ist niedriger.

Nachteile

  • Kein Sync. Sobald ich auf mehreren Geräten gleichzeitig lesen will, funktioniert es nicht mehr.
  • Der Newsreader muss jede abonierte Website selbst besuchen (und verbraucht dabei evtl wertvolles mobiles Datenvolumen). Er kann sich nicht einfach mit einem (!) Server verbinden, der das schon für ihn gemacht hat.

Zusammen führt das dazu, dass man (zumindest wenn man ab und zu auf dem Telefon Feeds lesen will) sich lieber nach einer Serverseitigen Lösung umsehen sollte. (Meine Meinung)

Clients

Wer das ganze mal testen will:

  • NetNewsWire: für OSX, freundliche Empfehlung von Tim Pritlove (der nach eigener Aussage zur Zeit kein RSS benutzt), sehr schick und wird gerade neu geschrieben (es gibt ne public Beta!), fühlt sich dabei sehr durchdacht an. NNW ist ein echtes Urgestein (seit 2002 dabei) und wird immernoch/wieder aktiv weiterentwickelt. Respekt. Support bis in alle Ewigkeit
  • Reeder: für iOS kann das auch. Spricht ja auch nichts dagegen, dass auch noch zu unterstützem - ich finde es auf dem Telefon halt nur halbgar
  • Opera & Firefox: Browser können auch RSS Feeds verarbeiten. Es macht irgendwie Sinn, soetwas in den Browser einzuarbeiten, aber ich konnte mich nie damit anfreunden. Danke an Fernsehmüll für den Tipp

Noch mehr Software

Meine Blogartikel erhaben eigentlich nie den Anspruch auf Vollständigkeit. Feedback ist natürlich sehr willkommen (wirklich, ich freue mich dann).

Eine sehr viel längere Liste für RSS-Software findet ihr hier.

tldr: RSS gehört für mich zu den wichtigsten Bausteinen des Internets. Ich finde jeder sollte davon wissen. Es gibt große Auswahl an guter Software.

Eine Website besteht aus zwei Teilen: Der Inhalt (RSS) und das Design (CSS). Bei vielen Websiten interessiert mich nur der Inhalt und eigentlich auch nur, wenn etwas neues dazu kommt. Bei Blogs zum Beispiel.

Ein RSS-Reader ist wie eine Websiten-Überwachungsstation, die Websiten beobachtet, schaut was sich verändert und mir das wichtige (den neuen Inhalt) zuliefert. Sehr praktisch ist das zum Beispiel für

  • Blogs, weil da selten neue Artikel auftauchen, die dann aber meist sehr interessant sind
  • Nachrichtenseiten, weil die sich permanent ändern und man per RSS nur den Inhalt übersichtlich aufgelistet bekommt
  • totgesglaubte Seiten, weil man sie ohne Mehraufwand weiterverfolgen kann und ein plötzliches wiederaufleben sofort mitbekommt
  • Podcasts, denn das sind (technisch gesehen) Audioblogs, die sich sehr ähnlich verhalten
  • Social Networks die einen Newsstream anbieten, den man oft auch per RSS abonieren kann (zB: Github, App.net, reddit)

Workflow

  • Ich finde eine interessante Website im Internet und aboniere sie. Ab jetzt beobachtet mein Feedreader die Website.
  • Ein Autor schreibt einen Artikel auf der Website.
  • Mein Feedreader erkennt den neuen Inhalt, befreit ihn von dem Websitedesign (so gut wie möglich) und legt ihn zum lesen bereit
  • Ich öffne den RSS-Client auf meinem Telefon oder Rechner. Er fragt meinen Feedreader was es neues gibt und bekommt einen Haufen neuer Artikel.
  • Ich lese die neuen Artikel von verschiedenen Websiten, alle in einem Programm gebündelt.

Feed Reader

Die Websiten-Überwachungsstation.

Früher…

Es gab eine Zeit, da gab es in erster Linie einen Feed Reader: Den Google Reader. Er war wirklich toll und fast jeder hat ihn benutzt. Kaum ein Client hat etwas anderen unterstützt, wozu auch? Doch dann hat Google den Reader eingestampft und das war ein echter Schock damals. Keiner wusste wirklich warum und niemand wusste, was man stat dessen benutzen sollte.

Heute…

Im Nachhinein betrachtet hat es dem Ökosystem aber gut getan. Viele neue Dienste wurden aus dem Boden gestampft oder aus der Versenkung hervorgehohlt. Besonders auffällig waren dabei (nach meiner Zuneigung sortiert)

  • tiny tiny RSS: (kurz: ttrss) Open Source, muss man selbst hosten, Multiuser Support, konfigurierbar, langsame aber stabile Entwicklung - benutze ich selbst und kann es nur empfehlen ttrss im Browser mit dem Google-Reader Theme
  • Fever: einmal kaufen, für immer besitzen, selbst hosten, fancy Features… der Entwickler antwortet leider nicht auf Emails, also hab ichs nicht weiter getestet
  • Feed Wrangler: 19$/Jahr, ich habe nur Gutes gehört
  • Feedbin: 30$/Jahr, sieht ganz schnuffig aus, kann aber nicht viel dazu sagen
  • Feedly: freemium, sehr viele User, schlechtes Userinterface, da war ich schnell wieder weg. Vielleicht sind sie inzwischen besser geworden.

Die werden inzwischen von allen gängigen Rss-Clients unterstützt, die Ausnahme ist leider ausgerechnet ttrss. Deswegen hat sich jemand ein Plugin ausgedacht, dass die Fever-Api nachimplementiert. Das funktioniert hervorragend und deswegen kann man auch als Opensourceler alle schicken Clients voll ausnutzen. Eine gute Anleitung für das Plugin findet man zum Beispiel hier.

Clients

Verbingung zur Überwachungsstation

Ich lese meine Feeds zu 95% auf dem Telefon (Es geht zur Not auch auf der Website des Feedreaders). Da der Client das Programm ist, das ich letztlich benutzte (oft mehrmals täglich) und auf dem ich auch lange Artikel lese zahlt sich hier gut designte Software besonders aus.

Getestet und für gut befunden

… habe ich diese drei:

  • Reeder: für iOS, einfach, schick, schnell zu bedienen Diese App benutze ich jeden Tag am häufigsten
  • unread: für iOS, fancy und schick, von einem Hardcoredesigner gemacht unread fühlt sich irendwie undgewöhlich an
  • Reeder: für OSX, mit der Tastatur superschnell bedienbar und angenehm extrem schick und leicht zu bedienen. Wenn nur jeder Desktop Client so wäre wie Reeder...

Sie alle funktionieren mit den oben genannten Feedreadern.

Weitere Clients

… für verschiedene Betriebssysteme:

  • Liferea: für Linux, mit GUI. Da scheint es mir wenig gute Alternativen zu geben. Mir gefällt das Design nur so mittel und ich habe noch nicht rausgefunden wie ich es ändern kann, aber eigentlich tut der schon das Richtige. Liferea
  • der offizielle ttrss-Client für Android,
  • Mr Reader: fürs iPad, mit netten Themes und einer ordentlichen Website. Ich kenne Leute die sehr zufrieden damit sind. Sieht gut aus.
  • Press: für Android, der Till benutzt das und ist zufrieden
  • ReadKit: für OSX, Client für alle möglichen Dienste (unter anderem Pocket und eben Fever), ganz nett und eigentlich auch zuverlässig, offline nur mittelmäßig, irgendwie konnte ich mich nie so richtig damit anfreunden Leider kann man mit ReadKit offline nichts in Pocket reinschieben.

Fazit

Mein Leben hat sich durch RSS ernsthaft vereinfacht. Ich bin besser informiert und muss weniger Aufwand treiben. Wenn jemand das auch mal ausprobieren möchte und Hilfe braucht kann er/sie mich gerne anschreiben.

(Alles was in diesem Eintrag steht habe ich übrigends von Jonathan Krebs, danke.)

Aufgabenstellung: Wir wollen die Bildschirmhelligkeit einstellen und dabei nur das Terminal verwenden.

Einfach

Das Programm xbacklight macht alles was wir wollen. Die Helligkeit wird in Prozent gemessen. Wir können sie abfragen:

$ xbacklight -get
70

Und natürlich kann man den Wert selbst festlegen:

$ xbacklight -set 80

Mehr will man ja meistens garnicht.

Nachteil: Die Helligkeitsstufen sind recht grob. Außerdem ist die niedrigste Helligkeit immer noch recht hell.

Schwer

Es geht auch über das Filesystem:

$ cd /sys/class/backlight/intel_backlight/

Wer den Pfad nicht findet kann es mal mit find versuchen. Bei mir sah das so aus:

$ find -name 'backlight' 2>/dev/null~
./var/lib/systemd/backlight
./sys/devices/pci0000:00/0000:00:02.0/backlight
./sys/class/backlight
./usr/lib/modules/3.14.2-200.fc20.x86_64/kernel/drivers/video/backlight
./usr/lib/modules/3.11.10-301.fc20.x86_64/kernel/drivers/video/backlight
./usr/lib/modules/3.13.10-200.fc20.x86_64/kernel/drivers/video/backlight

Irgendeiner der Ordner wird schon der sein, den wir brauchen, bei mir wars das dritte Ergebnis (ausprobieren).

Hier angekommen schauen wir uns um (ls -l) und sehen 2 wichtige Dateien:

  • max_brightness Hier steht genau eine Zahl drin (bei mir 851). Die Datei ist read only, auch für den root, hier kann man also nichts machen. Da es soetwas wie _minbrightness nicht gibt kann man annehmen, das die Untergerenze 0 sein wird.
  • brightness Die Zahl die hier drin steht bestimmt die Helligkeit. Heureka! Wir können sie als superuser leicht ändern.
$ su
Password: 
# echo 400 > brightness 

Die Helligkeit ändert sich sofot. Wunderbar. Und wenn wir mit xbacklight die Helligkeit neu einstellen, ändert sich die Zahl. Alles macht Sinn.

Achtung: Wer glaubt, er muss die brightness hier einfach auf 0 setzten sollte sich vorher überlegen, ob er das wieder rückgängig machen kann wenn der Bildschirm völlig schwarz ist.

Verspielt

Wir schreiben in kurzes Python Skript (sinus.py) und legen es auf dem Desktop ab.

#!/usr/bin/python
# Gibt alle 0.05 Sekunden einen Wert auf einer Sinuskurve aus.
import math
import time, sys

# max_brightness
Max=851

while True:
	s=math.sin(time.time())
	print(int((s*Max/2)+Max/2))
	sys.stdout.flush()

Dann gehen wir zurück zu unseren magischen Dateien brightness und _maxbrightness und führen als superuser aus:

python /home/johannes/Desktop/sinus.py  > brightness 

Ergebnis: Die Helligkeit oszilliert mit einer Periode von etwa 6 Sekunden (Für die Besserwisser: 2*pi). Wenn man das Programm mit Str+C abbricht, bleibt die Helligkeit wie sie gerade ist.

Und mal ganz ehrlich: Das ist es doch was wir die ganze Zeit wollten.

Jetzt sitze ich also für kurze Zeit (meine Freundin steht in den Startlöchern, um den alten abzunehmen) auf 2 Laptops und soll mein Produktivsystem umstellen.

Dateien

  • alles was in Home liegt (außer den Ordnern “Owncloud”, “Dropbox” und “Downloads”)
  • Meine PGP-Keys, vor allem die Privaten Schlüssel (und das soll ordentlich passieren, nicht über Dropbox)
  • Bilder, Musik, Filme

Noch mehr? Ich weiß nicht genau. Wie viel information liegt in den Apps?

Programme

Wenn man das Betriebssystem wechelt wechselt man fast alle seine Programme. Schwierig schwierig…

Konversation Table

Um nicht völlig unvorbereitet da zu stehen haben wir (Till und ich) eine gemeinsame Tabelle angelegt, in der wir im vorhinein mal Gedanken dazu machen. Im Moment sieht sie etwa so aus:

  • Dropbox -> Owncloud
  • 1Password -> KeepassX2
  • Mail -> Geary, Thunderbird
  • Kalendersync -> Owncloud
  • Kontaktesync -> Owncloud
  • Kontakte Client -> Gnome Contacts
  • Browser -> Firefox
  • Podcast aufnehmen -> ardour (Empfehlung von hier)
  • Maps -> Irgendwas mit OpenStreetMap
  • Appstore -> Paketmanager, konkret yum
  • Dasy-Disk -> baobab
  • keyword search im Safarie -> Instant Quick Search
  • Marked -> Firefox

Im Detail

Für beinahe jedes Programm muss ein angemessener Ersatz gefunden werden. Besondere Schwierigkeiten ergeben sich bei:

  • 1Password: Die Alternative (unserer Wahl) heißt KeePassX. Aber die Passworte umzuziehen stellt sich als nicht trivial heraus. 1Passwort kann als CVS Datei exportieren, aber das schluckt KeePassX nicht direkt. Vielleicht muss ich noch einen Converter schreiben. (Ich hab aber keine Lust)

  • Marked: Ich schreibe diese Artikel alle in Markdown. Marked zeigt eine .md Datei gerendert an, wärend ich sie in einem anderen (beliebigen) Programm bearbeite. Das funktioniert Mac-typisch sehr schick. Für Linux habe ich soetwas noch nicht gesehen. Es gibt ein Firefox Plugin, das ähnlich arbeitet, aber die Ergebnisse sind nicht halb so schön und Umlaute funktionieren nicht. OSX: Marked (rechts) rendert das .md-File wunderbar. Leider gibt es Version 2 nicht im App-Store, deshalb hier Version 1. Linux: Firefox versucht das .mdown-File anzuzeigen. Das Encoding funktioniert offensichtlich noch nicht perfekt.

  • Editor: Ich schreibe demnächst nochmal was zu Editoren, hier nur so viel: Wer einen mächtigen graphischen Editor unter Linux sucht und nicht die vi-Shortcuts lernen will hat echt ein Problem.

Backup

Ich habe mir noch keine Backupstrategie für Linux überlegt. Ich weiß das das nicht gut ist, aber alles braucht seine Zeit. Backup mache ich, wenn ich nur noch einen Laptop habe. Gibt es Tipps?

Wirtschaftsprofessor : “Also wenn Sie einen Text erstellen wollen, dann kommen Sie an den Microsoft Office Paketen nicht vorbei.”

Ach so ist das.

Als wir diesen Post in einem sozialen Netzwerk sahen mussten wir alle sehr lachen: Diese Wirtschaftler in ihrer kleinen Microsoft-Welt. So süß.

Aber gerade weil diese Aussage aus einem akademischen Umfeld kommt, möchte ich diese Aussage auf keinen Fall so stehen lassen. Darum hier eine (sehr kleine) Auswahl aus dem Großen Feld der Programme, mit denen man hervoragend “einen Text schreiben” kann.

Latex

Die klare Nummer 1. Mit Latex wird im Naturwissenschaftlichen Umfeld alles geschrieben, was auch nur Halbwegs professionell wirken soll: Wissenschaftliche Arbeiten, Skripte, Handouts, Beamerfolien…

Formeln

Die größte Stärke von Latex sind eindeutig Formeln - in keinem mir bekannten Programm werden diese auch nur annährend so gut unterstützt. Nicht nur wird jedes Zeichen (und sei es auch noch so absurd) unterstützt, die Formeln werden auch ordentlich und sauber dargestellt. Beispiele findet man unter anderen hier. Man ist nicht auf einen abstrusen Formeleditor angewiesen, sondern kann sie direkt auf der Tastatur tippen. Und sie sehen immer gut aus.

Dokumentenklassen

Da Latex wirklich weit verbreitet ist, gibt es eine große Anzahl von Vorlagen für alle möglichen Zwecke. Beispiele findet man hier. Weil für Beamerfolien und Skripte die gleiche Quelle verwendet werden kann sind diese auch wunderbar kompatibel. Man muss in erster Linie die Dokumentenklasse ändern (zum Beispiel von article auf beamer).

Trennung von Inhalt und Format

Texte schreiben ist Arbeit. Es ist schwierig, braucht Konzentration und man muss viel nachdenken.

Dinge auf die ich beim schreiben achten will:

  • mein Text
  • meine Quellen

Dinge auf die ich beim schreiben nicht achten will:

  • Zeilenabstände
  • Schriftgröße
  • Schriftart
  • Rechtbündige, Linkbündig, Mittig, Blocksatz
  • Worttrennung, Zeilen und Seitenumbrüche
  • Header und Footer
  • Textbreite und Korrekturrand

Deswegen ist in Latex der Inhalt von der Formatierung getrennt. So kann man sich auf das konzentrieren, was wichtig ist.

Verfügbarkeit

Latex ist nicht nur schon recht alt sondern auch Opensource und kann auf allen denkbaren Systemen installiert werden. Das schließt Windows, MacOS X, Linux, Bsd und Solaris ein, aber aber auch Mobile Systeme (Android, iOS …). Wer eine Wissenschaftliche Arbeit auf seinem Tablet oder gar Telefon schreiben will sollte zwar vielleicht nochmal über das Wort “Produktivität” nachdenken, aber möglich ist es.

Einfach drucken

Machen sie mal einen eifachen Test: Gehen sie in einen Copy-Shop (die Läden, wo man seine Arbeiten drucken und binden lassen kann) und fragen sie nach, welche pdfs mehr Probleme machen: Die mit MS-Word erstellten oder die mit Latex. Microsoft hält sich nicht (nur so halb) an den PDF-Standard. Latex schon. Das merkt man zum Beispiel beim drucken, wo (auch explizit Windows-kompatible) Drucker regelmäßig scheitern. Die Open Source Gemeinde dagegen ist gut im Einhalten von Standards, denn eine wichtige Unix-Grundregel lautet: “Programme sollen gut zusammen arbeiten können.”

Lernkurve

Die Lernkurve bei Latex ohne Frage steiler als bei anderen Programmen (das Stichwort heißt hier: What You See Is What You Mean). WYSIWYM ist nicht selbstverständlich. Quelle: http://xkcd.com/1341/ (Bildquelle: http://xkcd.com/1341/) Wem das zu schwierig ist, der sei auf Lyx verwiesen, einem Editor der vielleicht mehr den Maßstäben eines Word-Anhängers genügt, aber dennoch einwandfreien Latex-Code erzeugt. Lyx ist übrigends auch der Editor meiner Wahl (zumindest wenn es um irgendetwas geht was jemand anderes nochmal lesen soll).

Austesten

Wer keine Lust hat sich was zu installieren kann Latex auch einfach mal im Browser testen, inzwischen sogar collaborativ.


All das führt dazu, dass (natur-) wissenschaftliche Arbeiten die nicht in Latex geschrieben sind oft sehr schräg von der Seite angeschaut werden.

Markdown

Markdown besticht durch Einfachheit. Man sucht sich irgendeinen Editor, tippt einfach drauf los und es kommt das heraus, was man meint. (TODO:Format Überprüfen) Einfache Beispiele:

  • Aufzählungen: für einfache Aufzählunen wie diese hier

    • bli
    • bla
    • blub

    tippt man einfach

* bli 
* bla 
* blub
  • Überschriften: Man tippt # Kartoffelsalat und bekommt eine Überschrift, schön groß und so.
  • Hyperlinks: Keine Rechtsklick und seltsame Menüs - stat dessen tippt man mitten im Text [lalala](www.google.de) und bekommt lalala. Gerade diese Syntax für Links ist gerad drauf und dran der de fakto (TODO: Prüfen) Standard in allen möglichen Bereichen zu werden.

Wenn man dann seinen Text fertig hat kann man ihn mit einem der diversen Programme dafür in Pdf, Html oder sonst ein Format umwandeln lassen. Alle Inhalte dieses Blogs sind zum Beispiel in Markdown geschrieben. Und wer Formeln mag kann sie mittels MathJax auch im Latex-Format tippen.

Die Vorteile sind bestechend:

  • Lernkurve: Flach, sehr flach. Eigentlich hat jeder schon mal eine Liste mit Asterisken (so heißten diese kleinen Sterne: * ) markiert.
  • Schreibgeschwindigkeit: kein herumgeklicke und gesuche in komplizierten Menüs - man muss die Hände nicht von der Tastatur nehmen
  • Vielfalt: Markdown kann in ziemlich jedes Format konvertieren
  • Verbreitung: Es gibt eine Vielzahl von Editoren, die sich besonders gut für Markdown eignen (mit live-Vorschau, Formatierungshilfe ect). Ich empfehle hier mal Haroopad, der ist open Source und für alle Desktop-Betriebsysteme
  • Mobil: Wegen der großen Einfachheit macht Markdown übrigends auch für Tablets und Telefone Sinn, passende Apps gibt es wie Sand am Meer.

Libre Office / Open Office

Ok, ich gebs zu: Latex und Markdown sind eigentlich keine Programme sondern Standards (sogenannte Markaup languages), die in allen Möglichen Editoren geschrieben werden können. Wer sich aber gar nicht vom Konzept der Officepakete losreißen kann sei auf Libre Office und Open Office verwiesen. Mit jedem dieser Pakete (die miteinander nur wenig zu tun haben) bekommt man einen Ersatz für Word, Excel und Powerpoint (Für den Mac gibts dann noch iWork). Der benutzte OpenDocument Standard ist teilweise auch kompatibel mit den Formaten die Microsoft verwendet. Ich benutze sie selbst nicht aber ausprobieren kostet ja nichts. Hier sind die Links: (Libre Office)[http://de.libreoffice.org/] & (Open Office)[http://www.openoffice.org/de/]

irgendein Editor

Dir gefallen die alle nicht? Dann nimm doch einfach irgendeinen Editor. Es gibt ja wahrhaftig genug. George R. R. Martin, der Autor der Vorlage der Serie “Game of Thrones” schreibt nach eigener Aussage zum Beispiel in WordStar 4.0, einem Editor von 1987. Wer auf viele Features steht kann sich ja mal mit vi, vim und emacs beschäftigen.

Und warum nicht einfach Microsoft Office?

Die vorgestellten Programme haben alle (bis auf WordStar) eine Gemeinsamkeit: Sie sind Open Source und basieren auf freien und offenen Standards. Das ist bei MSOffice nicht der Fall. Das hat mehrere wichtige Folgen:

  • Cross Platform: (TODO:Rechtschreibung) Man kann sie auf jeder Platform (Windows, MacOS X, Linux…) verwenden.
  • Kostenlos: Man kann sie einfach runterladen und ausprobieren. Keine Lizenzkeys, keine Trialversionen. Man bekommt das volle Paket, einfach so. Eine Private Lizenz von Office (für genau 1 Computer) kostet zur Zeit 70€.
  • Frei: Wissen muss frei sein, deswegen haben wir unabhängige Schulen und Universitäten. Für mich macht es Sinn dieses Wissen auch so abzulegen, dass es frei verfügbar ist - auch wenn man seine Soft- und Hardware nicht von Firmen aus den USA lizensieren lassen möchte.

Ich finde dass sich die Aussage, man käme um die Microsoft Office Pakete nicht herum, nicht halten lässt.

Warum?

Für mein Linux Projekt wollte ich einen neuen Computer. Mein treuer Begleiter bisher war ein 13 Zoll MacBook Pro (Early 2011). Der ist auch noch gut, für den Wechsel gab es aber mehrere Gründe:

  • Ich habe schon einmal (2010) Linux (Ubuntu 10.10) auf einem MacBook laufen gehabt. Es war die Katastrophe: Laut, schlechte Hardwareunterstützung und die Batterie hielt nur noch 2 Stunden. So etwas wäre also schade um die Hardware, die mit OSX noch hervoragend läuft.
  • Meine Freundin braucht einen neuen Computer und möchte von Windows auf OSX umsteigen (dazu vielleicht ein andermal mehr). Das MacBook wird also weitergenutzt und ich spare mir das umständliche weiterverkaufen.
  • Ein MacBook kann man quasi nicht upgraden. Ich möchte gerne einen Computer, bei dem das möglich ist.

Wie man einen Laptop auswählt

Ich habe Till gefragt und er hat mit mir einen ausgesucht. Till kann so etwas sehr gut und ich beschreibe kurz den Vorgang:

  1. Man überlegt sich vorher worauf man Wert legt. In meinem Fall war das:
    • möglichst viele Teile sollen austauschbar sein (Akku, Speicher, Festplatten, SSDs ect)
    • Gewicht (ich bin viel unterwegs und nehme meinen Computer quasi immer mit)
    • Bildschirm (ordentliche Auflößung, matt)
    • 13 Zoll hat sich in der Uni bewärt. Damit passt man auf jeden Tisch und die Bildschirm ist groß genug zum ordentlich arbeiten
    • Weniger als 8 GB Ram sind 2014 lächerlich
    • Wie viel will ich ausgeben?
  2. Man sucht die Website Geizhalz auf. Dort hat man eine große Auswahl an Hardware und ein erstaunlich gut funktionierendes Filtersystem, mit dem man seine Wahl von 1. sehr genau einstellen kann.
  3. Man betrachtet die übrig gebliebenen Geräte und trägt mögliche Kandidaten in eine Liste ein. Bei zu wenig Auswahl lockert man den Filter ein wenig, aber nicht zu sehr. Wenn man im Vorhinein schon Kandidaren hat kommen die auch auf die Liste.
  4. Die Liste wird zur Tabelle erweitert. Technische Details werden von den offizillen Seiten zusammengsucht, Besonderheiten aufgeschrieben. Unterpunkte sind zum Beispiel:

    • Vorteile
    • Nachteile
    • Preis
    • Auflösung
    • Prozessor
  5. Jetzt wird es schwierig. Bei mir blieben 3 Modelle zur Auswahl, bei anderen vielleicht mehr. Wir haben Testberichte gelesen und diskutiert. Welches Gerät passt am besten, welche Nachteile wiegen am schwersten? Wo bin ich am ehesten bereit für Abstriche? Hier ist es wirklich gut eine zweite Person dabei zu haben - besonders wenn sie einen kennt und technische Expertise hat.

Und zum Schluss schläft man eine Nacht drüber und bestellt ihn. So einfach ist das.

Noch ein paar Anmerkungen

  • Die vorgestellte Methode hat mir sehr geholfen aus der unüberschaubaren Flut von angeboten eine Wahl zu treffen, mit der ich zufrieden bin. Ich empfehle sie hiermit weiter.
  • Es hilft, im Elektronikmarkt auch mal ein paar Geräte angeschaut zu haben.
  • Als Student bekommmt man Rabatte, als Berufstätiger kann man das Gerät eventuell absetzen.
  • Die Rechnungen hebt man in jedem Fall gut auf.

Also Linux, na toll. Und da gibt es ja auch nur unendlich viele davon (Statistiken gibts auf Distro Watch). Natürlich kann man auch im Nachhinein wechseln, aber es wäre ja schon gut, wenn man was hätte, wo man sich wohl fühlt. Wie also auswählen?

Meine Kriterien

  • modern: wenn es neues Zeug und coole Erfindungen gibt, will ich davon profitieren
  • stabil: so modern nun auch wieder nicht, dass ständig alles abstürzt
  • einsteigerfreundlich: ein System, das man auch als angagierter Anfänger meistern kann, eine Anlaufstelle für meine großen Haufen von Fragen
  • lebendig: ein System das beständig weiterentwickelt wird, mit Sicherheitsupdates, neuste Versionen und Kompatibilität für alles

Mehr oder weniger nimmt so ziemlich jede Distribution für sich in Anspruch, das alles zu erfüllen. Ein guter Startpunkt für die Recherche ist vielleicht hier.

Auf Tills Vorschlag hin haben wir uns erstmal für Fedora entschieden.

Warum ausgerechnet Fedora?

  • Fedora ist das Testvehikel von Red Hat Enterprise Linux. Deswegen gibts da immer den heißen Scheiß der vielleicht auch mal in Red Hat reinkommt. (+)
  • Das bedeutet für mich auch, dass die Entwicklung nicht morgen eingestellt wird, weil es an Geld mangelt. (+)
  • Außerdem ist die Führung der Distribution an eine unabhängige Institution abgegeben worden, die sind also nicht morgen evil und bauen jede Menge Backdoors und Werbung ein. (+)
  • Fedora ist eine von den größeren Distributionen, die von vielen Leuten (sogut man das halt feststellen kann) als Desktopumgebung benutzt wird. Da gibt es also eine Community. (+)
  • Bei einem ersten Reinschnuppern macht alles eine ganz gute Figur. Besonders fällt auf, das OwnCloud out of the Box unterstützt wird. Cool! (+)
  • Der Updatezyklus ist 6 Monate. Der Support für eine Version dauert 12 Monate, man kann also (nur) eine Version gefahrlos überspringen. Klingt fair. (+-)
  • Red Hat ist eine Distribution für Unternehmen. Entsprechend ist Fedora nicht in erster Linie als Desktopumgebung entworfen worden. Wir werden sehen, wie sich das auswirkt. (-)

Insgesammt klingt das recht vielversprechend. Mal sehen wie sich die Punkte bewahrheiten werden

TLDR: Seit ich das Fleisch vor dem anbraten noch mariniere hat sich meine Lebensqualität erhöht.

Ich wollte nur darauf hinweißen, dass mariniertes Fleisch nochmal so gut schmeckt. (Marinieren heißt quasi “in würzige Sauce einlegen”. Ich kannte es nicht bevors meine Freundin mir gezeigt hat, drum erwähne ichs lieber noch mal.)

Rezept

Ich hab keines genaues, darum gings hier eigentlich auch nicht. Ich nehme…

  • ein paar Asiatische Soßen
  • Senf
  • Essig
  • Peffer+Salz
  • eine geschnittene Chillishote (wenn mans scharf mag)
  • einen kleinen Schluck Wasser

…in irgendeinem Verhältnis. Einmal umrühren bis sich alles gelößt hat, das Fleisch dazu und ab in den Kühlschrank.

Im Internet stehen auch noch tollere Rezepte.

Einfache Grungregeln

  • Zwischen Einlegen und Zubereiten sollte Zeit vergehen, damit der Geschmack auch einziehen kann. 30 min - 6 Stunden
  • Man braucht weniger Marinade als man denkt
  • Wenn man zuviel gemacht hat kann man den Rest immernoch super zum anbraten benutzen und bekommt noch viel guten Geschmack heraus.

Aufwandseinschätzung

Extrem niedrig. Die Marinade macht man in 2 Minuten. Man muss nur dran denken es ein paar Stunden vor dem Kochen zu machen.

Tipp zum Schluss

Nicht nur Fleisch eingelegt werden, da geht noch mehr:

  • Zwiebeln
  • Tofu
  • Nudeln