# Wednesday, March 22, 2006
SVG ist die Abkürzung von Scalable Vector Graphics. Dabei handelt es sich um ein W3C Spezifikation die in XML interaktive und animierbare Vektorgraphiken definiert. Innerhalb einer SVG Graphik kann mit Javascript richtig schön programmiert werden.
Wir haben SVG verwendet, um in unserem SQLCat Bilder stufenlos zu vergrößern. Es erscheint ein Übersichtsbild mit dem der sichtbare Ausschnitt verschoben werden kann. Aktive Flächen werden eingezeichnet. Tooltips werden dargestellt. Der Klick auf eine aktive Fläche führt zu einer Navigation im Katalog.



Als wir uns für dieses Format entschieden hatten, war der beste SVG Viewer von Adobe (ASV). Aktuell war die Version 3 und bei einer damaligen Acrobat Reader Installation wurde zusätzlich dieser Adobe SVG Viewer installiert. Der dominierende Browser war der Internet Explorer und ASV das dazu passende Plugin.

Natürlich lief nicht alles rund. Um einige Unzulänglichkeiten des Viewers mussten wir herumbasteln. Manches funktioniert immer noch nicht wie wir uns das dachten. Wie immer bei der Software Entwicklung hofft man natürlich auch auf das nächste Update. Typischerweise werden dann Bugs beseitigt und neue Features implementiert.

ASV Version 3 erschien 11/2001, zumindest sagt das das Adobe Archiv. Es gibt dann noch die Versionen 3.01, 3.02 und 3.03. Letztere ist immer noch die aktuelle Version. Immerhin von 05/2005. Die neuen Versionen sind aber offensichtlich nur Sicherheitsupdates. Von neuen Funktionen oder beseitigten funktionellen Fehlern keine Spur.

Für die ganz mutigen Entwickler gibt es von Adobe noch eine Preview auf die kommende Technologie. Die Technologie von morgen! Spektakulär, die Preview von Adobe Viewer Version 6! Natürlich haben wir uns auch daran versucht. Tatsächlich ist diese Version deutlich schneller und insgesamt besser als die Version 3. Aber das kann man keinem Kunden empfehlen. Ist ja eine Pre-Release, also abwarten und testen.

Wer jetzt genau hingesehen hat, dem ist auf der Download Seite für ASV 6 aufgefallen, dass wir jetzt seit fast 3 Jahren warten. 07/2003 steht da als Release Date. Zappelt es noch?

Inzwischen Unterstützt Firefox 1.5 SVG einfach so, natürlich funktioniert alles anders als beim Adobe Viewer. Aber wen man Google als Indikator nimmt, dann stellt man fest, dass die Kombination IE + ASV dort nicht mehr interessant ist. Deren Web Authoring Statistics werden damit nicht dargestellt: "We recommend Firefox 1.5".

Stirb langsam?  Eher mausetot!
Wednesday, March 22, 2006 6:09:00 PM (W. Europe Standard Time, UTC+01:00)  #
  Disclaimer  |  Comments [1]  | 
# Tuesday, March 21, 2006
Bisher hatte ich noch nicht mit den Vorabversionen vom IE 7 gespielt. Heute meldet Golem, dass die Rendering Engine keine wesentlichen Veränderungen mehr erfahren soll (Aktualisierte Vorabversion des Internet Explorer 7). Also die neueste Beta 2 installiert und mal auf die eigenen Webauftritte gestürmt.

Hat alles direkt wie erwartet funktioniert. Auch unsere dynamischen SQLCat Seiten werden problemlos dargestellt.
Wenn alles in der normalen Ansicht passt, dann mal die Font-Größe verändern. Am schnellsten geht das ja, indem man bei gedrückter Strg-Taste das Mausrad dreht.
Hui! Was passiert da? Die komplette Webseite inklusive der Bilder wird skaliert. Ein echter Zoom quasi. Nur bei einer unserer Seiten mit vielen Frames (ja macht man nicht mehr, ist aber jetzt so ;) ist das Verhältnis der skalierten Framegrößen zueinander nicht optimal. Das kann man aber sicher noch besser codieren.

