<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Stefan Zils | Arc &amp; Digital Transformation Insights on Arc &amp; Digital</title><link>https://www.eifel42.dev/</link><description>Recent content in Stefan Zils | Arc &amp; Digital Transformation Insights on Arc &amp; Digital</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 21 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.eifel42.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Ulmener Maar</title><link>https://www.eifel42.dev/post/ulmener-maar/</link><pubDate>Sun, 21 Dec 2025 00:00:00 +0000</pubDate><guid>https://www.eifel42.dev/post/ulmener-maar/</guid><description>Ulmener Maar — short hikes, a connecting tunnel to Jungfernweiher and birdwatching opportunities.</description></item><item><title>Learning Organizations</title><link>https://www.eifel42.dev/post/learning-organizations/</link><pubDate>Sun, 07 Dec 2025 00:00:00 +0000</pubDate><guid>https://www.eifel42.dev/post/learning-organizations/</guid><description>Book recommendation: a concise review of Uwe Vigenschow&amp;rsquo;s &amp;lsquo;Lernende Organisationen&amp;rsquo; highlighting practical takeaways for organisational learning.</description></item><item><title>Eltz Valley</title><link>https://www.eifel42.dev/post/eltz-valley-medieval-castles-hiking/</link><pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate><guid>https://www.eifel42.dev/post/eltz-valley-medieval-castles-hiking/</guid><description>Discover the medieval castles of Eltz Valley on award-winning Traumpfade hiking trails. Start at Pyrmont Waterfall and explore Burg Eltz and Burg Pyrmont.</description></item><item><title>Key Insights from the Microsoft AI Tour 2025</title><link>https://www.eifel42.dev/post/2025-11-10-microsoft-ai-tour/</link><pubDate>Mon, 10 Nov 2025 00:00:00 +0000</pubDate><guid>https://www.eifel42.dev/post/2025-11-10-microsoft-ai-tour/</guid><description>&lt;p&gt;I had the opportunity to participate in the Microsoft AI Tour, and it was exciting to see firsthand the experiences shared from real-life projects, particularly the Zava demo project.&lt;/p&gt;
&lt;figure class="center-image"&gt;
 &lt;a href="https://www.eifel42.dev/images/2025-11-10-microsoft-ai-tour.webp" data-size="803x1072"&gt;
 &lt;picture&gt;
 &lt;source srcset="https://www.eifel42.dev/images/2025-11-10-microsoft-ai-tour-400w.avif 400w,
 https://www.eifel42.dev/images/2025-11-10-microsoft-ai-tour-600w.avif 600w,
 https://www.eifel42.dev/images/2025-11-10-microsoft-ai-tour.avif 803w,
 https://www.eifel42.dev/images/2025-11-10-microsoft-ai-tour@2x.avif 1606w"
 type="image/avif"
 sizes="(max-width: 480px) 400px, (max-width: 768px) 600px, 803px"&gt;
 &lt;source srcset="https://www.eifel42.dev/images/2025-11-10-microsoft-ai-tour-400w.webp 400w,
 https://www.eifel42.dev/images/2025-11-10-microsoft-ai-tour-600w.webp 600w,
 https://www.eifel42.dev/images/2025-11-10-microsoft-ai-tour.webp 803w,
 https://www.eifel42.dev/images/2025-11-10-microsoft-ai-tour@2x.webp 1606w"
 type="image/webp"
 sizes="(max-width: 480px) 400px, (max-width: 768px) 600px, 803px"&gt;
 &lt;img src="https://www.eifel42.dev/images/2025-11-10-microsoft-ai-tour.webp"
 alt="Microsoft AI Tour, Frankfurt"
 width="803"
 height="1072"
 loading="eager"
 fetchpriority="high"
 decoding="async"
 sizes="(max-width: 480px) 400px, (max-width: 768px) 600px, 803px"&gt;
 &lt;/picture&gt;
 &lt;/a&gt;
 &lt;figcaption&gt;Microsoft AI Tour, Frankfurt&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Here are my key &lt;strong&gt;takeaways&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;AI will accelerate development and streamline business workflows. It can enhance software quality and security, but it&amp;rsquo;s crucial to remember that a human must always be involved in the process and make the final quality checks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Topics such as &lt;em&gt;AI governance&lt;/em&gt;, &lt;em&gt;AI security&lt;/em&gt;, and &lt;em&gt;data loss prevention (DLP)&lt;/em&gt; will be critical in creating productive environments for all organizations, including small and mid-sized companies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Maintaining high data quality is essential for effective data processing. Data lakes comprise multiple data sources. To transform each data source into &lt;em&gt;data meshes&lt;/em&gt; or &lt;em&gt;data products&lt;/em&gt; is increasingly important. This encompasses areas such as &lt;em&gt;event streaming&lt;/em&gt; and &lt;em&gt;data engineering&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In my experience, every organization or team navigates a learning curve when they begin to adopt new approaches and tools in software development. I&amp;rsquo;ve noticed that while low-code solutions can lead to impressive early progress, it&amp;rsquo;s crucial to be aware that a prototype or proof of concept does not meet the criteria for a functional system according to European and German regulations. &lt;strong&gt;T-shaped&lt;/strong&gt; experts will be essential in navigating this AI landscape effectively.&lt;/p&gt;</description></item><item><title>Lighthouse Score 100</title><link>https://www.eifel42.dev/post/2025-10-09-performance-optimization/</link><pubDate>Thu, 09 Oct 2025 00:00:00 +0200</pubDate><guid>https://www.eifel42.dev/post/2025-10-09-performance-optimization/</guid><description>&lt;p&gt;This summer, I embarked on a journey to revise the layout of my blog. An update to my Hugo theme customization led to a significant increase in the complexity of the CSS structure. As a result, I faced layout breaks and received disappointing scores on Google&amp;rsquo;s PageSpeed Insights. Today, I proudly celebrate my achievement: my personal blog now boasts a perfect score of 100 points in both mobile and desktop categories. Determined to make a change, I gradually refactored my site to improve its &lt;a href="https://developer.chrome.com/docs/lighthouse"&gt;Lighthouse score&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One of the most valuable lessons I learned is that optimizing website performance strengthens both security and architecture &lt;a href="https://developer.chrome.com/docs/lighthouse/best-practices/doctype"&gt;Lighthouse - Best Pratices&lt;/a&gt;. Throughout the optimization process, Software Architecture in Stream shared a truly inspiring &lt;a href="https://www.youtube.com/watch?v=ObT05w23oB8"&gt;Web Performance&lt;/a&gt; session.&lt;/p&gt;
