<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Flow on Sven Ruppert</title><link>https://sven-ruppert.info/tags/flow/</link><description>Recent content in Flow on Sven Ruppert</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>sven.ruppert@gmail.com (Sven Ruppert)</managingEditor><webMaster>sven.ruppert@gmail.com (Sven Ruppert)</webMaster><copyright>© 2026 Sven Ruppert</copyright><lastBuildDate>Tue, 19 Aug 2025 13:09:52 +0000</lastBuildDate><atom:link href="https://sven-ruppert.info/tags/flow/index.xml" rel="self" type="application/rss+xml"/><item><title>What makes Vaadin components special?</title><link>https://sven-ruppert.info/posts/what-makes-vaadin-components-special/</link><pubDate>Tue, 19 Aug 2025 13:09:52 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/what-makes-vaadin-components-special/</guid><description>&lt;p&gt;From my experience, Vaadin has always stood out from other Java frameworks. Of course, it enables the creation of modern web UIs, but the real difference lies in its &lt;strong&gt;component architecture&lt;/strong&gt;. This is not conceived as a short-term aid, but is consistently designed for maintainability and flexibility. It creates the possibility of running applications stably for many years while still being able to extend them step by step.&lt;/p&gt;</description></item><item><title>Part III - WebUI with Vaadin Flow for the URL Shortener</title><link>https://sven-ruppert.info/posts/part-iii-webui-with-vaadin-flow-for-the-url-shortener/</link><pubDate>Fri, 15 Aug 2025 10:46:10 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/part-iii-webui-with-vaadin-flow-for-the-url-shortener/</guid><description>&lt;h3 class="relative group"&gt;1. Introduction and objectives
 &lt;div id="1-introduction-and-objectives" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-introduction-and-objectives" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;The first two parts of this series established the theoretical and practical foundations of a URL shortener in pure Java. We discussed the semantic classification of short URLs, the architecture of a robust mapping system, and the implementation of a REST-based service based on the JDK HTTP server. These efforts resulted in a functional, modularly extensible backend that creates, manages, and efficiently resolves short links. However, a crucial component was missing-a visual interface for direct user interaction with the system. This interface is essential for tasks such as manual link creation, viewing existing mappings, and analysing individual redirects.&lt;/p&gt;</description></item><item><title>If hashCode() lies and equals() is helpless</title><link>https://sven-ruppert.info/posts/if-hashcode-lies-and-equals-is-helpless/</link><pubDate>Fri, 06 Jun 2025 20:53:34 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/if-hashcode-lies-and-equals-is-helpless/</guid><description>&lt;p&gt;A deep look into Java’s HashMap traps – visually demonstrated with Vaadin Flow.&lt;/p&gt;

&lt;h3 class="relative group"&gt;The silent danger in the standard library
 &lt;div id="the-silent-danger-in-the-standard-library" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-silent-danger-in-the-standard-library" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;The use of &lt;strong&gt;HashMap&lt;/strong&gt; and &lt;strong&gt;HashSet&lt;/strong&gt; is a common practice in everyday Java development. These data structures offer excellent performance for lookup and insert operations, as long as their fundamental assumptions are met. One of them is &lt;strong&gt;hashCode()&lt;/strong&gt; of a key remains stable. But what if that&amp;rsquo;s not the case?&lt;/p&gt;</description></item><item><title>Creating a simple file upload/download application with Vaadin Flow</title><link>https://sven-ruppert.info/posts/creating-a-simple-file-upload-download-application-with-vaadin-flow/</link><pubDate>Tue, 20 May 2025 17:34:15 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/creating-a-simple-file-upload-download-application-with-vaadin-flow/</guid><description>&lt;p&gt;Vaadin Flow is a robust framework for building modern web applications in Java, where all UI logic is implemented on the server side. In this blog post, we&amp;rsquo;ll make a simple file management application step by step that allows users to upload files, save them to the server, and download them again when needed. This is a great way to demonstrate how to build protection against CWE-22, CWE-377, and CWE-778 step by step.&lt;/p&gt;</description></item><item><title>What is CWE-1007: Insufficient visual discrimination of homoglyphs for you as a user?</title><link>https://sven-ruppert.info/posts/what-is-cwe-1007-insufficient-visual-discrimination-of-homoglyphs-for-you-as-a-user/</link><pubDate>Mon, 04 Nov 2024 12:34:27 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/what-is-cwe-1007-insufficient-visual-discrimination-of-homoglyphs-for-you-as-a-user/</guid><description>&lt;p&gt;The world of cybersecurity is full of threats, many of which are surprisingly subtle and challenging to detect. One such threat is the problem of so-called homoglyphs. CWE-1007, also known as &amp;ldquo;Insufficient Visual Distinction of Homoglyphs Presented to User&amp;rdquo;, is a vulnerability often used by attackers to deceive and compromise your systems or data. In this blog article, you will get a deep insight into CWE-1007, understand its mechanisms, and how to protect yourself from such attacks. We will discuss examples, technical challenges, and best practices that can help you as a developer understand and mitigate this threat.&lt;/p&gt;</description></item><item><title>Building More Complex Apps with Flow</title><link>https://sven-ruppert.info/posts/building-more-complex-apps-with-flow/</link><pubDate>Thu, 22 Aug 2024 12:20:26 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/building-more-complex-apps-with-flow/</guid><description>&lt;p&gt;In this part of the series about Vaadin Flow, I will show how I can create the basic framework for the graphic design of a work application. The focus here is on the design of the work area and the organisation of the individual logical application groups. In other words, we create the application layout that can be used for an industrial project.&lt;/p&gt;</description></item><item><title>Vaadin Flow - How to start</title><link>https://sven-ruppert.info/posts/vaadin-flow-how-to-start/</link><pubDate>Wed, 19 Jun 2024 15:34:50 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/vaadin-flow-how-to-start/</guid><description>&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://sven-ruppert.info/images/2024/06/image.png"
 width="1024"
 height="332"&gt;&lt;/figure&gt;
&lt;p&gt;We will now create a new Vaadin Flow application step by step and create a basic framework for our own projects with this component-based open-source web framework. So, right from the start, the question arises: How can you start with as little effort as possible without avoiding the usual expenses that sometimes come with creating projects?&lt;/p&gt;</description></item></channel></rss>