Skip to content

Wie ich arbeite: Freizeit und Hobby ...

Nach dem ich beschrieben habe, wie mein Software-Setting im Job im Rahmen der Artikelreihe von Matthias beschrieben habe, folgt hier in einem zweiten Teil, das, was ich privat einsetze.

Alle Links - so weit möglich - aus der Wikipedia.

Auf meinen Trümmern zu Hause läuft die von Gentoo abstammende Rolling-Release Distribution Sabayon. Auf den Servern, die ich privat betreue, laufen entweder Debian stable oder Ubuntu LTS.

Bis auf das Dienstnotebook habe ich keinen Computer, auf dem ein proprietäres Betriebssystem läuft oder vielmehr eingesetzt wird. Laut Wikipedia ist auch Android freie Software, wobei sich darüber in engen Grenzen streiten lässt.

Natürlich setze ich auch eine grosse Menge an freier Software ein. Ich unterscheide mal willkürlich zwischen Client und Server und schreibe nur die Anwendungen auf, die ich häufig für Arbeit im weitesten Sinn benutze.

Client:

Die ersten drei bzw. vier Anwendungen sind auf meinem Rechner immer geöffnet. GUI steht für graphical user interface, CLI für command line interface, SRV für Server und WEB für eine Webapplikation oder html-Seiten, um die Gattungen mal zu unterscheiden. Auf den Clients läuft Gnome 3 mit Gnome Shell als Desktop Umgebung und ein aktueller 3.2er Kernel.

Browser (GUI): Firefox
Mail-Programm (GUI): Claws-Mail
Terminal (GUI): Gnome-Terminal
Shell (CLI): Bourne-again shell (ja, ich weiss, dass die zsh viel cooler ist).
Aufgabenverwaltung (CLI): Taskwarrior
Kopieren von Dateien (CLI): rsync (Tipp: Mal die Parameter "-Pha" verwenden).
Versionskontrollsystem (CLI): Git
Instant-Messaging-Client (GUI): Pidgin
IRC-Client (GUI): xChat
Editor (CLI): vim
Textsatz (CLI): LaTeX
Soundbearbeitung (CLI): SoX
Soundbearbeitung (GUI): Audacity
Programmierung (CLI): Shell oder Perl oder Make
Datenbank (CLI): SQLite
Datenbank-Entwicklung (GUI): SQuirrel SQL Client
Datenbank Reverse Engineering (CLI, WEB): SchemaSpy
Musikabspiel- und Videoanzeigeprogramm (GUI): VLC media player
Allzweckwaffe (CLI): OpenSSH
System Activity Reports (GUI): kSar

Server:

Blog-System (WEB): Serendipity
Wiki, Ticket-System und Repository-Browser (WEB): Trac
Content Management System (WEB): phpSQLiteCMS
Webmailer (WEB): Horde Groupware Webmail Edition (oder Roundcube)
Feedreader (WEB): Tiny Tiny RSS
Datei-Manager (WEB): AjaXplorer
Paketverwaltung (CLI): aptitude
Editor (CLI): vim
Podcatcher (CLI): podracer
Webserver (SRV): Apache
Datenbankserver (SRV): MySQL
Jabberserver (SRV): Ejabberd
Mailinglisten (WEB): GNU Mailman
Mail Transport Agent (SRV): Postfix oder Nullmailer
Mailserver (SRV): Dovecot
Monitoring (WEB, SRV): Icinga, Munin und sar
Netzwerk-Traffic (CLI): vnStat
Webseiten-Zugriffe (WEB): Piwik

Obwohl ich jetzt einige Tage an der Liste gesessen habe, bin ich mir sicher, dass ich etwas vergessen habe.

Wenn Ihr Fragen zu den Programmen habt, schreibt sie bitte in die Kommentare.

Wie ich arbeite: Beruf ...

Ich finde die Artikelreihe von Matthias zum Thema Wie ich arbeite sehr spannend. Daran beteilige ich mich mal und mache das auch in mehreren Teilen. Einige der Software, die ich einsetzen muss darf, belegt die vorderen Ränge von dreckstool.de und ist in der Regel auch nicht für Privatpersonen beziehbar. Wenn mich der Teufel reitet, mache ich mal ein "Was ich benutzen würde, wenn ich dürfte, aber man lässt mich ja nicht.".

