Für einen Kunden habe ich vor kurzem eine Videoüberwachungs-Software ausgesucht. Das richtige Produkt musste einigen Anforderungen genügen und war schwieriger zu finden als alle Software die ich bisher gesucht habe. Es gab leider keine Übersicht in der verschiedene Software entsprechend verschiedenen Kriterien verglichen wurde. Nach dieser Recherche gibt es nun eine. Hier ist sie.

Weitere Recherchemöglichkeiten bietet z.B. die Übersicht zu Überwachungssoftware auf Softpedia.

Software-Anforderungen

  • Windows-basiert
  • Überwachungs-Software für eine Multiport Video-Capture Card mit RGB Video Ausgabe
  • Schnittstelle: möglichst WDM (windows driver model / Direct Show)
  • 4-Screen Monitoring (lokal / remote)
    • lokal und remote
    • gute Geschwindigkeit mit DSL Light (400 kBit/s Downstream)
  • 4-Screen Playback (lokal / remote)
    • zwingend notwendig
    • d.h. Sichtbarkeit aller Kameras in der Rückschau
    • bei lokalem und remote Monitoring
    • gewünscht, aber nicht zwingend
  • hohe Framerate für Monitoring und Playback
    • um 10 fps, aber auch 4 fps waren bereits als ausreichend bewertet worden
    • um Bewegungen und Tätigkeiten in einem Ladenlokal genau verfolgen zu können
  • Einzelbildanzeige beim Playback
  • deutsche Benutzerschnittstelle
  • Bedienelemente groß genug und übersichtlich
  • Videos müssen mind. 6-7 Tage aufgehoben werden, aber nicht länger
  • muss mit den vorhandenen 4 analogen CCIT-Kameras funktionieren

Geeignete Alternativen

ABUS Security-Center Digi-Protect Server

Auf diese Software fiel schließlich die Auswahl. Sie erfüllt die oben gelisteten Anforderungen in idealer Weise. Es gibt die Digi-Protect Server Software zum freien Download, jedoch funktioniert sie nur mit den Digi-Protect Video Capture Cards.

Capturix VideoSpy

Capturix VideoSpy erfüllt ebenfalls die gestellten Anforderung, ist aber unübersichtlicher (und flexibler) in der Bedienung. Schwierig ist, eine geeignete Video Capture Card für diese Software zu finden; siehe dazu den Blog-Post »Capture Cards für Capturix VideoSpy«. Die hier benötigten Features sind:

  • 4-Screen Monitoring
  • 4-Screen Remote Monitoring möglich
    • jede Kamera kann in einem Live Stream zur Verfügung gestellt werden
    • kann einen Windows Media Stream beim Remote Monitoring einbinden
    • kann »Capturix VideoSpy (Point-to-Point)« beim Remote Monitoring einbinden
  • 4-Screen Playback
  • 4-Screen Remote Playback
    • VPN mit Einbindung eines Netzlaufwerks um Rückschau Remote zu ermöglichen
  • Playback durch Eingabe des Datums im selben Fenster ist möglich
  • deutsche Benutzeroberfläche
  • umfangreiche Optionen

Preis: 99 USD (= 70 EUR) (denn »Capturix VideoSpy PLUS« wird benötigt)

http://www.capturix.com/default.asp?target=consumer&product=cvs&section=features

Problem: gleichzeitige Ansicht aller 4 Sub-Inputs / Videoquellen der Capture Card

CAPTURIX kann in der vorhandenen Konfiguration keine zwei Sub-Inputs gleichzeitig öffnen

Fehlermeldung beim Versuch, ein zweites Videfenster zu öffnen um einen anderen Sub-Input einzustellen: »Sie können dieses Gerät nihct verwenden wenn eine andere Videoanwendung […] es bereits verwendet.«

Fehlermeldung beim zwieten Versuch (Auswahl des Videogeräts in der automatisch geöffneten Geräteeinstellung): LHE: 1001:Error connecting VFW driver

keine Verbesserung durch Einsatz des »WDM Video Capture Driver for Bt848 / Bt849 / Bt878 & Bt879 Chipsets«

http://btwincap.sourceforge.net/

alle Software-Voraussetzungen von Capturix VideoSpy wurden beachtet

Ursache wohl: Capturix VideoSpy setzt eine VfW oder WDM (Version >= 2005) Videoquelle voraus

  • Original-Gerätetreiber ist von 2001
  • OpenSource-Treiber ist von 2004

Lösung wohl: eine andere Capture Card; siehe dazu den Blog-Post »Capture Cards für Capturix VideoSpy«.

Software-Vorausetzungen

Problem: Remote Monitoring / Playback

Problem: Sub-Input / Videoquelle wählen

  • notwendige Einstellung beim Originaltreiber: Kamera »Microsoft WDM Image Capture«, eine der 4 Videozusammenfassungen wählen in »Geräteeinstellung -> Videoquelle« (funktioniert nicht mit dem vom Treiber bereitgestellten Kamera Device)
  • notwendige Einstellung beim btwincap Treiber: Kamera »Microsoft WDM Image Capture«, eine der 4 Videoquellen wählen in »Geräteeinstellung -> Videoquelle«
  • das als »BT878 Capture 0« erkannte Gerät bedeutet wohl die VfW-Schnittstelle zur Kamera

