sebadorn

Profilbild Seba Über mich

Using NW.js to communicate with a DS4 controller

Informatik
0

DS4 green light

NW.js still provides the Chrome Apps API which has been removed from Chrome, but not ChromeOS. This will allow us to access in a platform-independant manner devices which are connected with the PC per USB.

Without this API, a 3rd party Node.js module like node-hid could be used. This will however come with platform-dependant libraries and will have to be updated or rebuild each time the Node.js version changes.

This article concentrates on sending data to the controller. However it is also possible to retrieve data like pressed buttons using the established connection. Aside from using chrome.hid there is also the Gamepad API for read-only access.

Identifying the controller

First we need a way to identify the DS4. Devices come with a vendor Id and product Id. According to the Gentoo Wiki they are as follows:

Device Vendor Id Product Id
DS4 (1st gen) hex 054C / dec 1356 hex 05C4 / dec 1476
DS4 (2nd gen) hex 054C / dec 1356 hex 09CC / dec 2508

Having tested with both devices, I can also confirm the Ids.

Get the device

For all communication with the device, we will use the chrome.hid API. First we define a filter using the vendor and product Id, and then query the available devices:

var filter = {
    filter: [
        { vendorId: 1356, productId: 1476 },
        { vendorId: 1356, productId: 2508 }
    ]
};

chrome.hid.getDevices( filter, ( devices ) => {
    // Error handling.
    if( chrome.runtime.lastError ) {
        console.error( chrome.runtime.lastError );
        return;
    }
    if( !devices ) {
        return;
    }

    var device = devices[0];
    // Next: Connect to the device.
};
weiterlesen

Minecraft: Tastaturprobleme unter Ubuntu [inkl. Lösung]

Informatik
12

Minecraft

Das Problem

Bei mir läuft immer noch der IBus nebenher, da ich gelegentlich auch mal etwas auf Japanisch eintippen möchte[1]. Dummerweise gibt es scheinbar einen Bug[2] zwischen IBus und gewissen Java-Komponenten, wegen dem dann Tastaturereignisse – sprich: Tastendrücke – nicht an die Java-Anwendung weitergereicht werden. Aufgefallen ist mir das bisher in Minecraft.

Bevor ich zur Lösung komme (wer es eilig hat, liest das hier vermutlich ohnehin nicht und scrollt direkt zum Code), ein paar Hinweise. Zum Einen sollte – auch auf Empfehlung von Notch hin[3] – nicht das standardmäßige OpenJDK benutzt werden, sondern Suns JVM. Im Weiteren setze ich auch voraus, dass diese als Default für den Befehl javagesetzt wurde:

sudo update-java-alternatives -s java-6-sun

Der andere Hinweis ist, IBus aktuell zu halten. Obgleich es bisher nicht zur Behebung des Fehlers beitragen konnte. Wie man stets aktuell bleibt, steht auf der IBus-Projektseite.

weiterlesen

[Review] Katanagatari

Anime & Manga
8

Katangatari

GenresAdventure, Drama, Romance
VorlageLight Novel
Episoden12 Folgen à 50 Minuten
StudioWhite Fox
Jahr2010
Opening 1Meiya Kadenrou von Minami Kuribayashi (youtube.com)
Opening 2Katana to Saya von ALI PROJECT (youtube.com)
Endings12 verschiedene
weiterlesen

If you watch this film backwards …

2

Die Backflip-Meme ist das chronologisch umgekehrte Betrachten einer Story. Angefangen hat es auf reddit und wird unter anderem bei Twitter (#backflicks, #backgames) weitergeführt.

If you watch the movie Jaws backwards, it’s a movie about a shark that keeps throwing up people until they have to open a beach.

If you watch LOST backwards you realize it’s the same thing as if you would watch it forward.

If you watch The Curious Case of Benjamin Button backwards it’s about a normal person.

Super Mario Land: Klempner verlässt seine Frau Daisy um Monster in Ebenbilder von ihr zu verwandeln und stöhnt dabei ‚Oh Daisy‘.

Via Nerdcore.


Wem auch ein Backflip einfällt, kann ihn gerne in die Kommentare schreiben.