David Bond's Portfolio
Welcome to my portfolio. This page shows off many of the programming related projects
I have participated in, in the past. All source code for these projects is available
upon request unless overwise noted.
Test Monkey - The UNH-IOL Protocol Testing Software Package
Fast Facts
- Written By: A team of software engineers including David Bond
- Written In: C, Java, Tcl
- When Written: 2001-Present
- Uses: Eclipse, Ant, Autotools (Automake, Autoconf, Make)
- Purpose: To generate and receive arbitrary packets from a network
As a software engineer I have played an active role on a team of seven other engineers
working on a system used to generate and receive arbitrary packets from a network.
This system runs over a client server based model with the client written in object
oriented Java and a server written in C.
I have worked on the client side writing Java in both maintenance and extension
roles in the Eclipse IDE. The client itself interacts with a TCL and Expect script
interpreter to implement test cases needed for verifying the conformance of networking
devices to standards.
On the server side I was the software architect in charge of the C code for the
server. I architected and designed a multithreaded, real time, easily extendable,
high availability architecture. Additionally, I was in charge of managing the cross
platform autotools build process. Part of the architecture of this system consists
of a command pattern for receiving protocol messages from the client. I was responsible
for implementing a set of commands for the client to connect to a remote socket.
During this process I implemented a TCP/IP stack.
Additional information about Test Monkey can be found on the
UNH-IOL Test Monkey Page.
A screen shot of the Test Monkey Scripting Utility
A screen shot of the Test Monkey Sniffer
TRILL Nexus
Fast Facts
- Written By: David Bond
- Written In: C++
- When Written: 2010
- Uses: Autotools (Automake, Autoconf, Make), Boost, STL
- Purpose: TBA
This is a to be announced product I am working on in my spare time. For those interested
it is related to the IETF protocol TRILL.
The MAI Framework - A framework for research in artificial intelligence
Fast Facts
- Written By: David Bond with a few algorithms coded by Niels Widger
- Written In: C#
- When Written: Senior Year College - 1st Year Grad School
- Uses: XML, .NET, OpenGL, Mono, Visual Studio
- Purpose: AI Research
I developed this framework for research I have done in AI. While the screenshots
I show here have MAI running on in single agent path finding it has a full objected
oriented design that decouples the algorithms from the domain and heurisitics being
used. The code base for MAI has another domain, STRIPS planning, meaning that given
the right heurisitics A* will work on path planning as well as STRIPS planning.
The algorithm designer doesn't have to worry about the domain. The framework can
be run in batch mode to produce output for graphs or in a visualizer mode to debug
or demo the algorithms being developed. Here are a set of pictures with the path
planning MAI visualizer.
Here is an example of path finding in a fully visible dynamic world with an added
real time constrait.
Along with supporting HOG framework files MAI also can load a specially designed
MAI xml format. This format has features such as prescripted changes to allow consitency
between batch runs of maps.
Here is an example of path finding in an initially unknown static world with an
added real time constrait. The map here is an adaption of the War Craft 3 Moonglade
map.
The visualizer supports many debugging features for algorithms that show some of
the underlying data structures. This is useful for programmers to attain a better
understand of how to improve the algorithms being developed.
Monopoly
Fast Facts
- Written By: Tim April, David Bond, and Niels Widger
- Written In: Java
- When Written: Sophomore Year College
- Uses: Swing
- Purpose: Class Project
I created this monopoly game as part of an undegradate class, Introduction to Software
Design and Development, at the University of New Hampshire. I was mainly responsible
for the AI, Cards, Decks, and Deeds, however it was a team effort. I was specifically
in charge of programming the Strategic AI, for this game. I had no formal experience
in AI at the time of writing this program, so the methods and algorithms used were
simply ones that I invented to handle the problem at hand. This is how I described
the AI design in my code comments:
This AI works via a variety of methods. First, it attempts to make use look up tables
to estimate various probabilites and to estimate what the best choices would be.
The tables are calculated at the first instantiation of this class to prevent overload
with constant calculation. It also attempts to keep a budget of money it will need.
This way it doesn't spend to must money on houses and then suddenly have itself
forced into selling them.
While it wasn't perfect, the AI did quite well.
Screenshot of the Monopoly Board
Screenshot of the Monopoly Board
One of the lookup tables used
I have included the program here for download. If you are in windows with Java 1.6
installed double clicking on it should open the program. Otherwise open it via the
command line useing java -jar Monopoly-v1.0.jar.
Download Monopoly
MSIM
Fast Facts
- Written By: David
- Written In: Java
- When Written: Sophomore Year College
- Uses: Assembly Language
- Purpose: Fun
MSIM is a program I made in my spare time for fun. Technically we had an assignment
in my CS 520, Assembly Language Programming and Machine Organization class, and
I decided to expand upon it. The teacher in this class had his own assembelly langauge
and the final project was a simulator that ran the machine code. The in-class project
was done in C but I did the one in my spare time in Java with an OO design. It iterates
through a binary file in a fetch execute cycle until program termination. This version
of the simulator has the added bonus of being able to step through the code, add
break points to the code, and of course graphically displaying the execution of
the code.
Screenshot of 'MSim'
To run this program you need an object file, which can be selected at runtime. You
can download an object file to toy with this program.
Like my last program this can be run in windows by double clicking on it, or via
the command line.
Download 'MSim'
Websites
I have worked on a number of websites throughout the years. Here are some of them
and where I was involved with them.
|
Website
|
Type
|
Techology
|
Contribution
|
|
Mokon.Net
|
Personal Blog and Website
|
XHTML, C#, MYSQL, JavaScript, XML, LINQ, RSS, AJAX, and CSS. Formerly PHP and Java.
|
Sole Developer/Content Provider
|
|
AmandaAndDavid2011.com
|
Personal Wedding Website
|
XHTML, C#, CSS
|
Sole Developer/Content Provider
|
|
IPv6ReadyLogo.org
|
IPv6 Forum Ready Logo Website
|
XHTML, MYSQL, JavaScript, PHP, and CSS.
|
Sole Developer, Site Maintenance
|
|
GameReplays.org
|
Gaming Community Website
|
|
Staff(Content Provider)
|
|
HeavenGames.com
|
Gaming Community Website
|
|
Staff(Content Provider)
|
Publications
Refereed Conference Publications
- Bond, David. Widger, Niels. Ruml, Wheeler. Sun, Xiaoxun. Koenig, Sven. “Real-Time Search in Dynamic Worlds,” International Symposium on Combinatorial Search (SoCS-10), 2010.
Un-Refereed Papers
- Bond, David. Widger, Niels. "Dynamic Real Time Search" CS 980, Computer Science Department, University of New Hampshire, Durham, NH, December 2009.
- Bond, David. "Backward Real Time Heuristic Search in Grid World Pathfinding" CS 830, Computer Science Department, University of New Hampshire, Durham, NH, May 2009.
- Bond, David. "Open Shortest Path First Guide" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, July 2008.
Books
- Bond, David. "The Way of the Expert: Age of Empires III" United States of America: CafePress, 2006.
Test Suites
- Bond, David. "TRILL Conformance Test Suite" Bridge Functions Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, June 2010.
- Bond, David. "TRILL Interoperability Test Suite" Bridge Functions Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, December 2009.
- Bond, David. "Internet Group Management Protocol Snooping Interoperability Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, July 2008.
- Bond, David. Schwendimann, Greg. Winters, Timothy. "Internet Group Management Protocol Version 3 Multi-System Interoperability Test Suite" IPv4 Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, March 2007.
- Bond, David. Kistruck, James. "Internet Group Management Protocol Version 3 Conformance Test Suite" IPv4 Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, October 2007.
Standards Contributions
- Perlman, R., Eastlake, D., Dutt, D., Gai, S., and A. Ghanwani, "RBridges: Base Protocol Specification", IETF. Work in Progress (Approved to become RFC), March 2010.
Test Suite Contributions
- UNH-IOL. "Port-Based Network Access Control 802.1X Interoperability Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2010.
- UNH-IOL. "Intermediate System to Intermediate System Operations Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2009.
- UNH-IOL. "Open Shortest Path First NSSA Option Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2009.
- UNH-IOL. "Border Gateway Protocol 4 Operations Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2009.
- UNH-IOL. "Protocol Independent Multicast – Sparse Mode Operations Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2009.
- UNH-IOL. "Label Distribution Protocol Interoperability Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2009.
- UNH-IOL. "Application Security Interoperability Test Suite" IPv4 Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2008.
- UNH-IOL. "Open Shortest Path First Operations Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2008.
- UNH-IOL. "Protocol Independent Multicast – Sparse Mode Interoperability Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2008.
- UNH-IOL. "Routing Information Protocol Version 2 Multi-System Interoperability Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2008.
- UNH-IOL. "Routing Information Protocol Over IPv6 Multi-System Interoperability Test Suite" Routing Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2008.
- UNH-IOL. "Distance Vector Multicast Routing Protocol Operations Test Suite" IPv4 Consortium, InterOperability Laboratory, University of New Hampshire, Durham, NH, 2007.