Es gibt hier noch sehr viel mehr Software als die, die ich erwähne, aber ich liste nur die, mit der ich täglich zu tun habe. Einige der Programme habe ich auch noch mal unter Citrix, da ich mit meiner Workstation keinen Zugriff auf bestimmte Sicherheitszonen habe. Im Unternehmen selbst geschriebene Lösungen lasse ich auch mal aussen vor.

Redmont, Microsoft: Mail und Termine verwaltet hier Exchange in Verbindung mit Outlook. Wir setzen unter Windows 7 auch das Office der Firma, was sich mit Sharepoint verbindet, ein und ebenfalls den Communicator (der ist sogar sehr gut gelungen) und OneNote, also das volle Programm. OneNote ist erstaunlicherweise auch relativ gut. Natürlich gibt es auch interne Webseiten, die optimiert für einen bestimmten Browser sind, allerdings macht das manchmal auch Sinn, da sie die Zertifikate von der Smartcard nutzen.

Houston, BMC: Von der Firma setzen wir Remedy in den Geschmacksrichtungen Incident Management und Change Management ein. Neu kommt als Monitoring Lösung noch Patrol dazu (was BigBrother ablösen wird). Fast vergessen, auf den neuen Trümmern werden Installationen nur noch mit der Server Automation Console des Herstellers durchgeführt.

Raleigh, Red Hat: Wir setzen hier Red Hat Enterprise Linux ein und ich habe lokal Cygwin installiert (für letzteres "Yippieh!", das nimmt viele Schmerzen). Als ssh-Client nutze ich auch openssh unter Cygwin mit MinTTY als Shell.

Redwood Shores, Oracle: Zwei Drittel oder sogar mehr der von mir betreuten rund 1800 Trümmer laufen unter Solaris.

Palo Alto, VMware: Ja, was soll ich sagen, der Name ist das Produkt. Wird sind nur Client der vSphere-Infrastruktur.

Mountain View, Symantec: Wir setzes einiges an Veritas-Software ein, nämlich das File System, den Volume Manager, Cluster Server und Netbackup.

Armonk, IBM: Personal Communications ist mein Fenster zum Grossrechner, wo ich meine Arbeitszeit erfassen muss.

San Diego, Peregrine Systems: Deren AssetCenter wurde jetzt wohl an HP verkauft, wir nutzen es zur Inventarverwaltung.

Helsinki, Tectia: Das kommt ganz neu mit Server und Client: Tectia SSH, arbeitet mit Zertifikaten und nicht (nur) mit Keys.

All over the world, Open Source: Den SQuirreL SQL Client nutze ich, wenn ich in Datenbanken herumwühlen muss.

Vermutlich habe ich etwas vergessen, aber es wird in dem Fall nicht meine tägliche Arbeit beeinflussen.

Fast vergessen: Arbeitsrechner ist ein Intel Core2Duo, 2.3 GHz, 4 GB RAM von HP mit zwei Monitoren à 1280x1024.

Nachinstallierte Software ...

ubuntu Roman fragt, was wir bei Ubuntu zusätzlich installieren, dann will ich auch mal.

Neben einer grossen Menge an Perl-Modulen, installiere ich noch das Metapaket build-essential, um auch Perl-Module selber übersetzen zu können, die einen C-Teil haben.

Wenn ich mal selber programmiere, nutze ich Eclipse (heruntergeladen, nicht aus den Repositories), Squirrel-SQL (ebenfalls nicht aus den Repositories). In Eclipse nutze ich auch insbesondere die Subversion-Anbindung.

Wegen unseres Podcasts setze ich natürlich auch Audacity ein, sox und dagger helfen mir zusätzlich auf der Kommandozeile.

Ich nutze keinen separaten FTP-Client, da ich kein FTP mehr benutze, im Zweifelsfall würde ich fuse nutzen oder auf die in Gnome zur Verfügung gestellten Mittel zurückgreifen.

Zur Textverarbeitung und Textbearbeitung habe ich texlive-full installiert. Als Editor setze ich auch hier Eclipse ein.

Momentan nutze ich noch VirtualBox zur Virtualisierung, ich befinde mich aber gerade im Umstieg auf KVM.

Im Grossen und Ganzen ist es das.