Insgesamt gefällt mir das sehr gut. Auch ansonsten fühlt sich der neue Internet Explorer deutlich moderner als sein Vorgänger an.

Das komplette Zoomen einer Seite führt leider beim eingebauten RSS Reader zu unerwünschten Effekten. Zumindest bei kleinen Fenstern wird die eingeblendete Navigation zu groß:

100% Zoom:



150% Zoom:



Details, Details. Natürlich. Alles wird gut. Zwei konkurrierende Browser sind besser, als ein stagnierender Markführer.
Tuesday, March 21, 2006 2:57:23 PM (W. Europe Standard Time, UTC+01:00)  #
  Disclaimer  |  Comments [0]  | 
# Thursday, March 16, 2006
Wir vertreiben ein Tool zur Datensicherung: CPTec-Backup. Dieses Programm verwenden wir natürlich auch selbst. Und das ist gut so. Weil wir so leichter erkennen, an welchen Stellen wir nachbessern müssen.

Ein wichtiger Aspekt war für uns, dass wir auf externe USB Festplatten sichern können. Die kann man einfach abstecken und an sicheren Ort bringen. Natürlich verwendet man rotierende Sätze und die nächste Sicherung schreibt auf eine andere Platte. Dabei muss man darauf achten, dass man nicht von einem festen Laufwerksbuchstaben ausgehen kann. Also kann man CPTec-Backup so konfigurieren, dass es die Festplatte an den ersten Zeichen des Datenträgernamens (Volume Name) erkennt. Das funktioniert auch sehr gut. Alle externen Platten für einen Sicherungs-Job beginnen mit dem gleichen Präfix. Problem gelöst.

Im Laufe der Zeit ist uns aber noch eine andere Schwäche an dem Konzept aufgefallen: Externe Platte an einem sicheren Ort sind gut für die bereits gesicherten "alten" Daten. Aber ganz schlecht für neue Daten die zu einem späteren Zeitpunkt gesichert werden sollen. Dazu müssen diese USB-Platten nämlich ihren Weg zurück in die Firma finden. Das konnten wir nicht immer sicherstellen ;).
CPTec-Backup hatte erkannt, dass nicht alle Ziel-Laufwerke für die anstehende Sicherung vorhanden sind, dies gemeldet und die Sicherung abgebrochen. Schade.

Zusätzlich zur Sicherung auf die externe Festplatte sichern wir auch auf eine interne Platte. Jetzt gibt es ein neues Feature in CPTec-Backup, mit dem Ziele als optional markiert werden können. Fehlende optionale Ziele werden beim Start des Backups unter anderem per E-Mail gemeldet und unmittelbar vor dem ersten Zugriff erneut überprüft. Falls die Festplatte dann immer noch fehlt, wird das protokolliert und der Backup fortgesetzt.

Thursday, March 16, 2006 6:17:53 PM (W. Europe Standard Time, UTC+01:00)  #
  Disclaimer  |  Comments [0]  | 
# Thursday, March 09, 2006
Eine ganz aktuelle Demo Version unserer elektronischen Ersatzteilkatalog Software SPCat ist erschienen. Es gibt viele Verbesserungen im Detail, aber der Umstieg auf Visual Foxpro 9 hat die deutlichste Veränderung ermöglicht.
Zur Darstellung von Graphiken mit Links wurde bisher eine selbstentwickelte Visual Basic 6 Komponente verwendet. Das hat sehr gut funktioniert, brachte aber ein paar Einschränkungen mit sich. Unter anderem konnten keine PNG Graphiken dargestellt werden und bei der Installation musste die VB6 Laufzeitumgebung eingerichtet und unser ActiveX-Control (OCX) registriert werden.
Jetzt zeichnen wir die Graphiken direkt mit VFP9 und GDI+. Damit ist unser Katalog nicht mehr auf Visual Basic angewiesen. Das verbessert die Lauffähigkeit von CD und vereinfacht die Installation. Auch PNG Graphiken können wir jetzt direkt darstellen.

