Bill Foote

Los Angeles, California, USA

E-mail: billf at jovial dot com

A technical resume is available here

I've worked on connected consumer devices, like Android phones and tablets, set top boxes, and Blu-ray. I had a big part in the creation of the "BD-J" Java interactive component of Blu-ray Disc, and similar interactive TV technologies. I've been designing and writing software since the late 70's.

Volunteer Work


I do volunteer work with Project Hope in Nablus, Palestine. I started with teaching in refugee camps over the summer of 2003. In 2006, I started the moomtastic video project, which made me learn Final Cut. The picture on the left? Check out the video! It's called "Bethlehem 2006," and you can find it at moomtastic.jovial.com.

I also volunteered with Video the Vote, using the power of video and YouTube to document any voting irregularities there might be in the 2006 mid-term elections. I was even interviewed by CNN in connection with this! Here's a writeup of my day as a "citizen-journalist."


Public-Domain Software

  Wrote the Java chapters of the HD Cookbook. Architect of the framework introduced in that book: GRIN, a framework to help manage and animate graphical elements in Blu-ray Java. Started the hdcookbook open-source community. Check out the other software in the HD Cookbook Project.
         Heap Analysis Tool Prototype (HAT). This is a prototype tool to explore object topologies and find unintentional object retention problems in Java Programs. It was eventually extended and incorporated into JDK 1.6.
         TASS on dev.java.net, a tool for checking conformance to only the APIs present in a given platform.

In The Media

As mentioned under volunteering, I started the Moomtastic Videos website. It includes a short video about Project Hope called "Messengers of Hope". I also had about 23 seconds of fame in a CNN Video about Video the Vote.
This being a vanity website, I guess I'll also mention the time I was on ESPN SportsZone, and my appearance on the front page of UCLA's Daily Bruin Newspaper, in a story about some street theater put on by UCLA-SJP.

AFI Digital Content Lab/eTV Workshop

In 2002, I participated in the American Film Institute's enhanced TV workshop, and had a lot of fun making chocolate go splat over an episode of I Love Lucy. In 2004, I worked with the TV 411 adult literacy project, which was very rewarding.

DVB World Articles

DVB World, June 18 2006 [pdf], "GEM Glitters in the Heart", page 4. This is an article on DVB-MHP and DVB-GEM's place in the Blu-Ray Disc specification.
DVB World, March 5, 2003 [pdf], "DVB'S GEM, Bringing MHP's sparkle to the US and beyond", page 4. This is an article from the early days of GEM, when it was in the process of being adopted for US Cable and in Japan.

JavaOne talks

JavaOne 2010: Systems Architecture is not Network Topology: Connecting the Consumer Device
JavaOne 2009: Creating Games for Blu-ray Disc in BD-Java
JavaOne 2008: Java Technology for Blu-ray and TV: Creating your own Blu-ray Java Discs
JavaOne 2005: Java Technology Goes to the Movies: Java Technology in Next-Generation Optical Disc Formats
JavaOne 2000: Java TV API technical overview. I spoke about the application of Java TV technology in interactive television.
JavaOne 1999, update on issues related to Java and real-time.
JavaOne 1999, hosted a BoF session on Resource Management on Small Devices
JavaOne 1998: Reducing Memory Usage of Java Applications: Lessons from the Battlefield. This was a talk about memory usage of Java programs, and how to eliminate object retention problems. It introduced the HAT tool, detailed below.
JavaOne 1997: "HotJava Browser." I spoke about customizing the browser, custom protocol handlers, and using RMI.

Older Articles and Other Works

My 1989 Masters Thesis from UC Berkeley, Simulation of Anisotropic Crystal Etching. From my perspective, it was really about 3D geometrical modeling and 3D computer graphics. A local copy is available here.
JavaWorld article, 1998: Singletons vs. class (un)loading. I participated in writing this article in JavaWorld. By the way, the JLS clarification about class unloading can be found here.
JavaWorld article, 1996: Integrating Java with C++. This article investigates integrating C++ code into a Java application. If that link ever goes away, I kept the first draft here. The article is pretty obsolete now... It's based on JDK 1.0.2, before JNI existed.
Slot Car Applet. This is s a silly Java applet that I wrote as part of an OO class I taught. It comes with some pretty complete design documentation, and a discussion of how it fit into the class.
CASE tool prototype. I wrote a prototype for a CASE tool called "flower". It works, and was a nice exercise in writing a program in Eiffel that uses Tcl/Tk for the GUI.
When Sun discontinued personal pages at JavaSoft, I kept my old JavaSoft homepage. It's pretty out of date now, though it does have a dashing picture of me with Hello Kitty, at Sanrio Puroland near Tokyo.


Like most native Californians, I think that hockey is pretty much the coolest thing around. In August of '98 I decided to stop just watching, and learn to skate. It's not as easy as they make it look, but it's twice as fun! Here are some incriminating pictures of when I was first learning to skate.

Why jovial.com?

USAF JOVIAL homepage My father was one of the inventors of the computer language JOVIAL. Probably the best place for information about the language is the USAF JOVIAL Program Office's homepage.