Fast vergessen, Miro nutze ich noch für die drei oder vier Videocasts, die ich regelmässig schaue.

Eine komplette Liste reiche ich später einmal nach.

Eclipse installieren ...

Weil ich schon mehrfach dazu befragt wurde, wie man Eclipse mit Subversion verheiratet und welche Versionen und Plugins für Administratoren, Buch-Autoren und Web-Entwickler interessant sind und da ich die Anleitung an anderer Stelle schon einmal per E-Mail versendet habe, schreibe ich sie auch noch einmal hier ins Blog.

Eclipse-Basis-Installation:

Von der Eclipse-Homepage einfach eine Eclipse-Version herunterladen. Das, was wir brauchen, liefert jede der angebotenen Versionen. Ich habe bis jetzt immer Eclipse Classic (ganz unten auf der Seite) verwendet und teste gerade Eclipse for PHP Developers. Nach einigen Wochen arbeiten mit der PHP Developer Variante kann ich sagen, dass sie völlig ausreichend ist.

Die Funktionen sind die gleichen oder sie können mit Plugins und/oder Konfigurationsaufwand nachgerüstet werden.

An vielen Stellen ist zu bemerken, dass Eclipse für die Java-Entwicklung geschrieben wurde, was aber der Nutzbarkeit keinen Abbruch tut.

Eclipse lief bei mir nicht zufriedenstellend, weil ich in den Bug hineingelaufen bin. In Kurzform: Die GTK-Implementation bei Ubuntu hat einen Fehler, daher sollte mal diese Umgebungsvariable
export GDK_NATIVE_WINDOWS=true
setzen. Aber auch dann funktioniert ein Neustart durch Eclipse-Mittel nicht sauber (nach jeder Plugin-Installation wird man dazu aufgefordert, Eclipse neu zu starten). Also besser von Hand stoppen und neu starten.

Nach dem Start werden Ihr gebeten, ein Workspace-Verzeichnis anzugeben, ich bleibe dort beim Default. Bei dem darauffolgenden Fenster wählt Ihr dann einfach Workbench (oder Workspace) aus, was immer da steht.

Den Proxy stellt Ihr via Window / Preferences ein (einfach bei "type filter text" "proxy" eintragen).

Plugins:

Das wichtigste Plugin ist die Subversion-Anbindung. CVS ist in der Basis-Version schon enthalten. Wir installieren Subclipse von der Homepage des Projektes. Bitte wählt das Plugin passend zum Server aus, bei mir ist auf dem Server Subversion 1.5, daher ist Subclipse 1.4.x die richtige Version (bitte nicht nach dem Sinn der Nummerierung fragen).

In Eclipse auf Help / Install New Software... / Add... Nur die URL eintragen, auf "Ok" drücken und warten bis die Daten aktualisiert wurden. Dann den kompletten Zweig "Subclipse" und "Subclipse SVNKit Option" installieren. Zweiteres sorgt dafür, dass ein reiner Java-Client benutzt wird, der sich dann auch nicht mit einem lokal laufenden Client ins Gehege kommen kann. In den weiteren Boxen alles bestätigen. Bei der Aufforderung zum Neustart auf "No" und von Hand beenden und neu starten.

Nach dem Neustart in der rechten oberen Ecke auf das Symbol mit dem hochgestellten "+" klicken (im Normalfall steht dort Java oder PHP, je nach Version) und "SVN Repository Exploring" auswählen.

In linken Teil mit der rechten Maustaste klicken und New / Repository Location... auswählen. Als URL die URL des Projektes, das Ihr verwenden wollt, eintragen, Username und Passwort verwenden und schon könnt Ihr in dieser Ansicht durch das entfernte Repository browsen.

Rechte Maustaste auf das angelegte Repository und Checkout... bringt es dann auch auf Eure Platte. "Check out as a project in the workspace", dann auf Finish und die aufkommende Frage bestätigen.

Wenn Ihr jetzt wieder auf das Symbol mit dem hochgestellten "+" klickt und Java bzw. PHP auswählt, könnt Ihr im linken Fensterteil das lokale Repository sehen. Wenn Ihr Euch dort durchklickt, seht Ihr neben den Dateinamen die Revsionsnummer, das Eincheckdatum und den User, der das eingechecked habt.

