Consume Protocol Buffer messages with Ionic
Published: 14. January 2017 • Updated: 1. December 2018 • ionic, spring, java, javascript
Published: 14. January 2017 • Updated: 1. December 2018 • ionic, spring, java, javascript
Published: 26. January 2017 • Updated: 4. December 2018 • angular, ionic, spring, java, javascript
Example of form validation in an Ionic Angular application. How to create custom synchronous and asynchronous validators and how to validate data on the server with the Jakarta Bean Validation framework.
Published: 24. January 2017 • Updated: 17. March 2026 • spring, java
How to create RSS and Atom feeds with the Spring Framework and the ROME library
Published: 8. January 2017 • Updated: 17. March 2026 • java, spring
An introduction to Protocol Buffers, a binary data format developed by Google, and how to use it with Spring Integration
Published: 5. February 2017 • Updated: 17. March 2026 • ionic, spring, java, javascript
How to implement a JWT authentication system with Ionic/Angular and Spring Boot.
Published: 5. March 2017 • Updated: 17. March 2026 • java, spring
What are Server-Sent Events and how can you send them from a Spring Boot application
Published: 16. September 2017 • Updated: 25. October 2017 • java
How to create a simple MultiValueMap with Java 8
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
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.
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.
Published: 18. December 2017 • Updated: 17. March 2026 • ionic, javascript, java, spring
In this blog post I present two different ways to integrate speech recognition functionality into an Ionic app: the Web Speech API and RecordRTC together with the Google Cloud Speech API.
Published: 9. January 2018 • Updated: 21. March 2026 • java, javascript, pwa, spring
This blog post shows how to send browser push messages from a Spring Boot application with Firebase Cloud Messaging. The client uses a service worker, IndexedDB, and the current FCM token flow for web apps.
Published: 26. February 2018 • java
How to consume Server-Sent Events in a Java application.
Published: 27. February 2018 • java, javascript
Writing human-readable regular expressions with the VerbalExpressions library
Published: 28. February 2018 • Updated: 22. March 2026 • java, javascript
Build a simple polling application with Spring Boot, Vite, JavaScript, and server-sent events, and update the results live in an ECharts pie chart.
Published: 4. February 2018 • Updated: 21. March 2026 • mongodb, java, database
A practical overview of capped collections in MongoDB and how to use them from Java
Published: 5. February 2018 • Updated: 21. March 2026 • database, mongodb, java
A practical introduction to TTL indexes in MongoDB and how to use them from Java
Published: 1. March 2018 • Updated: 21. March 2026 • java
In this blog post, we're going to build Java applications that download, import, and search the "Have I Been Pwned?" password corpus locally.
Published: 3. May 2018 • Updated: 21. March 2026 • java, javascript
In this blog post, I present examples that check passwords against commonly used and compromised password datasets.
Published: 1. May 2018 • java
How a Java server application can authenticate with a Google service account and call a Google API
Published: 26. June 2018 • pwa, javascript, java, spring, ionic
This blog post takes a closer look at the Background Sync API, shows how to use it as a progressive enhancement, and presents an example that synchronizes data between an Ionic web application and a Spring Boot server application.
Published: 4. October 2018 • java, javascript
Converting text from a web application into speech with Google Cloud Text-to-Speech
Published: 11. December 2018 • java, spring, ionic, javascript
This post shows how to upload images from an Ionic web application directly to Google Cloud Storage with V4 signed URLs and analyze them with Google Cloud Vision from a Spring Boot back end.
Published: 23. December 2018 • java, javascript
Building a simple feedforward neural network in Java and JavaScript, training it with MNIST, and using the exported weights for browser-based digit recognition
Published: 23. January 2019 • java
In this blog post, we will take a closer look at the new HTTP Client introduced in Java 11.
Published: 31. January 2019 • java, spring
In this blog post, we are going to set up a Spring Boot application with jOOQ and Flyway
Published: 4. January 2019 • javascript, java
How to serialize and deserialize JavaScript BigInt values in JSON in a full-stack application with Spring Boot
Published: 9. January 2019 • java
In this blog post, we 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 also learn how to configure Charles, an HTTP proxy, to trust this private root CA.
Published: 1. February 2019 • java
In this blog post, we take a look at Java's ability to monitor directories for changes, a feature that was introduced in Java 7 in 2011.
Published: 15. May 2019 • java, spring, ionic
This post implements a stateless authentication system with Spring Security, Spring Boot, and an Angular/Ionic client
Published: 13. June 2019 • java, javascript, spring, ionic
How to create a frictionless password auto-login experience with the Credential Management API.
Published: 12. June 2019 • java, spring, javascript
How to expose version numbers, build timestamps, and Git metadata in Spring Boot and Angular applications
Published: 21. June 2019 • Updated: 5. April 2020 • java, spring
In this blog post, you learn how to build an authentication system with Spring Security that uses username/password and TOTP (Time-based One-Time Password) as a second factor
Published: 11. June 2019 • Updated: 19. March 2026 • java, javascript, spring, ionic
How to integrate tus.io implementations into JavaScript and Java applications to create reliable and resumable file uploads over HTTP.
Published: 11. June 2019 • Updated: 19. March 2026 • 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.
Published: 18. June 2019 • java
How to encode fixed 4-byte Java integers into a variable-length format that uses less space.
Published: 9. August 2019 • java
How to use catch-all SMTP servers for development and testing email delivery. In this blog post, we look at 5 different catch-all SMTP servers and a JUnit 5 example with an embedded catch-all SMTP server.
Published: 5. August 2019 • java
Hibernate Envers adds audit history to Jakarta Persistence entities and lets you query historical revisions with a small amount of code.
Published: 4. August 2019 • java
In this blog post, we take a look at JGit, a pure Java implementation of Git.
Published: 29. August 2019 • java
In this blog post, we are going to take a look at the JSON-P (JSR 374) standard for processing JSON in Java.
Published: 7. August 2019 • Updated: 20. March 2026 • java, spring
How to rate limit Spring MVC HTTP endpoints with bucket4j
Published: 25. August 2019 • Updated: 20. March 2026 • javascript, java, spring, ionic
In this blog post, we build a passwordless sign-in flow with WebAuthn, an Ionic / Angular front end, and a Spring Boot back end secured with Spring Security.
Published: 13. August 2019 • java, javascript
Sending Web Push notifications from a Java back end to a web browser
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.
Published: 4. April 2020 • Updated: 20. May 2021 • javascript, java
In this blog post, we are going to take a look at how to send Protocol Buffers messages from an Angular app to a Spring Boot backend.
Published: 2. May 2020 • Updated: 15. March 2026 • javascript, java
In this tutorial, I show you how to develop a web application that presents your holiday photos on Google Maps.
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.
Published: 12. May 2020 • Updated: 31. August 2025 • java
A summary of interesting small changes in the Java standard library and the language in Java 12 to 17.
Published: 12. May 2020 • Updated: 31. August 2025 • java
A summary of interesting small changes in the Java standard library and the language in Java 18 to 21.
Published: 12. May 2020 • Updated: 31. August 2025 • java
A summary of interesting small changes in the Java standard library and the language in Java 9 to 11.
Published: 4. May 2020 • Updated: 21. May 2021 • java, spring
A closer look at Spring Security's support for upgrading password hashes
Published: 6. May 2020 • java
How to install any Java application as a Windows service with WinSW
Published: 20. November 2021 • java
An overview of the switch enhancements introduced in Java 14.
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.
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.
Published: 29. January 2025 • java, spring, llm
A look at Spring AI's support for Tool/Function calling. How to write your own tools and integrate them into your Spring AI application.
Published: 21. July 2025 • java
In this blog post, I will show you how to integrate JaVers into a jOOQ/Spring Boot application for auditing of object changes.
Published: 30. July 2025 • java, mongodb
How to use MongoDB schema validation in Java applications to ensure data integrity and consistency.
Published: 16. July 2025 • java, spring
How to use ShedLock to prevent concurrent execution of scheduled methods in a Spring Boot application.
Published: 28. July 2025 • java, spring
This post takes a look at the caching support in Spring Boot, including setup, pitfalls, key generation, and advanced configuration options.
Published: 29. July 2025 • java
Xodus is a high-performance, embedded database developed by JetBrains. In this blog post we will explore the key features of Xodus and how to use them in Java.
Published: 2. August 2025 • java
In this blog post, I will introduce you to Methanol, a library that extends the standard Java HTTP client to make it more convenient to use. Methanol also introduces new features like caching and interceptors.
Published: 6. August 2025 • java, go
This article provides an overview of the MQTT protocol, its basic features, and how to use it in Go and Java applications. It covers topics such as publish/subscribe model, message payloads, topics, quality of service (QoS), retained messages, persistent sessions, and more.
Published: 13. August 2025 • java, spring
Implementing Mutual TLS (mTLS) with Spring Boot and Spring Security for secure client-server communication.
Published: 10. September 2025 • java
A summary of interesting small changes in the Java standard library and the language in Java 22 to 25.
Published: 10. September 2025 • java
A look at JSON-B (JSR 367), the Java API for JSON Binding, which provides a standard way to convert Java objects to and from JSON.
Published: 10. September 2025 • java
Implementing different JSON views with Jackson's @JsonView annotation in Java.
Published: 9. March 2026 • java
Introduction to the Java Class-File API, an API introduced in JDK 24 that provides a standard way to parse, generate, and transform Java class files.
Published: 17. March 2026 • java
A summary of interesting small changes in Java 26.
Published: 6. March 2026 • java, spring
Spring Expression Language (SpEL) is an expression language from the Spring ecosystem that can be used in any Java application. In this article, we will explore the features of SpEL and how to use it as a base for a simple rule engine.
Published: 6. March 2026 • java, spring
Learn how to integrate gRPC into a Spring Boot application using the Spring gRPC project.
Published: 5. March 2026 • java
An introduction to Stream Gatherers introduced in Java 24, which allow you to write custom intermediate operations in the Stream API with state and complex logic.
Published: 7. April 2026 • llm, java
Code mode is a way to use tools that can save context tokens and reduce the number of request/response cycles by incorporating a tool search and letting the model write code that orchestrates tool calls. This blog post explores the code mode pattern and shows how to implement it in Java.
Published: 16. April 2026 • java, spring
In this blog post, we are going to look at a complete BFF (Backend-for-Frontend) implementation with Spring Security that uses the OAuth 2.0 authorization code flow with PKCE to log users in, maintain a server-side session, and serve protected data.