Kael Rowan

Foundations of Elegant Code

Debugger Canvas on Channel9

Hi everyone, Robert Green from Channel9 asked me to do a Debugger Canvas video for Channel9 last...

Date: 05/23/2012

Code Canvas vs. Code Bubbles vs. Debugger Canvas

You may have seen my previous comparison of Code Canvas vs. Diagrams/Visualizations, but sometimes...

Date: 03/10/2012

Debugger Canvas 1.1 is Released!

Hi everyone, we are pleased to announce the release of Debugger Canvas version 1.1. This version...

Date: 01/31/2012

Debugger Canvas Available for Download!

I’m pleased to announce that Debugger Canvas is available for download on DevLabs! Debugger...

Date: 06/13/2011

Introducing Debugger Canvas

Over the past several months I’ve been working on a new Power Tool for Visual Studio with Andrew...

Date: 05/21/2011

ZoomableApplication3: When not to ApplyTransform

By default, ZoomableCanvas works by coercing its RenderTransform to be a combination of a...

Date: 08/18/2010

ZoomableApplication1: Scale and Offset

For the first entry in the series of examples using the ZoomableCanvas, I’ll start off with...

Date: 08/05/2010

ZoomableCanvas

ZoomableCanvas is the Panel that displays almost all of the elements in Code Canvas. Code Canvas is...

Date: 07/29/2010

ZoomableCanvas: Preface

When I started writing Code Canvas back in 2008, I quickly realized that using a simple...

Date: 07/26/2010

Code Canvas @ ICSE 2010

Code Canvas is being shown by Rob DeLine at the 32nd International Conference on Software...

Date: 05/05/2010

LinkedList.FindNext and FindPrevious

The generic collections in the .NET framework do a good job of hiding algorithmic details and...

Date: 04/09/2010

Code Canvas @ TechFest

In honor of today's historic date of breaking down walls, I'm posting a recording of the live...

Date: 11/09/2009

PriorityQuadTree

Chris Lovett has a written a cool Virtualized WPF Canvas that lets you pan and zoom around a huge...

Date: 05/21/2009

Code Canvas @ Lang.NET Symposium

Microsoft recently hosted the 2009 Lang.NET Symposium here in the Microsoft Research building. A...

Date: 05/12/2009

VirtualPanel

Virtualization, according to the documentation for WPF’s built-in VirtualizingStackPanel, refers to...

Date: 04/27/2009

Rect.Intersects and IsDefined

When working on the PriorityQuadTree, most of the code I was reading and writing revolved around...

Date: 04/27/2009

Softpedia article on Code Canvas

Wow, I’m impressed with how fast the word is getting out.  Marius Oiaga already published an...

Date: 03/28/2009

Code Canvas

I’ve been working in Microsoft Research on a project called Code Canvas for a while now, and we...

Date: 03/26/2009

InlineVSPaste

There’s a great plugin for Windows Live Writer called VSPaste by Douglas Stockwell:...

Date: 12/11/2008

Blog Resurrection

Sometimes in the course of software development it becomes best to start over from scratch. I'm...

Date: 10/15/2008

Simple Paint Application

Here's a screenshot of a typical "Paint" application: It has the following features: The "pencil" or...

Date: 10/12/2008

Snapshooter

I’ve been working on a very large-scale canvas application for a while now, and I finally checked in...

Date: 06/18/2008

ArithmeticConverter

Using a declarative language like XAML to define a UI feels like the right thing to do, but it has...

Date: 06/11/2008

Presentation.More

In the same vein as System.More, I've also created a Windows Presentation Foundation counterpart...

Date: 05/21/2008

MathExtensions

Fluent programming is cool, and with extension methods you can make your code much more...

Date: 05/12/2008

System.More

I, like most developers out there, have accumulated a set of classes and utility functions that have...

Date: 05/12/2008

Comparator

I recently wrote a generic PriorityQueue class which can treat any type of object as the priority...

Date: 10/04/2007

SynchronizationCallback

It's common for user interface frameworks (such as Windows Forms applications or Visual Studio...

Date: 09/05/2007

ThreadQueue

I was writing an application the other day that required serializing objects to a set of files on a...

Date: 07/20/2007

IndentedTextWriter

There's a very useful class called IndentedTextWriter in the System.CodeDom.Compiler namespace that...

Date: 03/28/2006

PriorityQueue

I’m implementing a single-source multiple-target version of Dijkstra's shortest path algorithm that...

Date: 01/09/2006

Hello, World!

My name is Kael Rowan. I am a Software Design Engineer at Microsoft, and this is my first blog.

Date: 05/15/2000