Ralph's Blog about this and that (RSS | Atom)

2017 | 2018 | 2019 | 2020

Smaller changes in Java 9 to 14

Published: May 12, 2020  •  java

A summary of interesting smaller changes in the Java standard library and the language in Java 9 to 14.

Gitblog - the software that powers my blog

Published: May 07, 2020  •  java

Taking a closer look at the software that runs my blog

Java application as Windows Service

Published: May 06, 2020  •  java

How to install any Java application as Windows service with WinSW

Deploy Angular and Spring Boot application to Google cloud

Published: May 05, 2020  •  java, angular, spring

In this blog post, I show you how to deploy an Angular application to Firebase Hosting and a Spring Boot application to Google Cloud Run

Upgrade password hashes with Spring Security

Published: May 04, 2020  •  java, spring

A closer look at Spring Security's support for upgrading password hashes

Building encrypted chat app with the Web Cryptography API

Published: May 03, 2020  •  javascript, spring, java, ionic

In this blog post, I show you how to create an encrypted Java/JavaScript chat application with the Web Cryptography API.

Present photos on Google Maps

Published: May 02, 2020  •  javascript, java

In this tutorial I show you how to develop a web application that present your holiday photos on Google Maps

Add CAPTCHA to your site with hCaptcha

Published: May 01, 2020  •  javascript, java, ionic, angular

This blog post shows you how to integrate hCaptcha CAPTCHAs into a plain JavaScript project and Angular projects, with a Spring Boot back end.

Translation chat app with Cettia and Google Cloud Translation

Published: April 24, 2020  •  javascript, spring, java

In this blog post, I show you how to build a chat application with Cettia and Google Cloud Translation that automatically translates chat messages.

JavaScript / Java chat application with Cettia

Published: April 23, 2020  •  javascript, spring, java

In this blog post, I show you how to build a simple chat application with a JavaScript front- and a Java backend.

Exchange Protocol Buffers messages between JavaScript and Java

Published: April 04, 2020  •  javascript, java

In this blog post, we are going to take a look at how to sends Protocol Buffers messages from an Angular app to a Spring Boot back end.

Push Notifications with Capacitor and Java

Published: April 03, 2020  •  ionic, spring, javascript, capacitor, java

In this blog post we take a closer look at how to receive push notifications with Capacitor and how to send them from a Spring Boot application

Migration from Nashorn to GraalVM JavaScript

Published: April 01, 2020  •  java

Oracle removes the Nashorn JavaScript engine in Java 15 (September 2020). In this blog post, I show you how to migrate to the successor - GraalVM JavaScript engine

A look at JSR 374 - Java API for JSON Processing (JSON-P)

Published: August 29, 2019  •  java

In this blog post, we are going to take a loot at the JSON-P (JSR 374) standard for processing JSON in Java.

Creating a password-less sign-in with WebAuthn, Spring and Ionic/Angular

Published: August 25, 2019  •  javascript, java, spring, ionic

In this blog post, we are going to build a password-less authentication system with the FIDO2 WebAuthn standard. I show you a full-stack demo application with an Ionic / Angular front end and a Spring Boot back end with Spring Security.

Sending Web Push Notifications with Java

Published: August 13, 2019  •  java, javascript

Sending Web Push notifications from a Java back end to a web browser

Catch-all SMTP servers for development and testing

Published: August 09, 2019  •  java

How to use a catch-all SMTP server for development and testing email delivery. In this blog post, we are going to look at 6 different catch-all SMTP servers and a Junit 5 example with an embedded catch-all SMTP server.

Rate limiting Spring MVC endpoints with bucket4j

Published: August 07, 2019  •  java, spring

How to rate limit Spring MVC HTTP endpoints with bucket4j

Entity auditing with Hibernate Envers

Published: August 05, 2019  •  java

In this blog post we take a look at Hibernate Envers, a library that provides an easy auditing/versioning solution for entity classes

Git with JGit

Published: August 04, 2019  •  java

In this blog post we take a look at JGit, a pure Java implementation of Git

Spring Security second-factor authentication with TOTP

Published: June 21, 2019  •  Updated: April 05, 2020  •  java, spring

In this blog post you learn how to write an authentication system with Spring Security that uses username/password and TOTP (Time-based One-Time Password) as second-factor

Variable length integers

Published: June 18, 2019  •  java

How to encode fixed 4 bytes Java integers into a variable-length format that uses less space.

Password auto-login with the Credential Management API

Published: June 13, 2019  •  java, javascript, spring, ionic

How to create a frictionless password auto-login experience with the Credential Management API.

Exposing build information of Spring Boot and Angular applications

Published: June 12, 2019  •  java, spring, javascript

How to expose build information, like version number, build timestamp, git commit information, of Spring Boot and Angular applications

Uploading pictures from Capacitor app to Spring Boot

Published: June 11, 2019  •  java, spring, javascript, ionic, capacitor

How to take pictures with the Capacitor camera plugin and upload them to a Spring Boot application with Angular's HttpClient and tus.io.

Reliable file uploads over HTTP with tus.io

Published: June 11, 2019  •  java, javascript, spring, ionic

How to integrate tus.io implementations into JavaScript and Java applications to create reliable and resumable file uploads over HTTP.

Stateless Authentication with Spring Security

Published: May 15, 2019  •  java, spring, ionic

In this blog post we are going to implement a stateless authentication system with Spring Security, Spring Boot and an Angular/Ionic client

Directory watching with Java

Published: February 01, 2019  •  java

In this blog post, we take a look at the capability of Java to monitor directories for changes. A feature that has been introduced a long time ago (2011) in Java 7

Getting started with jOOQ, Flyway, and Spring Boot

Published: January 31, 2019  •  java, spring

In this blog post we are going to set up a Spring Boot application with jOOQ and Flyway

Real-time messaging with Cettia and Spring Boot

Published: January 28, 2019  •  java, javascript, spring

Getting started with Cettia, a real-time web framework, and Spring Boot

A closer look at the Java 11 HTTP Client

Published: January 23, 2019  •  java

In this blog post, we are going to take a closer look at the new HTTP Client that has been introduced in Java 11.

Spring Boot with TLS and HTTP/2 on localhost

Published: January 09, 2019  •  java

In this blog post, we are going to set up a private root CA with mkcert on our local development machine, create a TLS certificate, and enable Spring Boot to use TLS and HTTP/2. We learn how to configure Charles, an HTTP proxy, to trust this private root CA and we also take a brief look at HTTP/2 push.

JavaScript BigInt and JSON

Published: January 04, 2019  •  javascript, java

How to JSON deserialize and serialize the new JavaScript primitive number type BigInt in a full-stack application with Spring Boot

Building a simple neural network with Java and JavaScript

Published: December 23, 2018  •  java, javascript

Creating a simple feedforward neural network in Java and JavaScript, based on the algorithms of Tariq Rashid's book "Make Your Own Neural Network"

Google Cloud Vision and Storage example with Ionic and Spring Boot

Published: December 11, 2018  •  java, spring, ionic, javascript

This blog post shows you a way to upload pictures from a web application to Google Cloud Storage and run them through Google Cloud Vision. The application uses Ionic for the front end and Spring Boot for the back end. It utilizes signed URLs for permitting the client to upload pictures directly from the web application to Google Cloud Storage

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 Background Sync API

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

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 web application and a Spring Boot server application.

Check for commonly used or compromised passwords

Published: May 03, 2018  •  java, javascript

In this blog post, I present four examples of 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  •  Updated: November 29, 2018  •  java

In this blog post, we're going to 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.

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

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.

Sending Web push messages from Spring Boot to Browsers

Published: January 09, 2018  •  Updated: December 07, 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.

Adding speech recognition to an Ionic App

Published: December 18, 2017  •  Updated: July 16, 2019  •  ionic, javascript, java, spring

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

Developing a self-hosted location tracker

Published: November 07, 2017  •  Updated: December 05, 2018  •  ionic, java, spring, javascript

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

Dynamically loading position data with Ionic and Spring Boot

Published: November 05, 2017  •  Updated: December 03, 2018  •  ionic, java, spring, javascript

In this blog post we create an Ionic app that dynamically requests location data points from a Spring Boot server and displays them on an 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 to Spring Boot with Flow.js

Published: September 26, 2017  •  Updated: December 04, 2018  •  java, ionic, javascript, spring

A closer look at the Flow.js JavaScript library that helps upload 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.

Spring Boot and Ionic application development with OpenAPI

Published: September 21, 2017  •  Updated: December 04, 2018  •  spring, java, javascript, ionic

In this blog, we create REST services in Spring Boot and consume them in an Ionic app. We use the OpenAPI specification for generating 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

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

Sending push messages from Spring Boot to Ionic over FCM

Published: February 26, 2017  •  Updated: March 31, 2020  •  ionic, spring, javascript, java

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

Uploading files from Ionic / Cordova to Minio / S3

Published: February 16, 2017  •  Updated: December 06, 2018  •  ionic, cordova, spring, s3, javascript, java

How to upload files from an Ionic / 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 take a closer look at Minio, a self-hosted S3 compatible server, and how to connect a Java application to it.

Uploading pictures from Ionic / Cordova to Spring Boot

Published: February 12, 2017  •  Updated: December 06, 2018  •  ionic, cordova, spring, javascript, java

In this article, we create an Ionic application where the user can take a picture, and the app uploads it to a Spring Boot application.

JWT Authentication with Ionic/Angular and Spring Boot

Published: February 05, 2017  •  Updated: December 07, 2018  •  ionic, spring, java, javascript

How to implement a JWT authentication system with Ionic/Angular and Spring Boot.

Form validation with Angular and Spring Boot

Published: January 26, 2017  •  Updated: December 04, 2018  •  angular, ionic, spring, java, javascript

Example of form validation in an Ionic 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 Spring framework

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

Consume Protocol Buffer messages with Ionic

Published: January 14, 2017  •  Updated: December 01, 2018  •  ionic, spring, java, javascript

Protocol Buffers with Spring Integration

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