Highlighty – gebaut mit NodeJS und Redis

Gestern hab ich mich mal hingesetzt und darüber nachgedacht, wie ich
eine Webanwendung zum Abspeichern und Anzeigen von kleinen
Code-Schnippseln aussehen würde. Und weil ich lieber etwas baue als
nur nachzudenken, hab ich mich mit nodejs und redis eine
kleine Anwendung gebaut. 🙂

Das Ergebnis ist jetzt unter highlighty.herokuapp.com online und
kann genutzt werden. Wer sich für die einzelnen Schritte der Erstellung
interessiert, kann wie immer im changelog nachlesen, den Sourcecode
hab ich nämlich wie immer bei Github abgelegt.

Die Anwendung an sich ist eine ziemlich simple NodeJS-Anwendung mit der
Middleware connect, dem SyntaxHighlighter von Alex Gorbatchev
und Redistogo als Addon bei Heroku.

Die interessanten Stellen sind Zeile 18 in app.js für die
Anbindung von Redis und für die NodeJS-Einsteiger Zeile 9 ff.
für die Anbindung von connect als Middleware. Wie man in diesem
Commit
sieht, habe ich am Anfang alle Funktionen der Middleware
selbst programmiert. Aber ich bin ja faul, und hab quasi meinen gesamten
selbstgestrickten Code durch connect ersetzt. 🙂

Jetzt kann ich also kleine Codeschnippsel online abspeichern und den
Link an andere verteilen, die sich anschliessend meinen Code inklusive
Syntax Highlighting ansehen können.

Desktop Notifications für meinen Webchat „Chocket“

Ich wollte schon die ganze Zeit Desktop Notifications in meinen
selbstprogrammierten Webchat chocket
einbauen, bin aber nie über eine
rudimentäre Anzeige der ungelesenen Nachrichten im title
hinausgekommen. Jetzt hab ich mich mal hingesetzt und anhand eines
schönen Artikels bei html5rocks.com
die Desktop Notifications
eingebaut.

Im Prinzip läuft es darauf hinaus, die ankommenden Messages im Fall
einer Erwähnung des eigenen Namens (mention) zusätzlich in eine
Desktop Notification auszugeben. Dazu muss zuerst die Berechtigung des
Benutzers eingeholt werden:

if (window.webkitNotifications.checkPermission() == 0) { // 0 is PERMISSION_ALLOWED
    window.webkitNotifications.createNotification('icon.png', 'Notification Title', 'Notification content...');
} else {
  window.webkitNotifications.requestPermission();
}

Diese Funktion wird als click-Handler z.B. auf einem Button oder einem
Link eingebaut, weil nur der Benutzer selbst diese Aktion starten kann.

Danach kann man wie im obigen Beispiel die Desktop Notifications
abschicken. Im Commit 667aaf6 kann man in Zeile 128 sehen, wie
anschliessend die Nachricht im Fall einer Erwähnung des eigenen Nicks
weitergeleitet wird.

Screenshot einer Desktop Notification

Und schon bekommt man (zumindest in Chrome) die Desktop
Notifications
angezeigt. 🙂

Die Zutaten sind da

Heute sind meine Zutaten angekommen. Es kann also demnächst losgehen. 🙂

Bierzutaten
Bierzutaten