Problem: Framerate hoch genug?

  • ja, sehr flüssige Darstellung zumindest bei einer Kamera gleichzeitig
  • Framerate evtl. um 10 fps
  • zumindest für die Übertragung per VNC ist es sehr vorteilhaft, die Framerate herunterzuregeln auf etwa 5 fps (Geräteeinstellung -> Bildwiederholung)

Weniger geeignete Alternativen

go1984

http://www.go1984.com/

  • native Client Software und Web Frontend zum Remote Monitoring verfügbar
  • Remote Monitoring funktioniert über Firefox (Java Applets)
  • funktioniert mit Capture Cards
  • Web Client kann mit HTML Templates angepasst werden
  • DirectX 8.1 oder höher notwendig
  • deutschsprachige Version verfügbar
  • 4-Screen Remote Monitoring möglich über Desktop Client oder Web Client
  • ungenügende Playback-Navigation: es müssen Tag und Szene ausgewählt werden, nicht Tag und Zeit

LuxRiot Digital Video Recorder

  • WebClient verwendet ActiveX controls

EyeLine

  • Homepage
    http://www.nchsoftware.com/surveillance/
  • Bewegungserkennung vorhanden
  • verm. ist stets eine Hauptansicht mit einer Kamera vorhanden, kein echtes 4-Screen Monitoring
  • verm. kein 4-Screen Playback
  • remote Playback ist möglich
  • Freeware

Argus Active WebCam Deluxe 9.2

Multi-Webcam Surveillance System 2.1

CamPermanent

WebCam Monitor 4.24

Webcam Surveyor 1.7.3

Ungeeignete Alternativen

In dieser Übersicht sind erscheinen die noch am besten geeigneten Alternativen zuerst und die völlig ungeeigneten Alternativen zuletzt.

