avatar

Software-Entwicklung, Code Review, Performance-Optimierung C/C++

Score
100%
Experience:
21 y
Score
100%
Experience:
21 y
Location:
71034 Böblingen
Last update:
17.12.2021
Register to Contact Freelancer
Available
Onsite hourly: 45 €
Remote hourly: N/A
German: Native
English: Near native
Bevorzugte Einsatzgebiete: Großräume D7, D8, D6
SKILLS
Programmiersprachen
  • C - sehr gute Kenntnisse
  • C++ - sehr gute Kenntnisse, C++11
  • C# - erweiterte Kenntnisse
Entwicklungsumgebungen, Buildumgebungen
  • Microsoft Visual C++/Visual Studio 2010/2012/2013/2015
  • MSBuild
  • CMake - erweiterte Kenntnisse
  • Makefiles - erweiterte Kenntnisse
  • GNU C Compiler, GNU C++ Compiler
  • momentan Basiskenntnisse clang/LLVM, detailliertere Einarbeitung erforderlich
Technologien, Frameworks
  • systemnahe Entwicklung für Windows und Linux
    • in Projekten:
      • Konzeptionierung, Implementation und Wartung eines XML- Konverters in C++
      • Konzeptionierung, Implementation und Wartung einer Software Update Lösung in C++ (Bereich Fahrzeugdiagnose)
      • Feinkonzeptionierung + Impl. eines Verfahrens zur Beschleunigung von HTTP-Verbindungen für Satelliten-Internetzugänge
      • Konzeptionierung und Implementation eines Programms für die Analyse von aufgezeichnetem Netzwerktraffic und Ermittlung statistischer Zahlen
  • STL (C++)
  • Boost (C++):
  • Win32 (C und C++)
  • MFC
    • in Projekt: Installationssoftware f. das Intelligente Barcode System
  • Qt - Grundkenntnisse
    • in Projekt: Feinkonzeptionierung und Implementation eines patentierten Verfahrens zur Beschleunigung von HTTP-Verbindungen für Satelliten-Internetzugänge
  • ATL (Active Template Library) / WTL (Windows Template Library) - erweiterte Kenntnisse
    • in Projekten:
      • Feinkonzeptionierung + Impl. eines Verfahrens zur Beschleunigung von HTTP-Verbindungen für S
