Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:

Archiv für Ideen

Systematisches Chaos


Bildquellen: carlsilver, NoShoes
Gerade habe ich bei Heise die Meldung “Chaotisches Roboter-Lager beschleunigt Auslieferung” durchgelesen. Und ich muss sagen, es beeindruckt mich immer wieder wie Roboter Systeme sich autonom selbst organisieren können. Wie ein Bienenschwarm wuseln auch in diesem Fall eine Menge kleiner oranger Roboter durch eine Lagerhalle und verwalten die Waren auf eine für Menschen chaotisch wirkende Weiße die aber letztendlich viel effektiver ist als ein sauber gegliedertes, von Menschen verwaltetes, System. Ähnliche Prinzipien gab es zwar schon etliche Jahre davor, aber der Unterschied ist meiner Meinung nach dass sich hier die kompletten Regale frei bewegen und je nach Bedarf zu den Paket-Packern und den Lieferanten fahren. Dadurch können die Waren auf einer Seite ins System eingeschleust werden und auf der anderen Seite kommen sie bei Bedarf wieder heraus, ohne das es jemanden interessieren muss wie und was die Roboter da jetzt genau machen (-> Black Box Prinzip?).

Allerdings muss man Anmerken das die Ludolfs dem System auch sehr nahe kommen und das gänzlich ohne Computer-Unterstützung ;-)

Sammelleidenschaft 2.0

Eigentlich wollte ich letztens, bei einer heißen Tasse Kaffee, einen schönen Artikel über das Thema soziale bzw. personalisierte Netzwerke schreiben und darin unter anderem die Frage aufwerfen warum es denn eigentlich noch keine Last.fm-Klone für andere Themen gibt. Last.fm!? Kennt Ihr nicht? — Kein Problem, hier ein kurze Zusammenfassung: Last.fm ist im Prinzip eine riesige Musik Datenbank gekoppelt mit den üblichen Community-Funktionen (Foren, Gruppen, Nachrichten, usw.). Das besondere an dem Projekt ist allerdings dass es einem, basierend auf den Hörgewohnheiten und Profilen anderer Benutzer, Musik vorschlägt die einem auch gefallen könnte. Dies wird durch irgendwelche geheimen, hochkomplizierten Algorithmen die im Hintergrund ablaufen erreicht.

Und da diese Technologie ja ziemlich gut ankommt, hab ich mich gefragt wieso es solche Projekte nicht auch für andere Themengebiete wie z.B.: Filme, Bücher, Serien oder Software gibt. So nach dem Motto: “Füttere mich mit deinen Daten und ich sage dir was dir wahrscheinlich auch gefallen könnte” ;-)

Nur als ich dann Anfing im Internet ein bisschen zu recherchieren bemerkte ich schnell das es solche Seiten ja schon längst gibt — oh man bin ich mal wieder langsam ;-)

Natürlich hab ich mir dann gleich einige Kandidaten angeschaut und mich auch bei einem Projekt, das mich irgendwie angesprochen hat, angemeldet. Die Webseite heißt „listal“ (kein Schreibfehler – nur ein L) und scheint relativ neu zu sein (momentan leider nur auf Englisch verfügbar). Im Prinzip funktioniert die Seite wie Last.fm nur das man hier neben der Musik auch Filme, Serien und Spiele bewerten kann. Nach kurzem ausprobieren hatte ich dann auch den Dreh raus und nach dem ich einige Filme bewertet hatte und diese in meinem Profil erschienen, überkam mich urplötzlich eine, wahrscheinlich aus früheren Zeiten stammende, Sammelleidenschaft und ich bewertete und „taggte“ über 3 Stunden lang bisher gesehene Filme. Da ich ja ein kleiner Filmjunkie bin habe ich mittlerweile auch schon mehr als 700 bereits gesehene Filme bewertet und sogar einen Kumpel dazu gebracht sich auch anzumelden ;-)

Mein Fazit


Eigentlich würde ich mich bei solchen System ja nicht freiwillig anmelden, da meine Daten ja auch wunderbar kommerziell ausgewertet werden können (Stichwort: Data-Mining). Allerdings ist meine Neugier und die Aussicht auf interessante Statistiken und Erkenntnisse über meinen eigenen Geschmack und die vielen neuen Dinge die man in solchen Netzwerken entdecken kann, zumindest für mich zu groß um zu widerstehen ;-)

Jedoch melde ich mich zumindest (in Zukunft zumindest) immer anonym an damit man wenigstens keine Verbindung zu meiner Person hat. Nicht dass ich dann auf einmal Post bekomme mit “personalisierter” Werbung -– muss ja nicht sein ;-)

Natürlich gibt es noch andere ähnliche „soziale“ Systeme für andere Sparten:
Digg (News), StumbleUpon (Bookmarks), Delicious (Bookmarks)

So ich hoffe der Artikel hat den ein oder anderen interessiert :-)

Strategien für browserunabhängiges JavaScript

