craig@blackpagedigital.com
+1 510 365 8381
67011B1A-76EC-4070-9AEA-BE93DDE1CD48
summary
After graduating from UC Berkeley with parallel
degrees in Computer Science and Music, I worked on Smalltalk
virtual machines at ParcPlace Systems, a
spinoff from Xerox PARC. I later joined Atari
Games, where I applied object-oriented system concepts to the
design of platform-independent content development tools, using VisualWorks
Smalltalk, for composers in the arcade audio group. This
allowed me to expand my skills in large-scale object modeling and
human interface design. From Atari I went to Interval
Research. I contributed to several projects there, in areas
such as digital sound synthesis, consumer filmmaking, and home
networking. I wrote embedded real-time system software, derived from
Squeak Smalltalk, for a home media
network system which later became MediaWire. That
project demonstrated concepts later seen in products such as AirPlay
and the iPad.
I then went to the IBM T.J. Watson Research
Center, developing a theory of human cognition and designing
embodied systems with Squeak to test it. After that I
worked for Bedarra Research Labs on the OpenAugment project,
preserving the legacy of Doug Engelbart's
Augment system. I later worked with Engelbart and the
Bootstrap Institute (now the Doug Engelbart Institute)
directly, on the version of Augment that Doug used in his everyday
work. I have worked for Applied Minds and Weather
Dimensions with original Smalltalk implementor Dan Ingalls. I
did mixed-reality research with Croquet virtual worlds at the
Fuji Xerox
Palo Alto Laboratory. I continued working with Croquet for
commercial applications at Teleplace. I developed
cloud-based support for large in-world crowds, and streaming media
connectivity with the outside world. Most recently, I formed an
independent consultancy in the Netherlands, and I volunteer for the Appsterdam community. I divide
my time between Amsterdam and Berkeley.
Most recently, I've developed a
novel framework for parsing, compiling, and decompiling diverse
language grammars, and used it to develop a
high-performance self-hosted Smalltalk virtual machine that uses
large language models to translate compiled methods into
WesbAssembly. I've developed frameworks for
building distributed object applications, for manipulating various
forms of digital media, and for developing object systems
themselves. I specialize in rapid prototyping and reverse
engineering. I also play a mean theremin.
I'm interested in positions with which I can apply my
expertise in (one or more of) object modeling, object databases, human
interface design, networking, distributed systems, 3D graphics, film
scoring, and audio/video recording and editing. I'm willing to travel
up to half-time, and I'm willing to consider both consultant and
employee arrangements.
experience
1/2011 to the present
|
Founder of Black Page Digital, an
independent consultancy in Berkeley. I produce prototypes for multiple
private clients, and new releases of Context, a
minimal version of Squeak with a novel approach to teaching,
collaboration, and deployment.
|
4/2009 to 8/2010
|
Smalltalk developer for Teleplace, a producer of
enterprise learning and collaboration systems using virtual worlds. I
developed support for large in-world crowds, incorporating distributed
operation of the Teleplace client and server in the Amazon
EC2 cloud. I also developed connectivity with the outside
world via streaming media, with in-world cameras, spatialized audio,
and RTP. The system is built with the Croquet virtual worlds
framework.
|
8/2007 to 3/2009
|
Smalltalk developer for the Fuji Xerox Palo Alto Laboratory. I
was part of a team conducting mixed-reality research using Croquet virtual worlds. I
developed physical I/O hardware interfaces and designed user
interfaces for them. I reverse-engineered several network protocols
and file formats. Our most prominent project was developing a system
for remotely monitoring and visualizing physical processes at the TCHO
chocolate factory in San Francisco. I worked with Arduino boards, the
MAKE Controller Kit, Phidgets, and the Wiimote, along with a multitude
of sensors.
|
3/2004 to 2/2008
|
Smalltalk developer for EZBoard. EZBoard was host to
thousands of web-based discussion forums, serving millions of
customers daily, using VisualWorks Smalltalk. From 2005, I was the
sole Smalltalk developer for the site.
|
9/2006 to 12/2006
|
Adapted the 1995 Windows version of the Augment system to
current Windows, Macintosh, and Linux systems, for the Bootstrap
Institute (now the Doug Engelbart Institute).
|
12/2004 to 12/2006
|
System software architect at Weather
Dimensions. Weather Dimensions is a startup company founded by
Dan Ingalls, the original implementor of Smalltalk; it produces
high-quality personal weather stations. I coordinated the
commercialization of the technology, and developed future versions of
the visual interface.
|
3/2005 to 4/2005
|
Computer scientist at Applied Minds, an
engineering research firm founded by Danny Hillis and Bran Ferren. I
worked on a tuple database system for real-time sensor data collection.
|
10/2003 to 4/2004
|
System software architect at Bedarra Research Labs
(contract). Designed the distribution architecture for the OpenAugment project, a re-creation
of Doug
Engelbart's Augment system using open-source technologies
(so as to make it more accessible to future developers). Augment (also
known as NLS) was the system Engelbart used in the "mother of all
demos" at the 1968 Fall Joint Computer Conference. This was the
historic demo in which Engelbart introduced the computer mouse and
pointer system, the graphical user interface, display editing, file
linking and embedding, multiple windows, context-sensitive help,
integrated text and graphics, hyper-documents, and two-way
video-conferencing with shared workspaces. Our implementation used Squeak, and
a
distributed module system I wrote for it.
|
5/2000 to 5/2002
|
Computer scientist at the IBM T.J. Watson Research
Center (contract). Co-developed a theory of human
cognition. Designed a Squeak-based system for the interactive
specification of the physiological expression of emotion by automata,
including facial animation, speech recognition and speech
synthesis. Built user interfaces with the Morphic and MVC
frameworks. Assisted in a port of Squeak to Windows CE. Taught CS377B (Dynamic
Multimedia with Squeak) at Stanford University's Center for
Computer Research in Music and Acoustics (CCRMA), in the autumn
quarter of 2001, as visiting lecturer.
|
5/1996 to 1/2000
|
Member of Research Staff at Interval
Research Corporation of Palo Alto, CA. Interval was an
incubator for high-tech companies specializing in digital technology
used by everyday people. I worked predominantly on the MediaWire
home media network system; developing the networking portions of a
novel embedded, real-time operating system, derived from Squeak
Smalltalk, which ran on custom hardware. Implemented a streaming
framework for Squeak which unifies access to diverse external
resources, including TCP/UDP, filesystems, and MIDI. Assisted in
custom virtual machine development and maintenance, using
platform-dependent code-generation tools and Squeak's
platform-independent virtual machine simulator. Contributed to several
other Interval projects, in areas such as digital sound synthesis and
consumer filmmaking.
|
11/1993 to 4/1996
|
Member of the Technology Group at Atari
Games Corporation of Milpitas, CA. Designed and implemented an
audio content development system for the arcade games division. I
wrote the system with VisualWorks Smalltalk; it was
platform-independent with regard to both composer and target
platforms. The system generated the game-dependent sources of a
real-time embedded audio operating system (written in C and
assembler). It provided a composer-oriented interface to the diverse
data structures used in producing interactive game audio. It was used
for several games.
|
4/1993 to 11/1993
|
Member of the software development group at Ascent
Logic Corporation of San José, CA. Participated in the
design and implementation of human interfaces for the company's
computer-assisted systems engineering product. Written with
Objectworks Smalltalk, the product was the largest commercial
Smalltalk application at the time.
|
3/1992 to 3/1993
|
Member of the Smalltalk engineering group at ParcPlace
Systems of Sunnyvale, CA (that group has since become part of Cincom
Systems, Inc., after having undergone reorganizations of ParcPlace
to ParcPlace/Digitalk and ObjectShare). Participated in
the implementation and release of the Objectworks and VisualWorks
Smalltalk systems for twelve platforms. Responsible for various
platform-specific areas of the Smalltalk virtual machine, and object
memory support, including programming tools and documentation.
|
education
selected publications, presentations, recordings, and films
2025
|
"Livecoding
Language Models: AI Context in Live Environments", a presentation
for the UK Smalltalk
User Group, London.
|
2023
|
"WebAssembly as a
Smalltalk Compilation Target", a presentation for the UK Smalltalk User
Group, London.
|
2021
|
"Caffeine", a
presentation for the UK Smalltalk User Group, London.
|
2014
|
"A
Spoonful of Raspberry Pi", a presentation for the FOSDEM 2014 conference, Brussels,
Belgium.
|
2012
|
"Spoon:
straightforward collaborative development, deployment, and discovery
of Smalltalk apps", a presentation for the Appsterdam community, Amsterdam,
Netherlands.
|
2012
|
Principal photography, scoring, editing, and post-production
for coverage of Appsterdam's iOSDevCamp 2012.
|
2012
|
Music distributed by
SoundCloud. |
2011
|
A screencast
of the Quoth livecoding system, for the annual Sound and Video
Anthology of the Computer Music Journal, volume 35; MIT Press 2011.
|
2005
|
"Musique Littérale", panel and performance using Quoth at the 2005 Transmediale
conference, Berlin, Germany.
|
2004
|
"Spoon, a minimal yet extensible Smalltalk", presentation at
Smalltalk Solutions 2004, Seattle, Washington, USA.
|
2002
|
N. Alvarado, S. S. Adams, S. Burbeck, C. Latta, "Beyond
the Turing Test: Performance Metrics for Evaluating a Computer
Simulation of the Human Mind", Second International Conference on
Developmental Learning.
|
2002
|
C. Latta, N. Alvarado, S. S. Adams, S. Burbeck, "An
Expressive System for Endowing Robots or Animated Characters with
Affective Facial Displays", the 2002 conference of the British
Society for Artificial Intelligence and the Simulation of Behavior,
London, England.
|
2001
|
S. S. Adams, N. Alvarado, S. Burbeck, C. Latta, "Bootstrapping
Semantics in an Autonomic Computing System", Workshop on
Computational Semiotics
|
2001
|
"Handheld Squeak", invited talk at the 2001 European Smalltalk
Users' Group conference, Essen, Germany.
|
2001
|
"Streaming Audio", in "Squeak: Open Personal Computing and
Multimedia", edited by Mark Guzdial and Kim Rose, Prentice-Hall, New
York, USA.
|
1999
|
"Online Music Collaboration", invited panelist at the 1999
International Music eXposition conference, New York, USA.
|
1991
|
"Notes
From the NetJam Project", Leonardo Music Journal vol. 1 issue 1
(December), Permagon Press, London.
|
selected teaching experience
independent research
Epigram,
a novel framework for parsing, compilation, and decompilation that
delegates to reified BNF grammar symbols.
A self-hosted Open Smalltalk virtual machine and object
memory, written in Smalltalk and decompiled to WASM GC for operation
in web browsers. It uses AI-assisted dynamic method translation to
optimize high-frequency code paths. Each Catalyst module can run
multiple concurrent systems, and uses this ability to provide
continuity of operation across class type changes. Catalyst leverages
JavaScript for finalization and host device driver access, and uses
SqueakJS as an environment for simulation, debugging, and deployment.
|
Catalyst, a
self-hosted WASM GC implementation of the Open Smalltalk virtual
machine and object memory, with dynamic LLM-assisted method
translation
A self-hosted Open Smalltalk virtual machine and object
memory, written in Smalltalk and decompiled to WASM GC for operation
in web browsers. It uses AI-assisted dynamic method translation to
optimize high-frequency code paths. Each Catalyst module can run
multiple concurrent systems, and uses this ability to provide
continuity of operation across class type changes. Catalyst leverages
JavaScript for finalization and host device driver access, and uses
SqueakJS as an environment for simulation, debugging, and deployment.
|
Quoth, a dynamic interactive
fiction system
An interactive
fiction authoring system operable from within the presented
virtual space (rather than before runtime in a traditional development
environment). I use it for live improvisational computer music
performance.
|
Context, a minimal and
modular Smalltalk system
Empirical determination and description of a minimal object
memory image and virtual machine. A module system for collaboration,
and the composition and deployment of applications, enabled by remote
messaging and distributed computation.
|
the Flow streaming framework
Development of an object model which provides consistent
message interfaces for the manipulation of diverse external resources,
including TCP/UDP, filesystems, and MIDI.
|
Squeak Smalltalk
Participation in the evolution of the open-source Squeak
Smalltalk system from its initial release. Development of release
processes, assistance with project selection and advocacy.
|
NetJam
Implementing a system for remote musical collaboration, using
the Flow streaming framework and Smalltalk.
|
My references are available by request.
|