Fabulous Adventures In Coding
Eric Lippert's Erstwhile Blog
Do not use string hashes for security purposes
A recent question I got about the .NET CLR's hashing algorithm for strings is apropos of our...
Author: Eric Lippert Date: 10/24/2005
FYI, C# 2.0 Has A Breaking Change in Enum Subtraction
A customer brought to my attention the other day that the C# 2.0 beta release has a breaking change...
Author: Eric Lippert Date: 10/19/2005
Another C#/LINQ chat, Thursday 1300h Pacific Time
The last chat we had just after PDC was a virtual mob scene. We had hundreds of questions, way more...
Author: Eric Lippert Date: 10/17/2005
Resolving ambiguity in C# param passing
Here's a question I got recently about parameter arrays in C#. Suppose you are designing a method...
Author: Eric Lippert Date: 10/17/2005
Checking For Script Syntax Errors, This Time With Code
A number of people asked me to clarify yesterday's entry. Rather than try to talk you through it, I...
Author: Eric Lippert Date: 10/12/2005
Checking For Script Syntax Errors
A reader asked me recently whether there was a way to check a chunk of JScript or VBScript for...
Author: Eric Lippert Date: 10/11/2005
C# 3.0 is still statically typed, honest!
Since LINQ was announced I've seen a lot of really positive feedback and a lot of questions and...
Author: Eric Lippert Date: 09/27/2005
Delightful, delicious, DLINQ
As you've probably already heard, at long last we've announced the new features that we're planning...
Author: Eric Lippert Date: 09/14/2005
Implementing Event Handling, Part One
Back in February I posted a bit about how script hosts such as Windows Script Host dynamically hook...
Author: Eric Lippert Date: 09/09/2005
Book Signing at the PDC
It's a week until PDC! Very exciting. Unfortunately I'm not going this year but my coauthor and...
Author: Eric Lippert Date: 09/07/2005
VBScript Default Property Semantics
Here’s a question I recently got about VBScript, where by "recently" I mean August 28th, 2003....
Author: Eric Lippert Date: 08/30/2005
Caching Dispatch Identifiers Is A Bad Idea
About two years ago I wrote a bit about when it was legal to cache a dispatch identifier so that you...
Author: Eric Lippert Date: 08/24/2005
Through the Looking Glass
I'm back, I'm married, we had a fabulous time, and now I'm setting up new machines and figuring out...
Author: Eric Lippert Date: 08/22/2005
Fabulous Adventures in C# and VSTO
I am incredibly excited, but a little sad too. 1295 days ago I attended a rather hastily-called...
Author: Eric Lippert Date: 08/19/2005
Recursion, Part Six: Making CPS Work
JScript doesn't support CPS natively but we can write another dispatch engine that makes it work....
Author: Eric Lippert Date: 08/15/2005
Recursion, Part Five: More on CPS
Suppose we wanted to write this by-now-familiar little function in continuation passing style:...
Author: Eric Lippert Date: 08/11/2005
Recursion, Part Three: Building a Dispatch Engine
There's a particular technique that I like to use to solve problems -- it doesn't always work, but...
Author: Eric Lippert Date: 08/04/2005
Recursion, Part One: Recursive Data Structures and Functions
The first thing to wrap your head around is recursively defined data structures. Let's start with...
Author: Eric Lippert Date: 07/27/2005
More on full qualification, this time in C#
We were speaking earlier about how to resolve ambiguous enumerated type names in VBScript....
Author: Eric Lippert Date: 07/15/2005
Scripting Type Library Constant Injection Performance Characteristics, Part Three
We’ve got a system that meets all our needs for disambiguating hierarchical constants through...
Author: Eric Lippert Date: 07/07/2005
The Answer To Last Week's Puzzler
Clearly I was looking for a leak in something, but what? The hard part is figuring out what the...
Author: Eric Lippert Date: 07/04/2005
A Puzzler
Some fun for the Friday of a long weekend. And a true story to boot! I had a job to do last Tuesday...
Author: Eric Lippert Date: 07/01/2005
Scripting Type Library Constant Injection Performance Characteristics, Part Two
Script developers can declare constants, variables, functions and classes at global scope by writing...
Author: Eric Lippert Date: 06/29/2005
Scripting Type Library Constant Injection Performance Characteristics, Part One
(Sorry about the title. I work for Microsoft; we like nouns.) Over a year ago now a reader noted in...
Author: Eric Lippert Date: 06/22/2005
High-Dimensional Spaces Are Counterintuitive, Part Five
All of this stuff about high dimensional geometry has been known for quite a while. The novel bit...
Author: Eric Lippert Date: 06/20/2005
Chronological Index
Since we've moved to the new blog system it's harder to browse anyone's complete works. It's...
Author: Eric Lippert Date: 06/10/2005
High-Dimensional Spaces Are Counterintuitive, Part Four
It's reasonably common to have a database containing a few thousand or million points in some...
Author: Eric Lippert Date: 06/09/2005
I'm So Prolix
I mentioned earlier today that my latest book project has gone to copyediting. To forestall a few...
Author: Eric Lippert Date: 06/06/2005
High-Dimensional Spaces Are Counterintuitive, Part Three
My next book project is ready for copyediting, the wedding invitations are sent out, my bug count is...
Author: Eric Lippert Date: 06/06/2005
Books, Books, Books
It looks like the intricacies of higher-dimensional geometry will have to wait another week; I am...
Author: Eric Lippert Date: 05/26/2005
High-Dimensional Spaces Are Counterintuitive, Part Two
The volume of an n-cube of edge length s is easy to work out. A 2-cube has s2 units of area. A...
Author: Eric Lippert Date: 05/13/2005
High-Dimensional Spaces Are Counterintuitive, Part One
A friend of mine over in Microsoft Research pointed out to me the other day that high-dimensional...
Author: Eric Lippert Date: 05/11/2005
How To Obtain The Name Of The Client From The ASP Server
Here's a question about client side vs. server side scripting that I got recently: I want to get the...
Author: Eric Lippert Date: 05/09/2005
What is the relationship between global object enumerators, execution contexts, activation objects, variable objects and this?
UPDATE: I am WRONG WRONG WRONG. Brendan Eich, the original creator of JavaScript, was kind enough to...
Author: Eric Lippert Date: 05/04/2005
Instance-bound nested classes in JScript .NET
The other day someone asked me about a slightly odd but very useful feature in JScript.NET, and I...
Author: Eric Lippert Date: 05/02/2005
Bad Recursion Revisited
We have internal email lists for questions about programming languages. Here's one that came across...
Author: Eric Lippert Date: 04/28/2005
How Do Script Engines Implement Object Identity?
I've talked a few times in this blog about the semantics of the equality operators in various...
Author: Eric Lippert Date: 04/26/2005
Binary Files and the File System Object Do Not Mix
OK, back to scripting today. But before I get back to scripting issues, one brief correction. An...
Author: Eric Lippert Date: 04/20/2005
Desafinado, Part Five: Getting Down Without Hitting The Bottom
Back in the 1960's a guy named Shepard published a paper which described a way to create a...
Author: Eric Lippert Date: 04/18/2005
Desafinado, Part Four: Rolling Your Own WAV Files
We’ve established why every just about piano in the world -- in fact, every concert-pitched...
Author: Eric Lippert Date: 04/15/2005