0000101011011110 >> 12

Monday, September 23, 2013 – 6:53 AM

What a week it’s been. I’ve spent the last couple of days at the Going Native 2013 conference right here on the Microsoft campus. Essentially this involves hanging out with some of the best C++ developers anywhere. This includes; the inventor of the language, many compiler writers and a lot of people who wrote various bits of the standard. Alongside them are a lot of professional 356 days a year C++ developers.

The really big question is who the hell let me get in there in the first place? I’m not proud, I paid. For a few hundred bucks this is the best conference deal ever. Three days of talks by some of the highest quality speakers and an incredibly savvy audience. I’m not going to say much more. Other than the presentations are already online and if you are interested in C++ at all then you should watch some of them.

So what’s with the weird post title?

tier3_logo120x120 Well, after nearly a decade at Microsoft I’ve decided it’s time to go do something else. I’ve joined the most excellent engineering team at Tier 3. The chance to work for a much smaller company with the likes of Jim Newkirk and Brad Wilson (the xUnit team) and Scott Densmore (ex patterns & practices group), and a cast of other high caliber people was too much to pass up. It’s also a very low friction environment which I’m really happy about.

Coding at the Hock HouseRight now I’m with most of the Tier 3 engineering team are in Utah for a hack house. Spending a couple of weeks hanging out and writing a lot of new code for Tier 3. I’ve also found time to get back on the bike after breaking my collar bone earlier in the summer.

You can figure out what the post title really means.

I’m not intending on ditching C++ for C# and (horror) Javascript. The C++ AMP Algorithms library is something I still intend to keep tinkering with. I’m even giving two talks at Seattle Code Camp on Modern C++ and writing for programmers.

New CQRS Book! Starts With Some Heavy Drinking with Greg Young

Saturday, September 14, 2013 – 11:40 PM

cqrsWhat happens when you go to an ALT.NET open conference in Vancouver with Bob and go drinking with Greg Young?

The obvious outcome is that on Saturday night you find yourself in a bar with Greg and some others drinking way more that is really advisable. Turns out that Greg can say “we’ll have another round” to any passing server while still holding another conversation, even what it’s not his turn to buy. Impressive.

Of course the end result is that I woke up the next morning with a stinking hangover and the vague feeling that we might have come up with a solution to the Turing halting problem. Unfortunately neither of us could decipher the incoherent scribbling on the napkin Bob brought home.

End of story right? No. One of the things that we did remember was that Greg convinced us that CQRS was a “good thing”. When we got back to Redmond we started to convince the patterns & practices group that CQRS was such a good thing that they should do something with it. Chris Tavares did some prototyping but things took time and one way or another, Chris, Bob and I all moved on to other things.

Thankfully Grigori Melnik, Eugenio Pace and Christopher Bennage and the rest of the patterns & practices team picked up the torch. They did the real work of engaging Greg and many other people in the development community.

You can imagine how pleased I was when I visited the patterns & practices team a few weeks ago to discover all this hard work had been turned into a book! Grigori gave me a copy and it looks really good. The sort of guidance that made me so proud to be involved with p&p for several years.

Where it All Started, Nearly 20 Years Ago

Monday, September 9, 2013 – 3:58 PM

University of Southampton Physics BuildingA friend reminded me about this. I think we actually set up a web server for the Astronomy group sometime around Christmas of 1993 but didn’t get it one the NCSA announcements page for several months.

Hum. To think you can create a whole career off of something you did when you were bored of some of your physics research. I guess life really does happen while you are making big plans for something else.

What’s New With NCSA Mosaic


Feb 20th 1994

The University of Southampton Astronomy Group now provides an index of recent International Astronomical Union (IAU) telegrams. To avoid breaching the copyright on the circulars, the full text of the telegrams is only available locally. However, if you have your own legitimate source for these documents then this search tool will tell you which telegrams to look in for news on particular astronomical objects and events.

Taken from the archive of NCSA announcements.


Saturday, August 24, 2013 – 3:09 AM

If you thought the days of dark satanic mills were long behind us then think again.

York Street Leading to Charles Street, Manchester by Adolphe ValetteYou’ll hear developers, and particularly game developers talking about “crunch time” a lot.

Crunch (time): a critical moment or period (as near the end of a game) when decisive action is needed.
– Merriam Webster

As in, “Our team was crunching which meant management ‘asked’ us to work late nights and weekends’ so that we could ship in time.”

This has ramifications, such as:

“My team crunched really hard for several months. When I finally got home one night I discovered that I was the proud father of twin baby girls.”

“I was at work until 3am and was so tired and distracted driving home that I crashed my car and ended up in the ER.”

“I was expected to work as many hours as were required to meet the deadline. This exacerbated my existing health problems and I was found dead in the shower by one of my house mates.”

“When I leave the house in the morning my daughters as really sad because they aren’t going to see me for several days.”

Only one of these is made up.

As a friend of mine once observed “I used to think all software was written that way until I discovered agile.”

Picture by Adolphe Valette, French impressionist and teacher of J.S. Lowry. Both tried to capture life in the heavily industrialized north of England.

C++ AMP Algorithms Library

Sunday, August 4, 2013 – 7:49 AM

I’m pleased to report that I’ve been busy helping out the C++ AMP product team with the C++ AMP Algorithms Library. Recent additions include:

  1. Lots more C++ AMP implementations of STL algorithms, like; accumulate, copy_if and adjacent_difference.
  2. Some documentation; getting started guide and list of supported features.
  3. Build and test infrastructure; tests now run under the Visual Studio C++ testing framework and there’s a script for building and running the tests after you download.

All this means a new release. The C++ AMP Algorithms Library 0.9.2 is downloadable today from the C++ AMP Algorithms Library CodePlex site. What’s next? I’m hoping to start on some sorting algorithm implementations. First up radix sort.