Skip navigation.

Fredo's Blog

Humanities, Social Sciences and Free Software

Lineplots für R

, , , ...

R ist ein hervorragendes Statistik-Progamm, naja, eigentlich eine statistiklastige Programmiersprache. Neben seiner Mächtigkeit schätze ich besonders, dass es ziemlich hochwertige Grafiken erstellt. Nun bin ich neulich darüber gestolpert, dass es gar keinen einfachen Befehl gibt, um Liniendiagramme zu erstellen, wie man sie vielleicht aus OpenOffice.org Calc oder Gnumeric kennt. (Ich habe zumindest nichts gefunden.) Da ich das aber neulich einmal für eine Präsentation brauchte, habe ich einmal versucht, eine möglichst komfortable Funktion dafür zu schreiben.

Read more...

XeTeX: Bitte mit Gummi

, , , ...

Nur auf die Schnelle ein kurzer Post:

Heute habe ich endlich erste Schritte mit XeTeX gewagt. Irgendwie ist man ja pdfTeX gewohnt, und schon allein aufgrund der vielen verfügbaren Anleitungen hält sich das wohl noch einige Zeit. Aber XeTeX ist schon einen Blick wert: Vor allem die Verwendung der System-Schriften macht es wesentlich komfortabler, beliebige Schriften zu verwenden, als mit pdfTeX. Und die echte Unicode-Unterstützung ist Gold wert.

Nur benutze ich gerne rubber zum Kompilieren von LaTeX-Dokumenten. Dies unterstützt XeTeX jedoch noch nicht. Die Lösung ist jedoch recht einfach. Man erstellt einfach eine Datei »xetex.py« im Verzeichnis »/usr/share/rubber/rubber/rules/latex/«. In diese kopiert man folgenden Text:

# This file is part of Rubber and thus covered by the GPL
# (c) Emmanuel Beffara, 2002--2006
# (c) Frederik Elwert, 2009
"""
XeLaTeX support for Rubber.

"""

import rubber

class Module (rubber.rules.latex.Module):
        def __init__ (self, doc, dict):
                doc.vars["program"] = "xelatex"
                doc.vars["engine"] = "XeTeX"
                doc.prods = [doc.src_base + ".pdf"]

Nun kann man mit folgendem Befehl XeTeX-Dokumente übersetzen:
rubber -m xetex datei.tex

Bei einem ersten Test hat es problemlos geklappt, hoffen wir also mal das Beste.

ScheduleWorld wird kostenpflichtig – aber plötzlich!

, , , ...

Seit einiger Zeit nutze ich zur Synchronisierung meiner Evolution-Daten den Online-Dienst ScheduleWorld. Damit bin ich auch sehr zufrieden, und es scheint derzeit auch der einzige Dienst zu sein, der (zumindest fast) alle Evolution-Daten verlustfrei synchronisieren kann.

Read more...

Zur Serienreife? Serienbriefe mit LaTeX

, ,

Das Thema Serienbrief bringt mich regelmäßig zur Verzweiflung. OpenOffice.org bietet hier zwar die entsprechenden Funktionen an, aber wirklich reibungslos läuft das bei mir nie. Schon allein eine ODS-Datei mit den Adressen in das Dokument zu laden ist für mich eine Herausforderung.

Außerdem schreibe ich meine Briefe sowieso lieber mit LaTeX. Dort sieht alles ganz schnell so aus, wie es bei einem anständigen Brief sein soll. Also habe ich mich gefragt, ob man mit LaTeX nicht auch Serienbriefe erstellen kann. Und tatsächlich, in der KOMA-Anleitung bin ich fündig geworden. Serienbriefe sind mit scrlttr2 möglich. Allerdings muss man die Adressdaten in einem bestimmten Format haben. Eine Datei mit der Endung .adr soll Einträge in der Form
\adrentry{Name}{Vorname}{Adresse}{Telefon}{F1}{F2}{Kommentar}{Kürzel}

haben. Das ist natürlich eher ungewöhnlich, um nicht zu sagen nervig.