GNU MS Windows Unit-Tests Software-Entwicklung JSP objektorientiert .NET Framework .NET Windows XP Git IPv4 XSLT Python Testautomatisierung SNMP Win32 DNS Fehlercodes Makefiles Unit-Test OpenGL Javascript SMTP Telnet TCP/ IP Softwareentwicklung Code Review C/C++ Windows Windows-System PCAP MSBuild IPv6 Windows Presentation Foundation Protokolldateien Layer 4 Linux GNU C XML DHCP ICMP TomCat Java Visual C++ TCP/IP C++ PCL 5 Mercurial Deep Packet Inspection TCP Satz Benutzeroberfläche HTML CSS WPF Compiler C# Windows Template Library Backend Visual Studio CUDA Ethernet IP-Adressen Versionskontrollsysteme Visual C Skriptsprachen CMake GPUs Flash HTTP-Server TFTP
01.06.2019 — Now
Konzeptionierung und Implementation eines Programms für die Analyse von aufgezeichnetem Netzwerktraffic und Ermittlung statistischer Zahlen
siehe https://www.microsoft.com/en-us/p/packetcapturefilescanner/9ph4wjfrbms2?activetab=pivot:overviewtab und https://github.com/soprero/pcapfilescanner Aufgaben, jeweils Konzeptionierung und Implementation: * I/O-Modul: Einlesen von PCAP/PCAPNG Dateien * Extraktion von Basisinformationen aus den eingelesenen Paketen, z.B. IP-Adressen, Portnummern, usw. * Restaurierung von TCP-Verbindungen inkl. der zugrunde liegenden Flusssteuerung * Restaurierung von Request-Reply-Vorgängen von UDP-basierten Protokollen (z.B. DNS-Anfragen) * für den unterstützten Satz an Applikationsprotokollen: jeweils ein Modul * unterstützte Protokolle momentan: * Layer 2: Ethernet 802.3, Linux Cooked Mode, ARP * Layer 3: IPv4, IPv6, ICMP * Layer 4: TCP, UDP * höhere Layer: DNS, mDNS, DHCP, SNMP, PPPoE, TFTP, SMTP, HTTP, RIP, NTP * Ausarbeiten der jeweils nötigen Analyseschritte für die Zusammenfassung der extrahierten Informationen (Benutzer braucht z.B. Indikatoren über Engpässe, Auslastung, usw.) * Backend portabel gehalten, momentan Windows und Linux * Backend in C/C++ implementiert mit Wrapper f. eine PInvoke-kompatible DLL f. Anbindung des Frontends (nur Windows) * WPF-basiertes Frontend, das das Backend per PInvoke benutzt * Backend ist C-artiger Code (nicht objektorientiert) mit Verwendung von STL-Containern (C++) * Analyse-Durchsatz von 100 MB/s und mehr erreichbar Stichworte Deep Packet Inspection offline, Protokollanalyse, C/C++, .Net, C#, PInvoke, WPF, Catch (Unit-Test Framework für C++)
01.02.2017 — 31.12.2018
Konzeptionierung und Implementation eines Programms zur Erzeugung von Videos aus Einzelbildern (Slideshow) inkl. einem Satz an Übergangseffekten, in C++ und CUDA
* Benutzung der eigenen Bibliothek für die halbautomatische Vektorisierung von Algorithmen für die Berechnung der Effekte per CPU (benutzt erweiterte SIMD-Befehlssätze von x86-basierten Prozessoren wie SSE2) * Berechnungen können sowohl im 32Bit-Fließkommaformat als auch in schmaleren Ganzzahlformaten stattfinden (z.B. 8 Bit pro Farbkomponente im RGB-Farbraum) * Einige der Effekte: Portierung nach CUDA (CUDA: Schnittstelle von nVidia f. die relativ freie Programmierung (nicht beschränkt durch einen reinen Shader-Mechanismus) von GPUs, besonders vorteilhaft bei gut parallelisierbaren Berechnungen) * Portierung auf ARM NEON (ARM-spezifische SIMD-Variante) mit relativ geringen Änderungen an den Algorithmen selbst in Zukunft möglich Stichworte C++, SIMD, CUDA, Catch (Unit-Test Framework für C++)
01.09.2015 — 31.01.2017
Feinkonzeptionierung und Implementation eines patentierten Verfahrens zur Beschleunigung von HTTP-Verbindungen für Satelliten-Internetzugänge
Kontext: Aufgrund verfahrensbedingter sehr hoher Latenzen sind Internetzugänge per Satellitenschüssel (birektional) wenig performant, obwohl rein technisch ausreichend Download-Bandbreite zur Verfügung steht. Dieses Problem ist für Webseiten besonders stark ausgeprägt, da diese aus vielen Einzelressourcen zusammen gesetzt werden. Kern des Problems ist, dass das im Internet verwendete Protokoll TCP für dieses Einsatzszenario nicht ausreichend geeignet ist, um die zur Verfügung stehende Bandbreite voll nutzen zu können. Aufgaben: * Feinkonzeptionierung eines eigenen Protokolls zum Transport von Web-Ressourcen * Implementation der serverseitigen Komponente, erforderte auch Anbindung an ein Headless-Browser-Modul * Implementation der clientseitigen Komponente (Ähnlichkeiten mit einem HTTP-Proxy) * Konzeptionierung und Implementation eines Verfahrens zur Reduktion der für die Übertragung der HTTP-Header nötigen Bandbreite (war möglich, da sowohl Server als auch Client Teil des Projektes war und keine Standardkomponenten sind) * Implementation eines Interpreters für eine projektspezifische Skriptsprache zur Testautomatisierung inkl. Entwurf der Sprache selbst * Konzeptionierung und Implementation einer Sammlung von Unit-Tests, benutzt Google Test * Portierung der Referenzimplementation des BLAKE2B Algorithmus nach SSE2 (x86/x64) und AltiVec, des BLAKE2S Algorithmus nach ARM NEON Stichworte C++, HTTP, UDP, sockets, gtest, headless browser
01.05.2015 — 31.03.2017
Entwicklung und Wartung mehrerer Android-Applikationen aus den Bereichen Entertainment und Productivity
mehrere Erweiterungs- und Anpassungsrunden im angegebenen Zeitraum (Anpassung an neuere Android-Versionen, Tablets, etc.) Es handelt sich um Applikationen mit größtenteils lokaler Verarbeitung ohne serverseitigem Backend. Stichworte Java, Android
01.01.2014 — Now
Implementation und Wartung einer C++-Bibliothek zur halbautomatischen Vektorisierung von Algorithmen für SIMD Befehlssätze von x86- und ARM-basierten Prozessoren (Single Instruction Multiple Data)
* C++ Template basiert * verwendet intern Compiler-Intrinsics (kein Inline-Assembler) * erlaubt Implementation von Algorithmen auf höherem Level als reine Benutzung von Compiler-Intrinsics oder Inline-Assembler, ohne wesentlich schlechteren Code zu erzeugen * Einsatz von C++ Templates erlaubt Verwendung von Befehlssequenzen, die vom Compiler direkt integriert werden (Inlining), ohne zwangsweise auf den Komfort von Funktionen verzichten zu müssen, da Verzweigungen und Funktionsaufrufe Nadelöhre sein können * unterstützt auch ARM NEON f. 32Bit-Fließkommaformat * ARM NEON Unterstützung auch für Android (NDK) Stichworte C++, Templates, SIMD, SSE2, GCC, MSVC, Compiler-Intrinsics, ARM NEON
01.01.2014 — 30.04.2015
Konzeptionierung und Implementation einer portablen Lösung aus dem Bereich Digital Content Creation in C++: prozedurale Generierung von Bildern und Texturen
* umfangreiche Nutzung obiger Bibliothek für Berechnungen mit gepackten Vektoren/SIMD * Berechnungsschritte werden vom Benutzer in einem Graph zusammengestellt, die Berechnungen finden an den Knoten statt, jeder Knotentyp hat einen Satz an Parametern * jeder Knotentyp hat ein oder mehrere Ein- und Ausgänge die miteinander per Kanten verbunden werden können * Kanten können Skalare, Vektoren mit festen Größen oder Graustufen- (1 Kanal) bzw. Farbbilder (4 Kanäle) transportieren * mehr als 90 Knotentypen Stichworte C++, Catch (Unit-Test Framework für C++), Bildbearbeitung, Graphenverarbeitung (gerichtet, azyklisch)
01.02.2011 — 31.07.2013
Software-Entwickler (Festanstellung)
* Einarbeitung in das Output Management System W-ELP, Erweiterung der Konfigurationsoberfläche und Entwicklung der Funktionalität zur Reduzierung von MS Windows basierenden Datenstromgrößen und deren Wandlung in ISO Zeichensätzen * Eigenständige Entwicklung einer komplett neuen Installationssoftware für das RICOH Intelligente Barcode System, inklusive Formularmanagement und Anbindung an W-ELP * Eigenständige Entwicklung eines PCL 6 Parsers (Druckersprache) * Weitere kleinere in sich abgeschlossene Projekte Pflege der Software Update Lösung für Fahrzeugdiagnosesysteme (siehe unten) im Nebenerwerb Stichworte C, C++, MFC, Druckersprachen (PCL 5 und PCL 6/PCL XL), SNMP, UDP, TCP, Winsock, Netzwerkscan per SNMP (Finden von Druckern), eigene spezialisierte Impl. eines Telnet-Client, automatisierte Installation von Erweiterungen für Drucker-Firmware über webbasierte Administrationsschnittstelle
01.07.2006 — 31.12.2013
Konzeptionierung, Implementation und Wartung einer Software Update Lösung in C++ für ein modifiziertes Windows-System aus dem Bereich Fahrzeugdiagnose
Projekt umfasste ca. 20 Wartungsaufträge im angegebenen Zeitraum * Installationspakete liegen als lose Sammlung auf einem HTTP-Server vor und enthalten einen Satz von Bedingungen in Form von Ausdrücken * Parsen dieser Ausdrücke und deren Auswertung gegen den Updatestand des Diagnosesystems * Herunterladen der Menge der aus der Auswertung hervorgegangenen installierbaren Paket * Wiederaufsetzen des Download-Vorgangs nach Abbruch * Generierung einer browserbasierten Benutzeroberfläche per XSLT * Zurücksenden von Informationen bzgl. Updateständen an den Server * in den letzten Jahren des Projektes wurden auch Flash-Dateien (Firmware-Updates f. Steuergeräte in den Fahrzeugen) über diese Software ausgeliefert * ein Windows-Dienst sorgt für ein regelmäßiges Starten des hier grob skizzierten Prozesses * es können Paketabhängigkeiten definiert werden, so dass eine entsprechende Abhängigkeitsanalyse zu implementieren war unter Verwendung des Verfahrens “Topologische Sortierung” Stichworte C++, STL, Boost (in geringem Umfang), Windows-Dienst, Parserentwicklung, HTTP, Apache Xalan/Xerces, HTML, CSS, Javascript (in geringem Umfang), XML, XSLT
01.05.2005 — 31.10.2011
Konzeptionierung, Implementation und Wartung eines XML-Konverters in C++ mit Verwendung von Apache Xalan/Xerces
mehrere Runden mit Wartungsarbeiten im angegebenen Zeitraum: neue Funktionalität, Anpassungen aufgrund geänderter Datenformate, Unterstützung anderer Fahrzeugsparten * Extraktion von Sitzungsdaten aus Protokolldateien der Diagnosesoftware (sog. Kurztests: Diagnosesoftware liest Fehlercodes aus im Fahrzeug verbauten Steuergeräten aus) * Filterung und Zusammenfassung dieser Einzeldaten * Konvertierung in das Zielformat per XSLT * Umfasste auch das Analysieren der Protokolldateien und das Unterbreiten von Vorschlägen, aus welchen Protokolldateielementen die fachlich benötigen Einzelinformationen zu extrahieren und ggf. einer Vorverarbeitung zu unterziehen sind * Separate Schnittstelle, die aus Diagnosebedatungen direkt aufrufbar ist und die Analyse der Protokolldateien umgeht * Zielformat ist Eingabeformat für ein webbasiertes Wissens- und Recherchesystem Stichworte C++, Apache Xalan/Xerces, XML, XSLT, DLL

Description

SKILLS
Programmiersprachen
  • C - sehr gute Kenntnisse
  • C++ - sehr gute Kenntnisse, C++11
  • C# - erweiterte Kenntnisse
Entwicklungsumgebungen, Buildumgebungen
  • Microsoft Visual C++/Visual Studio 2010/2012/2013/2015
  • MSBuild
  • CMake - erweiterte Kenntnisse
  • Makefiles - erweiterte Kenntnisse
  • GNU C Compiler, GNU C++ Compiler
  • momentan Basiskenntnisse clang/LLVM, detailliertere Einarbeitung erforderlich
Technologien, Frameworks
  • systemnahe Entwicklung für Windows und Linux
    • in Projekten:
      • Konzeptionierung, Implementation und Wartung eines XML- Konverters in C++
      • Konzeptionierung, Implementation und Wartung einer Software Update Lösung in C++ (Bereich Fahrzeugdiagnose)
      • Feinkonzeptionierung + Impl. eines Verfahrens zur Beschleunigung von HTTP-Verbindungen für Satelliten-Internetzugänge
      • Konzeptionierung und Implementation eines Programms für die Analyse von aufgezeichnetem Netzwerktraffic und Ermittlung statistischer Zahlen
  • STL (C++)
  • Boost (C++):
  • Win32 (C und C++)
  • MFC
    • in Projekt: Installationssoftware f. das Intelligente Barcode System
  • Qt - Grundkenntnisse
    • in Projekt: Feinkonzeptionierung und Implementation eines patentierten Verfahrens zur Beschleunigung von HTTP-Verbindungen für Satelliten-Internetzugänge
  • ATL (Active Template Library) / WTL (Windows Template Library) - erweiterte Kenntnisse
    • in Projekten:
      • Feinkonzeptionierung + Impl. eines Verfahrens zur Beschleunigung von HTTP-Verbindungen für S

