Skip to content

Hintergrundgrafiken ...

Mir erschliesst es sich noch immer nicht so ganz, warum manche Menschen unglaublich viel Energie darauf verwenden, Grafiken für den Bildschirmhintergrund zu finden, wo doch dieser die meiste Zeit durch Fenster verdeckt wird. Schlimmer noch, dass die meisten Menschen - unabhängig von der Auflösung - Anwendungen im Vollbild nutzen, wie meine kleine Umfrage zeigte.

Allerdings muss ich gestehen, dass mich die Grafiken von Digital Blasphemy schwach machen könnten. Schade, dass die grösseren Bildschirmauflösungen kostenpflichtig sind.

Gefunden via Pofacs.

Mediathek ...

Ich finde ja, dass die öffentlich-rechtlichen Sender in der DACH-Region (Deutschland, Österreich, Schweiz) etwas zu bieten haben und mir gefallen auch die Mediatheken, der einzelnen Sender. Da kommt mir das Java Programm Mediathek gerade richtig.
Das Programm durchsucht die Mediathek verschiedener Sender (ARD, ZDF, Arte, 3Sat, MDR, NDR, ORF, SF), lädt Beiträge mit einem Programm eigener Wahl und kann Themen als Abos anlegen und neue Beiträge automatisch downloaden. Es gibt auch eine Möglichkeit, Podcast zu verwalten und zu Downloaden.
Die Bedienung ist ein bisschen gewöhnungsbedürftig, aber das Programm funktioniert wunderbar.

JDBC ...

Ich selber bin kein grosser Fan von Java, muss aber eingestehen, dass mit JDBC eine der brillantesten Treiberimplementierungen überhaupt erfunden wurde. JDBC steht für Java Database Connectivity und bildet eine Schnittstelle, damit Java-Programme auf Datenbanken zugreifen können.

Es gibt vier verschiedene Typen von JDBC-Treibern. Der oben verlinkte Wikipedia-Artikel erklärt die einzelnen Typen genauer. Im Groben ist Typ 1 eine Schnittstelle zwischen JDBC und ODBC, Typ 2 ist eine Schnittstelle zwischen JDBC und lokal installiertem Treiber, Typ 3 ist eine Schnittstelle zwischen JDBC und einem Brücken-Server, der eine Verbindung zur eigentlichen Datenbank herstellt und Typ 4 ist eine Implementation des Treibers in reinem Java.

In der Praxis habe ich am häufigsten mit Typ 2- und Typ 4-Treibern zu tun, wobei Typ 4 das ist, was man haben möchte, da der ganze Treiber (in der Regel) aus nur einer einzigen Datei besteht und diese Datei funktioniert (wiederum in der Regel) überall dort, wo Java installiert ist.

Beispiele für die Anwendung:

Ich benutze sowohl unter Linux, wie auch im Büro unter Windows, SQuireL SQL zum generieren von Abfragen für MySQL, Sybase, SQLite, ...

Für Perl Datenbank-Anwendungen nutze ich DBD::JDBC als Proxy-Server, um auch immer mit der gleichen Syntax und ohne die Not, lokal binäre Treiber installieren zu müssen, auf Datenbanken zugreifen zu können.

Gerade gestern durfte ich eine hysterisch historisch gewachsene Datenbank untersuchen (reverse engineering), dabei ist SchemaSpy eine sehr grosse Hilfe (ich habe bei der Implementation des DB2 Teils ein wenig mitgeholfen), allerdings sollte davon die aktuelle beta verwendet werden, da das Release einen Fehler hat. Wer es lieber grafischer mag, kann auch SchemaSpyGUI als Oberfläche benutzen.

Perl rename ...

Hier noch einmal ein kleiner Beitrag für Romans Blogparade zum Thema Exotische Linux-Applikationen: Perl rename

Mit "rename" aus der Perl-Installation (bei Debian und Ubuntu automatisch im Pfad, bei SUSE gibt es ein anderes rename) kann man auf sehr komfortable Art und Weise mehrere Dateien umbennenen.

Die generelle Syntax ist:

rename RegulärePerlExpression Dateien

Lässt man Dateien weg, können die umzubenennenden Dateien via StdIn an das Programm übergeben werden.

Ein vorangestelltes "-v" oder "--verbose" gibt alle umbenannten Dateien aus, ein "-n" oder "--no-act" zeigt nur, was umbenannt würde, ändert aber nichts und ein "-f" oder "--force" überschreibt bereits vorhandene Dateien.

Beispiele:

Alle Dateien in Kleinbuchstaben wandeln:
rename 'y/A-Z/a-z/' *

In allen Dateien, die auf "bak" enden, Leerzeichen durch Unterstriche ersetzen:
rename 's/ /_/g' *bak

Allen ".jpg"-Dateien ein "bak." voranstellen:
rename 's/^/bak./' *.jpg

Sehr gekünsteltes Beispiel, aber Rückwärtsbezüge funktionieren auch:
rename 's/(.*)_und_(.*).txt/$2_und_$1.txt/' *.txt

macht aus kind_und_kegel.txt kegel_und_kind.txt oder aus hof_und_hund.txt wird hund_und_hof.txt

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.:

SQLite, noch einmal ...

Wie bereits angekündigt, wollte ich mal etwas zu SQLite schreiben.

Da ich das Werkzeug mal wieder im Büro gebraucht habe und fast zeitgleich eine Anfrage im ubuntuusers.de-Forum aufkam, hier also ein bisschen Text dazu:

