GD-Modul unter ActivePerl installieren

21. September 2008 · Programmierung · andreas · Kein Kommentar

Die ActivePerl-Distribution kommt zwar schon mit einer Menge Module daher, aber ein paar wichtige wie z.B. das Modul zur Ansteuerung der GD Graphics Library sind nicht im Lieferumfang enthalten und fehlen auch im online Repository von ActiveState.

Glücklicherweise gibt es noch ein paar recht gut sortierte Repositories wie z.B. das der University Of Winnipeg, die sich darauf spezialisiert haben, die Lücken aufzufüllen.

Um nun das GD-Modul zu installieren, fügt man am sinnvollsten das passende Repository mittes “Edit” / “Preferences” dem Perl Package Manager hinzu:

Nach dem Synchonisieren der Paket-Datenbank kann dann unter “View all packages” das GD-Paket ausgewählt und installiert werden.


Debian-basierte Systeme aktualisieren mit apt-cron

10. September 2008 · Betriebssysteme · andreas · Kein Kommentar

Ähnlich zu den automatischen Updates unter Windows gibt es auch unter Debian-basierten Systemen die Aktualisierungsverwaltung, die mittels Icon in der Taskleiste darauf aufmerksam macht, daß Updates für das System verfügbar sind.

Bei Rechnern, die aber hauptsächlich “in der Ecke” stehen und ohne menschliche Interaktion auskommen sollen, hat dies den Nachteil, daß Updates nur sehr unregelmäßig durchgeführt werden, wenn sich mal wieder jemand aus anderen Gründen am System anmeldet.

Da die Aktualisierungsverwaltung im Westentlichen auch nichts anderes macht, als auf “apt-get” zuzugreifen, könnte ein möglicher Lösungsansatz in einer Automatisierung dieses Vorganges mittels “cron” bestehen - während dessen Realisierung man hoffentlich über das Paket “cron-apt” stolpert, das exakt für diese Aufgabe geschaffen wurde.

Nach der Installation mittels

apt-get install cron-apt

stehen die entsprechenden Konfigurationsdateien im Verzeichnis “/etc/cron-apt” zur Verfügung, wobei in einem ersten Schritt nur die Parameter der Datei “config” an die eigenen Wünsche angepasst werden müssen.

Standardmäßig lädt cron-apt die Pakete nur vom Server herunter und verschickt - je nach Konfiguration - eine entsprechende Mail an den zuständigen Administrator. Soll cron-apt die Pakete auch gleich installieren, so ist die Datei “/etc/cron-apt/action.d/3-download” durch Entfernen des Parameters “-d” anzupassen.

Wer vor dem Produktiveinsatz gerne einen Testlauf unter menschlicher Aufsicht durchführen möchte, kann dies mittels “cron-apt -s” tun.


Automatische Updates - Neustart-Erinnerung ausblenden

09. September 2008 · Betriebssysteme · andreas · 4 Kommentare

So sinnvoll die automatischen Updates auch sind, so nervig ist das “Soll der Computer jetzt neu gestartet weden?"-Fenster, das in schöner Regelmäßigkeit sich immer genau dann in den Vordergrund drängt, wenn man es am wenigsten gebrauchen kann.

Leider bietet Microsoft keine auf den ersten Blick erkenn- und benutzbare Lösung (z.B. auf dem Konfigurationsdialog in der Systemsteuerung), so daß man die Hilfe des Gruppenrichtlinien-Editors in Anspruch nehmen muß:

  • Unter “Start” / “Ausführen” “gpedit.msc” eingetippt und mit “Ok” bestätigt.

  • Anschließend zu “Computerkonfiguration” / “Administrative Vorlagen” / “Windows-Komponenten” / “Windows Update” navigieren und dort die Richtlinie “Erneut zu einem Neustart für geplante Installationen auffordern” bearbeiten

  • Hierzu die Richtlinie auf “Aktiviert” stellen und einen beliebigen Zeitraum (z.B. 999 Minuten) angeben.

  • Mit “OK” bestätigen


PDFs erstellen mit Perl

07. September 2008 · Programmierung · andreas · 2 Kommentare

Will man aus Perl PDFs erstellen, so gibt es das vorzügliche PDF::API2-Modul, das aber einen entscheidenden Nachteil hat: man wird von Optionen und Möglichkeiten dermaßen erschlagen, daß es schwer ist, überhaupt am Ziel anzukommen.

Als einfachen Ausweg gibt es das Modul PDF::API2::SIMPLE, ein “simplistic wrapper for the excellent PDF::API2 modules”, mit dem man sich auf’s Wesentliche konzentrieren kann.

Leider kann das Modul in seiner aktuellen Version (1.1.4) Bilder nur aus Dateien (JPG, TIFF, PNM, PNG oder GIF, die im Dateisystem vorliegen müssen) einbinden, ein extrem umständlicher Weg, falls diese z.B. in einer Datenbank vorliegen.

Eine entsprechende Erweiterung ist aber schnell - und einfach - gemacht, verhält sich analog zur ursprünglichen image-Methode und kann mit einem GD-Objekt genutzt werden:

sub gdimage { my ($self, $src, %opts) = @_; my $x = $opts{'x'} || $self->x; my $y = $opts{'y'} || $self->y; my $width = $opts{'width'} || 100; my $height = $opts{'height'} || 100; my $scale = $opts{'scale'} || 1; my $image = $self->current_page->gfx; my $data = $self->pdf->image_gd($src); $image->image($data, $x, $y, $width, $height); $self->x( $x + $width ); $self->y( $y ); }

Der Erweiterungsvorschlag ist auch an die Entwickler raus, vielleicht wird er ja integriert …


Excel-Daten in MySQL-Datenbank übernehmen

05. September 2008 · Anwendungen · andreas · Kein Kommentar

Steht man vor einer Aufgabe wie z.B. die Daten einer Excel-Tabelle in eine MySQL-Datenbank zu übernehmen, so geht entweder die Suche nach einem passenden Utility oder das Schreiben eines kleinen Skripts los.

Doch halt - eigentlich ist an Werkzeug schon alles, da, was man braucht:

  1. Excel: Zuerst werden mit Excel alle Daten soweit vorbereitet, wie sie später dann auch in der Tabelle stehen sollen. Dann wird die Excel-Tabelle als CSV-Datei abgespeichert.
  2. MySQL: Die Tabelle selbst wird angelegt und mit den benötigten Feldern versehen. Anschließend wird mittels des ‘LOAD DATA’-Kommandos die vorher erzeugte CSV-Datei in die Tabelle eingelesen.

Beispielhaft könnte der Aufruf des Kommandos wie folgt aussehen:

mysql> LOAD DATA INFILE 'D:/Temp/excel-daten.csv' INTO TABLE zieltabelle FIELDS TERMINATED BY ';';

Eine Ausführliche Beschreibung der Parameter gibt’s im MySQL Reference Manual