Main Skills

Other Skills

GNU MS Windows Unit-Tests Software-Entwicklung JSP objektorientiert .NET Framework .NET Windows XP Git IPv4 XSLT Python Testautomatisierung SNMP Win32 DNS Fehlercodes Makefiles Unit-Test OpenGL Javascript SMTP Telnet TCP/ IP Softwareentwicklung Code Review C/C++ Windows Windows-System PCAP MSBuild IPv6 Windows Presentation Foundation Protokolldateien Layer 4 Linux GNU C XML DHCP ICMP TomCat Java Visual C++ TCP/IP C++ PCL 5 Mercurial Deep Packet Inspection TCP Satz Benutzeroberfläche HTML CSS WPF Compiler C# Windows Template Library Backend Visual Studio CUDA Ethernet IP-Adressen Versionskontrollsysteme Visual C Skriptsprachen CMake GPUs Flash HTTP-Server TFTP

Work & Experience

01.06.2019 — Now
Konzeptionierung und Implementation eines Programms für die Analyse von aufgezeichnetem Netzwerktraffic und Ermittlung statistischer Zahlen
siehe https://www.microsoft.com/en-us/p/packetcapturefilescanner/9ph4wjfrbms2?activetab=pivot:overviewtab und https://github.com/soprero/pcapfilescanner Aufgaben, jeweils Konzeptionierung und Implementation: * I/O-Modul: Einlesen von PCAP/PCAPNG Dateien * Extraktion von Basisinformationen aus den eingelesenen Paketen, z.B. IP-Adressen, Portnummern, usw. * Restaurierung von TCP-Verbindungen inkl. der zugrunde liegenden Flusssteuerung * Restaurierung von Request-Reply-Vorgängen von UDP-basierten Protokollen (z.B. DNS-Anfragen) * für den unterstützten Satz an Applikationsprotokollen: jeweils ein Modul * unterstützte Protokolle momentan: * Layer 2: Ethernet 802.3, Linux Cooked Mode, ARP * Layer 3: IPv4, IPv6, ICMP * Layer 4: TCP, UDP * höhere Layer: DNS, mDNS, DHCP, SNMP, PPPoE, TFTP, SMTP, HTTP, RIP, NTP * Ausarbeiten der jeweils nötigen Analyseschritte für die Zusammenfassung der extrahierten Informationen (Benutzer braucht z.B. Indikatoren über Engpässe, Auslastung, usw.) * Backend portabel gehalten, momentan Windows und Linux * Backend in C/C++ implementiert mit Wrapper f. eine PInvoke-kompatible DLL f. Anbindung des Frontends (nur Windows) * WPF-basiertes Frontend, das das Backend per PInvoke benutzt * Backend ist C-artiger Code (nicht objektorientiert) mit Verwendung von STL-Containern (C++) * Analyse-Durchsatz von 100 MB/s und mehr erreichbar Stichworte Deep Packet Inspection offline, Protokollanalyse, C/C++, .Net, C#, PInvoke, WPF, Catch (Unit-Test Framework für C++)
01.02.2017 — 31.12.2018
Konzeptionierung und Implementation eines Programms zur Erzeugung von Videos aus Einzelbildern (Slideshow) inkl. einem Satz an Übergangseffekten, in C++ und CUDA
* Benutzung der eigenen Bibliothek für die halbautomatische Vektorisierung von Algorithmen für die Berechnung der Effekte per CPU (benutzt erweiterte SIMD-Befehlssätze von x86-basierten Prozessoren wie SSE2) * Berechnungen können sowohl im 32Bit-Fließkommaformat als auch in schmaleren Ganzzahlformaten stattfinden (z.B. 8 Bit pro Farbkomponente im RGB-Farbraum) * Einige der Effekte: Portierung nach CUDA (CUDA: Schnittstelle von nVidia f. die relativ freie Programmierung (nicht beschränkt durch einen reinen Shader-Mechanismus) von GPUs, besonders vorteilhaft bei gut parallelisierbaren Berechnungen) * Portierung auf ARM NEON (ARM-spezifische SIMD-Variante) mit relativ geringen Änderungen an den Algorithmen selbst in Zukunft möglich Stichworte C++, SIMD, CUDA, Catch (Unit-Test Framework für C++)
01.09.2015 — 31.01.2017
Feinkonzeptionierung und Implementation eines patentierten Verfahrens zur Beschleunigung von HTTP-Verbindungen für Satelliten-Internetzugänge
Kontext: Aufgrund verfahrensbedingter sehr hoher Latenzen sind Internetzugänge per Satellitenschüssel (birektional) wenig performant, obwohl rein technisch ausreichend Download-Bandbreite zur Verfügung steht. Dieses Problem ist für Webseiten besonders stark ausgeprägt, da diese aus vielen Einzelressourcen zusammen gesetzt werden. Kern des Problems ist, dass das im Internet verwendete Protokoll TCP für dieses Einsatzszenario nicht ausreichend geeignet ist, um die zur Verfügung stehende Bandbreite voll nutzen zu können. Aufgaben: * Feinkonzeptionierung eines eigenen Protokolls zum Transport von Web-Ressourcen * Implementation der serverseitigen Komponente, erforderte auch Anbindung an ein Headless-Browser-Modul * Implementation der clientseitigen Komponente (Ähnlichkeiten mit einem HTTP-Proxy) * Konzeptionierung und Implementation eines Verfahrens zur Reduktion der für die Übertragung der HTTP-Header nötigen Bandbreite (war möglich, da sowohl Server als auch Client Teil des Projektes war und keine Standardkomponenten sind) * Implementation eines Interpreters für eine projektspezifische Skriptsprache zur Testautomatisierung inkl. Entwurf der Sprache selbst * Konzeptionierung und Implementation einer Sammlung von Unit-Tests, benutzt Google Test * Portierung der Referenzimplementation des BLAKE2B Algorithmus nach SSE2 (x86/x64) und AltiVec, des BLAKE2S Algorithmus nach ARM NEON Stichworte C++, HTTP, UDP, sockets, gtest, headless browser
01.05.2015 — 31.03.2017
Entwicklung und Wartung mehrerer Android-Applikationen aus den Bereichen Entertainment und Productivity
mehrere Erweiterungs- und Anpassungsrunden im angegebenen Zeitraum (Anpassung an neuere Android-Versionen, Tablets, etc.) Es handelt sich um Applikationen mit größtenteils lokaler Verarbeitung ohne serverseitigem Backend. Stichworte Java, Android
01.01.2014 — Now
Implementation und Wartung einer C++-Bibliothek zur halbautomatischen Vektorisierung von Algorithmen für SIMD Befehlssätze von x86- und ARM-basierten Prozessoren (Single Instruction Multiple Data)
* C++ Template basiert * verwendet intern Compiler-Intrinsics (kein Inline-Assembler) * erlaubt Implementation von Algorithmen auf höherem Level als reine Benutzung von Compiler-Intrinsics oder Inline-Assembler, ohne wesentlich schlechteren Code zu erzeugen * Einsatz von C++ Templates erlaubt Verwendung von Befehlssequenzen, die vom Compiler direkt integriert werden (Inlining), ohne zwangsweise auf den Komfort von Funktionen verzichten zu müssen, da Verzweigungen und Funktionsaufrufe Nadelöhre sein können * unterstützt auch ARM NEON f. 32Bit-Fließkommaformat * ARM NEON Unterstützung auch für Android (NDK) Stichworte C++, Templates, SIMD, SSE2, GCC, MSVC, Compiler-Intrinsics, ARM NEON
01.01.2014 — 30.04.2015
Konzeptionierung und Implementation einer portablen Lösung aus dem Bereich Digital Content Creation in C++: prozedurale Generierung von Bildern und Texturen
* umfangreiche Nutzung obiger Bibliothek für Berechnungen mit gepackten Vektoren/SIMD * Berechnungsschritte werden vom Benutzer in einem Graph zusammengestellt, die Berechnungen finden an den Knoten statt, jeder Knotentyp hat einen Satz an Parametern * jeder Knotentyp hat ein oder mehrere Ein- und Ausgänge die miteinander per Kanten verbunden werden können * Kanten können Skalare, Vektoren mit festen Größen oder Graustufen- (1 Kanal) bzw. Farbbilder (4 Kanäle) transportieren * mehr als 90 Knotentypen Stichworte C++, Catch (Unit-Test Framework für C++), Bildbearbeitung, Graphenverarbeitung (gerichtet, azyklisch)
01.02.2011 — 31.07.2013
Software-Entwickler (Festanstellung)
* Einarbeitung in das Output Management System W-ELP, Erweiterung der Konfigurationsoberfläche und Entwicklung der Funktionalität zur Reduzierung von MS Windows basierenden Datenstromgrößen und deren Wandlung in ISO Zeichensätzen * Eigenständige Entwicklung einer komplett neuen Installationssoftware für das RICOH Intelligente Barcode System, inklusive Formularmanagement und Anbindung an W-ELP * Eigenständige Entwicklung eines PCL 6 Parsers (Druckersprache) * Weitere kleinere in sich abgeschlossene Projekte Pflege der Software Update Lösung für Fahrzeugdiagnosesysteme (siehe unten) im Nebenerwerb Stichworte C, C++, MFC, Druckersprachen (PCL 5 und PCL 6/PCL XL), SNMP, UDP, TCP, Winsock, Netzwerkscan per SNMP (Finden von Druckern), eigene spezialisierte Impl. eines Telnet-Client, automatisierte Installation von Erweiterungen für Drucker-Firmware über webbasierte Administrationsschnittstelle
01.07.2006 — 31.12.2013
Konzeptionierung, Implementation und Wartung einer Software Update Lösung in C++ für ein modifiziertes Windows-System aus dem Bereich Fahrzeugdiagnose
Projekt umfasste ca. 20 Wartungsaufträge im angegebenen Zeitraum * Installationspakete liegen als lose Sammlung auf einem HTTP-Server vor und enthalten einen Satz von Bedingungen in Form von Ausdrücken * Parsen dieser Ausdrücke und deren Auswertung gegen den Updatestand des Diagnosesystems * Herunterladen der Menge der aus der Auswertung hervorgegangenen installierbaren Paket * Wiederaufsetzen des Download-Vorgangs nach Abbruch * Generierung einer browserbasierten Benutzeroberfläche per XSLT * Zurücksenden von Informationen bzgl. Updateständen an den Server * in den letzten Jahren des Projektes wurden auch Flash-Dateien (Firmware-Updates f. Steuergeräte in den Fahrzeugen) über diese Software ausgeliefert * ein Windows-Dienst sorgt für ein regelmäßiges Starten des hier grob skizzierten Prozesses * es können Paketabhängigkeiten definiert werden, so dass eine entsprechende Abhängigkeitsanalyse zu implementieren war unter Verwendung des Verfahrens “Topologische Sortierung” Stichworte C++, STL, Boost (in geringem Umfang), Windows-Dienst, Parserentwicklung, HTTP, Apache Xalan/Xerces, HTML, CSS, Javascript (in geringem Umfang), XML, XSLT
01.05.2005 — 31.10.2011
Konzeptionierung, Implementation und Wartung eines XML-Konverters in C++ mit Verwendung von Apache Xalan/Xerces
mehrere Runden mit Wartungsarbeiten im angegebenen Zeitraum: neue Funktionalität, Anpassungen aufgrund geänderter Datenformate, Unterstützung anderer Fahrzeugsparten * Extraktion von Sitzungsdaten aus Protokolldateien der Diagnosesoftware (sog. Kurztests: Diagnosesoftware liest Fehlercodes aus im Fahrzeug verbauten Steuergeräten aus) * Filterung und Zusammenfassung dieser Einzeldaten * Konvertierung in das Zielformat per XSLT * Umfasste auch das Analysieren der Protokolldateien und das Unterbreiten von Vorschlägen, aus welchen Protokolldateielementen die fachlich benötigen Einzelinformationen zu extrahieren und ggf. einer Vorverarbeitung zu unterziehen sind * Separate Schnittstelle, die aus Diagnosebedatungen direkt aufrufbar ist und die Analyse der Protokolldateien umgeht * Zielformat ist Eingabeformat für ein webbasiertes Wissens- und Recherchesystem Stichworte C++, Apache Xalan/Xerces, XML, XSLT, DLL