Projects

As part of my pro­fes­sio­n­al ac­tiv­i­ties as a soft­ware sys­tems en­gi­neer I deal a lot with graph­ics pro­gram­ming, de­vel­op­ment of pro­gram­ming tools for cre­at­ing in­ter­ac­tive graph­i­cal us­er in­ter­faces, code gen­er­a­tors and compil­ers. This page con­tains a sum­mary of pro­jects that I have im­ple­ment­ed in re­cent years.

Latest

Web de­vel­op­ment • Graph­ic de­sign and pro­gram­ming of my ac­tu­al web­site. You are cur­rent­ly on this site.

Port­ing GUI ed­i­tor Embedd­ed Wizard to the cur­rent ver­sion of Mi­cro­soft Vi­su­al C++ 2012 • Embedd­ed Wizard is a vi­su­al de­vel­op­ment en­vi­ron­ment for the cre­a­tion and gen­er­a­tion of graph­i­cal us­er in­ter­faces for embedd­ed sys­tems.

Ja­vaScript code gen­er­a­tor for the GUI ed­i­tor Embedd­ed Wizard • Embedd­ed Wizard is a vi­su­al de­vel­op­ment en­vi­ron­ment for the cre­a­tion and gen­er­a­tion of graph­i­cal us­er in­ter­faces. With this new code gen­er­a­tor a GUI ap­pli­ca­tion cre­at­ed with Embedd­ed Wizard can be load­ed and ex­e­cut­ed di­rect­ly within a Web­GL en­abled web brows­er.

Bézi­er curves with Open­GL ES 2.0 • Re­search of the pos­si­bil­i­ties for im­ple­men­ta­tion of op­ti­mized Bézi­er draw­ing func­tions with Open­GL ES 2.0.

iOS si­m­u­la­tor for elec­tri­cal cir­cuits • The si­m­u­la­tor cal­cu­lates, ex­e­cutes and vi­su­al­izes on an iPhone or iPad sim­ple cir­cuits con­sist­ing of switch­es, re­lays, lamps, re­sis­tors, etc. Orig­i­nal­ly this de­vel­op­ment was in­tend­ed for a game.

Ed­i­tor for in­ter­ac­tive HTM­L5 Can­vas 2D an­i­ma­tions • A Mac OS X and Win­dows ap­pli­ca­tion for cre­a­tion and gen­er­a­tion of in­ter­ac­tive con­tents for HTM­L5 Can­vas 2D. The an­i­ma­tions can be in­te­grat­ed and op­er­at­ed within a web­site sim­i­lar­ly to Adobe Flash. How­ev­er un­like the Flash, Can­vas 2D an­i­ma­tions can be ex­e­cut­ed na­tive­ly and with­out ad­di­tio­n­al plu­gins.

Past development activities

HTML Web­Brows­er and Di­rec­t2D • Im­ple­men­ta­tion of an OLE con­tain­er that can redi­rect all graph­i­cal out­puts of an embedd­ed In­ter­net Ex­plor­er Web­Brows­er Ac­tiveX con­trol in­to a Di­rec­t2D bitmap. The HTML out­puts can then be com­bined with other Di­rec­t2D con­tents. Im­ple­men­ta­tion in C++.

Stor­age frame­work • C++ li­brary for stor­age and eval­u­a­tion of pro­gram da­ta and pref­er­ence files – a kind of da­ta base. The cor­re­spond­ing files are stored in a for­mat sim­i­lar to JSON syn­tax. The frame­work is op­ti­mized to si­mul­ta­ne­ous­ly ma­n­age mul­ti­ple ver­sions of all pro­gram da­ta and their de­pen­den­cies. This al­lows the us­er to tra­verse at run­time the ver­sion his­to­ry of the da­ta – the ba­sis for un­do/re­do op­er­a­tions.

Code gen­er­a­tors for Mac OS X and iOS • Adap­ta­tion of the Embedd­ed Wizard code gen­er­a­tors and the run­time en­vi­ron­ment for the both new tar­get sys­tems Mac OS X and iOS. With this new code gen­er­a­tors a GUI ap­pli­ca­tion cre­at­ed with Embedd­ed Wizard can be ex­e­cut­ed na­tive­ly on a Mac OS X or iOS. Embedd­ed Wizard is a vi­su­al de­vel­op­ment en­vi­ron­ment for the cre­a­tion and gen­er­a­tion of graph­i­cal us­er in­ter­faces.

Au­to­mat­ic doc­u­men­ta­tion gen­er­a­tor • En­hance­ment of Embedd­ed Wizard for au­to­mat­ic ex­trac­tion of GUI pro­ject doc­u­men­ta­tion. The gen­er­at­ed doc­u­men­ta­tion is stored in the CHM (Compiled HTML Help) Mi­cro­soft file for­mat. Embedd­ed Wizard is a vi­su­al de­vel­op­ment en­vi­ron­ment for the cre­a­tion and gen­er­a­tion of graph­i­cal us­er in­ter­faces.

GUI ed­i­tor Embedd­ed Wizard • Embedd­ed Wizard is a Win­dows ap­pli­ca­tion used as a vi­su­al de­vel­op­ment en­vi­ron­ment for the cre­a­tion and gen­er­a­tion of graph­i­cal us­er in­ter­faces. The in­ter­face of Embedd­ed Wizard it­self has been de­vel­oped with Mi­cro­soft Vi­su­al C++ and MFC.

