This blog has, IMO, some great resources. Unfortunately, some of those resources are becoming less relevant. I'm still blogging, learning tech and helping others...please find me at my new home on

Friday, October 2, 2009

Contravariant Indices

I always find myself summing over related indices when working with co-ordinate frames, so the metric tensor trick employed by Einstein’s summation convention seemed very natural to me when thinking of enumerable collections and watching this video.

Yeah right! ;o)

This is a great video and really provides some amazing insight into the workings of the upcoming Rx framework, Microsoft’s addition to .Net which addresses observable collections and multithreading concerns that many of us didn’t have vocabulary to previously describe. 

We are standing on the edge of a fundamental shift in the way we approach programming – with new processors, functional programming blending with procedural, faster, multi-core systems on everyone’s desk – and this is one of those libraries that further evidences the change. You can be certain of it because of this screencap:


Let me be clear: any library introduced with an example of a fruit array accepting a new Banana must be genius.

I wish I would’ve seen this earlier in the summer to get a crack at some of the early bits, but you can be darn sure I’m givin’er a whack over the next couple of days!

The framework is also being called the .Net Reactive Framework, though I’m not sure if the name will stick as some Microsofters are out in the forums and have not promised the name.


The above image is Erik Meijer explaining the symmetry of IEnumerable and IObservable, one of the new interfaces in Rx.

The basic idea is that Rx is the “mathematical dual of LINQ to Objects.”  There are two primary components: a couple of interfaces to help work with observable collections in a push-model, and the LINQ extensions and helpers written to code against those interfaces.

I have really enjoyed working in the asynchronous space and sometimes have struggled leaving threading out of my apps.  I think there is something beautiful in turning over control to the machine. It is cool when you get to a point in the app where the metrics you’ve implemented give you the confidence you need to “unleash” your code on your processor in a way that you can’t really monitor, and even more rewarding when you see the results.

Full link to the video:

Or you can watch it here:

Get Microsoft Silverlight

No comments:

Post a Comment