This is Yibo's new awareness system aimed to be a successor of CB; this is still in progress and for internal use only.


Download and Installation


  • No binary distribution is available for now.
  • Visual Studio 2008 is required to run the demo from the source.
    • You can get Visual Studio 2008 from MS DreamSpark program.
    • You can also get it from MS alliance program with UofC.
    • Visual Studio 2008 SP1 is optional.
  • You need .Net 3.5 SP1 installed if you haven't installed Visual Studio 2008 SP1.
  • This program depends on .NetworkingGT, and you must use the .Networking Groupware Toolkit 1.2.3 bundled in the source zip file to avoid version war.

Installation Sequence

  • Visual Studio 2008
  • Visual Studio 2008 SP1 (or only .Net 3.5 SP1 if you don't need to debug my source).
  • Extract the source zip to any directory
  • Install .Networking Groupware Tookit msi found in the source zip file (at /dependencies/GroupLab_Networking-1.2.3.msi).
  • Double Click on the Visual Studio Project File UIDemo.sln to load the source in Visual Studio 2008.
  • Hit the run button or F5 to launch the program.


  • Please don't criticize the code for now because I know it is still not well managed and designed.
  • Please disregard any swear language you see in the source or the console debug output : )
  • the version of the GT SD we are using is currently located here v. 1.1.2

Recipes and How-To's

  • (Under Construction)

Tutorials and Examples

  • (Under Construction)


  • (Under Construction)

A List of WPF Bugs (details to be completed)

  • Data Context in constructor conflicts with xaml
  • Resource Loading (DirectoryNotFoundException)
  • Topmost Layer/Normal Layer/Z-order screw up
  • Fake WPF Controls
  • NaN set in runtime causes infinite visible_changed
  • Mouse_leave's e always holds the inbound position, so does the Mouse.getPostion()
  • Setting width/height a value small than minWidth/minHeight does nothing visually: the component stays at the orginial size but the value does change.
  • If you use a class name which is same to the namespace, sometimes (not always) xmal will complain the type name does not exist in the type Namespace.Namespace.

A List of Stupid Things in .Net

  • unable to clear a convocation list
  • An abstract class has to implement all methods in the interfaces
  • Cannot access protected field from a constructor of a sub class

A List of Bugs/Features for SD

  • Monitor crashes on several occassions
  • Entry larger than a certain size won't update
  • A better monitor