15 Februar 2009

contentEditable

...heute mal aus der Reihe "Dinge, die ich so bisher noch nie wirklich benutzt habe": Das contentEditable-Attribut. In eigentlich allen neuen Browsern ist auch "ein rich-text-Editor eingebaut" (in der Gecko-Engine heißt das Ding "Midas") - man kennt diese meist aus CMSystemen, die oft js-Editoren wie den fckeditor verwenden. Man kann die API für den im Browser eingebauten Editor natürlich auch selber ansprechen.
Ich habe dazu mal eine kleine Demo gebaut, die den Text in einem DIV-Tag mit dem Attribut contentEditable zum Bearbeiten freischaltet. (Die alternative Möglichkeit ist, das ganze Dokument mit designMode=on bearbeitbar zu machen).
Über das DHTML-Kommando document.execCommand (die Liste der möglichen Kommandos findet man auf mozilla.org) kann der markierte Text dann entsprechend verändert werden.
Unter 'Resultat' zeigt die Demo nach dem Abschicken des bearbeiteten Textes, was dann beim Server ankommt. Einfach mal mit verschiedenen Browsern ausprobieren und in den Quelltext schauen.
Um mal ein bisschen hinter die Kulissen zu blicken sicherlich so weit ganz interessant, für den tatsächlichen Einsatz lohnt es sich aber, einen fertigen Editor zu verwenden und evtl. nach den eigenen Bedürfnissen anzupassen. Mir gefällt insbesondere TinyMCE von Moxiecode, da er sich sehr leicht integrieren und konfigurieren läßt.

Labels: , , ,

14 Februar 2009

1234567890

...naja, ich kann meinen Enkeln dann wenigstens erzählen, daß ich dabei gewesen bin. Woooohooo! 1234567890! *Screenshot*
(Bild: Screenshot von einem UNIXtime anzeigenden und einem runterzählenden Script)

Labels: ,

06 Februar 2009

OpenLayers - KML-Daten als Layer über OSM

...hätte man mich vor ein paar Jahren gefragt, wie man eine (möglichst noch interaktive) Karte auf eine Webseite bringt, ich hätte wahrscheinlich ratlos die Schultern hochgezogen. Inzwischen besteht z.B. OpenStreetMap dank der vielen fleißigen Datensammler nicht mehr nur aus weißen Flecken und es gibt so nützliche Frameworks wie OpenLayers.
Um zu demonstrieren, wie eine kleine, interaktive Karte aussehen könnte, habe ich mal ein paar Gebäude der Uni Trier (Campus I) als Vektordaten in eine KML-Datei geschrieben und diese Polygone als Overlay mit OpenLayers über OpenStreetmap gelegt.
Die Demo besteht aus einer html-Datei mit mehr javascript als html (siehe Quelltext), die als Widget die Karte der Uni angezeigt (Mapnik als Base Layer, Osmarender auswählbar). Die Objekte aus der KML-Datei werden auf einem Layer angezeigt, der ein- und ausgeblendet werden kann. Klickt man auf die Objekte (Gebäude), werden deren Attribute (Name des Gebäudes, auch aus den KML-Daten) in einem Popup (AnchoredBubble) eingeblendet.
(Die Demo basiert hauptsächlich auf diesem Beispiel aus der OpenLayers-Doku - vielleicht hilft sie ja der ein oder dem anderen)

Labels: , , , ,

05 Februar 2009

Compiz Headtracking Plugin

...die Begeisterung, die Compiz und z.B. der Cube bei dem ein oder anderen ausgelöst hat, kann man ganz gut an der Vielzahl der auf den bekannten Plattformen geposteten Videos ablesen, die Desktops zeigen, auf denen irgendwas rotiert. Ein "und was soll das jetzt?" oder "wer brauch denn sowas?" war bestimmt auch keine seltene Reaktion auf die teils kindische Begeisterung über die lustigen Desktopeffekte. So langsam schälen sich aus der Spielerei jedoch brauchbare Anwendungen heraus, die den Desktop von morgen dreidimensionaler und damit vielleicht ergonomischer machen.
Das Compiz Headtracking Plugin erkennt z.B. über Webcam und OpenCV die Position des Gesichts des Anwenders (und somit in etwa die Blickrichtung) und passt den Desktop dem entsprechend an. So kann man beispielsweise hinter das Fenster im Vordergrund schauen oder der Desktop richtet sich je nach Blickrichtung neu aus.
Für immer schnellere Grafikkarten und größere Monitor m.E. der Desktop (bzw. Fenstermanager) der Zukunft.
Sollte man gesehen haben: Die Demo des Plugins als Video auf youtube.

Labels: , , ,

04 Februar 2009

keypoint detection mit SIFT

...obwohl bei mir ja durchaus mal Chaos herrscht ist das Durcheinander aus einer IBM PS/2 Referenzdiskette, einem Prittstift, einer Wäscheklammer, einer Zwiebel, einer TK50 von Trier-Pfalzel, einem Comicbuch und einer Telefunken-Röhre nur gestellt, weil ich die Demo des SIFT keypoint detectors ausprobieren wollte. Hierzu erstellt man die keypoints des Bildes von z.B. einem Gegenstand, der auch auf einem anderen Bild zu sehen ist. Von dem zweiten Bild werden auch die keypoints ermittelt und dann mit denen des ersten Bildes gematcht.
Hier z.B.: Man ermittelt mit SIFT die keypoints des Fotos von der Telefunken-Röhre und die des gezeigten Durcheinanders, vergleicht diese keypoints und findet damit bestenfalls die Röhre in dem Chaos. Es geht also um die Lokalisierung von Objekten in einem Bild.
Und: Ja, es funktioniert. die Röhre wird im Bild zwar nur mit 9 matches gefunden, aber immerhin. Ausprobiert habe ich außerdem das Comicbuch (256 matches, nur einer davon falsch) und den Prittstift (5 matches) und beide konnten im Bild lokalisiert werden.

Labels: