Technik

Exif-Daten ändern

04. Mai 2011 · Programmierung · andreas · Kein Kommentar

Sollen Exif-Daten vorhandener Bild-Dateien geändert werden, so ist - wie so oft im adminstrativen Alltag - PERL ein hilfreiches Werkzeug.

Folgendes Skript schnappt sich alle “JPG”-Dateien im aktuellen Verzeichnis und setzt deren Aufnahmedatum auf den 01.09.2004 9:22:57 Uhr.

exitdate.pl
use strict; use warnings; use Image::ExifTool; my (@files, $file, $image, $success); opendir(DIR, '.'); @files = readdir(DIR); closedir(DIR); foreach $file (@files) { next if $file !~ /\.jpg$/i; print "processing file '$file'\n"; my $image = new Image::ExifTool; $image->SetNewValue('DateTimeOriginal', '2004:09:01 09:22:57'); $success = $image->WriteInfo($file, '_' . $file); die 'Error: \'' . $image->GetValue('Error') . '\'' if ! $success; }

Die komplette Doku zu Image::ExifTool findet sich im CPAN. Wer mutig ist (oder ein Backup hat), kann den zweiten Parameter bei WriteInfo auch weglassen - die Quelldatei wird dann direkt überschrieben.


VBA-Makros selbstsigniert

21. April 2011 · Anwendungen · andreas · 5 Kommentare

Sicherheit und Bequemlichkeit schließen sich oft gegenseitig aus - während man für ein Mehr an Sicherheit einen Teil Bequemlichkeit opfert, muß meist an der Sicherheit gespart werden, damit’s bequem wird.

vba_makro_02

Spürbar wird dies zum Beispiel bei der Verwendung von VBA-Makros: Ist in Excel die Makro-Sicherheit auf “Hoch” eingestellt, können Makros in der Regel keinen Schaden anrichten, da sie nicht ausgeführt werden dürfen. In der Einstellung “Mittel” muß bei jedem Öffnen einer Arbeitsmappe mit Makros entschieden werden, ob die Makros ausgeführt werden dürfen oder nicht. In der Einstellung “Niedrig” wird jedes Makro ohne lästige Nachfrage ausgeführt, inklusive eventuell darin enthaltenem Schadcode.

Eine elegangte Lösung dieses Szenarios stellt das Signieren selbst erstellter Makros dar - einmal als vertrauenswürdig eingestuft, werden diese auch auf Sicherheitsstufe “Hoch” ausgeführt und die Nachfrage auf Sicherheitsstufe “Mittel” entfällt.

Hierzu muß nicht unbedingt ein kostenpflichtiges Zerfitikat einer offiziellen Certificate Authority erworben werden, für den internen Einsatz reicht auch die Verwendung eines selbstsignierten Zertifikats, das mit frei verfügbaren Mitteln erstellt werden kann.

Vollständigen Beitrag lesen


Diese Arbeitsmappe hat ihr VBA-Projekt, alle Active-X-Steuerelemente und alle anderen programmierbaren Elemente verloren

18. April 2011 · Anwendungen · andreas · Kein Kommentar

Meldet sich Excel beim Öffnen einer Arbeitsmappe mit der Fehlermeldung

so wurde auf dem betreffenden PC vergessen, Visual Basic for Applications zu installieren.


upload_max_filesize alleine reicht nicht

28. März 2011 · Anwendungen · andreas · Kein Kommentar

Wer ‘upload_max_filesize’ in der ‘php.ini’ ändert, sollte auch ‘post_max_size’ anpassen, denn wie das PHP Manual erklärt:

‘post_max_size’ sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger than ‘upload_max_filesize.’


Groß- und Kleinschreibung bei SQLite

20. März 2011 · Programmierung · andreas · Kein Kommentar

Eine der Stolperfallen beim Wechsel zwischen MySQL und SQLite ist, daß SQLite in der Standardeinstellung z.B. bei SELECT-Statements zwischen Groß- und Kleinschreibung unterscheidet. Ein

SELECT * FROM meinetabelle WHERE meinfeld = 'test';

wird zwar eine Zeile mit meinfeld = ’test’ finden, für eine vorhandene Zeile mit meinfeld = ‘Test’ aber kein Ergebnis zurückliefern. Möchte man das SELECT ohne Berücksichtigung von Groß - und Kleinschreibung durchführen, so kann dies durch das Anhängen von ‘COLLATE NOCASE’ erfolgen, also

SELECT * FROM meinetabelle WHERE meinfeld = 'test' COLLATE NOCASE;

womit auch ‘Test’, ’tEst’, ‘TEST’ und noch ein paar andere Schreibweisen gefunden werden.

Möchte man das Verhalten für einzelne Tabellen von Anfang an umstellen, so kann ‘COLLATE NOCASE’ auch entweder direkt bei der Spaltendefinition oder beim Erzeugen eines Indexes angegeben werden.