daten&bass

data needs bass.

#nosql

data with bas[s|e].

data
d&b expertise

Früher:
Software hatte (immer) das gleiche "Gehirn" für alle Datenarten ... (SQL) Tabellen.

Heute:
Diverse domain-spezifische Optionen jenseits von Tabellen ... einfache key-value, hierarchisch strukturierte document, hochgradig vernetzte graph oder big column stores.

domain driven data.
development
d&b expertise

Früher:
Verschiedene Programmiersprachen, Tools und Konfigurationen überall im RZ.

Heute:
Full-stack JavaScript: Von der Server V8 Engine bis hin zum Browser des Clients. Event-basierte asynchrone und funktionale Programmierung inklusive. JavaScript, ausgerechnet.

full-stack javascript.
deployment
d&b expertise

Früher:
Schwergewichtige virtuelle Maschinen mit hunderten GB Daten und Stunden der Raterei.

Heute:
Leichtgewichtige Container mit schriftlichem Manifest zur Reproduktion. Keine Vervielfachung von OS und Lizenzen mehr. Orchestrierung out-of-the box. Build, ship, run.

immutable deploymnet.

blog

unsere neuesten blog beiträge (auf englisch)

Installing Minikube on Mac OS in Virtualbox

As Kubernetes seems to have "won" the "battle" for container orchestration this post shows how to get up and running with Kubernetes locally via Minikube and Virtualbox on Mac OS. >>

arne on docker, dcos | 25 JANUARY 2018

Getting Started with Neo4j and GraphQL

Whereas GraphQL usually requires you to write resolvers for each operation Neo4j has started two projects on Github which provide "auto-translation" from GraphQL queries to Neo4j's Cypher queries and thus saves the effort to write custom resolvers. And on top there is only a single query to the database. >>

arne on graphql, nosql, neo4j, nodejs | 31 DECEMBER 2017

Data Modeling with Redis - German Postcodes Geoposition

Following the previous, more general blog post about data modeling with Redis (data types visualization), this post covers a specific example: Storing and retrieving German postcodes ("Postleitzahlen", short PLZ) and especially their geopositions. >>

arne on nosql, redis, nodejs | 30 NOVEMBER 2017

Data Modeling with Redis - Data Types Visualization

This post is a short introduction to data structures available in Redis. Nothing new, right? Right. However, the chosen approach here is to visualize the most common Redis data structures with ASCII side by side with a simple redis-cli command. >>

arne on nosql, redis | 27 OCTOBER 2017

news
d&b blog

[P‑G‑A]

Poctcode-Geopos-API:
NodeJS API basierend auf Swagger/openAPI zur Abfrage von Geopositionen in Redis gespeicherter deutscher Postleitzahlen (PLZ)

Use Case

Die Poctcode-Geopos-API ermöglicht anhand deutscher Postleitzahlen einfache Abfragen nach:

  • deren Geoposition mit Längen- und Breitengrad
  • deren OSM-Info-Objekt mit weiteren Daten
  • allen Städtenamen in der gleichen PLZ Leitregion (z.B. 45)
Es lassen sich damit z.B. in HTML Drop-Down Select Listen asynchron mit Optionen befüllen (z.B. nach Eingabe der ersten beiden Ziffern, sog. PLZ Leitregion) und dann Folgeanfragen für den ausgewählten PLZ-Bereich abwickeln - sei es mit [P‑G‑A] selbst oder anderen APIs.

Beispiel

Geoposition 45130:
["7.00937658548355103", "51.43758188556734012"]

OSM-Info-Objekt 45130:
{"osm_id":"2073330", "type":"postcode", "lon":"7.00937729260588", "boundingbox": ...}

Städtenamen 45:
["45127 Essen Stadtkern", "45128 Essen Südviertel", "45130 Essen Rüttenscheid", ...]


Testen

Anzahl Daten

Geopositionen: > 8.000

OSM-Info-Objekte: > 8.000

Städtenamen: > 12.500

Aktualisiert: 2017 - Q4

Implementierung

Stack: Redis als Datenbank mit einer NodeJS API basierend auf ExpressJS und Swagger-Node sowie Docker für das Deployment.

Status: Private Beta.

Zugang & Lizenzen:

Nutzung

Einer unserer Blog Posts erklärt die zugrundeliegenden Datenstrukturen in Redis und eine Beispielimplementierung client-seitig gibt es hier. Interessiert am Beta Testing? Wir freuen uns über eine Token-Anfrage.


API Docs
Poctscode-Geopos-API
d&b apis

cypherMe

Cypher your passwords ... and get two-factor paper passwords

Idee

Die Idee geht zurück auf diesen Blog-Post von John Graham-Cumming: http://blog.jgc.org/2016/05/two-factor-paper-passwords.html

Hintergrund

Zwei-Faktoren Papierpasswörter können sicher aufgeschrieben und als Bausteine für einen off-line, nicht digitalen Passwort-Manager betrachtet werden.

cypherMe hilft beim (de)chiffrieren, aber ohne diese zu speichern.

Implementierung

Open source: Source code und Lizenz

Stack: Server-seitig NodeJS zur HTML-Generierung, zustandsloses client-seitiges Javascript für die Verschlüsselungen und Docker für das Deployment.

Verfügbare Verschlüsselungen: Caesar, Wortumkehrung, Wort- und Schreibungsumkehrung, Vigenère.

Passworttransformationen: Ausschließlich client-seitig (via Javascript im Browser).

Beispiel

Zu verschlüsselndes Passwort: !2MySitePw§9

Verschlüsselung: Wort- und Schreibungsumkehrung

Wiederholungen: 2

Das (verschlüsselte) Passwort: 9§WpETIsYm2!9§WpETIsYm2!

cypherMe
d&b apps

fliXnet

unsere node.js beispielimplementierung von neo4j's filmdatenbank mit openAPI (swagger)

Beispielimplementierung - Die bekannte Neo4j Filmdatenbank

Daten als Graph modellieren, speichern und abrufen.

HTML Web App und JSON API - Beide basierend auf NodeJS Express

Full-Stack JavaScript.

Automatisierte API Validierung and Dokumentation - durch OpenAPI (Swagger)

REST. SOA. Microservices. Oder wie auch immer man es nennen mag.


User Authentifizierung - Backend in Redis als Data Structure Store für Key-Value und Hash Map Daten

Für Sessions, Zugangsdaten und Nutzerkonten.

Basierend auf dem npm-Modul Passport und angepassten Swagger Security Handlern.

Abgesehen von D3JS - Reines JavaScript ohne Abhängigkeiten von anderen Frameworks

HTML Template-Erstellung server-seitig via Jade.

XHR für client-seitige Anfragen an die JSON API.

Nutzung von Material Design Lite Layouts und Komponenten

Optimiert für geräteübergreifende Nutzung.

Einfaches, verlässlich reproduzierbares Deployment - Basierend auf Docker

Container-basierte Infrastruktur.

fliXnet
d&b apps