Template Engine – was ist das ?

am 03. Januar 2018 in Tech, WebDesign von
Bisher unkommentiert »

Da Template-Engines diverse Vorteile bieten, werden diese in der modernen Webentwicklung häufig eingesetzt. Doch was sind Template-Engines überhaupt und wie werden diese benutzt? In diesem Artikel werde ich euch einen kurzen Überblick über das Thema geben und euch ein Anwendungsbeispiel dafür vorstellen.

 

Was ist eine Template Engine?

Template-Engines werden dazu eingesetzt, Arbeitsprozesse zu teilen und aus Vorlagen, sogenannten Templates, Internetseiten zu generieren. Möglich wird das durch Platzhalter in der Template-Datei welche variable Werte annehmen können. Dadurch können diese Platzhalten mit generischen und aktuellen Inhalten gefüllt werden. Jedoch können die meisten Template-Engines noch mehr als nur Platzhalter austauschen. Es können Schleifen geschrieben werden oder bedingte Anweisungen implementiert werden. Dadurch können mit wenig Zeilen Code zum Beispiel etliche Produkte aus einer Datenbank ausgelesen werden oder ein bestimmter Bereich einer Webseite nur geladen werden, wenn eine bestimmte Variable gesetzt ist.

Ein Beispiel einer solchen Template-Engine ist Smarty. Smarty basiert auf der weit verbreiteten Scriptsprache PHP und wird in diversen Webseiten eingesetzt. Im Folgenden wird die Verwendung von Smarty dargelegt. Im ersten Schritt wird eine PHP-Variable dem Objekt Smarty zugewiesen nachdem dieses instanziiert wurde. Die zugewiesene Variable kann ein Array oder ein String sein und zuvor zum Beispiel aus einer Datenbank gelesen worden sein (siehe Abbildung 1).

Abbildung 2: Ausgabe einer Variablen mit Smarty

Nachdem die Variable in PHP zugewiesen wurde, ist diese im Template verfügbar und kann als HTML ausgegeben werden (siehe Abbildung 12: Ausgabe einer Variablen mit Smarty). Hierbei sind die zuvor angesprochenen Platzhalter mit einer geschweiften Klammer für den späteren Interpreter markiert.

Abbildung 2: Ausgabe einer Variablen mit Smarty

Angenommen, der Variablen „firstname“ wurde der Wert „Max“ und der Variablen „lastname“ der Wert „Mustermann“ zugewiesen: Das Ergebnis des Aufrufs von Abbildung 2 würde dann wie folgt aussehen (siehe Abbildung 13: Ergebnis der Templateausgabe).

Abbildung 3: Ergebnis der Template-Ausgabe

 

Fazit:

Die Verwendung einer Template-Engine bringt diverse Vorteile mit sich. Die wichtigsten sind die Trennung von Logik und Darstellung. Dadurch wird nicht nur eine Arbeitstrennung zwischen Backend-Entwickler und Frontend-Entwickler möglich, sondern auch die Sicherheit der Applikation verbessert. Da ein Frontend-Entwickler nun nichtmehr im Backend arbeitet, kann er auch keine sicherheitsrelevanten Fehler mehr begehen. Er ist nun einzig für die Darstellung der Daten verantwortlich. Ein weiterer Vorteil ist die einfache Änderung von Weblayouts. Es muss im Code nichtmehr, oder nur noch sehr begrenzt zwischen Logik und Darstellung unterscheiden werden, wodurch Änderungen viel weniger Aufwand mit sich bringen. Aus diesen Gründen empfehle ich euch für das nächste Webprojekt die Verwendung einer solchen Template-Engine. Es benötig zwar anfangs etwas Einarbeitungszeit, jedoch erspart es in der Summe mehr Zeit als dadurch verloren geht.

Ein weiteres Beispiel für eine Template Engine ist Twig.

Getagged: , ,

Klappe die 7. – Es ist wieder Zeit für Stadt Land Fluss-Geschichten

am 07. Dezember 2017 in Aktuelles von
Bisher unkommentiert »

„Das zeigt mich, wie ich bin: meinen Sport, mein Leben. Das passt!“. Dies ist das Zitat einer Protagonistin, nachdem sie Ihren Film gesehen hat. Und genau darum geht es bei den Stadt-Land-Fluss-Geschichten. Die Studierenden des Studiengangs Onlinemedien sollen im 3. Semester einen Dokumentarfilm über eine spannende Persönlichkeit im Raum Mosbach drehen. Auch dieses Jahr sind bereits in der 7. Staffel dieses Projekts wieder acht spannende Filme entstanden.

