Learning

First Look at Microsoft HPC 2008-R2

September 23rd, 2010

Recently (2010-09-21) I spend all day learning about newly released Microsoft High Performance Computing (HPC) product, version 2008-R2. Previously, I had a chance to work briefly with the initial version of the product in 2007 – I saw many good improvements over the first version. The list is too long to enumerate all of them – the highlights are better node management (including pre/post compute state, verification and distribution of software/patches to nodes, etc.), status and problem reporting, root-cause identification, etc. One very helpful feature added – “sanity” checks that could be run pre-deployment or at any time. Many immature (usually homegrown) grid management solutions are bounced like yo-yos daily to verify good state of the nodes. There are also create difficulties in visualizing the state of the grid, or finding outliers (nodes) in performance for root cause analysis – all the tasks in which HPC 2008-R2 has superior offering. Back in 2007, one of my managers flat out asked if there is a way to use HPC to admin an existing in-house Linux/Java grid.

IFL 2009: First Impressions

October 4th, 2009

Last week, my colleague Ken Overton and I attended the IFL 2009 conference in South Orange, New Jersey.  The event was partially funded by Jane St Capital, and consisted of research on the implementation and application of “functional languages.”  The invited talk was by Benjamin Pierce (of TaPL fame), on his joint work (with Nate Foster and others) on the bidirectional programming language Boomerang.  The conference’s full range of subjects was diverse, and in this article I will summarize what I saw.

Reactive Programming: How to Invert an Enumerator

July 29th, 2009

“The opposite of a correct statement is a false statement. But the opposite of a profound truth may well be another profound truth.”

Niels Bohr

Enumerables and Enumerators, oh my!

Enumerables and Enumerators are great; big sacks of data we can iterate through using a well-established method. Just in case anyone isn’t up on their GOF, the pair looks a bit like this:

interface IEnumerable<T>

{

    IEnumerator<T> GetEnumerator();

}

interface IEnumerator<T> : IDisposable

{

    bool MoveNext();

    T Current { get; }

Source code for Jason Dolinger’s Model-View-ViewModel presentation

December 3rd, 2008

Some time back, I posted Jason’s presentation on Model-View-ViewModel and dependency injection with WPF and Unity (if you haven’t checked it out yet, you really should… the stuff there is good for Silverlight, too).  There were numerous requests to take a look at the source code.  It’s now available here.

Getting started with F# : read a book!

November 11th, 2008

Recently, a colleague here at Lab49 asked whether there were any good books available to help getting developers unfamiliar with F# and functional programming started in the world of functional .NET. I had some ideas and thought I’d post them here.

(In his post below, Sergey mentioned that Luke Hoban, the F# product manager, gave a talk at the Lab on F#. We recorded that presentation and I’ll be posting it soon, so stay tuned.)

Jason Dolinger on Model-View-ViewModel

November 6th, 2008

A while back, Jason Dolinger, a consultant here at Lab49, gave us a presentation on design in WPF with the Model-View-ViewModel pattern and the Unity dependency injection framework.

Jason started with an application that one would write in a “traditional” way, with button clicks handled by event-handlers in the code-behind that then updated other parts of the UI. Using WPF data-binding, Commands, and Unity, he transformed it, piece by piece, in a much more manageable, encapsulated, readable, and testable M-V-VM design. It was awesome.

It was so awesome, in fact, that after the presentation Jason recorded the demo for all to see here.

Learn Expression

August 19th, 2008

At the Microsoft Expression Community Learning Center:

Just starting out with Expression? We’ve collected tutorials, starter kits, Quick Start Guides, videos, and other helpful resources to get you started quickly. Get answers from fellow users on the Discussion Forums, read our FAQs, or contact Support: it’s all here. For any questions or comments about the training content, please visit the Expression Discussion Forums.

(hat tip: Paul Mooney)