Entwicklung einer Linie von Geräten zur Verteilung von Audio über Netzwerk
Im Rahmen dieses umfangreichen Projekts wurde auf diversen Microcrontrollern der STM32-Familie ein anspruchsvoller Software-Stack realisiert, der die Geräte in die Lage versetzt, ihre Zustandsdaten (Pegel, Meter, Routing, Effektgerätparameter) nicht nur zu steuern, sondern über ein proprietäres Protokoll netzwerkweit M2M-Bedienclients zur Verfügung zu stellen. Ein embedded Webserver liefert außerdem eine moderne Webapplikation (Progressive Web App) aus, mit der diese Parameter jeweils von Menschen bedient werden können. Zum Einsatz kommt embedded Linux, Buildsystem ist Yocto / Poky / OpenEmbedded. Der Stack besteht aus vielen Bibliotheken und Services, und ist größtenteils in modernem C++ geschrieben, einschließlich der Webapp.
Design, Implementierung, Betrieb und Wartung der Firmeninfrastruktur
Migration von Software für den Betrieb von Notrufsäulen an deutschen Autobahnen von Solaris auf Linux
Modernisierung Fahrgastinformation und Bordrechner
In diversen System eines Verkehrsnetzbetreibers (Fahrzeug-Bordrechner, Fahrgastinformation) kommen Windows-NT-Embedded-Rechner zum Einsatz. Eine Migration auf Linux und freie Software soll geprüft werden, mangels Dokumentation der bestehenden Systeme kommen dabei Techniken des Reverse Engineering zum Einsatz.
Kollaborationsplatform für das Projektteam eingerichtet und gepflegt (Wiki, Ticketsystem, Dateiserver, Controlling-Tools, Code- und Paketrepositories, DevOps-Spielregeln dokumentiert), Reverse Engineering von Windows NT Embedded Geräten, Linux-Distribution erstellt, automatische Erzeugung derselben aus Paketquellen + Git implementiert, Linux-Soundtreiber für Geode-Chip geschrieben, Soundtreiber in Wine gehackt, I2C-Geräte unter Wine ansprechbar gemacht.
Das bestehende Digital Signage System wurde modernisiert und mit einer interaktiven HTML5-Weboberfläche zur Bedienung versehen. Bestehende Service-Level-Agreements wurden entsprechend der Konzern-internen Vorgaben des Kunden angepasst und ITIL-Konformität dokumentiert.
Für die Erforschung von Möglichkeiten zur Beurteilung von Schneedecken wurde eine Apparatur entwickelt, mit der sich die Ausbreitung von Schallwellen in Schnee messen lässt. Es wurde nach Vorgaben ein Gerät zur Körperschallübertragung konstruiert, gebaut und in einem Wiki dokumentiert, das von der Universität zur Messung verwendet wurde. Dateien mit Testsignalen wurden erzeugt und zur Verfügung gestellt. Ein Mitarbeiter wurde eingestellt und für die Experimente angeleitet.
Ein Softwareprojekt des Kunden war stark im Verzug und benötigte externe Beratung. Zum Aufgabenbereich gehörte die Anleitung und Koordination von etwa 20 Entwicklern, die Einführung von Source-Code-Management, Ticket-System, eines einfachen und selbstgeschriebenen Zeitmanagement-Tools, von Wikis, stringenter Dokumentation des Kundenprojektes, die Kommunikation mit dem Kunden des Kunden und technische Entscheidungen. Bugzilla wurde zu einem Projektmanagement-Tool erweitert.
Für ein großes Mischpult wurde eine native Klangverarbeitung mit niedriger Latenz entwickelt. Linux-Kerneltreiber für die Audio-Interfacekarten wurden für den Realtime-Einsatz angepasst.
Für einen Autohersteller wurde Hard- und Software für ein Digital Signage System entwickelt. Das System besteht aus etwa zweihundert embedded Rechnern, die zeitsynchron in verschiedenen Formaten Audio- und Video wiedergeben, nebst Steuer-, Prozessing und Archivrechnern. Die Ausspielrechner booten via PXE vom Netz und werden via PoE mit Strom versorgt. Das System lässt sich über eine Java-Bibliothek von der Mediensteuerung des Auftraggebers fernsteuern und läuft ansonsten autark. Implementiert wurde die multiclientfähige Steuerungssoftware, Netzwerk-Monitoring-Tools, die Ausspielsoftware, diverse Kerneltreiber und viele Skripte zur Integration der Rechner. Gehäuse der embedded Computer wurden mit AutoCAD konstruiert, Layout verschiedener Platinen der Rechner mit gEDA erstellt.
Benutzerverwaltung, Monitoring, DNS-, DHCP-, FTP-Services mit LDAP-Backend implementiert. Replikation über mehrere Standorte aufgesetzt und gepflegt.
Für ein großes Theatermischpult (mehrere 1000 Bedienparameter) wurde mit Qt eine grafische Benutzeroberfläche programmiert. Die Oberfläche wurde auf mehreren Monitoren im Mischpult angezeigt, die über Xdmx angesteuert werden. Die Integration der Software auf mehreren embedded Rechnern im Mischpult und die Fernwartung gehörte zur Aufgabe.
Für ein großes Theatermischpult wurde eine Support-Infrastruktur eingerichtet. Dazu zählte die Koordinierung der Soft- und Hardwarezulieferer, der Einsätze der Techniker beim Kunden, die Anbindung der Kunden per VPN, die Einrichtung und Pflege einer Hotline, einer Ticketdatenbank und eines primitiven Warenwirtschaftssystems, und die Kommunikation mit den Kunden. Für letztere wurde den Kunden ein Portal mit Ticketdatenbank, Produktinformationen und Datei-Downloads eingerichtet.
Für ein großes Mischpult (mehrere 1000 Bedienparameter) wurde ein multiclientfähiger DSP-Server konzipiert und implementiert. Die Tonverarbeitung wurde von einer Drittfirma geliefert. Die Schnittstellen für deren Bedienung wurden spezifiziert und die dann gelieferten Karten abgenommen, Linux-Kerneltreiber dafür programmiert, die Parameter und Pegelanzeigen als multiclient-fähiger TCP/IP-Netzwerkdienst zur Verfügung gestellt, eine Windows Client-DLL für die Bedienoberfläche programmiert.
Für eine CTI-Software, die in Massencallcentern eingesetzt wurde, wurde ein modulares System zur sprecherunabhängigen Spracherkennung entwickelt. Der Wortschatz war gering ("Eins" bis "Neun", "Ja", "Nein"). Das Programm übernahm die Merkmalsextraktion und Zuordnung der Audio-Daten zu den erkannten Worten. Es war als Client-Server-Architektur aufgebaut, programmiert wurde sowohl der Server in C++, als auch die Client-Software in C++ und Delphi. Die Integration der Produktions-Server gehörte zum Aufgabenfeld.
Das Intranet einer Firma wurde konzipiert und an das Internet angebunden. Dazu gehörte auch das Aufsetzen der In-House betriebenen Web- und Mailserver mit dem Webservice der Firma (Einkaufsgutscheine in PHP) und Firewall. Intranet: DHCP-, DNS-, NTP-, Dateiserver (Samba), Windows-Arbeitsplatzrechner, DMZ / Internet: Konzeption und Implementierung einer zweistufigen Firewall, redundanter Web-, Mail- und DNS-Server, Programmierung von PHP-Skripten zur Administration der Services, Verhandlungen mit dem Provider
Bereits bestehende CORBA-Server wurden an die Business-Logik des Projektes angepasst und getestet. Die Arbeit wurde dokumentiert, nebst der bestehenden anderen Server. Das Netzwerk des neuen Projektbüros wurde geplant und administriert, das betraf der Arbeitsplatzrechner unter Windows NT, den Testserver unter Solaris und die Anbindung des Netzwerkes an die Bank via VPN. Außerdem wurde die vorhandene Netzwerkimplementierung eines Home-Banking-Client unter Palm-OS debugged und gefixt.
Ein Proxy-Server für die Anbindung eines proprietären Chipcard-Clients an das Bank-Backend wurde in C++ programmiert. Ein C++-API für Test-Plugins wurde implementiert. Ein Thread-Handler für die Firmen-Bibliothek wurde neu geschrieben. Das Deployment der Software und die Administration der Test- und Produktionsrechner nebst der Datenbanken (Oracle 8i) und CORBA-Infrastruktur gehörte zur Aufgabe. Die eigenen Arbeit und das Gesamtprojekt wurde dokumentiert.
Ein Proxy-Server für die Anbindung eines undokumentierten aber quelloffenen HBCI-Servers einer Drittfirma an das Bank-Backend wurde in C++ programmiert. Die Anbindung an das Bank-Backend erfolgte über CORBA. Das Deployment der Software und die Administration der Test- und Produktionsrechner gehörte zur Aufgabe. Die eigenen Arbeit und das Gesamtprojekt wurde dokumentiert.
Für das Umrechnen von perspektivischen Aufnahmen von Verkehrsunfällen in Draufsichten wurde eine DLL erstellt, die die nötigen Bildbearbeitungs-Algorithmen zur Verfügung stellt. Zum Testen wurde ein grafisches Tool in Visual Basic programmiert, mit dem diverse Fixpunkte in der Originalaufnahme markiert und deren gemessene Koordinaten eingegeben werden konnten. Außerdem wurde eine Windows-DLL in C++ mit Konversionsroutinen zwischen diversen Grafikdateiformaten implementiert.
Eine Beschreibungssprache nebst Interpreter für komplexe Neuronale Netze zur Erforschung des visuellen Systems wurde entwickelt. Ein- und Ausgabe der Daten war sowohl aus ASCII-Dateien als auch als Windows Bitmap möglich. Eine grafische Benutzeroberfläche in C für XLib / OSF Motif wurde ebenfalls entwickelt. Die Interpreter-Engine wurde mit Perl- und Shellscripten automatisiert.
Softwareentwickler, Systemintegrator und Berater für Softwarelösungen unter Linux
Diverse embedded-Systeme mit diversen Kommunikationsprotokollen (TCP/IP, UDP/IP, ICMP, seriell) an Server angebunden. Multiclient-fähige Server für Steuerungsandwendungen geschrieben. Netzwerk-Überwachungstools geschrieben.
Simulation von Gehirnströmen in neuronalen Netzwerken
Eigene Beschreibungssprache in C realisiert
Framework für Regressionstests aufgesetzt
Design großer Projekte (C++/Java) (>500.000 Codezeilen)
Entwicklung einer Linie von Geräten zur Verteilung von Audio über Netzwerk
Im Rahmen dieses umfangreichen Projekts wurde auf diversen Microcrontrollern der STM32-Familie ein anspruchsvoller Software-Stack realisiert, der die Geräte in die Lage versetzt, ihre Zustandsdaten (Pegel, Meter, Routing, Effektgerätparameter) nicht nur zu steuern, sondern über ein proprietäres Protokoll netzwerkweit M2M-Bedienclients zur Verfügung zu stellen. Ein embedded Webserver liefert außerdem eine moderne Webapplikation (Progressive Web App) aus, mit der diese Parameter jeweils von Menschen bedient werden können. Zum Einsatz kommt embedded Linux, Buildsystem ist Yocto / Poky / OpenEmbedded. Der Stack besteht aus vielen Bibliotheken und Services, und ist größtenteils in modernem C++ geschrieben, einschließlich der Webapp.
Design, Implementierung, Betrieb und Wartung der Firmeninfrastruktur
Migration von Software für den Betrieb von Notrufsäulen an deutschen Autobahnen von Solaris auf Linux
Modernisierung Fahrgastinformation und Bordrechner
In diversen System eines Verkehrsnetzbetreibers (Fahrzeug-Bordrechner, Fahrgastinformation) kommen Windows-NT-Embedded-Rechner zum Einsatz. Eine Migration auf Linux und freie Software soll geprüft werden, mangels Dokumentation der bestehenden Systeme kommen dabei Techniken des Reverse Engineering zum Einsatz.
Kollaborationsplatform für das Projektteam eingerichtet und gepflegt (Wiki, Ticketsystem, Dateiserver, Controlling-Tools, Code- und Paketrepositories, DevOps-Spielregeln dokumentiert), Reverse Engineering von Windows NT Embedded Geräten, Linux-Distribution erstellt, automatische Erzeugung derselben aus Paketquellen + Git implementiert, Linux-Soundtreiber für Geode-Chip geschrieben, Soundtreiber in Wine gehackt, I2C-Geräte unter Wine ansprechbar gemacht.
Das bestehende Digital Signage System wurde modernisiert und mit einer interaktiven HTML5-Weboberfläche zur Bedienung versehen. Bestehende Service-Level-Agreements wurden entsprechend der Konzern-internen Vorgaben des Kunden angepasst und ITIL-Konformität dokumentiert.
Für die Erforschung von Möglichkeiten zur Beurteilung von Schneedecken wurde eine Apparatur entwickelt, mit der sich die Ausbreitung von Schallwellen in Schnee messen lässt. Es wurde nach Vorgaben ein Gerät zur Körperschallübertragung konstruiert, gebaut und in einem Wiki dokumentiert, das von der Universität zur Messung verwendet wurde. Dateien mit Testsignalen wurden erzeugt und zur Verfügung gestellt. Ein Mitarbeiter wurde eingestellt und für die Experimente angeleitet.
Ein Softwareprojekt des Kunden war stark im Verzug und benötigte externe Beratung. Zum Aufgabenbereich gehörte die Anleitung und Koordination von etwa 20 Entwicklern, die Einführung von Source-Code-Management, Ticket-System, eines einfachen und selbstgeschriebenen Zeitmanagement-Tools, von Wikis, stringenter Dokumentation des Kundenprojektes, die Kommunikation mit dem Kunden des Kunden und technische Entscheidungen. Bugzilla wurde zu einem Projektmanagement-Tool erweitert.
Für ein großes Mischpult wurde eine native Klangverarbeitung mit niedriger Latenz entwickelt. Linux-Kerneltreiber für die Audio-Interfacekarten wurden für den Realtime-Einsatz angepasst.
Für einen Autohersteller wurde Hard- und Software für ein Digital Signage System entwickelt. Das System besteht aus etwa zweihundert embedded Rechnern, die zeitsynchron in verschiedenen Formaten Audio- und Video wiedergeben, nebst Steuer-, Prozessing und Archivrechnern. Die Ausspielrechner booten via PXE vom Netz und werden via PoE mit Strom versorgt. Das System lässt sich über eine Java-Bibliothek von der Mediensteuerung des Auftraggebers fernsteuern und läuft ansonsten autark. Implementiert wurde die multiclientfähige Steuerungssoftware, Netzwerk-Monitoring-Tools, die Ausspielsoftware, diverse Kerneltreiber und viele Skripte zur Integration der Rechner. Gehäuse der embedded Computer wurden mit AutoCAD konstruiert, Layout verschiedener Platinen der Rechner mit gEDA erstellt.
Benutzerverwaltung, Monitoring, DNS-, DHCP-, FTP-Services mit LDAP-Backend implementiert. Replikation über mehrere Standorte aufgesetzt und gepflegt.
Für ein großes Theatermischpult (mehrere 1000 Bedienparameter) wurde mit Qt eine grafische Benutzeroberfläche programmiert. Die Oberfläche wurde auf mehreren Monitoren im Mischpult angezeigt, die über Xdmx angesteuert werden. Die Integration der Software auf mehreren embedded Rechnern im Mischpult und die Fernwartung gehörte zur Aufgabe.
Für ein großes Theatermischpult wurde eine Support-Infrastruktur eingerichtet. Dazu zählte die Koordinierung der Soft- und Hardwarezulieferer, der Einsätze der Techniker beim Kunden, die Anbindung der Kunden per VPN, die Einrichtung und Pflege einer Hotline, einer Ticketdatenbank und eines primitiven Warenwirtschaftssystems, und die Kommunikation mit den Kunden. Für letztere wurde den Kunden ein Portal mit Ticketdatenbank, Produktinformationen und Datei-Downloads eingerichtet.
Für ein großes Mischpult (mehrere 1000 Bedienparameter) wurde ein multiclientfähiger DSP-Server konzipiert und implementiert. Die Tonverarbeitung wurde von einer Drittfirma geliefert. Die Schnittstellen für deren Bedienung wurden spezifiziert und die dann gelieferten Karten abgenommen, Linux-Kerneltreiber dafür programmiert, die Parameter und Pegelanzeigen als multiclient-fähiger TCP/IP-Netzwerkdienst zur Verfügung gestellt, eine Windows Client-DLL für die Bedienoberfläche programmiert.
Für eine CTI-Software, die in Massencallcentern eingesetzt wurde, wurde ein modulares System zur sprecherunabhängigen Spracherkennung entwickelt. Der Wortschatz war gering ("Eins" bis "Neun", "Ja", "Nein"). Das Programm übernahm die Merkmalsextraktion und Zuordnung der Audio-Daten zu den erkannten Worten. Es war als Client-Server-Architektur aufgebaut, programmiert wurde sowohl der Server in C++, als auch die Client-Software in C++ und Delphi. Die Integration der Produktions-Server gehörte zum Aufgabenfeld.
Das Intranet einer Firma wurde konzipiert und an das Internet angebunden. Dazu gehörte auch das Aufsetzen der In-House betriebenen Web- und Mailserver mit dem Webservice der Firma (Einkaufsgutscheine in PHP) und Firewall. Intranet: DHCP-, DNS-, NTP-, Dateiserver (Samba), Windows-Arbeitsplatzrechner, DMZ / Internet: Konzeption und Implementierung einer zweistufigen Firewall, redundanter Web-, Mail- und DNS-Server, Programmierung von PHP-Skripten zur Administration der Services, Verhandlungen mit dem Provider
Bereits bestehende CORBA-Server wurden an die Business-Logik des Projektes angepasst und getestet. Die Arbeit wurde dokumentiert, nebst der bestehenden anderen Server. Das Netzwerk des neuen Projektbüros wurde geplant und administriert, das betraf der Arbeitsplatzrechner unter Windows NT, den Testserver unter Solaris und die Anbindung des Netzwerkes an die Bank via VPN. Außerdem wurde die vorhandene Netzwerkimplementierung eines Home-Banking-Client unter Palm-OS debugged und gefixt.
Ein Proxy-Server für die Anbindung eines proprietären Chipcard-Clients an das Bank-Backend wurde in C++ programmiert. Ein C++-API für Test-Plugins wurde implementiert. Ein Thread-Handler für die Firmen-Bibliothek wurde neu geschrieben. Das Deployment der Software und die Administration der Test- und Produktionsrechner nebst der Datenbanken (Oracle 8i) und CORBA-Infrastruktur gehörte zur Aufgabe. Die eigenen Arbeit und das Gesamtprojekt wurde dokumentiert.
Ein Proxy-Server für die Anbindung eines undokumentierten aber quelloffenen HBCI-Servers einer Drittfirma an das Bank-Backend wurde in C++ programmiert. Die Anbindung an das Bank-Backend erfolgte über CORBA. Das Deployment der Software und die Administration der Test- und Produktionsrechner gehörte zur Aufgabe. Die eigenen Arbeit und das Gesamtprojekt wurde dokumentiert.
Für das Umrechnen von perspektivischen Aufnahmen von Verkehrsunfällen in Draufsichten wurde eine DLL erstellt, die die nötigen Bildbearbeitungs-Algorithmen zur Verfügung stellt. Zum Testen wurde ein grafisches Tool in Visual Basic programmiert, mit dem diverse Fixpunkte in der Originalaufnahme markiert und deren gemessene Koordinaten eingegeben werden konnten. Außerdem wurde eine Windows-DLL in C++ mit Konversionsroutinen zwischen diversen Grafikdateiformaten implementiert.
Eine Beschreibungssprache nebst Interpreter für komplexe Neuronale Netze zur Erforschung des visuellen Systems wurde entwickelt. Ein- und Ausgabe der Daten war sowohl aus ASCII-Dateien als auch als Windows Bitmap möglich. Eine grafische Benutzeroberfläche in C für XLib / OSF Motif wurde ebenfalls entwickelt. Die Interpreter-Engine wurde mit Perl- und Shellscripten automatisiert.
Softwareentwickler, Systemintegrator und Berater für Softwarelösungen unter Linux
Diverse embedded-Systeme mit diversen Kommunikationsprotokollen (TCP/IP, UDP/IP, ICMP, seriell) an Server angebunden. Multiclient-fähige Server für Steuerungsandwendungen geschrieben. Netzwerk-Überwachungstools geschrieben.
Simulation von Gehirnströmen in neuronalen Netzwerken
Eigene Beschreibungssprache in C realisiert
Framework für Regressionstests aufgesetzt
Design großer Projekte (C++/Java) (>500.000 Codezeilen)
Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.
"Ich habe mit dem Consultant in mehreren Projekten - unter anderem bei der HBCI-Server-Integration für eine deutsche Großbank und im 'HBCI-Client für Palm OS'-Projekt - sehr gerne zusammengearbeitet. Außerdem löste der Consultant mehrere netzwerktechnische Probleme bei der Gründung einer Niederlassung der emagine GmbH in Berlin. Dabei bestach er stets durch sein hohes Maß an Eigeninitiative und beachtliches Detailwissen. Ich möchte mich hier für seinen Einsatz und seine Mitarbeit bedanken und ihn an andere Projektanbieter weiterempfehlen."
— Projekt Diverses von 8/98 bis 8/00
Referenz durch einen Softwarentwickler der emagine GmbH vom 23.01.02