guelph, ontario
tel: +1 226 475 1001
email: bsd@mt.ca
|
|
I'm the founder of Manumitting Technologies, and the creator of our new project and task planning tool called Kizby.
I started tinkering with computers and programming in high-school and have accumulated about 14 years experience in software development so far.
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.
Some of 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.
I'm a committer on the Eclipse
e4 project and
on the
Platform UI
component of the Eclipse Platform.
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.
My PGP key