Tips zu spezieller Software
Postscript
Die vorlesungsbegleitenden Unterlagen werden z.T. als gzipped Postscript bereitgestellt. Falls Ihnen "gzip" nichts sagt, schauen Sie bitte in den Abschnitt Kompression.
Viewer und Konverter
Zur Verarbeitung von Postscript (PS) Dateien benötigen Sie folgende Software:
- den Postscript-Interpreter ghostscript, mit dem PS-Dateien auch auf nicht PS-fähigen Druckern gedruckt werden kann und der PS in beliebige andere Grafikformate konvertieren kann. ghostscript ist ein Kommandozeilenprogramm.
- das grafische Frontend ghostview mit dem PS-Dateien am Bildschirm angezeigt und interaktiv weiterverarbeitet werden können.
- Wenn Sie statt dessen den Acrobat Distiller verwenden wollen, dann lesen Sie bitte unbedingt den nächsten Abschnitt!
Beide Programme sind frei erhältlich von http://www.cs.wisc.edu/~ghost/. Für Windows müssen Sie die Programme von dort herunterladen und über das Setup-Programm installieren.
Unter Linux werden beide Programme mitgeliefert und meist bereits bei der Installation des Basissystems mitinstalliert. Allerdings sollten Sie anstelle von ghostview die komfortablere Oberfläche gv installieren.
Acrobat Distiller
Anstelle des freien Programms ghostview können Sie auch das kommerzielle Programm Acrobat Distiller zum Drucken verwenden, das es allerdings nur für Windows gibt. Bitte beachten Sie, dass der Acrobat Distiller in seiner Voreinstellung die Seiten verkleinert und den Rand abschneidet! Um das zu verhindern gehen Sie bitte wie folgt vor (Dank an Jasmin Laue für den Hinweis):
- Acrobat Distiller starten
- im Menü "Voreinstellungen" -> "Adobe-pdf Einstellungen bearbeiten"
- dort dann unten auf der Seite unter "Standardpapierformat" Breite auf "20,99", Höhe auf "29,7" und Einheit auf "Zentimeter" setzen
- dann diese Einstellungen speichern, mit "speichern unter"
- im nachfolgenden Dialog "Standard.jobotions" auswählen und die alte Datei überschreiben
Postscript-Bearbeitung
PSUtils ist eine Sammlung freier Tools zur PS-File Bearbeitung. Nützlich sind dabei insbesondere psnup zum Pflastern mehrerer Seiten auf eine und psselect zur Hilfe beim beidseitigen Drucken (erst alle geraden, dann alle ungeraden Seiten in umgekehrter Reihenfolge auswählen).
pspage ist ein kleines Perl-Script, das ich geschrieben habe zum nachträglich Einfügen von Seitenzahlen und Fusszeilen in PS-Dateien. pspage -? gibt die Aufrufoptionen aus.
Kompression, Archivformate
Dateikompression
Zur Kompression gibt es zwei weitverbereitete freie Programme: gzip und bzip2. Mit gzip/bzip2 komprimierte Dateien haben typischerweise die Endung .gz/.bz2. Im Vergleich zu gzip komprimiert bzip2 etwas besser, ist aber noch nicht so verbreitet und sollte deshalb nur in begründeten Fällen vorgezogen werden.
Archive
Um mehrere Dateien oder Dateibäume in ein Archiv zu packen gibt es die freien Programme tar und zip. Die Archive haben typischerweise die Endung .tar für ein unkomprimiertes TAR-Archiv, .tgz oder .tar.gz für ein mit gzip komprimiertes TAR-Archiv (tar-Option z) und .zip für ein ZIP-Archiv.
Grafische Oberflächen
Unter Win32 gibt es verschiedenen GUIs, die z.T. nicht alle oben angegebenen Formate unterstützen (die oben angegebenen Kommandozeilenprogramme sind natürlich auch unter Win32 nutzbar). Neben kommerziellen Programmen gibt es auch die freien Programme WiZ und 7-Zip.
Für Linux gibt es ebenfalls freie GUI's, z.B. karchiver (KDE-Utility).
ssh und sftp
Auf Ihre Praktikumsdaten können Sie über das Programm sftp zugreifen, das Bestandteil aller ssh (Secure Shell) Pakete ist. Der Aufruf erfolgt mit sftp [-oPort=...] user@rechner, Download von Daten geht dann mit get und Upload mit put; eine Liste aller Befehle erhalten Sie mit help.
Für Linux ist ein ssh-Paket bei allen Distributionen enthalten. Manche Distributionen starten nach der Installation auch den ssh-Server, den Sie aus Sicherheitsgründen unbedingt deaktivieren sollten (je nach Distribution über /etc/inetd.conf oder die Runlevel-Links in /etc/rc?.d bzw. die grafische Diensteverwaltung).
Für Windows finden Sie ssh im Cygwin-Setup im Abschnitt Net/openssh. Es gibt auch kommerzielle grafische Clients für Windows, eine eingeschränkte Version (Lizenzbedingungen lesen!) eines SSH-Secure-Shell Clients finden Sie z.B. auf dem FTP-Server der Hochschule im Abschnitt Software/Windows 9x.../Internet.
Editoren
Für anspruchsvollere Editieraufgaben sind die standardmässig installierten Editoren Notepad (Win32) und vi (Linux) wenig erquicklich. Zum Glück gibt es leistungsfähige freie Alternativen.
Emacs
Der Editor Emacs wird bei allen Linux-Distributionen mitgeliefert. Darüberhinaus gibt es auch eine Win32-Portierung. Die Stärke des Emacs liegen in seiner Programmierbarkeit, wobei eine unglaubliche Anzahl von Makro-Paketen bereits standardmässig enthalten sind wie z.B. Syntax-Highlighting Modi für alle möglichen Programmiersprachen.
Leider ist der Emacs in seiner Standardkonfiguration etwas merkwürdig zu bedienen. Deshalb folgen hier ein paar nützliche Tipps:
- Die meisten wichtigsten Funktionen sind über das Hauptmenü erreichbar. Bei den dort angegebenen Tastaturshortcuts steht "C-" für die "Strg" Taste und "M-" für die "Esc" Taste. Eine Liste aller wesentlichen Tastenkürzel steht in der GNU Emacs Reference Card.
- Die persönliche Konfiguration erfolgt über die Datei $HOME/.emacs. Unter Win32 sollten Sie deshalb unbedingt die Umgebungsvariable HOME definieren. Hier ist ein Muster für diese Datei, das Sie an Ihre Bedürfnisse anpassen können.
- Die Emacs-Tastaturbefehle für Cut, Paste etc. sind recht ungewöhnlich. Die sonst üblichen Shortcuts können mit dem CUA Mode aktiviert werden.
Office Software
LaTeX
Im akademischen Bereich wird zum Schreiben anspruchsvoller Texte nahezu ausschliesslich LaTeX eingesetzt. Fast alle Mathematik- und Informatik-Bücher sind damit gesetzt. Das liegt neben der relativ einfachen Benutzung und der mit anderer Software kaum erreichbaren Layoutqualität auch an der sehr guten Unterstützung für mathematische Formeln.
LaTeX arbeitet nicht im WYSIAYG-Modus ("What you see is all you get"), sondern die Textverarbeitung erfolgt in zwei Schritten:
- Eingabe des Latex-Codes in einem Texteditor; der "Latex-Code" besteht dabei aus dem Text plus Strukturierungsangaben (z.B. \section). Hier ist ein Beispiel für eine LaTeX-Datei.
- Übersetzen des Latex-Files mit latex nach DVI und des DVI-Files mit dvips nach Postscript. Alternativ kann das Latex-File auch mit pdflatex nach PDF konvertiert werden. Hier sind zwei Shell-Scripte, die alle Schritte zur Konvertierung von LaTeX nach PS oder PDF ausführen: latex2ps, latex2pdf.
Eine gute Win32-Portierung von LaTeX ist frei erhältlich als MiKTEX. Bei allen Linux-Distributionen wird die ebenfalls freie LaTeX-Variante teTeX mitgeliefert. Zum Erstellen der LaTeX-Dateien wird zusätzlich ein Editor benötigt; gute Editoren mit eingebauter LaTeX-Unterstützung sind z.B. Emacs (frei, Unix und Win32), Nedit (frei, Unix) und UltraEdit (kommerziell, Win32).
Auch wenn alle LaTeX-Distributionen eine Online Hilfe im HTML-Format enthalten, empfiehlt sich doch das Zulegen eines Buchs zum Thema. Hier eine kleine Auswahl:
- J. Knappen: Schnell ans Ziel mit LATEX 2E
- Gutes Einsteigerbuch von einem aktiven LaTeX-Entwickler.
- H. Kopka: LaTeX, Bd.1 Einführung
- Ausführliches Buch; als Einstieg und Referenz geeignet.
- K. Günther: Latex ge-packt
- preisgünstiges Nachschlagewerk.
Vektorgrafik
Im Unterschied zu einer Bitmapgrafik wie z.B. GIF, PNG oder JPEG wird eine Vektorgrafik durch parametrisierte geometrische Objekte (Kreise, Polygone, Textstrings...) beschrieben. Dadurch ist eine Vektorgrafik frei skalierbar und eignet sich insbesondere für Schaubilder und technische Zeichnungen.
Ein freies Vektorgrafikprogramm ist xfig, das auf dem Vektorgrafikformat FIG basiert. xfig läuft nur unter Unix; eine Java-basierte cross platform Variante gibt es unter dem Namen jfig (Achtung: anders als xfig ist jfig kostenpflichtig!). Neben dem eigenen FIG-Format kann xfig u.a. auch EPS und LaTeX-Code exportieren.
Präsentationen
Ansprechende Vorträge mit Beamer und Laptop können auch komplett mit freier Software gestaltet werden.
Eine Möglichkeit ist die Verwendung von pdflatex mit dem Postprocessor PPower4. Pdflatex ist Bestandteil der meisten LaTeX-Distributionen. Hier ist eine kurze Einführung. Die Presentation kann dann mit dem Acrobat Reader (Ctrl-L schaltet in Fullscreen-Modus und zurück) oder mit xpdf (mit der Option "-fullscreen") erfolgen.
Eine andere Möglichkeit ist die Verwendung von MagicPoint. MagicPoint ist X11-basiert und läuft deshalb nur unter Linux/Unix. Ein paar Tips und Tricks zu MagicPoint finden Sie auf einer separaten Seite.
C/C++ Entwicklung
Compiler
Der wichtigste freie C/C++ Compiler ist der GNU C Compiler "gcc". Weil er bei allen Linux-Distributionen mitgeliefert wird und bei MacOS X in den "Xcode-Tools" enthalten ist, seien hier nur die Bezugsquellen für die Win32-Portierung genannt.
Die beiden wichtigsten Portierungen des gcc für Win32 sind die von Cygnus und MinGW32.
- Cygwin stellt eine komplette Unix-API unter Windows zur Verfügung. Neben dieser Bibliothek ("cygwin32.dll") bietet der komfortable Installer auch die Option, die GNU Entwicklungstools (gcc, make, gdb...) und zahlreiche auf der Basis dieser Unix-API portierte Pakete (z.B. bash, awk, sed, perl, postgres...) zu installieren. Die wichtigste Einschränkung dieser Umgebung ist, dass die cygwin32.dll unter der GPL steht und deshalb damit nur OpenSource Programme entwickelt werden dürfen (siehe aber unten die Bemrkung zu -mno-cygwin).
- MinGW32 hat diese Einschränkung nicht, sondern verwendet nur von Microsoft bei Windwos mitgelieferte Bibliotheken. Damit stehen nur die ANSI C Funktionen und ein paar ausgesuchte Posix-Funktionen zur Verfügung.
Mittlerweile ist es unter Cygwin auch möglich, die Unix-Emulation beim Compilieren zu unterbinden (Compiler Option -mno-cygwin).
Debugger
Der GNU C Compiler gcc wird mit dem GNU Debugger gdb ausgeliefert. Dieser hat ein Kommandozeileninterface, in das die Befehle eingegeben werden; eine Dokumentation dieser Befehle findet man im GDB Manual.
Es gibt auch komfortable graphische Frontends, die auf dem Kommandozeileninterface aufsetzen. Das beste ist der Data Display Debugger (DDD), der als Motif-Applikation aber nur unter Linux/Unix genutzt werden kann.
Unter Windows kann das bei Cygwin mitgelieferte Frontend "Insight"
verwendet werden, das unter Cygwin mit dem Kommando gdb gestartet
wird. Das Kommandozeileninterface erhält man unter Cygwin mit dem Befehl
gdb -nw ("no window"). Als weitere Alternative bietet sich unter Windows
die Verwendung einer IDE an, die die "Fernsteuerung" des
gdb beherrscht; dabei stehen dann aber nur die grundlegenden Debugging
Kommandos zur Verfügung.
Achtung: Die Fernsteuerung eines Kommandozeilenprogramms erfolgt
programmiertechnisch über sogenannte "Pipes". Da "Pipes" unter
Windows 95/98/ME unzuverlässig bis gar nicht funktionieren, können
grafische Debugging-Frontends nur unter Windows NT/2000/XP sinnvoll
genutzt werden.
Entwicklungs-Oberflächen
IDE's (Integrierte Devellopment Environments) vereinen Editor, Projektverwaltung (Makefiles etc.), Compiler und Debugger unter einer einheitlichen Oberfläche. Für den gcc gibt es zahlreiche freie IDE's mit unterschiedlichem Leistungsumfang. Eine Übersicht von IDE's, die unter Windows zusammen mit dem gcc verwendet werden können, findet man im Menüpunkt "Related Sites" auf der MinGW32 Homepage.
Eine beliebte Lösung besteht in der Verwendung des Editors Emacs, der Syntaxhighlighting, automatische Sourcecode-Formatierung, das Auffinden von Compilerfehlern und in Kombination mit ctags auch das Manövrieren im Sourcecode unterstützt. Weitere Addons (z.B. ein Class-Browser) gibt es unter http://cedet.sourceforge.net/. Hier ist ein Screenshot.
Unter Linux ist KDevelop sehr beliebt. Neben den üblichen Features einer IDE bietet KDevelop auch Source-Code Completion, einen Class-Browser und einen GUI-Editor zum Zusammenclicken von grafischen Oberflächen.
Eine schlichte aber brauchbare IDE unter Windows ist VIDE. Neben dem gcc unterstützt VIDE übrigens auch den Borland Kommandozeilen Compiler. Der Compiler MingW32 und das Tool make sind im VIDE Setup nicht enthalten, sondern müssen zusätzlich installiert werden. Externe Online Hilfen (z.B. STL-Handbuch) können in VIDE integriert werden. Hier ist ein Screenshot.
Eine umfangreichere IDE ist Dev-C++, das kurioserweise selbst nicht in C++ sondern in Pascal/Delphi programmiert ist. Dev-C++ hat weitergehende Features als VIDE, wie z.B. einem Class-Browser. Von Dev-C++ gibt es auch ein kombiniertes Setup mit dem MingW32, das auch für Programmiereinsteiger problemlos zu installieren ist.
Libraries
Ein guter Startplatz um nach freien Bibliotheken zu suchen ist http://www.thefreecountry.com/. Hartgesottene C++ STL-Fans finden STL-Erweiterungen unter http://www.boost.org/.
Ein Überlick über C/C++ GUI-Toolkits findet man unter http://www.free-soft.org/guitool/. Viele dieser Bibliotheken sind plattformübergreifend. Als das beste gilt z.Zt. QT; das schnellste und leichtgewichtigste ist FLTK.
Mathematik
Die bekannteste mathematische Programmierumgebungen ist das (teure) kommerzielle Programm Matlab. Es gibt zwei damit vergleichbare freie Programme: Octave und Scilab.
Octave
Octave ist eine weitgehend Matlab-kompatible mathematische Programmierumgebung. Octave ist ein Kommandozeilenprogramm, in dem interaktiv Befehle eingegeben werden oder zuvor mit einem beliebigen Editor (z.B. Emacs) erstellte Scripts geladen werden können. Die Darstellung von Grafiken erfolgt mit dem Programm gnuplot, wobei die gnuplot-Befehle durch entsprechende Octave-Befehle gekapselt sind.
Octave wird bei allen Linux-Distributionen mitgeliefert. Seit kurzem gibt es auch ein Standalone Windows Installer von OctaveForge. Für MacOSX gibt es ein Application Bundle von High Performance Computing on MacOS X.
Eine knappe Einführung in Octave für jemanden mit grundlegenden Programmierkenntnissen in einer beliebigen Programmiersprache finden Sie hier unter octave-4up.pdf.
Scilab
Scilab ist eine weitere mathematische Programmierumgebung, die ebenfalls an Matlab angelehnt ist aber nicht ganz so Matlab-kompatibel ist wie Octave. Auch die Dokumentation ist nicht so gut wie die von Octave. Scilab ist vor allem für Elektrotechniker interessant, da es dafür ein grafisches Addon Scicos zur Systemsimulation gibt.
Datenbanken
PostgreSQL
PostgreSQL ist das leistungsfähigste freie Datenbanksystem, das alle Fetaures unterstützt, die man von einem objektrelationalen Datenbanksystem erwartet. Eine detaillierte Installationsanleitung für PostgreSQL finden Sie hier.
MySQL
MySQL ist eine andere z.T. freie Datenbank, die zwar wichtige Features nicht implementiert hat (insbesondere parallele Schreibzugriffe sind problematisch, da MySQL die ACID-Bedingungen nicht in der Standardkonfiguration erfüllt), aber für manche Anwendungen hinreichend ist.
SQLite
Anders als PostgreSQL und MySQL ist SQLite kein Client-Server Datenbanksystem, sondern (wie Paradox oder Access) lediglich eine Bibliothek, die Datenbankfunktionalität bereitstellt. Da SQLite auf geringen Resourcenverbrauch optimiert ist, ist es speziell für Single-User Anwendungen im Desktop und Embedded Bereich geeignet.
MacOS X
Seitdem Apple mit MacOS X für seine Rechner ein Unix-System ausliefert, ist diese Umgebung auch für Informatiker und Naturwissenschaftler interessant geworden. Ein paar Tips&Tricks für den Einstieg habe ich auf einer seperaten Seite zusammengestellt.