Am 08.11.2017 um 18.30 Uhr hieß es: Film ab. Von einer Geistheilerin über einen Chefarzt bis hin zu einer Weltmeisterin im Kickboxen war die Variation von den Filmen wieder riesig groß. Aber wie wird so ein Film eigentlich erstellt? Spulen wir ein paar Wochen zurück.

Zu Beginn des Semesters haben die Studierenden den Auftrag bekommen, eine spannende Persönlichkeit in beziehungsweise um Mosbach zu finden. Mittels Recherche oder Tipps von Studierenden aus der Gegend wurden acht sehr spannende Persönlichkeiten gefunden. Der erste Kraftakt war vollbracht. Zunächst wurden wir von unseren Filmdozenten Alexander Kleider und Daniela Michel in die Geschichte des Films und das Filmequipment eingewiesen. Daraufhin konnte es auch schon losgehen. In Dreier- bis Vierer-Teams machten sich die Studierenden auf den Weg zu ihren Protagonisten, um möglichst eindrucksvolle und spannende Szenen zu drehen. Natürlich ging hier nichts ohne ein Drehbuch, das vorher angefertigt wurde. Um alle Aufnahmen im Kasten zu haben, benötigten die meisten Teams vier bis fünf Tage.

Nachdem die Aufnahmen vollendet waren, ging es an den Schnitt. Eine herausfordernde aber auch sehr spannende Aufgabe. Die größte Herausforderung hierbei war, einen spannenden Einstieg zu finden und immer einen roten Faden zu verfolgen. So hatte die erste Version des Films mit der letzten, endgültigen Version nur noch sehr wenig zu tun.

Nach einer schlaflosen Woche waren die Filme dann endlich fertig. Und die Ergebnisse können sich sehen lassen! Für unseren ersten Film sind wir sehr stolz und danken vor allem Alexander Kleider und Daniela Michel, dass sie uns in kürzester Zeit so viele Fertigkeiten und Tipps über die Filmerstellung näherbringen konnten.

Jetzt seid ihr neugierig geworden und habt die Filmpremiere verpasst? Kein Problem. Auf dem YouTube Channel der Stadt-Land-Fluss Geschichten könnt ihr euch die Filme immer noch anschauen: https://www.youtube.com/user/slfgeschichten/videos

 

 

Single Page Applications

am 26. November 2017 in Tech, WebDesign von
Bisher unkommentiert »

Wer ständig mit dem Internet zu tun hat und etwas aufmerksamer durch die
verschiedenen Internetseiten surft, wird etwas feststellen: Immer mehr Internetseiten sind
nicht mehr wie früher Aufgebaut als eine Ansammlung von Seiten, die miteinander
verlinkt sind, sondern es gibt nur noch eine einzelne Seite auf der alle gewünschten
Informationen zu sehen sind, oder nachgeladen werden.

Dass dies nicht nur ein Trend ist, dem nur wenige innovative Startups folgen, wird
durch die vielen Giganten im Internet deutlich. So ist zum Beispiel die komplette Seite von
Facebook zum Großteil eine Single Page Application, auch SPA genannt. Doch auch Gmail,
Google Maps, Twitter und dir fallen bestimmt noch mehr Seiten ein, sind alles SPA’s.

Doch warum wird diese Technik so häufig und gerne eingesetzt? Dies lässt sich leicht
durch die vielen Vorteile, die eine SPA mit sich bringt nachvollziehen. Denn unter anderem
verringert eine solche Internetseite die Serverlast des Betreibers enorm. Die eigentliche Seite
wird nur einmal heruntergeladen und anschließend müssen nur noch Informationen, Texte
und Bilder nachgeladen werden. Es müssen nicht bei jeder Navigation alle Skripte, Header
und Stylesheets der Seite neu geladen werden. Dies bringt einen großen Vorteil für Seiten, die
sehr große Benutzerzahlen zu verzeichnen haben. Ein weiterer Nutzen bringt das SPA-Paradigma bei Seiten die hohe Interaktivität zwischen dem Benutzer und der Anwendung
benötigen. Hier kann eine solche Seite wie eine typische Desktopanwendung auftreten, sodass
man garnicht mehr das Gefühl hat, im Internet unterwegs zu sein. Dies ist zum Beispiel bei
Google Docs der Fall.

