Questions from Tuesday’s talk

Thanks to everyone who attended our talk this morning. Apologies for the difficulties with the slides at the beginning. The slide sharing system we were using was being very unresponsive. Tomorrow should go more smoothly.

Speaking of which: tomorrow I’ll be talking about the top five things I wish every C# developer knew; number three will touch your heart, you’ll be shocked at number four and your dentist will hate number five. So tune in and learn how to improve your C# with one weird old trick. I’ll also post a schedule of events for the live talk on Thursday once I’ve got it.

The talk was recorded; when we have the recording and slides available I’ll post a link here.

Unfortunately we ran a little over – sorry – and did not have time for all the questions at the end. I’ll answer a few of the technical questions that did not get answered right now.

Continue reading


Live and in person

My colleagues and I are going to be giving three public presentations next week, two over the internet and one in person; if you’re interested in any of them, please join us!

On Tuesday January 28th 2014 from 8:30 to 9:30 AM Pacific Time my fellow “Bug Guy” Jon, my colleague Keri and I will be doing a webcast rather grandiosely entitled Breakthroughs in Semantic Analysis of C#. Thanks to Visual Studio Magazine for sponsoring this talk. This talk will be mostly focused on the work we’ve done to improve defect detection in C# in the latest version of Coverity’s analyzer.

On Wednesday January 29th 2014 from 8:30 to 9:30 AM Pacific Time the same crew will be doing a webcast entitled The Top Five Things Every C# Developer Should Know.[1. Because the internet loves Top N lists, you know.] There will be some overlap with the previous talk, but will be more focused on the common misconceptions and pitfalls that I see over and over again.

On Thursday January 30th 2014 from 3:00 to 7:00 PM Pacific Time Coverity founder/CTO Andy Chou and I will be doing a live in person presentation that is more or less the union of those two talks: If Your Code Could Speak, What Would It Say? at the San Jose Marriott at 301 S Market Street. Coverity CEO Anthony Bettencourt and Intuit Quality Manager John Ruberto will also be speaking. There will likely be a panel discussion and opportunities to network with other local tech geeks.

If you want to attend any or all of these, please click on the links above to go to the registration pages for each event. Hope to see you there!

If you can’t make it, the first two presentations will likely be recorded and archived somewhere; I’ll post a link when I know it. Some portions of the live presentation might also be recorded; I’m not sure.

More video

Here’s another fragment of the video interview I posted recently.

In this fragment I discuss the difference between analying IL and analyzing source code when trying to figure out if a defect exists. It turns out that you can get much better results by looking at the source code; there’s simply more information there. Being able to look at things like indentation and comments, where local variables were declared, and so on, makes a subtle but very real difference in the quality of the analysis.

This was an interesting video shoot for me. When I was at Microsoft I was used to Charles coming by with a hand-held camera and chatting with me off-camera, and then we’d pretty much post the whole thing. This was a much more involved production with lights, several camerapeople, multiple takes, and so on.[1. Also I find it amusing that they’ve changed the color saturation and tonality quite heavily; I’m not actually that pink, and the wall behind me is not green!]

ATBG: inconsistent equality

Today on the Coverity Development Testing Blog‘s continuing series Ask The Bug Guys, I take a question from reader “Jan”, who is  wondering why different equality operators produce different results. This is a confusing and difficult aspect of C#, so check it out.

As always, if you have questions about a bug you’ve found in a C, C++, C# or Java program that you think would make a good episode of ATBG, please send your question along with a small reproducer of the problem to We cannot promise to answer every question or solve every problem, but we’ll take a selection of the best questions that we can answer and address them on the dev testing blog every couple of weeks.

Note that we have switched the blog to use WordPress; the transition has gone mostly smoothly but there are still some problems with the style sheets and not all of the content moved over quite right. Things might look a little wonky for the next while until we get it all sorted out.

Ship it!

Today is a few days short of my first anniversary of starting work at Coverity. It has been an extremely fun, educational and challenging year. I wanted a change, and I got one in a lot of ways. Working at a rapidly-growing, ten-year-old, 300-person company is very different than working at an industry behemoth like Microsoft. Working in a downtown Seattle skyscraper is a pleasant change from crossing the bridge to Redmond every day. I’ve spent the last six months doing a lot more strategy and planning than writing code, which I hope to rebalance back towards the coding side for the next six months. Continue reading

What is “duck typing”?

Seriously, what is it? It’s not a rhetorical question. I realized this morning that I am totally confused about this.

First off, let me say what I thought “duck typing” was. I thought it was a form of typing.

So what is “typing”? We’ve discussed this before on this blog. (And you might want to check out this post on late binding and this post on strong typing.) To sum up:

Continue reading