Featured Posts

RIA: Matrix WebCast

July 21st, 2009 / Tales from a Trading Desk

Finextra webcast – registration here.

The Algebra of Data, and the Calculus of Mutation

April 18th, 2009

With the spreading popularity of languages like F# and Haskell, many people are encountering the concept of an algebraic data type for the first time.  When that term is produced without explanation, it almost invariably becomes a source of confusion.  In what sense are data types algebraic?  Is there a one-to-one correspondence between the structures of high-school algebra and the data types of Haskell?  Could I create a polynomial data type?  Do I have to remember the quadratic formula?  Are the term-transformations of (say) differential calculus meaningful in the context of algebraic data types?  Isn’t this all just a bunch of general abstract nonsense?

We’ll investigate these questions, and perhaps demystify this important concept of functional languages.

Mix09 Podcast Roundup

March 24th, 2009

Lab49’s Marc Jacobs and I were out at Microsoft’s Mix09 conference last week and, in conjunction with Zoom-In Online, we produced a number of blog postings & podcasts.

We produced a bunch of stuff, so here are all the podcasts in one place for your easy consumption.  As you will see & hear there’s a lot to keep up on.  But there was so much great information and exciting new developments that I’m sure we didn’t cover it all!

Learning C# Fast

November 17th, 2008

An experienced C++ developer recently asked me what he needed to focus on as he learns C# and .net. He’s already reading books and going through exercises and was looking for some guidance to speed the process up. Being naturally overconfident and condescending, I was more than happy to furnish a lecture or two. Surprisingly enough, the one of the emails was coherent enough to share.

I switched from C++ to Java and then Java to C# so I feel somewhat qualified to speak on the topic of switching languages.

Here my recommendations to guide your language studies:

  • Leverage existing strengths.
  • Attack “cognitive noise”.
  • Consider contributing to an open source project.

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.

A maze of twisty little Java web service standards, all alike

October 22nd, 2008 / Joe on Computing

It’s almost impossible to keep up with all the fractal-like Java standards related to web services. As fast as each can be learned, Sun invents another, and a dozen open source implementations appear. For my own sanity I tried to create a rough map of some of them. I’ll try to avoid making recommendations; my main objective is to sketch out how they fit together.

First, it’s important to understand that there are three main players with implementations of of these standards: Sun, the Apache foundation, and Codehaus. There are many other open source implementations as well, but these are the three 800 pound gorillas, for a total of 2400 pounds, or almost exactly one metric tonne (for our international audience).

Practical PLT Part 2: An S-Expression Parser

May 1st, 2008

In the last article we saw how to build a simple interpreter.  We quickly ran into the problem that complex program terms (like the definition of the factorial function) were incredibly difficult to construct manually.  In this article we’ll address that problem by first establishing a shorthand for program terms: S-Expressions.  Then we’ll see how we can mechanically translate textual S-Expressions into the linked Pair structure that our interpreter requires.

Practical PLT Part 1: A Scheme Interpreter

April 22nd, 2008

“What?! You’re going to create another programming language? It’s going to be too hard for new people to learn, and there’s just too much complication involved! Interpreters, type-checkers, compilers, parsers, garbage collectors: these things are too difficult for average programmers to understand. And what’s the real business value anyway? You shouldn’t reinvent the wheel! Have you taken a look at Jimmy’s XML configuration system? He says that his files let you just wire up components, and surely that’s simpler than a new language.”

This series of articles on practical programming language theory (PLT) will be an answer to the above refrain. In this first article, I’ll show just how simple it is to make an interpreter for a basic functional language using any modern C++ compiler.

Microsoft MVP 2008

April 1st, 2008 / Kenny Kerr

I just heard that I have received the Microsoft MVP award again this year for my contributions to the Visual C++ community. Thanks to my friends at Microsoft. It’s been a pleasure getting to know all of you. Unfortunately the MVP Summit is no longer just “down the road” for me. Maybe next year. My colleague, Matt Davey , just got his first award this year. Congrats pal.

Delta, Lambda, Pi (the fraternity of calculi)

June 28th, 2007

We recently had an internal presentation covering a variety of fundamental theories of computation that underly several important programming languages. Here are a few papers that might help explain those theories in more depth (if not the actual interpreters we developed):