Wenn wir jetzt die Vorteile einer SPA wissen, müssen wir jetzt nur noch mehr über die
technische Realisierung einer solchen Web-App erfahren. Ermöglicht werden diese Art von
Internetseiten nur durch JavaScript oder andere auf clientseitig laufende Skripte.
Hierbei ist der Begriff AJAX der Kern einer jeden SPA. Denn nur durch AJAX
(Asynchronous JavaScript and XML) ist es möglich, Inhalte dynamisch nachzuladen,
nachdem die Seite fertig geladen wurde. Dazu gibt es auch immer mehr mächtige
Frameworks, die eigens dafür entwickelt wurden. So sind AngularJS, React oder Backbone.js
nur die Bekanntesten unter den vielen Verfügbaren.

Da wir jetzt auch die Technik dahinter verstehen, sollten wir uns aber noch über die
Nachteile einer SPA im Klaren sein. Denn ein großes und nicht zu vernachlässigendes Manko
ist die Suchmaschinenoptimierung einer Single Page Application. Da der komplette Inhalt
der Seite nicht sofort beim aufrufen der Seite verfügbar ist, können die meisten Crawler nicht
alle Inhalte erfassen, die die Seite zur Verfügung stellt. Außerdem wird beim Klick auf einen
Link keine neue Seite geladen, da alle Inhalte nur nachgeladen werden und es im
wesentlichen nur eine Seite gibt. Daher sollte bei Firmenseiten oder ähnlichem auf eine SPA
verzichtet werden. Denn eine solche Seite ist im Normalfall nicht bei den obersten
Suchergebnissen gelistet.

Folglich sollte genauestens überlegt werden, was die Ziele einer Seite sind, bevor die
eigene Seite als Single Page Application gebaut wird. Kann der SEO-Faktor vernachlässigt
werden, oder ist viel Interaktion gefragt, so kann getrost auf bekannte Frameworks wie
AngularJS gesetzt werden. Ist jedoch ein gutes SEO-Ranking erforderlich, so sollte von dieser
Technologie abgeraten werden und eher eine Seite im klassischen Stil entwickelt
werden.

Quellen

http://www.dtelepathy.com/blog/design/8-reasons-why-pageless-design-is-the-future-of-the-web
http://t3n.de/news/single-page-webdesign-beispiele-323225/
http://singlepageappbook.com/goal.html
https://de.wikipedia.org/wiki/Single-Page-Webanwendung
https://blog.secu-ring.de/software/single-page-applications-loesung-fuer-probleme/
http://www.flyacts.com/blog/seo-und-spa-single-page-applications-unvereinbar-oder-unzertrennlich/

Die Lieblings-Apps der Deutschen

am 26. November 2017 in Aktuelles von
Bisher unkommentiert »

Egal ob in der Schlange beim Bäcker, morgens in der U-Bahn oder daheim auf dem Sofa…. Überall ist bei vielen Deutschen das Smartphone mit dabei. Und das nicht nur in der Tasche, sodass man keinen dringenden Anruf verpasst. Nein, ich sehe immer mehr Menschen die dieses (mehr oder weniger) kleine Gerät in der Hand halten, wie wild darauf herum tippen und mit gesenktem Kopf durch die Welt gehen. Doch womit beschäftigt sich der deutsche Durchschnittsbürger, wenn er auf sein Smartphone schaut?

Deutsche nutzen am liebsten Apps zur Kommunikation. Ihre liebsten App-Anwendungen sind daher im Bereich Social und Messaging. 2016 nutzten User diese Apps fast doppelt so häufig wie noch im Jahr zuvor.
Beliebt sind Social- und Messaging-Apps in Deutschland vor allem wegen des Trends zum “Communitainment” – also dem Teilen unterhaltsamer Inhalte mit Freunden oder Bekannten. Außerdem werden über die gängigen Chat-Apps vermehrt Sprach- und Videoanrufe geführt.

