guelph, ontario
tel: +1 519 400 4254
email: bsd@mt.ca
|
|
I'm currently available for short-term projects or part-time
work, especially in the Guelph area. My resumé is
available here in pdf or
html.
I am a software developer with 14 years experience.
I particularly like tackling problems
at the user/computer interface using user-centred design
techniques.
In my PhD work, I investigated how and why software developers
become disoriented during exploration of their source code.
My past projects have included building communication
infrastructures to support distributed applications,
real-time distributed games, and software programming
tools.
I'm currently heading up three open-source projects:
- GT:
GT is a groupware toolkit intended to simplify
the development of real-time groupware applications.
GT provides a connection-oriented communication abstraction,
and has been carefully architected to allow tinkering and
experimentation by students and researchers.
GT is written in C#.
- GroupLab.Networking:
A groupware toolkit that provides an alternative
programming abstraction
of a distributed shared dictionary. The dictionary has
a structured keyspace, and provides powerful patterns for
querying the dictionary's keys. This abstraction is better
suited for applications that are very data centric.
.Networking is written in C# using GT.
- BetaPop:
A simple billing and payment system intended
for supporting coffee, pop, and candy pools.
BetaPop is written in C.
Some of my recent projects include:
- RTChess: a fast-paced, multiplayer, distributed chess game — chess reinvented for group play. RTChess was implemented in C# using the GT toolkit, and used Bonjour/ZeroConf and JSPs to simplify local-area configuration.
- Ferret: a proof-of-concept Eclipse-based tool to help developers explore their codebases. Ferret answers a variety of questions (which we called conceptual queries) about program elements, explaining how they relate to the rest of the system. It integrates different sources of information about a program such as the static information available from the JDT, dynamic runtime information from TPTP, plug-in information, and source evolution information. Ferret formed the code of my PhD work. The plugin, relevant papers, and the source is available here.