Die Demo ist als selbststartende CD ausgelegt. Dazu gibt es ein ISO-Image oder den Inhalt der CD als Zip Archiv. Die schnellste Möglichkeit, den Katalog zu testen ist das Zip Archiv zu entpacken und im "cd" Verzeichnis das "intro.exe" zu starten. In dem dann erscheinenden Dialog einfach "Katalog von CD aus starten" wählen.



Wer sich mehr für die technischen Details interessiert, den verweise ich auf einen früheren Blogeintrag dazu: VFP 9: GDI+ und normale Foxpro Controls auf einer Form

Thursday, March 09, 2006 12:15:26 PM (W. Europe Standard Time, UTC+01:00)  #
  Disclaimer  |  Comments [0]  | 
# Wednesday, March 01, 2006
Ich möchte nicht auf die genauen Hintergründe des Patent-Streits zwischen Eolas und Microsoft eingehen. Das kann man in dem Artikel Patch für Internet Explorer wegen Eolas-Patent auf Golem und an anderen Stellen nachlesen.
Im Wesentlichen verletzt man das Eolas Patent, wenn interaktive Objekte in einer Webseite dargestellt werden. Microsoft versucht nun mit dem Patch KB912945  den IE so zu verändern, dass diese Objekte nicht interaktiv starten, sondern aktiviert werden müssen. In den meisten Fällen bedeutet aktivieren für den Anwender hier "hineinklicken".

Wir von CPTec haben mit SQLCat eine Internet Anwendung entwickelt, um Elektronische Ersatzteilkataloge im Browser darstellen zu können. Die hierarchische Struktur der Ersatzteile wird mit einem Java Applet visualisiert. Dieses Java Applet stellt die Struktur in einem Treeview dar.  Die Inhalte werden beim Navigieren dynamisch vom Server geladen. Das funktioniert sehr gut und schnell.
Nach der Installation des neuen Patches von Microsoft funktioniert dieses Treeview immer noch. Unter anderem navigiert das Treeview mit, wenn man einen Treffer einer Suchabfrage auswählt. Es reagiert lediglich auf Benutzereingaben, wie z.B: Mausbewegungen nicht:



Erst nach einem Click in das Control wird dieses aktiv und zeigt unter anderem im Statusbar das Ersatzteil unter dem Mauszeiger an:



Unser Treeview ist von dieser Änderung betroffen, weil es über ein "APPLET" Befehl in die HTML Seite eingebunden ist. Der Internet Explorer könnte das Eolas Patent verletzen, wenn er dieses interaktive Objekt direkt in die Seite einbindet. Also wird es nicht interaktiv eingebunden, sondern einfach deaktiviert. Die erste Benutzereingabe erweckt dann das Objekt aus seine Dornröschenschlaf und alles ist gut.

Jetzt gibt es aber noch eine andere Möglichkeit, dieses Patent zu umgehen. Microsoft dokumentiert das in Activating ActiveX Controls. Es werden einige Wege beschrieben. Aber es läuft darauf hinaus, durch Javascript die Objekte nachträglich in die Seite einzubauen. Der Benutzer sollte davon nichts merken, aber das Patent von Eolas deckt diesen Fall wohl nicht ab. Alles funktioniert wie früher, jeder Webentwickler durfte etwas Zeit investieren, Microsoft hat viele Anwälte und Entwickler beschäftigt und Eolas geht hoffentlich leer aus.

Ich wundere mich immer wieder, wieso derart allgemein gehaltene Patente erteilt werden und deren Gültigkeit vor Gericht bestätigt wird. Die Einen basteln einen realen C++ Code, der bunte, interaktive Seiten aus kleinen statischen Textdateien macht und die Anderen lassen sich ein abstraktes, allgemeines Prinzip schützen. Deswegen bereitet es mir eine diebische Freude, zu sehen, wie geschickt sich Microsoft hier aus dieser kniffeligen Patent-Falle befreit hat.

Jetzt geht es wieder zurück an den HTML Code und brav den MS Workaround einbauen...

Wednesday, March 01, 2006 2:26:41 PM (W. Europe Standard Time, UTC+01:00)  #
  Disclaimer  |  Comments [0]  |