&lt;div class="performance-gallery"&gt;
 &lt;div class="performance-gallery__grid"&gt;
 &lt;figure class="performance-gallery__item"&gt;
 &lt;div class="no-photoswipe performance-gallery__media"&gt;
 &lt;img class="performance-gallery__img" src="https://www.eifel42.dev/images/2025-10-09-performance-mobile.webp" alt="Lighthouse Performance Score 100 for Mobile" loading="lazy" decoding="async" width="400" height="300" /&gt;
 &lt;/div&gt;
 &lt;figcaption class="performance-gallery__caption"&gt;Performance (Mobile)&lt;/figcaption&gt;
 &lt;/figure&gt;

 &lt;figure class="performance-gallery__item"&gt;
 &lt;div class="no-photoswipe performance-gallery__media"&gt;
 &lt;img class="performance-gallery__img" src="https://www.eifel42.dev/images/2025-10-09-performance-desktop.webp" alt="Lighthouse Performance Score 100 for Desktop" loading="lazy" decoding="async" width="600" height="400" /&gt;
 &lt;/div&gt;
 &lt;figcaption class="performance-gallery__caption"&gt;Performance (Desktop)&lt;/figcaption&gt;
 &lt;/figure&gt;
 &lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Developer Summit 2025: Insights from Berlin</title><link>https://www.eifel42.dev/post/2025-09-20-entwikler-summit/</link><pubDate>Sat, 20 Sep 2025 00:00:00 +0200</pubDate><guid>https://www.eifel42.dev/post/2025-09-20-entwikler-summit/</guid><description>Insights from Developer Summit 2025 in Berlin: DDD, legacy modernization, responsible architecture and AI.</description></item><item><title>Karabiner Elements</title><link>https://www.eifel42.dev/post/2025-09-08-pc-keyboard-on-mac/</link><pubDate>Mon, 08 Sep 2025 00:00:00 +0200</pubDate><guid>https://www.eifel42.dev/post/2025-09-08-pc-keyboard-on-mac/</guid><description>Karabiner Elements makes switching between Mac and Windows environments incredibly easy and is a preferred tool for long coding sessions.</description></item><item><title>EU Website Evidence Collector moves to code.europa.eu</title><link>https://www.eifel42.dev/post/2025-08-31-eu-gpr-tool/</link><pubDate>Sun, 31 Aug 2025 13:00:00 +0200</pubDate><guid>https://www.eifel42.dev/post/2025-08-31-eu-gpr-tool/</guid><description>&lt;p&gt;&lt;strong&gt;Introducing the Free GDPR Compliance Helper&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The European Union has introduced an excellent resource: a free GDPR compliance tool. → &lt;a href="https://www.eifel42.dev/post/2024-01-13-eu-gdpr-tool/"&gt;Discover the tool&lt;/a&gt;. To use it in a DevOps pipeline is mentioned here: → &lt;a href="https://www.eifel42.dev/post/2024-05-25-gdpr-pipeline/"&gt;Explore Automating GDPR Checks&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="hosting-update"&gt;Hosting Update&lt;/h2&gt;
