Inhalt

Tips zu spezieller Software

Postscript und PDF

Auch wenn Postscript (PS) weitgehend durch PDF verdrängt wurde, ist es doch als Zwischenstufe noch erforderlich, insbesondere weil es für PDF kaum freie Software gibt, wohl aber für Postscript.

PS Viewer und Konverter

Zur Verarbeitung von Postscript Dateien benötigen Sie folgende Software:

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.

Utilities

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 Ausweahl einzelner Seiten. Die Homepage dieser Software gibt es nicht mehr, aber das Paket ist in allen Linux-Distributionen enthalten.

PDF kennt keine "embedded" Variante in Analogie zum EPS-Format. Mit dem bei pdflatex enthaltenen Programm epstopdf kann man aber aus einer EPS-Datei eine entsprechende PDF-Datei erzeugen.

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.

PS-Dateien kann man aneinanderhängen mit psjoin, PDF-Dateien mit pdftk.


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.


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:


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:

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 MinGW.

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.