In Eclipse ist es wichtig, dass Ihr die rechte Maustaste benutzt. Vorerst ist die Funktion "Team" und dort der Punkt "Commit..." für das Einchecken und "Update" für das Auschecken das wichtigste. Nicht unerwähnt lassen möchte ich die Fuktion "Replace With" und dort "Latest from Repository" um eine lokale Änderung durch die Daten aus dem Repository zu überschreiben.

Wenn Ihr die dotFiles ebenfalls sehen wollt, folgt der Anleitung von Stack Overflow.

Die weiteren Plugins:

TeXlipse baut die Brücke zu Java, es gibt eine gute Anleitung auf der Homepage, die auch die Installationsanleitung enthält. Wichtig zu wissen ist, dass Aspell für die Rechtschreibprüfung benutzt wird, daher lohnt es sich die entsprechenden Pakete im Ubuntu zu installieren.

Für Shellskripte gibt es das ShellEd-Plugin, von der Projektseite bei Sourceforge solltet Ihr Euch aber derzeit noch die Version 1.0.4 herunterladen und davon die ZIP-Datei (sonst stimmen die Pfade nicht). Ins Eclipse-Verzeichnis wechseln und dort das ZIP auspacken. Beim nächsten Start ist der Shell-Editor verfügbar. Vorteil: Wenn Ihr mit der Maus über Shell-Kommandos "fahrt", wird die Man-Page angezeigt.

Für Perl lohnt sich ein Blick auf EPIC, auch dafür gibt es eine sehr gute Anleitung. Wenn Ihr debuggen müsst, sollte Padwalker installiert sein (ist bei den Ubuntu-Paketen dabei). Style-Guides werden über Perl::Critic implementiert, was auch installiert sein sollte, wenn Ihr die Funktion braucht.

Für Web-Entwickler ist sicherlich noch das Aptana Studio interessant. Es lässt sich über die Download-Seite herunterladen und enthält neben andern Features einen FTP-, FTPS- und einen SFTP-Client.

Mit dem SQL Explorer bin ich nie warm geworden, da gefällt mir das Original Squirrel SQL, die Mutter des Plugins, deutlich besser.

Ende:

So, das war es vorerst einmal. Mehr setze ich selber auch nicht ein. Mir gefällt das Syntax-Highlighting, die gute Schnittstelle zum Subversion (auf der Arbeit auch noch CVS) und die Möglichkeit, Perl zu debuggen.

Die zahlreichen Einstellungen lassen sich über Window / Preferences treffen. Klickt Euch einfach einmal durch. Aktionen mit und auf Dateien lassen sich mit der rechten Maustaste erledigen.

Alle Eclipse-Bücher, die ich kenne, sind mir zu Java-lastig und Java ist wirklich nicht das, was ich machen möchte.

Verheiraten von SQLite und SQuirreL SQL ...

Über mein Lieblingsdatenbankabfragewerkzeug SQuireL SQL habe ich in anderem Zusammenhang schon einmal etwas geschrieben.

Den JDBC-Treiber von SQLiteJDBC herunterladen und ins lib-Verzeichnis der Squirrel-Installation kopieren.

Einen neuen Treiber nach folgendem Muster anlegen.



Name: SQLite
Example URL: jdbc:sqlite:
Website URL: http://www.zentus.com/sqlitejdbc/
Class Name: org.sqlite.JDBC

Danach kann eine neue Datenbank nach diesem Muster angelegt werden (unter Windows Backslashes durch Slashes ersetzen), ein Login wird nicht gebraucht.:

Windows-Tools ...

Ja, richtig gelesen, ich setze auch Tools unter Windows ein. Die brotgebende Arbeit schreibt ja leider einen Windows-Desktop vor, meine eigentliche Arbeit findet aber auf Linux und Unix statt.

Ich verlinke bei allen Programmen die Artikel in der deutschen Wikipedia, dort ist jeweils auch der Link zur Homepage der Projekte zu finden.

PuTTY wird benutzt, um eine Shell-Verbindung zu einem Linux oder Unix-System aufzubauen.
XMing ist ein XServer für Windows, der grafische Ausgaben der *X-Systeme entgegennimmt.
WinSCP überträgt (via SSH) Dateien zwischen Windows und *X.