SQLite ist eine Datenbank in einer Datei, das heisst, es muss kein Server-Dienst laufen. Das Client-Programm ist auch gleichzeitig das Datenbankverwaltungstool.

SQLite ist in allen aktuellen Mobiltelefonen (als Telefonbuch / Adressverwaltung) zu finden und wird aktiv von (beispielsweise) Adobe, Bloomberg, Mozilla und Symbian gefördert.

SQLite gibt es als Sourcecode und vorcompiliert für Linux, Mac OS X, und Windows, sowie auch als JDBC-Treiber oder Perl-Modul.

Natürlich kann SQLite nicht alles was ein Client-Server-Datenbanksystem kann, aber für 95% der Anwendungsfälle einer Privatperson reicht es aus.

Ein sehr grosser Anteil von SQL-Kommandos wird unterstützt.

Es gibt nur vier Speicherklassen Integer, Real, Text, Blob. "create table"-Statement anderer Datenbanksysteme wird in der Regel problemlos interpretiert (nur, dass im Hintergrund beispielsweise statt VARCHAR TEXT benutzt wird).

Die Aufgabe:
Zwei Dateien: Eine enthält Adressdaten in Folgender Form (telneu.txt, 1.8 GB, ~60 Millionen Zeilen): Vorname Nachname;Strasse;Ort;PLZ;Telnr; (Je Zeile ein Datensatz), die Zweite Datei enthält nur Postleitzahlen (plz.txt, ~1000 Zeilen).

Aus der ersten Datei werden alle Datensätze gesucht, deren Postleitzahlen in der zweiten Datei vorkommen.
sqlite> CREATE TABLE telneu (Vorname_Nachname text, Strasse text, Ort text, PLZ text, Telnr text);
sqlite> .separator ";"
sqlite> .import telneu.txt telneu
sqlite> CREATE INDEX idx_telneu_plz ON telneu (PLZ);
sqlite> CREATE TABLE plz (plz text);
sqlite> .import plz.txt plz
sqlite> SELECT * FROM telneu WHERE plz IN (SELECT plz FROM plz);


Vielleicht hilft es Euch auch.

Hier ein paar Links:
- Downloads - Paket "sqlite3" in Ubuntu
- Dokumentation
- Datentypen
- SQL-Syntax
- JDBC-Treiber
- Perl-Modul - Paket "libdbd-sqlite" in Ubuntu
- Firefox Extension SQLite Manager

SQLite

Ein kleines "Erinner mich". Ich muss dringend einmal einen Artikel zu SQLite schreiben. Damit kann man wirklich schnell gute Dinge tun.

Diese "Datenbank in einer Datei" ist wirklich unglaublich. Die Beschäftigung damit lohnt sich in jedem Fall. Die Datenbank findet sich in jedem Handy und es gibt Portierungen für nahezu alle Betriebssysteme.

Freie PDF-Reader ...

Eine - wie ich finde - schöne Initiative der Free Software Foundation.

PDF ist ein standardisiertes Dateiformat. Um das auf möglichst vielen Systemen lesbar zu haben, ist es sinnvoll Programme zu verwenden, die diesen Standard unterstützen und nicht auf Erweiterungen setzen, die nicht im Standard enthalten und somit für alle lesbar sind. (Das ist im besonderen auch für Barrierefreiheit wichtig).

pdfreaders.org

via Onli

Das Warten hat noch kein Ende ...

Wie hier angekündigt wolle ich mir Chandler näher ansehen.

Das Projekt ist sehr vielversrechend, steckt aber leider noch zu sehr in den Kinderschuhen, um ernst genommen zu werden. Das macht sich leider nicht nur in der Geschwindigkeit des Speicherns bemerkbar.

Gut gelungen finde ich die Integration verschiedener Terminquellen und die Anlage von übergreifenden Kategorien für Termine.

Schlecht finde ich die Anlage wiederkehrender Termine. Es ist mir nicht gelungen, einen Termin anzulegen, der immer am letzten Freitag im Monat stattfindet. Und das ist eher noch eine der leichteren Übungen.

In Summe denke ich, dass das Projekt sich noch ein wenig weiterentwickeln muss bevor es wirklich ernsthaft benutzbar wird.

Sollte das Warten ein Ende haben?

Bei Golem lese ich von Chandler.

Schon sehr lange suche ich nach einem vernünftigen Webkalender, der zumindest in die Nähe vom Google Kalender kommt. Chandler soll eine PIM (Personal Information Management) Anwendung sein, die sowohl per Web als auch per Client verwaltet werden kann.

Es gibt Clients für Windows, Mac OS X und Linux (sogar als deb-Paket zur Nutzung unter Debian/Ubuntu).

LaTeX ...

Mein letzter Kontakt zu dem Makropaket LaTeX (Ergänzung des Textsatzsystems TeX) ist mehr als 15 Jahre her und jetzt brauche ich das Wissen wieder für ein privates Projekt.

Jetzt, da ich mich wieder damit beschäftige, kann ich nicht mehr nachvollziehen, warum ich auf die WYSIWYG-Welle aufgesprungen bin. LaTeX ist um so vieles eleganter.

Einen guten Wiedereinstieg bilden die Tutorials von Jens Kubieziel und Sebastian Stein.

iriverter ...

iriverter ist ein kleines Tool, mit dem Videos in Formate für unterwegs-Player gewandelt werden können.

Unterstützt werden derzeit Creative Zen Vision:M, iAUDIO X5 Series und von iriver H300 Series, PMP Series und clix / U10.

Lauffähig ist das ganze unter Windows, Mac OS X und Linux.