Whatsapp steht so mit großem Abstand auf Platz 1 der deutschen Lieblingsapps. Bis 2015 hatten schon fast 25 Mio. Menschen in Deutschland diese Messenger-App auf ihrem Gerät installiert. Aber auch Facebook und der dazugehörige Facebook-Messenger standen hoch im Kurs.
Weitere Social Apps wie Twitter, Instagram, Snapchat oder Youtube sind ebenfalls sehr beliebt bei Deutschen sowie internationalen Usern – liegen aber im Ranking hinter Whatsapp und Facebook.

Whatsapp steht so mit großem Abstand auf Platz 1 der deutschen Lieblingsapps. Bis 2015 hatten schon fast 25 Mio. Menschen in Deutschland diese Massenger-App auf ihrem Gerät installiert. Aber auch Facebook und der dazugehörige Facebook-Messanger stehten hoch im Kurs.
Weitere Social Apps wie Twitter, Instagram, Snapchat oder Youtube sind ebenfalls sehr beliebt bei deutschen sowie internationalen Usern – liegen aber im Ranking hinter Whatsapp und Facebook.

In ganz Europa werden auch vermehrt Business- und Finanz-Apps verwendet. In Deutschland liegen diese Apps im Ranking direkt hinter Social- und Messeging-Apps und hatten im letzten Jahr ein Wachstum von 69 Prozent.

Unabhängig vom Anwendungsgebiet mögen die Deutschen am liebesten kostenlose Apps. Alle Apps, die sich in den Top 20 der Downloadzahlen befinden, können von Smartphone- und Tablet-Besitzern kostenlos herunterladen werden.

Das lässt darauf schließen, dass der praktische Nutzen der Apps klar im Vordergrund liegt. So sind auch Wetter– oder Taschenrechner-Apps bei den Deutschen sehr beliebt.

Interessant ist, dass es Spiele-Apps trotz großer Beliebtheit (vor allem bei Kindern und Jugendlichen) nicht in die Top 10 geschafft haben. Nach einem kurzen Trend nimmt die Nutzung und damit auch die Downloadzahlen der Apps wieder stark ab. AngryBirds liegt im Downloadranking bei Android immerhin noch auf Platz 13, kann aber mit den Apps anderer Kategorien nicht mithalten. Auch das Beispiel der Spiele-App „Pokemon go“ zeigt, dass ein Trend im Bereich der Spiele oft nur von kurzer Dauer ist.

Auch Wissens-Apps sind bei den Deutschen beliebt. Ein Beispiel dafür ist der Übersetzungs-Anbieter LEO, der zwischen verschiedenen Sprachen ganz einfach Wörter übersetzen lässt. Gerade bei alltäglichen Sprachproblemen kann eine solche App hilfreich sein und Pannen vermeiden.

Immer mehr Verkehrsbünde bieten Informations- und Auskunftsapps für ihre Region an. In diesen Apps können dann Fahrplane, Wegbeschreibungen oder aktuelle Verbindungen für die öffentlichen Verkehrsmittel (Bus, Zug, S-Bahn, U-Bahn,…) eingesehen werden. Auch aktuelle Informationen wie Zugausfälle, Bauarbeiten oder Gleisstörungen können den Nutzern problemlos angezeigt werden.
Neben den Apps der deutschen Bahn ist für diese Art der Apps der Verkehrsbund in München (MVV) ein vorbildliches Beispiel. Sie bieten ihren Kunden verschiedene Apps, die auf die einzelnen Bedürfnisse angepasst sind. So ist mit diesen Apps selbst das Fahrscheinlösen direkt vor Ort über das Smartphone längt zum Alltag geworden.

Auch Schnäppchenjäger kommen auf ihre Kosten. Immer mehr Apps bieten mit günstigen Angeboten Käufern und Verkäufern einen unkomplizierten Prozess an. kaufDA ist ein Besipiel für eine App, mit der Angebote schnell gefunden werden können, sodass bei einem Kauf möglichst viel Geld gespart werden kann. Aber auch „Vermittlungs“- Apps wie Sphock, Ebay oder Kleiderkreisel sind bei den Deutschen immer beliebter.

Quellen

https://netzoekonom.de/2015/12/28/die-lieblings-apps-der-deutschen-facebook-fuehrt-klar-vor-google-und-apple/
http://www.focus.de/digital/multimedia/focus-studie-zeigt-die-lieblingsapps-der-deutschen_aid_838504.html
https://www.wuv.de/digital/diese_apps_nutzen_die_deutschen_am_liebsten
https://www.android-user.de/lieblings-apps-der-android-user-redaktion/

FloNET – evolutionäres Lernen

am 26. November 2017 in Aktuelles, Tech von
Bisher unkommentiert »

Vor ca. Einem Jahr beschloss ich, herauszufinden wie man Neurale Netzwerke benutzt um Intelligente Programme programmieren zu können. Das Thema künstliche Intelligenz ist ein Thema, das in Zukunft immer mehr Teil unseres täglichen Lebens wird, daher ist es sicher kein Fehler, etwas Wissen in diesem Gebiet zu haben. Umso erfreuter war ich, als ich ein Video mit dem Titel “Deep Learning without an PhD” fand, anscheinend eine einfache Anleitung als Videoform. Als ich jedoch bereits nach wenigen Minuten gar nichts mehr verstand, stellte ich das Thema Neurale Netzwerke ersteinmal hinten an. Etwas später fand ich diesen Artikel (Den Blog kann ich übrigens nur wärmstens empfehlen!). Dort wird auch unter anderem beschrieben, wie ein Gehirn grundsätzlich funktioniert. Auf Basis von diesem Wissen konnte ich dann eine eigene Version eines Neuralen Netzwerks programmieren.

Funktionsweise

Die Funktionsweise meiner Version ähnelt teilweise verbreiteten Methoden, jedoch gibt es auch einige Unterschiede. Ich werde im Folgenden meine Version beschreiben, doch der Grundgedanke eines Neuralen Netzwerks ist überall der selbe.

Das Neuron

Ein Neuron ist der kleinste Teil eines Neuralen Netzwerks, und damit auch von unserem Gehirn. Ob ein Neuron ein Signal weitergibt, das es erhalten hat, hängt davon ab wie stark es aktiviert wurde. Wurde das Neuron oft genug und mit genug Energie aktiviert, gibt es irgendwann einen Impuls an weitere Neuronen weiter.

In diesem Bild ist ein Neuron dargestellt, wie ich es in meiner Implementierung benutze. Von der vorherigen Schicht übergibt ein Neuron in diesem Beispiel einen Wert von 1.3 an das Neuron. Dieses würde nun null weitergeben, da der Threshold-Wert von 2.1 nicht überschritten wurde. Jedoch übergibt ein zweites vorheriges Neuron zusätzlich noch den Wert 1.8. Das Neuron addiert alle Werte, die es bekommt, und vergleicht es mit seinem Threshold Wert. In diesem Fall wurde er überschritten, weshalb das Neuron seinen festgelegten Outputwert weiterreicht. Dieser ist für jedes Neuron individuell, genau wie sein Threshold-Wert. Durch diese parametergesteuerte Interaktion können einfache Logikoperationen ausgeführt werden.

Das Netz

Das Netz besteht aus vielen verbundenen Neuronen, wie es oben beschrieben wurde. In diesem Beispiel besitzt das Netz 3 Inputfelder/Neuronen. Diese Werte werden von dort an die erste Reihe an Neuronen weitergeleitet. Dieses Netz besitzt 3 sogenannte “hidden layers”. Diese sind für die Berechnung der Outputwerte zuständig, in diesem Fall sind es 2. Alle Parameter können frei gewählt werden, und an das jeweilige Szenario angepasst werden.

Wie geeignet, oder “intelligent”, ein Netz ist, hängt davon ab, wie die Parameter der einzelnen Neuronen gewählt werden. Dann sind gängige Machine Learning Aufgaben wie Bild- oder Spracherkennung möglich. Auch wenn diese modellhaften Netze nicht exakt dem eines Gehirns nachempfunden sind, sind sie doch recht ähnlich. Das heißt, mit den richtigen Parametern müssen sehr intelligente Systeme möglich sein, da uns das biologische Vorbild beweist, was mit einfacher Signalübergabe möglich ist.
Doch diese Parameter des Netzes müssen erst einmal bestimmt werden. Mit zufälligen Parametern wird das Netz nur zufällige Ausgaben machen, die niemandem etwas Nützen. Die größten Unterschiede zwischen verschiedenen Machine Learning Methoden liegen genau hier, bei dem kritischen Teil. Komplexe Methoden, versuchen zum Beispiel, zu analysieren, welche Parameter besser zum Ziel verholfen haben, und welche nicht, und passt diese entsprechend an. Dies ist jedoch mathematisch sehr komplex, weshalb ich mich für eine andere Methode entschied:

Evolution

Ich verwende Auslese und Mutation, wie sie aus der Darwinistischen Evolutionstheorie stammt, um die Fitness meiner Netze zu steigern. Zu Beginn generiere ich eine festgelegte Anzahl an Netzen. Die Netze sind in ihren Netzeigenschaften gleich, jedoch werden alle Parameter der Neuronen zufällig bestimmt. Dazu gehören die Parameter maxX, outX und welche Neuronen miteinander verbunden sind. Zu diesem Zeitpunkt wird mit sehr hoher Wahrscheinlichkeit kein Netz ansatzweise einen Zweck erfüllen. Jedoch teste ich trotzdem jedes Netz, und bestimme einen Fitness-Wert. Dieser sagt aus, wie gut das Netz abgeschnitten hat. Habe ich zu jedem Netz eine Bewertung, kann ich beginnen, die nächste Generation vorzubereiten. Dafür sind 3 Schritte notwendig:

  1. Auslese
    Die Netze, die in der Rangliste in der unteren hälfte sind, werden gelöscht. (Das Gegenstück in der Realität wäre einen Darwin-Award zu gewinnen)
  2. Mutation
    Die Plätze, die durch die Auslese frei geworden sind, werden ersetzt durch neue Netze. Diese sind mutierte Versionen der Netze, die in der Rangliste die obere Hälfte besetzen. Bei einem Mutationsvorgang werden die Parameter der Neuronen leicht abgewandelt. So entsteht ein Netz, das teilweise neue Eigenschaften besitzt, zum Größten Teil jedoch noch dem Vorfahren-Netz entspricht. Die Mutation findet unter bestimmten Parametern statt, die angeben wie wahrscheinlich eine Mutation ist, und wie stark sich diese Auswirkt.
  3. Frisches Genmaterial
    Da die Netze mit jeder Generation ähnlicher werden, kann es sein dass sie sich in eine bestimmte Richtung entwickeln, von wo keine Möglichkeit zu einer Lösungsfindung vorhanden ist. Deshalb werden mit jeder Generation wenige Verlierer ersetzt durch komplett neu zufällig generierte Netze.

Löst ein Netz eine Aufgabe besonders gut, wird es auch in der nächsten Generation vorhanden sein. Es wird erst aussortiert werden, wenn es von vielen anderen Netzen in der Fitness überholt wurde, Zum Beispiel durch Mutationen von sich selbst, die kleine Verbesserungen aufweisen. Auf diese Weise werden die Parameter immer besser gewählt. Dieser Evolutionäre Lernvorgang wird dann beendet, wenn die Ergebnisse zufriedenstellend sind. Das Gewinner Netz der letzten Generation kann nun alleine verwendet werden, um Aufgaben zu lösen. Da die Rechnung, die in einem Netzwerk passiert auf einfachen Rechnungen basiert, ist die Endlösung auch relativ performant.

Diese Art des Lernens ist im Vergleich mit anderen Lernmethoden nicht sehr elegant, da es zum Großteil auf Zufall und “trial and error” basiert.

Implementierung: Autonomes Fahren

Um FloNET zu testen habe ich in Unity eine Umgebung gebaut, in der Fahrzeuge durch Hindernisparcours navigieren können. Jedes Fahrzeug besitzt fünf Sensoren, die in Unterschiedlichen Winkeln den Abstand zu einer Wand angeben. Diese fünf Abstände werden an das Neurale Netz weitergegeben, das dem Fahrzeug zugeordnet ist. Das Netz bestimmt basierend darauf den Wert, der das Fahrzeug steuert (Lenkung) Dafür wählte ich Netze mit drei hidden layers, sechs Neuronen in einem layer, fünf Inputs und einem Output. Jede Generation besteht aus 20 Fahrzeugen, die gleichzeitig Gegeneinander antreten. Kollidiert ein Fahrzeug mit einer Absperrung, bleibt es stehen. Ist die Zeit des Testlaufs um, wird die nächste Generation generiert. Als Fitnesswert wird die gefahrene Distanz der Fahrzeuge benutzt.

