Ein künstliches neuronales Netz für Super Mario?

Ein künstliches neuronales Netz für Super Mario? Ihr habt richtig gelesen!

Ich habe im Netz ein interessantes Video inkl. Source Code gefunden, welches demostriert, wie eine künstliche Intelligenz mit Hilfe von künstlichen neuronalen Netzwerken Super Mario spielt:

 

Wer sich ebenfalls dafür interessiert, wie das funktioniert, findet den Source Code hier:

Source Code

 

Hinweis:
Dieser Source Code stammt nicht von mir, ihr findet den Link auch unter dem Video auf YouTube.

[Maven] Mit Maven ZIP Archiv erstellen / deployen Tutorial

Mit Maven ZIP Archiv erstellen

Wer kennt es nicht? Man hat eine Software (eine JAR Datei), die man als ZIP Archiv ausliefern will (z.B. um sie auf einer Download Seite zur Verfügung zu stellen) und muss diese ZIP Dateien noch von Hand erstellen. Heute zeige ich euch, wie ihr diese ZIP Archive automatisch von Maven generieren lassen könnt.

ZIP Archiv (GPL Lizenz, Quelle: https://www.iconfinder.com/icons/7034/compressed_document_file_zip_icon)

ZIP Archiv, GPL Lizenz, Quelle: Link

Continue reading

[Java] Hazelcast JUnit Tests

Ich habe mich früher oft gefragt, wie man Hazelcast JUnit Test schreibt.

Heute will ich euch eine kurze, aber knackige Antwort darauf geben.

 

Wer Hazelcast nicht kennt:

Hazelcast ist eine In-Memory-Data Grid, also eine der schnellsten (angeblich sogar die schnellste) NoSQL Datenbanken, die es derzeit auf dem Markt gibt.

Allerdings speichert Hazelcast die Daten per Default nur “In Memory”, also nur im RAM. Da es aber mehrere Hazelcast Nodes (Server) im Cluster geben sollte, können mehrere Hazelcast Server ausfallen, ohne dass dabei Daten verloren gehen. Bei Pentaquin nutzen wir Hazelcast derzeit vorallem als Cache für schnelle Zugriffszeiten, die ein 2D MMORPG dringend benötigt.

Continue reading

[Java] Ist eine Java HashMap Thread Safe?

Ist eine Java HashMap Thread Safe?

HashMap Code

In diesem Artikel wollen wir uns einmal damit beschäftigen, ob die Map Implementierung HashMap<Key,Value> Thread Safe ist. Sicherlich habt ihr auch schon einmal von einer ConcurrentHashMap gehört und euch gefragt, was denn jetzt der Unterschied zwischen diesen beiden ist. Auch gibt es bei einigen immer wieder etwas Verwirrung, weil man immer mal was von 16 Locks im Zusammenhang mit einer HashMap gehört hat. Heute wollen wir das Rätsel einmal auflösen.

Continue reading

[Android] Cyanogenmod wird eingestellt

Cyanogenmod wird eingestellt!

CyanogenMod Logo

Erst vor kurzem habe ich in einem Artikel über den neuesten Nightly Build von CyanogenMod (einer Custom ROM für Android) berichtet und vor ein paar Tagen habe ich dann erfahren, dass Cyanogenmod, Deutschlands beliebteste Custom ROM für Android spätestens am 31.12.2016 eingestellt wird.

 

Der Hintergrund ist, dass die Firma Cyanogen Inc., die CyanogenMod federführend entwickelt und auch die (Server) Dienste & Nightly Builds für diese Android Modifikation bereitgestellt hat, geschlossen wird, wie im Original Blogpost von der Firma beschrieben.

Continue reading

[Android] Bildschirm aktiv lassen

Android Robot

Wer kennt es nicht? Man ist gerade dabei jemandem etwas auf dem Android Handy oder Tablet zu präsentieren, hat dieses dazu auf den Tisch gestellt und nach ein paar Sekunden oder Minuten geht einfach der Bildschirm aus.

Dabei ist es ganz einfach, eine Art “Präsentationsmodus” zu simulieren, sodass dieser an bleibt.

 

Dazu geht man in die Einstellungen unter “Display” und sucht dann die Option “Ruhezustand”, welche man dann auf “nie” stellen muss.

Und schon bleibt der Bildschirm an, bis man diese Option entweder wieder umstellt oder den Power Button wie gewohnt betätigt.

 

 

Continue reading

[OpenGL] Vertex Buffer Object & Vertex Array Object – Was ist das?

Was sind eig. OpenGL Vertex Buffer Objects & Vertex Array Objects – kurz: VBOs und VAOs?

Gerade absolute OpenGL Neulinge haben es recht schwer, sich in die Materie von OpenGL einzuarbeiten, da immer wieder neue Begriffe auftauchen, die Anfänger verwirren lässt. Aus diesem Grund habe ich heute einmal einen kleinen Artikel verfasst, wo diese beiden Begriffe kurz erklärt werden.

 

Vorerst ein paar kurze Informationen vorab:

Die Grafikkarte kennt nur 3D Objekte, welche dann für unseren Bildschirm in 2D umgerechnet werden. Außerdem kennt die Grafikkarte nur 3 Ecke & 4 Ecke – wenn ihr also einen Baum darstellen wollt, oder sogar eine Kugel, bestehen diese Objekte aus lauter kleinen Triangles (Dreiecken) & Quads (Vierecken).

 

Hier mal eine untexturierte Kugel (erstellt mit Blender):

3D Kugel

Continue reading