<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Technology at AMCON - AMCON Software GmbH</title>
	<atom:link href="https://amcon.de/en/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>https://amcon.de/en/category/technology/</link>
	<description></description>
	<lastBuildDate>Wed, 06 May 2026 11:16:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://amcon.de/wp-content/uploads/2025/06/AMCON_Dreieck_2022_RGB_512px.svg</url>
	<title>Technology at AMCON - AMCON Software GmbH</title>
	<link>https://amcon.de/en/category/technology/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Development of an LLM system at AMCON</title>
		<link>https://amcon.de/en/llm-system-development-at-amcon/</link>
		
		<dc:creator><![CDATA[verenadrees]]></dc:creator>
		<pubDate>Thu, 06 Mar 2025 12:29:41 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://amcon.de/?p=10358</guid>

					<description><![CDATA[<p>The integration of artificial intelligence (AI) in companies is a necessity nowadays. At AMCON, we work to develop efficient and secure AI systems.</p>
<p>Der Beitrag <a href="https://amcon.de/en/llm-system-development-at-amcon/">Development of an LLM system at AMCON</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="10358" class="elementor elementor-10358" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-4503d3a e-con-full e-flex e-con e-parent" data-id="4503d3a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-9bbaad2 e-flex e-con-boxed e-con e-child" data-id="9bbaad2" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6be24ea elementor-widget elementor-widget-text-editor" data-id="6be24ea" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Integrating artificial intelligence (AI) into business processes is no longer a luxury — it’s a necessity. At AMCON, we are dedicated to developing efficient and secure AI systems to optimize our internal workflows. A key focus lies in the development of a local Large Language Model (LLM) that operates with Retrieval-Augmented Generation (RAG) and ReACT agents. Data privacy is a top priority: all data remains on local servers and is never transmitted to the internet.</p>								</div>
				</div>
					</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-54bc8fc e-flex e-con-boxed e-con e-parent" data-id="54bc8fc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-8a20cd4 elementor-widget elementor-widget-spacer" data-id="8a20cd4" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-98d44db elementor-widget elementor-widget-image" data-id="98d44db" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img fetchpriority="high" decoding="async" width="1024" height="428" src="https://amcon.de/wp-content/uploads/2025/03/2025_02_05_entwicklungs-oekosystem-1024x428.png" class="attachment-large size-large wp-image-8542" alt="entwicklungsoekosystem" srcset="https://amcon.de/wp-content/uploads/2025/03/2025_02_05_entwicklungs-oekosystem-1024x428.png 1024w, https://amcon.de/wp-content/uploads/2025/03/2025_02_05_entwicklungs-oekosystem-300x125.png 300w, https://amcon.de/wp-content/uploads/2025/03/2025_02_05_entwicklungs-oekosystem-768x321.png 768w, https://amcon.de/wp-content/uploads/2025/03/2025_02_05_entwicklungs-oekosystem-1536x642.png 1536w, https://amcon.de/wp-content/uploads/2025/03/2025_02_05_entwicklungs-oekosystem-2048x856.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-37e8f81 elementor-widget elementor-widget-heading" data-id="37e8f81" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">AI Terminology and Key Concepts</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-0815f3f elementor-widget elementor-widget-heading" data-id="0815f3f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What are LLMs?</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-fda4a7e elementor-widget elementor-widget-text-editor" data-id="fda4a7e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Large Language Models (LLMs) such as GPT-4, Llama 3.2, or Gemini 2.0 are AI systems designed to process and generate natural language. They can analyze text, create summaries, or even generate code. These models are based on transformer architectures and use mechanisms like <em data-start="1011" data-end="1022">attention</em> to make context-aware predictions.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-3e5d4e9 elementor-widget elementor-widget-heading" data-id="3e5d4e9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Embedding &amp; RAG</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-8d98986 elementor-widget elementor-widget-text-editor" data-id="8d98986" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="1059" data-end="1492">Embedding models convert text into numerical vectors, enabling AI systems to detect relationships between words, sentences, or entire documents. RAG (Retrieval-Augmented Generation) enhances LLMs by incorporating external knowledge sources. This means that the model doesn&#8217;t rely solely on its pre-trained data but can retrieve relevant information from internal databases or documents. RAG works in two phases:</p><ul data-start="1493" data-end="1661"><li data-start="1493" data-end="1556"><p data-start="1495" data-end="1556">The <strong data-start="1499" data-end="1518">retrieval phase</strong>, which identifies relevant documents.</p></li><li data-start="1557" data-end="1661"><p data-start="1559" data-end="1661">The <strong data-start="1563" data-end="1583">generation phase</strong>, where the AI formulates an informed response based on the retrieved content.</p></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-9986da8 elementor-widget elementor-widget-heading" data-id="9986da8" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">ReACT-Agenten</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-d61991a elementor-widget elementor-widget-text-editor" data-id="d61991a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>ReACT (Reasoning + Acting) is an approach that allows AI agents to do more than just respond to prompts. They are capable of complex reasoning and action execution. For example, they can intelligently evaluate data from tools like Jira or Confluence. By combining reinforcement learning with rule-based decision-making, these agents can autonomously prioritize requests and delegate tasks. They have access to a range of tools which they use as needed — such as querying APIs, searching internal data sources, or retrieving external information.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-417bd58 elementor-widget-divider--view-line_icon elementor-view-default elementor-widget-divider--element-align-center elementor-widget elementor-widget-divider" data-id="417bd58" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
							<div class="elementor-icon elementor-divider__element">
					</div>
						</span>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-225fede elementor-widget elementor-widget-heading" data-id="225fede" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Use Case: Local LLM at AMCON</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-eff023d elementor-widget elementor-widget-spacer" data-id="eff023d" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-ba75e69 elementor-widget elementor-widget-image" data-id="ba75e69" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="1024" height="681" src="https://amcon.de/wp-content/uploads/2025/03/2025_02_05_agentenbasierte_loesung_b-1024x681.png" class="attachment-large size-large wp-image-8543" alt="agentbasierte_loesung_ai" srcset="https://amcon.de/wp-content/uploads/2025/03/2025_02_05_agentenbasierte_loesung_b-1024x681.png 1024w, https://amcon.de/wp-content/uploads/2025/03/2025_02_05_agentenbasierte_loesung_b-300x199.png 300w, https://amcon.de/wp-content/uploads/2025/03/2025_02_05_agentenbasierte_loesung_b-768x511.png 768w, https://amcon.de/wp-content/uploads/2025/03/2025_02_05_agentenbasierte_loesung_b-1536x1021.png 1536w, https://amcon.de/wp-content/uploads/2025/03/2025_02_05_agentenbasierte_loesung_b-2048x1362.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-83501ff elementor-widget elementor-widget-heading" data-id="83501ff" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Technological Implementation</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-f73cbe5 elementor-widget elementor-widget-text-editor" data-id="f73cbe5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>The system is built on several key components:</p><p data-start="291" data-end="547"><strong data-start="291" data-end="311">Data &amp; Retrieval</strong><br data-start="311" data-end="314" />Documents and content from Jira and Confluence are systematically processed and prepared for the LLM. This is achieved using a combination of regular expressions for text extraction and transformer-based models for semantic analysis.</p><p data-start="549" data-end="750"><strong data-start="549" data-end="568">Embedding &amp; RAG</strong><br data-start="568" data-end="571" />Documents are transformed into vector representations, enabling the model to access relevant information effectively. For this, we use the <code data-start="710" data-end="733">multilingual-e5-large</code> embedding model.</p><p data-start="752" data-end="1157"><strong data-start="752" data-end="778">Backend &amp; Model Access</strong><br data-start="778" data-end="781" />An internal API connects various applications with the AI system. We use <strong data-start="854" data-end="865">FastAPI</strong> to build the API interface and <strong data-start="897" data-end="905">ONNX</strong>for efficient model inference.<br data-start="936" data-end="939" />The ReACT agent can communicate with the APIs of Confluence and Jira to retrieve relevant information on demand. This is facilitated through the <strong data-start="1084" data-end="1108">Atlassian Python API</strong>, which is tailored for both Jira and Confluence.</p><p data-start="1159" data-end="1278"><strong data-start="1159" data-end="1171">Frontend</strong><br data-start="1171" data-end="1174" />A user-friendly web interface for seamless interaction with the AI model is currently under development.</p><p data-start="1280" data-end="1305"><strong data-start="1280" data-end="1303">Technologies in Use</strong></p><ul><li style="list-style-type: none;"><ul data-start="1306" data-end="1526"><li data-start="1306" data-end="1350"><p data-start="1308" data-end="1350"><strong data-start="1308" data-end="1339">Vector storage &amp; retrieval:</strong> ChromaDB</p></li><li data-start="1351" data-end="1395"><p data-start="1353" data-end="1395"><strong data-start="1353" data-end="1373">Language models:</strong> Llama 3.2 and Gemma</p></li><li data-start="1396" data-end="1526"><p data-start="1398" data-end="1526"><strong data-start="1398" data-end="1413">Frameworks:</strong> LangChain and LangGraph orchestrate complex interactions between agents, data sources, and retrieval components.</p></li></ul></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-8be61f0 elementor-widget-divider--view-line_icon elementor-view-default elementor-widget-divider--element-align-center elementor-widget elementor-widget-divider" data-id="8be61f0" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
							<div class="elementor-icon elementor-divider__element">
					</div>
						</span>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-2d153aa elementor-widget elementor-widget-heading" data-id="2d153aa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Development Challenges</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-528bfdc elementor-widget elementor-widget-heading" data-id="528bfdc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Data Privacy and Security</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-1ef48a7 elementor-widget elementor-widget-text-editor" data-id="1ef48a7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Since all data is stored locally, we had to ensure that the system never accesses external servers. Robust access controls are essential so that only authorized users can view sensitive information. We implement this using <strong data-start="1820" data-end="1833">OAuth 2.0</strong> and <strong data-start="1838" data-end="1874">role-based access control (RBAC)</strong>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-2293708 elementor-widget elementor-widget-heading" data-id="2293708" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Model Optimization</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-cfb2349 elementor-widget elementor-widget-text-editor" data-id="cfb2349" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Running an LLM locally requires powerful hardware resources. We optimized the model to strike a balance between performance and efficiency. Techniques such as <strong data-start="2061" data-end="2077">quantization</strong> (e.g. via Hugging Face’s <em data-start="2103" data-end="2117">bitsandbytes</em>) and <strong data-start="2123" data-end="2149">knowledge distillation</strong> were used to reduce memory and compute requirements.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-0692c87 elementor-widget elementor-widget-heading" data-id="0692c87" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Integration with Existing Systems</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-6aba118 elementor-widget elementor-widget-text-editor" data-id="6aba118" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Seamlessly integrating with Jira and Confluence posed a challenge due to diverse data formats. Developing specialized retrievers played a critical role. By combining <strong data-start="2410" data-end="2427">keyword-based</strong> and <strong data-start="2432" data-end="2444">semantic</strong> search methods, we ensure highly efficient and precise information retrieval.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-e823282 elementor-widget elementor-widget-heading" data-id="e823282" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Outlook: The Future of AI at AMCON</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-ff3d9ad elementor-widget elementor-widget-text-editor" data-id="ff3d9ad" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="242" data-end="328">In the coming years, we will focus on continuously improving and expanding the system:</p><p data-start="330" data-end="363"><strong data-start="335" data-end="361">Inference Optimization</strong></p><p data-start="364" data-end="496">Accelerating response times and improving precision through specialized model architectures and more efficient processing pipelines.</p><p data-start="498" data-end="537"><strong data-start="503" data-end="535">Expanded Agent Functionality</strong></p><p data-start="538" data-end="633">Development and implementation of new AI agents tailored to specific business tasks, including:</p><ul data-start="635" data-end="1156"><li data-start="635" data-end="770"><p data-start="637" data-end="770"><strong data-start="637" data-end="664">Code Improvement Agent:</strong><br data-start="664" data-end="667" />Analyzes existing code, identifies optimization opportunities, and suggests more efficient solutions.</p></li><li data-start="772" data-end="911"><p data-start="774" data-end="911"><strong data-start="774" data-end="795">Onboarding Agent:</strong><br data-start="795" data-end="798" />Assists new employees by providing relevant documentation and company policies during their onboarding process.</p></li><li data-start="913" data-end="1035"><p data-start="915" data-end="1035"><strong data-start="915" data-end="948">Project Management Assistant:</strong><br data-start="948" data-end="951" />Supports task coordination, resource allocation, and tracking of project progress.</p></li><li data-start="1037" data-end="1156"><p data-start="1039" data-end="1156"><strong data-start="1039" data-end="1060">Templating Agent:</strong><br data-start="1060" data-end="1063" />Automates the creation of templates and standard documents to boost operational efficiency.</p></li></ul><p data-start="1158" data-end="1200"><strong data-start="1163" data-end="1198">Next-Generation Language Models</strong></p><p data-start="1201" data-end="1327">Integration of newer and more powerful LLMs, such as future versions of Llama, DeepSeek, and domain-specific embedding models.</p><p data-start="1329" data-end="1367"><strong data-start="1334" data-end="1365">Adaptive Tool Use by Agents</strong></p><p data-start="1368" data-end="1559">Agents will be equipped with a flexible toolchain, allowing them to dynamically select and apply tools such as API queries, semantic search, or external data retrieval, depending on the task.</p><p data-start="1561" data-end="1598"><strong data-start="1566" data-end="1596">Enhanced Retrieval Methods</strong></p><p data-start="1599" data-end="1756">Implementation of hybrid search techniques that combine semantic embedding with classical indexing for more accurate and context-aware information retrieval.</p><p data-start="1758" data-end="1799"><strong data-start="1763" data-end="1797">Scalability and Infrastructure</strong></p><p data-start="1800" data-end="1960">Evaluation and adoption of new hardware and software solutions to scale the AI architecture, including decentralized processing and specialized AI accelerators.</p><p data-start="1962" data-end="2017"><strong data-start="1967" data-end="2015">Improved Integration with Business Processes</strong></p><p data-start="2018" data-end="2149">Ensuring seamless integration of the AI system into existing workflows and applications to further increase operational efficiency.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-1b3dd76 elementor-widget elementor-widget-spacer" data-id="1b3dd76" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-feb4489 elementor-widget elementor-widget-heading" data-id="feb4489" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusion</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e654fce elementor-widget elementor-widget-text-editor" data-id="e654fce" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>With the development of a local LLM system, AMCON has taken a significant step toward AI-driven process optimization. Through the use of <strong data-start="2313" data-end="2320">RAG</strong> and <strong data-start="2325" data-end="2341">ReACT agents</strong>, company knowledge can be leveraged more effectively — without compromising data privacy.<br data-start="2431" data-end="2434" />The future of AI at AMCON lies in the continuous advancement of these technologies to create maximum value for employees. At the same time, we remain closely aligned with proven <strong data-start="2612" data-end="2622">DevOps</strong> and <strong data-start="2627" data-end="2636">MLOps</strong> strategies to streamline the development cycle and ensure continuous improvement.</p>								</div>
				</div>
					</div>
				</div>
				</div>
		<p>Der Beitrag <a href="https://amcon.de/en/llm-system-development-at-amcon/">Development of an LLM system at AMCON</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Gamechanger for UX and public transport: How the Accessibility Act is getting everyone moving</title>
		<link>https://amcon.de/en/accessibility-act-as-a-gamechanger/</link>
		
		<dc:creator><![CDATA[verenadrees]]></dc:creator>
		<pubDate>Mon, 09 Dec 2024 13:12:06 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://amcon.de/?p=10366</guid>

					<description><![CDATA[<p>The Accessibility Act is changing UX and public transport. It brings new opportunities and challenges for everyone involved.</p>
<p>Der Beitrag <a href="https://amcon.de/en/accessibility-act-as-a-gamechanger/">Gamechanger for UX and public transport: How the Accessibility Act is getting everyone moving</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="10366" class="elementor elementor-10366" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-9f5df11 e-flex e-con-boxed e-con e-parent" data-id="9f5df11" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a0b92fa elementor-widget elementor-widget-heading" data-id="a0b92fa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What is User Experience Design (UX Design)?</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-0e33449 elementor-widget elementor-widget-text-editor" data-id="0e33449" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="231" data-end="522"><strong data-start="231" data-end="269">User Experience Design (UX Design)</strong> focuses on analyzing and optimizing the usability of a product to enhance user satisfaction and accessibility. It’s about how a user perceives their experience when interacting with a product — whether it&#8217;s software, hardware, or a combination of both. At <strong data-start="527" data-end="536">AMCON</strong>, we generally refer to UX in the context of software usage in combination with the hardware used in specific environments. We create intuitive and accessible solutions that are tailored to the needs of our users.</p><p data-start="756" data-end="781"><strong data-start="760" data-end="781">Examples at AMCON:</strong></p><p data-start="783" data-end="798"><strong data-start="783" data-end="796">Software:</strong></p><ul data-start="799" data-end="871"><li data-start="799" data-end="823"><p data-start="801" data-end="823">Windows applications</p></li><li data-start="824" data-end="839"><p data-start="826" data-end="839">Mobile apps</p></li><li data-start="840" data-end="860"><p data-start="842" data-end="860">Web applications</p></li><li data-start="861" data-end="871"><p data-start="863" data-end="871">Websites</p></li></ul><p data-start="873" data-end="888"><strong data-start="873" data-end="886">Hardware:</strong></p><ul data-start="889" data-end="1041"><li data-start="889" data-end="908"><p data-start="891" data-end="908">PCs and laptops</p></li><li data-start="909" data-end="936"><p data-start="911" data-end="936">Smartphones and tablets</p></li><li data-start="937" data-end="982"><p data-start="939" data-end="982">Ticket machines and point-of-sale systems</p></li><li data-start="983" data-end="1041"><p data-start="985" data-end="1041">Specialized monitors (e.g., passenger displays in buses)</p></li></ul><p data-start="1043" data-end="1064"><strong data-start="1043" data-end="1062">Usage Contexts:</strong></p><ul data-start="1065" data-end="1253"><li data-start="1065" data-end="1089"><p data-start="1067" data-end="1089">Working in an office</p></li><li data-start="1090" data-end="1115"><p data-start="1092" data-end="1115">On the go or outdoors</p></li><li data-start="1116" data-end="1155"><p data-start="1118" data-end="1155">Environments with high noise levels</p></li><li data-start="1156" data-end="1198"><p data-start="1158" data-end="1198">Usage on small screens or under stress</p></li><li data-start="1156" data-end="1198"><p data-start="1158" data-end="1198">External factors such as strong sunlight or darkness</p></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-85d5b90 elementor-widget elementor-widget-heading" data-id="85d5b90" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Accessibility: A Key Pillar of Modern UX</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-6c3c9d8 elementor-widget elementor-widget-text-editor" data-id="6c3c9d8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Accessibility is a core principle of modern UX design. It ensures that digital products are usable by people with a wide range of abilities and limitations. Designing for accessibility not only enables all users to benefit from digital solutions, but also improves overall user satisfaction and promotes inclusion.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-48b104d elementor-widget elementor-widget-heading" data-id="48b104d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Technologies that break down barriers</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-dad68af elementor-widget elementor-widget-text-editor" data-id="dad68af" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>A common example of a technology originally designed as an assistive tool — now widely used — is <strong data-start="1775" data-end="1791">autocomplete</strong> in text input. Similarly, <strong data-start="1818" data-end="1835">voice control</strong> and <strong data-start="1840" data-end="1860">smart assistants</strong> enhance convenience while also enabling many people to access digital tools. These features represent design that fosters <strong data-start="1983" data-end="2005">true participation</strong> and inclusivity.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-2d70e26 elementor-widget-divider--view-line_icon elementor-view-default elementor-widget-divider--element-align-center elementor-widget elementor-widget-divider" data-id="2d70e26" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
							<div class="elementor-icon elementor-divider__element">
					</div>
						</span>
		</div>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-834748c e-flex e-con-boxed e-con e-parent" data-id="834748c" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6efe884 elementor-widget elementor-widget-heading" data-id="6efe884" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Legal Background of the BFSG</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-24fa986 elementor-widget elementor-widget-text-editor" data-id="24fa986" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="252" data-end="620">The <strong data-start="256" data-end="299">Barrierefreiheitsstärkungsgesetz (BFSG)</strong>, or Accessibility Enhancement Act, is a German law passed on <strong data-start="361" data-end="378">July 22, 2021</strong>, based on the <strong data-start="393" data-end="449">EU Accessibility Directive (Directive (EU) 2019/882)</strong>. It marks a significant step toward promoting and improving accessibility in both digital and physical products and services, thereby strengthening <strong data-start="598" data-end="619">digital inclusion</strong>.</p><p data-start="622" data-end="773">The law will come fully into effect <strong data-start="658" data-end="678">by June 28, 2025</strong>, and will then also apply to the <strong data-start="712" data-end="730">private sector</strong>, no longer limited to public institutions:</p><ul data-start="775" data-end="1042"><li data-start="775" data-end="879"><p data-start="777" data-end="879">From <strong data-start="782" data-end="799">June 28, 2025</strong>, all affected products and services must comply with the new BFSG requirements.</p></li><li data-start="880" data-end="1042"><p data-start="882" data-end="1042">Products and services introduced before this date may still be used temporarily but must also be adapted to meet the requirements within a reasonable timeframe.</p></li></ul><p data-start="1044" data-end="1194">For this reason, <strong data-start="1061" data-end="1137">accessibility should already be integrated into the design process today</strong> to meet future standards and actively promote inclusion.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-0c1072b elementor-widget elementor-widget-heading" data-id="0c1072b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Consequences of Non-Compliance</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-1ba34ea elementor-widget elementor-widget-text-editor" data-id="1ba34ea" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="1241" data-end="1601">Companies that fail to comply with the BFSG can face <strong data-start="1294" data-end="1330">sanctions and legal consequences</strong>. As the BFSG is a legal obligation, violations may result in <strong data-start="1392" data-end="1401">fines</strong>. Furthermore, lack of accessibility can also negatively impact a company’s <strong data-start="1477" data-end="1497">brand reputation</strong>. Failure to meet accessibility standards may lead to <strong data-start="1551" data-end="1584">loss of trust and credibility</strong> among customers.</p><p data-start="1603" data-end="1774">On the other hand, accessible design not only meets legal requirements — it also presents an opportunity to position the company as <strong data-start="1735" data-end="1773">inclusive and socially responsible</strong>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-68affb0 elementor-widget-divider--view-line_icon elementor-view-default elementor-widget-divider--element-align-center elementor-widget elementor-widget-divider" data-id="68affb0" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
							<div class="elementor-icon elementor-divider__element">
					</div>
						</span>
		</div>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-53d4734 e-flex e-con-boxed e-con e-parent" data-id="53d4734" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-b4267fc elementor-widget elementor-widget-heading" data-id="b4267fc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Relevant Scope of the BFSG</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-b8788f7 elementor-widget elementor-widget-text-editor" data-id="b8788f7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="1817" data-end="2015">The BFSG covers a broad range of <strong data-start="1850" data-end="1875">products and services</strong>, requiring companies to ensure <strong data-start="1907" data-end="1924">accessibility</strong> for certain <strong data-start="1937" data-end="1971">digital and physical offerings</strong>. The scope includes, but is not limited to:</p><ul data-start="2017" data-end="2359"><li data-start="2017" data-end="2118"><p data-start="2019" data-end="2118"><strong data-start="2019" data-end="2039">Digital services</strong> such as websites, mobile apps, and software accessible to the general public</p></li><li data-start="2119" data-end="2248"><p data-start="2121" data-end="2248"><strong data-start="2121" data-end="2146">Public transportation</strong> and ticket machines — all devices and information systems used in public transit must be accessible</p></li><li data-start="2249" data-end="2359"><p data-start="2251" data-end="2359"><strong data-start="2251" data-end="2265">E-commerce</strong> — online marketplaces and shops must ensure their platforms meet accessibility requirements</p></li></ul><p data-start="2361" data-end="2501">Products that are <strong data-start="2379" data-end="2424">exclusively used by trained professionals</strong> and not accessible to the general public are exempt from these requirements.<br />The BFSG plays a crucial role in the <strong data-start="2597" data-end="2631">public transport sector (ÖPNV)</strong>. Professionals involved in <strong data-start="2659" data-end="2684">procurement and sales</strong>of ticketing and control systems should be familiar with the law. Devices like <strong data-start="2764" data-end="2783">ticket machines</strong>, <strong data-start="2785" data-end="2808">ticketing web shops</strong>, and <strong data-start="2814" data-end="2829">mobile apps</strong> fall under both the digital and physical product categories affected by the BFSG.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-611a76a elementor-widget-divider--view-line_icon elementor-view-default elementor-widget-divider--element-align-center elementor-widget elementor-widget-divider" data-id="611a76a" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
							<div class="elementor-icon elementor-divider__element">
					</div>
						</span>
		</div>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-7316f64 e-flex e-con-boxed e-con e-parent" data-id="7316f64" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-717ec5d elementor-widget elementor-widget-heading" data-id="717ec5d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Requirements and Standards for UX Design and Accessibility</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-8730543 elementor-widget elementor-widget-text-editor" data-id="8730543" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>The <strong data-start="307" data-end="350">Barrierefreiheitsstärkungsgesetz (BFSG)</strong> outlines specific requirements that digital products and services must fulfill. These guidelines are based on the <strong data-start="465" data-end="516">Web Content Accessibility Guidelines (WCAG) 2.1</strong>, which are internationally recognized as the standard for digital accessibility.</p><p>The core principles can be broken down into four key areas:</p><p data-start="660" data-end="683"><strong data-start="665" data-end="683">Perceivability<br /></strong>Information and user interfaces must be presented in ways that <strong data-start="747" data-end="773">all users can perceive</strong>. This includes providing text alternatives for images and <strong data-start="832" data-end="868">captions for audiovisual content</strong>.</p><p data-start="871" data-end="891"><strong data-start="876" data-end="891">Operability<br /></strong>Users must be able to <strong data-start="914" data-end="945">interact with the interface</strong> without restrictions. All functionalities should be accessible via keyboard, and users should be given <strong data-start="1049" data-end="1068">sufficient time</strong> to complete tasks.</p><p data-start="1089" data-end="1115"><strong data-start="1094" data-end="1115">Understandability<br /></strong>Content and navigation must be <strong data-start="1147" data-end="1172">clear and predictable</strong>. This includes using consistent navigation structures, clear labeling, and comprehensible language.</p><p data-start="1274" data-end="1293"><strong data-start="1279" data-end="1293">Robustness<br /></strong>Content must be <strong data-start="1310" data-end="1368">compatible with a wide range of assistive technologies</strong>, such as screen readers, ensuring that people with disabilities can use the system effectively.<br /><br /></p><p data-start="217" data-end="521">In addition to the core accessibility principles, there are <strong data-start="277" data-end="299">conformance levels</strong> that help evaluate how well the requirements are being met. These levels—<strong data-start="373" data-end="391">A, AA, and AAA</strong>—are similar to energy efficiency labels. To comply with legal requirements under the BFSG, <strong data-start="483" data-end="502">levels A and AA</strong> must be fulfilled.</p><ul data-start="523" data-end="714"><li data-start="523" data-end="583"><p data-start="525" data-end="583"><strong data-start="525" data-end="530">A</strong>: Basic level – must-have for minimal accessibility</p></li><li data-start="584" data-end="661"><p data-start="586" data-end="661"><strong data-start="586" data-end="592">AA</strong>: Recommended standard – provides good accessibility for most users</p></li><li data-start="662" data-end="714"><p data-start="664" data-end="714"><strong data-start="664" data-end="671">AAA</strong>: Highest level – optimal but not mandatory</p></li></ul><p data-start="716" data-end="1038">Detailed guidelines for these accessibility standards can be found directly on the <a class="" href="https://www.w3.org/WAI/standards-guidelines/wcag/" target="_new" rel="noopener" data-start="799" data-end="864">WCAG website</a>.<br data-start="865" data-end="868" />German-language guidance is available from <em data-start="911" data-end="972">Der Beauftragte der Bundesregierung für Informationstechnik</em> (The Federal Government Commissioner for Information Technology).</p>								</div>
				</div>
				<div class="elementor-element elementor-element-2abf440 elementor-widget-divider--view-line_icon elementor-view-default elementor-widget-divider--element-align-center elementor-widget elementor-widget-divider" data-id="2abf440" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
							<div class="elementor-icon elementor-divider__element">
					</div>
						</span>
		</div>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-b99d6bc e-flex e-con-boxed e-con e-parent" data-id="b99d6bc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a42316a elementor-widget elementor-widget-heading" data-id="a42316a" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Relevance of the BFSG for UX Designers</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-4d76862 elementor-widget elementor-widget-text-editor" data-id="4d76862" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="1093" data-end="1413">The <strong data-start="1097" data-end="1140">Barrierefreiheitsstärkungsgesetz (BFSG)</strong> challenges UX designers and developers to integrate accessibility from the <strong data-start="1216" data-end="1234">very beginning</strong> of the design process. The law introduces <strong data-start="1277" data-end="1296">clear standards</strong> that must be considered in the development of digital products and services. Key steps for UX professionals include:</p><ul data-start="1415" data-end="2070"><li data-start="1415" data-end="1582"><p data-start="1417" data-end="1582"><strong data-start="1417" data-end="1468">Embedding accessibility into the design process</strong>: Just like any other design goal, accessibility should be a fixed part of early planning and product development.</p></li><li data-start="1584" data-end="1735"><p data-start="1586" data-end="1735"><strong data-start="1586" data-end="1613">Testing and prototyping</strong>: Regular testing with both assistive tools and real users with diverse impairments helps ensure real-world accessibility.</p></li><li data-start="1737" data-end="1900"><p data-start="1739" data-end="1900"><strong data-start="1739" data-end="1779">Understanding and applying standards</strong>: Familiarity with WCAG 2.1 and other accessibility frameworks provides a solid foundation for meeting BFSG requirements.</p></li><li data-start="1902" data-end="2070"><p data-start="1904" data-end="2070"><strong data-start="1904" data-end="1940">Training and continued education</strong>: Accessibility is a specialized discipline. Ongoing training helps teams stay current with best practices and legal developments.</p></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-944453b elementor-widget-divider--view-line_icon elementor-view-default elementor-widget-divider--element-align-center elementor-widget elementor-widget-divider" data-id="944453b" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
							<div class="elementor-icon elementor-divider__element">
					</div>
						</span>
		</div>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-97e42df e-flex e-con-boxed e-con e-parent" data-id="97e42df" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-7019a36 elementor-widget elementor-widget-heading" data-id="7019a36" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Conclusion: Accessibility as a Core Principle of Modern UX Design</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-dc228dd elementor-widget elementor-widget-text-editor" data-id="dc228dd" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="2152" data-end="2502">The BFSG represents a major step toward a more <strong data-start="2199" data-end="2226">inclusive digital world</strong>. This is particularly true in the <strong data-start="2261" data-end="2300">German public transportation sector</strong>, where purchasing tickets often presents a challenge due to a variety of tariffs, rules, and complex interfaces. Implementing BFSG standards can significantly improve the experience for all passengers.</p><p data-start="2504" data-end="2798">For UX designers and developers, this means treating accessibility as a <strong data-start="2576" data-end="2596">default standard</strong>, not an optional add-on. Meeting these legal requirements not only enhances <strong data-start="2673" data-end="2694">user satisfaction</strong> but also ensures that digital and physical products can be used by <strong data-start="2762" data-end="2774">everyone</strong>, regardless of ability.</p><p data-start="2800" data-end="3135">Moreover, the law offers companies the opportunity to <strong data-start="2854" data-end="2883">enhance their brand image</strong>, boost <strong data-start="2891" data-end="2911">customer loyalty</strong>, and create <strong data-start="2924" data-end="2959">innovative, inclusive solutions</strong>. Early and thorough implementation of accessibility standards is the key to building sustainable and future-ready products—<strong data-start="3083" data-end="3135">software and hardware that truly moves everyone.</strong></p>								</div>
				</div>
					</div>
				</div>
				</div>
		<p>Der Beitrag <a href="https://amcon.de/en/accessibility-act-as-a-gamechanger/">Gamechanger for UX and public transport: How the Accessibility Act is getting everyone moving</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Experience as a participant in the Project Management Championship</title>
		<link>https://amcon.de/en/project-management-championship-experience/</link>
		
		<dc:creator><![CDATA[verenadrees]]></dc:creator>
		<pubDate>Fri, 14 Apr 2023 07:37:14 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://amcon.de/?p=16323</guid>

					<description><![CDATA[<p>Eduard Stremel was fortunate to participate in the 9th Project Management Championship, held in cooperation with Infineon Technologies AG in Munich.</p>
<p>Der Beitrag <a href="https://amcon.de/en/project-management-championship-experience/">Experience as a participant in the Project Management Championship</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16323" class="elementor elementor-16323" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-2b16d4c e-con-full e-flex e-con e-parent" data-id="2b16d4c" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-7b9295d e-flex e-con-boxed e-con e-child" data-id="7b9295d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-fe30ad6 elementor-widget elementor-widget-text-editor" data-id="fe30ad6" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Eduard Stremel was fortunate to participate in the 9th Project Management Championship, held in cooperation with Infineon Technologies AG in Munich, and shares his experience with us in this blog post. The event took place on March 31, 2023, bringing together teams from various universities across Germany competing for the title of national project management champion.</p>								</div>
				</div>
					</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-e348843 e-flex e-con-boxed e-con e-parent" data-id="e348843" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-359ceb1 elementor-widget elementor-widget-spacer" data-id="359ceb1" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-fc73cc6 elementor-widget elementor-widget-text-editor" data-id="fc73cc6" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<div class="uk-padding-small uk-padding-remove-horizontal uk-grid uk-grid-stack"><p data-start="0" data-end="378">We had never heard of such an event before and were fascinated by the idea that students from various universities across Germany have the chance to test their project management skills and expand their knowledge. Qualification for the national final took place through an online qualifying round, in which teams had to complete 100 multiple-choice questions within 100 minutes.</p><p data-start="380" data-end="743" data-is-last-node="" data-is-only-node="">Since we will only be covering the project management module next semester, we had concerns about whether we even had the necessary skills and knowledge to succeed. But we decided to give it a try and did our best during the qualifying round. In the end, our group was fortunate enough to qualify for the final and was able to prepare for this exciting challenge.</p></div>								</div>
				</div>
				<div class="elementor-element elementor-element-b6c0796 elementor-widget elementor-widget-spacer" data-id="b6c0796" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
		<div class="elementor-element elementor-element-f7a24b5 e-con-full e-flex e-con e-child" data-id="f7a24b5" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-aa29c18 e-grid e-con-full e-con e-child" data-id="aa29c18" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-df9c037 elementor-widget elementor-widget-image" data-id="df9c037" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="1024" height="771" src="https://amcon.de/wp-content/uploads/2023/04/ipma_team-1024x771.jpg" class="attachment-large size-large wp-image-8487" alt="ipma_team" srcset="https://amcon.de/wp-content/uploads/2023/04/ipma_team-1024x771.jpg 1024w, https://amcon.de/wp-content/uploads/2023/04/ipma_team-300x226.jpg 300w, https://amcon.de/wp-content/uploads/2023/04/ipma_team-768x578.jpg 768w, https://amcon.de/wp-content/uploads/2023/04/ipma_team-1536x1157.jpg 1536w, https://amcon.de/wp-content/uploads/2023/04/ipma_team-2048x1542.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-6da0e2d elementor-widget elementor-widget-text-editor" data-id="6da0e2d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="306">Arriving in Munich, we met on the evening before the competition at the Scandic Hotel and had the opportunity to get to know each other and connect with the other teams in a relaxed atmosphere. The shared dinner and get-together was a great way to prepare for the next day and get in sync with one another.</p><p data-start="308" data-end="968" data-is-last-node="" data-is-only-node="">On the day of the competition, the official program began with an introduction to the GPM and the GPM Young Crew. Afterwards, we received a case study from Infineon AG, in which we were tasked with planning a global project management conference within five hours. The assignment was challenging and extensive, but through a lot of collaboration and creativity, we managed to meet all the requirements. Thanks to our strong teamwork and the use of appropriate project management methods, such as the stakeholder matrix and environmental analysis, we successfully completed the task. Finally, each group presented their results during a ten-minute presentation.</p>								</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-82ccde5 elementor-widget elementor-widget-spacer" data-id="82ccde5" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-419c35c e-flex e-con-boxed e-con e-parent" data-id="419c35c" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6f5be3d elementor-widget__width-initial elementor-widget elementor-widget-text-editor" data-id="6f5be3d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="302">Before the expert jury withdrew to discuss and evaluate the results, we were given a tour of the Infineon campus. During the tour, we learned about Infineon’s products and their applications for end users. It was very interesting to see the products and understand how they contribute to everyday life.</p><p data-start="304" data-end="781" data-is-last-node="" data-is-only-node="">In the evening, all participants, sponsors, the jury, and the Young Crew organizing team gathered at Infineon’s rooftop venue for the award ceremony and gala event. Although we didn’t quite win, our team still made a strong impression, which was especially gratifying given our lack of experience. Additionally, we received detailed feedback from the jury, providing us with valuable insights that, in a way, already prepared us for project management in the upcoming semester.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-2be2a63 elementor-widget elementor-widget-image" data-id="2be2a63" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="408" height="307" src="https://amcon.de/wp-content/uploads/2023/04/ipma.png" class="attachment-large size-large wp-image-8488" alt="ipma_praesentation" srcset="https://amcon.de/wp-content/uploads/2023/04/ipma.png 408w, https://amcon.de/wp-content/uploads/2023/04/ipma-300x226.png 300w" sizes="(max-width: 408px) 100vw, 408px" />															</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-fafdc4d e-flex e-con-boxed e-con e-parent" data-id="fafdc4d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4f6aa31 elementor-widget elementor-widget-spacer" data-id="4f6aa31" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-714f4cc elementor-widget elementor-widget-heading" data-id="714f4cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusion</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-44e67c6 elementor-widget elementor-widget-text-editor" data-id="44e67c6" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="424">Our group was consistently positively surprised. We were very impressed by the organization and the venue, as Infineon has a very large campus. For me personally, participating in the final of the Project Management Championship in Munich was an incredible experience. Especially the opportunities I had during the event to network and exchange ideas with other students and project management experts were very educational.</p><p data-start="426" data-end="810" data-is-last-node="" data-is-only-node="">Overall, the Project Management Championship was an amazing experience, and I would recommend it to anyone working in this field or interested in project management. It’s a great chance to learn new methods and techniques, benefit from others’ experiences, network, and have fun. I am very grateful for the experience and look forward to participating in similar events in the future.</p>								</div>
				</div>
					</div>
				</div>
				</div>
		<p>Der Beitrag <a href="https://amcon.de/en/project-management-championship-experience/">Experience as a participant in the Project Management Championship</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Eye tracking as a replacement for the mouse</title>
		<link>https://amcon.de/en/eye-tracking-vs-mouse/</link>
		
		<dc:creator><![CDATA[verenadrees]]></dc:creator>
		<pubDate>Tue, 14 Dec 2021 08:05:57 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://amcon.de/?p=16335</guid>

					<description><![CDATA[<p>The project focuses on replacing the mouse with an eye-tracking bar in order to optimize one’s workflow.</p>
<p>Der Beitrag <a href="https://amcon.de/en/eye-tracking-vs-mouse/">Eye tracking as a replacement for the mouse</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16335" class="elementor elementor-16335" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-422551d7 e-con-full e-flex e-con e-parent" data-id="422551d7" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-6ba0d50 e-con-full e-flex e-con e-child" data-id="6ba0d50" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-31e6cd8 e-con-full e-flex e-con e-child" data-id="31e6cd8" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-d254d48 elementor-widget elementor-widget-spacer" data-id="d254d48" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-0eb77d0 elementor-widget elementor-widget-heading" data-id="0eb77d0" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Project objective</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-a50091d elementor-widget elementor-widget-text-editor" data-id="a50091d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="131">The project is about replacing the mouse with an eye-tracking bar (as the name might already suggest) to optimize one’s workflow. The goal is <strong data-start="145" data-end="152">not</strong> to operate the computer using eye tracking alone. In our implementation, the eye-tracking bar must be used in combination with the keyboard. The idea is similar to how the text editor <em data-start="344" data-end="348">Vi</em> is used — relying entirely on the keyboard without ever taking your hands off it. However, the advantage of eye tracking over <em data-start="478" data-end="482">Vi</em> is that you don&#8217;t need to memorize 100 different shortcuts. Instead, you only need to learn around 5–8, while still keeping your hands on the keyboard at all times.</p>								</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-521c195 elementor-widget elementor-widget-image" data-id="521c195" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="768" height="230" src="https://amcon.de/wp-content/uploads/2021/12/image2021-11-11_16-43-3-768x230.png" class="attachment-medium_large size-medium_large wp-image-8456" alt="eyetracking_maus_arbeitsprozess_vergleich" srcset="https://amcon.de/wp-content/uploads/2021/12/image2021-11-11_16-43-3-768x230.png 768w, https://amcon.de/wp-content/uploads/2021/12/image2021-11-11_16-43-3-300x90.png 300w, https://amcon.de/wp-content/uploads/2021/12/image2021-11-11_16-43-3-1024x307.png 1024w, https://amcon.de/wp-content/uploads/2021/12/image2021-11-11_16-43-3-1536x461.png 1536w, https://amcon.de/wp-content/uploads/2021/12/image2021-11-11_16-43-3.png 1704w" sizes="(max-width: 768px) 100vw, 768px" />															</div>
				</div>
				<div class="elementor-element elementor-element-1e77341 elementor-widget elementor-widget-text-editor" data-id="1e77341" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="65"><em>Comparison Between Working with a Mouse and with Eye Tracking</em></p><p data-start="0" data-end="65"> </p><p data-start="67" data-end="185" data-is-last-node="" data-is-only-node="">The illustration highlights how many more steps are required when working with a mouse compared to using eye tracking.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-41bacd45 e-con-full e-flex e-con e-child" data-id="41bacd45" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-11b4664f e-con-full e-flex e-con e-child" data-id="11b4664f" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-2b4933d elementor-widget elementor-widget-text-editor" data-id="2b4933d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="285">To complete the bachelor’s degree at HSW, every student must participate in a project study during the 5th and 6th semesters. The project study is typically provided by an external company, and students are required to organize themselves in order to meet the project’s requirements.</p><p data-start="287" data-end="393" data-is-last-node="" data-is-only-node="">Lars Kölker, Lukas Hein, and I chose the project titled &#8220;Eye Tracking as a Replacement for the Mouse.&#8221;</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-74f94c0 e-con-full e-flex e-con e-child" data-id="74f94c0" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-7cfe45b elementor-widget elementor-widget-heading" data-id="7cfe45b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Project history</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-8e1702a elementor-widget elementor-widget-text-editor" data-id="8e1702a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="328">The project is already five years old and had been worked on by previous students. In the past, a C# application was developed that reads data from a Tobii eye-tracking bar and converts them into mouse inputs using shortcuts. When we took over the project, the application already included functions for scrolling and zooming.</p><p data-start="330" data-end="598" data-is-last-node="" data-is-only-node="">There is also a training and testing software (TuLs), which allows users to learn and test how to operate the eye-tracking bar in combination with our application. This software was especially important for the user studies conducted in previous phases of the project.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-4d88a5d e-con-full e-flex e-con e-child" data-id="4d88a5d" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-75f948d elementor-widget__width-initial elementor-widget elementor-widget-image" data-id="75f948d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1024" height="560" src="https://amcon.de/wp-content/uploads/2021/12/image2021-11-12_11-32-10-1024x560.png" class="attachment-large size-large wp-image-8457" alt="TuLs_Startscreen" srcset="https://amcon.de/wp-content/uploads/2021/12/image2021-11-12_11-32-10-1024x560.png 1024w, https://amcon.de/wp-content/uploads/2021/12/image2021-11-12_11-32-10-300x164.png 300w, https://amcon.de/wp-content/uploads/2021/12/image2021-11-12_11-32-10-768x420.png 768w, https://amcon.de/wp-content/uploads/2021/12/image2021-11-12_11-32-10-1536x840.png 1536w, https://amcon.de/wp-content/uploads/2021/12/image2021-11-12_11-32-10-2048x1120.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-fe7e8a4 elementor-widget elementor-widget-text-editor" data-id="fe7e8a4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Training and Testing Software (TuLs)</p>								</div>
				</div>
				<div class="elementor-element elementor-element-b0fb089 elementor-widget elementor-widget-heading" data-id="b0fb089" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Our goal</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-98fbd94 elementor-widget elementor-widget-text-editor" data-id="98fbd94" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="72">At the beginning of the project study, we were given three requirements:</p><ol data-start="74" data-end="239"><li data-start="74" data-end="169"><p data-start="76" data-end="169">Designing and developing a solution for the edge-case problem related to the magnifier tool</p></li><li data-start="170" data-end="211"><p data-start="172" data-end="211">Implementing a new scrolling approach</p></li><li data-start="212" data-end="239" data-is-last-node=""><p data-start="214" data-end="239" data-is-last-node="">Writing an academic paper</p></li></ol>								</div>
				</div>
				<div class="elementor-element elementor-element-780868d elementor-widget elementor-widget-heading" data-id="780868d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">The Fisheye Magnifier</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-29ef6ca elementor-widget elementor-widget-text-editor" data-id="29ef6ca" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="174">The fisheye magnifier is an important feature for operating the computer with the eye-tracking bar. It serves to compensate for the remaining inaccuracy of the eye tracker. A fisheye magnifier was chosen instead of a linear magnifier to provide a distortion-free zoom. The reason is that, similar to a mouse click, the magnifier cannot always be placed with 100% accuracy. A zoom with distortion could accidentally cover the area that is meant to be magnified.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-7ae948f elementor-widget elementor-widget-heading" data-id="7ae948f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">The Edge Problem</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-b254ea6 elementor-widget elementor-widget-text-editor" data-id="b254ea6" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>One problem that still exists with the magnifier is its operation near the edge of the screen. When the magnifier is used close to the screen edge, part of the enlarged area may extend beyond the visible screen.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-c58fdf0 e-flex e-con-boxed e-con e-parent" data-id="c58fdf0" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6ed48a4 elementor-widget elementor-widget-image" data-id="6ed48a4" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="711" height="378" src="https://amcon.de/wp-content/uploads/2021/12/fisheye-lupe_am_rand.png" class="attachment-large size-large wp-image-8470" alt="fisheye_lupe_am_rand" srcset="https://amcon.de/wp-content/uploads/2021/12/fisheye-lupe_am_rand.png 711w, https://amcon.de/wp-content/uploads/2021/12/fisheye-lupe_am_rand-300x159.png 300w" sizes="(max-width: 711px) 100vw, 711px" />															</div>
				</div>
				<div class="elementor-element elementor-element-419ca1c elementor-widget elementor-widget-text-editor" data-id="419ca1c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Fisheye Magnifier at the Edge</p>								</div>
				</div>
				<div class="elementor-element elementor-element-57f8632 elementor-widget elementor-widget-text-editor" data-id="57f8632" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>To counter this problem, we developed a concept for the fisheye magnifier at the screen edges. The idea is that the magnifier, when near the edge, behaves like a water droplet, gently hugging the edge of the screen.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2208b1c e-flex e-con-boxed e-con e-parent" data-id="2208b1c" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-b0868d3 elementor-widget elementor-widget-image" data-id="b0868d3" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="300" height="286" src="https://amcon.de/wp-content/uploads/2021/12/image2021-12-2_16-11-8-300x286.png" class="attachment-medium size-medium wp-image-8474" alt="Eye Wassertropfen" srcset="https://amcon.de/wp-content/uploads/2021/12/image2021-12-2_16-11-8-300x286.png 300w, https://amcon.de/wp-content/uploads/2021/12/image2021-12-2_16-11-8.png 602w" sizes="(max-width: 300px) 100vw, 300px" />															</div>
				</div>
				<div class="elementor-element elementor-element-51ab374 elementor-widget elementor-widget-text-editor" data-id="51ab374" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Concept for the Teardrop Magnifier</p>								</div>
				</div>
				<div class="elementor-element elementor-element-1cad92c elementor-widget elementor-widget-text-editor" data-id="1cad92c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="307">However, this requires that the enlarged area can no longer be centered exactly on the gaze point but instead expands toward the center of the screen. This, in turn, creates another problem: the point the user is focusing on shifts abruptly to a new position. Such behavior can briefly disorient the user.</p><p data-start="309" data-end="454" data-is-last-node="" data-is-only-node="">A solution to this issue is an animated magnifier that gradually grows to a predetermined size, providing a smoother and less jarring transition.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3d33019 e-flex e-con-boxed e-con e-parent" data-id="3d33019" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4099109 elementor-widget elementor-widget-spacer" data-id="4099109" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d6889d9 elementor-widget elementor-widget-heading" data-id="d6889d9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">New Scrolling Approach</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c997723 elementor-widget elementor-widget-text-editor" data-id="c997723" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>The current scrolling method in our application is similar to scrolling with the middle mouse button. To scroll, the scrolling mode must first be activated, then you can scroll by moving your gaze to the top or bottom edge of the screen. The drawback of this approach is that you cannot browse through a page while scrolling because the gaze movement is used to control the scrolling itself.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-f4d4271 elementor-widget elementor-widget-text-editor" data-id="f4d4271" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>The new approach solves the problem of the current scrolling mode. Here’s how it works: The user selects a point of focus on the screen and presses one of two shortcuts. Depending on the shortcut pressed, the focus point is then moved to either the top or bottom edge of the screen. During scrolling, the user is able to scan through the page. This approach can be compared to using the &#8220;Page Up&#8221; and &#8220;Page Down&#8221; keys.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-b1d6266 elementor-widget elementor-widget-heading" data-id="b1d6266" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Writing a Paper</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-f659e4e elementor-widget elementor-widget-text-editor" data-id="f659e4e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="71" data-end="422">The final goal of our project study was to write a paper. Originally, the paper was supposed to focus on the new scrolling approach. However, it turned out that this topic had already been covered a few years ago by someone else. So, we had to come up with a new topic at short notice. We decided to focus on a new feature instead: the Auto-Magnifier.</p><p data-start="424" data-end="673">The idea is: If our application detects that there are many clickable objects at the point of gaze, instead of registering a click, the magnifier should open. Two concepts have already been developed to detect when the magnifier should be activated:</p><ol data-start="675" data-end="739"><li data-start="675" data-end="706"><p data-start="677" data-end="706">Detection via edge counting</p></li><li data-start="707" data-end="739"><p data-start="709" data-end="739">Detection via machine learning</p></li></ol><p data-start="741" data-end="956">Edge counting is a fairly simple solution. It simply counts how many enclosed blocks there are using an image processing library. Based on a fixed threshold, it then decides whether the magnifier should open or not.</p><p data-start="958" data-end="1235">The second concept is more complex. A machine learning algorithm is to be trained to count potentially clickable objects within an image section. To train such an algorithm, many test data sets with image sections and the corresponding number of clickable objects are required.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-c14f4bb elementor-widget elementor-widget-spacer" data-id="c14f4bb" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-71b80b0 elementor-widget elementor-widget-heading" data-id="71b80b0" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusion</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-3cbb1ff elementor-widget elementor-widget-text-editor" data-id="3cbb1ff" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="75" data-end="281">This blog post is just a brief summary of everything we actually covered and learned. We actually came up with cooler names for some of the individual features, but left them out here for simplicity’s sake.</p><p data-start="283" data-end="458">All in all, Lars Kölker, Lukas Hein, and I chose a really fun and interesting project study. If you have any further questions about our project, feel free to reach out to us.</p>								</div>
				</div>
					</div>
				</div>
				</div>
		<p>Der Beitrag <a href="https://amcon.de/en/eye-tracking-vs-mouse/">Eye tracking as a replacement for the mouse</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Setting up a Pi-Hole network-wide ad blocker</title>
		<link>https://amcon.de/en/setting-up-a-pi-hole-ad-blocker/</link>
		
		<dc:creator><![CDATA[verenadrees]]></dc:creator>
		<pubDate>Wed, 20 Oct 2021 08:29:08 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://amcon.de/?p=16341</guid>

					<description><![CDATA[<p>Set up a network-wide ad blocker with Pi-hole to effectively block ads on YouTube and other sites.</p>
<p>Der Beitrag <a href="https://amcon.de/en/setting-up-a-pi-hole-ad-blocker/">Setting up a Pi-Hole network-wide ad blocker</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16341" class="elementor elementor-16341" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-49c0d2b e-flex e-con-boxed e-con e-parent" data-id="49c0d2b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-463928b elementor-widget elementor-widget-heading" data-id="463928b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How to banish ads from apps and your smart TV</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-221dff8 elementor-widget elementor-widget-text-editor" data-id="221dff8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Online ads can be really annoying. Especially when you’re watching a YouTube video and 1–2 ads pop up every few minutes. It’s the same with “free” apps — whether it’s a weather app, game, or translation app, the ads eventually start playing. To stop this, I set up a Pi-hole and explain in this blog post how it works.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-02e2b06 e-flex e-con-boxed e-con e-parent" data-id="02e2b06" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-682272f elementor-widget elementor-widget-heading" data-id="682272f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What is a "Pi-Hole"?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-3062aea elementor-widget elementor-widget-text-editor" data-id="3062aea" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="111">A Pi-Hole is software that runs on a Raspberry Pi (a small micro-PC) and can filter out all ads from a network.</p><p data-start="113" data-end="230">This works by having the devices in the home network use the Pi-Hole instead of their usual DNS (Domain Name Server).</p><p data-start="232" data-end="319">The DNS is what the router or PC queries to get an IP address from an internet address.</p><p data-start="321" data-end="489" data-is-last-node="" data-is-only-node="">So, if for example YouTube sends a request for &#8220;<a class="cursor-pointer" target="_new" rel="noopener">www.AnnoyingAdProvider.com</a>&#8221; to load the usual annoying ads, this request is intercepted and nothing is returned instead.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-b7c9b9f elementor-widget elementor-widget-heading" data-id="b7c9b9f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why do I need a Pi-hole?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-9a2433e elementor-widget elementor-widget-text-editor" data-id="9a2433e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="190">A Pi-Hole can block ads not only on websites in a regular browser (like a typical browser adblocker plugin does), but also within apps on your phone or even in the YouTube app on a smart TV.</p><p data-start="192" data-end="287" data-is-last-node="" data-is-only-node="">And it does this network-wide, without needing an adblocker installed on any individual device.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-9263085 elementor-widget elementor-widget-heading" data-id="9263085" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Here are the individual steps:</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e4c57fa elementor-widget elementor-widget-text-editor" data-id="e4c57fa" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<article class="text-token-text-primary w-full focus:outline-none scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" dir="auto" tabindex="-1" data-testid="conversation-turn-140" data-scroll-anchor="true" data-turn="assistant"><div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @[37rem]:[--thread-content-margin:--spacing(6)] @[72rem]:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:32rem] @[34rem]:[--thread-content-max-width:40rem] @[64rem]:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-5" dir="auto" data-message-author-role="assistant" data-message-id="2f558766-5b68-439b-a4f0-05184478cd90" data-message-model-slug="gpt-4-1-mini"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling"><p data-start="0" data-end="23"><strong>Set up the Raspberry Pi</strong></p><ol><li>If you don’t have a Raspberry Pi yet, you can order one from the <a href="https://www.raspberrypi.com/products/">official website</a>. They’re also available as complete kits on Amazon or similar sites. Almost all types of Raspberry Pi work well for Pi-Hole, as the requirements are quite low. I’ll be referring to a Raspberry Pi 3B, which I used at home for this. Be sure to get a suitable power supply, specifically one with 2.5A/5V. Standard USB power supplies usually provide only 1A/5V and can cause so-called “brownouts.” On a Raspberry Pi, you’ll notice a brownout when a lightning bolt symbol appears in the top right corner of the screen.</li><li>Next, you need to “etch” an operating system onto an SD card. I use the <a href="https://www.raspberrypi.com/software/">Raspberry Pi Imager</a> for this, but there are other etching tools like <a href="https://etcher.balena.io/">Balena</a> as well.</li><li>Now you’ll need an image of the operating system. In our case, it’s <em>Raspberry Pi OS</em> (formerly called Raspbian), based on the Debian Linux distribution. With the Raspberry Pi Imager, you can download the current OS version and write it directly to the SD card.</li><li>Once you insert the SD card into the Raspberry Pi, connect an HDMI cable to a monitor, plug a mouse/keyboard combo into a USB port, and finally connect the power supply, you’ll be greeted by the <em>Raspberry Pi OS.</em></li></ol></div></div></div></div></div></div></article><div class="pointer-events-none h-px w-px" aria-hidden="true" data-edge="true"> </div>								</div>
				</div>
				<div class="elementor-element elementor-element-3659810 elementor-widget elementor-widget-text-editor" data-id="3659810" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="19"><strong>Configure the Raspy</strong></p><ol><li data-start="21" data-end="449">If you want, you can also set up the Raspy “headless,” meaning you don’t have to connect a keyboard and mouse. A useful tutorial can be found <a href="https://www.tutonaut.de/anleitung-raspberry-pi-ohne-monitor-und-tastatur-headless-einrichten/">here</a>.</li><li data-start="21" data-end="449">You can operate the Raspy via LAN or WLAN, although LAN generally provides a more stable connection.</li><li data-start="21" data-end="449">Using the command line, you can now enter the following line: <code>&lt;b&gt;curl -sSL &lt;/b&gt;</code><strong>https://install.pi-hole.net</strong><code>&lt;b&gt; | bash&lt;/b&gt;</code></li><li data-start="21" data-end="449">If everything goes well, the setup of the Raspy is complete.</li></ol>								</div>
				</div>
				<div class="elementor-element elementor-element-8e03c1b elementor-widget elementor-widget-text-editor" data-id="8e03c1b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="18"><strong>Manually Enter DNS</strong></p><p data-start="20" data-end="39">You can now either:</p><ol><li data-start="43" data-end="148">Manually set the DNS on each device that should have the ad blocker to the IP address of the Raspy<br data-start="141" data-end="144" />or</li><li data-start="43" data-end="148">Set the DNS of your router (here’s an example for the <a href="https://www.heise.de/tipps-tricks/Fritzbox-DNS-Server-aendern-5054919.html">FritzBox</a>) to the IP address of the Raspy.</li></ol>								</div>
				</div>
				<div class="elementor-element elementor-element-8f4043d elementor-widget elementor-widget-text-editor" data-id="8f4043d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="0" data-end="64">If everything went well, you now have a network-wide ad blocker.</p><p data-start="66" data-end="232">My motivation behind this was that my TV has a YouTube app that unfortunately plays multiple ad blocks during every video. With the Raspy, that problem is solved too.</p><p data-start="234" data-end="469">Additionally, a Raspy also provides security for the entire system, even if there are people in the household who might not be very tech-savvy. They don’t need to install anything on their phone/tablet/laptop to enjoy ad-free internet.</p><p data-start="471" data-end="596" data-is-last-node="" data-is-only-node="">The Raspy also has a web interface, which you can access by typing <strong>&#8220;http://&lt;IP_ADRESSE_DES_RASPYS&gt;/admin/&#8221; </strong>in your browser.</p>								</div>
				</div>
					</div>
				</div>
				</div>
		<p>Der Beitrag <a href="https://amcon.de/en/setting-up-a-pi-hole-ad-blocker/">Setting up a Pi-Hole network-wide ad blocker</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What is Scrum?</title>
		<link>https://amcon.de/en/what-is-scrum/</link>
		
		<dc:creator><![CDATA[verenadrees]]></dc:creator>
		<pubDate>Wed, 05 May 2021 09:40:27 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://amcon.de/?p=16367</guid>

					<description><![CDATA[<p>Learn what Scrum is, how it works, and how the agile methodology improves collaboration within teams.</p>
<p>Der Beitrag <a href="https://amcon.de/en/what-is-scrum/">What is Scrum?</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16367" class="elementor elementor-16367" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-1d75c003 e-flex e-con-boxed e-con e-parent" data-id="1d75c003" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-69833f40 e-con-full e-flex e-con e-child" data-id="69833f40" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-135238d9 e-con-full e-flex e-con e-child" data-id="135238d9" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-2f37f337 elementor-widget__width-initial elementor-widget elementor-widget-text-editor" data-id="2f37f337" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Agile processes in software development</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-170986c e-con-full e-flex e-con e-child" data-id="170986c" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-63bc01fe elementor-widget elementor-widget-text-editor" data-id="63bc01fe" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<div class="uk-padding-small uk-padding-remove-horizontal uk-grid"><div class="uk-width-3-5@m uk-width-1-1"><p data-start="30" data-end="486">When we start a new project, many things need to be clarified in advance between customers, users, project managers, and software developers. To ensure that all project managers and developers share the same understanding of the finished product as the customer, good project management is essential for everyone involved. At AMCON, we work with the Scrum model in project execution and today we’d like to give you an insight into how it works in practice.</p></div></div>								</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-d24a39a e-flex e-con-boxed e-con e-parent" data-id="d24a39a" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-f4d6d94 elementor-widget elementor-widget-spacer" data-id="f4d6d94" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
		<div class="elementor-element elementor-element-bf51b88 e-con-full e-flex e-con e-child" data-id="bf51b88" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-dfbc5c9 elementor-widget elementor-widget-text-editor" data-id="dfbc5c9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="60" data-end="114"><strong data-start="60" data-end="114">The Art of Constructively Thinking Past Each Other</strong></p><p data-start="60" data-end="114"> </p><p data-start="116" data-end="874">This image might be familiar. Question: How do we get the elephant into the refrigerator? Some say: “Open the door, put the elephant in, close the door.” But is it really that simple if we don’t know the size of the elephant and the refrigerator, or what else might already be inside? The conditions aren’t clear. The same goes for the requirements, which in this case are also undefined. After all, we don’t know in what state we’re supposed to put the elephant into the fridge — whole, in pieces, or pureed? So there are several open questions both regarding the requirements and the approach. What seems like a simple task turns out to be complex, and everyone would tackle it differently. Whether the result matches what the task-giver expects is doubtful.</p><p data-start="116" data-end="874"> </p><p data-start="881" data-end="937"><strong data-start="881" data-end="937">Agile Teamwork – What is Scrum and How Does It Work?</strong></p><p data-start="881" data-end="937"> </p><p data-start="939" data-end="1551">Translated from English, the term Scrum means a <em>“huddle”</em> or <em>“crowd.”</em> This image fits well because the purpose of this agile software development method is for teams to come together daily (figuratively “crowd together”) to talk briefly and in a structured way about the progress of the project. In Corona times, of course, this all happens via video chats. The method was developed in Japan in 1990 and strengthens the role of each individual in a team. This is also very important for project managers, who are no longer just communicators of requirements but are directly involved in the development process. By the way, we call it SCRUMCON, a coined term from Scrum and AMCON. Since every company working with this method sets its own rules tailored to its needs, having its own name is allowed <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />. For us, working with SCRUMCON is effective when project requirements are complex and can be broken down into many smaller parts that can be worked on step-by-step. Different roles are assigned in the process. The <em>Product Owner</em> defines the user stories from the customer&#8217;s perspective. In our case, this role is taken by the project manager, who defines the requirements with the customers beforehand and then communicates them to the team. The more precisely the <em>Product Owner</em> describes the user stories, the more precisely the developers can code. This way, the customer ends up with exactly the product they requested.</p><p data-start="939" data-end="1551"> </p><p data-start="2380" data-end="2450"><strong data-start="2380" data-end="2450">Backlog Grooming, Planning, and Velocities – Let’s Briefly Explain</strong></p><p data-start="2380" data-end="2450"> </p><p data-start="2452" data-end="2872">In this first phase (called <em data-start="2480" data-end="2498">Backlog Grooming</em>), the development team can ask questions so that everyone ends up on the same page. Next, the development team and Scrum Master together define the <em data-start="2647" data-end="2668">Definition of Ready</em> (DoR). This means setting the acceptance criteria for the UFHO system, scheduling development steps, and establishing a working agreement between project manager, product owner, and the development team. The Scrum Master organizes task distribution within the team and supports the team. In our case, this is done by the product owner. They also handle proper planning (<em data-start="3040" data-end="3050">Planning</em>), taking into account vacations, time for bug fixing, and <em data-start="3109" data-end="3121">Velocities</em>. Here, velocity refers to the historical performance of the team. If the team managed an average of 70 story points in the last three sprints, that value is used as a reference during planning. Expecting 150 points in the next sprint would be unrealistic. During <em data-start="3386" data-end="3396">Planning</em>, the team estimates each user story with story points. A story point does not correspond to a fixed amount of time but expresses complexity. This is advantageous because experienced developers can accomplish more in less time than beginners. The complexity is estimated using a general scale based on Fibonacci numbers.</p><p data-start="2452" data-end="2872"> </p><p data-start="3723" data-end="3771"><strong data-start="3723" data-end="3771">Without the Development Teams, Nothing Works</strong></p><p data-start="3723" data-end="3771"> </p><p data-start="3773" data-end="3980">The largest and most important group is the development team itself, also called the <em data-start="3858" data-end="3868">Dev Team</em>. Members of the Dev Team are responsible for individual development steps of the UFHO system for our customers. Throughout the process, besides the short daily meetings (<em data-start="4040" data-end="4047">Daily</em>), there are regular larger meetings to intensively discuss, test, and suggest improvements on parts of the project. Everyone participates, and hierarchy doesn’t matter. For the <em data-start="4226" data-end="4246">Definition of Done</em> (DoD), the team decides when a requirement is finished. A <em data-start="4305" data-end="4319">Pull Request</em> (in version control, the process of merging code from a branch into the main codebase) is only created once everything planned for that step is completed. The DoR and DoD are agreed upon once for the Dev Team and serve as a working agreement between the Dev Team and the requester. This ensures the Dev Team receives high-quality requirements matching their standards, and the requester only gets tested, finished features that meet their quality criteria.</p><p data-start="4784" data-end="4877" data-is-last-node="" data-is-only-node=""> </p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-5350e86 e-con-full e-flex e-con e-child" data-id="5350e86" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-09db808 e-con-full e-flex e-con e-child" data-id="09db808" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-3c1d4e0 elementor-widget elementor-widget-image" data-id="3c1d4e0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="412" height="550" src="https://amcon.de/wp-content/uploads/2021/05/scrumcon_zettelwand.png" class="attachment-large size-large wp-image-8420" alt="scrumcon_zettelwand" srcset="https://amcon.de/wp-content/uploads/2021/05/scrumcon_zettelwand.png 412w, https://amcon.de/wp-content/uploads/2021/05/scrumcon_zettelwand-225x300.png 225w" sizes="(max-width: 412px) 100vw, 412px" />															</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-be110f8 e-con-full e-flex e-con e-child" data-id="be110f8" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-d4718f0 elementor-widget elementor-widget-text-editor" data-id="d4718f0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="36" data-end="79"><strong data-start="36" data-end="79">What opportunities does SCRUMCON offer?</strong></p><p data-start="81" data-end="472">As with any agile methodology, we have developed the best and most practical approach for ourselves. With SCRUMCON, we increase productivity, optimize communication—both internally within the team and externally with the customer—enhance flexibility, and improve the quality of our products. At the same time, we promote understanding between the different departments involved in a project. At the end of a project, the retrospective is an important step to continuously improve processes. Once a sprint is completed, we all come together to reflect: What went well? What could be done differently? Where is there potential for improvement? Everyone has the opportunity to give open feedback. Our Head of Development Sebastian Schnieder, Technical Project Manager Alex Stasewitsch, and Training Manager Rolf Norrenbrock introduced the agile working method to our company. “Scrum is based on highly qualified, interdisciplinary teams that receive clear goals but work independently on implementation. This autonomous work increases the satisfaction of individual team members — and we observe this very clearly at our company,” says Rolf Norrenbrock.</p>								</div>
				</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>Der Beitrag <a href="https://amcon.de/en/what-is-scrum/">What is Scrum?</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Support workflow with Google Chrome extensions</title>
		<link>https://amcon.de/en/support-workflows-with-chrome-extensions/</link>
		
		<dc:creator><![CDATA[verenadrees]]></dc:creator>
		<pubDate>Mon, 29 Mar 2021 10:04:26 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://amcon.de/?p=16373</guid>

					<description><![CDATA[<p>To give you a better understanding of creating an extension, we will now create a simple browser extension which ...</p>
<p>Der Beitrag <a href="https://amcon.de/en/support-workflows-with-chrome-extensions/">Support workflow with Google Chrome extensions</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16373" class="elementor elementor-16373" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-2b8ebd05 e-flex e-con-boxed e-con e-parent" data-id="2b8ebd05" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1cb91dae e-con-full e-flex e-con e-child" data-id="1cb91dae" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-49a22c11 e-con-full e-flex e-con e-child" data-id="49a22c11" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-114c84e elementor-widget elementor-widget-heading" data-id="114c84e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">An introduction to the development of browser extensions for Google Chrome.</h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-14f65aea e-con-full e-flex e-con e-child" data-id="14f65aea" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-a0bd0ee elementor-widget elementor-widget-text-editor" data-id="a0bd0ee" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Browser extensions are now widely known. However, most users only install an ad blocker and then turn their backs on the Chrome Web Store. Yet extensions can be extremely useful for both businesses and private individuals, as they are by no means limited to blocking ads.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-5e02af2 e-con-full e-flex e-con e-child" data-id="5e02af2" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-8cd48ad elementor-widget elementor-widget-heading" data-id="8cd48ad" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">The essentials at a glance:</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-65158659 elementor-widget elementor-widget-text-editor" data-id="65158659" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<div class="uk-padding uk-padding-remove-horizontal"><div class="uk-section-primary-light"><div class="uk-padding"><p>To give you a better understanding of how to create an extension, we’ll walk you through building a simple browser extension that suggests your currently assigned tasks via the URL bar.</p></div></div></div>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-2a19e77 e-con-full e-flex e-con e-child" data-id="2a19e77" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-edc6353 e-con-full e-flex e-con e-child" data-id="edc6353" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-7ec341c elementor-widget elementor-widget-heading" data-id="7ec341c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">Configure the Extension

 </h4>				</div>
				</div>
				<div class="elementor-element elementor-element-ccf0c9c elementor-widget elementor-widget-text-editor" data-id="ccf0c9c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p data-start="29" data-end="192">To create a browser extension, we need a manifest.json file that contains the configuration for our extension. For simplicity, I’ve created it in its own folder.</p><p data-start="194" data-end="415" data-is-last-node="" data-is-only-node="">The manifest file uses the JSON format. Only properties that are defined in the <a href="https://developer.chrome.com/docs/extensions/reference/manifest?hl=de">documentation</a> may be used. So that you don’t have to dig through the entire documentation, I’m providing the manifest file for our extension.</p><p><span style="font-size: 16px;">{</span></p><p>&#8220;name&#8221;: &#8220;Jira++&#8221;,</p><p>  &#8220;description&#8221;: &#8220;Retrieve Jira tickets via the Omnibox.&#8221;,</p><p>  &#8220;version&#8221;: &#8220;1.0&#8221;,</p><p>  &#8220;icons&#8221;: {</p><p>    &#8220;16&#8221;: &#8220;jira_16.png&#8221;,</p><p>    &#8220;48&#8221;: &#8220;jira_48.png&#8221;,</p><p>    &#8220;128&#8221;: &#8220;jira_128.png&#8221;</p><p>  },</p><p>  &#8220;manifest_version&#8221;: 2,</p><p>  &#8220;background&#8221;: {</p><p>     &#8220;persistent&#8221;: false,</p><p>     &#8220;scripts&#8221;: [ &#8220;background.js&#8221; ]</p><p>  },</p><p>  &#8220;options_ui&#8221;: {</p><p>    &#8220;chrome_style&#8221;: true,</p><p>    &#8220;page&#8221;: &#8220;options/options.html&#8221;</p><p>  },</p><p>  &#8220;permissions&#8221;: [ &#8220;storage&#8221; ],</p><p>  &#8220;omnibox&#8221;: { &#8220;keyword&#8221;: &#8220;jira&#8221; }</p><p>} </p><p data-start="0" data-end="192">Most of the properties are self-explanatory. First, we define “cosmetic” properties such as name (name), description (description), version (version), and the icons to be used (icons).</p><p data-start="194" data-end="374">The background object defines a JavaScript file that runs in the background. This means that the script has no direct access to the content of a website and cannot manipulate it.</p><p data-start="376" data-end="541">With the options_ui object, we define an options page for the extension. In this context, chrome_style means that the options page will not open in a new window.</p><p data-start="543" data-end="761">Finally, there are the permissions and omnibox properties. The former allows us to register permissions for the extension. For our extension, we only need storage, so that we can save data on the user’s computer.</p><p data-start="763" data-end="917">Since, as mentioned earlier, we want to make suggestions in the address bar (the “omnibox”), we also need to define a keyword. In my case, this is jira.</p><p data-start="919" data-end="949"><strong>Creating the Missing Files</strong></p><p data-start="951" data-end="1188">Before we can install the extension, we still need to create the missing files. In our case, these are the icons (jira_16.png, etc.), background.js, and options.html. The latter file should be placed in a subfolder named options.</p><p data-start="1190" data-end="1267">Your folder structure should look roughly like this after creating the files:</p><p><strong>Extension</strong></p><p>│ │ background.js<br />│ │ jira_128.png<br />│ │ jira_16.png<br />│ │ jira_48.png<br />│ │ manifest.json<br />│ │<br />│ └───options<br />│        options.html</p><p data-start="0" data-end="24"><strong>Installing the Extension</strong></p><p data-start="26" data-end="130">After you have created the manifest file, you can already install the extension for testing. Here’s how:</p><ol data-start="132" data-end="499" data-is-last-node="" data-is-only-node=""><li data-start="132" data-end="190"><p data-start="135" data-end="190">Navigate to chrome://extensions in the address bar.</p></li><li data-start="192" data-end="238"><p data-start="195" data-end="238">Enable Developer mode at the top right.</p></li><li data-start="240" data-end="290"><p data-start="243" data-end="290">Click the Load unpacked button on the left.</p></li><li data-start="292" data-end="359"><p data-start="295" data-end="359">Select your folder containing the extension files in the dialog.</p></li><li data-start="361" data-end="499" data-is-last-node=""><p data-start="364" data-end="499" data-is-last-node="">If the extension was successfully installed, you should see a tile similar to the image below (the icon will of course look different).</p></li></ol>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-8e2fcc0 e-con-full e-flex e-con e-child" data-id="8e2fcc0" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-2908fb4 elementor-widget elementor-widget-image" data-id="2908fb4" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="425" height="221" src="https://amcon.de/wp-content/uploads/2021/03/jira-1.0-large.jpg" class="attachment-large size-large wp-image-8396" alt="jira_omnibox_erweiterung" srcset="https://amcon.de/wp-content/uploads/2021/03/jira-1.0-large.jpg 425w, https://amcon.de/wp-content/uploads/2021/03/jira-1.0-large-300x156.jpg 300w" sizes="(max-width: 425px) 100vw, 425px" />															</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-947506e e-flex e-con-boxed e-con e-parent" data-id="947506e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a5e6ddd elementor-widget elementor-widget-heading" data-id="a5e6ddd" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h5 class="elementor-heading-title elementor-size-default">Note</h5>				</div>
				</div>
				<div class="elementor-element elementor-element-e50f80f elementor-widget elementor-widget-text-editor" data-id="e50f80f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In developer mode, you can reload the extension by clicking the circular arrow if you’ve made any changes.</p><p><strong>Show Options Page After Installation</strong></p><p>So far, we have only done configurations. In this step, we start programming. Open the created file background.js in an editor of your choice (e.g., Notepad++).</p><p>In the manifest file, we already defined an options page. Since some settings configured there have an essential impact on how the extension is used, it’s helpful to open this options page immediately after installation so the end user can enter their data right away and won’t overlook or forget it.</p><p>To execute something upon installation, you need to define an event listener for the onInstalled event:</p><p>chrome.runtime.onInstalled.addListener(details =&gt; {</p><p>    if(details.reason === &#8220;install&#8221;) {</p><p>        chrome.runtime.openOptionsPage();</p><p>    }    </p><p>});</p><p><span style="font-size: 16px;">The event listener’s name is a bit misleading — it catches not only the extension’s installation event but also other installation and update events. That’s why we use the optional parameter </span>details<span style="font-size: 16px;">. This object contains the actual reason for the event — in our case, we check if the reason is install,</span><span style="font-size: 16px;"> meaning the extension was just installed. </span>If so, we open the options page using the chrome.runtime API.</p><h3 data-start="1370" data-end="1394"> </h3><p><strong>Testing Installation</strong></p><p>To test the installation, you need to uninstall the extension (click the &#8220;Remove&#8221; button) and then go through the installation steps again under “Installing the Extension.” This is necessary because clicking the reload arrow triggers an update event instead of install.</p><p><strong>Showing Suggestions</strong></p><p>Now, let’s get to the main content of the extension. Open the background.js file again. Here, we add an onInputChanged event listener for the Omnibox:</p><div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">chrome.omnibox.onInputChanged.addListener((input, suggest) =&gt; {    // Insert additional code here});</div></div><p>This listener executes whenever a character is entered in the address bar after the keyword (in my case, jira).</p><p>To make suggestions, we use the second parameter suggest, which is a function we can call. The variable input contains the text typed after the keyword.</p><p>For this extension, the typed text is irrelevant, so we won’t use it further.</p><p>At AMCON, we use Atlassian solutions internally, including Jira, which is used to create and manage tickets (&#8220;tasks&#8221;). Jira provides an API to query these tickets (including filtering by person).</p><p><strong>Note</strong></p><p><br data-start="2538" data-end="2541" />If you don’t use Jira, you can of course use other endpoints or fallback to local storage in the extension where, for example, tasks are stored.</p><p>To load my tickets, you can use the following code— replace the URL with your own:</p><div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">const suggestions = [];chrome.storage.local.get([&#8220;username&#8221;], async (res) =&gt; {    const { username } = res;    if(username) {        const issues = awaitfetch(`https://intern.amcon.de/tickets/${username}`)                         .then(res =&gt; res.json());    issues.forEach(issue =&gt; {        suggestions.push({            content: issue.key,            description: `${issue.key} — ${issue.title}    [${issue.priority}] [${issue.status}]`            });        });    }    suggest(suggestions);})</div></div><p>Insert this code where the comment //Insert additional code here is.</p><p>First, we create a constant array to temporarily store suggestions. Then we load the username from the extension’s storage (the username can be defined on the options page). If the username exists, we fetch all tickets of that user as JSON. Then we iterate over each ticket and add a suggestion object with properties content and description. The description is what the end user sees.</p><p>Finally, we call the suggest function to display the loaded suggestions.</p><p><strong>Retrieving Suggestions</strong></p><p>Suggestions are now displayed, but nothing happens yet when you click one or press Enter. For that, we need an onInputEntered event listener that catches these interactions. Add the following code below the previously defined onInputChanged event listener:</p><div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">chrome.omnibox.onInputEntered.addListener((input, suggest) =&gt; {    chrome.tabs.create({&#8220;url&#8221;:`https://intern.amcon.de/browse/${input.toUpperCase()}`});});</div></div><p>This code opens a new tab and loads the specified URL. The input variable contains the current text in the address bar. If you choose a suggestion, the content of that suggestion is used for input.</p><p>If you type jira web-1000 in the address bar and press Enter, the page will open. Choosing a suggestion will use the suggestion’s content instead of your typed input.</p><p><strong>Creating the Options Page</strong></p><p>The options page is a normal website, except that when you save, data is stored in the extension’s storage. To keep this guide concise, the necessary files for the options page are attached. Simply place them in the options directory. You can overwrite options.html.</p><p><strong data-start="5061" data-end="5074">Download:</strong></p><ul data-start="5077" data-end="5158"><li data-start="5077" data-end="5105">media/files/options.html</li><li data-start="5106" data-end="5132">media/files/options.js</li><li data-start="5133" data-end="5158">media/files/style.css</li></ul><p><strong>Conclusion</strong></p><p>Creating extensions can offer many possibilities, as demonstrated by this example. You can start using the extension by installing it via developer mode. There are, of course, other ways to install extensions if needed. If you want to know more, feel free to contact me at <a class="cursor-pointer" rel="noopener" data-start="5456" data-end="5477">lars.koelker@amcon.de</a>.</p>								</div>
				</div>
					</div>
				</div>
				</div>
		<p>Der Beitrag <a href="https://amcon.de/en/support-workflows-with-chrome-extensions/">Support workflow with Google Chrome extensions</a> erschien zuerst auf <a href="https://amcon.de/en/">AMCON Software GmbH</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
