Christopher T. Hull

Objective

Seeking a core position in software research, design, and development. Will entertain management of a software group.

Experience Summary

Twenty years experience programming a number of personal computer systems ranging from IMSAI 8080, Apple II, Atari 800, Apple Macintosh, Commodore Amiga, IBM PC, and the Java virtual machine. Have developed commercial software under the MacOS, DOS, and Windows operating systems.

Proficient in C, C++, and Java, as well as various machine languages (Intel, Motorola, and DEC). Familiar with Fortran, Lisp and ADA. Developed code under the MPW, Think, Cafe, CodeWarrior, and Visual C++ development environments (in addition to environments long extinct). Have worked with specialty languages such as PostScript.

A broad bandwidth of software development on popular commercial platforms. Achievements in high-speed graphics, sound compression schemes, implementation of mathematical algorithms & alternative number systems (fast fixed point on 6502 & hardware FPU support for Macintosh 512). Have developed telecommunications software using RS/232 and AppleTalk protocols. Developed one of the first electronic mail packages for the Macintosh (MageTalk, 1986).

Experience in image processing, file format translation, and compression of sound and image data. Invented the first digital video windowing system for the Macintosh (MegaShot, shown at MacWorld 1988). Designed components of Apple Computer's QuickDraw GX, and EZAV System Software enhancements.

Experience in low-level hardware support (device drivers & test software), hardware emulation in software (SoftIMSAI 8080), and some hardware development. Have done cross- platform development writing a graphics and memory management library allowing one piece of code to compile and run under both Macintosh and Windows operating systems (ModaCAD).

Sample Code Package

You can download a sample package containing some of the code I've tinkered with over the years. This code covers works on the Macintosh, DOS / Windows and Unix platforms. The package also includes two shareware Macintosh applications. This stuffit archive is intended for download on a Macintosh and is approximately 1 megabyte in size.

Click here and go to lunch.

Positions

Netscape Communications, Mountain View CA. August 1996 - Present

Java Browser and Operating Environment (known as Gemini or Netscape 6.0).
Designed an event and graphics system for the project before it was decided to use IFC. Developed some IFC and JFC HTML elements for the product. Designed and developed the Form Manager. This is the software that handles HTML form data collection and submission to the server. Also developed all of the form elements themselves, the actual code that draws the HTML form itself and handles user input. Wrote part of the HTML parser for the product. Designed an internal testing mechanism for Java applications and applets called SelfTest which is used throughout the product to test the robustness of Java objects at runtime.

Netscape Communicator Version 4.0.
Developed the address book user interface code for the Macintosh client (CodeWarrior C++). Designed and developed the AppleScript code allowing other applications to communicate with Communicator. The AppleScript code allows other Macintosh applications to extract mail and HTML pages from Communicator and allows these applications to control a wide variety of Communicator functions.

Apple Computer, Cupertino, CA. June 1992 - August 1996

EZAV
Along with a team of two other engineers, architect a driver and user interface system based on QuickTime Components. EZAV will allow developers of Macintosh peripheral hardware to easily write drivers and user interfaces for their products. This system replaces the tedious DRVR and CDEV resource scheme implemented by earlier versions of System Software. EZAV will also allow applications access to Macintosh peripheral hardware. A multimedia application can offer easy access to volume controls, cameras and other media devices without forcing the user to use several different control panels to accomplish simple tasks.

QuickDraw GX Printing System
Developed drivers for the StyleWriter II, Apple Color Printer, and LaserWriter LS. These are hybrid GrayShare-QuickDraw GX drivers which use GrayShare technology for imaging and device communications while taking advantage of the QuickDraw GX user interface. Developed some of the code necessary to make QuickDraw GX backwards compatible with the existing Macintosh printing architecture (fixed bugs in the "old UI" code).

GrayShare
Assisted in completion of Apple's GrayShare product. Located and fixed several QuickDraw related bugs. Wrote some hardware level code for the StyleWriter II to allow simultaneous support for GrayShare and QuickDraw GX.

ModaCAD, Los Angeles, CA. November 1988 - June 1992

Port of ModaDrape (modeling and texture mapping software) to Windows, 1992
Developed a library of graphics and memory management routines for the Microsoft Windows environment to allow ModaCAD's Macintosh based texture mapping system to run on both the Mac and PC under Windows. Modified some of the code on the Macintosh side so that it was more portable.

ModaVision, August 1990 - June 1992
Worked with a team of programmers to produce a three dimensional image sculpting system on the Macintosh. ModaVision uses either a red-blue or high speed LCD shutter system to produce it's three dimensional effect. I developed several utility packages and assisted with the three dimensional sculpting software. I also wrote some of the 3D graphics library. Product shown at MacWorld, January 1991.

The Designer's Toolkit, August 1989 - June 1990
This utility allows the user to reduce the number of colors in an image so as to allow hardware with limited color capability to reproduce the image as accurately as possible. A later version allowed the user to manipulate palettes associated with an image in addition to pixel data.

Promoted to Director of Engineering, July 1989
Responsibilities include product development planning, task allocation to other ModaCAD technical consultants, and software development.

The Grader, May - July 1989
I was one of a two member team developing a grading system on the Macintosh. The purpose of the grader is to allow the user to import pattern pieces or create them from scratch. Various features could be added to these pieces. After a base piece had been created it could be graded according to growth rules entered in a spread sheet like table. The dimensions of the graded pattern pieces determine the size of the article of clothing that they will make up. The set of pieces could then be saved to disk so that a marker could make use of them. I designed the program, developed the spread sheet, wrote all of the graphics editing software including a package of CAD tools, and developed the application framework and user interface.

