Tim Ng

F# for the masses

Blog - About

About Tim Ng

I'm from Toronto, Ontario - graduated from the University of Waterloo in 2003, and have been working at Microsoft since then. I interned twice on the Visual Studio for Devices team, and started my full time job there as well. I also worked on the VS Core team briefly, before joining on the VB team, where I am now.

On the Device team, I worked on the native debugger; specifically, I worked on the expression evaluation piece (if you interact with the debugger by inspecting values and changing values, you interact with the expression evaluator). I also worked on some of the high-level communication between the debugger and the device, as well as some other random tasks.

On the Visual Basic team now, I work on the compiler team. We are focused mainly on LINQ, but we are also working on other things such as improving performance and stability of the compiler.

  • Tim Ng

    Lambda expressions article published on MSDN Magazine

    • 2 Comments
    Hey guys, just a quick note to let you know that my article on lambda expressions has been published on MSDN magazine. I'll be updating this blog (actually, probably the VB team blog ) with more information on lambda expressions that I didn't have time...
  • Tim Ng

    Some updates about me

    • 1 Comments
    Sorry for the lack of posts recently; many things have converged within the last 2 - 3 months. First, there was TechEd back in June in Orlando; it was a great time had by all, and I hope that you guys are as excited about the new VB9 language features...
  • Tim Ng

    Getting SQL Express to work nicely with Visual Studio 2005

    • 0 Comments
    I just spent the last 4 hours getting my machine ready for a user group demo; I was trying to get SQL Express setup so that I could do a LINQ to SQL demo; what a painful 4 hours! I will try to document things that I discovered along the way here so that...
  • Tim Ng

    Partial methods for Visual Basic

    • 2 Comments
    One of the new features that we are adding to the language is the concept of a private partial method. In order to discover the rationale behind this feature, let's consider a scenario where a designer generates some code and wishes to allow the user...
  • Tim Ng

    Anonymous Types and Object Identities

    • 3 Comments
    One of the recent changes we made to anonymous types was to allow the syntax to convey the notion of object identity. Paul (our architect) has a blog post on this topic, and I wanted to add a little bit to what he said with a few examples. The C# team...
  • Tim Ng

    How did the collection of Anonymous Types work?

    • 3 Comments
    In my last post on Making Collections of Anonymous Types , I demonstrated how to create anonymous type collections by using a generic method as a "blueprint" factory method. Today, I will describe how this works, and conclude that it might not be a good...
  • Tim Ng

    Visual Basic LINQ web cast tomorrow!

    • 1 Comments
    A couple of this: tomorrow (Wednesday at 9 am PST) Amanda (our uber language PM) is going to do a web cast about LINQ and dive deep into the details and language features that we enabled to support LINQ. It should be a great talk and we hope to see you...
  • Tim Ng

    Visual Basic "Orcas" Beta 1

    • 0 Comments
    I'm sure by now the news the Orcas beta 1 has been released is old news; but Amanda's got the scoop on some of the exciting features that we have in store for beta 1. I hope you get a chance to try out beta 1 and send your feedback to us; we definitely...
  • Tim Ng

    Visual Basic Web casts!

    • 0 Comments
    Check it out here! http://blogs.msdn.com/vbteam/archive/2007/04/09/live-from-redmond-webcast-series-beth-massi.aspx We have a ton of great web casts coming up that will introduce many of the new features in VB9. Check it out! I will try to be attending...
  • Tim Ng

    Making Collections of Anonymous Types

    • 1 Comments
    One of the cool but lesser known features introduced in VB9 is the anonymous type. What exactly are anonymous types? They are simply unnamed types that you can define easily: Dim x = New With { .Name = " timng ", .Age = 27 ] The above statement instructs...
  • Tim Ng

    IEnumerable(Of T) and LINQ Queries

    • 1 Comments
    Now that the March CTP is released, I wanted to blog about different ways you can use LINQ queries to simplify your code and write less code to achieve the same results. Consider a typical application that has a collection of some type (say, a collection...
  • Tim Ng

    Type inference in Visual Basic (part 2)

    • 1 Comments
    Last time, I discussed a bit of the basics of type inference. Today, we'll delve into it a little bit more to explore how type inference can make programming with Visual Basic a little more convenient. Type inference can help you write less verbose code...
  • Tim Ng

    The March CTP is released!

    • 1 Comments
    The March CTP is released! This is the first CTP since the LINQ Preview (that shipped last May!) that contains working LINQ bits for VB. There is definitely more to come, but this release contains some exciting features as well! VSTS Self-Extracting Install...
  • Tim Ng

    Type inference in Visual Basic (part 1)

    • 5 Comments
    If you play around with the LINQ CTP , you will notice that in order to support the LINQ scenarios quite a lot of features were added to the language. A lot of these features, if not all, are useful in scenarios other then LINQ. In this post, I will talk...
  • Tim Ng

    Visual Basic Performance Updates (SP1)

    • 0 Comments
    Recently, Visual Studio released SP1 for the various Visual Studio 2005 SKUs. You can download the express SKU here , or the other SKUs here . I highly recommend that you install the service pack if you are running into VB compiler performance issues...
  • Tim Ng

    Friend Assemblies for Visual Basic Orcas

    • 1 Comments
    One of the features missing from Visual Basic 2005 was support for what is known as friend assemblies . We are currently working on enabling Friend Assemblies for the next version of Visual Basic (code named Orcas). I wanted to share with you some of...
  • Tim Ng

    Bad COM practices: Returning an AddRef'd pointer

    • 2 Comments
    Recently I had to fix a memory leak in some COM code that was pretty poorly written. The problematic code looked something like this: IMyInterface* GetInterface() { IMyInterface* pRef = NULL; pRef = ::CoCreateInstance(...); // At this point...
  • Tim Ng

    Why customer service is the most important aspect of business

    • 1 Comments
    For those that know me personally, you'll know that my brother loves motorcycles, and that recently we have purchased 3 motorcycles within the last 8 months. Our experience through this time has definitely confirmed to us why customer service and interaction...
  • Tim Ng

    Visual Studio 2005 IDE Enhancements

    • 0 Comments
    I just found out that we released the Visual Studio 2005 IDE Enhancements - there are quite a few useful tools in this pack, I highly recommend that you check it out! One of the tools in this package is the "Source Code Outliner", which was a nice surprise...
  • Tim Ng

    John is coming to Microsoft!

    • 0 Comments
    I heard from John a month or two ago that he would be coming to Microsoft, and it looks like he's broken the news (and Soma too!). The RubyCLR bridge that he created is totally awesome, so I hope someone hears his requests and picks up and project and...
  • Tim Ng

    RubyCLR and Visual Basic - part 2 (delicious project)

    • 0 Comments
    Last time, I showed how to connect a Ruby class to a VB class using RubyCLR bi-directionally. This time, we use Ruby to connect to a VB form and display data in .NET. We'll also write our event handlers in Ruby, just for kicks. I've attached a zip file...
  • Tim Ng

    My trip to Dayton, Ohio

    • 2 Comments
    Some thoughts after spending a week in Dayton/Cincinnati. I will most likely be back to visit Joyce again, so thanks to rodtrent and ajoyk for some comments! It definitely wasn't as bad as when I first got here and was shocked :) In fact, it was actually...
  • Tim Ng

    COM, Re-entrancy, and Message Pumping

    • 6 Comments
    Disclaimer: I hesitated posting this because this is a topic that is extremely complicated and deep, and like I point out in the article, lots of smart people have talked about some aspect of this problem, but I thought that I would share our specific...
  • Tim Ng

    In Dayton, Ohio

    • 6 Comments
    I'm visiting my girlfriend for a week in Dayton, Ohio. She's doing an internship here for a few months, and it's been definitely quite strange. We're both from Toronto, Ontario, and we both went to school at the University of Waterloo (she's in Optometry...
  • Tim Ng

    Some RubyCLR suggestions

    • 0 Comments
    John - I have a couple of suggestions that I think may make the RubyCLR experience better. I spent a bit of time trying to understand the way you can sync Ruby objects with .NET objects, and I think I understand how now, but the documentation on the RubyCLR...
Page 2 of 3 (68 items) 123