This page showcases my programming work for the desktop environment, and lists the computer languages I have used. The programs presented here include a set of futures trading tools, Microsoft Press Games for Windows, a series of C programmer's toolsets, and a custom software system for the D. L. Glaze insurance corporation. Also included are a variety of smaller programs, some of which I developed for book projects.
Computer Languages
The following are the languages I have used in my programming work:
- Objective C, Cocoa
- Java
- HTML, XHTML, Ajax
- CSS
- JavaScript, DHTML
- PHP
- MySQL, Oracle
- XML, XML Schema, XSLT
- C, C++
- Lisp
- VRML (Virtual Reality Modeling Language)
- BASIC, Visual Basic
- Intel Assembly Language
- Pascal
- COBOL
Futures Trading Tools (2009)
I used the Java language to create a set of tools for developing, optimizing, and running automated trading systems for the futures markets. Among the unique features of these tools is an algorithm that tests the historical performance of a trading system by automatically rolling over from contract to contract, using the actual market data for each contract as in real trading, rather than an artificially generated continuous contract. Also, the trading system parameters are optimized separately (and stored in a database) for each market (e.g. S&P EMini, Eurodollar, and Wheat). And finally, the trading signals generated at the end of a trading day are ranked according to their expected returns, so that the trader can choose to take only the most promising trades.
The trading-system optimization system uses an originally developed zone method, together with an asymptotic fitness function that employs a set of unique performance-measuring algorithms.
Click here to see the program window of the visual trading simulator included with these tools.
Microsoft Press Games for Windows (1992)
Microsoft Press Games for Windows is a set of 11 computer games developed in Visual Basic, which I wrote for Microsoft Press in 1992.
The games are derived from my book Visual Basic—Game Programming for Windows. They are not complex video action games, but rather are relatively simple puzzles, strategic board challenges, and animated games that demonstrate many of the graphics and animation capabilities of Visual Basic.
To play the games on a Windows system, you can download the file VBGames.zip. Then extract the entire contents of the zip file (including VBRUN100.DLL) into a single directory.
To run a game, just double-click the .EXE file and use the Help menu! (Remember when programs were so simple that you didn't need to install them?)
Note: The games run fine on versions of Windows through XP. They will also run on other operating systems if you use Windows emulation software such as WINE. Unfortunately, Vista refuses to run them because they are 16-bit applications. I understand that Windows 7 has some sort of Windows XP emulation environment. If you try to run them on Windows 7, please let me know what happens. Thanks!
FYI: I have enhanced and translated four of these games into an app for the iPhone and iPod touch, which is known as GameQuartet.
TIP: To learn about many interesting, little-known games, be sure to visit www.CardsAndDominoes.com.
Programmer's Toolsets
From 1987 through 1989 I developed and marketed three C programmer's toolsets.
1. Systems Tools for Turbo C (1987)
A library of functions for developing Turbo C programs and memory-resident utilities for MS-DOS. These functions extend the C runtime library by making use the underlying MS-DOS and BIOS APIs and other low-level resources. The library consists of the following modules:
- Video Buffer Functions
- An Expanded Memory Interface
- File Management Functions
- Graphics Functions
- Interrupt Handling Functions
- Console I/O Control Functions
- Keyboard Functions
- Printer Functions
- Video Functions
- Functions for Creating Memory Resident Programs
- Utility Functions
The toolkit also includes an interactive text-mode screen designer.
2. Software Tools for C (1989)
A library of routines, similar to Systems Tools for Turbo C, but for use with Microsoft C, Turbo C, or Turbo C++. These functions are written in C and assembler, and consist of the following components:
- Disk Management Functions
- Expanded Memory Functions
- General Utility Functions
- Graphics Functions
- Interrupt Service Routines
- Keyboard Functions
- Functions for Creating Memory Resident Programs
- Mouse Functions
- Printer Functions
- Screen Functions
The toolkit also includes an interactive text-mode screen designer.
3. OS/Tools (1989)
A toolkit for the OS/2 programmer, consisting of a set of more than 70 functions, short example programs that use these functions, and a collection of OS/2 utilities. All C and assembly language source code is included. The functions serve to extend the C runtime library and the OS/2 application program interface, and are grouped into the following modules:
- Disk management functions
- General utility functions, defined in C
- General utility functions, defined in assembly language
- Keyboard management functions
- Printer management functions
- Screen functions
- Supporting functions called by the module functions
The OS/2 utilities demonstrate the use of the functions, exploit unique features of OS/2, and provide useful services for the programmer. They include a keyboard macro program, an interactive text-mode screen designer, and a text-mode screen capture utility.
Insurance Adjuster System
From 1986 through 1998 I developed and maintained a custom software system for the D. L. Glaze Company, an insurance corporation with twelve branches in California. The Novell network system tracks clients and adjusters and generates invoices and reports. It was written in C with assembly language subroutines, employing an ISAM library (CTree).
Small Demonstration Programs
- A simple compiler (in Pascal!) and a set of compiler extensions (in Java)
-
A virtual world in VRML (Virtual Reality Modeling Language):
- An Oracle database for tracking instructors, students, and employees in a university, including a Java interface
-
A set of discrete event simulations in C:
... while (a[n] < TAU) { s = a[n]; do { s = s + Exponential ((double)1.0 / (double)LAMBDAMAX); u = Uniform (0.0, LAMBDAMAX); } while ((u > lambda (s)) && (s < TAU)); a[n+1] = s; n++; } ...
-
A genetic algorithm in Lisp:
;; excerpt: ;; returns a list containing both the y value that maximizes g(y) & the maximum g(y) value (defun fittest (population) (let ((max-fitness -1) (opt-y 0) individual-fitness individual) (dotimes (idx (length population) (list opt-y max-fitness)) (setf individual (nth idx population)) (setf individual-fitness (fitness individual)) (if (> individual-fitness max-fitness) (progn (setf max-fitness individual-fitness) (setf opt-y (/ (decimal individual) (- (expt 2 no-of-alleles) 1.0))))))))
-
A multithreaded synchronization application (a modified version of Dijkstra's Sleeping Barber Problem) in Java:
Programs Developed for Book Projects
The following are two examples of programs that were written specifically for book projects:
-
A set of Windows utilities written for Mastering Windows Utilities Programming with C++, which includes the following programs:
-
A C++ Windows animation library developed for Windows Animation Programming with C++, which allows C++ programmers to add either sprite animation or frame animation to their programs:



