Ralph's Blog

about this and that (RSS | Atom)

Installing WireGuard on Amazon Lightsail

Published: October 11, 2018  •  linux

Installing WireGuard, a simple, fast and modern VPN, on Amazon Lightsail virtual server and connect an Android mobile device.

Global error handler in Angular

Published: October 05, 2018  •  javascript

How to install a global error handler in an Angular application and send error reports to a back end. The blog post shows you how to collect error reports while the application is offline and send them to a back end as soon as the device is back online.

Text to speech with Google Cloud Text-to-Speech

Published: October 04, 2018  •  java, javascript

Converting text from a web application into speech with Google Cloud Text-to-Speech

A closer look at the Beacon API

Published: September 05, 2018  •  javascript

The Beacon API in the browser can be used to transfer data to a server. It's primary use case is to send analytics data during the unload event of a web page. In this blog post we will look at the API and create some examples that use the Beacon API to send data to a server.

BigInt, arbitrary precision integers in JavaScript

Published: September 03, 2018  •  javascript

A look at the new numeric primitive BigInt in the JavaScript language

OpenMapTiles, a self-hosted map tile server with OpenStreetMap data

Published: July 10, 2018  •  linux, selfhosted

In this article I describe how you can install OpenMapTiles, an open source tile server, on our own server

A closer look at the Background Sync API

Published: June 26, 2018  •  pwa, javascript, java, spring

This blog post takes a closer look at the Background Sync API, part of the Service Worker implementation and presents an example that uses Background Sync to synchronize data between an Ionic 4 web application and a Spring Boot server application.

Adding a Workbox Service Worker to an Angular project

Published: June 22, 2018  •  pwa, javascript

A description how to add a Workbox Service Worker to an Angular project instead of using the Angular Service Worker

Sending emails from your Linux server

Published: June 16, 2018  •  linux, selfhosted

In this tutorial I present two ways how to send emails from your self-hosted Linux server. A configuration with SSMTP, that relies on a 3rd party mail server and an example with exim4, a self-hosted SMTP server.

SparkleShare, a self-hosted GDrive, OneDrive, Dropbox alternative

Published: June 12, 2018  •  linux, selfhosted

In this tutorial we look at SparkleShare, a self-hosted, instant and secure file synchronization service

Backup to Amazon S3

Published: June 10, 2018  •  linux, selfhosted

How to install a backup job that runs daily and sends files to Amazon S3

Install a self-hosted Git server with Gitea

Published: June 10, 2018  •  Updated: August 28, 2018  •  linux, selfhosted

In this tutorial I show you how to install a Gitea Git server, install a http server with a domain and secure the connection with a Let's Encrypt TLS certificate.

Putty, a free Windows SSH client

Published: June 10, 2018  •  linux, selfhosted

A quick introduction to the free Windows SSH client Putty. How you can connect to a SSH server and how to set up public/private key authentication.

First configuration steps on a new VPS Server

Published: June 10, 2018  •  linux, selfhosted

A description of initial configuration steps after renting a new VPS server

Check for commonly used or compromised passwords

Published: May 03, 2018  •  java, javascript

In this blog post I present four examples how you can implement password checks for commonly used or compromised passwords.

OAuth 2.0 server-to-server authorization flow between a Java application and a Google service

Published: May 01, 2018  •  java

How a Java server application can complete the server-to-server OAuth 2.0 flow and access a Google service

Searching "Have I been pwned?" passwords locally with Java

Published: March 01, 2018  •  java

In this blog post we will create Java applications that download and search the "Have I been pwned?" password list with over 501 million passwords.

Real Time Polling App with Java and JavaScript

Published: February 28, 2018  •  java, javascript

In this blog post we create a simple polling application with Java and JavaScript and send real time updates with server-sent events

Human readable regular expressions

Published: February 27, 2018  •  java, javascript

Writing human readable regular expressions with the VerbalExpression library

Access Server-sent events from Java

Published: February 26, 2018  •  java

How to consume Server-sent events in a Java application.

Conditionally load polyfills

Published: February 14, 2018  •  javascript

Two examples how you can conditionally load polyfills in a JavaScript application

Working with MongoDB TTL Indexes from Java

Published: February 05, 2018  •  database, mongodb, java

A brief introduction to Time to live indexes in MongoDB and how to access them from Java

Working with MongoDB Capped Collections from Java

Published: February 04, 2018  •  Updated: February 05, 2018  •  mongodb, java, database

A brief overview of capped collections in MongoDB and how to access them from Java

Self host Polyfill.io

Published: January 15, 2018  •  javascript

A short tutorial on how to install Polyfill.io on Ubuntu And an example how you can use Polyfill.io together with Babel

