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

2023 | 2022 | 2021 | 2020 | 2019 | 2018 | 2017

Consume Protocol Buffer messages with Ionic

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

Form validation with Angular and Spring Boot

Published: 26. January 2017  •  Updated: 4. December 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: 24. January 2017  •  Updated: 16. February 2018  •  spring, java

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

Protocol Buffers with Spring Integration

Published: 8. January 2017  •  Updated: 23. December 2017  •  java, spring

JWT Authentication with Ionic/Angular and Spring Boot

Published: 5. February 2017  •  Updated: 7. December 2018  •  ionic, spring, java, javascript

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

Sending push messages from Spring Boot to Ionic over FCM

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

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

Upload files from Java to a Minio server

Published: 15. February 2017  •  Updated: 16. February 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 files from Ionic / Cordova to Minio / S3

Published: 16. February 2017  •  Updated: 6. December 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.

Uploading pictures from Ionic / Cordova to Spring Boot

Published: 12. February 2017  •  Updated: 6. December 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.

Server-Sent Events with Spring

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

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

Do it yourself Multi Value Map with Java 8

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

How to create a simple MultiValue Map with Java 8

Pluggable file systems in Java

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

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

Spring Boot and Ionic application development with OpenAPI

Published: 21. September 2017  •  Updated: 4. December 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.

Upload files from Ionic to Spring Boot with Flow.js

Published: 26. September 2017  •  Updated: 4. December 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.

Developing a self-hosted location tracker

Published: 7. November 2017  •  Updated: 5. December 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: 5. November 2017  •  Updated: 3. December 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.

Adding speech recognition to an Ionic App

Published: 18. December 2017  •  Updated: 16. July 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.

Integrate Parcel into a Maven project

Published: 13. January 2018  •  Updated: 31. October 2021  •  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: 9. January 2018  •  Updated: 7. December 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.

Access Server-sent events from Java

Published: 26. February 2018  •  java

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

Human readable regular expressions

Published: 27. February 2018  •  java, javascript

Writing human readable regular expressions with the VerbalExpression library

Real-Time Polling App with Java and JavaScript

Published: 28. February 2018  •  Updated: 31. October 2021  •  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

Working with MongoDB Capped Collections from Java

Published: 4. February 2018  •  Updated: 5. February 2018  •  mongodb, java, database

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

Working with MongoDB TTL Indexes from Java

Published: 5. February 2018  •  database, mongodb, java

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

Searching "Have I Been Pwned?" passwords locally with Java

Published: 1. March 2018  •  Updated: 11. March 2023  •  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 840 million passwords.

Check for commonly used or compromised passwords

Published: 3. May 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: 1. May 2018  •  java

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

A closer look at the Background Sync API

Published: 26. June 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.

Text to speech with Google Cloud Text-to-Speech

Published: 4. October 2018  •  java, javascript

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

Google Cloud Vision and Storage example with Ionic and Spring Boot

Published: 11. December 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

Building a simple neural network with Java and JavaScript

Published: 23. December 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"

Real-time messaging with Cettia and Spring Boot

Published: 28. January 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: 23. January 2019  •  java

In this blog post, we will take a closer look at the new HTTP Client introduced in Java 11.

Getting started with jOOQ, Flyway, and Spring Boot

Published: 31. January 2019  •  java, spring

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

JavaScript BigInt and JSON

Published: 4. January 2019  •  javascript, java

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

Spring Boot with TLS and HTTP/2 on localhost

Published: 9. January 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.

Directory watching with Java

Published: 1. February 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

Stateless Authentication with Spring Security

Published: 15. May 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

Password auto-login with the Credential Management API

Published: 13. June 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: 12. June 2019  •  java, spring, javascript

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

Spring Security second-factor authentication with TOTP

Published: 21. June 2019  •  Updated: 5. April 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

Reliable file uploads over HTTP with tus.io

Published: 11. June 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.

Uploading pictures from Capacitor app to Spring Boot

Published: 11. June 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.

Variable length integers

Published: 18. June 2019  •  java

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

Catch-all SMTP servers for development and testing

Published: 9. August 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.

Entity auditing with Hibernate Envers

Published: 5. August 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: 4. August 2019  •  java

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

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

Published: 29. August 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.

Rate limiting Spring MVC endpoints with bucket4j

Published: 7. August 2019  •  java, spring

How to rate limit Spring MVC HTTP endpoints with bucket4j

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

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

In this blog post, we will build a password-less authentication system with the FIDO2 WebAuthn standard. I will 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: 13. August 2019  •  java, javascript

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

Translation chat app with Cettia and Google Cloud Translation

Published: 24. April 2020  •  Updated: 20. May 2021  •  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.

Push Notifications with Capacitor and Java

Published: 3. April 2020  •  Updated: 20. June 2021  •  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

JavaScript / Java chat application with Cettia

Published: 23. April 2020  •  Updated: 20. May 2021  •  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: 4. April 2020  •  Updated: 20. May 2021  •  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.

Migration from Nashorn to GraalVM JavaScript

Published: 1. April 2020  •  Updated: 21. May 2021  •  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

Building encrypted chat app with the Web Cryptography API

Published: 3. May 2020  •  Updated: 20. May 2021  •  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.

Deploy Angular and Spring Boot application to Google Cloud

Published: 5. May 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

Present photos on Google Maps

Published: 2. May 2020  •  Updated: 31. October 2021  •  javascript, java

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

Gitblog - the software that powers my blog

Published: 7. May 2020  •  java, selfhost

Taking a closer look at the software that runs my blog

Add CAPTCHA to your site with hCaptcha

Published: 1. May 2020  •  Updated: 20. May 2021  •  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.

Small changes in Java 9 to 21

Published: 12. May 2020  •  Updated: 20. September 2023  •  java

A summary of interesting small changes in the Java standard library and the language in Java 9 to 21.

Upgrade password hashes with Spring Security

Published: 4. May 2020  •  Updated: 21. May 2021  •  java, spring

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

Java application as Windows Service

Published: 6. May 2020  •  java

How to install any Java application as Windows service with WinSW

Java Switch Expression in Java 14

Published: 20. November 2021  •  java

An overview of the new switch introduced in Java 14

Access Amazon S3 objects with SQL SELECT

Published: 22. January 2022  •  go, java, aws

In this blog post, I take a look at S3 Select, a service that enables an application to access Amazon S3 objects with SQL SELECT. Code examples in Java and Go

Sending Protocol Buffers messages over SQS

Published: 15. January 2022  •  go, java, aws

In this blog post, I show you how to send and receive Protocol Buffers messages over Amazon Simple Queue Service (SQS). The examples of producers (send) and consumers (receive) are written in Java and Go.

Push notifications with Angular and Java

Published: 6. August 2023  •  angular, java

In this blog post, I show you how to implement a web application with Angular that receives push notifications and a back end with Java that sends push messages. It uses the standard Push API supported by all major browsers.