DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Core Badge
Avatar

Alejandro Duarte

DZone Core CORE

Developer Relations Engineer at MariaDB

Turku, FI

Joined May 2014

https://www.programmingbrain.com

About

Alejandro Duarte is a Software Engineer, published author, Developer Relations Engineer at MariaDB, and consultant in software development. Alejandro has been programming computers since the mid-90s. Starting with BASIC, Alejandro transitioned to C, C++, and Java during his academic years at the National University of Colombia. He relocated first to the UK and then to Finland to foster his involvement in the open-source industry. Alejandro is a recognized figure in Java and MariaDB circles, with articles, videos, and presentations that amass millions of views. You can contact him through his personal blog at programmingbrain dot com or on most of the popular social media networks such as LinkedIn, X, Bluesky, and others.

Stats

Reputation: 3928
Pageviews: 1.9M
Articles: 52
Comments: 38

Expertise

IoT Expertise Icon

IoT

  • Articles
  • Refcards
  • Comments

Articles

article thumbnail
Vector Storage, Indexing, and Search With MariaDB
Since MariaDB 11.7, you can store vectors for generative AI applications in a single database. Learn more about these new features.
January 28, 2025
· 44,123 Views · 5 Likes
article thumbnail
Packages for Store Routines in MariaDB 11.4
Package support has landed in MariaDB version 11.4. Learn what are they useful for and how to use them to improve your database code.
July 4, 2024
· 34,606 Views · 2 Likes
article thumbnail
High Availability and Resiliency in Databases With MaxScale
In this article, learn about high availability and resiliency in databases (MariaDB) with a practical demo run through Docker Compose.
April 5, 2024
· 44,810 Views · 3 Likes
article thumbnail
Why Do We Need Databases and SQL?
To beginners in the software industry, it can be blurry to see the actual need for relational databases and SQL. Let's fix that.
March 8, 2024
· 99,477 Views · 5 Likes
article thumbnail
Fast Analytics With MariaDB ColumnStore
Start your analytics journey with the open-source MariaDB relational database and the ColumnStore storage engine on Docker.
January 19, 2024
· 67,056 Views · 2 Likes
article thumbnail
Leveraging "INSERT INTO ... RETURNING": Practical Scenarios
This article presents innovative uses of MariaDB's "INSERT INTO ... RETURNING" SQL statement with real-life use cases and code examples.
November 24, 2023
· 22,867 Views · 4 Likes
article thumbnail
Mixing SQL and NoSQL With MariaDB and MongoDB
This article explores the compatibility of MariaDB and MongoDB for combining SQL and NoSQL databases.
July 27, 2023
· 51,038 Views · 3 Likes
article thumbnail
Orange Pi Cluster With Docker Swarm and MariaDB
In this article, I’ll show you how to build a (surprisingly cheap) 4-node cluster packed with 16 cores and 4GB RAM to deploy a MariaDB replicated topology.
May 1, 2023
· 24,566 Views · 7 Likes
article thumbnail
Using the PostgreSQL Pager With MariaDB Xpand
Learn how to use the pspg pager with MariaDB databases to visualize and interact with data in an effective way when performing DevOps tasks.
January 18, 2023
· 16,701 Views · 4 Likes
article thumbnail
Distributed SQL: An Alternative to Database Sharding
Distributed SQL databases are designed from the ground up to scale almost linearly. In this article, learn the basics of distributed SQL and how to get started.
January 3, 2023
· 36,484 Views · 8 Likes
article thumbnail
Building a 24-Core Docker Swarm Cluster on Banana Pi Zero
One alternative to the Raspberry Pi is the Banana Pi M2 Zero. In this tutorial, take on the challenge of creating a cheap cluster using Banana Pi devices.
December 14, 2022
· 52,812 Views · 7 Likes
article thumbnail
Learn Database Read/Write Splitting Using Your Browser
Explore this tutorial to see how a database proxy like MariaDB MaxScale serves as a transparent read/write splitter for your SQL queries.
October 14, 2022
· 56,323 Views · 11 Likes
article thumbnail
Getting Started With Vaadin in Spring and Java EE
If you're thinking of using Vaadin for your UI components, here are some resources, including two videos, to see how you can incorporate it into both Spring and Java EE.
Updated July 14, 2022
· 13,247 Views · 9 Likes
article thumbnail
Introduction to Data Replication With MariaDB Using Docker Containers
Send in the clones: that’s what we do when we replicate databases. In this article, you’ll learn how to perform the most basic form of replication with MariaDB.
July 14, 2022
· 47,805 Views · 4 Likes
article thumbnail
9 Useful Interactive CLI Tools for Linux
Looking to gain confidence with Linux? Here, learn about 9 text-based user interface interactive tools that can help you get comfortable with the Linux CLI.
July 11, 2022
· 61,010 Views · 5 Likes
article thumbnail
Building a 32-Core Raspberry Pi Cluster From Scratch
For some time, the idea of building a Raspberry Pi cluster has been in the back of my head. In this article, I’ll show you how to build one from scratch.
Updated June 2, 2022
· 76,050 Views · 10 Likes
article thumbnail
Setting Up a Dedicated Database Server on Raspberry Pi
Learn how to install and set up a MariaDB server on a Raspberry Pi 4 Model B with 8 GB of RAM that you can connect to your local network through WiFi or Ethernet.
May 31, 2022
· 51,640 Views · 5 Likes
article thumbnail
Your Old Laptop Is Your New Database Server
Learn how to take advantage of that old laptop by installing Ubuntu Server, Docker, and MariaDB with all the configurations needed to have it always available.
May 5, 2022
· 85,868 Views · 14 Likes
article thumbnail
How to Configure VS Code for Java
Take a step-by-step look at the extensions and configurations that I use with my new favorite highly customizable and fast IDE, Visual Studio Code (VS Code).
April 19, 2022
· 35,993 Views · 8 Likes
article thumbnail
Getting Started With JPA/Hibernate
This article will get you started with the Hibernate implementation of JPA. We will use only standard features and cover the basics to provide an overview.
January 29, 2022
· 48,293 Views · 7 Likes
article thumbnail
JDBC Tutorial Part 3: Using Database Connection Pools
In Part 3 of this tutorial series covering the basics of JDBC, learn what a database connection pool is and how to use it.
January 13, 2022
· 39,442 Views · 8 Likes
article thumbnail
JDBC Tutorial Part 2: Running SQL Queries
In Part 2 of this tutorial series covering the basics of JDBC, learn how to execute SELECT, INSERT, UPDATE, and DELETE statements against an SQL database.
Updated January 11, 2022
· 36,285 Views · 8 Likes
article thumbnail
JDBC Tutorial Part 1: Connecting to a Database
In this series, learn the basics of Java Database Connectivity. In Part 1, learn what a JDBC driver is and how to open and safely close database connections.
Updated January 6, 2022
· 36,528 Views · 8 Likes
article thumbnail
How to Check if a Java Project Depends on A Vulnerable Version of Log4j
If your application uses Log4j from version 2.0-alpha1 to 2.14.1, you should update to the latest version (2.16.0 at the time of writing this) as soon as possible.
December 20, 2021
· 12,703 Views · 6 Likes
article thumbnail
Improving Backend Performance Part 2/3: Using Database Indexes
Part two of this series looks at the impact that a database index has in speeding up filters using a Java web application developed with Spring Boot and Vaadin.
October 21, 2021
· 24,046 Views · 5 Likes
article thumbnail
Improving Backend Performance Part 1/3: Lazy Loading in Vaadin Apps
In this article, I'll show you how easy it is to take advantage of Spring Boot data to easily implement lazy loading in Vaadin Flow applications.
October 12, 2021
· 6,899 Views · 7 Likes
article thumbnail
Realistic Test Data Generation for Java Apps
Might as well make it real.
Updated October 10, 2021
· 21,194 Views · 6 Likes
article thumbnail
Testing MariaDB ColumnStore Performance
Let's make sure everything is up to snuff.
September 29, 2021
· 20,544 Views · 5 Likes
article thumbnail
Learn How To Implement Web GUIs in Java
There's no need to use JavaScript and HTML to build web UIs if you know Java
September 6, 2021
· 23,135 Views · 5 Likes
article thumbnail
Packaging and Deploying Spring Boot Applications as WAR Files
This article is a tutorial on how to package and deploy Spring Boot applications as WAR files. Read on below to find out more.
September 2, 2021
· 9,064 Views · 8 Likes

