Projektliste

  • Smartcard Programmierung auf APDU Ebene
    • OSX und Windows
    • C, C++
    • Jetbrains CLion, CMake, Catch Test Framework, PCSC Scard
  • Passwortsynchronisation für Windows Systeme ohne Active Directory
    • Windows
    • Hooks im Credential Provider für Logon und Passwortänderung, Tcp Server
    • C++, C#
    • Google Test, Isolator Mock System, Visual Studio 2015
  • Smartcard Verwaltung
    • Windows
    • Ausstellen von Smartcards, Zertifikatserneuerung, Tageskarten, Ersatzkarten, Erzeugen von Schlüsseln und Zertifikaten
    • C++, VB, SQL, PKCS#11
  • Credential Provider Programmierung
    • Smartcard Anmeldung, Wrapping von Fremdprovidern, Passwort Lifecycle Management
    • Windows
    • C++, PKCS#11
  • USB Geräteüberwachung
    • Geräteerkennung und Sperrung unerlaubter Geräte, Verwaltung mit MMC Snapins
    • Windows
    • C++, C#
  • Single Sign On für Windows und Internet Anwendungen
    • Browserintegration, Systemhooks, Automation Api
    • Windows
    • C++
  • Testprojekte zur Erforschung / Evaluation
    • Windows Workflow Foundation
    • Ada
    • Matlab

 

Die Liste ist unvollständig, da Projekte teilweise mit NDA gekoppelt sind. Historisch wird die Liste weiter ergänzt.

Evaluation: OpenMP, OpenCL, CUDA, Microsoft AMP

High Performance Projekt zur statistischen Auswertung

Es wurden OpenCL, OpenMP, CUDA und AMP als Technologien und Programmierumgebung für ein „High Performance Projekt zur statistischen Auswertung“ untersucht.

Anforderung

Für das aktuelle Projekt werden statistische Auswertungen über Zahlenreihen unter Ausnutzung der Prozessorkerne und GPUs durchgeführt.

Für die Implementierung der Logik ist bereits die Entscheidung zu Gunsten der Intel Threading Building Blocks TBB gefallen.

Für die Programmierung der GPUs sollte in kleinen Tests Erfahrung gesammelt werden und eine Entscheidung für die Programmierung getroffen werden.

Kandidaten

Für die Programmierung habe ich OpenMP®, OpenCL der Khronos Group, CUDA von Nvidia und AMP von Microsoft angesehen bzw. in kleinen Beispielen getestet.

Die Entscheidung ist für OpenCL gefallen.

  • Unabhängigkeit der verwendeten Hardware (gegenüber CUDA und AMP)
  • Unabhängigkeit der verwendeten  Betriebssysteme
  • Unabhängigkeit der verwendeten Compiler
  • Besser zu steuern gegenüber OpenMP
  • Microsoft unterstützt nur OpenMP 2.0 zur Zeit und ich musste im Testcode wieder #ifdefs verwenden
  • AMP habe ich nur angelesen aber nicht getestet.

Verwendete Bibliothek

Nach einer kurzen Testphase verwende ich den „OpenCL C++ Wrapper“ der Khronos Group. Das Projekt Boost.Compute (kein Boost Projekt) habe ich mir ebenfalls angesehen und es ist als Kandidat noch im Rennen.

Testumgebung

Getestet wurde auf Mac Pro unter OSX mit CLion und CLang.

Verwendete Entwicklungswerkzeuge

Hier eine Liste der aktuellen Entwicklungswerkzeuge, Produkte und Bibliotheken, die wir für unsere Softwareentwicklung unter Windows und OSX verwenden.

Neue Entwicklungswerkzeuge im Jahr 2017:

  • Catch C++ Testframework (https://github.com/philsquared/Catch)

Neue Entwicklungswerkzeuge im Jahr 2016:

Bereits im Jahr 2015 verwendet

  • Aus Interesse ein wenig ADA mit GNAT und SPARK
  • Wechsel von C++ 98 zu C++ 11/14
  • C/C++ seit 1981
  • C# für kleine Projekte
  • Microsoft Visual Studio 2010-2015
  • JetBrains YouTrack
  • JetBrains Resharper
  • CMake
  • Visual Lint
  • CppDepend
  • Visual Assist
  • Subversion
  • Git
  • RC WinTrans
  • InstallAware
  • VMware Desktop
  • Parallels Desktop
  • Windows 7 bis Windows 10, Windows Server 2012
  • OSX
  • SQLite
  • Boost
  • PKCS#11
  • CryptoPP (https://www.cryptopp.com)
  • OpenSSL
  • Doxygen

 

Projekt: Aufbau einer C++ Buildumgebung

Für ein neues C++ Projekt soll eine neue Buildumgebung geschaffen werden, welche eine Entwicklung auf OSX und Windows ermöglicht.

Das C++ Projekt startet im Februar 2016. Die Buildumgebung soll daher Anfang Februar funktional sein.

  • Die Entwicklung erfolgt gleichzeitig für Windows mit Microsoft Visual Studio und auf OSX mit JetBrains CLion.
  • Eingesetzt wird GIT für die Source Verwaltung, vermutlich mit Gitolite für die Verwaltung der Zugriffsrechte.
  • Projektmanagement und Bugtracking erfolgt mit YouTrack von JetBrains.
  • Als Continuous Integration Server wird TeamCity von JetBrains eingesetzt.
  • Testweise wird auch Upsource von JetBrains als CodeReview Tool getestet.
  • GIT, YouTrack, TeamCity und UpSource werden auf einem Debian Server laufen.
  • Die Entscheidung für die Datenhaltung ist noch ungeklärt. Es stehen SQL Datenbank, SQLite und XML zur Diskussion.

Kryptografie

Beruflich gelesen. Sehr gut die Verfahren dargestellt.

  • Verfahren, Protokolle, Infrastrukturen
  • Autor: Klaus Schmeh
  • Verlag: dpunkt
  • Erscheinungsjahr: 2013

Verwendete Entwicklungswerkzeuge im Jahr 2015

  • Aus Interesse ein wenig ADA mit GNAT und SPARK
  • C/C++ seit 1981
  • C# etwas für kleine Projekte
  • Microsoft Visual Studio 2013
  • JetBrains YouTrack
  • JetBrains Resharper
  • CMake
  • Visual Lint
  • CppDepend
  • Visual Assist
  • Subversion
  • RC WinTrans
  • InstallAware
  • VMware Desktop
  • Parallels Desktop
  • Windows 7 bis Windows 10, Windows Server 2012
  • OSX
  • SQLite

Praxishandbuch BPMN 2.0

Ich habe das „Praxishandbuch BPMN 2.0“ beruflich gelesen. Es ist ein  guter Einstieg, der Praxistest folgt jetzt in 2016.

  • Autor: Jakob Freund und Bernd Rücker
  • Verlag: Hanser
  • Erscheinungsjahr: 2014