Integrate Parcel into a Maven project

Published: January 13, 2018  •  Updated: January 25, 2018  •  java, javascript

An example project that integrates a front end JavaScript application with the Parcel bundler and a Spring Boot application built with Maven into one project and ultimately create one executable JAR.

Using Dexie.js in a TypeScript application

Published: January 12, 2018  •  database, javascript

In this blog post I present a way to use Dexie in a TypeScript application

IndexedDB programming with Dexie.js

Published: January 12, 2018  •  database, javascript

In this blog post I give you an overview about Dexie, a minimalistic wrapper library for IndexedDB. Write simpler and more concise IndexedDB code with Dexie.

A closer look at the Cache API

Published: January 09, 2018  •  pwa, javascript

Explore the provided methods of the Cache API that is primarily used in Service Workers to cache assets, but can be used anywhere as a general purpose cache.

Sending Web push messages from Spring Boot to Browsers

Published: January 09, 2018  •  Updated: July 18, 2018  •  java, javascript, pwa, spring

In this blog post I show you how you can send push messages from a Spring Boot application over Firebase Cloud Messaging (FCM) to connected clients with the Web Push API. The Push API is part of the Service Worker specification and does not depend on any native plugins.

A closer look at date-fns

Published: January 08, 2018  •  Updated: January 09, 2018  •  javascript

A close look at the date-fns date/time library. Compare it with Moment.js and look at a few examples

Bundling web applications with Parcel

Published: January 07, 2018  •  Updated: February 16, 2018  •  javascript

A close look at Parcel and present various examples how to bundle web applications with technologies like Babel, TypeScript and Sass.

Custom SVG icons with Ionic 3

Published: January 06, 2018  •  ionic3, javascript

How to use arbitrary SVG icons in an Ionic 3 app

Forward-/Backward navigation with Ionic 3

Published: January 06, 2018  •  ionic3, javascript

This blog post shows the lifecycle methods of Ionic 3 and when they are called. The second part describes a way how to distinguish between the forward and backward navigation (list and detail page).

Adding speech recognition to an Ionic 3 App

Published: December 18, 2017  •  Updated: February 16, 2018  •  ionic3, javascript, java, spring

In this blog post I present three different way how to integrate a speech recognition functionality into an Ionic 3 app. With a Cordova plugin, the Web Speech API and with RecordRTC and the Google Cloud Speech API.

Workbox with Ionic 3 and Lazy Loaded Modules

Published: December 17, 2017  •  Updated: April 17, 2018  •  ionic3, pwa

How to integrate the service worker library Workbox into an Ionic 3 app with lazy loaded modules

Developing a self hosted location tracker

Published: November 07, 2017  •  Updated: October 20, 2018  •  ionic3, java, spring, javascript

In this blog post we create together a self hosted location tracker that consists of three parts. An Ionic 3/Cordova application that continuously sends the current location to a Spring Boot application from where the locations are broadcasted to a website and visualized with Google Maps.

Ionic 3 with Workbox Service Worker

Published: November 05, 2017  •  Updated: April 22, 2018  •  pwa, ionic3, javascript

Creating Service Workers with Workbox for Ionic 3 applications

Dynamically loading position data with Ionic 3 and Spring Boot

Published: November 05, 2017  •  Updated: January 31, 2018  •  ionic3, java, spring, javascript

In this blog post we create an Ionic 3 app that dynamically requests location data points from a Spring Boot server and displays them on a OpenStreetMap map. The data points are stored in a MongoDB database and we take advantage of the geospatial query support to read the data points only for a certain area.

JCE policy changes in Java SE 8u151, 8u152 and 8u162

Published: October 21, 2017  •  Updated: January 17, 2018  •  java

The latest Java update changed the way how you enable unlimited cryptography in your Java application.

Upload files from Ionic 3 to Spring Boot with Flow.js

Published: September 26, 2017  •  java, ionic3, javascript, spring

A closer look at the Flow.js JavaScript library that helps uploading files from a browser to the server. Flow.js is a JavaScript library providing multiple simultaneous, stable, fault-tolerant and resumable/restartable file uploads via the HTML5 File API.

A closer look at the Web Cryptography API

Published: September 25, 2017  •  Updated: November 16, 2017  •  javascript, cryptography

Creating a trivial password manager with the Web Cryptography API and the Ionic 3 framework.

Spring Boot and Ionic 3 application development with OpenAPI

Published: September 21, 2017  •  Updated: February 17, 2018  •  spring, java, javascript, ionic3

In this blog we create REST services in Spring Boot and consume them in an Ionic 3 app. We use the OpenAPI specification for generating an API documentation and the client TypeScript code.

