Curriculum Vitae et Studiorum
David J. Bacon
September 8, 2020
Address: | | 7815 Giants Head Rd, Summerland, BC, CANADA |
Telephone: | | +1 250 488 2067 |
E-mail: | | David.Bacon@nyu.edu |
Web: | | setl.org |
Date of Birth: | | December 24, 1955 |
Citizenship: | | Canadian |
Ph.D. Computer Science: | | New York University, 2000 [2] |
M.Sc. Computer Science: | | University of Toronto, 1985 [1] |
B.Sc. Computing Science: | | University of Alberta (Edmonton), 1977 |
- Broad computer science knowledge
- Simulation, modelling, and rapid prototyping
- Concurrency, IPC, and all things POSIX, QNX, and other Unix
- High- and low-level programming languages
- Network configuration and security
- Virtual machines and containers
- Real-time and embedded systems
- Data processing (it's all about the mappings)
- Highly allergic to Windows
- Design and implementation of the infrastructure layer of
GE Transportation's new Modular Control Architecture (MCA)
for locomotive control.
- Provision of ARCNET services for MCA by a Linux server
(based the above infrastructure) that uses a kernel device
driver and reuses code from a QNX device driver.
Also an unsolicited contribution I call “Virtual Arcnet”
which uses UDP over a Docker network to simulate real
arcnets and thereby support full testing of applications.
- Realization of all serial-line (HDLC and UART, synchronous
and asynchronous) protocols (ACP, LSI, etc.) for MCA,
interfaced as a DDS service, and again based on legacy code
and my new infrastructure layer.
- NetBSD kernel programming to emulate HP-UX running on a virtual
M68000 to support a crucial legacy build system
- VPN-like virtualization of NFS and other TCP/IP services over
secure networks (bit of a technical lark, this)
- Real-time locomotive control software and build system development
for GE's Common Control Architecture (CCA), first as a contractor
through Jan 2013 and then as a full-time permanent employee
- Research on vision and navigation algorithms for micro-UAVs
- Implementation of a clock synchronization method for ZigBee
mesh networks
- Investigation of a novel way to control a CMOS camera shutter
to facilitate motion deblurring
- Real-time control software for diesel-electric locomotive
systems
- Educating GE employees on concurrency in general and on the QNX
operating system in particular
- Technical and sales support for the QNX Neutrino real-time
operating system
- Seminars, presentations, some software development
- Specified, designed, prototyped, and helped implement an
integrated development environment (IDE) for LUxWORKS,
a proprietary software tool for building and debugging
embedded systems containing multiple DSP cores and
microcontrollers
- Under the titles Visiting Professor, Temporary Professor, and
then Adjunct Professor (Jan 1999-May 2000), taught the following
courses for the Electrical Engineering and Computer Science (EECS)
department:
- Programming Languages (junior)
- Assembly Language Programming (junior)
- Network Programming (senior)
- Advanced Operating Systems (graduate)
- Under the titles Research Associate and then Research Engineer
(Dec 1995-Dec 1998):
- Designed and developed a distributed system for
multi-client, Web-based pan/tilt/zoom camera control
and streaming video
- Taught the junior-level Assembly Language Programming
and graduate-level Advanced Operating Systems courses
cited above
- Conducted independent research in robotics,
programming languages, real-time systems and networks
- Designed and implemented the hardware and software
to control PWM-based robotic actuators, with Web
interface and management GUI
- Made significant extensions to the SETL programming
language
- Consulted, designed, and programmed for the Pad++ “ZUI”
(Zooming User Interface) project [7], in
collaboration with Drs. Ben Bederson, Ken Perlin, and Jim Hollan
- Embedded the KPL, STk, and SETL programming languages as
alternatives to Tcl/Tk and C++ in the Pad++ system
- Created several demonstration applications
- Designed and implemented The Muse, a full real-time music
sequencer featuring variable pitch and harmony screen, in
accordance with the “Music as a Motivator for Mathematics and
Science” program conceived by Dr. Jack Schwartz, administered
through the Fund for New York Public Education, and sponsored
by IBM
- Provided support for the teachers and students using this program
- Coordinated with Dr. Schwartz and the writer of the
associated curriculum materials on documentation, setup and use
- Designed and implemented a translator of SETL to C++ that allowed
C++ code to be embedded in SETL programs
- Made numerous SETL language and compiler enhancements
At the Center for Advanced Research in Biotechnology (CARB), with
Dr. John Moult:
- Independent research in protein structural modeling and
energetics
- Solid and interactive 3D graphics
- Systems programming and support
- Scientific applications programming
- SETL compiler and run-time system (in C)
- Package for the visualization and manipulation of early-stage
X-ray “area detector” data [9]
- Algorithm for “docking” large molecules and
ligands [6]
- Partial prediction of protein structures from their
sequences [8]
- Faster 3D graphics algorithms [4,10]
- Independent research in molecular biology and protein modeling
- Assistance to Dr. Wayne Anderson in X-ray crystallographic
studies of proteins and protein-DNA interactions
- Graphics
- Statistics
- Systems programming
- A database extension language (“E3”) for associative and
hierarchical data manipulation in Fortran, C, and Algol 68
programs
- Algorithm for the alignment of multiple protein amino acid
sequences [3]
- A new dynamic memory allocation method [1]
- Graphics package (“RASTER3D”) for showing molecules
as solids [4,5]
- Algorithm for locating heavy atom sites using information from
crystallographic “difference Patterson” maps
- Efficient, robust line communications protocol
- Mathematical typesetting program
- Implementation of a “phased translation” search
function [11] for use in protein X-ray crystallography
- Prototype SETL compiler (coded in SPITBOL)
- Design and development of PBX telephone system control software
- Technical writing
- SL-1 compiler support
- Several new features added to the SL-1 PBX
- Microfiche listing package
- Entire system software of a standalone Call Detail Recording
computer serving many PBX machines
- Design of a message-passing, real-time operating system and
call processing monitor for the Electronic Key Telephone System
(EKTS)
- Design and implementation of a medium-scale adaptive database
system
- Empirical study of some algorithms for detecting negative cycles
in directed graphs
Within computer science, my main interests are:
- Programming languages, particularly SETL [12]
- Networks and distributed computing
- Software architecture, engineering, and design patterns
- Scientific programming and analysis
- Signal processing
- Operating systems
- Virtualization
- Real-time systems and control
- Compilers
- Algorithms
- Data structures
- Complex data processing
Hang gliding, violin, and anything my wife feels like doing.
- [] Refereed articles co-authored by David Bacon are
indicated by an asterisk (*).
- 1
-
David J. Bacon.
Dynamic storage allocation.
Master's thesis, University of Toronto, September 1985.
- 2
-
David J. Bacon.
SETL for Internet Data Processing.
PhD thesis, New York University, January 2000.
Defended 9 Dec 1999. No changes requested by dissertation committee.
Available on-line in typeset form (PostScript, DVI, and PDF formats) and
hypertext (with links into the on-line “library” documentation of my
implementation of the SETL programming language) at
http://www.cs.nyu.edu/bacon/phd-thesis/.
- 3
-
*David J. Bacon and Wayne F. Anderson.
Multiple sequence alignment.
J. Mol. Biol., 191:153-161, 1986.
- 4
-
*David J. Bacon and Wayne F. Anderson.
A fast algorithm for rendering space-filling molecule pictures.
J. Mol. Graphics, 6:219-220, 1988.
Abstract of paper presented at the Seventh Annual Meeting of the
Molecular Graphics Society, San Francisco, 10-12 August 1988.
- 5
-
David J. Bacon and Wayne F. Anderson.
A fast algorithm for rendering solid objects and shadows, and its
application in making pictures of molecules.
Unpublished manuscript, 1991.
- 6
-
*David J. Bacon and John Moult.
Docking by least-squares fitting of molecular surface patterns.
J. Mol. Biol., 225:849-858, 1992.
- 7
-
*B. Bederson, J. Hollan, K. Perlin, J. Meyer, D. Bacon, and G. Furnas.
Pad++: A zoomable graphical sketchpad for exploring alternate
interface physics.
Journal of Visual Languages and Computing, 7:3-31, 1996.
- 8
-
*Krzysztof Fidelis, Peter S. Stern, David J. Bacon, and John Moult.
Comparison of systematic search and database methods for constructing
segments of protein structure.
Protein Engineering, 7:953-960, 1994.
- 9
-
*Irene Kaplan, David J. Bacon, Osnat Herzberg, and Gary L. Gilliland.
XENVIEW - an interactive program to display and analyze electronic
area detector data.
J. Appl. Cryst., 24:196, 1991.
- 10
-
*Ethan A. Merritt and David J. Bacon.
Raster3D: Photorealistic molecular graphics.
In Methods in Enzymology, volume 277, pages 505-524. Academic
Press, San Diego, CA, 1997.
- 11
-
R.J. Read and A.J. Schierbeek.
A phased translation function.
J. Appl. Cryst., 21:490-495, 1988.
- 12
-
J.T. Schwartz, R.B.K. Dewar, E. Dubinsky, and E. Schonberg.
Programming with Sets: An Introduction to SETL.
Springer-Verlag, New York, NY, 1986.
Curriculum Vitae et Studiorum
This document was generated using the
LaTeX2HTML translator Version 2018 (Released Feb 1, 2018)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -no_navigation -split 0 cv
The translation was initiated on 2020-09-08