Argus Surveillance DVR 3.0.1

  • Homepage, mit Shareware-Download
    http://www.argusurveillance.com/product_info.php?products_id=34
  • gleiche Funktionalität lokal (native Client) und remote (Web Interfave)
  • 4-Screen Monitoring
  • 4-Screen Remote Monitoring
  • 4-Screen Playback
  • 4-Screen Remote Playback
  • Preis: 65,17 EUR (Download-Version, für 4 Kameras, EUR-Währung)
    http://www.argusurveillance.com/product_info.php?products_id=34
  • Dokumentation
    • Argus Surveillance DVR starten
      • Rechtsklick -> Show im Argus DVR Symbol in der Taskleiste
      • sonst: Symbol auf dem Desktop (Bildschirmhintergrund)
      • oder: Start -> Programme -> Argus Surveillance -> Argus Surveillance DVR
    • Vollbild-Anzeige
      • einschalten: Rechtsklick auf Kamerabild, »Full Screen«
      • ausschalten: Rechtsklick auf Kamerabild, »Close Full Screen«
    • Videoüberwachung per Internet
      • Browser: MS IE 6 oder 7
        • nur Microsoft Internet Explorer, kein Firefox!
        • Einstellungen müssen Active X erlauben
    • WatchDog per Internet
  • Probleme und Lösungen
    • Problem: zu geringe Framerate
      • Live Ansicht: bisher 1,25 fps bei 4 Kameras, 2 fps bei einer Kamera.
      • Playback: bisher 1,07 fps bei 4 Kameras, 1,15 fps bei einer Kamera.
      • Keine Beschleunigung möglich durch Einstellen von 5 fps oder 10 fps für Recording oder Remote Access.
      • Vermutlich beherrscht die Software keine höheren Frameraten?
      • liegt nicht an zu hoher Prozessorlast: DVRViewerWindow.exe verursacht 30% Systemlast
      • ist vermutlich ein grundsätzlches Problem das nur durch Austausch der Software behoben werden kann
    • Problem: Einfrieren des Bildes beim Playback in höheren Geschwindigkeiten
      • tritt bei den Geschwindigkeiten 6-15x reproduzierbar auf
      • tritt bei Einstellung dieser Geschwindigkeiten dauerhaft per Click oder zeitweise per Drag&Drop auf
      • liegt nicht an zu hoher Prozessorauslastung
      • bisher keine Lösung vorhanden
      • Workaround: die Geschwindigkeiten 6-15x vermeiden
    • Problem: komfortable Eingabe des Datums beim Playback
      • Datumsauswahl soll direkt im Playback-Fenster möglich sein
      • besser noch: Datumseingabe für Rückschau rechts unten in der Live-Ansicht
    • Problem: schlechte Usability und Software-Qualität insgesamt
    • Problem: kann nicht als Service installiert werden, wird also beim Logout beendet
    • Problem: Video Controls (Helligkeit, Kontrast usw.) haben keinen Effekt mehr
      • liegt vermutlich an unvollständiger Installation des Treibers
      • es hilft jedoch nichts, das Setup auszuführen statt die .inf-Datei bei Windows’ Treiber-Suche zu wählen (so wird nur die Anwendungssoftare Cyber Eyes installiert, aber überhaupt kein Treiber)
      • der Treiber muss installiert werden indem man den Hardware-Assistenten im Verzeichnis des Treibers suchen lässt
      • eine Neuinstallation des Treibers auf diesem Weg ergab dass bei Standardeinstellungen überhaupt keine Farbverfälschungen mehr auftreten die korrigiert werden müssten
      • nach einem Neustart jedoch wieder das bisherige Problem: Video Controls haben keinen Effekt mehr
      • es scheint dass der Defekt an der vorgenommenen mehrfahren Installation verschiedener Treiber liegt
      • Lösung: Windows neu installieren oder btwincap Treibe verwenden
      • beim btwincap-Treiber ist es andersherum: hier darf »search local cameras« nicht ausgeführt werden sonst erscheint keine Kamera bei der man Video Controls hat; stattdessen wähle man in »New Camera« direkt »verbinden« und erzeuge mehrere Kameras durch mehrfachen Aufruf von »New Camera«
    • Problem »no such device«
      • entsteht wenn man nur die beim ersten Start gefundene Kamera hinzufügt
      • richtig ist: »search local cameras«
    • Problem: eine zweite Instanz kann sich nicht zu Videoquellen verbinden
      • z.B. beim Login per Remote Desktop: das lokale Login wird suspendiert, ein neuer Benutzer wird eingeloggt und eine zweite Instanz von Argus Surveillance wird gestartet
      • Workaround: vor RDP-Login die erste Instanz per VNC beenden
    • Problem: Farbverfälschung beim Monitoring
      • jedoch völlig korrekte Farben bei Snapshots
      • Ursache: Sättigung ist bei weitem zu hoch (hier verwendete Capture Card: AME Group SG-P4)
        • die Sättigung muss auf einen sinnvollen Wert gebracht werden
        • außerdem darf der Kontrast keinesfalls zu hoch sein, sonst ergibt das einen ähnlichen Effekt wie zu hohe Sättigung (»Farbkontrast«)
        • Einstellungen machen in »Manage Cameras -> Configure« in »Argus Surveillance«
        • Kontrast- und Helligkeit können auch mit identischem Effekt in den Kamera-Ansichten geändert werden
        • korrekte Einstellungen beim Original-Treiber: Brightness 54%, Contrast 18%, Hue 50%, Saturation 32%
        • korrekte Einstellungen beim OpenSource-Treiber:
          • Brightness 70%
          • Contrast 24%
          • Hue 50%
          • Saturation 48%
          • Sharpness 50%
          • White Balance 50%
          • Gamma 22%
          • Backlight Comp 100%
        • einzig verbleibendes Problem: Gelbstich des Bildes
        • diese Lösung gilt nur für den Original-Treiber, nicht für dessen Open Source Ersatz
      • keine Lösung durch: “convert to 24 bit format” auszuschalten
      • keine Lösung durch: “to capture use preview pin / capture pin”
        • bei “preview pin” ist beim Original-Treiber kein Monitoring mehr möglich
        • beim OpenSource-Treiber ist beides möglich, bietet jedoch keine Lösung
      • keine Lösung durch: andere Videostandards
        • Videostandards einstellen in »Manage Cameras -> Configure« in »Argus Surveillance«
        • video standard PAL_D, PAL_G, PAL_H, PAL_I, PAL_N (statt PAL_B) bietet keine Änderung
        • video standard PAL_M macht das Bild bis auf die Captions schwarz
        • video standard NTSC_M, NTSC_M_J führt zu Synchronisationsproblemen
        • video standard PAL_60, NTSC_433 ist nicht auswählbar
        • video standard SECAM_* führt zu einem blau-gelben bild
    • Problem: Umgang mit zu wenig Speicherplatz
      • Videos werden gespeichert asl .DVRRec-Dateien, also verm. proprietäres Format
      • Speicherung der Daten standardmäßig unter: c:Dokumente und EinstellungenAll UsersAnwendungsdatenPY_SoftwareArgus Surveillance DVRGallery
      • dieses Problem könnte einen Fehler »Fehler im Script, Zeile 42« (der das weitere Funktionieren verhinderte) verursacht haben, denn nach Löschen von 300 MB wurde beim Neustart des Programms folgende Meldung gezeigt: »Sie haben das Speicherplatzproblem erfolgreich gelöst. […] Möchten Sie noch mehr Speicherplatz freigeben?«
      • Problem wurde verursacht durch »Program Options -> Recording -> Drive Space per Camera: 4 GB«, während auf der entspr. Festplatte nur insges. 4,9 GB frei waren
      • Das Programm beginnt erst dann die alten Videoaufzeichnungen zu überschreiben wenn der für eine Kamera allozierte Platz belegt ist, nicht »bereits« wenn die Festplatte voll ist.
      • Lösung: Daten wurden kopiert auf D:, 5 GB pro Kamera allokiert, Festplatte reicht dazu aus.
    • Problem: plötzlich auftretende Farbverfälschung
      • Argus Surveillance kommt durcheinander wenn gleichzeitig zeitweise die Software Cyber Eyes lief
      • Lösung: Argus Surveillance neu starten
    • Problem: beim Ausschalten und Wiedereinschalten des Players verfälschen sich die Farben der Captions
      • Lösung: in Argus Surveillance DVR neue Verbindung zu den Kameras aufbauen, ggf. mehrfach
    • Problem: Kontrasteinstellungen im Player-Fenster haben manchmal keinen Effekt
      • Argus Surveillance DVR neu starten
    • Problem: bei Anzeige von 5 (statt 4) Kameras passiert es in 70% der Fälle dass 1-3 Kameras nur ein Standbild zeigen
      • Lösung: in Argus Surveillance DVR neue Verbindung zu den Kameras aufbauen
    • Problem: die erreichte Parbflächen-Pixelung ist unterschiedlich bei unterschiedlichen re-connectings zu den Kameras
      • Lösung: in Argus Surveillance DVR neue Verbindung zu den Kameras aufbauen