Heute hat mich eine Kollegin gefragt wie Sie Ihre tollen selbst entwickelten JavaScript Funktionen am besten browserunabhängig machen kann, da Sie diese nur im Internet Explorer entwickelt hatte… Komischerweise ist aus meiner Antwort, mal wieder, ein halber Roman geworden und deshalb habe ich mich dazu entschieden den Inhalt nach dem Absenden nicht einfach ins Datennirwana abzuschieben sondern in meinem Blog zu veröffentlichen.

Hier die verschiedenen Strategien, die mir spontan eingefallen sind, um das eigene Script browserunabhängig zu machen:
  1. Browserweiche
    Eine einfache aber auch unflexible Lösung ist es eine Browserweiche einzurichten, wodurch der Besucher, je nach Browser, auf eine speziell angepasste Seite geleitet wird. Früher wurde diese Methode sehr oft angewendet, heute allerdings ist es aus Gründen der Barrierefreiheit, Suchmaschinenoptimierung und diversen anderen Gründen nicht unbedingt beliebt. Zudem verursacht die Variante einen großen Mehraufwand, da bei Updates alle browserspezifischen Seiten angepasst werden müssen.
    Fazit: Einfach einzurichten und zu testen aber schränkt Besucher ein und macht die Wartung der Seiten kompliziert.
  2. Verzweigungen nutzen
    Bei dieser Methode wird der Browsertyp in einer Variable abgespeichert, wodurch dann im weiteren Verlauf des eigenen Skripts einfache Abfragen eingebaut werden können um die für den jeweiligen Browser benötigte Funktion zu starten — z.B.: Fazit: Relativ einfach umzusetzen. Könnte nur mit der Zeit kompliziert und verwirrend werden, außerdem es kann sein das sich der Code in den browserspezifischen Bereichen unnötigerweise wiederholt.
  3. Einheitliche Grundfunktionen nutzen
    Mittlerweile haben die meisten Browserhersteller ja endlich gemerkt das es irgendwie schlauer ist Ihre JavaScript Implementierungen dem Standard anzupassen. Daher währe es prinzipiell möglich nur diese einheitlichen Funktionen zu nutzen und somit das eigene Skript browserunabhängig zu machen. Aber das wäre ja schon fast ein bisschen zu einfach, denn in der Realität gibt es doch diverse kleine Unterschiede zwischen den JavaScript Implementierungen wodurch ich bezweifele das diese Methode für größere Projekte erfolgreich sein wird.
    Fazit: Gut zu warten und Standardkonform, aber nicht alle JavaScript Implementierungen halten sich an den Standard…
  4. Grundfunktionen auslagern
    Für diese Variante sucht man sich die browserabhängigen „low-level“ Funktionen die man verwenden will zusammen und kopiert diese dann in eine eigene Datei. Der Trick dabei ist das man dieses ausgelagerte „Grundgerüst“, auf dem später alle Funktionen aufbauen, einfach für jeden Browser kopiert und dann jeweils an seine Eigenheiten anpasst. Zum Schuss muss dann nur noch das eigentliche Skript so angepasst werden das über eine Browsererkennung entschieden wird welche der ausgelagerten Bibliotheken (z.B. lib_opera.js, lib_firefox.js, etc.) geladen werden soll.
    Diese Methode kann man natürlich auch mit der vorherigen kombinieren so das man nur eine Datei erhält und jeweils in den Grundfunktionen zwischen dem Browser unterscheidet.
    Fazit: Anfänglich etwas mehr Arbeit um die Grundfunktionen zu erarbeiten und für alle Browser anzupassen, aber später sind die Projekte leichter zu warten und die Änderungen müssen nur an einer Stelle durchgeführt werden.
  5. Vorhandene Bibliotheken nutzen
    Natürlich sind die hier erwähnten Ideen hier nicht neu, daher gab es schon einige schlaue Leute die so eine Basisbibliothek, wie oben erwähnt, entwickelt haben. Da gibt es einige ziemlich gute die auch kostenlos zur Verfügung gestellt werden — also warum das Rad neu erfinden?

    Meine Favoriten sind übrigens: Prototype oder jQuery.

    Fazit: Keine eigene Arbeit notwendig aber man muss sich in die Bibliothek einlernen und eventuell kann es mit der Lizenz (z.B. bei kommerzieller Nutzung) Probleme geben.
Ich hab zwar leider keine super tolle Universallösung für euch aber ich hoffe dieser Überblick hat euch weitergeholfen ?

Metalmap - Mashup Projekt zum freien Download!

Da ich momentan und in Zukunft wohl leider keine Zeit mehr haben werde mein Metalmap Projekt fortzuführen stelle ich den Quelltext davon zur kostenlosen und freien Verfügung, bevor das Projekt noch staub ansetzt :-)

Bei dem Projekt handelt es sich um eine Weltkarte auf der die Gründungsorte (mehr oder weniger) bekannter Metal-Bands als Punkte eingezeichnet sind. Außerdem kann man über eine Liste auf der rechten Seite die Bands nach verschiedenen Kriterien sortieren (z.B. nach Herkunftsland). Da ich persönlich ehr auf lautstarke Musik stehe, habe ich mich auf Metal-Bands beschränkt, allerdings kann ja, je nach Geschmack, das Prinzip auf andere Musikstile übernommen werden.