The Marker, November 1988 - May 1989
The purpose of a marker is to draw pattern pieces on fabric for cutting. The challenge here is to use the fabric as efficiently as possible. I developed the basic application framework for the Marker project as well as the user interface. I wrote routines to display the pieces and measuring tools on the marking table, collision detection, and automated piece movement software.

MegaGraphics Corp, Canoga Park, CA. October, 1985 - July 1988

MegaShot, Nov 1987 - July 1988
Developed image processing software for a video digitizer on the Macintosh II. The project involved the development of software for live video display in windows, low level hardware support, image motion detection, development of a PostScript driver (the LaserWriter driver could not yet print grays), and data compression and storage in multiple file formats (GIFF) for compatibility with other graphics packages. MegaShot was displayed at MacWorld Expo, January 1988 and was the first implementation of video windowing on the Macintosh .

MegaTalk, 1987
Developed extensive electronic mail package for the Macintosh involving transmission of text, graphics, and voice over the AppleTalk network. Compression of sound data was necessary to increase communication speed, This product made use of some unusual but Mac like user interface concepts such as communication via user configurable dialog boxes. Wrote user's manual for pre-release versions of this product. Demonstrated at MacWrold Expo, August 1987. See the Macintosh Buyer's Guide 87' & 88 under 'Electronic Mail.'

1986: Developed diagnostic software for production and repair of math co-processor and large screen upgrades.

MegaMath, November 1985 - April 1986
Wrote math package replacing the Macintosh's built in software, allowing application programs to automatically utilize a 68881 upgrade resulting in speed increases for math intensive products. Assisted with hardware development of a math co-processor upgrade for the Macintosh based on the Motorola 68881. Wrote programmer documentation for this project. This was the first such upgrade for the Macintosh.

MegaRAM, 1985
Wrote RAM disk software to utilize a Macintosh memory upgrade, my first Macintosh project.

Compu-Press, Calabassas, CA. February, 1984 - October, 1985

One of a three member team which developed an integrated Chinese word processing and database system on the Apple II and IBM PC. Assisted in definition and implementation of a small operating system (CIOS, the Chinese Input / Output System) which allowed applications to effectively use kanji character sets. CIOS included routines for input via a graphics tablet, basic memory management, output to dot matrix printers and displays, as well as a basic page description language used in printing Chinese documents. Wrote some of the application level software and all printer drivers which executed high level page layout commands and generated Chinese text in various formats.

OmniSoft, Canoga Park, CA. August 1983 - November 1983

Was one of a two member team developing a video game on the IBM PC. Wrote C callable assembly language graphics routines (8086) for game. Also wrote all data editing software for maps, shapes, etc.

Quality Software, Canoga Park, CA. November 1980 - July 1981

Character Magic
Developed a font editor for the Atari 800, my first commercial program. See the December 1981 issue of Creative Computing (if you can still find a copy).

Independent Projects

Javaplay.com
Currently working on a gaming site. Javaplay is based on a Java foundation class I have named the SGFC (Strategic Gaming Foundation Class) which provides the utilities necessary to drive all the games on the site. The SGFC is a sort of operating system for Java based games on the web.

Hierarchical Data System (HDS)
Developing a platform independent data management system which will allow any application to easily manage several types of data in a single disk file. This is designed to work with Macintosh as well as DOS / Windows file systems.

Smart Dialogs, August 1990 - June 1992
A series of new Dialog Manager style calls that allow the user to easily and quickly produce simple or complicated dialog boxes. The Smart Dialogs routines include tools to handle animated icons, typing, scrolling, or flashing text, built-in slider controls, and more. All of the house keeping is done for the user as well. Check boxes and radio buttons update automatically. Text editing including cut, copy, and paste is handled without programmer assistance. Dialog items may even call optional service routines when clicked. The Smart Dialogs package can reduce a page of C code to only five or six lines.

The X-10 Programmer, November 1988
Developed software to operate electrical appliances and lights as an extension of the Macintosh control panel. The software makes use of the X-10 computer interface and plug in modules which respond to signals sent over house wiring. The user may draw icons and enter names for each item he wants the computer to control. When the X-10 Programmer CDEV is selected these appliances appear as a set of scrollable icons in the control panel. Appliances may be operated directly from the control panel and schedules can be set inside the computer interface for each appliance. This software gives the Macintosh control panel the ability to actually control objects outside the computer.

Sound Compression Lab, June - August 1989
Written in C on the Macintosh this project was designed to test the validity of different sound compression schemes on different types of sounds.

MacIMSAI, March 1989
An IMSAI 8080 emulator written in C on the Macintosh. The project uses simulated peripherals, front panel switches ,memory and register displays, and runs at the machine level at about 4IPS (that's 4 instructions per second) Machine code can be entered in a text screen. After code has been completed and tested it can be exported via serial to a real 8080/ S-100 machine.

G-Loop, 1986
A simple music system based on sound sampling written for the Commodore Amiga.

Alternity, DataMost Corp, January - August 1983
A fast paced video game written on the Atari 800 which utilizes high speed simulated three dimensional graphics, and fast fixed point mathematical algorithms, written in 6502 machine language.

Easter Eggs

or.. Where is Chris in the Macintosh System Software

My name appears in the Macintosh in a couple of places. For best viewing read on.

On machines running QuickDrawGX, simply drag the GX System Extension over to one of the desktop printers. Double click on the printer and open up the spooled document. A list of QuickDraw GX engineers, testers, and others associated with the project will appear. My name appears on the left hand side, about half way down.

I appear in the About Box for the 1.0 version of the Monitors and Sound Control Panel. Someone in sustaining removed our names from all subsequent versions (jealous?).

Documentation and References

Documentation is available for most of the projects mentioned. Some projects are still demonstrable. (I possess a vast collection of old hardware if you really want to see some old Apple ][ code run)

References available upon request.