- High performance Java libraries for 3D Graphics, Multimedia and Processing.
Activities: Hosting and maintaining various Java language mappings supporting 3D Graphics (JOGL/OpenGL), processing (JOCL/OpenCL), et al. JogAmp features a continuous integration system for all supported platforms based on Jenkins, bugtracking via Bugzilla, a wiki and a forum.
Presentations: JavaOne 2008, SIGGRAPH 2010 BOF, SIGGRAPH 2011 BOF.
Activities: Redesign of the OpenGL Java language mapping JOGL
to support multiple windowing systems and exposing multiple OpenGL profiles (ES 1.1, ES 2.0 and GL 1.5 - 4.1)
targeting multiple desktop and embedded/mobile devices, technical lead.
Creating a simple native windowing toolkit (NEWT),
demonstrating efficient JOGL usage on desktop and mobile devices without AWT.
Support porting JOGL to multiple embedded devices, APX 2500, Broadcom/LG, Intel CanMore and PowerVR-SGX/Omap3.
Adding OpenMax IL multimedia support access for embedded platforms.
IT-Environment: Solaris, Windows, Linux, Android, MacOSX, Java, JOGL, OpenGL, JOCL, OpenCL, OpenMax, OpenKode, ARM,
IA-32, Amd64, Sparc, Omap3, Tegra, GCC, MingW, ..
Project: Java Plugin3 Development
Activities: Design and realization of Plugin3, technical team lead.
Abstracting the windowing layer and modularizing Plugin2, forming Plugin3.
Allow usage of custom windowing implementations bootstrapped via JNLP.
Dramatically improving startup time, factor 3 - 13 (new load, reload).
Adding support for offscreen drawable to allow browser side compositioning.
Implementing an OpenGL proof of concept module.
IT-Environment: Solaris, Windows, Linux, Java, OpenGL, GLX, WGL, Networking,
UML, IA-32, Amd64, GCC, MingW, ..
Project: Experimental JavaFX
3D and multimedia cross platform UI API.
Activities: Targeting desktop and mobile devices for a high performance, state of the
art user interface (HMI). Utilizing hardware acceleration (OpenGL ES1.1, ES2.0, GL 1.5-2.0, OpenMax) for the scenegraph layer.
Adding support for per pixel lighting (normal maps) using Maya files.
Modularizing and preparing the scenegraph layer for JOGL's mobile GL profiles.
IT-Environment: Linux, MacOSX, Java, JOGL, OpenGL,
IA-32, Amd64, GCC, Maya, ..
Project: New Java Plug-In incl. JNLP support
Activities: JNLP integration
in the New Java Plug-In, Plugin2.
Design and refactoring of the Java Plugin and JNLP modules, to become Plugin2.
Adding Unix Domain Sockets for the client/server IPC on unices.
Stabilizing the client/server communication and improving startup time.
Specifying the JNLP extension and helping with the test framework for the new features.
Presentation at JavaOne 2008.
IT-Environment: Solaris, Windows, Linux, Java, IPC, Networking,
UML, IA-32, Amd64, Sparc, GCC, VS-C, ..
Project: Embedded Graphics driver; Various embedded driver features and enhancements.
Activities: Requirement management, design, realization and ongoing enhancement of the embedded graphics driver
and interfaces to the OpenGL core, EGL 1.1, ES 1.1/2.0, etc. for various graphic chips R3xx,
R5xx, R6xx and their mobility variants.
Technical team lead.
Design and implementation for various features based upon customer requirements,
e.g. performance OpenGL extension, hardware overlay, asynchronous ReadPixel, GLSL/DMA texture
transfers, page flip and VSync, multi DMA page locks, etc.
High performance enhancements about 250% targeting many functional blocks of the driver, e.g. TLS, inlining, caching, dispatch table, stream copy, etc.
Managing and analyzing customer requirements and transferring them to technical specifications.
Participating in the general driver development within the software team.
Targeting AMD's Linux kernel driver enhancements, etc.
IT-Environment: Doxygen, Office, UML, Perforce, Remedy; GNU: GCC, Linux,
Valgrind, VTune, ATI Graphic Cards, Linux Kernel, OpenGL, GL ES; IA-32 and PPC, MPEG.
Project: Non Volatile Ram Manager
Activities: Requirement management and specification for a new NV Ram Manager. The backward compatible module includes new customer requirements.
IT-Environment: MKS, Doors, Innovator, Doxygen, MS Office, NEC, Lotus
Project: Linux Device Driver - Monolithic and User Space
Activities: Improving knowledge about using user space functionality within Linux device drivers. Learning pros and cons of simple resource handler and utilization of complex user space libraries. Implementing a portion of the Linux DVB API as an user level driver using FUSD and Gelato project knowledge.
IT-Environment: Linux Kernel 2.6.x, gcc, g++, dvb API, FUSD, gelato, ...
Project: Embedded Multimedia Player
Activities: Evaluation and proof of concept of hardware and software solutions.
Proof of concept paper including evaluating, test and quality audit of mpeg solutions incl. the software toolchain.
IT-Environment: Change Synergy, CM Synergy, x86, ESS 6218, ST20, Ansi-C++, DSP, gcc, mpeg2, a52, mp2, lpcm, dvd, ...
Project: OSGI, Multimedia, Embedded Systems, Open Source, ...
Activities: Various activities around multimedia and OSGI support for embedded automotive systems.
Evaluating, porting and enhancing misc. open source multimedia projects, like vdr, vdr-dvd, xine, mplayer, libdvd, ... to being used on a QNX-NTO sh4 platform.
Creating a dvb-driver for a DSP mpeg2 decoder board running under QNX-NTO, implementing the linux-dvb API. This allows using dvb-API applications like VDR and mplayer (dvb video-out).
Evaluating linux-sh for the sh4 developing platform, adding pci-dma support, as well as implementing the PCI-IRQ management. Porting a sh4 bootloader using bootp/nfs for disc-less system.
Evaluating a platform independent GUI/Widget toolkit: QT. Objectives are to develop, test and cross-compile UI projects on different platforms. To satisfy quality requirements, source code as well as a GUI builder should be available, some platform ports should already exist and the API should be state of the art.
Implementing OSGI bundles/applications in an client/server environment for embedded systems (QNX-NTO, XFree86, Java/J2ME, ...).
IT-Environment: Linux, QNX-NTO, x86, SH4, Ansi-C, Ansi-C++, Java, OSGI, XFree86, QT, QT Designer, DSP, gcc, gdb, ddd, mpeg2, a52, mp2, lpcm, dvd, ...
Project: Multimedia ..
Activities: Evaluation and enhancing of open source multimedia projects, like VDR, vdr-dvd, ...
IT-Environment: GNU/Linux, ANSI-C++, mpeg2, a52, dvd, ...
Project: Speaker: OpenGL(R), and New I/O - High-Performance 3D Graphics for the Desktop Client.
Activities: Presentation about the high performance New I/O, demonstrated with the OpenGL(R) language mapping for Java(TM).; Architecture, implementation and future prospects.
IT-Environment: GNU/Linux, Windows, Java, OpenGL
Project: System Administration
Activities: Installation, design and maintenance of a heterogeneous IT infrastructure, using GNU/Linux, iptables, ppp, apache, sendmail, fetchmail, procmail, samba, nfs, nis, ssl, ssh, ... for the DMZ to serve GNU/Linux and Windows clients within different secure and insecure subnets.
Customers are public schools, training centers and internet shops.
IT-Environment: GNU/Linux, Windows, MacOSX; iptables, ppp, apache, sendmail, fetchmail, procmail, samba, nfs, nis, ssl, ssh, popper, imapd, VPN, ..
Project: OSGI - Car-Remote-Control
Activities: Implementation of ClientServer OSGI bundles. The server, installed into the car, provides misc. remote maintenance services, like door locking, camera snapshots of the driver and retrieving it's current position via GPS. The client may connect to the server and use such services in the role of the main user, or in the role of the observer (read-only access). The network access is secured via SSL and RSA encryption and authorized using RSA signatures.
The goal is to demonstrate the remote car control via Java and OSGI bundles, which may be installed onto the client through the internet.
More bundles are under development.
IT-Environment: Java (Sun J2SE, IBM's J2ME J9), OSGI (IBM, Oscar, Acunia), HTTPS/SSL (JSSE), RSA (JCE) Encryption + Signature, Serial+Parallel (JavaComm), MOST, GPS
Project: XFree86 Integration and Driver Modules
Activities: Implementation of an XFree86 driver module for the Scarlet Fujitsu MB86291 graphics device running under Linux & QNX (X86, SH4).
Adaptation and bugfixing of the XFree86 driver module, for the Siliconmotion Lynx3DM graphic device running under Linux & QNX (X86,SH4).
The X11-Server should being used within embedded systems and should provide therefor a graphics interface with network abilities.
While using an X11-Servers in the Unix (QNX) environment we open up our platform to a huge amount of available applications, e.g. media players, Java AWT implementations etc.
Hardware accelerated functions of the graphic devices, such as blitting (XAA) and YUV overlay (Xvideo) were implemented and exposed via the generic X11R6 interface. High 2D and video playback performance with the Scarlet and the Lynx3DM chips are realized.
Miscellaneous adaptation of the XFree86 internals to QNX-NTO, for usage for the X86 and SH4 processor are made.
IT-Environment: Linux, QNX-NTO, ANSI-C, ANSI-C++ XFree86, Scarlet Gfx Chip, Lynx3DM Gfx Chip, gcc, gdb, ddd, X86, SH4
Project: X11-Server AWT Implementation for Java
Activities: Completion & Bugfixing of the AWT Implementation of Kaffe. This AWT implementation does not require Motif (low Memory Footprint), but renders the GUI Widgets exclusively with the XLib. With the assistance of this AWT solution we are able to use standard Java GUI's within the J2ME environment on a Unix and X11R6 based platform.
A QT solution was evaluated as well, but because of the limited availability of a native QT implementation for the embedded device, this approach was discarded.
IT-Environment: Java (Sun J2SE, IBM's J2ME J9), Linux, QNX-NTO, X11-Server, QT, Kaffe
Project: Location Based Premium Services (Usability)
Activities: Evaluation of an application server based upon XML. The application logic is provided via XML-Tags to the web-author. These application-sheets, XSP, can be implemented with Java, as well as with any other programming language. The XML engine Cocoon, provides a framework for this purpose. XML documents may be filtered (piped) and serialized in such a manner, that the application logic (XSP), multilingual support and several output formats (PDF, HTML) are interoperable.
Database objects may be used through the J2EE interface.
The purpose of this server is to provide location based services. Premium information (e.g. traffic control) is provided to the subscriber, which is connected to the network (GSM) and provides it's location via GPS.
IT-Environment: Linux, Java, Servlets (Tomcat), Cocoon (XML/XSP/XSL), J2EE (JBoss), Apache, GPS
Project: Visualization of Organized Structures in 3D
Activities: Implementation and Design of a 3D visualization of organized structures (likely an organigram). The hyperbolic space (3D) is used therefor, so the objects and their correlated links are represented within a sphere. Interactions via mouse-over, mouse-drag and selection are used to navigate through the structure.
IT-Environment: GNU/Linux, UML, Java, OpenGL For Java (GL4Java), OpenGL, UML(ArgoUML).
Project: Client/Server Protocol via XMLRPC
Activities: Implementation and Design of a communication solution between a native server application running on AIX incl. DBMS and many Java clients.
The XMLRPC is used for this purpose as the lightweight protocol.
The XMLRPC is implemented in native ANSI-C++ for the server side, as well as in Java for the client side.
IT-Environment: AIX, Java, XMLRPC, UML(ArgoUML).
Activities: Participation of new inventions of the Home Location Registers (HLR). This HLR ist part of the infrastructure for the mobile telecommunication. Design, implementation and tests belong to these task areas.
IT-Environment: Unix (Solaris), UML, C++, Java, TCP/IP, MAP/TCAP/CSS7, RTC.
Project: Speaker: Introduction to the OpenGL(R) language mapping for Java(TM)
Activities: Presentation about the OpenGL language mapping for Java.; Architecture, implementation and usage.
IT-Environment: GNU/Linux, Windows, Java, OpenGL
Project: Tutoring in the Subjects networking and Java
Activities: Basics and praxis of network techniques, as well as the programming of tcp/ip based protocols in Java.
IT-Environment: Unix (Linux), Java, TCP/IP
Project: Reassurance auction platform in the internet
Activities: Architecture and implementation of an auction application for the internet. Direct insurers are able to offer partial layers of the overall risk to the reassurance companies. The whole handling incl. customer management (booker, direct insurer and reassurance) can take place on the HTML interface (Web-browser).
IT-Environment: Application server (Websphere, Apache, XML, Java Servlets), Java, EJB, DB2, PowerDesigner (DB-Design), Win32, Solaris.
Activities: Modeling, implementation and test of theme objects based upon Use Cases. The product discusses the complete energy economy (device management, customer services, etc.). The application is implemented in Java as a client/server solution.
IT-Environment: Java2, Paradigm Plus, PVCS, Win32, Oracle, Framework incl. ODBMS<->RDBMS Mapper, GUI (View, Controller, Business Object), Java Generator for Paradigm Plus, JDBC, Corba, RMI, Email.
Project: 3D Scenegraph-API for Java.
Activities: Implementation of a native interface to the scenegraph library. Using the scenegraph API and GL4Java an application should be able to manage complex 3d structures and access native 3D techniques. The maintenance and adaption of the scenegraph API is also part of this work.
IT-Environment: Unix (Linux), Windows, VRML, OpenGL, GL4Java, Java
Project: GLMame32 .
Activities: Implementation of a M.A.M.E. display drivers for OpenGL for unix and windows. Alegation was Mike Oliphant's GLMame XMame . The same could be modified, bugfixed and improved. GLMame32 is licensed under the GNU Library General Public License !
IT-Environment: Unix (GNU/Linux), Windows NT/95, OpenGL, MSVC++ 5.0
Project: Easy Travel Online (ETO) der Lufthansa Airplus .
Activities: My tasks included the support of the C++, IIOP and Java environments, as well as the networking area. I managed to find a solution for the IIOP tunneling via HTTP incl. proxy server and a firewall. This solution is implemented like the ETO client in Java and uses the Java-Servlet-API (JSDK). The targets of this new middleware are the client itself and the web server within the server domain. The middleware also implements secure transaction via SSL.
IT-Environment: Unix (Aix, GNU/Linux), Windows NT, , JDK 1.1.X, Java2, JSKD 2.1, Apache, Iona Orbix (-Web), Cygwin32, TCP/IP, HTTP, SSL, Firewall, Proxy-Server
Project: GL4Java Version 2.X (see 04/1997 - 01/1998).
Activities: Design and implementation of the new objectmodel, to seperate the OpenGL , GLU and window handler objects. Java2 and Netscape are now also supported for Win32. GL4Java is licensed under the GNU Library General Public License !
IT-Environment: Unix (Aix, Solaris, GNU/Linux), Windows NT/95, Macintosh, OpenGL, JDK 1.1.X, Java2, Java-Native-Interface, Cygwin32, TCP/IP, HTTP, GNU-C++, MSVC++ 5.0
Activities: Tutoring in the areas of ANSI-C++, Java and networking. Next to the theory, the learning target was deepened using practical example projects.
IT-Environment: Unix (GNU/Linux), Windows NT, , GNU-C++, JDK 1.1.X, RCS, SNMP, TCP/IP, Apache, UML
Project: Realization of an upgrade process in SDL and C++
Activities: Participation in Design und Coding of each of the processes for the Upgrade module in SDL and C++. Special functions in C/C++ within the OS VxWorks. Review process, documentation and execution of module and unit tests (regression tests) on the host and target system.
The emphupgrade module is used for the remote maintained firmware distribution of diverse components (xDSL modems).
The emphupgrade process was developed for the project XpressLink of the Siemens AG, M"unchen.
IT-Environment: Unix (Sun - Solaris), Windows NT, SDT 3.11 (Telelogic SDL) , GNU-C++, ClearCase (ClearTool), VxWorks (Target), SNMP (MIB)
Project: GL4Java, OpenGL language mapping for Java
Activities: Creation of a Java extension, which makes OpenGL and GLU natively available under Java. The OpenGL interface is realized with the Java Native Interface (JNI), which connects the Java-Methods to the native OpenGL functions. Creation of a platform independent development environment under Unix (AIX, GNU/Linux) and Windows NT (Cygnus-GNU-Tools, ...) for using Java, ANSI-C, Makefile, etc. These works started under the supervision of Prof. Dr. math. Bunse FH-Bielefeld within my diploma thesis. GL4Java is available under the URL: http://www.jausoft.com/gl4java/.
IT-Environment: Java Developer Kit 1.1.X (JDK), JavaCC, Latex, HTML, Make, RCS, Unix (AIX, GNU/Linux, Solaris), Windows NT, Cygnus-GNU for Win-NT 4.0 (bash, vi, sed, grep, awk, ...)
Project: Technical Prototype (GUI) for a Call-Center Application
Activities: Creation and integration of GUI widgets (objects) and functional extensions in Java for Sun's Java-WorkShop:
Creation of prototypes, installation of a Source Control System (SCCS) on AIX, support of the GUI-Team with Java know-how, Web-Publishing.
IT-Environment: Sun's Java WorkShop 1.0, Java Developer Kit 1.02 (JDK), Symantec Visual-Cafe, JavaCC (Java Compiler Compiler), HTML, Netscape (WWW), Make, SCCS, Unix (AIX), Windows NT, Cygnus-GNU for Win-NT 4.0 (bash, vi, sed, grep, awk, ...)
Project: Platfrom independed graphical user interfaces and applications.
Activities: Usability test of Tcl/Tk and Java, to provide OS independent applications with a GUI. Examples with multi-threading, sound, animation, tables, menus and system interfaces are created for testing purposes. The Java libraries, (applet, awt, io, ...) as well as the TK-Library were evaluated for this purpose. The development environment was assembled with the JDK 1.02, GNU/Linux and Java Workshop 1.0.
IT-Environment: Unix (GNU/Linux), MS-Windows 95, ANSI-C, ANSI-C++, Tcl/Tk, Sun's Java WorkShop 1.0, Java Developer Kit 1.02 (JDK), HTML, Netscape (WWW), Make, RCS
Projects: CAD/CAM DIN66025 for 80166-Controller (Sewing machine), OS services for 8051 and 80166 controller-cards.
Activities: Implementation of modules in ANSI-C to support OO development in ANSI-C. Run-Time-Type-Information (RTTI) and virtual methods for user defined data types. Implementation of a dynamic polymorph list type. All modules are designed to implement OO designed applications in ANSI-C (80166-Controller, KEIL-C compiler). Building a GUI, a Unix like file system for a PCMCIA ram-card, and an IPC communication protocol for two 80166-Controller. Porting of the DIN66025 compiler (C++ to C), which was created for the Windows CAD/CAM application (see above). The DIN66025 CNC description is now visualized and editable on the 80166-Controller also.
IT-Environment: Controller hardware 80166 and 8051, MS-Dos, ANSI-C (KEIL compiler for 80166 and 8051 Controller), Unix-Environment for MS-Dos (MKS), RCS, Make, ANSI-C++ (GNU)
Activities: SQL-DB GUI for a web-server. Queries and db-management is offered with a http/cgi interface. Filters to process the non-uniform data for the db import are realized with Unix scripts (awk/sed/...).
IT-Environment: Unix (GNU/Linux), HTTP-Server (Apache), mSQL (DBMS), ANSI-C, ANSI-C++ (GNU), RCS, Make, awk, sed, grep
Project: CAD/CAM DIN66025 under MS-Windows (3.1 u. 95)
Activities: Development of a CAD/CAM application. The applications have two windows. One for the graphical, and the other for the text based (DIN 66025) visualization of the geometric and the technical data. Both windows are editable and the data is updated synchronously. The text representation is the source data which is compiled into an OO data structure, which can be drawn in the 2D window and be printed in a DIN66025 text file.
IT-Environment: MS-Windows/Windows95, ANSI-C++ (MS VisualC++), MFC, Word 5 (Onlinehelp), Lex & Yacc (MKS), RCS (GNU), Make (GNU), Unix env. (MKS/GNU/Linux)
Project: DB interface to AutoCad (visualization and graphical editing)
Activities: Analysis and manipulation of a dBase-DB for AutoCad. Data sets from a Street- and Drain-DB are visualized and edited with AutoCad.
IT-Environment: MS-Dos, ANSI-C++ (Watcom), dBase DB, AutoCad (MS-Dos), RCS (MKS), Make (MKS), Unix env. (MKS/GNU/Linux)
Project: C++ Training
Activities: ANSI-C++ Training 1-2 times weekly.
IT-Environment: ANSI-C++, Teaching with MS-Dos and Borland-C++ 4.0
Projects: CAM tools, compiler- and interpreter construction, crosscompiler for different CNC-Formats, geometric and technology-attribute manipulation of CNC-Formats (optimization and insertion of machine steps and vectors), DB interface, CNC compiler and interpreter.
Activities: Building a C-like interpreting compiler. Scripts written for this module process a universal CNC-Format (FXM) and translate them to a machine specific CNC-Format. Also used to implement different CNC filters for analysis and completion of vectors and to optimize machine-cycles and vector paths. Using generic hash-lists incl. a quick-sort pass, dereferencing symbolic objects gives high performance for more complex scripts. The interpreter generates byte-code structured in an Abstract Syntax Tree (AST).
IT-Environment: MS-Dos, Unix, ANSI-C++ (Borland 4.0, Watcom, GNU-C++), Lex Yacc (MKS), RCS (MKS), Make (MKS), Unix-Env. (MKS/GNU/Linux)
Project: Cross compiler from SET-PR (SDL) to SDT-PR (SDL)
Activities: Development of a Specification-Description-Language (SDL) Cross Compiler from SET-PR to SDT-PR, as well as of SDL-PR to ANSI-C. The task was solved by using LEX, YACC and an ANSI-C Compiler of a SUN- and HP-Workstation.
IT-Environment: Sun- u. HP-Workstation, ANSI-C, LEX u. YACC, Make, Korn-Shell
Project: Solutions- and optimizing systems
Activities: Development of OO genetic algorithm incl. sample applications Missionary and cannibals (game simulation), as well as distance (travel-salesman) optimization.
IT-Environment: Unix, MS-Dos, ANSI-C++ (Borland 4.0), RCS, Make
Project: Specification and documentation of parallel Processes.
Activities: Translation of SDL-PR to SDL-GR (Graphic Display) for MS-Windows. Development of protocols for ISDN and Ethernet using SDL.
IT-Environment: MS-Windows, Unix, C++ (Borland 3.1 - Windows), ISDN, Ethernet, SDL
Project: ScanArts - GUI for manipulation of scanned mathematic 2D formulas (described in c't 1993/09).
Activities: Graphic programming for MS-DOS and MS-Windows. General Drag and Drop, Pixel-chain scanning, fill algorithms, drawing of Lines and circles, Matrix rotation and transformation as well as Techniques for reversible graphical editing (undo). Co-author of publication Mathematic User Interface with Recognition of two-dimensional Formulas1. My adds here are the chapters Graphical Editing of Graphic Formulas as well as User Interface for ScanArts to Maple Algebra Program.
IT-Environment: MS-Dos u. -Windows, ANSI-C (Borland 3.1, BGI), MapleV, Word 5
Project: Porting a quick-Basic application to Turbo-Basic
Activities: Building translation automates for two Basic dialects in ANSI-C.
IT-Environment: MS-Dos, ANSI-C, Basic