In dem Video ist ein Lernvorgang zu sehen, wie diese Fahrzeuge über mehrere Generationen immer weniger kollidieren, bis sie irgendwann die Teststrecke komplett durchqueren können.
Leider ist das Interface sehr unübersichtlich, doch manche Bezeichnungen solltest du aus dem vorherigen Text wiedererkennen können. Ab 1:20 sind die fühlerartigen Abstandssensoren als rote Linien zu erkennen.
In diesem Versuch ist es bereits nach zwölf Generationen gelungen, ein paar Netze zu erzeugen, die die Teststrecke durchqueren können. In diesem Fall war sehr früh ein Netz dabei, das bereits in den Grundzügen die Fähigkeit besaß, Hindernissen auszuweichen. Dies bringt die Evolution schneller voran. Doch auch mit weniger Glück sind die Netze spätestens nach 20 Generationen in der Lage, sicher zu navigieren.

Fazit

Der Ansatz über Evolution intelligente Systeme zu schaffen, halte ich für sehr vielversprechend, da wir Menschen auch ein Produkt der Evolution sind. FloNET ist in seiner Funktionalität sehr eingeschränkt, außerdem ist es mit PHP als Sprache nicht sehr performant. Ein großer Teil der außerdem noch zum biologischen Vorbild fehlt, ist die Fähigkeit, dass sich das Netz selbst anpassen kann. Die hier generierten Netze lernen nicht mehr, sobald sie eingesetzt werden.

Das Konzept von evolutionärem Lernen ist nicht neu, wie ich später feststellen musste. Es gibt bereits viele Beispiele im Internet. Dort habe ich mir dann auch die Idee abgeschaut, Fahrzeuge selbstständig fahren zu lassen.
Ich denke jedoch, dass es eine gute Demonstration ist, wie mächtig evolutionäre Algorithmen sein können. Ich denke dass es nicht die Lösung für Künstliche Intelligenz ist, jedoch glaube ich, dass es als Werkzeug sehr nützlich sein kann. So könnte man zum Beispiel spezielle Netze, die eigene Neuronenverbindungen herstellen können, nach ihrer Lernfähigkeit bewerten und evolutionär verbessern.

Falls du Interesse hast, FloNET zu benutzen, kannst du das gerne tun. Alle PHP Scripte findest du in dem Repository.

Die dunkle Seite des Internets

am 26. November 2017 in Aktuelles von
Bisher unkommentiert »

Wir schreiben Freitag, den 22.07.2016. Eine schreckliche Tragödie ereignet sich am Münchner Olympia-Einkaufszentrum. Der 18-jährige Schüler David S. schießt mit einer Pistole um sich und tötet neun Menschen. Nun stellt man sich die Frage: Wie ist es möglich, dass ein 18-Jähriger an eine Pistole kommt? Nach umfangreichen Ermittlungen stellte sich heraus, dass David S. seine Pistole ohne Weiteres aus dem Darknet erwerben konnte.

Was ist das Darknet?

