<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Projects on cat /dev/snapshot</title><link>https://rumpf.eu/michael/projects/</link><description>Recent content in Projects on cat /dev/snapshot</description><generator>Hugo -- 0.154.5</generator><language>en</language><atom:link href="https://rumpf.eu/michael/projects/index.xml" rel="self" type="application/rss+xml"/><item><title>Achievo</title><link>https://rumpf.eu/michael/projects/achievo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/achievo/</guid><description>&lt;p&gt;My role at &lt;a href="https://web.archive.org/web/20100108110134/http://www.achievo.de/"&gt;Achievo Deutschland AG&lt;/a&gt; was best described as &lt;em&gt;Technical Lead Software Development&lt;/em&gt;. My responsibilities included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Development process (offshore and nearshore)&lt;/li&gt;
&lt;li&gt;Software development guidelines&lt;/li&gt;
&lt;li&gt;Definition and compliance checking of quality gates&lt;/li&gt;
&lt;li&gt;Technical architecture&lt;/li&gt;
&lt;li&gt;Coaching of new developers&lt;/li&gt;
&lt;li&gt;Build process and continuous integration strategy&lt;/li&gt;
&lt;li&gt;WebSphere Application Server configuration and deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On customer projects I served as senior software architect.&lt;/p&gt;
&lt;h1 id="taco---transparent-analysis-and-cost-optimization"&gt;TACO - Transparent Analysis and Cost Optimization&lt;/h1&gt;
&lt;p&gt;The TACO project is a J2EE application which supports the purchasing process of car components for an automotive manufacturer.&lt;/p&gt;</description></item><item><title>Allowance</title><link>https://rumpf.eu/michael/projects/allowance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/allowance/</guid><description>&lt;p&gt;This application replaces manual paper-based allowance calculations on construction sites with computer-based data entry and reporting.&lt;/p&gt;
&lt;p&gt;At startup, the user selects a construction site before proceeding to the main menu.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/aufmassmain.png"&gt;&lt;img alt="Main Menu" loading="lazy" src="https://rumpf.eu/michael/images/aufmassmainsmall.png"&gt;&lt;/a&gt;
&lt;em&gt;Main Menu&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The first ten menu items provide functions for the collection of allowances. Each mask is preceded by a blueprint number and the resulting item number for the allowance.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/aufmassinfo.png"&gt;&lt;img alt="Information" loading="lazy" src="https://rumpf.eu/michael/images/aufmassinfosmall.png"&gt;&lt;/a&gt;
&lt;em&gt;Information&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/aufmasslbh.png"&gt;&lt;img alt="Input mask for length, width, and height" loading="lazy" src="https://rumpf.eu/michael/images/aufmasslbhsmall.png"&gt;&lt;/a&gt;
&lt;em&gt;Input mask for length, width, and height&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Amiga</title><link>https://rumpf.eu/michael/projects/amiga/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/amiga/</guid><description>&lt;p&gt;Several fun programs written in &lt;a href="https://en.wikipedia.org/wiki/Motorola_68000"&gt;68000 Assembler&lt;/a&gt; on the &lt;a href="https://en.wikipedia.org/wiki/Amiga"&gt;Commodore Amiga&lt;/a&gt;.
The purpose of these programs was simply to explore the Amiga&amp;rsquo;s hardware capabilities and to have fun.&lt;/p&gt;
&lt;p&gt;The programs below were tested on &lt;a href="http://www.amigaemulator.org/"&gt;Amiga Emulator UAE&lt;/a&gt; version 0.6.9 R12.&lt;/p&gt;
&lt;h1 id="misc"&gt;Misc&lt;/h1&gt;
&lt;p&gt;The small test application below moves five sprites and draws some lines using the processor only &amp;ndash; no Amiga custom chips are involved.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/5imageshuepflines.png"&gt;&lt;img alt="Five hopping sprites" loading="lazy" src="https://rumpf.eu/michael/images/5imageshuepflinessmall.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="vector"&gt;Vector&lt;/h1&gt;
&lt;p&gt;The first screenshot shows my first working vector graphics algorithm.&lt;/p&gt;</description></item><item><title>Automatic Zapit Satellite</title><link>https://rumpf.eu/michael/projects/azs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/azs/</guid><description>&lt;p&gt;This software provides a set of scripts for automatically generating DBox2 Neutrino channel lists &amp;ndash; a workaround for the automatic transponder scan, which does not work reliably on all DBox2 boxes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A&lt;/strong&gt;utomatic &lt;strong&gt;Z&lt;/strong&gt;apit &lt;strong&gt;S&lt;/strong&gt;atellite (AZS) is a small collection of scripts that extract the &lt;a href="http://www.ses-astra.com"&gt;Astra&lt;/a&gt; digital TV and digital radio channel lists from internet sources and produce the &lt;code&gt;services.xml&lt;/code&gt; and &lt;code&gt;bouquets.xml&lt;/code&gt; files used by the Linux operating system on the DBox2 digital satellite receiver.&lt;/p&gt;</description></item><item><title>Autotexts</title><link>https://rumpf.eu/michael/projects/autotexts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/autotexts/</guid><description>&lt;p&gt;This project involved migrating WordBasic macros to VisualBasic for Applications (VBA).&lt;/p&gt;
&lt;p&gt;The company used a large set of Microsoft Word Autotext fragments to generate customer offers. Each fragment described one of their products, and an offer was simply a compilation of different fragments into a single Word document.&lt;/p&gt;
&lt;p&gt;The original program consisted of WordBasic scripts that inserted all Autotexts into a document for editing the product descriptions. My task was to convert these scripts to VisualBasic for Applications (VBA).&lt;/p&gt;</description></item><item><title>C64/C128</title><link>https://rumpf.eu/michael/projects/c64128/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/c64128/</guid><description>&lt;p&gt;The &lt;a href="https://en.wikipedia.org/wiki/Commodore_64"&gt;Commodore 64&lt;/a&gt; projects on this page were created while teaching myself the BASIC programming language and &lt;a href="https://en.wikipedia.org/wiki/MOS_Technology_6502"&gt;6502 Assembler&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The files on this page were converted to the &amp;ldquo;Virtual Disk&amp;rdquo; format (.d64) using &lt;a href="http://sta.c64.org/cables.html"&gt;Trans64&lt;/a&gt; and an X1541 cable to connect an original C64 floppy drive to a PC.&lt;/p&gt;
&lt;h1 id="basic-arithmetics"&gt;Basic Arithmetics&lt;/h1&gt;
&lt;p&gt;This program served as both a calculator and a training tool for basic arithmetic.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/grundrechenarten1.png"&gt;&lt;img alt="Grundrechenarten 1" loading="lazy" src="https://rumpf.eu/michael/images/grundrechenarten1small.png"&gt;&lt;/a&gt; &lt;a href="https://rumpf.eu/michael/images/grundrechenarten2.png"&gt;&lt;img alt="Grundrechenarten 2" loading="lazy" src="https://rumpf.eu/michael/images/grundrechenarten2small.png"&gt;&lt;/a&gt; &lt;a href="https://rumpf.eu/michael/images/grundrechenarten3.png"&gt;&lt;img alt="Grundrechenarten 3" loading="lazy" src="https://rumpf.eu/michael/images/grundrechenarten3small.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/grundrechenarten4.png"&gt;&lt;img alt="Grundrechenarten 4" loading="lazy" src="https://rumpf.eu/michael/images/grundrechenarten4small.png"&gt;&lt;/a&gt; &lt;a href="https://rumpf.eu/michael/images/grundrechenarten5.png"&gt;&lt;img alt="Grundrechenarten 5" loading="lazy" src="https://rumpf.eu/michael/images/grundrechenarten5small.png"&gt;&lt;/a&gt; &lt;a href="https://rumpf.eu/michael/images/grundrechenarten6.png"&gt;&lt;img alt="Grundrechenarten 6" loading="lazy" src="https://rumpf.eu/michael/images/grundrechenarten6small.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/grundrechenarten7.png"&gt;&lt;img alt="Grundrechenarten 7" loading="lazy" src="https://rumpf.eu/michael/images/grundrechenarten7small.png"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Clearing and Settlement System</title><link>https://rumpf.eu/michael/projects/css/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/css/</guid><description>&lt;p&gt;The clearing and settlement solution was developed between September 2004 and June 2005 to process large volumes of chargeable events and produce files for carrying out the actual settlements with a bank.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/cssng.png"&gt;&lt;img alt="Architecture" loading="lazy" src="https://rumpf.eu/michael/images/cssng_small.png"&gt;&lt;/a&gt;
&lt;em&gt;Architecture&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;My task in this project was to develop the Finance Calculation Service (FCS). The main design goal was to keep the interface as simple as possible and to avoid any dependencies on other components of the application. The workflow engine was responsible for orchestrating all the different services. It reads the financial base data from the database via the Finance Data Repository (FDR) and feeds those entities into the FCS API. The calculated results are then stored back into the database through the FDR. The design follows the dependency injection principle, where all data is fed into the FCS methods from the outside. This allows the service to run locally without requiring an EJB container or a database.&lt;/p&gt;</description></item><item><title>COM2CORBA</title><link>https://rumpf.eu/michael/projects/com2corba/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/com2corba/</guid><description>&lt;p&gt;An evaluation prototype for testing CORBA access from VisualBasic applications.&lt;/p&gt;
&lt;p&gt;The goal of this prototype was to evaluate whether a commercially available COM2CORBA bridge is suitable for accessing CORBA objects from a Microsoft COM application.&lt;/p&gt;
&lt;p&gt;The prototype was developed using an evaluation version of Orbix 2.3 for Windows NT and Sun Solaris, along with the IONA Orbix COMet COM2CORBA bridge.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/com2corba.png"&gt;&lt;img alt="COM2CORBA prototype architecture" loading="lazy" src="https://rumpf.eu/michael/images/com2corba_small.png"&gt;&lt;/a&gt;
&lt;em&gt;COM2CORBA prototype architecture&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The server component runs on Solaris 5 and provides access to a Fulcrum Search Server, an SGML indexing engine. The client is a VisualBasic search application running on Windows NT.&lt;/p&gt;</description></item><item><title>CORBA 2.2 Validator</title><link>https://rumpf.eu/michael/projects/validator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/validator/</guid><description>&lt;p&gt;A perl script that runs positive and negative test-cases against arbitrary IDL compilers for specification compliance checking.&lt;/p&gt;
&lt;p&gt;While learning CORBA, I wrote a set of IDL files and a script to check the compliance of an IDL parser.&lt;/p&gt;
&lt;p&gt;The files are separated into categories of valid and invalid IDL fragments. A Perl script picks up the different IDL files and feeds them to the IDL compiler. If the compiler fails on a valid file, or does not fail on an invalid file, the script terminates and reports an incompatibility in the IDL parser under test.&lt;/p&gt;</description></item><item><title>CORBA/CGI Bridge</title><link>https://rumpf.eu/michael/projects/corbacgi/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/corbacgi/</guid><description>&lt;p&gt;The CORBA/CGI bridge is an evaluation prototype for testing how a CGI application can be replaced by CORBA components.&lt;/p&gt;
&lt;p&gt;The idea behind this prototype was to replace a CGI application that accessed a server-side application with a CORBA layer. The client application had to remain unchanged, as its source code was not available.&lt;/p&gt;
&lt;p&gt;In the first step, the CGI application was replaced by a Java servlet deployed on Sun&amp;rsquo;s Java Web Server. At this stage, the servlet still accessed the server application by executing a command-line script.&lt;/p&gt;</description></item><item><title>DOS International</title><link>https://rumpf.eu/michael/projects/dos/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/dos/</guid><description>&lt;p&gt;This article, published in a German PC magazine called &amp;lsquo;DOS International&amp;rsquo;, was written during a summer C++ course at Saarland University.&lt;/p&gt;
&lt;p&gt;&lt;img alt="DOS International" loading="lazy" src="https://rumpf.eu/michael/images/dos993.png"&gt;&lt;/p&gt;
&lt;p&gt;Initially, it was intended as a submission for a contest to write a useful program in just 1024 bytes. The prize was 1024 Deutsche Mark, but unfortunately the program was considered too specialized to be generally useful. However, the contribution was later reused in the magazine&amp;rsquo;s programmer&amp;rsquo;s corner: &amp;rsquo;tips and tricks for programmers&amp;rsquo;.&lt;/p&gt;</description></item><item><title>Energy Cost Calculation</title><link>https://rumpf.eu/michael/projects/eccalc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/eccalc/</guid><description>&lt;p&gt;An application for comparing the cost of traditional power supply against a power generator.&lt;/p&gt;
&lt;p&gt;The &amp;lsquo;Energy Cost Calculation&amp;rsquo; application was used by the sales department of a company selling electrical generators and standby sets. A sales representative&amp;rsquo;s typical task was to compare the efficiency and potential savings of an electrical generator against a standard power supply. This application automates most of the steps that previously had to be done by hand.&lt;/p&gt;</description></item><item><title>Homepage</title><link>https://rumpf.eu/michael/projects/homepage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/homepage/</guid><description>&lt;p&gt;The Homepage project shows the evolution of this website.&lt;/p&gt;
&lt;p&gt;The first version of the homepage was simply a project to teach myself HTML. Since version 2.0 I started using it as an online reference page when applying for a new job.&lt;/p&gt;
&lt;h1 id="version-10-199---199712"&gt;Version 1.0 (199?/?? - 1997/12)&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/homepage1.png"&gt;&lt;img alt="Homepage 1.0" loading="lazy" src="https://rumpf.eu/michael/images/homepage1small.png"&gt;&lt;/a&gt;
&lt;em&gt;Homepage 1.0&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The menu in this version was rendered with the 3D ray-tracing application Lightwave 3D on the Amiga. The big disadvantage of using a full blown image as a menu, is that the menu took a long time to load at the time when 28.8 Modems were state of the art.&lt;/p&gt;</description></item><item><title>IBM</title><link>https://rumpf.eu/michael/projects/ibm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/ibm/</guid><description>&lt;h1 id="daimler-vehicle-backend"&gt;Daimler Vehicle Backend&lt;/h1&gt;
&lt;p&gt;In June 2018 I started as migration lead to move all microservices from the traditional data center to a modern cloud-based environment. The primary objective was to migrate each microservice without impacting customers. A sophisticated Netflix Eureka synchronization mechanism was established to make the transition seamless for microservices, regardless of whether their peers were still running in the data center or had already been moved to the cloud.
This also included a bridge for mirroring messaging middleware traffic from the data center to several cloud-based solutions.&lt;/p&gt;</description></item><item><title>Inventory Management</title><link>https://rumpf.eu/michael/projects/inventory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/inventory/</guid><description>&lt;p&gt;A solution to create offers from product description fragments, stored in an MS Access database.&lt;/p&gt;
&lt;p&gt;This prototype grew out of the VBA project &lt;a href="https://rumpf.eu/michael/projects/autotexts/"&gt;Autotexts&lt;/a&gt;. The Microsoft Word Autotext solution did not scale, was unsuitable for concurrent access, and made it difficult to maintain the set of Autotext fragments in a simple Word document template. The company expressed interest in a more professional solution but ultimately decided to go with an already established application.&lt;/p&gt;</description></item><item><title>Knowledge Now 2</title><link>https://rumpf.eu/michael/projects/kn2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/kn2/</guid><description>&lt;p&gt;My diploma thesis project, focused on CORBA and distributed components. The thesis paper is available as a PDF download below, unfortunately only available in German.&lt;/p&gt;
&lt;p&gt;The thesis was written in LaTeX and converted to a fully featured PDF document with pdfTeX, including links, page preview thumbnails, and a table of contents overview.&lt;/p&gt;
&lt;p&gt;While working on this project, the following smaller spin-off tools were written:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DDEExecute&lt;/strong&gt;
A command-line tool for issuing &lt;a href="http://msdn.microsoft.com/library/default.asp?url=https://rumpf.eu/michael/library/en-us/winui/winui/windowsuserinterface/dataexchange/dynamicdataexchange.asp"&gt;Dynamic Data Exchange&lt;/a&gt; (DDE) commands to applications that support this Windows API.&lt;/p&gt;</description></item><item><title>Mercedes-Benz AG</title><link>https://rumpf.eu/michael/projects/mercedesbenz/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/mercedesbenz/</guid><description>&lt;h1 id="mercedes-intelligent-cloud-mic"&gt;Mercedes Intelligent Cloud (MIC)&lt;/h1&gt;
&lt;p&gt;As Chief Architect for the Mercedes Intelligent Cloud, I am responsible for defining the platform&amp;rsquo;s technical direction and long-term architecture.&lt;/p&gt;
&lt;p&gt;The MIC follows a multicloud strategy spanning Microsoft Azure and AWS, underpinned by a true zero trust model for all inter-service communication. Rather than building central platform teams that risk becoming bottlenecks, we deliver architecture as blueprints, giving DevOps teams full autonomy over their deployments.&lt;/p&gt;
&lt;p&gt;A core principle is shift left: enabling DevOps teams to work directly with cloud services and equipping them with the right tooling to strengthen their security posture. GitLab Ultimate serves as our single-tool strategy, reducing cognitive load and allowing teams to stay focused on delivering business value.&lt;/p&gt;</description></item><item><title>Micro Aggregation Engine (MAGGIE)</title><link>https://rumpf.eu/michael/projects/maggie/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/maggie/</guid><description>&lt;p&gt;The MAGGIE prototype was developed as a showcase for the New York public transport agency, demonstrating how RFID-based credit card payments could be used to purchase subway tickets.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;M&lt;/strong&gt;icro &lt;strong&gt;AGG&lt;/strong&gt;regat&lt;strong&gt;I&lt;/strong&gt;on &lt;strong&gt;E&lt;/strong&gt;ngine prototype demonstrates the concept of aggregating small transaction amounts into larger values before settling them against a traditional payment backend such as a credit card or bank account. This kind of system is useful in markets with very low transaction amounts, where immediate settlement fees would exceed the actual transaction value.&lt;/p&gt;</description></item><item><title>MR Computer</title><link>https://rumpf.eu/michael/projects/mrcomputer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/mrcomputer/</guid><description>&lt;p&gt;This application was developed to support a small business in selling hardware.&lt;/p&gt;
&lt;p&gt;A customer orders one or more hardware items, and the user enters the order into the application.&lt;/p&gt;
&lt;p&gt;The user can choose hardware items from different dealers. The software automatically splits the order into separate orders per dealer, based on the user&amp;rsquo;s item selection.&lt;/p&gt;
&lt;p&gt;When items arrive from the dealers, they are marked as delivered and then appear on the invoices generated for each customer.&lt;/p&gt;</description></item><item><title>Offer</title><link>https://rumpf.eu/michael/projects/offer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/offer/</guid><description>&lt;p&gt;This application replaced an old, hard-to-use host-based system for creating offers for electrical power generators, providing a much simpler interface.&lt;/p&gt;
&lt;p&gt;It was developed to support a sales department in selling electrical generators and standby sets.&lt;/p&gt;
&lt;p&gt;The user chooses a generator model and selects various components from a list. The selection is driven by customer-defined requirements.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/angebot3.png"&gt;&lt;img alt="Main Menu" loading="lazy" src="https://rumpf.eu/michael/images/angebot3small.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Main Menu&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The menu item &amp;lsquo;Create Offer&amp;rsquo; leads the user to a screen where the selection of the generator base model and the optional components takes place.&lt;/p&gt;</description></item><item><title>Orbit Resource</title><link>https://rumpf.eu/michael/projects/orbit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/orbit/</guid><description>&lt;p&gt;A link collection which was created while doing research about the ORBit CORBA ORB.&lt;/p&gt;
&lt;p&gt;The CORBA ORB &amp;lsquo;ORBit&amp;rsquo; spawned a large number of spin-off projects, with information scattered across many different websites. That was the motivation for creating an &lt;a href="https://web.archive.org/web/20170815195940/http://orbit-resource.sourceforge.net/"&gt;ORBit resource page&lt;/a&gt; on SourceForge to serve as a central link collection for all those projects.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/orbit-resource.png"&gt;&lt;img alt="ORBit Resource Collection" loading="lazy" src="https://rumpf.eu/michael/images/orbit-resource_small.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;ORBit Resource Collection&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;With the arrival of the ORBit2 project, interest in the old ORBit version has faded, and the page is no longer maintained.&lt;/p&gt;</description></item><item><title>ORBit Time Service</title><link>https://rumpf.eu/michael/projects/time/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/time/</guid><description>&lt;p&gt;A CORBA TimeService implementation developed for a CORBA ORB with C language mapping.&lt;/p&gt;
&lt;p&gt;When I started using Linux on the desktop, I got interested in the small and efficient CORBA ORB called ORBit. The distributed component architecture &lt;a href="http://www.omg.org/" title="Common Object Request Broker Architecture"&gt;CORBA&lt;/a&gt; is the default inter-process communication protocol used in the &lt;a href="http://www.gnome.org/" title="GNU Network Object Model Environment"&gt;GNOME&lt;/a&gt; desktop project.&lt;/p&gt;
&lt;p&gt;To teach myself the &lt;a href="http://www.omg.org/technology/documents/formal/c_language_mapping.htm"&gt;CORBA C Language Mapping&lt;/a&gt; that ORBit provides, I wrote the CORBA &amp;lsquo;TimeService&amp;rsquo; on top of the ORBit ORB.&lt;/p&gt;</description></item><item><title>Path Editor</title><link>https://rumpf.eu/michael/projects/patheditor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/patheditor/</guid><description>&lt;p&gt;A graphical user interface for defining vehicle pathways with real-time control features.&lt;/p&gt;
&lt;p&gt;This application was developed during a practical course on real-time systems at Saarland University. The course assignment was to build a vehicle with a real-time controller system. I was responsible for the GUI editor used to create paths for the vehicle to follow. Nikolaus Gerteis handled the hardware and Roland Schlosser developed the micro-controller application.&lt;/p&gt;
&lt;p&gt;The 80C166 micro-controller with its various I/O channels implements the fundamental real-time principle of &amp;ldquo;Input, Processing, and Output.&amp;rdquo;&lt;/p&gt;</description></item><item><title>PCon 1.2</title><link>https://rumpf.eu/michael/projects/pcon12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/pcon12/</guid><description>&lt;p&gt;An application for monitoring productivity in small to medium-sized businesses in the manufacturing industry.&lt;/p&gt;
&lt;p&gt;The software was used to provide controlling services to customer companies, primarily regional shoe manufacturers. Collected productivity data was analyzed on a daily, monthly, quarterly, and yearly basis, helping customers improve the efficiency of their manufacturing processes.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/pcon12main.png"&gt;&lt;img alt="Main Window" loading="lazy" src="https://rumpf.eu/michael/images/pcon12mainsmall.png"&gt;&lt;/a&gt;
&lt;em&gt;Main Window&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The program uses a numbering system to classify the different data collections. The numbering encodes the hierarchical structure of the company and its departments. Each department is assigned a 3-part number, where each part represents a level in the organizational structure.&lt;/p&gt;</description></item><item><title>PCon 3.0</title><link>https://rumpf.eu/michael/projects/pcon30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/pcon30/</guid><description>&lt;p&gt;A ground-up rewrite of the productivity controlling application 1.2 using the Microsoft Foundation Classes (MFC), aimed at achieving a more polished look and feel and simplifying the user interface.&lt;/p&gt;
&lt;p&gt;Version 3.0 introduced the following changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added a flexible employee model (individual employees, groups, and machines).&lt;/li&gt;
&lt;li&gt;Added support for data terminals.&lt;/li&gt;
&lt;li&gt;Implemented a traceability system for base data.&lt;/li&gt;
&lt;li&gt;Added flexible task types (single, combined, group, and long-running).&lt;/li&gt;
&lt;li&gt;Used DAO (Data Access Objects) for database access.&lt;/li&gt;
&lt;li&gt;Implemented a streamlined installation procedure.&lt;/li&gt;
&lt;li&gt;Added employee data import from ERP systems.&lt;/li&gt;
&lt;li&gt;Used Crystal Reports V5.0 for reporting.&lt;/li&gt;
&lt;li&gt;Added flexible customer management.&lt;/li&gt;
&lt;li&gt;Extended Win32 API support.&lt;/li&gt;
&lt;li&gt;Removed the hard-to-understand numbering system.&lt;/li&gt;
&lt;li&gt;Dropped the hour type concept, as it was inconsistent with the productivity calculations.&lt;/li&gt;
&lt;li&gt;Dropped the macro system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/pcon30main.png"&gt;&lt;img alt="Main Window" loading="lazy" src="https://rumpf.eu/michael/images/pcon30main_small.png"&gt;&lt;/a&gt;
&lt;em&gt;Main Window&lt;/em&gt;&lt;/p&gt;</description></item><item><title>PCon 3.5</title><link>https://rumpf.eu/michael/projects/pcon35/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/pcon35/</guid><description>&lt;p&gt;This extension of Productivity Controlling 3.0 added concurrent multi-user access to the application.&lt;/p&gt;
&lt;p&gt;The most important feature in version 3.5 of the &lt;a href="https://rumpf.eu/michael/projects/pcon30/"&gt;Productivity-Controlling (PCon)&lt;/a&gt; application is concurrent user support. The original design did not allow multiple users to access the Microsoft Access database at the same time. Since Access itself does not provide concurrent access capabilities, the most practical fix was to introduce a DCOM server component that monitors database access and keeps track of active connections.&lt;/p&gt;</description></item><item><title>Person to Person Payment</title><link>https://rumpf.eu/michael/projects/ppy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/ppy/</guid><description>&lt;p&gt;An application for mobile phone-based money transfers.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;P&lt;/strong&gt;erson to &lt;strong&gt;P&lt;/strong&gt;erson pa&lt;strong&gt;Y&lt;/strong&gt;ment (PPY) prototype was developed in just one week as a showcase demonstrating how a traditional money transfer system could be extended with a mobile phone channel, using SMS to send money orders.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/ppy.png"&gt;&lt;img alt="PPY Transaction List" loading="lazy" src="https://rumpf.eu/michael/images/ppy_small.png"&gt;&lt;/a&gt;
&lt;em&gt;PPY Transaction List&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;My task was to build the web channel for the PPY prototype. XHTML and CSS, together with Java Server Pages (JSP) and the JSP Standard Tag Library (JSTL), were chosen for developing the page templates. The page flow was kept as simple as possible. Beyond demonstrating the functionality to end users, the prototype&amp;rsquo;s goal was to build experience with graphical user interfaces, since our team had historically focused on server-side software with little or no UI work.&lt;/p&gt;</description></item><item><title>Publish C/S</title><link>https://rumpf.eu/michael/projects/publish/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/publish/</guid><description>&lt;p&gt;Distribution of documents to a remotely hosted web application.&lt;/p&gt;
&lt;p&gt;The goal of this application was to provide an administration interface for a web-based information database for expatriates. The interface was used to upload new content to the server systems hosted in Chicago, Illinois, USA.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/publish.png"&gt;&lt;img alt="CountryNet Manager Architecture" loading="lazy" src="https://rumpf.eu/michael/images/publish_small.png"&gt;&lt;/a&gt;
&lt;em&gt;CountryNet Manager Architecture&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The information presented by the application comes from SGML documents indexed by a Fulcrum SearchServer. To update these SGML documents, an administration interface called &lt;em&gt;CountryNet Manager&lt;/em&gt; was developed.&lt;/p&gt;</description></item><item><title>Seminar</title><link>https://rumpf.eu/michael/projects/seminar/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/seminar/</guid><description>&lt;p&gt;A presentation about &amp;lsquo;Approaches for the integration of distributed computation into the WWW&amp;rsquo;&lt;/p&gt;
&lt;p&gt;This paper gives an overview of different architectures for smoothly integrating distributed computation into the World Wide Web (WWW). Of the four approaches presented, three address integration at a very basic level. The fourth deals with higher-level problems such as referential integrity and migration transparency.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Type&lt;/td&gt;
&lt;td&gt;University Presentation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Environment&lt;/td&gt;
&lt;td&gt;Sun Solaris, LaTeX, pdfTeX, vi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Link&lt;/td&gt;
&lt;td&gt;&lt;a href="https://rumpf.eu/michael/files/slides.pdf"&gt;slides.pdf&lt;/a&gt; (287kB) &lt;a href="https://rumpf.eu/michael/files/report.pdf"&gt;report.pdf&lt;/a&gt; (430kB)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>SMPPPD Web</title><link>https://rumpf.eu/michael/projects/smpppd-web/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/smpppd-web/</guid><description>&lt;p&gt;An extension of the web interface to the SuSE Meta PPP Daemon.&lt;/p&gt;
&lt;p&gt;Christopher Hofmann created a web-based front-end for the SuSE Meta PPP Daemon (SMPPPD). &lt;a href="http://www.suse.de/~cwh/"&gt;smpppd-web&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://rumpf.eu/michael/images/smpppd-web1small.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://rumpf.eu/michael/images/smpppd-web2small.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://rumpf.eu/michael/images/smpppd-web3small.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://rumpf.eu/michael/images/smpppd-web4small.png"&gt;&lt;/p&gt;
&lt;p&gt;My extension to the original codebase was to support adding and removing ISDN links on the fly and allowing dial-on-demand of ISDN interfaces.&lt;/p&gt;
&lt;p&gt;My primary user only spoke German, so I added gettext support to the application and translated all texts into German as well.&lt;/p&gt;</description></item><item><title>T-Systems</title><link>https://rumpf.eu/michael/projects/tsystems/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/tsystems/</guid><description>&lt;p&gt;During my time at T-Systems I worked on the following projects:&lt;/p&gt;
&lt;h1 id="daimler-vehicle-backend"&gt;Daimler Vehicle Backend&lt;/h1&gt;
&lt;p&gt;In early 2013, I started as the architect of the Vehicle Homepage project, which is part of the Daimler Vehicle Backend. The entire solution was originally designed on top of an enterprise service bus and application server ecosystem. In 2015, we began a major refactoring of the platform, splitting the monolithic services into smaller microservices using the Spring Boot, Spring Cloud, and Netflix OSS stack. In 2018, this refactoring was completed as a prerequisite for moving the whole system from a traditionally operated data center to a hybrid cloud setup.&lt;/p&gt;</description></item><item><title>Telefax</title><link>https://rumpf.eu/michael/projects/fax/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/fax/</guid><description>&lt;p&gt;This application is a wrapper around an MS-DOS fax program, providing a set of fax templates for a fixed set of recipients.&lt;/p&gt;
&lt;p&gt;The &amp;lsquo;Telefax 1.0&amp;rsquo; application is an extension of an MS-DOS-based fax program.&lt;/p&gt;
&lt;p&gt;Recipient addresses are stored in a plain text file and loaded by the application at startup. Each record is mapped to a function key (F1-F10). This makes the application somewhat restrictive, but the requirement was that only a small number of business partners would receive faxes.&lt;/p&gt;</description></item><item><title>Twister</title><link>https://rumpf.eu/michael/projects/twister/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/twister/</guid><description>&lt;p&gt;A J2EE/C++ application server running on six different operating-system platforms.&lt;/p&gt;
&lt;p&gt;In April 2000, I joined the Twister core team of the Brokat Server Technology Division (STD), where the J2EE Application Server &amp;ldquo;Twister&amp;rdquo; was being developed.&lt;/p&gt;
&lt;p&gt;At the time, the server was sold as an independent product. Unfortunately, in 2001 the decision was made to stop competing with the big players and to use the server as a platform for internal customers only. That remained the state of the product until July 2004, when the final decision was made to discontinue development of the Twister J2EE application server and move to the BEA WebLogic platform instead.&lt;/p&gt;</description></item><item><title>WebCam</title><link>https://rumpf.eu/michael/projects/webcam/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rumpf.eu/michael/projects/webcam/</guid><description>&lt;p&gt;A webcam based on AMIGA M-JPEG digitizer hardware and a collection of scripts to upload the images to an FTP account.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rumpf.eu/michael/images/webcamuploader.png"&gt;&lt;img alt="Main Window" loading="lazy" src="https://rumpf.eu/michael/images/webcamuploader_small.png"&gt;&lt;/a&gt;
&lt;em&gt;Main Window&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This project was an attempt to build a webcam from existing hardware, since professional webcams were very expensive at the time.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hi8 video camera&lt;/li&gt;
&lt;li&gt;Amiga 4000&lt;/li&gt;
&lt;li&gt;VLab Motion, a Motion-JPEG digitizer card&lt;/li&gt;
&lt;li&gt;Parallel port connection (PC2Amiga) to the PC&lt;/li&gt;
&lt;li&gt;Windows PC&lt;/li&gt;
&lt;li&gt;AOL &amp;lsquo;50 hours free&amp;rsquo; internet access&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The video camera is connected to the digitizer board on the Amiga. The digitizer software is controlled by an ARexx script that takes a picture every five seconds and sends it via the PC2Amiga client over the parallel port to the PC. On the PC, a VisualBasic application using the Inet ActiveX control uploads the file to an Internet FTP account. On the server, a cron job moves the uploaded file to a folder on a web server, where it can be viewed in a browser.&lt;/p&gt;</description></item></channel></rss>