Intertraff MMS-DVR

http://www.intertraff.com/mmsdvr/mmsdvr.php

  • unterstützt nur zwei Video Capture Boards (neben IP-Kameras)
  • Aufzeichnungsformat ist MJPEG
  • 4-Screen Remote Monitoring möglich
  • 4-Screen Playback fraglich (eher nicht)

Security Monitor Pro 2.10

e-Dog P400 1.2

WebCam Looker

Video Patrol 5.0

Cyber Eyes

Guard Eyes 5.0

H264 WebCam Pro 2.36

  • auf downloadthat.com, mit Shareware-Version
    http://www.downloadthat.com/windows/Multimedia/Video–Animation-Tools/H264-WebCam.html
  • 4-Screen Monitoring
  • vermutlich auch Remote Monitoring
  • 4-Screen Playback fraglich
  • 4-Screen Remote Playback fraglich
  • Problem: Capture Card wird als eine einzige statt 4 Videoquellen erkannt, wodurch stets wechselnde Bilder angezeigt werden; Lösung: ARGUS DVR Software darf nicht gleichzeitig laufen, dann ist der Zugriff auf 5 SubInputs möglich.
  • Problem: flüssige Framerate wird durch Sequenze ohne Bilder unterbrochen, Prozessor-Überlast?

CatSpy

XProtect

VisualHindsight Home Edition 2.2

GodEyes 2.0

CamGuard Security System (4-channel)

  • Preis: 89 USD
  • Website
    http://www.zzzsoft.com/en/super4eye_index.asp
  • native Client für Remote Monitoring / Playback
  • 4-Screen Monitoring
  • 4-Screen Remote Monitoring
  • 4-Screen Playback fraglich
  • Suche nach Datum in den Aufzeichnungen ist möglich
  • vermutlich seit 2005 nicht weiterentwickelt
  • Framerate war angemessen, wohl um 4-5 fps
  • Problem: Capture Card wird als eine einzige statt 4 Videoquellen erkannt, wodurch stets wechselnde Bilder angezeigt werden; Lösung: ARGUS DVR Software darf nicht gleichzeitig laufen, dann ist der Zugriff auf 5 SubInputs möglich; vermutich ist nur der letzte (nicht verwendete) SubInput zugreifbar wenn ARGUS Surveillance System läuft
  • Problem: Absturz mit Access Violation beim Versuch, das zweite und weitere Video Devices mit SubInput anzulegen, egal ob der SubInput schon verwendet wird oder nicht; keine Lösung gefunden

Andere Alternativen

Neben der Suche nach einer Windows-basierten, geeigneten Videoüberwachungs-Software gibt es evtl. auch noch andere Alternativen, dier hier jedoch nicht weiter verfolgt wurden:

  • Baukasten-Sysrem
  • 4-Screen Playback und evtl. auch Remote Playback erreichen durch Verwendung eines reinen Playback-Programms und eines DVR-Recorders der in standardisiertem Format abspeichert
  • 4-Screen Monitoring und evtl. auch 4-Screen Playback erreichen durch RDP-Übertragung der Live-Monitoring-Ansicht der Software
    • geht nur wenn RDP Video komprimiert statt als Bitmap-Sammlung überträgt, was ausprobiert werden muss
    • evtl. möglich wenn die Software mittels Active X darstellt
  • Selbstprogrammierung mit SDK zur Video Capture Card AME SG-P4 PCI
    • evtl. müsste nur der Remote Client neu programmiert werden (ein Web Client)
  • Verwendung von IP-Videokameras statt und IP-Videosoftware statt analoger Kameras und Video Capture Cards
  • Linux-basierte Software

Es gibt zwar ein .tar.gz-Paket als Binary Distribution für Ubuntu Linux unter http://opensong.org/d/linux, allerdings wurde dieses mit einer Demo-Version des zugrunde liegenden Rapid Application Development Environment »RealBasic« kompiliert. Das führt dazu dass das Programm nach jeweils 5 Minuten endet und innerhalb von 8 Tagen abläuft (getestet 2007-10-08). Auf der Website steht dazu: »Because REALbasic is free on Linux, there is not currently a compiled version for Linux. In order to install OpenSong you need Compile from the source manually.« (http://www.opensong.org/d/manual/installation?s=linux).

Also OpenSong selbst kompilieren:

  1. Debian-Paket des »REALbasic 2007 Release 4 for Linux« herunterladen von http://www.realbasic.com/download/ und installieren.
  2. »dpkg-query -L realbasic2007r4« zeigt dass die ausführbare Datei »/opt/REALSoftware/REALbasic2007r4/REALbasic2007« ist. Man starte dieses Programm. Es befindet sich auch im K-Menü.
  3. 2007-10-08 war die neueste Version von OpenSong (1.2) noch nicht als Source-Paket verfügbar, deshalb musste es aus dem SVN extrahiert werden:

    svn co https://opensong.svn.sourceforge.net/svnroot/opensong/source/trunk opensong

  4. Man öffnet die Projektdatei des OpenSong-Projektes in REALbasic2007: »File -> Open -> XML Project«, dann »OpenSongLinux.xml« auswählen.
  5. Unter »Project -> Build Settings« Linux als einzige Ziel-Plattform und die gewünschte Plattform einstellen.
  6. Mit »Project -> Build Application« das Programm kompilieren. Es entsteht eine ausführbare Datei »opensong«.
  7. Das Projektverzeichnis verschieben nach /usr/local/lib/.
  8. Um das Programm von /usr/local/bin/ aus starten zu können reicht es nicht, dort einen symbolischen Link auf die ausführbare Datei anzulegen. Es entsteht der Fehler

    ../Common/loaderX86.cpp: 487
    Failure Condition: exeFile
    Can’t open executable ../lib/opensong/opensong«

    Stattdessen lege man ein Script /usr/local/bin/opensong an mit folgendem Inhalt:

    #!/bin/bash
    cd /usr/local/lob/opensong;
    ./opensong;

  9. Nun kann man opensong einfach durch den Befehl »opensong« starten.

Thanks go to http://alicious.com/opensong-kubuntu-digital-projection.


Manchmal denke ich daran, meine ganze Computer-Ausstattung auf einen einzigen Computer zu reduzieren (plus Zusatz-Hardware für den Schreibtisch: Tastatur, externer Monitor, …) umzustellen. Dann bräuchte man wirklich nur noch ein Gerät, und nicht mehr (schlimmstenfalls) Desktop-PC, Notebook, Handheld-PC, Mobiltelefon, Stereoanlage, Festnetz-Telefon, Anrufbeantworter, Wecker, Radio, Fernseher, DVD-Player, tragbarer MP3-Player, … . Alles dann schön klein für unterwegs 🙂

So etwas scheint es »fertig« noch nicht zu geben: ein Allzweck-PC, ein echter »persönlicher Computer« der immer dabei ist und der einzige verwendete Computer ist. Immer bedeutet: im Fahrzeug, als Handy, auf Expeditionen, im Rucksack, in der Hosentasche, auf dem Schreibtisch. Hier eine Untersuchung welche Geräte man als Basis für etwas Derartiges nehmen könnte.

Zuerst habe ich hier den »Itronix GoBook MR-1 Rugged Ultra Mobile PC« (Gewicht 900g) favorisiert. Probleme dieses Geräts sind jedoch: zu weni Rechenleistung um wirklich als einziger PC dienen zu können, außerdem zu klobig und zu schwer für Indoor- oder Stadt-Einsatz.

Mein derzeitiger Favorit ist deshalb das »OQO model 2« (bzw. die neue internationalisierte Variante OQO model e2; Preis um 1400-2000 EUR je nach Ausstattung) zusammen mit einigen Änderungen:

  • Ruggedization Kit
  • Zubehör
  • Vorinstallation von Linux-Unterstützung (das wird bisher kommerziell überhaupt nicht angeboten)
  • Desktop-Docking-Station
  • Fahrzeughalterung
  • Schnittstelle zu einem Satellitentelefon
  • Behebung des »Active Digitizer«-Problems: das OQO model 2 kann nur mit einem Active Digitizer Pen bedient werden, d.h. es enthält keinen Touchscreen der mit Passive Pen oder den Fingern bedient werden könnte. Unbestätigten Informationen zufolge gibt es Modelle mit Touchscreen. Eine andere Idee wäre die Herstellung von »Active Digitizer Finger Tip Caps«.

Rugged (Linux-)Notebooks als mögliche Basissysteme?

EmperorLinux bietet leider nur teure Neugerät an, weshalb ein Kauf dort für viele Privatanwender uninteressant ist. EmperorLinux bietet auch kein Zubehör, deshalb nicht sofort Outdoor-einsatzfähig; die produkte sind nicht besonders innovativ. Außerdem sind Notebooks deutlich zu groß um als Basissystem für einen SPC dienen zu können.

Rugged UMPCs als mögliche Basissysteme?

Ich würde zur Zeit für einen Outdoor-geeigneten Computer (der als einziger Computer für alle Aufgaben dienen soll) einen stark modifizierten UMPC bevorzugen. Die interessantesten Alternativen für Rugged UMPCs sind derzeit, mit Angaben zur Eignung als einziger Computer:

  • Catcher v2.0. Vermutlich das beste Basisgerät, da auch vom Militär eingesetzt; es hat genug Leistung um als einziger persönlicher Computer zu dienen. Aber auch dieses Gerät braucht noch Linux (ist möglich!!), Accessoires (Tasche usw.), … .
  • Victum Tablet iX104C3. Ein »ganz hartes Gerät«: vollkommen geschlossen und lüfterlos, so strahlwasserdicht! Docking-Station dafür ist vorhanden; das gerät braucht Linux (ist möglich); Auflösung i.O. (XGA); Preis um 3400 USD.
  • Victum Tablet 27. Auch full ruggedized; zu geringe Auflösung.
  • Victum Tablet 8. Auch full ruggedized; Docking Station verfügbar; zu geringe Auflösung.
  • SwitchBack Rugged Ultra Mobile PC. Sehr cooles Gerät; sogar mit Linux als optionalem Betriebssystem angeboten; Preis ab 6500 USD (!!!); zu schwer (1,5kg); zu dick; zu geringe Rechenleistung.
  • Itronix GoBook MR-1 Rugged Ultra Mobile PC. Das leichteste bisher gefundene ruggedized Gerät (900g); zu geringe Rechenleistung.

Problem: all diese Geräte finde ich zu groß um auch im normalen Alltag stets dabei zu sein (wiegen alle um 2kg, ähnlich wie schon ein ThinkPad X61); ein ziviler UMPC (um 750g) mit speziell hergestellter Hülle wäre besser, ist aber nicht aufzufinden (d.h. die Hülle muss selbst noch hergestellt werden). Ein solches Gerät würde »Semi-Zivilisten« als neuen Kundenkreis erschließen: es wäre geeignet z.B. als einzger persönlicher Computer für Weltreisende, immer dabei in der Stadt, im Lkw, im Rucksack usw., und wäre durch Zusatzausstattung je nach Bedarf geschützt. Außerdem müsste eine komplette Outdoor-Ausstattung mit diesem Gerät als Basis-Hardware angeboten werden, aber das gibt es bisher anscheinend nicht.

Non-rugged UMPCs als mögliche Basisysteme?

Da kein Rugged UMPC klein und leicht genug war um als Basissystem dienen zu können muss nun versucht werden, einen »normalen« UMPC dafür zu verwenden und bei Bedarf durch ein »Ruggedization Kit« zu schützen. Hier eine Übersicht geeigneter zur Zeit erhältlicher Basissysteme, nach Grad der Empfehlung absteigend. Zuerst wird also das OQO model 2 genannt, auf den die Wahl schließlich fiel:

  • OQO model e2, seit 2007-09-17 in Europa erhältlich, 1.6 GHz Prozessor, VIA C7-M processor, 120GB Festplatte oder 32GB SSD (schockfeste Festplatte).
    Ganz scharf ist dabei die Docking-Station, unten im verlinkten Artikel.
  • Samsung Q1-SSD. Technische Daten: 30 GB Solid State Disk, 1 GB RAM. Erhältlich z.B. bei eXpansys. Preis um 2000 EUR, mit nicht schockfester Festplatte um 1000 EUR.

Weitere Links zu UMPCs:

Solche Geräte als Firma mit Linux anzubieten wäre wohl weltweit einmalig … . Und insbesondere wäre es mal nötig die Geräte von diesem Yuppie-Image zu befreien und durch Modifikationen für harten Einsatz nutzbar zu machen!!!

Dies ist ein »Abfallstück« aus meiner Ausrüstungsplanung das ich nicht mehr brauche und das deshalb in meinen Blog kommt. Habe mich mal dafür interessiert, einen Linux-basierten PDA anzuschaffen und dazu einige Recherchen angestellt .. praktische Erfahrung mit den vorgeschlagenen Geräten habe ich aber keine. Hier das Ergebnis meiner Recherchen, die besten Empfehlungen zuerst:

  • Sharp Zaurus SL-C3200. Siehe http://www.mobiletechreview.com/Sharp-Zaurus-C3200.htm. Das neueste Modell der Linux-basierten Sharp SL-C Serie. In Europa wohl nur erhältlich über dynamism.com, ein Anbieter der neueste japanische Geräte auf den europäischen Markt bringt. Das Gerät sollte mit einer Solid State Disk, Compact Flash Karten für WLAN und Bluetooth und 2 weiteren Akkus (zum Glück nicht fest verbaut) aufgerüstet werden.
  • Nokia N800. Siehe http://www.dynamism.com/n800/main.shtml. Linux-basiert; bietet ein GPS-Modul, verwendbar mit Google Maps. Gegenüber dem erfahrungsgemäß zu langsamen Nokia N770 vorzuziehen.
  • Motorola Linux Smartphone. Siehe http://www.golem.de/0507/39220.html.
  • Compaq iPaq. Ein Linux-basierter PDA.
  • Apple iPhone. Siehe http://de.wikipedia.org/wiki/IPhone. Basiert auf Mac OS X und damit auf BSD-Unix. Besonders interessant beim iPhone ist das Multitouch-Touchpad mit dem man alle Anwendungen nur mit den Fingern bedienen kann.

