Digikams neues Datenbankformat und synchronisierte Bildbestände

Nach dem Update von digikam meldet sich das Programm und verlangt ein Datenbank-Update. Hintergrund ist, daß sich das zugrunde liegende Format der Datenbankdatei geändert hat (digikam3.db -> digikam4.db) und nun auch mehrere Alben unterstützt.

Continue reading “Digikams neues Datenbankformat und synchronisierte Bildbestände”

Gregarius – Datenbank bereinigen / schneller machen

Hat man viele Feeds mit vielen Artikeln wird der Web-Feedreader Gregarius mit der Zeit immer langsamer.

Leider funktioniert die Bereinigung gelesener Artikel in der von mir eingesetzten Release-Version nicht. Das kann man aber auch hin- und wieder manuell auf der mysql-Konsole erledigen. Folgendes löscht alle gelesenen Artikel älter als 50 Tage:

DELETE FROM item WHERE unread=0 and added<DATE_SUB(NOW(), INTERVAL 50 DAY);

Ich habe gerne ein Backlog der gelesenen Artikeln, um eine gewisse Zeit nach dem Lesen noch darin suchen zu können. Ideal wäre daher die Möglichkeit, alte Artikel nach einer gewissen Zeit nach dem Lesen bereinigen zu können. Aber da Gregarius das Lese-Datum nicht mitloggt, muß man sich mit dem added-Datum behelfen.

Copy birthday custom field on palm to akonadi/kpilot/kontact

As described in one of my previous blog posts the automatic syncronisation of palms custom fields with kpilot is a bit broken.

Fourtunately all the adressbook information from palm handheld is stored in the VCARD information on KDE/akonadi in special X-Field like X-KPILOT-CUSTOM0.

So I have written a script which parses the pilot custom field in the akonadi VCARD and adds an additional BDAY header there (BDAY is the offical data field for VCARDs for birthday information which is also used by kontact). You can fetch the script out of my git repository.

Dubletten in SQL-Datenbanken finden

Gegeben sei ein Tabelle t, die Dubletten in der Spalte s hat. Außerdem hat die Tabelle noch einen Primary Key in der Spalte id.

Folgender Code findet die Dubletten:
[geshi lang=sql]
SELECT t1.s, t2.s FROM t AS t1, t as t2
WHERE ( (t1.s=t2.s) AND (t1.id < t2.id) ); [/geshi] Würde "t1.id<>t2.id” stehen, würden alle Dubletten zweimal auftauchen. Sollen Dubletten aus zwei verschiedenen Tabellen abgeglichen werden, hat man diese