Blink a LED on a Raspberry Pi With Vaadin

As I'm becoming a senior developer in terms of age, I've transitioned from one language to another. One of my main interests has always been clean, easy-to-understand UIs (User Interface). That journey started for me with Director (to create multimedia CD-ROMs), Flash website animation, and Flex Rich Internet Applications (= "Flash on steroids"). When I started developing with Java over 10 years ago, we had some projects with the early versions of Vaadin and JavaFX. As I went on with serverside applications, I only continued with JavaFX for some personal and side projects and loved the way you can create a UI both with XML (FXML actually) and code, exactly the same approach I loved with Flex. Since then, my love for Java and JavaFX only grew and it's still my major programming environment.

But JavaFX has one missing piece: running it in the browser... Yes, JPRO can do this, but it needs a license and a dedicated server. And yes, there are some projects ongoing to bring JavaFX fully to the browser, but they are ongoing and not mature yet... Let's look at another approach: Vaadin Flow and run it on a Raspberry Pi to control a LED and show the state of a button.

Improving Backend Performance, Part 3/3: Fast Analytics

Analytics involves the computation of data to find patterns. From simple calculations - such as the sum of values or its average to statistics calculated with machine learning algorithms, analytics frequently deals with big amounts of data that need to be processed as fast as possible.

We saw in the previous part of this series of articles, how indexes help to improve the speed of database operations. And in all honesty, the problem in the laboratory application shown in this article can be solved by merely adding an index. However, in real-world applications with many tables that have a lot of columns, dealing with indexes can become difficult. In this article, I explore one interesting technology that helps with analytic SQL queries: ColumnStore using Spring Boot and Vaadin Flow.

Improving Backend Performance Part 2/3: Using Database Indexes

Database indexes are a concern of the developers. They have the potential to improve the performance of search and filter features that use an SQL query in the backend. In the second part of this series of articles, I'll show the impact that a database index has in speeding up filters using a Java web application developed with Spring Boot and Vaadin.

Read part 1 of this series if you want to learn how the example application that we'll use here works. You can find the code on GitHub. Also, and if you prefer, I recorded a video version of this article:

Realistic Test Data Generation for Java Apps

The closer your test or demo data is to the real world the better you can test the application for UX, improve, and catch corner cases during development. In this article, I'll show you how to use Vaadin's example data generator to create demo data for a simple SQL database. The article shows how to build a complete app combining Spring Boot, JPA, Project Lombok, Vaadin, and MariaDB.

You can also watch a video version of this article:

Packaging and Deploying Spring Boot Applications as WAR Files

Introduction

This guide explains how to do the following:

Packaging a Maven-Based Spring Boot Application as a WAR File

To change the packaging in a Maven-based Spring Boot application that was generated using the Spring Initializr or Vaadin Start tools, make the following changes in the pom.xml file:

Data Providers, Java to JavaScript Integration, and The Future of Vaadin Flow

Vaadin Dev Day is an event that provides in-depth technical topics and insights to the Vaadin community. In the latest edition of the event, we learned about data providers for high-performance data access, advanced JavaScript and TypeScript integrations, and the future of Vaadin Flow. Here's a recap of the event.

High-Performance Data Access With Vaadin

In this talk, Simon Martinelli explains how to efficiently connect Vaadin Flow applications to databases using JPA and the DataProvider implementations that are available in the framework.

Implementing Authentication and Authorization With Vaadin

This article shows how to implement authentication and authorization in Spring Boot Vaadin Flow applications without using Spring Security.

Why Without Spring Security?

Spring Security is a powerful framework designed for web applications based on the request/response paradigm. Vaadin hides this paradigm so you can focus on the application and UI logic without having to deeply understand the underlying web technologies. Although it's possible to use Spring Security with Vaadin, doing so requires more work than the approach shown in this article.

A Quick How-To Guide: Security with Spring Boot and Vaadin Fusion

When you build a web application, you’re working with many moving parts and pieces. Your frontend app is running business logic, the backend server deals with API calls, and it’s your job to make sure they’re secure and in sync. 

This article will teach you how to utilize Okta, Spring Boot, and Vaadin Fusion to create a full-stack web application with authentication. Specifically, this will involve: 

Understanding Inversion of Control and Dependency Injection

There are two key concepts that you must understand when you start with Spring or JakartaEE/CDI–inversion of control and dependency injection.

In brief, inversion of control means letting a framework take control of the execution flow of your program to do things like create instances of your classes and inject the required dependencies.

How to Connect a MySQL Database to a Vaadin Application (Part 2)

This tutorial focuses on how to wire your web application to a MySQL database so you can Create, Read, Update, and Delete (CRUD) information in a database via a Vaadin web application. The idea is to show you how to connect a template project downloaded from https://start.vaadin.com to a database so you can replicate it to your own needs. This is not about best practices (for Vaadin, Spring, or MySQL) but to help you get started fast.

You can find the code used in this tutorial from GitHub.

How to Connect a MySQL Database to a Vaadin Application (Part 1)

This tutorial focuses on how to wire your web application to a MySQL database so you can Create, Read, Update, and Delete (CRUD) information in a database via a Vaadin web application. The idea is to show you how to connect a template project downloaded from https://start.vaadin.com to a database so you can replicate it to your own needs. This is not about best practices (for Vaadin, Spring, or MySQL) but about helping you get started fast.

You can find the code used in this tutorial from GitHub.

Building Mancala Game in Microservices Using Spring Boot (Part 1: Solution Architecture)

Make a Mancala game like this! 


Nowadays with the popularity of Microservices, when we talk about scalable application development, we inevitably think of composing the application into highly decoupled microservices which can be scaled up independently according to the customers' needs and yet can be managed through various available industry-standard tools such as Docker-compose, Kubernetes, Istio, Linkerd, etc.