&lt;p&gt;The &lt;em&gt;Website Evidence Collector&lt;/em&gt; has transitioned from GitHub to the EU’s GitLab-based platform at &lt;a href="https://code.europa.eu"&gt;&lt;strong&gt;code.europa.eu&lt;/strong&gt;&lt;/a&gt;. This move not only enhances long-term accessibility but also aligns with the European Commission’s commitment to open-source initiatives.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New Download (v3.7.0)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://code.europa.eu/EDPS/website-evidence-collector/-/releases/v3.7.0/downloads/website-evidence-collector.tgz"&gt;EDPS - website-evidence-collector v3.7.0 - downloads&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Wishing you a successful and (cookie-free) deployment experience!&lt;/p&gt;</description></item><item><title>Data in Motion Day 2024</title><link>https://www.eifel42.dev/post/2024-11-06-data-in-motion-tour-2024/</link><pubDate>Wed, 06 Nov 2024 22:50:55 +0200</pubDate><guid>https://www.eifel42.dev/post/2024-11-06-data-in-motion-tour-2024/</guid><description>&lt;p&gt;I had the opportunity to participate in &lt;strong&gt;Data in Motion Day 2024&lt;/strong&gt; in Frankfurt, analyzing stream processing from a &lt;strong&gt;business analysis&lt;/strong&gt; and &lt;strong&gt;enterprise architecture&lt;/strong&gt; perspective.&lt;/p&gt;
&lt;p&gt;One of my primary takeaways is that &lt;strong&gt;stream processing&lt;/strong&gt; extends beyond mere software frameworks and data management. It encourages a more profound comprehension of &lt;strong&gt;business operations&lt;/strong&gt; and their specific domains. This understanding is essential for &lt;strong&gt;requirements analysis&lt;/strong&gt; and leveraging data in real-time to drive strategic decision-making.&lt;/p&gt;
&lt;figure class="center-image"&gt;
 &lt;a href="https://www.eifel42.dev/images/2024-11-06-data-in-motion.webp" data-size="600x680"&gt;
 &lt;picture&gt;
 &lt;source srcset="https://www.eifel42.dev/images/2024-11-06-data-in-motion-400w.avif 400w,
 https://www.eifel42.dev/images/2024-11-06-data-in-motion-600w.avif 600w,
 https://www.eifel42.dev/images/2024-11-06-data-in-motion.avif 600w,
 https://www.eifel42.dev/images/2024-11-06-data-in-motion@2x.avif 1200w"
 type="image/avif"
 sizes="(max-width: 480px) 400px, 600px"&gt;
 &lt;source srcset="https://www.eifel42.dev/images/2024-11-06-data-in-motion-400w.webp 400w,
 https://www.eifel42.dev/images/2024-11-06-data-in-motion-600w.webp 600w,
 https://www.eifel42.dev/images/2024-11-06-data-in-motion.webp 600w,
 https://www.eifel42.dev/images/2024-11-06-data-in-motion@2x.webp 1200w"
 type="image/webp"
 sizes="(max-width: 480px) 400px, 600px"&gt;
 &lt;img src="https://www.eifel42.dev/images/2024-11-06-data-in-motion.webp"
 alt="Data in Motion 2024, Ticket"
 width="600"
 height="680"
 loading="eager"
 fetchpriority="high"
 decoding="async"
 sizes="(max-width: 480px) 400px, 600px"&gt;
 &lt;/picture&gt;
 &lt;/a&gt;
 &lt;figcaption&gt;Data in Motion 2024, Ticket&lt;/figcaption&gt;