Für weitere Informationen vergleiche den Linux PDA Guide.

To convert a bulk of blog posts I created in the past years to the format of Deepest Sender I wrote a small Python script that converts all events from an iCalendar (.ics) file to XML files for Deepest Sender. By the way, this is my first real-world Python script and I am astonished as to the ease, clarity and brevity of Python. Note that you need to save the script posted here with UTF-8 encoding; line mangling is just a visibility / screen width and template problem, just copy and paste the source into a text editor and you’ll be fine! Have fun!

#! /usr/bin/env python
# -*- coding: utf_8 -*-
#
# converts an iCal file with blog entries (as appointments) to Deepest Sender XML
#
# Arguments (in order):
# file the iCal file to convert
# output directory directory where the output files for Deepest Sender go into, one per blog post
#
# The appointments in the iCal input file are converted one by one to blog post XML files as understood by the XUL dektop blogging
# plugin “Deepest Sender” (http://deepestsender.mozdev.org). An inferior alternative to this script’s approach is to convert a HTML
# table as produced by korganizer’s HTML table export format for appointments.
#
# iCal file prerequisites:
# all VEVENT components have the SUMMARY property (else output file name lacks a title)
# no two VEVENTS on one day have the same SUMMARY property (else output files are overwritten)
#
# Deepest sender file structure (note that it is UTF-8 encoded):
# <?xml version=”1.0″ encoding=”utf-8″?>
# <entry>
# <subject><![CDATA[blog entry title]]></subject>
# <event><![CDATA[blog entry content with HTML markup]]></event>
# </entry>
#
# TODO: the filename must only contain a date, not a time, even if the DTSTART property contains one
# TODO: write the values of the DTSTART, CREATED and LAST-MODIFIED properties into the blog post text (via component.decoded())

import sys # argv, …
from xml.dom.minidom import parse, parseString
from codecs import open # overwrite internal open() to enable UTF-8 file access
from icalendar import Calendar, Event
# get it from http://pypi.python.org/pypi/icalendar/1.2 ; if you don’t want to clutter your distro by installing it system-wide,
# copy the directory iCalendar-1.2/src/icalendar/ to the script’s directory

def filenamestr(thestring):
thestring = thestring.replace(‘ ‘,‘_’)
thestring = thestring.replace(u‘»’,)
thestring = thestring.replace(u‘«’,)
thestring = thestring.replace(‘/’,‘bzw.’) # slash in a filename is really bad …
while thestring[-1:] is ‘.’: # remove trailing dots as a dot and filename extension will be appended
thestring = thestring[:-1]
return thestring

calfilename = sys.argv[1]
cal = Calendar.from_string(open(calfilename,‘rb’).read())
outputdir = sys.argv[2]
while outputdir[-1:] is ‘/’: # remove trailing slash if present
outputdir = outputdir[:-1]

entrycount = 0;
for event in cal.walk(‘VEVENT’):
# decompose blog entry; event.decoded() is Unicode already
date = event.decoded(‘DTSTART’)
title = event.decoded(‘SUMMARY’)
content = event.decoded(‘DESCRIPTION’,)
content = content.replace(‘n’,‘<br />’) # the simplest means to convert text to HTML, just as Deepest Sender does when
# writing in WYSIWYG mode; we eliminate n here as blogger.com would create additional <br /> from this

print ‘[processing:’, date, title, ‘]’
# print event.property_items() # debug utility

# calculate output file’s name
filename = str(date) + ‘.PRIVATE.’ + filenamestr(title) + ‘.xml’

# write blog entry to its output file
dsfile = open(outputdir + ‘/’ + filename, ‘w’, ‘utf_8’) # will only accept Unicode strings!
dsfile.write(
u‘<?xml version=”1.0″ encoding=”utf-8″?>n’ +
u‘<entry>n’ +
u‘ <subject><![CDATA[‘ + title + u‘]]></subject>n’ +
u‘ <event><![CDATA[‘ + content + u‘<br /><br />Datum: ‘ + str(date) + u‘]]></event>n’ +
u‘</entry>n’
)
dsfile.close()
entrycount += 1

print ‘———-nconversion successful (‘ + str(entrycount) + ‘ entries processed)’