Das Darknet, auch “deep web” genannt, ist ein Teil des Internets, welches jedoch nur über spezielle Software, wie z. B. dem Tor-Browser-Paket erreichbar ist. Das wichtigste Merkmal, was das Darknet von dem konventionellen Internet unterscheidet, ist die Anonymität. So ist es im “open web” kaum möglich komplett anonym zu surfen, da die IP-Adressen der User von allen Webseiten auf direktem Weg einem Standort zugeordnet werden können. Im Darknet hingegen gibt es keine direkten Verbindungen, denn das Darknet ist als sog. “Peer-to-Peer”-Netzwerk aufgebaut – das heißt, dass das Netzwerk zwischen einzelnen Nutzern besteht, also nicht zentralisiert ist. Das ganze funktioniert nach dem Zwiebelprinzip: Jede Verbindung geht über mindestens drei Knotenpunkte, wobei keiner der Server feststellen kann, woher die Anfrage kommt, wie sie Aussieht und wohin die Anfrage geht. Dieses Schichtenprinzip macht es quasi unmöglich den User zurückzuverfolgen und seine Aktionen nachzuvollziehen. Ein weiteres Merkmal des Darknets sind die URLs der Seiten, diese sind nicht so einfach aufgebaut wie im open web (Beispiel: http://onlinemedien.blog/), sondern sie bestehen aus zusammenhanglosen Buchstaben-Zahlen-Abfolgen (Beispiel: http://qzbkwswfv5k2oj5d.onion), damit die Seiten von anderen Usern nicht ohne Probleme gefunden werden können.

Wie ist es sonst möglich die Seiten im “deep web” zu finden?

Die meisten relevanten Seiten im Darknet sind in einer Linkliste, dem sog. “HiddenWiki” gesammelt. Das HiddenWiki sieht im Aufbau dem bekannten Wikipedia sehr ähnlich, enthält jedoch nur URLs von Seiten im Darknet. Einige Seiten sind jedoch nicht über das HiddenWiki erreichbar, sie sind nur nach Kontakt mit den Betreibern erreichbar, was es fremden Personen zusätzlich erschwert unbefugten Zugriff zu erhalten.

Wie kam David S. an die Waffe?

Die Anonymität, die das Darknet verspricht, machen sich viele Kriminelle zunutze, indem sie Seiten betreiben, auf denen illegale Güter und sogar illegale Dienstleistungen erwerbbar sind. So existieren im Darknet sogar Seiten, die sich mit Menschenhandel – also mit dem Handel lebendiger Menschen – befassen. Es ist auch möglich Falschgeld, Drogen und Waffen aller Art im Darknet zu kaufen.
Die zweite Hürde neben der Seitenfindung ist die Bezahlung im Darknet. Im Gegensatz zum herkömmlichen Bezahlprozess im Internet, ist es im “deep web” nicht möglich, über gängige Bezahlmethoden, wie PayPal oder Überweisung, zu bezahlen. Bezahlt wird mit Bitcoins, einer Onlinewährung, welche unter bestimmten Umständen, einen hohen Grad an Anonymität verspricht.

Der Amokläufer David S. kam über das Darknet schnell mit einem Waffenhändler aus Marburg in Kontakt. Dort trafen sich die Beiden nach kurzer Zeit für den Waffenhandel. Für 4000 € konnte sich David S. eine Pistole vom Typ Glock 17 mit dazugehöriger Munition kaufen, welche die Tatwaffe des Münchener Amoklaufs vom 22.07.2016 war.

Ist das Darknet deshalb böse?

Diese Frage ist nicht leicht zu beantworten, denn im Darknet existieren nicht nur Seiten mit illegalen Inhalten. Laut einer Statistik von Statista aus dem Jahre 2017 (siehe Abbildung 1) behandeln über ein Drittel der Seiten des “deep web” legale Themen.

Das hört sich im ersten Moment wenig an, jedoch ist es wichtig zu wissen, worum es sich bei diesen Seiten handelt. In totalitären Staaten, in denen es durch die Regierung verboten ist offen zu kommunizieren und seine Meinung zu äußern, bietet das Darknet ein Sprachrohr für die anonyme interne und externe Kommunikation. Gerade dieser Kanal ist unabdingbar für etliche Freiheitsbewegungen. Auch Whistleblower wie Edward Snowden kommunizierten über das Darknet mit den Medien. Das Schützen von Dissidenten war der ursprüngliche Gedanke des Darknets, der bis heute ein wichtiger Bestandteil geblieben ist.

Der Mensch macht den Unterschied

Letzten Endes muss jeder Mensch für sich entscheiden, wofür er das Darknet verwendet, jedoch ist diese Entscheidung mit Bedacht zu treffen, denn das Darknet ist keine gesetzesfreie Zone. Weltweit gibt es Ermittlungen gegen kriminelle Aktivitäten im Darknet – zum Teil mit Erfolg. Seit 2013 wurden international schon über 30 illegale Marktplätze zerschlagen und die Betreiber strafrechtlich verfolgt.

Auch Philipp K., der Waffenhändler, der David S. die Amokwaffe verkaufte, wurde von den Behörden verhaftet, nachdem diese Interesse an einem Waffenkauf vorgetäuscht haben und ihm anschließend mit einem Spezialkommando auflauerten. Angeklagt wurde Philipp K. wegen fahrlässiger Tötung und Waffendelikten. Hier hat die technische Anonymität, die ihm das Darknet verschaffte nicht weiterhelfen können, da er einen menschlichen Fehler beging und damit die Anonymität im Darknet aufgehebelt hat.

Quellen

Zollfahnder hatten Chatkontakt zu Münchner Amokläufer
Der Nazi aus dem Darknet
Was ist eigentlich das Darknet?
Wie funktioniert das Darknet?
Das TOR-Netzwerk nach Kategorien