<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://svenruppert.com/workshop-secure-coding-java/</loc><lastmod>2026-04-27T00:00:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.9</priority></url><url><loc>https://svenruppert.com/</loc><lastmod>2026-04-27T00:00:00+00:00</lastmod><changefreq>daily</changefreq><priority>1.0</priority></url><url><loc>https://svenruppert.com/posts/a-vaadin-starter-project-with-a-clear-focus/</loc><lastmod>2026-03-18T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2026/03/ChatGPT-Image-9.-Marz-2026-15_00_40.jpeg</image:loc><image:title>A Vaadin Starter Project with a Clear Focus</image:title></image:image></url><url><loc>https://svenruppert.com/categories/</loc><lastmod>2026-03-18T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://svenruppert.com/categories/java/</loc><lastmod>2026-03-18T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/java/</loc><lastmod>2026-03-18T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/</loc><lastmod>2026-03-18T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/categories/serverside/</loc><lastmod>2026-03-18T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/</loc><lastmod>2026-03-18T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://svenruppert.com/categories/vaadin/</loc><lastmod>2026-03-18T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/vaadin/</loc><lastmod>2026-03-18T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/i18n/</loc><lastmod>2026-03-11T07:09:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/practical-i18n-in-vaadin-resource-bundles-locale-handling-and-ui-language-switching/</loc><lastmod>2026-03-11T07:09:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2026/03/ChatGPT-Image-4.-Marz-2026-17_38_59.jpeg</image:loc><image:title>Practical i18n in Vaadin: Resource Bundles, Locale Handling and UI Language Switching</image:title></image:image></url><url><loc>https://svenruppert.com/tags/css/</loc><lastmod>2026-03-04T13:05:20+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/separation-of-concerns-in-vaadin-eliminating-inline-styles/</loc><lastmod>2026-03-04T13:05:20+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2026/03/ChatGPT-Image-4.-Marz-2026-13_01_05.jpeg</image:loc><image:title>Separation of Concerns in Vaadin: Eliminating Inline Styles</image:title></image:image></url><url><loc>https://svenruppert.com/posts/an-unexpectedly-hassle-free-upgrade/</loc><lastmod>2026-02-16T11:22:56+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2026/02/ChatGPT-Image-12.-Feb.-2026-16_58_52.jpeg</image:loc><image:title>An unexpectedly hassle-free upgrade</image:title></image:image></url><url><loc>https://svenruppert.com/tags/import/</loc><lastmod>2026-02-09T15:15:33+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/the-importance-of-ui-in-import-processes/</loc><lastmod>2026-02-09T15:15:33+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2026/02/ChatGPT-Image-9.-Feb.-2026-15_08_11.jpeg</image:loc><image:title>The Importance of UI in Import Processes</image:title></image:image></url><url><loc>https://svenruppert.com/tags/urlshortener/</loc><lastmod>2026-02-09T15:15:33+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/20224/</loc><lastmod>2026-02-05T16:50:15+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2026/02/ChatGPT-Image-5.-Feb.-2026-16_08_32.jpeg</image:loc><image:title>JSON export in Vaadin Flow</image:title></image:image></url><url><loc>https://svenruppert.com/tags/advent-2025/</loc><lastmod>2025-12-22T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-extracting-components-part-2/</loc><lastmod>2025-12-22T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Part2-02.jpeg</image:loc><image:title>Advent Calendar 2025 - Extracting Components - Part 2</image:title></image:image></url><url><loc>https://svenruppert.com/categories/eclipsestore/</loc><lastmod>2025-12-22T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/eclipsestore/</loc><lastmod>2025-12-22T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-extracting-components-part-1/</loc><lastmod>2025-12-21T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Part1-02.jpeg</image:loc><image:title>Advent Calendar 2025 - Extracting Components - Part 1</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-de-activate-mappings-part-2/</loc><lastmod>2025-12-20T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Part2-04-steamPunk.jpeg</image:loc><image:title>Advent Calendar 2025 - De-/Activate Mappings - Part 2</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-de-activate-mappings-part-1/</loc><lastmod>2025-12-19T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Part1-steamPunk.jpeg</image:loc><image:title>Advent Calendar 2025 - De-/Activate Mappings - Part 1</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-basic-login-solution-part-2/</loc><lastmod>2025-12-18T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Header_01.jpeg</image:loc><image:title>Advent Calendar 2025 - Basic Login Solution - Part 2</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-basic-login-solution-part-1/</loc><lastmod>2025-12-17T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Header_02.jpeg</image:loc><image:title>Advent Calendar 2025 - Basic Login Solution - Part 1</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-mass-grid-operations-part-2/</loc><lastmod>2025-12-16T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Part01-05.jpeg</image:loc><image:title>Advent Calendar 2025 - Mass Grid Operations - Part 2</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-mass-grid-operations-part-1/</loc><lastmod>2025-12-15T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Part01-04.jpeg</image:loc><image:title>Advent Calendar 2025 - Mass Grid Operations - Part 1</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-from-ui-interactions-to-a-deterministic-refresh-architecture/</loc><lastmod>2025-12-14T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/PartII-Verision02.jpeg</image:loc><image:title>Advent Calendar 2025 - From UI Interactions to a Deterministic Refresh Architecture</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-from-simple-search-to-expert-mode-advanced-filters-and-synchronised-scopes-for-power-users/</loc><lastmod>2025-12-13T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Version-03-Green.jpeg</image:loc><image:title>Advent Calendar 2025 - From Simple Search to Expert Mode: Advanced Filters and Synchronised Scopes for Power Users</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-introduction-of-multiple-aliases-part-2/</loc><lastmod>2025-12-12T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Part-Two-Green.jpeg</image:loc><image:title>Advent Calendar 2025 - Introduction of multiple aliases - Part 2</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-introduction-of-multiple-aliases-part-1/</loc><lastmod>2025-12-11T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Part-One-Green.jpeg</image:loc><image:title>Advent Calendar 2025 - Introduction of multiple aliases - Part 1</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-from-grid-to-detail-understanding-the-user-experience-in-the-short-url-manager/</loc><lastmod>2025-12-10T10:32:12+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/ChatGPT-Image-10.-Dez.-2025-10_31_02.png</image:loc><image:title>Advent Calendar - 2025 - From Grid to Detail: Understanding the User Experience in the Short-URL Manager</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-columnvisibilitydialog-part-2/</loc><lastmod>2025-12-09T09:55:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Part-02-SteamPunk.png</image:loc><image:title>Advent Calendar - 2025 - ColumnVisibilityDialog - Part 2</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-columnvisibilitydialog-part-1/</loc><lastmod>2025-12-08T22:42:05+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Part-01-SteamPunk.png</image:loc><image:title>Advent Calendar - 2025 - ColumnVisibilityDialog - Part 1</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-detail-dialog-part-2/</loc><lastmod>2025-12-07T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/DetailDialog-Part01-SteamPunk.png</image:loc><image:title>Advent Calendar - 2025 - Detail Dialog - Part 2</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-detail-dialog-part-1/</loc><lastmod>2025-12-06T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/DetailDialog-Part01-SteamPunk-1.png</image:loc><image:title>Advent Calendar - 2025 - Detail Dialog - Part 1</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-persistence-part-02/</loc><lastmod>2025-12-05T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Parts-02-SteamPunk.png</image:loc><image:title>Advent Calendar - 2025 - Persistence – Part 02</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-persistence-part-01/</loc><lastmod>2025-12-04T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/Parts-01-SteamPunk.png</image:loc><image:title>Advent Calendar - 2025 - Persistence – Part 01</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-filter-search-part-02/</loc><lastmod>2025-12-03T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/ChatGPT-Image-2.-Dez.-2025-00_18_37.png</image:loc><image:title>Advent Calendar - 2025 - Filter &amp;amp; Search – Part 02</image:title></image:image></url><url><loc>https://svenruppert.com/posts/advent-calendar-2025-filter-search-part-01/</loc><lastmod>2025-12-02T07:05:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/12/ChatGPT-Image-26.-Okt.-2025-20_38_07.png</image:loc><image:title>Advent Calendar - 2025 - Filter &amp;amp; Search – Part 01</image:title></image:image></url><url><loc>https://svenruppert.com/categories/design-pattern/</loc><lastmod>2025-12-02T07:05:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/introduction-to-the-url-shortener-advent-calendar-2025/</loc><lastmod>2025-12-01T10:22:35+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/11/Header-SteamPunk.png</image:loc><image:title>Introduction to the URL‑Shortener Advent Calendar 2025</image:title></image:image></url><url><loc>https://svenruppert.com/tags/jetty/</loc><lastmod>2025-12-01T10:22:35+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/event-sourcing/</loc><lastmod>2025-09-05T08:18:47+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/real-time-in-focus-server-sent-events-in-core-java-without-frameworks/</loc><lastmod>2025-09-05T08:18:47+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/09/ChatGPT-Image-4.-Sept.-2025-18_02_53.jpeg</image:loc><image:title>Real-Time in Focus: Server-Sent Events in Core Java without Frameworks</image:title></image:image></url><url><loc>https://svenruppert.com/tags/serverside/</loc><lastmod>2025-09-05T08:18:47+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/sse/</loc><lastmod>2025-09-05T08:18:47+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/core-java-flow-processor/</loc><lastmod>2025-09-04T11:27:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/09/ChatGPT-Image-3.-Sept.-2025-13_49_18.jpeg</image:loc><image:title>Core Java - Flow.Processor</image:title></image:image></url><url><loc>https://svenruppert.com/tags/design-pattern/</loc><lastmod>2025-09-04T11:27:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/flow-api/</loc><lastmod>2025-09-04T11:27:00+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/signal-via-sse-data-via-rest-a-vaadin-demonstration-in-core-java/</loc><lastmod>2025-09-03T13:05:56+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/09/ChatGPT-Image-2.-Sept.-2025-19_29_25.jpeg</image:loc><image:title>Signal via SSE, data via REST – a Vaadin demonstration in Core Java</image:title></image:image></url><url><loc>https://svenruppert.com/categories/uncategorized/</loc><lastmod>2025-09-03T13:05:56+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/how-and-why-to-use-the-classic-observer-pattern-in-vaadin-flow/</loc><lastmod>2025-09-01T11:32:18+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/08/ChatGPT-Image-29.-Aug.-2025-14_33_17.jpeg</image:loc><image:title>How and why to use the classic Observer pattern in Vaadin Flow</image:title></image:image></url><url><loc>https://svenruppert.com/tags/observer/</loc><lastmod>2025-09-01T11:32:18+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/password-security-why-hashing-is-essential/</loc><lastmod>2025-08-29T14:53:27+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/01/DALL%C2%B7E-2025-01-29-08.38.17-A-steampunk-themed-digital-illustration-depicting-cybersecurity-concepts_-a-brass-and-copper-shield-with-a-key-symbol-in-the-center-surrounded-by-int.jpeg</image:loc><image:title>Password Security: Why Hashing is Essential</image:title></image:image></url><url><loc>https://svenruppert.com/categories/secure-coding-practices/</loc><lastmod>2025-08-29T14:53:27+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/secure-coding-practices/</loc><lastmod>2025-08-29T14:53:27+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/categories/security/</loc><lastmod>2025-08-29T14:53:27+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/security/</loc><lastmod>2025-08-29T14:53:27+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/flow/</loc><lastmod>2025-08-19T13:09:52+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/what-makes-vaadin-components-special/</loc><lastmod>2025-08-19T13:09:52+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/08/ChatGPT-Image-19.-Aug.-2025-13_02_16.png</image:loc><image:title>What makes Vaadin components special?</image:title></image:image></url><url><loc>https://svenruppert.com/posts/part-iii-webui-with-vaadin-flow-for-the-url-shortener/</loc><lastmod>2025-08-15T10:46:10+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/08/ChatGPT-Image-15.-Aug.-2025-10_06_47.png</image:loc><image:title>Part III - WebUI with Vaadin Flow for the URL Shortener</image:title></image:image></url><url><loc>https://svenruppert.com/posts/connecting-rest-services-with-vaadin-flow-in-core-java/</loc><lastmod>2025-06-24T09:39:25+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/06/ChatGPT-Image-23.-Juni-2025-22_10_43.png</image:loc><image:title>Connecting REST Services with Vaadin Flow in Core Java</image:title></image:image></url><url><loc>https://svenruppert.com/tags/rest/</loc><lastmod>2025-06-24T09:39:25+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/part-ii-urlshortener-first-implementation/</loc><lastmod>2025-06-20T12:36:28+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/06/ChatGPT-Image-20.-Juni-2025-12_00_13.png</image:loc><image:title>Part II - UrlShortener - first Implementation</image:title></image:image></url><url><loc>https://svenruppert.com/tags/architecture/</loc><lastmod>2025-06-10T22:43:22+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/short-links-clear-architecture-a-url-shortener-in-core-java/</loc><lastmod>2025-06-10T22:43:22+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/06/ChatGPT-Image-10.-Juni-2025-21_51_48.png</image:loc><image:title>Short links, clear architecture – A URL shortener in Core Java</image:title></image:image></url><url><loc>https://svenruppert.com/posts/if-hashcode-lies-and-equals-is-helpless/</loc><lastmod>2025-06-06T20:53:34+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/06/ChatGPT-Image-6.-Juni-2025-20_48_59.png</image:loc><image:title>If hashCode() lies and equals() is helpless</image:title></image:image></url><url><loc>https://svenruppert.com/posts/creating-a-simple-file-upload-download-application-with-vaadin-flow/</loc><lastmod>2025-05-20T17:34:15+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/05/ChatGPT-Image-20.-Mai-2025-17_26_14.png</image:loc><image:title>Creating a simple file upload/download application with Vaadin Flow</image:title></image:image></url><url><loc>https://svenruppert.com/tags/bytecode/</loc><lastmod>2025-04-11T17:06:44+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/instrumentation-api/</loc><lastmod>2025-04-11T17:06:44+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/open-hearted-bytecode-java-instrumentation-api/</loc><lastmod>2025-04-11T17:06:44+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/04/ChatGPT-Image-11.-Apr.-2025-17_02_02-gross.jpeg</image:loc><image:title>Open-hearted bytecode: Java Instrumentation API</image:title></image:image></url><url><loc>https://svenruppert.com/tags/parallel-programming/</loc><lastmod>2025-04-08T20:25:45+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/categories/streams/</loc><lastmod>2025-04-08T20:25:45+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/streams/</loc><lastmod>2025-04-08T20:25:45+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/synchronous-in-chaos-how-parallel-collectors-bring-order-to-java-streams/</loc><lastmod>2025-04-08T20:25:45+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/04/ChatGPT-Image-8.-Apr.-2025-20_17_00-gross.jpeg</image:loc><image:title>Synchronous in Chaos: How Parallel Collectors Bring Order to Java Streams</image:title></image:image></url><url><loc>https://svenruppert.com/tags/dns/</loc><lastmod>2025-04-07T08:48:06+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/dns---hijacking/</loc><lastmod>2025-04-07T08:48:06+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/dns-attacks/</loc><lastmod>2025-04-07T08:48:06+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/dns-attacks-explained/</loc><lastmod>2025-04-07T08:48:06+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/03/ChatGPT-Image-6.-Apr.-2025-14_07_13-gross.jpeg</image:loc><image:title>DNS Attacks - Explained</image:title></image:image></url><url><loc>https://svenruppert.com/tags/cryptography/</loc><lastmod>2025-04-03T12:22:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/java-cryptography-architecture-jca-an-overview/</loc><lastmod>2025-04-03T12:22:30+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/04/ChatGPT-Image-3.-Apr.-2025-12_17_31-gross.jpeg</image:loc><image:title>Java Cryptography Architecture (JCA) - An Overview</image:title></image:image></url><url><loc>https://svenruppert.com/tags/jca/</loc><lastmod>2025-04-03T12:22:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/categories/concurrency/</loc><lastmod>2025-04-02T20:58:21+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/gatherer/</loc><lastmod>2025-04-02T20:58:21+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/rethinking-java-streams-gatherer-for-more-control-and-parallelism/</loc><lastmod>2025-04-02T20:58:21+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/04/ChatGPT-Image-2.-Apr.-2025-20_53_56-gross.jpeg</image:loc><image:title>Rethinking Java Streams: Gatherer for more control and parallelism</image:title></image:image></url><url><loc>https://svenruppert.com/posts/from-java-8-to-24-the-evolution-of-the-streams-api/</loc><lastmod>2025-03-29T13:08:23+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2025/03/ChatGPT-Image-29.-Marz-2025-13_06_16.png</image:loc><image:title>From Java 8 to 24: The evolution of the Streams API</image:title></image:image></url><url><loc>https://svenruppert.com/tags/cuda/</loc><lastmod>2024-11-23T19:40:08+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/gpu/</loc><lastmod>2024-11-23T19:40:08+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/opencl/</loc><lastmod>2024-11-23T19:40:08+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/performance/</loc><lastmod>2024-11-23T19:40:08+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/tornadovm/</loc><lastmod>2024-11-23T19:40:08+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/tornadovm-boosting-the-concurrency/</loc><lastmod>2024-11-23T19:40:08+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/09/EA3533F5-A7E8-413C-896F-EB16D657AC11.jpg</image:loc><image:title>TornadoVM - Boosting the Concurrency</image:title></image:image></url><url><loc>https://svenruppert.com/tags/cache/</loc><lastmod>2024-11-13T14:15:16+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/cache-poisoning-attacks-on-dependency-management-systems-like-maven/</loc><lastmod>2024-11-13T14:15:16+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/11/10E6CCCF-A86A-4682-910F-17BC01541B86.jpg</image:loc><image:title>Cache Poisoning Attacks on Dependency Management Systems like Maven</image:title></image:image></url><url><loc>https://svenruppert.com/tags/code-injection-attack/</loc><lastmod>2024-11-13T14:15:16+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/dependency-management/</loc><lastmod>2024-11-13T14:15:16+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/maven/</loc><lastmod>2024-11-13T14:15:16+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/categories/tools/</loc><lastmod>2024-11-13T14:15:16+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/junit-annotations-in-focus-the-connection-between-test-and-testable/</loc><lastmod>2024-11-08T09:12:39+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/11/DALL%C2%B7E-2024-11-08-09.09.38-A-conceptual-illustration-representing-Java-annotation-@Testable-in-a-wooden-style-featuring-abstract-symbols-of-testing-software-code-and-modular.jpeg</image:loc><image:title>JUnit annotations in focus: The connection between @Test and @Testable</image:title></image:image></url><url><loc>https://svenruppert.com/categories/junit5/</loc><lastmod>2024-11-08T09:12:39+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/junit5/</loc><lastmod>2024-11-08T09:12:39+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/tdd/</loc><lastmod>2024-11-08T09:12:39+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/categories/tdd/</loc><lastmod>2024-11-08T09:12:39+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/test-engine/</loc><lastmod>2024-11-08T09:12:39+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/workshop-junit5-effective-testing-of-java-applications/</loc><lastmod>2024-11-06T12:27:23+00:00</lastmod><changefreq>monthly</changefreq><priority>0.9</priority></url><url><loc>https://svenruppert.com/tags/mocking/</loc><lastmod>2024-11-05T17:49:33+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/the-risks-of-mocking-frameworks-how-too-much-mocking-leads-to-unrealistic-tests/</loc><lastmod>2024-11-05T17:49:33+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/11/DALL%C2%B7E-2024-11-05-17.46.36-A-conceptual-representation-of-software-testing-with-Mocking-frameworks-in-a-wooden-style.-A-digital-scene-featuring-interconnected-nodes-and-mock-obj.jpeg</image:loc><image:title>The Risks of Mocking Frameworks: How Too Much Mocking Leads to Unrealistic Tests</image:title></image:image></url><url><loc>https://svenruppert.com/tags/cwe-1007/</loc><lastmod>2024-11-04T12:34:27+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/homoglyphs/</loc><lastmod>2024-11-04T12:34:27+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/what-is-cwe-1007-insufficient-visual-discrimination-of-homoglyphs-for-you-as-a-user/</loc><lastmod>2024-11-04T12:34:27+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/10/601DF759-C507-4579-8EB3-C3DB6498B2C3.jpg</image:loc><image:title>What is CWE-1007: Insufficient visual discrimination of homoglyphs for you as a user?</image:title></image:image></url><url><loc>https://svenruppert.com/tags/concurrency/</loc><lastmod>2024-11-01T22:02:37+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/reentrantreadwritelock/</loc><lastmod>2024-11-01T22:02:37+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/semaphore/</loc><lastmod>2024-11-01T22:02:37+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/stampedlock/</loc><lastmod>2024-11-01T22:02:37+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/the-history-of-parallel-processing-in-java-from-threads-to-virtual-threads/</loc><lastmod>2024-11-01T22:02:37+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/11/B9112628-C012-4D64-A3EE-C7E4565493DB.jpg</image:loc><image:title>The History of Parallel Processing in Java: From Threads to Virtual Threads</image:title></image:image></url><url><loc>https://svenruppert.com/tags/cwe-778/</loc><lastmod>2024-10-18T14:07:20+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/cwe-778-lack-of-control-over-error-reporting-in-java/</loc><lastmod>2024-10-18T14:07:20+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/10/090554C2-80F2-4F66-9A9B-B7205DF586C8.jpg</image:loc><image:title>CWE-778: Lack of control over error reporting in Java</image:title></image:image></url><url><loc>https://svenruppert.com/posts/code-security-through-unit-testing-the-role-of-secure-coding-practices-in-the-development-cycle/</loc><lastmod>2024-10-16T22:17:04+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/10/F51BDF99-FA12-46E0-B373-6EB383248031.jpg</image:loc><image:title>Code security through unit testing: The role of secure coding practices in the development cycle</image:title></image:image></url><url><loc>https://svenruppert.com/tags/cwe-377/</loc><lastmod>2024-10-07T17:57:36+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/java-nio/</loc><lastmod>2024-10-07T17:57:36+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/toctou/</loc><lastmod>2024-10-07T17:57:36+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/understanding-toctou-time-of-check-to-time-of-use-in-the-context-of-cwe-377/</loc><lastmod>2024-10-07T17:57:36+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/08/0ABA49EF-C21C-42F2-BA6B-260FD05F1672.jpg</image:loc><image:title>Understanding TOCTOU (Time-of-Check to Time-of-Use) in the Context of CWE-377</image:title></image:image></url><url><loc>https://svenruppert.com/tags/bld/</loc><lastmod>2024-09-26T17:31:17+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/bld-a-lightweight-java-build-tool/</loc><lastmod>2024-09-26T17:31:17+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/09/IMG_0530.jpg</image:loc><image:title>BLD - a lightweight Java Build Tool</image:title></image:image></url><url><loc>https://svenruppert.com/tags/buildsystem/</loc><lastmod>2024-09-26T17:31:17+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/tapestry/</loc><lastmod>2024-09-25T17:04:18+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/webcomponent/</loc><lastmod>2024-09-25T17:04:18+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/what-are-component-based-web-application-frameworks-for-java-developers/</loc><lastmod>2024-09-25T17:04:18+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/04/68907F37-7FA3-4273-950D-394AE64CC928.jpg</image:loc><image:title>What are component-based web application frameworks for Java Developers?</image:title></image:image></url><url><loc>https://svenruppert.com/tags/wicket/</loc><lastmod>2024-09-25T17:04:18+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/cwe-1123/</loc><lastmod>2024-09-12T11:19:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/cwe-1123-excessive-use-of-self-modifying-code-for-java-developers/</loc><lastmod>2024-09-12T11:19:19+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/09/2DD17027-6231-4040-A9F0-89A4076945CC.jpg</image:loc><image:title>CWE-1123: Excessive Use of Self-Modifying Code for Java Developers</image:title></image:image></url><url><loc>https://svenruppert.com/tags/remote-code-execution/</loc><lastmod>2024-09-12T11:19:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/iot/</loc><lastmod>2024-09-04T12:37:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/iot-with-tinkerforge-and-java/</loc><lastmod>2024-09-04T12:37:30+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/09/IMG_0507.jpg</image:loc><image:title>IoT with TinkerForge and Java</image:title></image:image></url><url><loc>https://svenruppert.com/categories/tinkerforge/</loc><lastmod>2024-09-04T12:37:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/tinkerforge/</loc><lastmod>2024-09-04T12:37:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/building-more-complex-apps-with-flow/</loc><lastmod>2024-08-22T12:20:26+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/08/1BE8F793-F251-41B9-95B6-52D258A32EC9.jpg</image:loc><image:title>Building More Complex Apps with Flow</image:title></image:image></url><url><loc>https://svenruppert.com/posts/cwe-377-insecure-temporary-file-in-java/</loc><lastmod>2024-08-21T13:17:12+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/08/9E2CC974-17A8-40DF-80BA-ED4E043F93DE.jpg</image:loc><image:title>CWE-377 - Insecure Temporary File in Java</image:title></image:image></url><url><loc>https://svenruppert.com/posts/vaadin-flow-how-to-start/</loc><lastmod>2024-06-19T15:34:50+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/06/DALL%C2%B7E-2024-06-19-15.05.26-A-visualization-of-a-Hello-World-project-using-Vaadin-Flow-in-a-forest-theme-without-using-any-words-characters-or-letters.-Show-a-modern-web-appli.jpeg</image:loc><image:title>Vaadin Flow - How to start</image:title></image:image></url><url><loc>https://svenruppert.com/posts/comparing-code-coverage-techniques-line-property-based-and-mutation-testing/</loc><lastmod>2024-05-31T09:20:30+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/05/3E049BD7-65C8-4FBE-86AD-8BA23AFA6F50.jpg</image:loc><image:title>Comparing Code Coverage Techniques: Line, Property-Based, and Mutation Testing</image:title></image:image></url><url><loc>https://svenruppert.com/tags/jacoco/</loc><lastmod>2024-05-31T09:20:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/categories/mutation-testing/</loc><lastmod>2024-05-31T09:20:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/mutation-testing/</loc><lastmod>2024-05-31T09:20:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/pitest/</loc><lastmod>2024-05-31T09:20:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/property-based-testing/</loc><lastmod>2024-05-31T09:20:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/qwik/</loc><lastmod>2024-05-31T09:20:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/test-coverage/</loc><lastmod>2024-05-31T09:20:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/infection-method/</loc><lastmod>2024-05-27T14:30:22+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/package-manager/</loc><lastmod>2024-05-27T14:30:22+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/securing-apache-maven-understanding-cache-related-risks/</loc><lastmod>2024-05-27T14:30:22+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/05/8F0D7E69-ACAA-4EFD-890F-55DAB1313F9F.jpg</image:loc><image:title>Securing Apache Maven: Understanding Cache-Related Risks</image:title></image:image></url><url><loc>https://svenruppert.com/tags/cwe-22/</loc><lastmod>2024-05-22T10:30:27+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/cwe-22-best-practices-to-use-java-nio/</loc><lastmod>2024-05-22T10:30:27+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/05/0FC55170-E47B-4CE9-AF74-DD1AD9B9EAAF.jpg</image:loc><image:title>CWE-22: Best practices to use Java NIO</image:title></image:image></url><url><loc>https://svenruppert.com/tags/apache-shiro/</loc><lastmod>2024-05-21T14:33:53+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/cwe-22-improper-limitation-of-a-pathname-to-a-restricted-directory/</loc><lastmod>2024-05-21T14:33:53+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/05/76E8D5CE-C004-48CF-9CB9-D48A128A1074.jpg</image:loc><image:title>CWE-22: Improper Limitation of a Pathname to a Restricted Directory</image:title></image:image></url><url><loc>https://svenruppert.com/tags/esapi/</loc><lastmod>2024-05-21T14:33:53+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/hibernate-validator/</loc><lastmod>2024-05-21T14:33:53+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/owasp/</loc><lastmod>2024-05-21T14:33:53+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/tika/</loc><lastmod>2024-05-21T14:33:53+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/cwe-416/</loc><lastmod>2024-05-17T12:17:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/cwe-416-use-after-free-vulnerabilities-in-java/</loc><lastmod>2024-05-17T12:17:30+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/05/B389DB4C-F09B-4E33-8549-37DF3C0F7447.jpg</image:loc><image:title>CWE-416: Use After Free Vulnerabilities in Java</image:title></image:image></url><url><loc>https://svenruppert.com/posts/basics-of-the-gauss-kruger-coordinate-system/</loc><lastmod>2024-05-16T14:34:19+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/05/842F61C8-D48F-4489-8ACA-A63B5FBD6C62.jpg</image:loc><image:title>Basics of the Gauss-Krüger Coordinate System</image:title></image:image></url><url><loc>https://svenruppert.com/tags/bessel-1841/</loc><lastmod>2024-05-16T14:34:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/ellipsoid/</loc><lastmod>2024-05-16T14:34:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/gauss-kr%C3%BCger-coordinates/</loc><lastmod>2024-05-16T14:34:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/categories/navigation/</loc><lastmod>2024-05-16T14:34:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/navigation/</loc><lastmod>2024-05-16T14:34:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/cwe-787/</loc><lastmod>2024-05-15T12:19:10+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/cwe-787-the-bird-eye-view-for-java-developers/</loc><lastmod>2024-05-15T12:19:10+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/05/1283FC1B-268C-43CD-8DE0-B44536BEA98D.jpg</image:loc><image:title>CWE-787 - The Bird-Eye View for Java Developers</image:title></image:image></url><url><loc>https://svenruppert.com/tags/include/</loc><lastmod>2024-05-15T12:19:10+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/offheap/</loc><lastmod>2024-05-15T12:19:10+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/cybersecurity/</loc><lastmod>2024-05-07T12:43:21+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/error-handling/</loc><lastmod>2024-05-07T12:43:21+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/mastering-secure-error-handling-in-java-best-practices-and-strategies/</loc><lastmod>2024-05-07T12:43:21+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/05/B03F4373-5637-49F6-95D1-3F3ACD5E17E0.jpg</image:loc><image:title>Mastering Secure Error Handling in Java: Best Practices and Strategies</image:title></image:image></url><url><loc>https://svenruppert.com/posts/decoding-the-logs-essential-insights-for-effective-software-debugging/</loc><lastmod>2024-05-06T21:12:46+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/05/D3CE80C8-FAB3-400F-A86B-EED05C7C1F57.jpg</image:loc><image:title>Decoding the Logs: Essential Insights for Effective Software Debugging</image:title></image:image></url><url><loc>https://svenruppert.com/tags/logging/</loc><lastmod>2024-05-06T21:12:46+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/access-control/</loc><lastmod>2024-05-03T10:41:23+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/secure-coding-practices-access-control/</loc><lastmod>2024-05-03T10:41:23+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/03/DALL%C2%B7E-2024-03-13-10.39.30-A-detailed-illustration-that-captures-the-concept-of-access-control-using-a-proxy-in-Java-programming.-The-scene-is-set-in-an-office-environment-feat.webp</image:loc><image:title>Secure Coding Practices - Access Control</image:title></image:image></url><url><loc>https://svenruppert.com/posts/the-hidden-dangers-of-bidirectional-characters/</loc><lastmod>2024-04-19T10:12:58+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/04/E17FE071-E98D-4369-B10F-7CA6F376E428.jpg</image:loc><image:title>The Hidden Dangers of Bidirectional Characters</image:title></image:image></url><url><loc>https://svenruppert.com/posts/audio-steganography-in-more-detail/</loc><lastmod>2024-04-17T19:22:20+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/04/22C2881A-AA3A-4DB1-A857-54C47CF1FB00.jpg</image:loc><image:title>Audio Steganography In More Detail</image:title></image:image></url><url><loc>https://svenruppert.com/tags/steganography/</loc><lastmod>2024-04-17T19:22:20+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/beyond-the-visible-exploring-the-depths-of-steganography/</loc><lastmod>2024-03-28T14:02:52+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/03/IMG_0346.jpg</image:loc><image:title>Beyond the Visible: Exploring the Depths of Steganography</image:title></image:image></url><url><loc>https://svenruppert.com/tags/compensating-transactions-pattern/</loc><lastmod>2024-02-12T12:40:41+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/distributed-design-pattern/</loc><lastmod>2024-02-12T12:40:41+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/the-compensating-transaction-pattern/</loc><lastmod>2024-02-12T12:40:41+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/02/DSC1098_landscape-crop.jpeg</image:loc><image:title>The Compensating Transaction Pattern</image:title></image:image></url><url><loc>https://svenruppert.com/posts/serialising-in-java-birds-eye-view/</loc><lastmod>2024-02-11T13:46:53+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2023/12/DSC1101-v001-landscape-crop.jpg</image:loc><image:title>Serialising in Java - Birds Eye View</image:title></image:image></url><url><loc>https://svenruppert.com/posts/contextual-analysis-in-cybersecurity/</loc><lastmod>2024-02-05T17:49:29+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2023/12/IMG_6469.JPG_compressed.jpeg</image:loc><image:title>Contextual Analysis in Cybersecurity</image:title></image:image></url><url><loc>https://svenruppert.com/tags/devsecops/</loc><lastmod>2024-02-05T17:49:29+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/cwe/</loc><lastmod>2024-01-10T17:24:15+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/what-is-a-common-weakness-enumeration-cwe/</loc><lastmod>2024-01-10T17:24:15+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2024/01/DSC1092_landscape-crop.jpeg</image:loc><image:title>What is a Common Weakness Enumeration - CWE</image:title></image:image></url><url><loc>https://svenruppert.com/posts/secure-coding-practices-input-validation/</loc><lastmod>2023-12-13T07:52:24+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2023/11/DSC1168_landscape-crop.jpeg</image:loc><image:title>Secure Coding Practices - Input Validation</image:title></image:image></url><url><loc>https://svenruppert.com/posts/infection-method-sub-domain-takeover/</loc><lastmod>2023-11-20T14:37:29+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2023/11/DSC1248_landscape-crop.jpeg</image:loc><image:title>Infection Method - Sub-Domain Takeover</image:title></image:image></url><url><loc>https://svenruppert.com/tags/subdomain-takeover/</loc><lastmod>2023-11-20T14:37:29+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/domain-takeover/</loc><lastmod>2023-11-10T10:31:25+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/infection-method-domain-takeover/</loc><lastmod>2023-11-10T10:31:25+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2023/11/DSC1297_landscape-crop.jpeg</image:loc><image:title>Infection Method - Domain Takeover</image:title></image:image></url><url><loc>https://svenruppert.com/posts/eclipsestore-high-performance-serializer/</loc><lastmod>2023-10-09T21:59:54+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2023/10/DSC1673_landscape-crop.jpeg</image:loc><image:title>EclipseStore High-Performance-Serializer</image:title></image:image></url><url><loc>https://svenruppert.com/posts/eclipsestore-storing-more-complex-data-structures/</loc><lastmod>2023-10-06T12:22:50+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2023/10/DSC1511_landscape-crop.jpeg</image:loc><image:title>EclipseStore - Storing more complex data structures</image:title></image:image></url><url><loc>https://svenruppert.com/tags/opensource/</loc><lastmod>2023-10-06T12:22:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/how-to-start-with-eclipsestore-01/</loc><lastmod>2023-10-04T10:00:04+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2023/10/DSC1536_landscape-crop.jpeg</image:loc><image:title>How to start with EclipseStore - 01</image:title></image:image></url><url><loc>https://svenruppert.com/posts/tdd-and-the-impact-on-security/</loc><lastmod>2023-06-28T16:08:03+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/workshops/</loc><lastmod>2023-06-14T12:54:04+00:00</lastmod><changefreq>monthly</changefreq><priority>0.9</priority></url><url><loc>https://svenruppert.com/workshop-java-streams-deep-dive/</loc><lastmod>2023-06-14T12:19:30+00:00</lastmod><changefreq>monthly</changefreq><priority>0.9</priority></url><url><loc>https://svenruppert.com/workshop-functional-programming-in-core-java/</loc><lastmod>2023-06-14T12:19:26+00:00</lastmod><changefreq>monthly</changefreq><priority>0.9</priority></url><url><loc>https://svenruppert.com/categories/devsecops/</loc><lastmod>2022-12-10T21:56:43+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/introduction-to-the-linux-foundations-slsa-project/</loc><lastmod>2022-12-10T21:56:43+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2022/12/Folie2.jpeg</image:loc><image:title>Introduction to the Linux Foundation's SLSA project</image:title></image:image></url><url><loc>https://svenruppert.com/posts/the-power-of-jfrog-build-info-build-metadata/</loc><lastmod>2021-10-08T13:42:05+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2021/10/Folie3.jpeg</image:loc><image:title>The Power of #JFrog Build Info (Build Metadata)</image:title></image:image></url><url><loc>https://svenruppert.com/posts/solarwinds-hack-and-the-executive-order-from-mr-biden-and-now/</loc><lastmod>2021-07-27T11:10:15+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2021/07/Talk-DevSecOps-Low-hanging-Fruits-202107_EN.jpg</image:loc><image:title>SolarWinds hack and the Executive Order from Mr Biden -- And now?</image:title></image:image></url><url><loc>https://svenruppert.com/tags/dast/</loc><lastmod>2021-07-19T15:34:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/iast/</loc><lastmod>2021-07-19T15:34:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/rasp/</loc><lastmod>2021-07-19T15:34:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/tags/sast/</loc><lastmod>2021-07-19T15:34:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://svenruppert.com/posts/what-is-the-difference-between-sast-dast-iast-and-rasp/</loc><lastmod>2021-07-19T15:34:30+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2021/07/Serie-DevSecOps-SAST_DAST_IAST_and_RASP.jpg</image:loc><image:title>What is the difference between SAST, DAST, IAST and RASP?</image:title></image:image></url><url><loc>https://svenruppert.com/posts/the-lifeline-of-a-vulnerability/</loc><lastmod>2021-06-25T16:17:29+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2021/06/Serie-DevSecOps-Lebenslinie-einer-Vulnerability_202106_Thumbnails_01.jpeg</image:loc><image:title>The Lifeline of a Vulnerability</image:title></image:image></url><url><loc>https://svenruppert.com/posts/cvss-explained-the-basics/</loc><lastmod>2021-04-07T12:20:21+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2021/04/Serie-DevSecOps-CVSS-explained-202103_Thumbnail.jpeg</image:loc><image:title>CVSS - explained - the Basics</image:title></image:image></url><url><loc>https://svenruppert.com/posts/pattern-from-the-practical-life-of-a-software-developer/</loc><lastmod>2021-03-09T21:28:00+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/images/2021/03/CoreJava-NestedBuilder-Thumbnail.jpg</image:loc><image:title>Pattern from the practical life of a software developer</image:title></image:image></url><url><loc>https://svenruppert.com/posts/delegation-versus-inheritance-in-graphical-user-interfaces/</loc><lastmod>2021-02-18T17:26:16+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/my-outdoor-equipment/</loc><lastmod>2021-02-18T13:52:15+00:00</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/posts/a-challenge-of-the-software-distribution/</loc><lastmod>2021-02-14T14:03:57+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/posts/devsecops-be-independent-again/</loc><lastmod>2021-02-12T18:06:03+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/posts/the-quick-wins-of-devsecops/</loc><lastmod>2021-01-28T16:56:45+00:00</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/contact/</loc><lastmod>2021-01-28T15:46:12+00:00</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url><url><loc>https://svenruppert.com/bushcrafting/</loc><lastmod>2021-01-28T15:17:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/impressum/</loc><lastmod>2021-01-28T15:17:14+00:00</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/cv/</loc><changefreq>monthly</changefreq><priority>0.8</priority><image:image xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><image:loc>https://svenruppert.com/img/sven-ruppert.jpg</image:loc><image:title>Curriculum Vitae</image:title></image:image></url><url><loc>https://svenruppert.com/press/</loc><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/privacy/</loc><changefreq>yearly</changefreq><priority>0.2</priority></url><url><loc>https://svenruppert.com/projects/</loc><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/publications/</loc><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://svenruppert.com/series/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://svenruppert.com/speaking/</loc><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://svenruppert.com/talks/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://svenruppert.com/trainings/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>