Also habe ich mir ein kleines Skript in Python geschrieben, das eine CSV-Datei in eine adr-Datei umwandeln kann. Dabei kann man die adr-Felder frei aus Feldern in der CSV-Datei zusammensetzen. Oftmals wird man z.B. die Adresse in einzelnen Feldern vorliegen haben, z.B. Straße, PLZ und Ort.

Das Skript gibt’s hier: addressify.py

Ein Aufruf könnte z.B. so aussehen:
python addressify.py -m 'Name=$Nachname' -m 'Vorname=$Vorname' -m 'Adresse=$Strasse\\$PLZ $Ort' -m 'F1=$Geschlecht' -o 'adressen.adr' adressen.csv

Nun hat man eine passende Datei, also steht dem Serienbrief nichts mehr im Weg. Der könnte z.B. so aussehen:

\documentclass[DIN]{scrlttr2}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{mathpazo}

\begin{document}
\newcommand{\Anrede}{}
\renewcommand*{\adrentry}[8]{%
    \if #5w \renewcommand{\Anrede}{Frau} \fi
    \if #5m \renewcommand{\Anrede}{Herrn} \fi
    \begin{letter}{\Anrede\\#2 #1\\#3}
        \if #5w \opening{Sehr geehrte Frau #1,} \fi
        \if #5m \opening{Sehr geehrter Herr #1,} \fi

        Serienbriefe mit \LaTeX{} sind nicht schwer zu realisieren.

        \closing{Mit freundlichen Grüßen,}
    \end{letter}
}

\input{adressen.adr}
\end{document}


Für meine Zwecke reicht das erst einmal, endlich ein verlässlicher Weg, einfache Serienbriefe zu schreiben. Raum für Optimierungen gibt es sicherlich noch, aber das überlasse ich, wie man so schön sagt, dem Leser als Übung.

Die Königin zum Tango bitten …

, , , ...

GNOME bringt ja eine Reihe ganz netter Spiele mit. Gerade die Kartenspiele glänzen jedoch nicht gerade durch ein hübsches Design. Das Kartenset Ornamental aus dem Paket gnome-games-extra-data gefällt mir ganz gut, ist aber sicherlich nicht für jeden was. Aber vielleicht könnte man der Königin ja Tango beibringen?

Read more...

Ubuntu Netbook Remix auf dem Dell Mini 9

, , ,

Dell hat für sein Netbook ja einen eigenen Starter entwickelt. Viele Komponenten bauen auf Techniken auf, die für den Ubuntu Netbook Remix entwickelt worden sind, aber der Starter, also der sichtbarste Teil, ist eine Eigenentwicklung. Der Starter macht auch optisch einiges her, die Knöpfe für die Kategorien und Programme sind schön groß, und dezente Animationen setzen die Menüs hübsch in Szene.

In letzter Zeit habe ich dann aber doch immer häufiger neidisch zu einem Kollegen rübergeschielt, der auf seinem eeePC den Ubuntu Netbook Remix laufen hat.

Read more...

LaTeX, Zotero und gedit

, , , ...

In der Tat, Zotero hat mich weitgehend überzeugt. Es ist ein recht brauchbares Literaturverwaltungsprogramm, vor allem aber wird es aktiv weiterentwickelt und von etablierten Institutionen unterstützt. Damit ist es eine recht zukunftssichere Wahl, schließlich will ich nicht alles halbe Jahr meine Literaturdatenbank umziehen.

Die Integration in OpenOffice.org ist außerdem wirklich gut. Nur schreibe ich eigentlich lieber mit LaTeX, und hier bietet Zotero von Haus aus keine Unterstützung. Aber gedit, mit dem LaTeX-Plugin mein favorisierter LaTeX-Editor, hat ja eine schöne Python-Plugin-API. Also kann man ja mal versuchen, ein gedit-Plugin für die Zotero-Einbindung zu schreiben…

Read more...

Still und heimlich …

, , , ...

… ist endlich die finale Version 0.4 von Genesis, meinem Frontend für SyncEvolution, erschienen. Nachdem ich schon länger den Einsatz der Beta empfohlen hatte, weil diese im Gegensatz zur 0.3 SyncEvolution 0.8 unterstützt, habe ich mich entschlossen, jetzt den Beta-Test für beendet zu erklären.

Grund der Verzögerung sind zwei Bugs, die ich leider bis heute nicht verlässlich reproduzieren kann. Sie sind aber weder gravierend noch treten sie sehr oft auf, von daher sind sie auch kein Grund, ewig mit dem Release zu warten. Sie haben aber dafür gesorgt, dass Genesis ein einfaches Logging-System integriert hat, mit dem ich hoffe, den Fehlern vielleicht doch noch mal auf die Spur zu kommen.

Der eigentliche Mehrwert der finalen Version gegenüber der Beta ist sicherlich, dass es jetzt endlich ein .deb-Paket gibt, und ein Paketrepository.

Wie immer wünsche ich viel Spaß mit dem neuen Release und ermutige alle, selbst an der Verbesserung von Genesis mitzuwirken – sei es über Bug-Reports, Code oder sonstwas. :-)

Das bisschen Perl kann so schlimm nicht sein...

, , ,

Ich kann kein Perl. Weder lesen noch schreiben. Hab ich auch nie gebraucht.

Bis vor ein paar Tagen. Da habe ich einen Bug in meinem liebsten Scanprogramm gscan2pdf gefunden: Schwarz-Weiß-Bilder wurden durch unpaper immer wieder in Graustufenbilder umgewandelt.

Tja, und der Autor von gscan2pdf ist wohl nicht mehr so ultra-schnell im Beheben von Bugs wie noch vor einiger Zeit. Hat vermutlich auch mal anderes zu tun, der gute Mann. Also, nicht jammern, Ärmel hochkrempeln. Dank Class Browser Plugin findet man sich mit gedit auch einigermaßen schnell in der riesigen Perl-Datei zurecht, aus der gscan2pdf besteht. Und mit ein bisschen Nachdenken sowie etwas Copy&Paste habe ich dann tatsächlich meine ersten Zeilen Perl zusammengebastelt.

Das hat nicht unbedingt das Zeug dazu, ein Hobby zu werden. Aber so schlimm ist es auch nicht, wie ich bisher dachte... Naja, sicherlich fallen den Profis unter euch jetzt noch ein paar dumme Fehler auf. Dann hätte dieser Blogeintrag sogar noch etwas positives, nämlich ein bisschen Qualitätssicherung, bewirkt. :-)

Literaturverwaltung unter Linux II oder: So schnell kann es gehen…

, , ,

In einem meiner letzten Artikel habe ich Literaturverwaltungsprogramme vorgestellt. Ich persönlich habe bis jetzt immer Pybliographer verwendet. Jetzt ist nur leider das eingetreten, was ich insgeheim schon befürchtet hatte: Pybliographer ist tot. Zumindest findet man auf der Webseite den großen Hinweis:

This project is looking for a new maintainer



Also, was nun? Literaturverwaltung stellt einen ziemlich wichtiges Werkzeug meiner Arbeit dar, und das einzige, mit dem ich mich bis jetzt auf Dauer einigermaßen anfreunden konnte, wird nicht weiterentwickelt. Das ruft in mir einen lange verdrängten Gedanken wach: »Eigentlich müsste man mal eine richtig gute Literaturverwaltung für Linux entwickeln…«

Realistischer Weise muss ich aber einsehen, dass ich das gar nicht könnte – zumindest nicht allein. Aber ein paar Ideen hätte ich schon. Und es gäbe ja auch ein paar Programme, bei denen man sich bedienen könnte.

Da ich irgendwie denke, dass Linux doch viel an Universitäten genutzt wird, kann ich mir gar nicht recht vorstellen, dass andere nicht auch ein gutes Literaturverwaltungsprogramm unter Linux suchen. Also: Wer hätte an einem solchen Projekt Interesse und kann Programmieren (ich würde ja Python bevorzugen) oder würde auf andere Weise helfen wollen?

Um gleich möglichen Enttäuschungen vorzubeugen: Ich will erst einmal nur sondieren, ob sich ein solches (nicht ganz triviales) Projekt überhaupt realisieren ließe. Vielleicht stellt es sich am Ende auch als unrealistisch heraus. Es wäre aber zu schade, diese Idee nicht wenigstens einmal in den Raum zu stellen.
July 2009
M T W T F S S
June 2009August 2009
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31