Announcing SELA Dev Academy Canada—November 5-7 in Toronto

August 28, 2012

SELA conferences are going international: we’re now announcing SELA Dev Academy, a three day technical conference in Toronto, with a great lineup of speakers and sessions immediately after Microsoft’s BUILD. If you’re in the Toronto area or flying back home from BUILD, this is a great opportunity to get up to speed on the latest Microsoft technologies with sessions on Windows 8, WCF, Parallel Programming, Windows Azure, ASP.NET Web API, and many more. The location is the Hyatt Regency Toronto, which looks awesome from the pictures although I haven’t visited. Registration is here. There’s...
no comments

Runtime Representation of Generics—Part 1

August 27, 2012

This is an excerpt from Chapter 5 (Collections and Generics) of Pro .NET Performance, scheduled to appear in less than a month. I might be publishing a few more of these before and after the book is out. Before we can concern ourselves with the runtime implementation of generics, it’s paramount to ask whether there is a runtime representation of generics—as we will see shortly, C++ templates, a similar mechanism, have no runtime representation to speak of. This question is easily answered if you look at the wonders Reflection can do with generic types at runtime: Type...

Running The Boot Camp Control Panel Applet from Windows 8 on MacBook Pro

August 16, 2012

As John Robbins repeatedly likes to say, Apple computers are the best hardware for running Windows. To quote, “a Mac Pro it's the best Windows machine money can buy”. After yesterday’s release of Windows 8 to MSDN subscribers, I went along and installed it on my new MacBook Pro. Everything went fine—the setup was blazingly fast, all drivers were successfully installed, except for the pesky Apple trackpad settings that were way off what a Windows user comes to expect. In case you don’t know, MacBook trackpads look like this: There’s no left or right...

Out of Order Execution and Memory Models

August 15, 2012

TL;DR – Parallel programming is hard enough with locks and interlocked memory access instructions. Don’t make it even harder by introducing subtle data races unprotected by locks into your programs. Language compilers are free to introduce reordering of certain memory access operations into their output. For example, do you really care in which order the following two stores are issued to memory? x = 12; y = 13; Indeed, the compiler may reorder these operations freely, and the thread executing them cannot observe any intermediate stages because it does not read...
no comments

Windows Memory Manager’s Preferential Treatment of Access Faults in the Interlocked Singly Linked List Pop Implementation

August 11, 2012

Special treatment is always a good thing, especially when you find that the kernel part of Windows gives preferential treatment to its user mode counterpart. Executive summary: It turns out that the Windows memory manager’s access fault handler, which handles the exception raised by the CPU when an invalid memory access occurs, has a special case for an expected access violation that might be raised when popping an item from an interlocked singly linked list (SList). The rationale for this special treatment is probably the prohibitive cost of setting up an exception handling frame in the popping function....
one comment

SELA Developer Practice: Post-BUILD Event

August 6, 2012

Oh, I was so happy when I discovered the ever so slight pun in “post-BUILD event”. Programmer humor, very sad. Moving on. The November SDP is going to be the biggest one yet. We’ll kick off the conference on Sunday, November 18 with three tracks in parallel, for “Client and Web”, “Server and Cloud” and “ALM”. With keynotes from leading Microsoft speakers and an additional five sessions in each track, this day should bring you up to par with the technological novelties from Microsoft in your area of expertise. Some examples: Bnaya...
one comment