Pluggable file systems in Java

Published: September 17, 2017  •  Updated: February 16, 2018  •  java

How to use pluggable file systems in Java and a look at implementations outside the standard library

Do it yourself Multi Value Map with Java 8

Published: September 16, 2017  •  Updated: October 25, 2017  •  java

How to create a simple MultiValue Map with Java 8

Offline capable Ionic 3 Web App with IndexedDB

Published: September 15, 2017  •  Updated: November 16, 2017  •  database, javascript, ionic3

Example of an Ionic 3 web application that stores data in an IndexedDB and works offline.

A closer look at IndexedDB

Published: September 12, 2017  •  Updated: October 30, 2017  •  database, javascript

IndexedDB, the database in the browser. How does it work and what can you do with it.

Server-Sent Events with Spring

Published: March 05, 2017  •  Updated: February 16, 2018  •  java, spring

What are Server-Sent Events and how can you send them from a Spring Boot application

Lovefield, a SQL database engine for the web

Published: February 27, 2017  •  Updated: November 16, 2017  •  database, ionic3, javascript

A short introduction to Lovefield, a JavaScript SQL database engine. And how to build an Ionic 3 app that uses Lovefield as database access layer.

Send messages from Spring Boot to Ionic 3 over FCM

Published: February 26, 2017  •  Updated: June 11, 2018  •  ionic3, spring, javascript, java

This post describes how a Spring Boot can send messages over FCM to an Ionic 3 app

Integrate ECharts into an Ionic 3 app

Published: February 22, 2017  •  Updated: September 10, 2018  •  ionic3, javascript

In this post we look at a way to display charts from the ECharts library in an Ionic 3 app

Secure Todo app with Ionic 3

Published: February 18, 2017  •  Updated: March 22, 2018  •  ionic3, cryptography

In this post we create a Todo application with Ionic 3 that stores the data encrypted in the client storage. asmcrypto.js will be used as the cryptographic library and we have a look at the Web Crypto API

Uploading files from Ionic 3 / Cordova to Minio / S3

Published: February 16, 2017  •  Updated: February 16, 2018  •  ionic3, cordova, spring, s3, javascript, java

How to upload files from an Ionic 3 / Cordova app directly to a Minio server or Amazon S3 with pre-signed URLs.

Upload files from Java to a Minio server

Published: February 15, 2017  •  Updated: February 16, 2018  •  java, s3

In this article we have a closer look at Minio, a self hosted S3 compatible server, and how to connect a Java application to it.

Uploading pictures from Ionic 3 to Spring Boot

Published: February 12, 2017  •  Updated: November 16, 2017  •  ionic3, cordova, spring, javascript, java

In this article we create an Ionic 3 application where the user can select a picture from the cordova camera plugin and the app uploads it to a Spring Boot server application.

JWT Authentication with Ionic 3 and Spring Boot

Published: February 05, 2017  •  ionic3, spring, java, javascript

How to implement a JWT authentication between an Ionic 3 app and a Spring Boot back end.

Form validation with Angular and Spring Boot

Published: January 26, 2017  •  Updated: November 16, 2017  •  angular, ionic3, spring, java, javascript

Example of form validation in an Ionic 3 application. How to create custom synchronous and asynchronous validators and how to validate data on the server with the Java Bean Validation framework.

Produce RSS and Atom feeds with Springframework

Published: January 24, 2017  •  Updated: February 16, 2018  •  spring, java

How to create RSS and Atom feeds with the Spring Framework and the ROME library

A look at Angular's ngFor directive

Published: January 22, 2017  •  Updated: December 05, 2017  •  angular, javascript

Storing data with localStorage and Lockr

Published: January 20, 2017  •  Updated: June 19, 2017  •  database, javascript

Hot deploy updates with the cordova-hot-code-push plugin

Published: January 18, 2017  •  Updated: May 18, 2017  •  ionic3, cordova

Hot deploy updates to Ionic 3 apps with CodePush

Published: January 16, 2017  •  Updated: November 16, 2017  •  ionic3, cordova

Consume Protocol Buffer messages with Ionic 3

Published: January 14, 2017  •  Updated: December 23, 2017  •  ionic3, spring, java, javascript

Hot deploy updates to Ionic 3 apps with Ionic Deploy

Published: January 13, 2017  •  Updated: January 17, 2018  •  ionic3, cordova

Protocol Buffers with Spring Integration

Published: January 08, 2017  •  Updated: December 23, 2017  •  java, spring

Upgrade Font Awesome in a Ext JS 6 application

Published: January 04, 2017  •  extjs

JavaScript Date and moment.js

Published: January 04, 2017  •  Updated: October 25, 2017  •  javascript