Eclipse (via XMing) benutze ich um Perl- und Shellskripte zu schreiben und im CVS abzulegen (gibt es auch für Linux).
Squirrel (via XMing) hilft mir beim Zusammenbauen von Datenbankabfragen und um Daten aus Datenbanken zu extrahieren (gibt es ebenfalls für Linux).

Far, plus WinSCP-Plugin, ist mein Dateimanager unter Windows.
KeePass speichert Passwörter.

Taskbar Shuffle (Link zur Homepage) kann Symbole von laufenden Programmen in der Taskbar verschieben.
Process Explorer (Link zur Homepage) ist der bessere Taskmanager.

GVim und Vim - mein Editor, nutze ich statt Notepad.
UnxUtils (Link zur Homepage) portiert einige bekannte Unix-Befehle nach Windows. Im Download-Bereich von Sourceforge sind aktuellere Daten zu finden als auf der Heimatseite verlinkt.
zip und unzip, ja, die Kommandozeilenversionen (lassen sich auch prima in Far integrieren).

Strawberry Perl (Link zur Homepage), DAS Perl für Windows.
Cygwin baut mir (selten, aber manchmal) eine Shell-Umgebung wie unter *X.

Firefox, eine (DIE) Alternative zum hauseigenen Browser.
OpenOffice.org - DIE Alternative zum Office aus Redmond.

GIMP zur Bildbearbeitung.
IrfanView als Bildbetrachter.

FreePDF XP (Link zur Homepage) erzeugt PDFs.
PDF Split and Merge (Link zur Homepage) trennt und fügt PDFs zusammen.
PDFTK Builder (Link zur Homepage) kann PDFs auch rotieren.

MySQL via SSH verwalten ...

Auf den meisten Webspaces ist zum Verwalten der MySQL-Datenbank phpMyAdmin vorhanden. Das ist ein phantastisches Tool, das mit dem Webbrowser nahezu alle Aufgaben rund um die eigene Datenbank erschlägt. Aufgrund der Tatsache, dass ein Browser benutzt wird, ist es manchmal etwas "hakelig" Verwaltungsaufgaben zu erledigen.

Wenn man auf seinem Webspace einen SSH-Zugang hat oder einen root-Server betreibt und MySQL nicht von aussen zugreifbar haben möchte (gute Idee!), kann man damit wahre Wunderdinge bewegen.

Zum einen sind die auf dem Server installierten Tools benutzbar, was wiederrum nicht jedermanns Sache ist.

Alternativ dazu kann man auch jeden lokal (!) installierten Client verwenden. Dazu baut man einen SSH-Tunnel auf. Das geht über
ssh -L 12345:localhost:3306 user@server
Das "-L" gibt an, von wo der Tunnel benutzt werden kann (so merke ich mir das), nämlich von Links, von der lokalen Maschine zur entfernten Maschine (Rechts). Der lokale Port 12345 wird via SSH-Tunnel an den entfernten Port 3306 weitergeleitet. Spendiert man der Zeile noch ein "-g", so kann der lokale Rechner als Proxy für andere Rechner verwendet werden.

Ab jetzt ist es möglich via Port 12345 auf der lokalen Maschine auf die entfernte Datenbank zuzugreifen.

Eine Klippe gilt es aber noch zu umschiffen. Die Tools von MySQL wollen Datenbanken, die auf localhost laufen immer via Socket verbinden. Das kann für die entfernte Datenbank natürlich nicht funktionieren.
mysql --protocol=tcp -P 12345 -u user -p
funktioniert aber bestens. Bei den grafischen Tools ist anstelle von "localhost" die IP-Adresse "127.0.0.1" einzutragen, dann wird auch dort TCP benutzt.

Ich mag die MySQL-Tools allerdings gar nicht so sehr. Daher nutze ich den SQuirreL SQL Client, den ich im neuen Job schätzen und lieben gelernt habe. Das ist eine Java-Anwendung, die die Syntax von verschiedenen SQL-Dialekten schon via Plugin dabei hat (darunter DB2, Oracle, MySQL, Sybase und einige andere mehr). Das, was noch zu tun ist, ist den jdbc-Treiber in das lib-Verzeichnis zu kopieren und schon können entsprechende Datenbanken verwendet werden.

In unserem Beispiel sorgt
jdbc:mysql://localhost:12345/datenbank
für die Verbindung zur Datenbank mit dem Namen Datenbank.