Vielleicht will ja jemand da draußen die Idee adoptieren? — oder in einer anderen Weise weiterführen, denn ich denke die Idee hat auf jeden Fall noch Potential, da ich bis jetzt auch noch kein ähnliches Projekt gesehen habe.

Die Datenbank und den Programmcode stelle ich unter der Creative Commons Attribution 2.0 License zur Verfügung. Das bedeutet kommerzielle und private Nutzung sind erlaubt, die einzige Bedingung ist ein Hinweis auf meine Vorarbeit :-)


Online testen

Ihr könnt euch das Projekt noch eine Weile online anschauen bis ich es endgültig offline nehme.


Von der Idee zum Prototyp

Zu der Idee für dieses Projekt gelangte ich so: Eines Tages war ich mal wieder in den endlosen Weiten des Metal-Archives unterwegs und suchte nach einer Band die mir mein Kumpel empfohlen hatte. Nachdem ich ca. 10 Bands mit dem selben Namen durchgeklickt hatte (oh man  — können sich die Bands keine indivduelleren Namen überlegen *tz tz*) war ich bei dem richtigen Eintrag. Und was mich sehr freut ist, dass im Gegensatz zu dem Design und der Bedienbarkeit, die Metal-Archives Seite mit Ihren Detailinformationen zu den Bands glänzt. Denn da findet man (fast) immer welche Genre die Band abdeckt, woher Sie kommt, welche Mitglieder dabei sind und wann Sie gegründet wurde.
Und genau in diesem Moment, als ich in meinen Gedanken versunken auf den Monitor starrte, hatte ich die Idee diese interessanten Daten auf eine übersichtliche und schicke Weise zu visualisieren. Nach weiteren Überlegungen kam ich zu dem Schluss dass es interessant wäre die Gründungsorte der Bands auf einer Weltkarte zu sehen. Und da ich zu dem Zeitpunkt sowieso mal Testweise ein Projekt mit der Google Maps API umsetzen wollte kam mir das sehr gelegen :-)

Während ich dann am ersten Prototyp (JavaScript + PHP + Google Maps API) bastelte, hatte ich noch die Idee  zusätzlich eine Liste aller Bands rechts neben der Karte anzuzeigen in der man die Bands auch nach anderen Kriterien (z.B. Genre, Gründungsjahr, …) sortieren kann.

Leider habe ich es dann nicht mehr geschafft das Hinzufügen neuer Bands zu automatisieren, so dass ich um die entsprechenden Koordination (Latitude und Longitude) zu bekommen jeweils auf den Bandseiten die Adresse heraussuchen musste. Diese habe dann mit der Hilfe eines Kartendienstes wie z.B. multimap.com in die benötigten Koordinaten umgewandelt und dann mit den anderen Band-Daten in einer entsprechenden Datei abgespeichert.


Mögliche Erweiterungen…

Jetzt, während ich diesen Blog-Eintrag zusammentrage sind mir noch ein paar Ideen eingefallen die man in das Projekt integrieren könnte:

  • Es wäre bestimmt schick wenn auf der Karte Verbindungen zwischen den Bands sehen könnte (z.B. durch Linien zwischen den Punkten). Denn viele Musiker wechseln ja manchmal die Band und verbinden somit zwei Bands miteinander.

  • Auch cool wäre es wenn die Punkte je nach Genre eine andere Farbe oder ein anderes Symbol hätten. So könnte man sehen woher z.B. die meisten Melodic oder Black Metal Bands herkommen und ob es da Zusammenhänge zwischen dem Gründungsort und der Genre gibt.

  • Eine Idee die ich schon kurz nach dem Projektstart hatte war es, nach dem gleichen Prinzip eine Festival-Map zu machen auf der man sehen kann wo und wann bestimmte Festivals (wie z.B. Rock am Ring oder so) stattfinden. Denn meistens sagen einem die Orte ja nicht wirklich viel, aber auf einer Karte weiß man gleich wo ungefähr das ist.

  • Noch eine weitere Idee: Man könnte den Besucher anhand einer Zeitleiste die Bands nach Ihrem Gründungsjahr selektieren lassen. Wenn der Besucher dann den Schieberegler der Zeitleiste hin und her zieht, sieht er auf der Karte die Bands erscheinen oder verschwinden.

  • Noch mehr Daten zu jeder Band währen natürlich auch sehr schick z.B. Bandlogo, Bandbild, Bandmitglieder, …

Screenshots

Hier noch zwei Bilder für die Phantasielosen unter euch ;-)
 


Schlusswort

Oh, das ist jetzt doch ein etwas längerer Blog-Artikel geworden ;-)
Ach… — was man alles machen könnte wenn man nur genug Zeit hätte… aber ich hoffe sehr das jemand das Projekt weiterführt und daraus vielleicht etwas großes macht. So jetzt aber genug der Worte, den Download-Link findet Ihr einen Absatz weiter unten.


Download

Download - Komplettes Projekt (PHP & JavaScript)
88 KB - ZIP-Datei

Update 01.09.2007:
Das Metalmap Projekt ist endgültig offline, den Quellcode könnt Ihr allerdings weiterhin downloaden.