With my experiences: programming in C/C++, Java, Esterel and BASIC; scripting in Python, JavaScript, ActionScript 2 & 3, Korn and Bash; modelling in MatLab and SCCharts; and description languages in HTML, VHDL, Verilog and LaTeX; I have contributed code to open source projects.
JavaScript, D3, Bootstrap, HTML, CSS: GitHub
LetSynchronise is an extensible, web-based, open-source (GPL3) framework for modelling, simulating, analysing, and optimising LET-based systems. Aimed at researchers who wish to (1) rapidly prototype and experiment with LET scheduling policies and optimisations, (2) make solutions and benchmarks readily accessible, and (3) fairly and accurately reproduce and evaluate the results of existing work.
C, Python, JavaScript:
GitHub
Java, Xtext, Eclipse:
GitHub
SWTbahn is a physical model railway that consists of tracks, signals, all points that are connected to digital control boards. SWTbahn can be monitored and controlled completely in software, enabling the possibility to fully automate all railway operations and activities. SWTbahn's technology stack includes a low-level communication library to the digital control boards, high-level server-client applications, and a domain-specific language called BahnDSL.
MatLab Simulink/Stateflow: GitHub
Designed a computationally efficient heart model using hybrid automata that generates realistic piecewise continuous electrical signals. The heart model is composed of cardiac cells that are connected by pathways, and can faithfully model a range of arrhythmias, such as VA conduction, heart blocks, and long Q-T syndrome, and re-entrant circuits.
C/C++, ARM assembly, VHDL: GitHub
The ForeC language enables the deterministic, parallel, and reactive programming of embedded multi-cores. The synchronous semantics of ForeC is designed to greatly simplify the understanding and debugging of parallel programs. ForeC programs are compiled for parallel execution and are amenable to static timing analysis. ForeC's main innovation is its shared variable semantics that provides thread isolation and deterministic thread communication. All ForeC programs are correct by construction and deadlock-free because no non-deterministic constructs are needed.
Python: Google Code
This project aims to provide a Python library for creating the data strings required by Open Flash Chart to render graphs.
Open Flash Chart is an interactive chart viewer written in ActionScript. Open Flash Chart is an open source project. At the minimum, Open Flash Chart version 1 requires Adobe Flash Player version 8 while Open Flash Chart version 2 requires Adobe Flash Player 9.
ActionScript 2 and 3: Google Code
BlueMesh is a relational editor. For a set of entities, relations can be made between them. BlueMesh displays entities as rectangular graphics and relationships as lines. Relationships are created between connection sites around each entity.
BlueMesh is written in ActionScript 2 (requires Adobe Flash Player version 6 or above). BlueMesh is intended to be used within a web browser. FlashDevelop was used as the IDE.
This project started as a final year project as part of the Computer Systems Engineering degree at The University of Auckland.
C: Download
The purpose of this project was to design a library that allowed object-orientated system calls to be made to the ATMega 8 micro-controller. This project was fairly successful and allowed the control of PWM, timers and collections of output pins to be manipulated with function calls on structs. The ATMega 8 system included the following hardware devices: LEDs; single-digit sevent-segment display; three pinned tachometered fan; 2 bit flip-flop memory.
The main programme used to test out Alkali functions as follows:
C: Download
The purpose of this project was to design a motor-powered line-following robot. The ATMega 8 micro-controller was used to control the speed of two motors, mounted in opposition to each other, a wheel for each motor. Reversed-biased LEDs were used as light sensors to detect the black line it was meant to follow. Barcodes were encoded into the line to direct the robot through various intersections. PWM signals were used to control the analogue components (motors and LEDs). As a fun side project, a speaker was attached to a PWM output (PINB0 of PortB) to create musical tones. The volume of the tones is not controlled, only the duration and pitch are controlled.