Refcards

Refcard #085

Getting Started With Vaadin 10

Getting Started With Vaadin 10

Comments

MariaDB Vector Edition: Designed for AI

Feb 14, 2025 · Vamsi Kavuri

The syntax is indeed outdated. This article shows the correct syntax. Keep in mind that you need MariaDB 11.7 or later for this to work.

Vector Storage, Indexing, and Search With MariaDB

Feb 04, 2025 · Alejandro Duarte

You generate them in the same way you generate the ones you store in MariaDB—using an embedder. Check this out: https://www.youtube.com/watch?v=lhpmjl3UQuM

High Availability and Resiliency in Databases With MaxScale

Apr 12, 2024 · Alejandro Duarte

I could have mentioned it in the article, but MaxScale can be replicated. It automatically syncs its configuration: https://www.youtube.com/watch?v=snLntgYlevE

Why Do We Need Databases and SQL?

Mar 13, 2024 · Alejandro Duarte

This is an adaptation from Chapter 4 of my upcoming book "MariaDB for Developers". Check it out: https://mariadbfordevelopers.com/

Databases Scaling Strategies

Jul 17, 2023 · Jailson Evora

Good article. I would add Distributed SQL (for example MariaDB Xpand) to the strategies. It's a bit like sharding, but fully automated and prevents hotspots among other things.