&lt;/figure&gt;</description></item><item><title>Agile Increment</title><link>https://www.eifel42.dev/post/2024-10-20-agile-increment/</link><pubDate>Sun, 20 Oct 2024 11:50:55 +0200</pubDate><guid>https://www.eifel42.dev/post/2024-10-20-agile-increment/</guid><description>&lt;h2 id="what-is-an-increment---a-business-analysis-perspective"&gt;What is an increment? - A Business Analysis Perspective&lt;/h2&gt;
&lt;p&gt;Agile methods are standard in software development and are expected to produce results. The &lt;strong&gt;Scrum guide&lt;/strong&gt; defines these results as increments.&lt;/p&gt;
&lt;p&gt;A manager in the software industry highlighted that her organization utilizes agile methods. However, she is interested in documenting the workshop outcomes rather than just engaging in agile discussions. This reflects a common &lt;strong&gt;requirements analysis&lt;/strong&gt; challenge in &lt;strong&gt;agile transformation&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="what-is-an-increment"&gt;What is an increment?&lt;/h2&gt;
&lt;p&gt;Agile methods are standard in software development and are expected to produce results. The Scrum guide defines these results as increments. Scrum is an agile and lightweight framework. A manager in the software industry highlighted that her organization utilizes agile methods. However, she is interested in documenting the workshop outcomes rather than just engaging in agile discussions.&lt;/p&gt;
&lt;p&gt;I believe that embracing agile methods is about generating business value across all aspects of the business.&lt;/p&gt;
&lt;h2 id="scrum-guide"&gt;Scrum Guide&lt;/h2&gt;
&lt;p&gt;The Scrum Guide 2020 describes the term of the Increment:&lt;/p&gt;
&lt;h3 id="increment"&gt;Increment&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;An Increment is a concrete stepping stone toward the Product Goal. Each Increment is additive to all prior Increments and thoroughly verified, ensuring that all Increments work together. To provide value, the Increment must be usable.
Multiple Increments may be created within a Sprint. The sum of the Increments is presented at the Sprint Review thus supporting empiricism. However, an Increment may be delivered to stakeholders prior to the end of the Sprint. The Sprint Review should never be considered a gate to releasing value.
Work cannot be considered part of an Increment unless it meets the Definition of Done (&lt;a href="https://scrumguides.org/scrum-guide.html#increment"&gt;Scrum Guide#increment&lt;/a&gt;).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Sprint strives to create something of value that aligns with the organization&amp;rsquo;s or product&amp;rsquo;s mission.&lt;/p&gt;
&lt;p&gt;Incorporating agile methods into other areas of knowledge work is an idea worth considering. When using agile methods, it&amp;rsquo;s important to note that they do not prohibit the creation of diagrams. The primary focus is on ensuring that the outcome is valuable and aligns with the overall mission. In traditional finance, business value is often measured in terms of profits and cost contribution. However, German drugstore DM has introduced a concept called &amp;ldquo;valuation accounting or value-development accounting (Wertbildungsrechnung)&amp;rdquo;, which takes into account a broader range of factors than just profit maximization. This approach has the potential to lead to more sustainable and resilient business models in the medium and long term (&lt;a href="https://next-u.de/2018/10/31/nutzen-statt-gewinnmaximierung-mit-der-wertbildungsrechnung/"&gt;Next-U Werbildungsrechnung&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Forgotten Knowledge</title><link>https://www.eifel42.dev/post/2024-08-01-documentation-cathedral/</link><pubDate>Thu, 01 Aug 2024 20:21:43 +0100</pubDate><guid>https://www.eifel42.dev/post/2024-08-01-documentation-cathedral/</guid><description>Software architecture documentation importance analyzed through historical perspective. Business analysis of knowledge preservation by Stefan Zils.</description></item><item><title>Javaland 2024, Nürburgring</title><link>https://www.eifel42.dev/post/2024-05-25-javaland-eifel/</link><pubDate>Sat, 25 May 2024 21:21:42 +0100</pubDate><guid>https://www.eifel42.dev/post/2024-05-25-javaland-eifel/</guid><description>&lt;h2 id="a-java-software-development-conference"&gt;A Java Software Development Conference&lt;/h2&gt;
&lt;figure class="center-image"&gt;
 &lt;a href="https://www.eifel42.dev/images/2024-05-25-javaland.webp" data-size="764x389"&gt;
 &lt;picture&gt;
 &lt;source srcset="https://www.eifel42.dev/images/2024-05-25-javaland-400w.avif 400w,
 https://www.eifel42.dev/images/2024-05-25-javaland-600w.avif 600w,
 https://www.eifel42.dev/images/2024-05-25-javaland.avif 764w,
 https://www.eifel42.dev/images/2024-05-25-javaland@2x.avif 1528w"
 type="image/avif"
 sizes="(max-width: 480px) 400px, (max-width: 768px) 600px, 764px"&gt;
 &lt;source srcset="https://www.eifel42.dev/images/2024-05-25-javaland-400w.webp 400w,
 https://www.eifel42.dev/images/2024-05-25-javaland-600w.webp 600w,
 https://www.eifel42.dev/images/2024-05-25-javaland.webp 764w,
 https://www.eifel42.dev/images/2024-05-25-javaland@2x.webp 1528w"
 type="image/webp"
 sizes="(max-width: 480px) 400px, (max-width: 768px) 600px, 764px"&gt;
 &lt;img src="https://www.eifel42.dev/images/2024-05-25-javaland.webp"
 alt="Javaland 2024 conference at Nürburgring, Eifel"
 width="764"
 height="389"
 loading="eager"
 fetchpriority="high"
 decoding="async"
 sizes="(max-width: 480px) 400px, (max-width: 768px) 600px, 764px"&gt;
 &lt;/picture&gt;
 &lt;/a&gt;
 &lt;figcaption&gt;Javaland Nürburgring (Eifel), 2024&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;In April, the German Java conference took place at the Nürburgring. It was a new and great experience. It was the first time that I did not have to plan a trip to learn about on-site software development.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s amazing how life can come full circle. When I was a student, I used to listen to rock music at the Rock am Ring festival. Now, I find myself in the audience at the top of the software development scene.&lt;/p&gt;
&lt;p&gt;After a month of deep reflection and revisiting the recorded sessions, a significant trend in enterprise software development emerged:&lt;/p&gt;
&lt;h3 id="domain-driven-design"&gt;Domain Driven Design&lt;/h3&gt;
&lt;p&gt;I enjoyed the talks about Domain-Driven Design (DDD) architecture and business views, the discussions about exemplary architecture, and the thinking in the modules. Since I read Eric Evans&amp;rsquo;s Blue Book for the first time, Domain-Driven-Design has become the de facto standard for mapping business needs into modern architectures.&lt;/p&gt;
&lt;p&gt;Behavior-Driven-Design (BDD) is a theoretical concept for me and a practical tool I regularly incorporate into my work.&lt;/p&gt;
&lt;p&gt;Like every methodology, both approaches have a tradeoff between technology, business needs and values, and costs.&lt;/p&gt;
&lt;h3 id="event-sourcing"&gt;Event Sourcing&lt;/h3&gt;
&lt;p&gt;The talks about event sourcing, particularly Kafka, were overcrowded. I like the ideas for event sourcing and stream processing considerably (Apache Kafka, Apache ksqlDB, Apache Flink, etc.). However, using it in a productive environment still has a high learning curve and significantly influences the software architecture.&lt;/p&gt;
&lt;h3 id="green-software-development"&gt;Green Software Development&lt;/h3&gt;
&lt;p&gt;Green software development is not just a trend, but a necessity in the face of increasing energy consumption from technologies like cloud computing and AI systems. By prioritizing energy efficiency, we can ensure that energy savings become a cornerstone in developing software systems, such as microservices running in the cloud, thereby contributing to a more sustainable and cost-effective future.&lt;/p&gt;</description></item><item><title>GDPR Compliance Pipeline</title><link>https://www.eifel42.dev/post/2024-05-25-gdpr-pipeline/</link><pubDate>Sat, 25 May 2024 20:16:42 +0100</pubDate><guid>https://www.eifel42.dev/post/2024-05-25-gdpr-pipeline/</guid><description>&lt;p&gt;In January, I mentioned that the European Union offers a &lt;a href="https://www.eifel42.dev/post/2024-01-13-eu-gdpr-tool/" title="free compliance checker"&gt;free GDPR compliance checker&lt;/a&gt;. As an &lt;strong&gt;business analyst&lt;/strong&gt; , I analyze how &lt;strong&gt;business process automation&lt;/strong&gt; can streamline &lt;strong&gt;compliance requirements analysis&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Small and medium-sized businesses can benefit greatly from using their websites as digital business cards. For example, I enjoy receiving feedback and knowing that people appreciate my posts. Actively tracking website visitors is too time-consuming for me. There are other marketing activities that are more target-oriented.&lt;/p&gt;
&lt;p&gt;When the EU introduced laws about cookie banners, I found it daunting to comply. However, I realized it was a chance to rethink my marketing strategies and ensure user privacy. This shift empowered me to understand that I do not have to track every visitor to be successful.&lt;/p&gt;
&lt;p&gt;Hugo does not create cookies by default. I will ensure that future updates only create cookies with my permission. Web design is not my main focus. As a hands-on architect, I need to stay updated on the latest techniques. Even open-source software can change key quality features over time, so I will verify cookie compliance after each deployment.&lt;/p&gt;
&lt;h3 id="github-actions-job"&gt;GitHub Actions Job&lt;/h3&gt;
&lt;p&gt;Since I only write a limited number of posts or articles per quarter, I do not have to consider the execution times.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The GitHub action includes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Installing the latest version of the Website Evidence Collector.&lt;/li&gt;
&lt;li&gt;Running the tool.&lt;/li&gt;
&lt;li&gt;Storing the result on GitHub for ten days.&lt;/li&gt;
&lt;li&gt;Terminate the job if one or more cookies are discovered. The GitHub platform automatically triggers error notifications.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="github-job-collect-evidence"&gt;GitHub Job collect-evidence&lt;/h4&gt;
&lt;div class="gh-codeblock"&gt;
 &lt;div class="gh-codeblock-header"&gt;
 &lt;span class="gh-codeblock-lang"&gt;YAML&lt;/span&gt;
 &lt;button class="gh-copy-btn"&gt;
 &lt;svg class="gh-icon gh-icon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;svg class="gh-icon gh-icon-check" viewBox="0 0 16 16" width="16" height="16" fill="currentColor"&gt;
 &lt;path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.75.75 0 0 1 1.06-1.06L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
 &lt;div class="gh-codeblock-body"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;span class="lnt"&gt;25
&lt;/span&gt;&lt;span class="lnt"&gt;26
&lt;/span&gt;&lt;span class="lnt"&gt;27
&lt;/span&gt;&lt;span class="lnt"&gt;28
&lt;/span&gt;&lt;span class="lnt"&gt;29
&lt;/span&gt;&lt;span class="lnt"&gt;30
&lt;/span&gt;&lt;span class="lnt"&gt;31
&lt;/span&gt;&lt;span class="lnt"&gt;32
&lt;/span&gt;&lt;span class="lnt"&gt;33
&lt;/span&gt;&lt;span class="lnt"&gt;34
&lt;/span&gt;&lt;span class="lnt"&gt;35
&lt;/span&gt;&lt;span class="lnt"&gt;36
&lt;/span&gt;&lt;span class="lnt"&gt;37
&lt;/span&gt;&lt;span class="lnt"&gt;38
&lt;/span&gt;&lt;span class="lnt"&gt;39
&lt;/span&gt;&lt;span class="lnt"&gt;40
&lt;/span&gt;&lt;span class="lnt"&gt;41
&lt;/span&gt;&lt;span class="lnt"&gt;42
&lt;/span&gt;&lt;span class="lnt"&gt;43
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;collect-evidence&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;runs-on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ubuntu-latest&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;needs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;deploy.....&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Install jq&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; sudo apt-get install jq
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; sudo wget https://github.com/mikefarah/yq/releases/download/v4.6.1/yq_linux_amd64 -O /usr/bin/yq &amp;amp;&amp;amp; sudo chmod +x /usr/bin/yq&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Setup Node.js&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;actions/setup-node@v4&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;with&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;node-version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;18&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Install Cypress&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;npm install cypress&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Install Website Evidence Collector&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;npm install --global https://github.com/EU-EDPS/website-evidence-collector/tarball/latest&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Collect evidence from websites&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;collect-eifel42&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; website-evidence-collector -y -q --no-output https://www.eifel42.dev/ &amp;gt; eifel42.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; yq e -j eifel42.yaml &amp;gt; eifel42.json&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Upload evidence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;actions/upload-artifact@v4.3.3&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;with&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;evidence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; eifel42.yaml &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Check cookies eifel42&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; isEmpty=$(jq &amp;#39;.cookies | length == 0&amp;#39; eifel42.json)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; if [ &amp;#34;$isEmpty&amp;#34; = &amp;#34;true&amp;#34; ]; then
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; echo &amp;#34;Cookies array is empty&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; else
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; echo &amp;#34;Cookies array is not empty&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; exit -1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; fi&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="links"&gt;Links&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.eifel42.dev/docs/2024-05-25-eifel42.yaml"&gt;Example of website-evidence-collector output&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>European Union provides a GDPR compliance tool Website</title><link>https://www.eifel42.dev/post/2024-01-13-eu-gdpr-tool/</link><pubDate>Sat, 13 Jan 2024 20:14:39 +0100</pubDate><guid>https://www.eifel42.dev/post/2024-01-13-eu-gdpr-tool/</guid><description>&lt;h2 id="website-evidence-collector"&gt;Website Evidence Collector&lt;/h2&gt;
&lt;p&gt;The European Union announced a tool for GDPR compliance checks for websites. This tool can be used manually, in an automated deployment process, and security vulnerability checks.
It can be an easy and cost-efficient approach for small and medium companies (Mittelstand).&lt;/p&gt;
&lt;h3 id="links"&gt;Links&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://edps.europa.eu/edps-inspection-software_en"&gt;EDPS Inspection Software&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/EU-EDPS/website-evidence-collector"&gt;GitHub Website-evidence-collector&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Carbon Footprint of static and dynamic websites</title><link>https://www.eifel42.dev/post/2024-01-01-carbon-footprint-website/</link><pubDate>Mon, 01 Jan 2024 14:05:12 +0100</pubDate><guid>https://www.eifel42.dev/post/2024-01-01-carbon-footprint-website/</guid><description>&lt;h2 id="why-hugo"&gt;Why Hugo?&lt;/h2&gt;
&lt;p&gt;The decision to switch from WordPress to a static website engine like Hugo was easy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Once, my provider complained about the version of PHP and wanted to charge me extra for running an older PHP version.&lt;/li&gt;
&lt;li&gt;Furthermore, a modern and beautiful WordPress site requires a lot of time.&lt;/li&gt;
&lt;li&gt;Another time, the My SQL database had problems, and I lost my settings and content.&lt;/li&gt;
&lt;li&gt;During the years, I got a lot of attack attempts from all over the world. E.g., the Kali Linux distribution contains a free, open-source vulnerability scanner for WordPress (wpscan).&lt;/li&gt;
&lt;li&gt;At least run such a system; you need more diligence on the European GDPR.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In conclusion, you need a lot of time for administration and extra knowledge to run WordPress. I grew up as a software developer developing web-based information systems and found running WordPress too complicated for my use cases.&lt;/p&gt;
&lt;p&gt;Hugo lets me concentrate on the essentials. Like now, I can quickly write something in Markdown. You can store the text file and all modifications in a Source Repository like GitHub. The access times to my content have improved considerably.&lt;/p&gt;
&lt;h3 id="intention"&gt;Intention&lt;/h3&gt;
&lt;p&gt;The CO2 emissions of a static website seem many times lower. It may be a small step to save the planet, but if it suits your business or use cases, it can help.&lt;/p&gt;
&lt;h3 id="microsoft-copilot"&gt;Microsoft Copilot&lt;/h3&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer: The following section is entirely AI-generated.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;USE CASE: demonstrate and compare modern AI Assistants.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="question"&gt;Question&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Please compare the co2 food print static website to wordpress&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="microsoft-copilot-answer"&gt;Microsoft Copilot Answer&lt;/h4&gt;
&lt;p&gt;The carbon footprint of a website depends on various factors, including the design, the number of page views, and the efficiency of the underlying technology.&lt;/p&gt;
&lt;p&gt;An average website produces 4.61 grams of CO2 for every page view¹. For websites that have an average of 10,000 page views per month, that makes 553 kilograms of CO2 per year¹. According to the Website Carbon Calculator, the average web page they test produces approximately 0.5 grams of CO2 per pageview². That translates to 60 kg of CO2 per year for a website with 10,000 monthly pageviews².&lt;/p&gt;</description></item><item><title>Generative AI</title><link>https://www.eifel42.dev/post/2023-12-27-generative-ai/</link><pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate><guid>https://www.eifel42.dev/post/2023-12-27-generative-ai/</guid><description>&lt;p&gt;I want to end the year with an article on generative AI (genAI). Although the algorithms and methods are already decades old, 2023 is when the impressive possibilities have reached the masses.&lt;/p&gt;
&lt;p&gt;Spreadsheets and calculators have revolutionized the work of accounting and finance departments. AI will fundamentally change knowledge work. The possibilities offered by artificial intelligence are enriching and liberating. In the field of software development, AI assistants (Github Copilot, JetBrains AI Assistant, etc.) will free us from tedious routine tasks and help us to write better software (technical debt) and secure code (security vulnerabilities).&lt;/p&gt;
&lt;p&gt;In software development, knowledge of the business domain, the possibility of software architectures, soft skills, and business analysis methodologies will become even more critical.&lt;/p&gt;
&lt;p&gt;To show the possibilities and limitations of AI tools, I asked Google Bard, Microsoft Copilot, and OpenAI ChatGPT to create a blog about Oswald Ungers. Oswald Ungers was an architect from my hometown, Kaisersesch. He is known as a hidden champion in both the USA and Germany. He is unknown in Kaisersesch itself.&lt;/p&gt;
&lt;p&gt;The first test&amp;rsquo;s impressive results clearly showed that Kaisersesch is not widely appearing in public sources. It led to significant detail errors in the generated blogs.&lt;/p&gt;
&lt;p&gt;Please decide for yourself!&lt;/p&gt;
&lt;h2 id="sections"&gt;Sections&lt;/h2&gt;
&lt;p&gt;The test consists of five parts. Please consider that Google Bard is in the experimental phase, Microsoft Copilot is at the beginning, and it uses the free version of ChatGPT 3.5.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.eifel42.dev/post/2023-12-27-part-i-oswald-ungers-generative-ai/"&gt;Part I&lt;/a&gt; contains three blogs created with the AI mentioned above assistants. Each AI assistant answered the same question:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Please write a blog about Oswald Ungers and the influences from his hometown. Consider his influences on modern architecture and his professorships.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The first test showed that all AI models needed in-depth knowledge of Kaisersesch. As a result of this, I asked:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Please generate a blog about the history of Kaisersesch and its architecture.&lt;/p&gt;</description></item><item><title>Part I-GenAI (Oswald Ungers)</title><link>https://www.eifel42.dev/post/2023-12-27-part-i-oswald-ungers-generative-ai/</link><pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate><guid>https://www.eifel42.dev/post/2023-12-27-part-i-oswald-ungers-generative-ai/</guid><description>&lt;h3 id="use-case"&gt;Use Case&lt;/h3&gt;
&lt;p&gt;Where are you from? We hear this question often, every day. I usually answer the question with the close cities of Koblenz (Rhine), the Roman city of Trier or the Nürburgring, the vulcano lakes (Maare), the picturesque castles or places in the Eifel and the Moselle (e.g., Eltz Castle, Beilstein, Cochem, Monreal, etc.).&lt;/p&gt;
&lt;p&gt;As a software architect, I refer to Oswald Ungers, an architect born in my hometown, Kaisersesch. Oswald Ungers influences modern architecture. Known buildings are the Alfred-Wegener-Institut in Kiel and the Messe Torhaus in Frankfurt.&lt;/p&gt;
&lt;p&gt;Oswald Ungers is known a little; he is suitable as a test for generative AI. I asked Microsoft Copilot, ChatGPT 3.5, and Google Bard to create a blog.&lt;/p&gt;
&lt;h3 id="test-question"&gt;Test Question&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Please write a blog about Oswald Ungers and the influences from his hometown. Consider his influences on modern architecture and his professorships.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="chatgpt-35"&gt;ChatGPT 3.5&lt;/h3&gt;
&lt;p&gt;Oswald Mathias Ungers, an icon in modern architecture, was profoundly shaped by the influences of his hometown and his academic roles. Born in Kaisersesch, Germany, in 1926, Ungers&amp;rsquo; architectural journey was a fusion of his formative experiences in Kaisersesch and the profound impact of his academic tenures. Let&amp;rsquo;s explore the symbiotic relationship between Ungers&amp;rsquo; hometown influences, his contributions to modern architecture, and his influential roles as an educator.&lt;/p&gt;
&lt;h4 id="kaisersesch-a-crucible-of-inspiration"&gt;Kaisersesch: A Crucible of Inspiration&lt;/h4&gt;
&lt;h5 id="cultural-heritage-and-architectural-context"&gt;Cultural Heritage and Architectural Context:&lt;/h5&gt;
&lt;p&gt;Kaisersesch, nestled in the idyllic Rhineland-Palatinate, served as an early architectural canvas for Ungers. The town&amp;rsquo;s heritage, steeped in historical architecture and regional aesthetics, likely instilled in him an appreciation for context, form, and structure. The timber-framed houses and the picturesque landscapes might have laid the groundwork for his design sensibilities.&lt;/p&gt;
&lt;h5 id="natures-influence"&gt;Nature&amp;rsquo;s Influence:&lt;/h5&gt;
&lt;p&gt;The serene landscapes of the Eifel region, with their rolling hills and verdant panoramas, possibly fostered Ungers&amp;rsquo; deep connection between architecture and the natural environment. This communion between built structures and the surrounding landscape became a recurring theme in his designs.&lt;/p&gt;</description></item><item><title>Part II-GenAI (ChatGPT 3.5)</title><link>https://www.eifel42.dev/post/2023-12-27-part-ii-kaisersesch-chatgpt-35/</link><pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate><guid>https://www.eifel42.dev/post/2023-12-27-part-ii-kaisersesch-chatgpt-35/</guid><description>&lt;h3 id="question"&gt;Question&lt;/h3&gt;
&lt;p&gt;Please generate a blog about the history of Kaisersesch and its architecture.&lt;/p&gt;
&lt;h3 id="chatgpt-35"&gt;ChatGPT 3.5&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Unveiling the Timeless Beauty: A Journey Through Kaisersesch&amp;rsquo;s Architectural Heritage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nestled within the serene landscapes of the Eifel region in Germany lies the picturesque town of Kaisersesch, a place steeped in rich history and adorned with an architectural tapestry that speaks volumes about its past. This quaint town, with its cobblestone streets and historical edifices, serves as a living testament to a bygone era.&lt;/p&gt;
&lt;h4 id="a-glimpse-into-the-past"&gt;&lt;strong&gt;A Glimpse into the Past&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Kaisersesch, with its origins dating back to Roman times, has traversed through the epochs of history, witnessing the rise and fall of empires, wars, and societal transformations. Its name itself, &amp;ldquo;Kaisersesch,&amp;rdquo; derives from the Latin &amp;ldquo;Civitas Cesarea,&amp;rdquo; signifying its imperial past.
The town&amp;rsquo;s story can be traced to the medieval ages when it was granted city rights, marking the beginning of its development. Throughout centuries, it flourished as a center of trade and craftsmanship, leaving behind a legacy that echoes through its architecture.&lt;/p&gt;
&lt;h4 id="architectural-marvels"&gt;&lt;strong&gt;Architectural Marvels&lt;/strong&gt;&lt;/h4&gt;
&lt;h4 id="st-martin"&gt;&lt;strong&gt;St. Martin&amp;rsquo;s Church&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;At the heart of Kaisersesch stands St. Martin&amp;rsquo;s Church, a breathtaking architectural masterpiece that stands as a testament to the town&amp;rsquo;s spiritual heritage. This towering structure, with its Gothic elements and intricate details, captivates visitors, offering a glimpse into the town&amp;rsquo;s religious fervor and architectural prowess of the time.&lt;/p&gt;
&lt;h5 id="half-timbered-houses"&gt;&lt;strong&gt;Half-Timbered Houses&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;Wandering through the town&amp;rsquo;s streets, one encounters a charming array of half-timbered houses adorned with vibrant colors and ornate facades. These houses, with their timber frames and intricate designs, showcase the craftsmanship and skill of artisans from centuries past. Each beam tells a story, preserving the essence of Kaisersesch&amp;rsquo;s cultural heritage.&lt;/p&gt;
&lt;h5 id="medieval-gates-and-walls"&gt;&lt;strong&gt;Medieval Gates and Walls&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;Remnants of the town&amp;rsquo;s defensive walls and gates harken back to an era of fortified towns and strategic defenses. The Eigelbtor (Egg-Yolk Gate) and other remaining sections of the town&amp;rsquo;s walls serve as silent witnesses to the town&amp;rsquo;s history, evoking a sense of nostalgia and fascination among visitors.&lt;/p&gt;</description></item><item><title>Part III-GenAI (Google Bard)</title><link>https://www.eifel42.dev/post/2023-12-27-part-iii-kaisersesch-google-bard/</link><pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate><guid>https://www.eifel42.dev/post/2023-12-27-part-iii-kaisersesch-google-bard/</guid><description>&lt;p&gt;Please consider that Google Bard is in the experimental phase! Google Bard always generates three proposals.&lt;/p&gt;
&lt;h3 id="question"&gt;Question&lt;/h3&gt;
&lt;p&gt;Please generate a blog about the history of Kaisersesch and its architecture.&lt;/p&gt;
&lt;h4 id="proposal-i"&gt;Proposal I&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Kaisersesch: A Journey Through Time and Architecture&lt;/strong&gt;
Nestled amidst the picturesque Moselle Valley in Western Germany, Kaisersesch is a charming town steeped in rich history and captivating architecture. Its name, meaning &amp;ldquo;Emperor&amp;rsquo;s Rock,&amp;rdquo; pays homage to its strategic location along the Roman Limes, an ancient fortified border that once protected the Roman Empire from Germanic tribes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Roman Era: A Legacy of Fortifications&lt;/strong&gt;
Kaisersesch&amp;rsquo;s Roman heritage is evident in the ruins of the Kaiserstadt, a fortified settlement that once served as a crucial outpost for the Roman army. The remains of a gatehouse, towers, and ramparts stand as silent sentinels of the town&amp;rsquo;s past, offering a glimpse into the bustling life of this once-thriving Roman garrison.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Middle Ages: A Tapestry of Churches and Castles&lt;/strong&gt;
As the Roman Empire waned, Kaisersesch entered the Middle Ages, a period marked by the construction of imposing castles and grand churches. The imposing ruins of Castle Pyrmont, perched atop a hill overlooking the town, once served as a stronghold for the Counts of Sayn. Nearby, the Collegiate Church of St. Martin, a magnificent example of Romanesque architecture, stands as a testament to the town&amp;rsquo;s spiritual heritage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Renaissance and Baroque Eras: A Flourishing of Art and Culture&lt;/strong&gt;
The Renaissance and Baroque eras brought a surge of artistic and architectural brilliance to Kaisersesch. The town&amp;rsquo;s streets were adorned with ornate fountains, graceful half-timbered houses, and majestic townhouses. The Renaissance-style Town Hall, with its intricate carvings and arched windows, stands as a symbol of this flourishing period.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Industrial Age: A Transformation into a Thriving Town&lt;/strong&gt;
The 19th century marked a turning point for Kaisersesch, as it embraced the Industrial Revolution. The town&amp;rsquo;s strategic location along the railway network and the development of industries such as textiles and papermaking transformed it into a bustling commercial center. This period saw the construction of impressive factories, warehouses, and railway stations, further shaping the town&amp;rsquo;s urban landscape.&lt;/p&gt;</description></item><item><title>Part IV-GenAI (Microsoft Copilot)</title><link>https://www.eifel42.dev/post/2023-12-27-part-iv-kaisersesch-microsoft-copilot/</link><pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate><guid>https://www.eifel42.dev/post/2023-12-27-part-iv-kaisersesch-microsoft-copilot/</guid><description>&lt;p&gt;Please consider that Microsoft Copilot is at the beginning. I used the Microsoft Copliot with maximum accuracy.&lt;/p&gt;
&lt;h3 id="question"&gt;Question&lt;/h3&gt;
&lt;p&gt;Please generate a blog about the history of Kaisersesch and its architecture.&lt;/p&gt;
&lt;h3 id="the-history-and-architecture-of-kaisersesch"&gt;The History and Architecture of Kaisersesch&lt;/h3&gt;
&lt;h4 id="a-glimpse-into-the-past"&gt;A Glimpse into the Past&lt;/h4&gt;
&lt;p&gt;Kaisersesch, a town located in the Cochem-Zell district in Rhineland-Palatinate, Germany, has a rich history that dates back to prehistoric and Roman times¹². The town was once a crossroads in these ancient times, and evidence of a Roman presence has been unearthed in the form of a gravesite and a water supply line¹.&lt;/p&gt;
&lt;p&gt;In the Early Middle Ages, the town, then known as Asche, was among the Lotharingian county palatine&amp;rsquo;s holdings¹. Between 1051 and 1056, the town, now known as Esch, was first mentioned in donation documents².&lt;/p&gt;
&lt;p&gt;Esch was a court centre in the Electorate of Trier beginning in 1294². In 1320, it was heavily fortified, and the following year, it was granted town rights by King Louis the Bavarian¹. Thereafter, the town was known as Kaisersesch, which translates to &amp;ldquo;Emperor’s Esch&amp;quot;¹.&lt;/p&gt;
&lt;h4 id="times-of-turmoil"&gt;Times of Turmoil&lt;/h4&gt;
&lt;p&gt;The town faced significant destruction during the Nine Years&amp;rsquo; War in 1689 when it was almost completely destroyed by the French¹². In 1794, Kaisersesch came under French rule, during which it was stripped of its town rights¹.&lt;/p&gt;
&lt;p&gt;In 1815, the town was assigned to the Kingdom of Prussia at the Congress of Vienna¹². Since 1946, Kaisersesch has been part of the newly founded state of Rhineland-Palatinate¹². On 22 November 1997, Kaisersesch was granted town rights once again¹.&lt;/p&gt;
&lt;h4 id="architecture-and-landmarks"&gt;Architecture and Landmarks&lt;/h4&gt;
&lt;p&gt;While specific architectural details of Kaisersesch are not readily available, the town&amp;rsquo;s history suggests a blend of architectural styles influenced by its past. The fortifications from the 14th century would have left their mark on the town&amp;rsquo;s layout and structures. The destruction during the Nine Years&amp;rsquo; War and subsequent rebuilding likely introduced new architectural elements.&lt;/p&gt;</description></item></channel></rss>