Generierung eines BMEcat XML Kataloges aus CSV Dateien

BMEcat ist ein XML-Standard für die Übertragung elektronischer Produktkataloge. Mit ihm lassen sich Artikeldaten standardisiert speichern und zwischen verschiedenen System übertragen. Entwickelt wird der Standard seit Ende der 90er Jahre vom Fraunhofer IAO Institut in Stuttgart und der Universität Duisburg-Essen.

In einem aktuellen Projekt sollte basierend auf vorhandenen Artikeldaten aus unterschiedlichen Quellen so ein Katalog im BMEcat - Format erstellt werden. Alle Quellen lagen als CSV - Dateien vor und definieren pro Zeile jeweils einen Artikel und seine Eigenschaften. Die Datensätze werden mit Hilfe der Artikelnummer verknüpft, welche als Primärschlüssel dient.

Für die Umsetzung des Projektes habe ich mich gegen verfügbare Softwarepakete entschieden und ein eigenes Programm in Java entwickelt, welches zuerst die Quellen parst und alle vorhandenen Datensätze in internen Datenstrukturen ablegt. Zusätzlich wird eine hierarchische Kategoriestruktur auf den <CATALOG_GROUP_SYSTEM> - Tag umgesetzt. Aus diesen Daten wird dann ein XML-Baum aufgebaut, welcher der Struktur des BMEcat - Formates entspricht. Dafür verwende ich die bereits vor einiger Zeit vorgestellte Klasse XMLTree, mit der so ein Baum aufgebaut und anschließend ausgegeben werden kann.

Eine Besonderheit stellt die Behandlung der Bilder dar: In den Quelldaten werden diese mit ihren URLs definiert. Im Zielkatalog können aber nur die Dateinamen der Bilder angegeben werden, da beim Upload des Kataloges immer auch das Bildmaterial mit hochgeladen werden muss. Diese Einschränkung ist durch das Zielsystem vorgegeben. Der BMEcat Standard sieht durchaus vor, dass Bilder relativ zu einem Rootverzeichnis angegeben werden. Allerdings kann das Zielsystem die Bilder nicht selbständig herunterladen und erwartet sie stattdessen in einem Verzeichnis auf dem FTP-Server. Deshalb speichere ich beim Verarbeiten der Bilder die URLs in einer Liste zwischen und übergebe diese anschließend an ein Unterprogramm, welches alle Bilder nacheinander herunterlädt und sie in einem Ordner ablegt. Dieser kann dann zusammen mit dem XML-Katalog per FTP übertragen werden.

Die Vorteile einer Eigenentwicklung im Vergleich zu einer fertigen Lösungen waren bei diesem Projekt klar zu erkennen: Ein eigenes Programm bietet volle Flexibilität was das Einbinden bestehender Quelldaten angeht. In der Firma gab es bereits hochwertige Artikeldaten inkl. Kategorieinformationen, welche natürlich weiter verwendet werden sollten. Außerdem konnte nur so die Besonderheit bei den Bildern effizient gelöst werden. Ein fertiges Programm hätte hier viel zu viel manuelle Sortier- und Nacharbeit verlangt, was schlussendlich in Verbindung mit dem Anschaffungspreis deutlich teurer geworden wäre.

Haben auch Sie Interesse an einer individuellen Lösung zur Erstellung eines BMEcat Kataloges basierend auf Ihren Artikeldaten? Kontaktieren Sie mich für eine unverbindliche Anfrage.

Geschrieben am 13.08.2008 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: Projekte XML Java E-Business BMEcat

Suchmaschinenoptimierung für die lokale Suche

Das Internet wird immer mehr die erste Anlaufstelle für Informationsgewinnung jeglicher Art. Eine zentrale Rolle nehmen hierbei die Suchmaschinen ein, welche in Sekunden zu jedem Stichwort zahlreiche Treffer auflisten. Wer bei populären Suchbegriffen an erster Stelle der Ergebnisliste steht, kann sich über hohe Besucherzahlen und viele abgeschlossene Geschäfte freuen. Dementsprechend sind die hochwertigen Keywords hart umkämpft, Suchmaschinenoptimierer arbeiten mit allen Tricks, um ihre Seiten ganz vorn zu platzieren.

Auch die lokal beschränkte Suche gewinnt dabei immer mehr an Bedeutung. Um ein Produkt oder einen Händler in der nächsten Stadt zu finden werden nicht mehr umständlich das Branchenbuch oder die gelben Seiten gewälzt, sondern die gewünschte "Sache" und der zugehörige Städtenamen einfach in die Suchmaschine eingetippt. Dieser Trend wird sich noch weiter verstärken, wenn in den nächsten Jahren das Internet auf dem Handy ständig und ohne Verzögerung präsent sein wird.

Für Händler und Dienstleister, welche ihr Angebot vorwiegend in einer Stadt oder Region lokal beschränkt anbieten, ist dies eine nicht zu unterschätzende Möglichkeit zur (Neu-)Kundengewinnung. Der Kunde äußert durch die Suche bereits sein Interesse und möchte nun weiterführende Informationen. Wer sie bereitstellen kann, also vom Kunden gefunden wird, hat bereits den ersten Schritt zum Geschäftsabschluss geleistet.

An dieser Stelle kann Suchmaschinenoptimierung helfen. Exemplarisch möchte ich an dieser Stelle mein letztes Projekt anführen: Für eine Naturheilpraxis wurde eine Homepage erstellt. Die Zielgruppe der Praxis sind Patienten aus der näheren Umgebung, welche sich für naturheilkundliche Behandlung interessieren. Die Seite sollte also bei Eingabe der angebotenen Therapiemaßnahmen in Verbindung mit der örtlichen Stadt auf der ersten Trefferseite auftauchen. Und das ist auch gelungen, was die folgenden Suchanfragen belegen:

Keyword
Keyword
Keyword

Die Klientin spart sich durch ihre Investition in eine suchmaschinenfreundliche Homepage dauerhafte Werbeausgaben für Keywordmarketing, mit denen sich primäre Suchtreffer auch kaufen lassen. Die Kosten dafür sind aber nicht zu unterschätzen, vor allem aus ROI-Gesichtspunkten: Bezahlt wird meist pro Klick, also kostet jeder Seitenbesucher Geld. Bei weitem nicht jeder Besucher führt aber auch einen Kauf durch bzw. nimmt die Dienstleistung in Anspruch. Gute Positionierung in den regulären Suchtreffern ist also auf Dauer deutlich günstiger.

Erreicht wurde die gute Platzierung durch konsequente OnPage-Optimierung: Titel, Description und URLs sind angepasst an den Content und verbinden die Behandlungsmethode mit dem Ortsbezug. So stellt auch Google diese Verknüpfung her und rankt die Treffer entsprechend.

Haben auch Sie Interesse an der Optimierung Ihrer Homepage für die Lokale Suche? Kontaktieren Sie mich für eine unverbindliche Anfrage.

Geschrieben am 13.03.2008 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: Webdesign Projekte Referenzen SEO Google

www.naturheilpraxis-bihlafingen.de

Naturheilpraxis Bihlafingen

Die Naturheilpraxis Bihlafingen bietet ihren Kunden ein breites Angebot an gesundheitlichen Therapien für das persönliche Wohlbefinden. Spezialisiert ist Inhaberin Barbara Klingler-Volswinkler auf die japanische Meridian-Shiatsu Fingerdruckbehandlung. Aber auch andere Behandlungsformen sowie Angebote für Gruppen kommen nicht zu kurz.

Neben Informationen zu den einzelnen Therapieformen sind auf der Homepage auch aktuelle Termininfos zu finden. Für deren Aktualisierung steht ein spezielles Admin-Menü bereit, welches einfaches Hinzufügen und Editieren der News erlaubt. Technisch wird die Editierbarkeit der News mit AJAX realisiert. Weitere Web2.0 Gimmicks finden sich auch im öffentlichen Teil der Seite: Infotexte werden bei Bedarf animiert eingeblendet und sorgen so für eine frische Optik.

Geschrieben am 18.02.2008 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: Webdesign Projekte Ajax Referenzen

Excel: Zwischenablage als reinen Text einfügen

Wer mit Microsoft Excel arbeitet und oft Text von einer Homepage in einer Tabelle kopiert kennt das Problem: Excel übernimmt standardmäßig sämtliche Formatierungseigenschaften aus dem HTML-Code und fügt den Text dann genau so in das Sheet ein. Oft ist das aber gar nicht gewünscht, in einer Tabelle möchte man schließlich nicht unbedingt fetten roten Text, sondern nur reine Information haben. Jedes mal den Umweg über einen Texteditor zu gehen, welcher keine Formate einfügt, ist umständlich, genau so wie der "Inhalte einfügen" - Dialog im Bearbeiten-Menü.

Hier hilft ein kleines Makro, welches die Zwischenablage immer als reinen Text einfügt. Wird dieses dann noch mit einer Tastenkombination verknüpft, kann man genau so schnell arbeiten wie mit dem gewohnten Strg+V. Dazu muss einfach der folgende Code mit Hilfe des Visual-Basic-Editors in die aktuelle Mappe eingefügt werden:

Sub AlsTextEinfuegen()
   ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
End Sub

Die Zuordnung zum Shortcut erfolgt dann über das Menü Extras --> Makro --> Makros... . Makro AlsTextEinfuegen selektieren und in die Optionen wechseln.

Geschrieben am 30.08.2007 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: Excel Tool VisualBasic Office

Neue Tarife bei KabelBW

KabelBW hat zum ersten April wieder die Preise gesenkt bzw. bietet neue Tarife an. Unter der Marke "CleverKabel" stehen drei attraktive Angebote, welche sich vor der DSL-Konkurrenz nicht verstecken brauchen.

Das neue Top-Angebot ist eine Flatrate mit 25 MBit/s Downstream, 2,5 MBit/s Upstream, 2 Telefonleitungen inkl. Flatrate ins Festnetz und als Bonbon arena oder Kabel Digital home. Zum Preis von 49,95 € bekommt man also echtes TriplePlay. Vor allem Fernsehfans dürfte das Angebot überzeugen, da KD home oder arena alleine bereits 15 € bzw. 11 € kostet.

Für 29,95 € gibt es nun eine Flatrate mit 10 MBit/s und eine Telefonleitung inkl. Flat. Wer auf die Pay-TV-Angebote verzichten kann ist mit diesem Anschluss bestens bedient.

"Pures" Internet bietet der dritte neue Tarif: Eine Anbindung mit 4 MBit/s für 19,95 €, ohne Telefonanschluss. Durch die hohe Bandbreite lässt sich die Telefonie aber problemlos per VoIP mit einem externen Anbieter (z.b. Sipgate) realisieren. Dadurch hat man auch den Vorteil der freien Ortswahl, da ein SIP-Account weltweit genutzt werden kann.

Alle Tarife setzen einen Kabelanschluss zum Preis von 14,90 € voraus, welcher analoge und digitale Fernsehbilder liefert. Wer bereits Kunde ist und seinen Tarif umstellen lassen möchte sollte beachten, dass die Mindestvertragslaufzeit wieder von vorne beginnt.

Zum Vergleich: Bei der DSL-Konkurrenz (z.b. 1und1) kosten 16 MBit/s mit Flatrate für Telefon und Internet zzgl. analogem Telefonanschluss ca. 45 €. Allerdings hat man dann noch kein volles Fernsehprogramm, ein Kabelanschluss bzw. eine SAT-Anlage sind also weiterhin notwendig. Dafür bietet gerade 1und1 zusätzlich eine Handy-Flatrate mit an. Je nach persönlichem Nutzungsverhalten sollte also jeder genau abwägen, was wirklich gebraucht wird, um den optimalen Provider zu finden.

Geschrieben am 01.04.2007 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: KabelBW DSL Internet 1und1

XML - Dateien generieren mit Java

XML gehört mittlerweile nicht nur im Internet zu den wichtigsten Datenaustauschformaten. Die klare maschinenlesbare Struktur einerseits und gleichzeitig der Vorteil, dass sich bei Bedarf auch der Anwender direkt einen Überblick verschaffen kann, haben wesentlich zur hohen Verbreitung des Formates beigetragen.

Zur Generierung von XML-Dateien bzw. zum Speichern der in ihnen abgelegten Daten eignen sich Bäume optimal. Jeder Knoten stellt dabei einen Tag dar, welcher entweder einen Wert beinhaltet oder aber beliebig viele Nachfolger. Zusätzlich kann jeder Tag n Attribute haben. Nachfolger und Attribute realisiert man am Besten mit Hilfe von Listen, da so das Hinzufügen von n Elementen keine Probleme bzgl. maximaler Länge macht.

Die Klasse für so einen Knoten könnte folgendermaßen implementiert werden:

class Knoten
{
   XMLTagsListe nachfolger;
   XMLAttributeListe a;
   String tag;
   String wert;

   void AddNachfolger(Knoten k);
   void AddAttribut(String attribut, String wert);
   void AddWert(String wert);
}

XMLTagsListe und XMLAttributeListe sind Listen, deren Elemente auf die Nachfolger des Knotens bzw. auf Objekte zeigen, welche die Attribute (Name und Wert) abspeichern.

Zum Ausdrucken der XML-Datei mit den im Baum gespeicherten Daten eignet sich ein an den Pre-Order-Tiefendurchlauf angelehnter Durchlauf. Beim Eintritt in den Knoten wird zuerst der Tag ausgegeben, anschließend eventuell vorhandene Attribute. Falls es Nachfolger gibt, wird die Liste der Nachfolger mit einer While-Schleife durchlaufen und für jeden Knoten wieder die Print - Methode rekursiv aufgerufen. Falls es keine Nachfolger gibt wird der gespeicherte Wert ausgegeben. Beim Verlassen des Knotens folgt dann die Ausgabe zum Schließen des Tags. So ergibt sich dann rekursiv das komplette XML-Dokument, welches die gespeicherten Daten repräsentiert.

Das Einfügen eines neuen Tags in den Baum ist (noch) nicht elegant. Da der Baum keinerlei Sortierung aufweist weiß die Klasse beim Hinzufügen natürlich nicht, wo der neue Tag eingefügt werden soll. Der Add - Routine muss also der Elternknoten mitgegeben werden. Das verlangt vom Programmierer eine eigene Datenhaltung für Verweise in den Baum, um neue Tags an der richtigen Stelle einfügen zu können.

Eine erste Version der Java-Klasse zum Verwalten von XML-Daten in Bäumen kann hier heruntergeladen werden: XMLTree.java

Geschrieben am 24.03.2007 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: Java Programmieren Projekte

Browserpool: Eigene Seiten in anderen Browsern testen

Webdesigner kennen das Problem: Auch heute noch stellen Browser Webseiten zum Teil unterschiedlich dar. Deshalb ist es wichtig die eigene Seite bzw. Kundenprojekte in verschiedenen Browsern zu testen. Nicht jeder will aber seinen PC mit mehreren Browserinstallationen füllen. Und speziell unschiedliche Versionen des selben Browsers lassen sich oft gar nicht paralell betrieben.

An dieser Stelle hilft der Browserpool. Die Seite bietet per VNC Zugriff auf virtuelle Maschinen, auf denen alle wichtigen Browser installiert sind. Außerdem kann man die eigene Seite auch unter Linux und MacOS testen. Der Service kostet 30 Euro pro Monat. Allerdings gibt es einen kostenlosen Testaccount, welcher unmittelbar Zugriff auf die Maschinen gewährt. Webdesigner können so schnell ihre Seiten in den unterschiedlichsten Browsern begutachten und vorab Probleme identifizieren.

Geschrieben am 12.02.2007 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: Linktipp Webdesign Browser Tool

KabelBW: IP-TV bereits im Testbetrieb

KabelBW arbeitet an einem Portal für IPTV. Laut Angaben aus dem offiziellen Kundenforum von KabelBW sollen in Zukunft unter dem Portal www.kabel-internet.tv TV - Sender direkt im Web angeschaut werden können. Das volle Programm gibt es natürlich nur für Kabel - Internet - Kunden. Über andere Anschlüsse, DSL von 1und1 o.ä. werden nur Ausschnitte bzw. einzelne Sender gestreamt.

Das Portal befindet sich momentan im Betastadium. Einige Sender können bereits angeschaut werden, allerdings funktioniert noch nicht alles 100%ig. Es lohnt sich aber, die Seite im Auge zu behalten. Schon jetzt liefert sie die Sender in einwandfreier Qualität auf den Bildschirm. Für Fernsehgenuss am PC kann also endlich auf die alte TV-Karte verzichtet werden.

