Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Eric Lippert's Erstwhile Blog
Murky Research
No computers today, but some interesting - and important - math. (And, happy Canada Day, Canadians!)...
Author: Eric Lippert Date: 07/01/2010
Computing a Cartesian Product with LINQ
And here we have yet another post inspired by a question on StackOverflow: how do you compute the...
Author: Eric Lippert Date: 06/28/2010
Hide and seek
Another interesting question from StackOverflow. That thing is a gold mine for blog topics. Consider...
Author: Eric Lippert Date: 06/14/2010
Don't repeat yourself; consts are already static
Today, another entertaining question from StackOverflow. Presented again as a dialogue, as is my...
Author: Eric Lippert Date: 06/10/2010
Live from New Orleans
Just a quick note that Mads, Luke and I are going to be on Channel 9 Live from TechEd this afternoon...
Author: Eric Lippert Date: 06/08/2010
Better late than never
Good heavens, I just realized I completely forgot to post a link to this interview. I'm a year late,...
Author: Eric Lippert Date: 06/07/2010
Cast operators do not obey the distributive law
Another interesting question from StackOverflow. Consider the following unfortunate situation:...
Author: Eric Lippert Date: 05/27/2010
More Boring Metablogging
Hey everyone, those of you who read this blog on the main MSDN page rather than via your own RSS...
Author: Eric Lippert Date: 05/25/2010
Every Program There Is, Part Nine
[This is the final part of a series on generating every string in a language. The previous part is...
Author: Eric Lippert Date: 05/24/2010
Every Program There Is, Part Eight
[This is part of a series on generating every string in a language. The previous part is here. The...
Author: Eric Lippert Date: 05/20/2010
Every Program There Is, Part Seven
[This is part of a series on generating every string in a language. The previous part is here. The...
Author: Eric Lippert Date: 05/17/2010
Every Program There Is, Part Six
[This is part of a series on generating every string in a language. The previous part is here. The...
Author: Eric Lippert Date: 05/13/2010
Every Program There Is, Part Five
[This is part of a series on generating every string in a language. The previous part is here. The...
Author: Eric Lippert Date: 05/10/2010
Every Program There Is, Part Four
[This is part of a series on generating every string in a language. The previous part is here. The...
Author: Eric Lippert Date: 05/06/2010
Every Program There Is, Part Three
[This is part of a series on generating every string in a language. The previous part is here. The...
Author: Eric Lippert Date: 05/03/2010
Every Program There Is, Part Two
[This is part of a series on generating every string in a language. The previous part is here. The...
Author: Eric Lippert Date: 04/29/2010
Every Program There Is, Part One
[This is part of a series on generating every string in a language. The previous part is here. The...
Author: Eric Lippert Date: 04/26/2010
Every Tree There Is
[This is part of a series on generating every string in a language. The previous part is here. The...
Author: Eric Lippert Date: 04/22/2010
Every Binary Tree There Is
[This is the first part of a series on generating every string in a language. The next part is...
Author: Eric Lippert Date: 04/19/2010
It's Essential!
My copy of Essential C# 4.0 just arrived, and it looks great. I was one of the technical reviewers...
Author: Eric Lippert Date: 04/15/2010
Ignoring parentheses
Yet another amusing question from StackOverflow: is there a difference between “return...
Author: Eric Lippert Date: 04/12/2010
Precision and accuracy of DateTime
The DateTime struct represents dates as a 64 bit number that measures the number of “ticks” since a...
Author: Eric Lippert Date: 04/08/2010
Turning a bug into a feature
I was amused to read this post about an arithmetic bug which accidentally turned into an AI feature...
Author: Eric Lippert Date: 04/05/2010
Some Last-Minute New C# 4.0 Features
As I’m sure you know by now, we are done implementing C# 4. We’ve added support for...
Author: Eric Lippert Date: 04/01/2010
Knights, Knaves, Protected and Internal
When you override a virtual method in C# you are required to ensure that the stated accessibility of...
Author: Eric Lippert Date: 03/25/2010
Socks, birthdays and hash collisions
Suppose you’ve got a huge mixed-up pile of white, black, green and red socks, with roughly equal...
Author: Eric Lippert Date: 03/22/2010
Do not name a class the same as its namespace, Part Four
(This is part four of a four part series; part three is here.) Part Four: Making the problem worse I...
Author: Eric Lippert Date: 03/18/2010
Do not name a class the same as its namespace, Part Three
(This is part three of a four part series; part two is here, part four is here.) Part Three: Bad...
Author: Eric Lippert Date: 03/15/2010
Do not name a class the same as its namespace, Part Two
(This is part two of a four part series; part one is here, part three is here.) Part Two:...
Author: Eric Lippert Date: 03/11/2010
Too much reuse
A recent user question: I have code that maintains a queue of pending work items waiting to be...
Author: Eric Lippert Date: 03/04/2010
Attracting Talent
Today I want your insights, opinions and advice. In any large organization over time people are...
Author: Eric Lippert Date: 03/01/2010
Careful with that axe, part two: What about exceptions?
(This is part two of a two-part series on the dangers of aborting a thread. Part one is here.)...
Author: Eric Lippert Date: 02/25/2010
Careful with that axe, part one: Should I specify a timeout?
(This is part one of a two-part series on the dangers of aborting a thread. Part two is here.) The...
Author: Eric Lippert Date: 02/22/2010
What’s the difference between ternary and tertiary?
The conditional operator ( condition ? consequence : alternative ) is often referred to as both the...
Author: Eric Lippert Date: 02/18/2010
Chaining simple assignments is not so simple
UPDATE: I interrupt this episode of FAIC with a request from my friend and colleague Lucian, from...
Author: Eric Lippert Date: 02/11/2010
Making the code read like the spec
As I mentioned a while back, there are some bugs in the compiler code which analyzes whether a set...
Author: Eric Lippert Date: 02/08/2010
How Many Passes?
Large bodies of code written in the C/C++ languages typically divide up the code into...
Author: Eric Lippert Date: 02/04/2010
Style follows semantics
Which is better style? bool abc;if (Foo()) abc = Bar();else abc = false; vs bool abc = Foo()...
Author: Eric Lippert Date: 02/01/2010
Calling constructors in arbitrary places
C# lets you call another constructor from a given constructor, but only before the body of the...
Author: Eric Lippert Date: 01/28/2010
Why are unused using directives not a warning?
As I’ve discussed before, we try to reserve warnings for only those situations where we can...
Author: Eric Lippert Date: 01/25/2010
What’s the difference between a destructor and a finalizer?
Today, another dialogue, and another episode of my ongoing series "what's the difference?"...
Author: Eric Lippert Date: 01/21/2010
A Definite Assignment Anomaly
UPDATE: I have discovered that this issue is considerably weirder than the initial bug report led me...
Author: Eric Lippert Date: 01/18/2010
Why Can't I Access A Protected Member From A Derived Class? Part Six
Reader Jesse McGrew asks an excellent follow-up question to my 2005 post about why you cannot access...
Author: Eric Lippert Date: 01/14/2010