2011 - 2013
ChapterLab is a next-generation word processing tool
with innovative features targeted at non-fiction authors, technical writers, academics, and other authors of long and complex documents.
The application offers conceptual modelling, coherence checking, project planning, to-do list management, bibliographic references management, and rich word processing features in a tightly integrated environment.
Mac OS X and Windows editions are now available in the Early Adopter Beta phase. Download the app and check out the product demo and tutorial videos at www.chapterlab.com.
Technologies: Java, Eclipse RCP, HTML/CSS, PHP + MySQL + PayPal integration for order processing, NSIS
2011 - 2012
Design Intention Driven Programming is a novel software development approach that I proposed and developed as part of my MSc thesis. This tool-supported methodology aims to reduce long-term maintenance costs in large-scale software projects. It features the recording of design intentions and rationale via object-oriented documentation constructs embedded directly in software source code, and provides mechanisms for enforcing adherence to documentation policies. The scheme is particularly suitable for documenting instances of design patterns.
As a proof-of-concept of the approach, I designed an extension to the grammar of Java 5, called Java with Intentions, and implemented a prototype of a language pre-processor.
Technologies: Java, ANTLR v3
2006 - 2008
ReadyBASIC was a fully-featured web-based BASIC interpreter, intended for
teaching programming to beginners. It supported both traditional BASIC programs with line numbers, as well as
structured programs without line numbers (similar to Visual Basic).
Note: ReadyBASIC was implemented a Java applet and applets are no longer supported, so the readybasic.com website is now offline. As a future hobby project, I may try to redevelop it in some other technology.
2001 - 2005
Roarcore was a .MOD music player (and in 2001, to the best of my knowledge, the very first .MOD player written in Java without using system-dependent libraries, arguably making it the first platform-independent .MOD player). It employs digital synthesis techniques to play realistic music from very compact song files using sampled instrument data. It can run as a desktop application or embedded in a webpage.
Note: The web-embeddable version of Roarcore was implemented as a Java applet, but applets are no longer supported. A desktop executable version for Windows was also created (and still works) but will probably give security warnings as the executable was generated before Windows implemented a signing mechanism. I have taken the website down for now, and as a future hobby project I may try to revitalize it.
2001 - 2002
Proof-of-concept for a database-driven, wiki-like foreign language dictionary and language-learning website.
Technologies: PHP, HTML, MySQL, Apache.
Two-player networked version of the Hunt the Wumpus game from the TI-99/4A microcomputer. Unpublished but demo-ready.
Technologies: Java, javax.net, Swing
2000 - 2001
Java-based 3D polygon graphics engine built using Java and Swing. Features include double-buffered animation, polygon filling, and Z-buffering. Unpublished.
Java desktop flashcard application for foreign language learning using spaced repetition for optimal memorization. Unpublished.
.MOD music player and C/C++ digital music libraries for MS-DOS, with background audio (multitasking) capabilities. Unpublished.
Technologies: Turbo C++, 80x86 Assembler
Simple arcade game in MS-DOS with background AdLib music. Unpublished but complete.
Technologies: Turbo C++, inline 80x86 assembler
Yamaha-OPL2 FM (frequency modulation) music library for C. Includes a background music-playing capability using a form of interrupt-driven multitasking under MS-DOS. Supports the AdLib and SoundBlaster sound cards.
Font library for C, and font editor, supporting bitmapped, color-indexed, proportional fonts. Includes a fully-functional font and sprite editor with a hand-coded GUI.
Mode-X VGA graphics library, written as C and 80x86 assembler code linkable with Turbo C++ programs. This was used in my subsequent MS-DOS game and graphics projects and formed the basis for the Atrevida Game Programming Tutorials.
Simple arcade game.
Technologies: QuickBASIC 4.5
1993 - 1994