Compil­er for Cho­ra • Cho­ra is a plat­form-in­de­pen­dent, ob­ject-ori­ent­ed pro­gram­ming lan­guage. It has been de­signed to fa­cil­i­tate the cre­a­tion of graph­i­cal us­er in­ter­faces. The syn­tax of Cho­ra is very sim­i­lar to that of C++ and Ja­va. Cho­ra forms the core of the GUI ed­i­tor Embedd­ed Wizard – a vi­su­al de­vel­op­ment en­vi­ron­ment for the cre­a­tion and gen­er­a­tion of plat­form-in­de­pen­dent graph­i­cal us­er in­ter­faces

AN­SI C code gen­er­a­tor and run­time en­vi­ron­ment • Back­end for the Cho­ra compil­er. Cre­ates from the plat­form-in­de­pen­dent Cho­ra code the cor­re­spond­ing AN­SI C code. Forms the ba­sis for the plat­form-in­de­pen­dent de­vel­op­ment of graph­i­cal us­er in­ter­faces.

Cho­ra in­ter­preter and de­bug­ger • A vir­tu­al run­time en­vi­ron­ment for the pro­gram­ming lan­guage Cho­ra. Al­lows di­rect­ly on Win­dows the ex­e­cu­tion and ver­i­fi­ca­tion of GUI ap­pli­ca­tions writ­ten in Cho­ra lan­guage. It si­m­u­lates the char­ac­teris­tics of dif­fer­ent tar­get sys­tems.

Mo­sa­ic frame­work • Li­brary with plat­form in­de­pen­dent com­po­nents re­quired for the cre­a­tion of GUI ap­pli­ca­tions. De­vel­oped in ob­ject-ori­ent­ed pro­gram­ming lan­guage Cho­ra.

Embedd­ed Wizard graph­ics en­gine • C li­brary pro­vid­ing com­mon func­tions for vari­ous 2D and 3D draw­ing op­er­a­tions, im­age and text out­put. Op­ti­mized for dif­fer­ent col­or for­mats from In­dex8 to 32-bit RG­BA. Each of the draw­ing op­er­a­tions can be mapped on­to the graph­ics hard­ware of the tar­get sys­tem. Op­er­a­tions that the graph­ics hard­ware does not sup­port, are per­formed by high­ly-op­ti­mized soft­ware draw­ing func­tions. The in­te­gra­tion with ex­ist­ing graph­ic sub­sys­tems in­cludes be­side others Open­GL, Open­GL ES 2.0, Lin­ux Di­rectFB, Win­dows, Mac OS X, iOS, An­droid, ...

At­tribut­ed strings • Adap­ta­tion of Embedd­ed Wizard graph­ics en­gine to the pos­si­bil­i­ty to out­put for­matt­ed text con­tain­ing embedd­ed ta­bles and im­ages – con­cep­tu­al­ly sim­i­lar to HTML. Was used amongst others to show us­er man­u­als and help in­for­ma­tion in TV sets and set-top box­es.

GUI ed­i­tor OSD-Builder • A Win­dows ap­pli­ca­tion for the cre­a­tion and gen­er­a­tion of graph­i­cal us­er in­ter­faces (OSD: On Screen Dis­play) for the MDE9500 mi­cro­con­troller. MDE9500 was used in vari­ous TV sets and set-top box­es as the dig­i­tal tele­vi­sion DVB-T-on-a-chip pro­ces­sor.

GDI (Graph­ics De­vice In­ter­face) and Win­dows Ma­n­ag­er li­brary for the MDE9500 mi­cro­con­troller • MDE9500 was used in vari­ous TV sets and set-top box­es as the dig­i­tal tele­vi­sion DVB-T-on-a-chip pro­ces­sor. This pro­gram­ming li­brary served the TV man­u­fac­tur­ers as a graph­ic sys­tem for de­vel­op­ing graph­i­cal us­er in­ter­faces for their de­vices.

GUI ed­i­tor M2-Builder • A Win­dows ap­pli­ca­tion for the cre­a­tion and gen­er­a­tion of graph­i­cal us­er in­ter­faces (OSD: On Screen Dis­play) for the SDA6000 mi­cro­con­troller. SDA6000 mi­cro­con­troller (al­so known as M2) has been used in the past in many ana­log TV sets.

GDI (Graph­ics De­vice In­ter­face) and Win­dows Ma­n­ag­er li­brary for the SDA6000 mi­cro­con­troller • SDA6000 mi­cro­con­troller (al­so known as M2) has been used in the past in many ana­log TV sets. This pro­gram­ming li­brary served the TV man­u­fac­tur­ers as a graph­ic sys­tem for de­vel­op­ing graph­i­cal us­er in­ter­faces for their de­vices.

Win­dows NT ker­nel mode driv­er to con­trol the tele­text gen­er­a­tor hard­ware • The tele­text gen­er­a­tor was used by the TV man­u­fac­tur­ers to ver­i­fy the cor­rect func­tion of their tele­text de­coders.

Tele­text ed­i­tor GED­I­TOR • A Win­dows ap­pli­ca­tion, with it the us­er could ed­it eas­i­ly and con­ve­nient the tele­text pack­ets for test­ing tele­text de­coders.

In­ter­preter for a BA­SIC dialect • The in­struc­tion set of the in­ter­preter sup­port­ed the I2C in­ter­face and was used among others for the au­to­mat­ed test­ing of TV sets.