My role at the laboratory was a level 3 scientist. I was involved in all aspects of research, from bringing in clients and funding to doing research and developing prototypes, to writing papers and invention reports and giving demos. Most of my time was spent developing prototypes. Typically this meant I sat with some higher-level scientists and discussed a problem, then possible solutions and a path forward. I’d go back to my office and work on software that accomplished that task. I regularly met with the program managers to demonstrate progress, discuss the problem further, change direction as appropriate, or explore other topics that come up. Often these pieces of software would be incorporated into other projects, or would be a starting point for a patent or publication. Sometimes these projects lasted for years, and sometimes days. The technology that I used changes with each problem, which is why I have become adept in Java, web design, graphic design, and various scripting languages. I was also constantly looking at and exploring new technologies and incorporating them into projects when appropriate. Here is a list of some of the major projects in which I’ve been involved for a long time.
The IC3 project was a rapid implementation of a web application whose purpose was to allow customs officers to scan and evaluate shipping containers in a sensitive country from within the United States without being put at risk in the country. In the country are a bunch of sensors within an area, with some country officials manning them and entering data. The officer in the states could see all of these instruments and web cameras and data input in real time from half-way around the world and evaluate them to determine whether the container was safe to allow onto the ship. If it was, the container would be sealed and released to be placed on the ship. This project had all kinds of challenges, including integration with a variety of vendors, communication on a network that spanned around the world and was at times unreliable, persistence of data and accurate record keeping and report generation, development of simple interfaces geared towards non-native English speakers with very little computer experience, and a rapid timeline. This software was still being used over a year after initial deployment last I heard.
Rail Test Center
The Rail Test Center is used to describe a project based at the Port of Tacoma, Washington. There are some ports there where large container ships dock to unload and load containers to a yard and then to a train. Due to homeland security, these containers must be scanned for radiation before they leave the yard. We are evaluating a variety of container scanning configurations and tools to determine which ones have the least impact on the operations of the yard while still being effective. We have been collecting a baseline of current operations and are now starting to add the scanning methods in to determine their effect on the system.
In other words, every second we slow down the process costs the shippers money, so we’re trying to find ways to scan the containers and keep their process as fast as possible. This project requires a lot of data collection and analysis, so we have a bunch of tablet PCs and we’ve written some custom software to do the data collection. The software then uploads the data to the server, where we have more software that allows us to do very fast analysis of the data.
The HI-Space table is an environment where many people can work together and interact with a computer in very intuitive ways. Originally developed at the University of Washington, the inventor (Richard May) is now at Pacific Northwest National Laboratory. Some pages describing the tech are here: Good PNNL Description, and UW HITLab page. Essentially it is a table with a glass top and a projector underneath projecting onto the table. A camera overhead watches hands and objects over the space. A computer recognizes these hands and objects and treats them like an input device.
My job is to write software to take advantage of this new type of input device. The ability to have ambiguity of location and pose, the ability to place objects and recognize them, and the ability to have multiple inputs at the same time all have many difficult problems to solve. We have simple example programs, like a drawing program that allows you to draw just by moving your hands around. We have more complicated programs, too, that allow one to manipulate 3D volumes with the hands. I write the software to take advantage of this input and do as much as I can with it. It’s a lot of fun and has a lot of potential.
Part of this project involves hardware, too, and I’ve brought a few inventions into the lab that help with the table environment, like a wireless button that makes binary operations (like placing a marker or clicking on an item) easier. I have also developed laser tracking technology to allow us to use a laser pointer in the environment.
Primary skills involved–Java, C++, Hardware development
Scenarios in Discourse
In this project, I am building an environment for analysts to process large sets of documents, understand them, create a hypothesis, and test it using evidence culled from the documents. A large part of the process is automated, but there is always the ability to see what has been done and adjust it. We first gather a group of documents, index and arrange them by topic, and display the documents as a galaxy of points, with similar documents clumped together spacially. The user selects the relevant documents for their task and proceeds to view graphs of the text of the documents, which have been processed using many natural language processing techniques. They can manipulate and join these graphs to develop pieces of evidence. Next the user develops a hypothesis tree, with a root hypothesis, sub arguments, supporting and refuting arguments, and indicators. Finally, the user attaches evidence to the indicators and rates the evidence. Using a Bayesian network or a Dempster-Shafer network, the evidence is processed with the hypotheses to determine a statistical value for the probability of a hypothesis being supported or refuted. The tool encompasses the entire thought process of the analyst from document collection to final report production, yet each piece is modular and can be run independently.
Primary skills involved–Java, JGraph (3rd party Java graphing package), Dempster-Shafer modeling techniques, XML.
Another world of mine is that of mobile devices. One of my current projects is to develop applications for mobile devices that stretch the possibilities and explore their capabilities. We want to see how useful they can be and how much we can push them to do complicated tasks. We are even working with police officers in San Diego to give them these kinds of technologies, which essentially are like the kinds of things Jack Bauer from the TV show 24 does. These mobile capabilities have bled into other projects as well, so I’m doing a lot of mobile application development.
Primary skills involved–Java, C# (Windows Mobile 5 development), C++ (Palm development), HTML, SQL Server, Perl
InfoStar is a demonstration of the capabilities developed in NVACmobile, as well as a demonstration of the potential of high-quality web development. We are taking our technology to the SuperComputing 2006 conference, where InfoStar’s purpose is to provide real-time conference information to internet-enabled devices. I am using web standards to develop a web application that renders well on laptops, PDAs, and even cell phones. The conference schedule is searchable, there are maps that show the location of any given room, there are web cameras, a bulletin board, blog, photo gallery, all kinds of things. This is where I really get to flex my web development muscles. This year I am leading the team.
Primary skills involved–Java, PHP, HTML, CSS, MySQL, Flash, Perl
For the second year of the project, we were much more capable to develop a quality product, and we learned a lot from the first year that made the second year better. I did most of the development for this project, too.
Primary skills involved–PHP, HTML, CSS, MySQL, Flash
One of my first projects was bringing InfoStar to SuperComputing for its first year. I did a lot of work on this and spent many evenings at the lab.
Primary skills involved–PHP, HTML, CSS, MySQL, Flash
XOA, short for Cross Ontological Approach, is a tool we have developed that is capable of finding similarity of nodes between ontologies, which is a very difficult problem. We believe we have a solution, and have used it to develop a bioinformatics tool that is capable of finding links between genes, between proteins, and between gene expressions. Currently we’re applying our tool to stroke data to see if we can extract pathways out of existing research. The science behind it is complicated, but the process is interesting and the project is challenging.
Primary skills involved–PHP, HTML, CSS, MySQL, Perl, Linux, Gene Ontologies
DokuWiki is an open source wiki implementation that I have enjoyed for years. I have been involved in the development and the mailing list, and have contributed plugins to the community. I use this wiki frequently and have helped groups within the lab implement it for their projects.
Primary skills involved–PHP, HTML, CSS