Geschrieben am 26.10.2006 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: KabelBW Linktipp

Fotos automatisiert komprimieren

Wer regelmäßig Digitalfotos vom letzten Fest per E-Mail verschickt kennt das Problem: Steht die Digitalkamera standardmäßig auf der höchsten Auflösung, so werden auch die Fotos dementsprechend groß. Auf der Speicherkarte und Festplatte spielt das keine Rolle, wohl aber bei der Internetübertragung. Nicht überall ist schnelles DSL verfügbar. Außerdem erlauben die großen Mailprovider nur eine maximale Attachmentgröße, welche mit nur wenigen Fotos schnell erreicht ist. Abhilfe schafft hier das Komprimieren der Bilder auf dem PC, was keine sichtbaren Qualitätsverluste zur Folge hat und doch die Dateigröße dramatisch verkleinert.

Wer nicht manuell dutzende Bilder öffnen, abspeichern und schließen will, kann mit Hilfe des Bildbetrachters IrfanView komfortabel alle Bilder in einem Ordner automatisch komprimieren. Dazu wird zuerst das Programm installiert und dann eine kleine Batch - Datei angelegt. Diese beinhaltet nur die folgenden drei Zeilen:

compress.bat:
set source="%CD%\*.jpg"
set target="%CD%\*.jpg"
c:\Programme\IrfanView\i_view32 %source% /convert=%target%
(Den Pfad zu Irfanview je nach Installationsort anpassen)

Nun einfach die Batch - Datei in den Bilderordner kopieren und ausführen. Je nach Anzahl der Fotos und Leistung des Computers kann dies einige Zeit dauern. Danach wird man aber mit Bildern belohnt, welche ohne sichtbaren Qualitätsverlust und ohne Verkleinerung 90% ihrer Dateigröße verloren haben.

Geschrieben am 06.10.2006 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: Digitalfotos Linktipp Tool

Google Kalender: iCal - Export mit Umlauten

Der Kalender im Web erfreut sich immer größerer Beliebtheit. Nur so kann man seine Termine zentral an einem Ort verwalten und auch von unterwegs darauf zugreifen. Gerade zuhause möchte man aber nicht immer den Browser öffnen müssen. Hier helfen clevere Widgets, welche die wichtigsten Termine direkt auf den Desktop bringen. Für die Yahoo Widget Engine gibt es eine schicke Erweiterung, welche in Zusammenarbeit mit dem Google Kalender aktuelle Termine anzeigt und auch das Anlegen eines neuen Events erlaubt.

Zur Datensynchronisation verwendet das Widget den iCal-Export. Google stellt die Termindaten in diesem standardisierten Format zur Verfügung. Allerdings werden in diesem Format die Umlaute nicht richtig übertragen, an Stelle von ä und ö stellt das Widget nur unbekannte Zeichen dar. Wer Zugriff auf PHP - fähigen Webspace hat kann dieses Problem aber schnell lösen.

Ein kleines Skript liest beim Aufruf die aktuellen Termine vom Google Kalender aus und ersetzt alle falschen Zeichen mit den richtigen Umlauten. Dann gibt es den neuen Text einfach mit echo aus. Im Widget werden nun als Quellpfade die URLs zum PHP - Skript hinterlegt. Das funktioniert natürlich mit allen Programmen und Tools, welche auf den iCal - Export vom Kalender zugreifen wollen.

Zum Zugriff auf die iCal - URLs kann die Funktion file_get_contents("url") verwendet werden. Sollte das nicht funktionieren ist wahrscheinlich der Zugriff auf externe URLs in den PHP - Einstellungen deaktiviert. Auskunft darüber gibt phpinfo() (allow_url_fopen muss aktiviert sein). file_get_contents() gibt den Inhalt aus "url" als String zurück. Mit diesem String können dann die normalen Operationen zum Suchen und Ersetzen durchgeführt werden.

Geschrieben am 05.10.2006 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: PHP Google Widgets Internet Projekte Tool

<<< Vorherige Seite | Nächste Seite >>>