Scriptella Version 1.0

Ich habe diese Script-ETL-Engine schon lange auf meiner Watchlist. Und auch wenn sich das Projekt sehr langsam entwickelt – sogar oft nach Stillstand aussah – lohnt sich immer ein Seitenblick.
Die Version 1.0 steht unter der Apache License (2.0) und ist somit auch in kommerzielle Projekte integrierbar. Da sich Skripte sehr gut über die Kommandozeile ausführen lassen, ist der Einsatz nicht auf Java beschränkt. Sofern ich die Zeit finde, werde ich mal ein Beispiel posten. Bis dahin, einfach mal unter http://scriptella.javaforge.com reinschauen.

Advertisements

Browser aus dem HTTP User Agent ermitteln

Der Höhepunkt für Browserweichen ist gottlob vorüber, seitdem auch Schwergewichte wie Microsoft Besserung bezüglich der Standardkonformität des Internet Explorers versprechen. Darüber hinaus existieren mittlerweile ausreichend Bibliotheken und Frameworks für HTML, JavaScript und CSS, die dem Web-Entwickler diese Aufgabe abnehmen.

Nichtsdestotrotz ergibt sich immer wieder die Notwendigkeit, den verwendeten Browser und darüber hinaus die Version serverseitig zu ermitteln; das Sammeln von Statistiken ist nur ein Anwendungsfall. Auf der Suche nach einer schlanken, schnellen Bibliothek, die dies in PHP erledigt, bin ich bei phpclasses.org fündig geworden. Die Klasse Browser_Info war vielversprechend, aber scheinbar für die Objektorientierung von PHP 4 geschrieben und damit veraltet. Die aufgepeppte Version findet ihr hier (Link nebenstehend). Anstatt eine Sammlung aktueller und vergangener Browser festzuschreiben und per Stringvergleich nach der richtigen Alternative zu suchen, bemüht die Klasse reguläre Ausdrücke und funktioniert auch für zukünftige Ableger – sofern Mozilla, Apple, Microsoft, Google und die übrigen Hersteller ihre Schematik für den HTTP User Agent nicht verändern.

Der Download beinhaltet neben der Klasse auch eine festgelegte Liste mit UseCases, anhand derer der Code getestet worden ist, und ein Formular-Skript zum Eingeben beliebiger User Agents. Lizenztechnisch orientiert sich die Neuauflage der Klasse am Vorbild und ist frei für den nicht-kommerziellen Gebrauch.

Update 28.01.2011

Ich habe die Klasse auf en neuesten Stand gebracht – basierend auf den Statistiken meiner eigenen Webseiten. Es sind unter anderen einige Crawler hinzugekommen, die ich in der ersten Version bewusst rausgelassen habe. Zum anderen habe ich einen Bug mit der Erkennung von Chrome behoben. Bislang ließen sich nur einstellige Hauptversionsnummern erkennen, da die Versionen von Chrome aber schnell fortschreiten, sind wir mittlerweile bei Version 10 angekommen (zumindest im Chrome Canary).