A few weeks ago, I had the honor of being invited to speak at DotNext 2015, Russia’s only .NET conference and one of the leading developer conferences in the country. As some of my readers probably know already, I was born in the USSR, so I speak Russian with a heavy Israeli accent but can understand both written and spoken Russian very well. The fact that it was my wife’s birthday and we could elope for a weekend of wintery weather and hardcore CLR internals only added to my resolve.
I proposed two talks, and the organizers had such difficulty picking one that I offered doing both—a decision I’m very happy with. I’ve thoroughly enjoyed my sessions because of the audience—it is so incredibly rare for everyone in the room to sit there, mouth agape, with a look of genuine interest, listening to you speak on identifying deadlocked threads, searching for heap objects in memory, or using conditional vector instructions.
My first talk covered vectorization, or using SIMD instructions from .NET applications. Even though it’s a subject I’ve already explored in the past, I had some new demos and materials comparing various technologies such as multi-core development, vectorization, GPGPU, and others. Unfortunately, due to some technical issues with the projection equipment, I wasn’t able to use my own machine for demos—but they can all be easily reproduced. All you need is a Haswell (or later) processor.
My second talk, which attracted a smaller crowd but a very involved one, covered CLRMD and the art of automatic dump analysis. This is a session I really love because I’m basically standing there writing cool demos for the good part of an hour, and these demos make easy the things that always used to involve WinDbg, SOS, and unutterable command sequences. In just a few minutes, we can print out object statistics and sizes, locate specific objects on the heap and dump their fields, print out the crashing thread and the exception information from a dump file, and identify deadlocked threads by going through blocking objects.
As a sidenote, I toyed with the idea of using WinDbg for my slides. I even have a folder full of slides to show for it—with links going from one slide to the next, like so:
<link cmd=".dml_start slide14.txt">next</link>
Unfortunately, I had to give up my plan because it was rather hard to arrange the spacing on the slides with the font size in the debugger window and the projector resolution so that the text would be readable for everyone. Maybe I should have just used screenshots, like this one:
As you can see, I had a great time at DotNext—but it wasn’t just for my talks. My wife and I spent the whole day at the conference, going from one session to the next, all the way through the closing keynote. Every talk was interesting, every session was an opportunity to learn from the speaker, and every hallway conversation was an intellectually-stimulating interaction. And, to top it all off, the organizers took us to dinner—twice in less than 24 hours!—which brought back childhood memories of smells and flavors.
I’m posting shorter links, thoughts, and comments on Twitter in addition to my blog. Feel free to follow me: @goldshtn