Bisher verwendet wurde das Journal von korganizer zum Speichern aller Blog-Einträge. Dieses ist jedoch sehr unausgereift:

  • man führe Korrekturen und Erstellung am besten direkt in blogger.com durch und sichere den Artikel dann durch Kopieren des HTML-Quelltextes in einen (neuen oder ersetzten) Journal-Eintrag in korganizer; denn den HTML-Quelltext von in HTML geschriebenen korganizer Journal-Einträgen kann man nur über den Quelltext der iCal-Datei erreichen und auch dann ist Nachbearbeitung notwendig (Suchen und Ersetzen: »;« durch »;«, »”« durch »”«, »,« durch »,«, »n« durch »«). Außerdem erzeugt das Journal beim Editieren zusätzliche Tags und Formatierungen (z.B. »<p>«, und insbesondere auch Zeilenumbrüche nach jeder Zeile) die in Blog-Posts auf blogger.com stören, und es werden Tags entfernt (z.B. »<h2>«) die in Blog-Posts enthalten sein sollen.
  • Achtung: korganizer speichert die Journal-Artikel nicht direkt nachdem man sie eingegeben hat; von außen ausgelöst werden kann das Speichern nur durch Beenden von kontact (Beenden der korganizer-Erinnerungsfunktion ist unnötig).

In Anbetracht dieser Unausgereiftheit und weil eine Integration mit kontact ohnehin nicht gegeben ist sollte besser ein echtes Offline-Blogging-Programm mit Schnittstelle zu blogger.com und sauberem HTML-Quelltext und HTML-WYSIWYG-Editor eingesetzt werden. So etwas kann es geben über die Blogger API (http://code.google.com/apis/blogger/overview.html). Ebenfalls möglich ist es so z.B. die Blog-Posts bei Bedarf auf einer eigenen Homepage zu veröffentlichen, oder den Ort zu wechseln wo die Blogs gehostet werden (weg von blogger.com zu WordPress auf der eigenen Homepage zum Beispiel).

Programme dazu:

  • Firefox mit Deepest Sender 0.8.0 (https://addons.mozilla.org/firefox/1811/); bisher die einzige Anwendung die die jetzt aktuelle GData API von blogger.com unterstützt; sieht nach der einzig zu empfehlenden Alternative aus, u.a. da sie als einzige einen WYSIWYG-Editor besitzt.
  • der Browser Flock wie dokumentiert in http://blog.yoda.ch/?p=1016 ; evtl. auch zu empfehlen
  • blogtk; zu Starten als BloGTK; man muss außerdem die Pakete python-gtkhtml2 und gtkhtml3.14 installieren, diese sind aufgrund eines Bugs leider nicht in den Paket-Abhängigkeiten aufgeführt; leider hat das Programm keine ausreichende Unterstützung für die API von blogger.com und wird seit 2005 nicht mehr weiterentwickelt
  • drivel; in den Ubuntu-Quellen enthalten aber geringer Funktionsumfang, dafür aber Unterstützung für Atom / Blogger 2.0; leider verwendet blogger.com jedoch wieder eine neue Schnittstelle, die GData API (siehe http://code.google.com/apis/gdata/blogger.html ).
  • gnome-blog; für die Gnome-Taskbar
  • kicker-blogger; für die KDE-Taskbar
  • blognix (http://blognix.sourceforge.net); veraltet und nicht weiterentwickelt
  • MozBlog (http://mozblog.mozdev.org/); seit 2004 nicht weiterentwickelt
  • Liste weiterer Applikationen: http://help.blogger.com/bin/answer.py?answer=42347 ; keine weiteren für Linux relevanten Applikationen

Eine alternative (evtl. bessere) technische Möglichkeit ist eventuell: Publishing über SFTP, wie bei blogger.com möglich (http://www.blogger.com/adv-create-blog.g). Das heißt die Blog-Artikel (manuell oder sonstwie erstellt) lädt man auf einen eigenen Server hoch und gibt dessen (S)FTP-Zugangsdaten bei blogger.com an. So kann sowohl eine (wahrscheinlich schon existierende) Joomla-Komponent als auch blogger.com dieselben Daten verwenden. Damit umgeht man auch alle Probleme mit eventuell verbotenen Zugriffsarten auf blogger.com Blogs.

Beim Posten trat folgender Fehler auf: »Error sending post: [Line 2, Column 255, element published] Invalid date/time format: ‘2007-07-23T19:51Z&+39;.«. Auf http://community.livejournal.com/deepestsender/129187.html wird dieser Fehler ausgiebig dokumentiert aber keine Lösung angeboten. Offizieller Bugreport: https://www.mozdev.org/bugs/show_bug.cgi?id=17037 .

Wenn man in den Einstellungen auf blogger.com das Datums-Header-Format auf »Jul 23, 2007« (der erste Eintrag) und das Format des Zeitstempels auf »10:15 PM« (der erste Eintrag) stellt ändert das nichts an dem Fehler.

Workaround: einen Draft-Artikel für jeden Tag im Voraus erstellen und diesen dann mit Deepest Sender in der Post-History editieren und speichern. Das funktioniert nämlich ohne den Fehler »Invalid date/time format«. Der Fehler scheint also damit zusammen zu hängen dass Deepest Sender das Datumsformat zum Einstellen des Datums zum Veröffentlichen nicht beherrscht – dieses wird nämlich beim Editieren vorhandener Artikel nicht mehr geändert. Nun gibt man noch auf blogger.com bei »Format des Zeitstempels« ein Format an das nur aus dem Datum besteht, und schon stört die falsche Uhrzeit bei den im Voraus erstellten Artikeln nicht mehr.