Datenbank ausprobieren leicht gemacht

Manchmal steht man vor dem Problem das eine Datenbank-Abfrage konstruiert werden soll, aber gerade keine Datenbank zur Hand ist. Auch für pädagogische Zwecke soll nicht gleich mit Kanonen auf Spatzen geschossen werden. Stattdessen bietet sich der Dienst SQL Fiddle an. SQL Fiddle selbst beschreibt sich wie folgt:

A tool for easy online testing and sharing of database problems and their solutions.

Im Dienst kann eine Datenbank definiert werden und diesen anschließend mit Werten befüllt werden. Nach der erfolgten Definition wird das Schema erzeugt und anschließend kann die Datenbank mit Abfragen getestet werden. Technisch wird bei jeder Schemageneration eine neue Datenbank erzeugt und für jede Abfrage wird eine Transaktion erzeugt, welche nach der Abfrage wieder zurückgerollt wird. Dadurch befindet sich die Datenbank immer in dem definierten Status.

Mit SQL Fiddle können Datenbankabfragen schnell getestet werden

Der Quelltext des Projektes ist auf GitHub zu finden. Er ist unter der MIT-Lizenz lizenziert und somit freie Software. Zu finden ist der Dienst unter sqlfiddle.com.

Nie gesehen; nie gehört

Auf YouTube finden sich aberwitzig viele Videos. Und von Minute zu Minute werden weitere Stunden an Videomaterial auf der Plattform hochgeladen. Da ist es nicht weiter verwunderlich das es eine Unzahl an Videos gibt, welche auf YouTube noch nie oder nur sehr selten betrachtet wurden. Der Dienst Underviewed findet solche Videos bietet sie dem Nutzer an.

Auch für Musik gibt es Dienste, welche den Schatz des Ungehörten heben

Das Ganze gibt es nicht nur für Videos, sondern auch für Musik. Der Dienst Forgotify sucht Songs die noch nie oder sehr selten gehört wurden und spielt sie ab. So können Stunden damit verbracht werden das Ungesehene und Ungehörte zu genießen.

3D-Buch-Mockups erzeugen

Wenn ein Buch dargestellt werden soll, so kann natürlich einfach das Cover gezeigt werden. Allerdings wirkt dieses meist etwas künstlich, da die dritte Dimension fehlt.

Ein 3D-Mockup eines Buches

Für dieses Problem bieten sich Dienste an, welche 3D-Mockups aus einem beliebigen Cover erzeugen. Einer dieser Dienste ist der 3D-Mockup-Generator von DIY Book Design. Dort wird ein Cover hochgeladen und anschließend kann der gewünschte Mock-Typ gewählt werden. Neben klassischen Büchern, ist es ebenfalls möglich Mockups von elektronischen Lesegeräten wie dem Kindle zu generieren. Wenige Sekunden später kann das gewünschte 3D-Mockup heruntergeladen werden.

REST-Service mittels Spring Boot aufsetzen

Sprint Boot vereinfacht das Setup eines Spring-Projektes und geht dabei nach der Methode Konvention vor Konfiguration vor. So lässt sich ein einfacher REST-Service mittels Spring Boot schnell und unkompliziert implementieren. Im ersten Schritt wird dazu mit dem Spring Initializr ein neues Projekt mit der Abhängigkeit Web angelegt.

Mit dem Spring Initializr wird ein Projekt mit der Abhängigkeit Web angelegt.

Nach dem Download des Projektes wird dieses in der IDE der Wahl (z.B. IntelliJ IDEA) geöffnet und eine Klasse mit dem Namen HelloWorldController angelegt. Die Klasse sollte im gleichen Package (in diesem Beispiel: com.example.demo) wie die DemoApplication angelegt werden und wie folgt aussehen:

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {

    @GetMapping("/hello")
    public String helloWorld(@RequestParam final String name) {
        return "Hello " + name + "!";
    }

    @GetMapping("/hello/{name}")
    public String helloWorld2(@PathVariable("name") final String name) {
        return "Hello " + name + "!";
    }
}

Über die Annotation @RestController wird dem Framework mitgeteilt das es sich bei dieser Klasse um einen Controller für die REST-API handelt. Anschließend wird die Ressource hello definiert. Diese kann über zwei Wege aufgerufen werden:

http://localhost:8080/hello?name=seeseekey
http://localhost:8080/hello/seeseekey

Bei beiden Aufrufen erscheint als Ergebnis der Text:

Hello seeseekey!

Der erste Aufruf wird auf die Methode helloWorld gemappt, während der zweite Aufruf mit dem Parameter in der URL an die Methode helloWorld2 gemappt wird. Mittels der Annotation @GetMapping wird der URL-Pfad festgelegt, auf welchen die Methode reagieren soll. Bei der ersten Methode kommt die Annotation @RequestParam zum Einsatz, welche einen gewöhnlich Parameter definiert, welcher von der eigentlichen URL abgetrennt ist. Dagegen wird mit der Annotation @PathVariable in der Methode helloWorld2 eine Variable im Pfad der eigentlichen URL definiert.

TLS – Schritt für Schritt erklärt

Wenn eine URL wie z.B. https://example.com über den Browser aufgerufen wird, erfolgt dieser Aufruf verschlüsselt. Zuständig dafür ist die Transport Layer Security kurz TLS. Wie genau die Aushandlung von TLS funktioniert, kann sich Byte für Byte auf der Webseite tls.ulfheim.net angeschaut werden.

The Illustrated TLS Connection

Auf der Seite wird in aller Ausführlichkeit der Verbindungsaufbau von TLS erläutert. Dabei wird wie es die Seite verspricht, jedes einzelne Byte entsprechend erklärt. Das Projekt, dessen Quelltext auf GitHub zu finden ist, ist unter der MIT-Lizenz lizenziert und damit freie Software.