Fabulous Adventures In Coding
Eric Lippert's Erstwhile Blog
Practice thinking like a compiler tester, part two
Reader RichM found the same solution to the puzzle I posed yesterday that I did: public class V :...
Author: Eric Lippert Date: 04/11/2007
Practice thinking like a compiler tester
I don’t know why but for some reason I find this little recursive algorithm I ran across in...
Author: Eric Lippert Date: 04/10/2007
Lambda Expressions vs. Anonymous Methods, Part Five
Last time I demonstrated that the compiler could have to do an exponential number of bindings in...
Author: Eric Lippert Date: 03/28/2007
Free Food! And Meet The Compiler Guy! And Win an XBOX 360!
FYI, I will be live and in person available for questions about C# 3.0, working at Microsoft,...
Author: Eric Lippert Date: 01/30/2007
Lambda Expressions vs. Anonymous Methods, Part Three
Last time I said that I would describe a sneaky trick whereby you can get variable type inference...
Author: Eric Lippert Date: 01/12/2007
Lambda Expressions vs. Anonymous Methods, Part One
As you know by now if you've been reading this blog for a while, I am incredibly excited about...
Author: Eric Lippert Date: 01/10/2007
The horror! The horror!
Jeff "Coding Horror" Atwood has many nice things to say about my blog and one not so nice thing....
Author: Eric Lippert Date: 01/08/2007
Every Number Is Special In Its Own Special Way
I got a question recently about where in the .NET framework the "special numbers" were defined. The...
Author: Eric Lippert Date: 11/28/2006
A Face Made For Email, Part Three
Yes, it has happened again. This time, our fabulous C# Community Program Manager Charlie Calvert was...
Author: Eric Lippert Date: 11/17/2006
How do I mitigate a SQL injection vuln?
Joel points out today that SQL injection vulnerabilities are common and bad, bad, bad. He does a...
Author: Eric Lippert Date: 11/01/2006
"Boolean or" or "boolean or"?
I was writing the text for some new error messages for the expression tree library the other day....
Author: Eric Lippert Date: 10/31/2006
Do Not Call IsBadFooPtr, Indeed
Here’s a story that I said a long time ago that I was going to tell you all, and then promptly...
Author: Eric Lippert Date: 09/27/2006
Why does a recursive lambda cause a definite assignment error?
Hey fabulous readers, sorry for not much blogging lately. Between implementing LINQ and making plans...
Author: Eric Lippert Date: 08/18/2006
Type inference woes, part four
Last time in this series I discussed how we are probably going to identify a "best" type from a set...
Author: Eric Lippert Date: 07/18/2006
What Are The Semantics Of Multiple Implicitly Typed Declarations? Part Two
Many thanks for all your input in my informal poll yesterday. The results were similar to other...
Author: Eric Lippert Date: 06/27/2006
What Are The Semantics Of Multiple Implicitly Typed Declarations? Part One
In my earlier series on inferring a unique "best" type from a set of expressions I mentioned that...
Author: Eric Lippert Date: 06/26/2006
Standard Generic Delegate Types, Part Two
Last time I asked whether there were examples of delegate types which could be declared with the...
Author: Eric Lippert Date: 06/23/2006
Standard Generic Delegate Types
Hey all, I'm back from my vacation. Two weeks of reading, sailing, kayaking and visiting with old...
Author: Eric Lippert Date: 06/21/2006
Type inference woes, part three
There were a lot of good comments and questions posted in the last two entries which deserve...
Author: Eric Lippert Date: 05/30/2006
Type inference woes, part two
So what's the big deal anyway? The difference between the spec and the implementation is subtle,...
Author: Eric Lippert Date: 05/26/2006
Type inference woes, part one
The C# compiler has a subtle violation of the specification which raises an interesting question for...
Author: Eric Lippert Date: 05/24/2006
Using undefined variables in JScript
I got a question the other day pointing out that in JScript, it is legal to assign a value to an...
Author: Eric Lippert Date: 05/04/2006
Visual Studio Tools For Office: Using Visual Basic 2005 with Excel, Work, Outlook and InfoPath
Eric Carter and I are excited to announce that the Visual Basic edition of our book about Visual...
Author: Eric Lippert Date: 05/01/2006
Writing Code Isn't Rocket Science (It's Worse Than That)
Today, an old joke: Q: What do rocket scientists say when they want to describe a portion of their...
Author: Eric Lippert Date: 04/10/2006
Odious ambiguous overloads, part two
There were a number of ideas in the comments for what we should do about the unfortunate situation I...
Author: Eric Lippert Date: 04/06/2006
Odious ambiguous overloads, part one
As you might have gathered, a lot of the decisions we have to make day-to-day here involve potential...
Author: Eric Lippert Date: 04/05/2006
Delegates, Lambdas, Type Inference and Long Playing Records
Today is my 33 1/3rd birthday! I'm one third of the way through my first century. I feel like I...
Author: Eric Lippert Date: 03/31/2006
The Root Of All Evil, Part One
People often quote Knuth's famous statement that premature optimization is the root of all evil....
Author: Eric Lippert Date: 03/28/2006
Back in the saddle
Hey everyone, I'm back. Sorry for the two-month absence there. We've been absolutely INSANELY busy...
Author: Eric Lippert Date: 03/28/2006
Regular Expressions From Scratch, Part Eleven: Eliminating Multi-Symbol Rules
The story so far: we have deterministic and nondeterministic finite automata. DFAs follow a rigid,...
Author: Eric Lippert Date: 12/22/2005
Regular Expressions From Scratch, Part Ten: Magic!
Let's recap the story so far. Starting only with basic set theory, sequences, symbols and numbers,...
Author: Eric Lippert Date: 12/19/2005
Regular Expressions From Scratch, Part Nine: A Dream of a Machine
I want to come up with the simplest possible device that can identify whether a given string is a...
Author: Eric Lippert Date: 12/15/2005
Regular Expressions From Scratch, Part Eight: The Diagonal Argument
As we know, each regular expression is associated with a language by our function L. We also...
Author: Eric Lippert Date: 12/12/2005
Regular Expressions From Scratch, Part Seven: Listing All Members Of A Language In Order
Regular languages are by definition those languages which can be described by a regular expression....
Author: Eric Lippert Date: 12/08/2005
Regular Expressions From Scratch, Part Six: The Insanely Clever Bit
Let's start with an easy one today, because things are about to get a little tricky. Definition 10:...
Author: Eric Lippert Date: 12/05/2005
Regular Expressions From Scratch, Part Five: The Regular Expression Language
Now things start to get really weird. Definition 9: Take any alphabet S. The regular expression...
Author: Eric Lippert Date: 12/01/2005
Regular Expressions From Scratch, Part Four: The Kleene Closure of a Language
Languages are sets, so we can take any two languages (over the same alphabet) and take their union...
Author: Eric Lippert Date: 11/28/2005
Regular Expressions From Scratch, Part Three: Concatenation
You probably intuitively understood concatenation already, but let me define it anyway. Definition...
Author: Eric Lippert Date: 11/25/2005
Regular Expressions From Scratch, Part Two: Some Examples of Languages
Let's look at some sample languages to get a sense of just how flexible languages can be. For...
Author: Eric Lippert Date: 11/22/2005
Why Can't I Access A Protected Member From A Derived Class?
A question I got recently was about access to protected methods from a derived class. Clearly that's...
Author: Eric Lippert Date: 11/09/2005
Five-Dollar Words for Programmers, Part Two: Orthogonal
In geometry, "orthogonal" basically means the same thing as "perpendicular", or "at right angles"....
Author: Eric Lippert Date: 10/28/2005
Five-Dollar Words for Programmers, Part One: Idempotence
Programmers, particularly those with a mathematical background, often use words from mathematics...
Author: Eric Lippert Date: 10/26/2005