Kael Rowan

Foundations of Elegant Code

Posts
  • Kael Rowan

    Introducing Debugger Canvas

    • 47 Comments
    Over the past several months I’ve been working on a new Power Tool for Visual Studio with Andrew Bragdon and Brown University .  The purpose of the power tool is to get feedback from users (that means you!) about using a Code Bubbles like experience...
  • Kael Rowan

    Code Canvas

    • 20 Comments
    I’ve been working in Microsoft Research on a project called Code Canvas for a while now, and we finally got through enough of the patent process so that I’m able to release some details publically. Code Canvas is a research prototype focused on spatial...
  • Kael Rowan

    ZoomableApplication2: A Million Items

    • 17 Comments
    The original sample for Chris Lovett’s VirtualCanvas showed a random set of shapes on a canvas. You could use a menu to choose whether to have 5, 500, 12500, or 50000 shapes “on the canvas”. I use quotation marks because the point of...
  • Kael Rowan

    Hello, World!

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

    ZoomableApplication3: When not to ApplyTransform

    • 12 Comments
    By default, ZoomableCanvas works by coercing its RenderTransform to be a combination of a ScaleTransform and a TranslateTransform representing the current Scale and Offset , respectively. This is the most performant mode in WPF, and makes your UIElement...
  • Kael Rowan

    Debugger Canvas Available for Download!

    • 8 Comments
    I’m pleased to announce that Debugger Canvas is available for download on DevLabs ! Debugger Canvas is a Power Tool for Visual Studio 2010 SP1 that pulls together the code you’re exploring onto a single pan-and-zoom display. As you hit breakpoints...
  • Kael Rowan

    Exploring Code Canvas

    • 6 Comments
    Introduction I originally started working on Code Canvas back in 2007, but it was essentially put on hold after 2009 because the technology to make it testable in the field was not available.  For example, Visual Studio at the time did not support...
  • Kael Rowan

    ZoomableCanvas

    • 5 Comments
    ZoomableCanvas is the Panel that displays almost all of the elements in Code Canvas . Code Canvas is actually made up of several layers of ZoomableCanvas es that are stacked on top of each other, and they are synchronized by simply sharing the same values...
  • Kael Rowan

    ZoomableCanvas: Preface

    • 5 Comments
    When I started writing Code Canvas back in 2008, I quickly realized that using a simple ScaleTransform on an existing Canvas would not produce the experience that I wanted. This was mostly because the elements on my canvas have many fine details such...
  • Kael Rowan

    SynchronizationCallback

    • 4 Comments
    It's common for user interface frameworks (such as Windows Forms applications or Visual Studio packages) to restrict API calls to a single thread; specifically the "UI" thread that is usually the original or "main" thread in the process. This means that...
  • Kael Rowan

    Debugger Canvas 1.1 is Released!

    • 4 Comments
    Hi everyone, we are pleased to announce the release of Debugger Canvas version 1.1 . This version includes a number of bug fixes, new features, and improves performance. Some of the new features are: - Easily turn Debugger Canvas on or off, even in the...
  • Kael Rowan

    Debugger Canvas on Channel9

    • 3 Comments
    Hi everyone, Robert Green from Channel9 asked me to do a Debugger Canvas video for Channel9 last week and it went live today.  Check it out! http://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-Studio-Toolbox-Debugger-Canvas
  • Kael Rowan

    Code Canvas @ TechFest

    • 3 Comments
    In honor of today's historic date of breaking down walls, I'm posting a recording of the live presentation of Code Canvas given at the 2009 Microsoft Research TechFest event on the Microsoft campus in Redmond, WA. This video demonstrates some of the...
  • Kael Rowan

    Snapshooter

    • 2 Comments
    I’ve been working on a very large-scale canvas application for a while now, and I finally checked in the first working prototype today.   The biggest challenge for this application is that the elements on the canvas are very rich.  They...
  • Kael Rowan

    Code Canvas @ ICSE 2010

    • 2 Comments
    Code Canvas is being shown by Rob DeLine at the 32nd International Conference on Software Engineering this week, in Cape Town, South Africa. The demonstration will show Code Canvas being hosted inside Visual Studio 2010, along with a new visual style...
  • Kael Rowan

    ZoomableApplication1: Scale and Offset

    • 2 Comments
    For the first entry in the series of examples using the ZoomableCanvas , I’ll start off with just the basics: Scale and Offset . I’ll start by creating a brand new app, renaming it from WpfApplication1 to ZoomableApplication1, and adding a...
  • Kael Rowan

    PriorityQueue

    • 1 Comments
    I’m implementing a single-source multiple-target version of Dijkstra's shortest path algorithm that stops when it reaches a requested number of targets.  In order to do this, I’m using a priority queue where target vertices are prioritized by shortest...
  • Kael Rowan

    Code Canvas @ Lang.NET Symposium

    • 1 Comments
    Microsoft recently hosted the 2009 Lang.NET Symposium here in the Microsoft Research building. A colleague of mine, Herman Venter , asked me to show off a demo of Code Canvas during his Common Compiler Infrastructure talk, and the video is available online...
  • Kael Rowan

    System.More

    • 1 Comments
    I, like most developers out there, have accumulated a set of classes and utility functions that have been used repeatedly in multiple projects throughout my career.  This code has followed me around in various forms; sometimes by copying the files...
  • Kael Rowan

    Presentation.More

    • 0 Comments
    In the same vein as System.More , I've also created a Windows Presentation Foundation counterpart called Presentation.More.  And just like System.More defines classes in the same System namespaces as System.dll and System.Core.dll, Presentation.More...
  • Kael Rowan

    IndentedTextWriter

    • 0 Comments
    There's a very useful class called IndentedTextWriter in the System.CodeDom.Compiler namespace that automatically adds whitespace before each line depending on its Indent property. This works great when you have code with several nested (or recursive...
  • Kael Rowan

    Blog Resurrection

    • 0 Comments
    Sometimes in the course of software development it becomes best to start over from scratch. I'm taking this approach with my blog. I first joined Microsoft in 2000 as part of the Windows XP Embedded group. In 2004 I joined the Windows Driver Foundation...
  • Kael Rowan

    Comparator

    • 0 Comments
    I recently wrote a generic PriorityQueue class which can treat any type of object as the priority (not just integers). Specifically, the class looked like this: public class PriorityQueue <T, TPriority> { public PriorityQueue() : this ( false...
  • Kael Rowan

    Softpedia article on Code Canvas

    • 0 Comments
    Wow, I’m impressed with how fast the word is getting out.  Marius Oiaga already published an article on Softpedia: “What if code could leave the boundaries of the traditional editors, and call home an infinite two-dimensional surface as a new spatial...
  • Kael Rowan

    MathExtensions

    • 0 Comments
    Fluent programming is cool, and with extension methods you can make your code much more elegant.  I’ve been programming for years, but I still have to squint when I see an expression like Math .Min(z, Math .Max(y, Math .Pow(x, Math .Sqrt(x)))) . ...
Page 1 of 2 (35 items) 12