Archiv der Kategorie: javascript

Rudi auf JavaScript

Damit der Blog auch einen knackigen Namen hat und sich leichter merken lässt, wurde aus Linux-Rt nun Rudi Ratlos. Nun lassen sich die Inhalte dieses Blogs aus der Sicht des ahnungslosen Beginners betrachten – sozusagen mit den Augen von Rudi Ratlos.

Die Todo-Liste mit CouchDB hat noch ein paar Verbesserungen erfahren. Noch ein wenig mehr Feinheiten an JavaScript, jQuery und den ajax-Aufrufen und das kleine Projekt ist rubuster. Inklusive einer kurzen README findet sich hier das überarbeitete Beispiel als zip-Paket.

Jetzt mal in echt

Html-Seiten mit dem Editor erstellen und in den Browser laden ist schön einfach. Alles ist schnell getestet und so lassen sich auch Skripte für die Seite zügig entwickeln. Werden die Seiten in einer Datenbank gespeichert, wie unsere Todo-Liste in CouchDB, dann ist das schon etwas spannender. Vielleicht möchte man nicht sein komplettes Seiten-Projekt mit CouchDB realisieren und vermutlich benutzt niemand CouchDB direkt als Webserver. Um also einmal ein komplettes System am Laufen zu haben, fehlt noch ein Server. Zum Test lässt sich das trotzdem ohne Schwierigkeiten auf dem lokalen Rechner realisieren.
Als Webserver habe ich nginx gewählt. In der Konfiguration über die Datei nginx.conf lässt sich CouchDB auch in einem Unterverzeichnis ansprechen.

# proxy CouchDB
location /db {

rewrite /db/(.*) /$1 break;
proxy_pass http://127.0.0.1:5984;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

Diese Methode findet sich mehrfach im Netz beschrieben, macht aber ein paar kleine Problemchen. Beispielsweise will Fauxton per Aufruf über den Webserver in diesem Fall nicht richtig arbeiten. Unsere Todo-Liste bringt man mit etwas zusätzlicher Handarbeit in Gang. Die Zeile

var DATABASE = "/" + window.location.href.split("/")[3];

liefert in diesem Fall ein falsches Ergebnis. Um den Pfad immer richtig zu ermitteln, habe ich nur folgende Funktion geschrieben:

rudi.tools.js

Nun kann die Todo-Liste aufgerufen werden, wie folgt:

http://127.0.0.1/db/example/todo/index.html

Wir das Stammverzeichnis des lokalen Rechners aufgerufen, dann sieht man die statische Startseite unseres nginx-Servers.

Datum in Javascript und JSON

Soweit ging ja alles schon sehr gut mit der kleinen Todo-Anwendung und ChouchDB. Werden über mehrere Tage Einträge in die Datenbank eingetragen, stellt sich ein Fehler in der Reihenfolge dar. Dies ist dem Format des Datums geschuldet. Das Datum des Eintrags wird beim Konvertieren nach JSON in eine Zeichenkette umgewandelt. Das sieht dann aus, wie folgt:

"Mon Jul 24 2017 16:20:11 GMT+0200 (Mitteleuropäische Sommerzeit)"

Das ist nun der Grund, warum nicht korrekt nach Datum und Zeit sortiert wird. Um nun eine Zeichenkette zu erhalten, die sich korrekt sortieren lässt, kann man moments.js verwenden. Wird anstatt der JavaScript-Funktion Date() nun moment.utc() benutzt, erhält man ein Datum noch folgendem Muster:

"2017-07-24T17:58:50.000Z"

Bei der Todo-Liste muss das Datum nicht hübsch sein. Es dient nur die Reihenfolge der Einträge einzuhalten. Jetzt liese sich die Lösung noch verbessern, wenn man die Zeit vom Webserver erhält.

Man macht sich eine Liste…

Es gibt ja eine Menge zu lesen im Netz, sobald man damit fertig ist, ist das Wissen bereits veraltet. Das Internet vergisst jedoch auch das Veraltete nicht – das liest man mit, wenn man nicht selektiert. Was ist denn wirklich neu?

Bei builtwith.com kann man herausfinden, was momentan auf dem Markt häufig verwendet wird. Das ist noch nicht wirklich der Hinweis, ob etwas tatsächlich gut oder neu ist. Ich versuche nun keine Technologien zu erlernen, die rückläufig sind. Letztlich soll es aber auch Spaß machen. Wenn man als Entwickler Instrumente hat, die einen gewissen Komfort bieten, kann das gelingen.

Eine Datenbanksoftware, die den Aufruf „relax!“ verkündet, scheint das Richtige für mich zu sein. Also, CouchDB installieren und anfangen.

Weiterlesen

Warum die Domain ‚linux-rt‘?

Nun könnte ich auf meinem Blickwinkel die Frage auch so formulieren: „Was macht man nicht alles, wenn man jung ist?“.

Es ließe sich vermuten, dass die Seite irgend etwas mit Linux und Realtime zu tun hat. Tatsächlilch ging mein Besteben in diese Richtung, als ich die Doman registriert habe. Das ist schon lange her und hier lag alles einigermaßen brach. Dann habe ich testhalber mal einen Blog installiert und wieder ist weiter nix passiert. Jetzt möchte ich ich mich über mein C++-Dasein hinaus entwickeln und mit Web-Entwicklung beschäftigen. Warum also nicht darüber bloggen?

Statische Webseiten sind ja nicht besonders aufregend, also interessiere ich mich erst einmal für CouchDB. Um etwas oben d’rauf zu bauen beschäftigen mich dann noch die Themen JSON, JavaScript und jQuery.

Vielleicht begibt sich mit mir jemand auf den gleichen Weg und verfolgt meinen Blog oder erfahrene Entwickler wollen wertvolle Ratschläge in den Kommentaren hinterlassen.

Also dann – mal sehen was passiert…

Euer Rudi Ratlos