Setting Up a Dedicated Database Server on Raspberry Pi

Feb 27, 2023 · Alejandro Duarte

Here's another tip. To disable swap until the next boot:

sudo /sbin/dphys-swapfile swapoff

To disable swap on boot:

sudo systemctl disable dphys-swapfile
Distributed SQL: An Alternative to Database Sharding

Jan 05, 2023 · Alejandro Duarte

Keep in mind that if you use an emulated virtual machine, the performance of the database (like any other software running on the emulated machine) drastically degrades. It will be slow. However, Xpand is fast when running non-emulated environments. The emulated virtual machine is just a way to quickly try Xpand on ARM computers and check that your application can connect to it. Move to SkySQL to get a much more performant Xpand database up and running in the cloud.

Modern Enterprise Data Architecture

Oct 16, 2022 · marcytillman25

Great article! I was wondering, where and how do you see Distributed SQL in the picture?

Getting Started With Vaadin in Spring and Java EE

Jul 25, 2022 · Alejandro Duarte

Agree. And they released 2 new themes: https://vaadin.com/blog/meet-breeze-and-carbon-the-two-new-theme-add-ons-available-in-directory

Setting Up a Dedicated Database Server on Raspberry Pi

Jun 02, 2022 · Alejandro Duarte

For those interested, I wrote an article on how to build a Raspberry Pi cluster with 8 nodes, 24 cores, 64 GB of RAM, and 2TB of storage: https://dzone.com/articles/building-a-24-core-raspberry-pi-cluster-from-scrat

Building a 32-Core Raspberry Pi Cluster From Scratch

May 31, 2022 · Alejandro Duarte

I created a GitHub repository with Ansible playbooks to configure and manage a cluster like this. Check it out: https://github.com/alejandro-du/raspberry-pi-cluster-ansible-playbooks

Your Old Laptop Is Your New Database Server

May 30, 2022 · Alejandro Duarte

To run this automatically when the machine boots, you can use crontab:

sudo crontab -e

And then add:

@reboot iw wlp3s0 set power_save off
Your Old Laptop Is Your New Database Server

May 30, 2022 · Alejandro Duarte

One more finding. SSH connections were painfully slow. I fixed this by disabling the WiFi power-saving feature as follows:

sudo apt install iw

sudo iw wlp3s0 set power_save off

Your Old Laptop Is Your New Database Server

May 20, 2022 · Alejandro Duarte

I just discovered that you can install avahi-daemon to make the computer visible by its hostname without having to configure a static IP address if you prefer. This also makes the hostname visible to all other devices in the network without having to add an entry to each /etc/hosts file. Simply run the following in the server:

sudo apt-get install avahi-daemon

Your Old Laptop Is Your New Database Server

May 13, 2022 · Alejandro Duarte

Thanks for your feedback!

Learn How To Implement Web GUIs in Java

Sep 09, 2021 · Alejandro Duarte

Definitively try it out and let us know how it goes!

Visually Designing Views for Java Web Apps

Sep 09, 2021 · Alejandro Duarte

Hi, no, it's not. It has official integrations for Spring Boot and Jakarta EE but they are optional.

Implementing a Web Chat With AI in Java

Aug 31, 2021 · Alejandro Duarte

Simple: new Html("your <b>html</b> here");

Implementing a Web Chat With AI in Java

Aug 31, 2021 · Alejandro Duarte

Try https://vaadin.com/api/platform/14.6.8/com/vaadin/flow/component/Html.html

Implementing a Web Chat With AI in Java

Aug 26, 2021 · Alejandro Duarte

You will have to implement/use a UI component that is able to how HTML in the chat layout.

Implementing a Web Chat With AI in Java

Jul 16, 2021 · Alejandro Duarte

Glad to hear! Would you like to contribute the fix to the original repo? Make a PR and I'll merge it if you want.

Implementing a Web Chat With AI in Java

Jul 15, 2021 · Alejandro Duarte

Ok, so it's Maven's HTTP blocker. See this SO thread for workarounds: https://stackoverflow.com/questions/66980047/maven-build-failure-dependencyresolutionexception

Implementing a Web Chat With AI in Java

Jul 15, 2021 · Alejandro Duarte

What's the error message? (You didn't copy/paste the actual error message)

Implementing a Web Chat With AI in Java

Jul 15, 2021 · Alejandro Duarte

Try compiling the project at https://github.com/alejandro-du/vaadin-ai-chat to see if you get the same errors. If, so, there might be a problem with your local Maven repository so you can try deleting it. If not, there must be a problem with your project configuration.

Implementing a Web Chat With AI in Java

Jul 15, 2021 · Alejandro Duarte

Try adding the maven-compiler-plugin to the pom.xml file. You'll find plenty of examples online.

Implementing User Sign Up in Vaadin Flow Applications (Simple)

Jun 01, 2021 · Alejandro Duarte

AuthorizedRoute is defined as a Java record in line 4 of AuthService. You need Java 14 or later to use Java records. https://openjdk.java.net/jeps/395

Implementing a Web Chat With AI in Java

Sep 26, 2020 · Alejandro Duarte

The article is fixed now.

Implementing a Web Chat With AI in Java

Sep 21, 2020 · Alejandro Duarte

Hi, yeah sorry about that. You can ignore steps 3, 4, and 5 in the Defining the Bean to Access the Bot Logic section. They are not needed. For some reason, I made a mistake while uploading the article, I guess, because I have another article on the same topic (https://vaadin.com/blog/building-a-chatbot-in-java). Cheers.

Implementing a Web Chat With AI in Java

May 28, 2020 · Alejandro Duarte

Sure. Can you share the stack trace?

How to Build a Coronavirus Dashboard in Java

May 07, 2020 · Alejandro Duarte

Good catch! Yes, copy/paste with Cmd+D in IntelliJ Idea. I'll fix it. Thanks for reporting and for the feedback!

Microservices: Externalized Configuration

May 17, 2018 · Alejandro Duarte

Well, if you use "environment variables" you have an externalized configuration, which is indeed an alternative to using Spring Cloud Config. Since I'm using Spring Cloud + Netflix OSS in this series of articles, it makes sense to use Spring's offer since it has many out-of-the-box features: Version controlled configuration, dynamic configuration (maximizing availability since there are less instance deploys/restarts), and automatic propagation (particularly useful in containerized environments with unknown number of underlying hardware nodes).

Microservices: Externalized Configuration

May 16, 2018 · Alejandro Duarte

Yes, automated deployment is a must when you have that many instances running. Moreover, instances might be started and stopped automatically according to some load balancing strategy in an elastic way. A key advantage of having a centralized configuration cluster is that the applications don't need to be redeployed. Why not just redeploying all the instances when a change in the configuration is required? Well, that basically breaks one of the principles of microservices (actually, of a twelve-factor app): Build once and deploy it in any environment (in other words, have one-time builds and move the binaries across environments). Another advantage of using Spring Cloud Config is that the configuration can be version-controlled.

Microservices: Externalized Configuration

May 16, 2018 · Alejandro Duarte

You can use Spring Cloud Bus to propagate configuration changes without even having to know how many instances are running or where these instances are.

Implementing “Remember Me” in Plain Java With Vaadin 8

May 02, 2018 · Alejandro Duarte

Does it work with other browsers?

Implementing “Remember Me” in Plain Java With Vaadin 8

May 02, 2018 · Alejandro Duarte

I'm afraid not. This is specific to Vaadin Framework.

Building a Web UI for MySQL Databases in Plain Java

May 15, 2017 · Alejandro Duarte

I'm afraid it's not available. But the code is:

https://github.com/alejandro-du/mysql-jdbc-vaadin/tree/58262db8fbe2c7ea8667c8ec4cdad97ccbd87b0a

Building a Web UI for MySQL Databases in Plain Java

May 15, 2017 · Alejandro Duarte

That would be a good idea indeed. Meanwhile, here there are two interesting readings about it:

https://vaadin.com/blog/-/blogs/filter-based-spring-security-in-vaadin-applications

https://vaadin.com/blog/-/blogs/a-hybrid-approach-to-spring-security-in-vaadin-applications

Building a Web UI for MySQL Databases in Plain Java

May 15, 2017 · Alejandro Duarte

You guys have some good points. Thanks. To clarify, I meant: Program with only the Java Programming Language and get an HTML5 web interface to show data in a MySQL instance without having to use HTML, CSS, and without coding JavaScript, TypeScript, or any other programming language for the browser. In contrast to formal papers, characters in blog titles are scarce ;)

Having said so, the term Plain Old Java Object does indeed include having no classpath "interference".

User has been successfully modified

Failed to modify user

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • [email protected]

Let's be friends: