The Curious Engineer

All blogs / C# / .NET

Fabulous Adventures In Coding

learn.microsoft.com/en-us/archive/blogs/ericlippert

Eric Lippert's Erstwhile Blog

C# / .NETCompilersMathMicrosoft blogsMSDN archive

’05’10’15’20’25
Posts
642 from 1 Sep 2003 to 25 Sep 2024
Posting
archived, read-only
Kind
personal blog
Feed
https://learn.microsoft.com/en-us/archive/blogs/ericlippert/feed.xml

2024 1

  1. Why is deriving a public class from an internal class illegal?

2012 42

  1. A new fabulous adventure
  2. Shadowcasting in C#, Part Four
  3. Shadowcasting in C#, Part Five
  4. Dynamic contagion, part one
  5. Shadowcasting in C#, Part Six
  6. He's So Dreamy
  7. High Altitude
  8. Every public change is a breaking change
  9. What is the defining characteristic of a local variable?
  10. Anonymous types unify within an assembly, Part One
  11. Anonymous Types Unify Within An Assembly, Part Two
  12. Bad Metaphors
  13. What is "binding" and what makes it late?
  14. Generating Random Non-Uniform Data In C#
  15. A Simple Puzzle
  16. The Solution To The Simple Puzzle
  17. The C# 5.0 beta release is now available
  18. Why are local variables definitely assigned in unreachable statements?
  19. Why not automatically infer constraints?
  20. null is not false
  21. null is not false, part two
  22. A brief digression
  23. null is not false, part three
  24. GUID guide, part two
  25. GUID guide, part three
  26. Announcing Microsoft Roslyn June 2012 CTP
  27. Persistence, Facades and Roslyn's Red-Green Trees
  28. Implementation-defined behaviour
  29. Eric Rambles On About C#, Again
  30. Foolish consistency is foolish
  31. The Best Advice I Ever Got
  32. When is a cast not a cast?
  33. Should C# warn on null dereference?
  34. Wackiness ensues
  35. An "is" operator puzzle, part one
  36. Fabulous Adventures In Casting
  37. An "is" operator puzzle, part two
  38. Static analysis of "is"
  39. Roslyn September 2012 CTP is now available
  40. How do we ensure that method type inference terminates?
  41. Does Not Compute
  42. Is C# a strongly typed or a weakly typed language?

2011 55

  1. A method group of one
  2. Dynamic contagion, part two
  3. It's still essential!
  4. Shadowcasting in C#, Part Two
  5. Roguelike people
  6. So many interfaces, part two
  7. What's the difference? Remainder vs Modulus
  8. Why have a stack?
  9. Why IL?
  10. A C# Reading List
  11. Breaking changes and named arguments
  12. The Roslyn Preview Is Now Available
  13. Insanely great
  14. Async articles
  15. Keep it secret, keep it safe
  16. Inheritance and Representation
  17. What is this thing you call a "type"? Part Two
  18. What is this thing you call a "type"? Part one
  19. I'm glad and sad that that's over
  20. Strings, immutability and persistence
  21. The curious property revealed
  22. What curious property does this string have?
  23. My Buddy Neil Totally Agrees With Me
  24. Ref returns and ref locals
  25. Atomicity, volatility and immutability are different, part one
  26. Read-only and threadsafe are different
  27. Optional argument corner cases, part four
  28. Optional argument corner cases, part three
  29. Optional argument corner cases, part two
  30. Optional argument corner cases, part one
  31. Uses and misuses of implicit typing
  32. Refreshing the Async CTP
  33. Happy birthday Channel 9!
  34. So many interfaces!
  35. Compound Assignment, Part Two
  36. Dot NET Rocks!
  37. Compound Assignment, Part One
  38. Implementing the virtual method pattern in C#, Part Three
  39. Implementing the virtual method pattern in C#, Part One
  40. To box or not to box, that is the question
  41. References and Pointers, Part One
  42. Guidelines and rules for GetHashCode
  43. Never Say Never, Part One
  44. Looking inside a double
  45. What would Feynman do?
  46. Optional arguments on both ends
  47. Strange, but legal
  48. Curiouser and curiouser
  49. Spot the defect: Bad comparisons, part four
  50. Spot the defect: Bad comparisons, part three
  51. Spot the defect: Bad comparisons, part two
  52. Spot the defect: Bad comparisons, part one
  53. Not as easy as it looks, Part Two
  54. Not as easy as it looks
  55. Enormous Explosions

2010 71

  1. Why are anonymous types generic?
  2. All your base do not belong to you
  3. Asynchrony in C# 5, Part Seven: Exceptions
  4. Asynchrony in C# 5 Part Six: Whither async?
  5. Asynchrony in C# 5 Part Five: Too many tasks
  6. Asynchrony in C# 5, Part Three: Composition
  7. Asynchronous Programming in C# 5.0 part two: Whence await?
  8. Asynchrony in C# 5, Part One
  9. Continuation Passing Style Revisited Part Five: CPS and Asynchrony
  10. Continuation Passing Style Revisited Part Three: Musings about coroutines
  11. Continuation Passing Style Revisited Part Two: Handwaving about control flow
  12. Eric Lippert, from Microsoft?
  13. Debunking another myth about value types
  14. No backtracking, Part One
  15. The Truth About Value Types
  16. Ambiguous Optional Parentheses, Part Three
  17. Is is as or is as is?
  18. Teach Yourself C# In... how long?
  19. Eric's solution for old school tree dumping
  20. Old school tree display
  21. Graph Colouring, Part Five
  22. Graph Colouring, Part Four
  23. Graph Colouring with Simple Backtracking, Part Three
  24. Graph Colouring With Simple Backtracking, Part Two
  25. Graph Colouring With Simple Backtracking, Part One
  26. Spoiler Alert
  27. Murky Research
  28. Computing a Cartesian Product with LINQ
  29. Hide and seek
  30. Don't repeat yourself; consts are already static
  31. Live from New Orleans
  32. Better late than never
  33. Cast operators do not obey the distributive law
  34. More Boring Metablogging
  35. Every Program There Is, Part Nine
  36. Every Program There Is, Part Eight
  37. Every Program There Is, Part Seven
  38. Every Program There Is, Part Six
  39. Every Program There Is, Part Five
  40. Every Program There Is, Part Four
  41. Every Program There Is, Part Three
  42. Every Program There Is, Part Two
  43. Every Program There Is, Part One
  44. Every Tree There Is
  45. Every Binary Tree There Is
  46. It's Essential!
  47. Ignoring parentheses
  48. Precision and accuracy of DateTime
  49. Turning a bug into a feature
  50. Some Last-Minute New C# 4.0 Features
  51. Knights, Knaves, Protected and Internal
  52. Socks, birthdays and hash collisions
  53. Do not name a class the same as its namespace, Part Four
  54. Do not name a class the same as its namespace, Part Three
  55. Do not name a class the same as its namespace, Part Two
  56. Too much reuse
  57. Attracting Talent
  58. Careful with that axe, part two: What about exceptions?
  59. Careful with that axe, part one: Should I specify a timeout?
  60. What’s the difference between ternary and tertiary?
  61. Chaining simple assignments is not so simple
  62. Making the code read like the spec
  63. How Many Passes?
  64. Style follows semantics
  65. Calling constructors in arbitrary places
  66. Why are unused using directives not a warning?
  67. What’s the difference between a destructor and a finalizer?
  68. A Definite Assignment Anomaly
  69. Why Can't I Access A Protected Member From A Derived Class? Part Six
  70. Continuing to an outer loop
  71. Is there such a thing as too much precision?

2009 75

  1. Constraints are not part of the signature
  2. What's the difference between covariance and assignment compatibility?
  3. The Purpose, Revealed
  4. Always write a spec, Part Two
  5. Always write a spec, part one
  6. Closing over the loop variable considered harmful
  7. Simple names are not so simple, Part Two, plus, volcanoes and fried foods
  8. Simple names are not so simple
  9. I have a Fit, but a lack of Focus.
  10. Begging the question
  11. What is this thing you call "thread safe"?
  12. As Timeless As Infinity
  13. Absence of evidence is not evidence of absence
  14. What's the difference between "as" and "cast" operators?
  15. Why No Extension Properties?
  16. Why does char convert implicitly to ushort but not vice versa?
  17. String interning and String.Empty
  18. Why is covariance of value-typed arrays inconsistent?
  19. Why do ref and out parameters not allow type variation?
  20. West of House
  21. What's the difference between a partial method and a partial class?
  22. What's the difference between conditional compilation and the conditional attribute?
  23. Sorry about the CAPTCHA
  24. What's the Difference, Part Five: certificate signing vs strong naming
  25. What's the Difference, Part Four: into vs into
  26. What's the Difference? Part Three: fixed vs. fixed
  27. Iterator Blocks Part Seven: Why no anonymous iterators?
  28. Queueing Theory In Action, plus, frogs
  29. Four switch oddities
  30. Precedence vs order, redux
  31. Not everything derives from object
  32. What's The Difference, Part Two: Scope vs Declaration Space vs Lifetime
  33. What's the difference, part one: Generics are not templates
  34. Iterator Blocks, Part Six: Why no unsafe code?
  35. Iterator Blocks, Part Five: Push vs Pull
  36. Iterator Blocks, Part Two: Why no ref or out parameters?
  37. Iterator Blocks, Part One
  38. Color Color
  39. The correct answer is "no"
  40. The void is invariant
  41. Iterators at the Summer Games
  42. Mmm, Curry
  43. Why Doesn't C# Implement "Top Level" Methods?
  44. Use your legs, not your back
  45. Making it easier
  46. What does the optimize switch do?
  47. Fabulous Adventures In Russian
  48. Alas, Smith and Jones
  49. Bug Psychology
  50. When Five Hundred Posts You Reach
  51. What Would Tufte Do?
  52. Null Is Not Empty
  53. Reserved and Contextual Keywords
  54. Zip Me Up
  55. The Stack Is An Implementation Detail, Part One
  56. Five-Dollar Words For Programmers, Part Five: Reification
  57. Comma Quibbling
  58. Restating the problem
  59. Many Happy Returns
  60. Good Names
  61. A Book By Any Other Name Would Smell As Sweet
  62. Reposting Information
  63. Five-Dollar Words For Programmers, Part Four: Boustrophedonic
  64. Five-Dollar Words For Programmers, Part Three: Homoiconic
  65. Loops are gotos
  66. Locks and exceptions do not mix
  67. What are the horns for?
  68. References are not addresses
  69. Properties vs. Attributes
  70. Long division
  71. Why no var on fields?
  72. Reading Declarations
  73. Things That Make You Go Hmmm
  74. Future-Proofing A Design
  75. Automatic vs Explicit Properties

2008 34

  1. The Future of C#, Part Four: Yet More Video
  2. The Future of C#, Part Three: On video, plus the dead-trees edition
  3. The Future of C#, Part One
  4. Boring Metablogging, Part Two
  5. Preventing third-party derivation, part two
  6. Preventing third-party derivation, part one
  7. Arrays considered somewhat harmful
  8. Vexing exceptions
  9. High maintenance
  10. Tasty Beverages
  11. What To Do When The Source Control Server Is Down
  12. A Face Made For Email, Part Four
  13. Method Type Inference Changes, Part One
  14. Method Type Inference Changes, Part Zero
  15. Precedence vs Associativity vs Order
  16. Method Hiding Apologia
  17. A Generic Constraint Question
  18. Reading Code Over the Telephone
  19. Mutating Readonly Structs
  20. Computers are dumb
  21. Protected Semantics, Part Five: More on immutability
  22. Yet More Book News
  23. Why Can't I Access A Protected Member From A Derived Class, Part Three
  24. Why Can't I Access A Protected Member From A Derived Class, Part Two: Why Can I?
  25. Translating intentions and mechanisms
  26. How to not get a question answered
  27. Why Do Initializers Run In The Opposite Order As Constructors? Part Two
  28. Why Do Initializers Run In The Opposite Order As Constructors? Part One
  29. deque.cs
  30. Immutability in C# Part 10: A double-ended queue
  31. Immutability in C# Part Nine: Academic? Plus my AVL tree implementation
  32. Immutability in C# Part Eight: Even More On Binary Trees
  33. Recent Book News, Part Two
  34. Recent Book News, Part One

2007 49

  1. He's Just Sayin'...
  2. Immutability in C# Part Five: LOLZ!
  3. Immutability in C# Part Four: An Immutable Queue
  4. Immutability in C# Part Two: A Simple Immutable Stack
  5. Immutability in C# Part One: Kinds of Immutability
  6. Covariance and Contravariance in C#, Part Ten: Dealing With Ambiguity
  7. A Couple Links
  8. C# 3.0 Return Type Inference Does Not Work On Method Groups
  9. Covariance and Contravariance in C#, Part Nine: Breaking Changes
  10. Covariance and Contravariance in C#, Part Eight: Syntax Options
  11. Covariance and Contravariance in C#, Part Six: Interface Variance
  12. Covariance and Contravariance In C#, Part Five: Higher Order Functions Hurt My Brain
  13. Covariance and Contravariance in C#, Part Four: Real Delegate Variance
  14. Covariance and Contravariance in C#, Part Three: Method Group Conversion Variance
  15. Covariance and Contravariance in C#, Part Two: Array Covariance
  16. Covariance and Contravariance in C#, Part One
  17. Path Finding Using A* in C# 3.0, Part Four
  18. Path Finding Using A* in C# 3.0, Part Two
  19. Psychic Debugging, Part Two
  20. Psychic Debugging, Part One
  21. Future Breaking Changes, Part Three
  22. Future Breaking Changes, Part Two
  23. Future Breaking Changes, Part One
  24. Talking About The Weather, Part One
  25. An Inheritance Puzzle, Part Two
  26. An Inheritance Puzzle, Part One
  27. What exactly does 'lifted' mean?
  28. Inside or Outside?
  29. Calling static methods on type parameters is illegal, part three
  30. Calling static methods on type parameters is illegal, part one
  31. Bad Names
  32. FYI: C# and VB Closures are per-scope
  33. Should we produce warnings for unused/uninitialized internal fields?
  34. Why are overloaded operators always static in C#?
  35. Even More Conversion Trivia, Part Two
  36. Even More Conversion Trivia
  37. Write-only variables considered harmful? Or beneficial?
  38. Chained user-defined explicit conversions in C#, Part Three
  39. Chained user-defined explicit conversions in C#, Part Two
  40. Chained user-defined explicit conversions in C#
  41. News flash: Instances of anonymous types will be immutable
  42. Practice thinking like a compiler tester, part three
  43. Practice thinking like a compiler tester, part two
  44. Practice thinking like a compiler tester
  45. Lambda Expressions vs. Anonymous Methods, Part Five
  46. Free Food! And Meet The Compiler Guy! And Win an XBOX 360!
  47. Lambda Expressions vs. Anonymous Methods, Part Three
  48. Lambda Expressions vs. Anonymous Methods, Part One
  49. The horror! The horror!

2006 22

  1. Every Number Is Special In Its Own Special Way
  2. A Face Made For Email, Part Three
  3. How do I mitigate a SQL injection vuln?
  4. "Boolean or" or "boolean or"?
  5. Do Not Call IsBadFooPtr, Indeed
  6. Why does a recursive lambda cause a definite assignment error?
  7. Type inference woes, part four
  8. What Are The Semantics Of Multiple Implicitly Typed Declarations? Part Two
  9. What Are The Semantics Of Multiple Implicitly Typed Declarations? Part One
  10. Standard Generic Delegate Types, Part Two
  11. Standard Generic Delegate Types
  12. Type inference woes, part three
  13. Type inference woes, part two
  14. Type inference woes, part one
  15. Using undefined variables in JScript
  16. Visual Studio Tools For Office: Using Visual Basic 2005 with Excel, Work, Outlook and InfoPath
  17. Writing Code Isn't Rocket Science (It's Worse Than That)
  18. Odious ambiguous overloads, part two
  19. Odious ambiguous overloads, part one
  20. Delegates, Lambdas, Type Inference and Long Playing Records
  21. The Root Of All Evil, Part One
  22. Back in the saddle

2005 78

  1. Regular Expressions From Scratch, Part Eleven: Eliminating Multi-Symbol Rules
  2. Regular Expressions From Scratch, Part Ten: Magic!
  3. Regular Expressions From Scratch, Part Nine: A Dream of a Machine
  4. Regular Expressions From Scratch, Part Eight: The Diagonal Argument
  5. Regular Expressions From Scratch, Part Seven: Listing All Members Of A Language In Order
  6. Regular Expressions From Scratch, Part Six: The Insanely Clever Bit
  7. Regular Expressions From Scratch, Part Five: The Regular Expression Language
  8. Regular Expressions From Scratch, Part Four: The Kleene Closure of a Language
  9. Regular Expressions From Scratch, Part Three: Concatenation
  10. Regular Expressions From Scratch, Part Two: Some Examples of Languages
  11. Why Can't I Access A Protected Member From A Derived Class?
  12. Five-Dollar Words for Programmers, Part Two: Orthogonal
  13. Five-Dollar Words for Programmers, Part One: Idempotence
  14. Do not use string hashes for security purposes
  15. FYI, C# 2.0 Has A Breaking Change in Enum Subtraction
  16. Another C#/LINQ chat, Thursday 1300h Pacific Time
  17. Resolving ambiguity in C# param passing
  18. Checking For Script Syntax Errors, This Time With Code
  19. Checking For Script Syntax Errors
  20. C# 3.0 is still statically typed, honest!
  21. Delightful, delicious, DLINQ
  22. Implementing Event Handling, Part One
  23. Book Signing at the PDC
  24. VBScript Default Property Semantics
  25. Caching Dispatch Identifiers Is A Bad Idea
  26. Through the Looking Glass
  27. Fabulous Adventures in C# and VSTO
  28. Recursion, Part Six: Making CPS Work
  29. Recursion, Part Five: More on CPS
  30. Recursion, Part Three: Building a Dispatch Engine
  31. Recursion, Part One: Recursive Data Structures and Functions
  32. More on full qualification, this time in C#
  33. Scripting Type Library Constant Injection Performance Characteristics, Part Three
  34. The Answer To Last Week's Puzzler
  35. A Puzzler
  36. Scripting Type Library Constant Injection Performance Characteristics, Part Two
  37. Scripting Type Library Constant Injection Performance Characteristics, Part One
  38. High-Dimensional Spaces Are Counterintuitive, Part Five
  39. Chronological Index
  40. High-Dimensional Spaces Are Counterintuitive, Part Four
  41. I'm So Prolix
  42. High-Dimensional Spaces Are Counterintuitive, Part Three
  43. Books, Books, Books
  44. High-Dimensional Spaces Are Counterintuitive, Part Two
  45. High-Dimensional Spaces Are Counterintuitive, Part One
  46. How To Obtain The Name Of The Client From The ASP Server
  47. What is the relationship between global object enumerators, execution contexts, activation objects, variable objects and this?
  48. Instance-bound nested classes in JScript .NET
  49. Bad Recursion Revisited
  50. How Do Script Engines Implement Object Identity?
  51. Binary Files and the File System Object Do Not Mix
  52. Desafinado, Part Five: Getting Down Without Hitting The Bottom
  53. Desafinado, Part Four: Rolling Your Own WAV Files
  54. Desafinado, Part Three: Too Many Fifths
  55. VBScript Quiz Answers, Parts Eleven and Twelve
  56. A Face Made For Email, Part Two
  57. VBScript Quiz Answers, Part Eight
  58. VBScript Quiz Answers, Part Six
  59. VBScript Quiz Answers, Part Five
  60. VBScript Quiz Answers, Part Four, Plus, More Trivia!
  61. VBScript Quiz Answers, Part Three, and RegEx Memory Leak
  62. VBScript Quiz Answers, Part Two
  63. VBScript Quiz Answers, Part One
  64. Why does WScript.ConnectObject not always work?
  65. Win Fabulous Prizes!
  66. You Want Salt With That? Part Four: Challenge-Response
  67. You Want Salt With That? Part Three: Salt The Hash
  68. You Want Salt With That? Part Two: We Need A Hash
  69. You Want Salt With That? Part One: Security vs Obscurity
  70. Fun With Floating Point Arithmetic, Part Six
  71. That's a Big Transistor
  72. Fun with Floating Point Arithmetic, Part Four
  73. Fun With Floating Point Arithmetic, Part Three
  74. Straight from the source
  75. Floating Point And Benford's Law, Part Two
  76. Benford's Law
  77. Still Scratching The Surface
  78. Floating Point Arithmetic, Part One

2004 134

  1. T4: VBScript and the Terminator
  2. Whidbey Island And Bagel Mathematics
  3. Ologiology
  4. VBScript Constants Are Not Hoisted
  5. Why do built-in JScript functions not appear in the typeinfo?
  6. Integer Arithmetic in VBScript, Part Two
  7. Bouncing Zero Bugs, Together
  8. Democracy in Action
  9. The National Coin Flipping League Championship Series
  10. Google Desktop On The Cheap Part One: Nope, That Doesn't Work
  11. Google Desktop On The Cheap, Part Zero
  12. Wherefore IDispatchEx?
  13. Anthimeria weirds languages
  14. Breadth is sometimes better than depth
  15. Use vs. Mention in JScript Doesn't Come For Free
  16. JScript, DNA, and Mad Cow Disease
  17. The Postmodern Gumballs
  18. Thirty Years of Backwards Compatibility
  19. Hostile Exception Filter vs Benign Assert: Who will win?
  20. "Finally" Does Not Mean "Immediately"
  21. Error Handling in VBScript, Part Three
  22. Error Handling In VBScript, Part Two
  23. Error Handling in VBScript, Part One
  24. The Attribute Of Manliness
  25. Solution to Spot the Defect Part Two
  26. Spot the Defect, Part Two
  27. Math is Everywhere
  28. JScript .NET Type Coercion Semantics, Part Four: Coercion at last
  29. JScript .NET Type Coercion Semantics, Part Three: Assignability
  30. JScript .NET Type Coercion Semantics, Part Two: Promotability
  31. JScript .NET Type Coercion Semantics
  32. Typing Hard Can Trip You Up
  33. Pop Quiz
  34. VSTO Web Cast On Tuesday
  35. Aargh! Part Eight, plus Boring Metablogging
  36. Recursion and Dynamic Programming
  37. Why no ++?
  38. Not Logical Is VBScript
  39. Eric's Complete Guide To Type Signatures Of Scriptable Object Models
  40. What I Did On My Summer Vacation
  41. Going Dark
  42. Some Quick Notes On Variable Scoping
  43. Reading Code Is Hard, Part Two
  44. Reading Code Is Hard
  45. A JScript .NET Design Donnybrook, Part Two
  46. A JScript .NET Design Donnybrook
  47. Aargh! Part Seven
  48. Rarefied Heights Part Two, Plus Some Random Short Takes
  49. What's the Difference between WScript.CreateObject, Server.CreateObject and CreateObject?
  50. JScript .NET Classes Are Serializable -- Surprise!
  51. You Can't Convert Data Structures To Strings In VBScript Without Breaking A Few Eggs
  52. Revisionist History
  53. Original: When Are You Required To Set Objects To Nothing?
  54. Results Of The Fibonacci Challenge Are In
  55. Dude, Where's My Asymptotic Order Analysis?
  56. The Stygian Depths Of Hacked-Together Scripts
  57. The Rarefied Heights of Mathematical Purity
  58. Some LΘ℃αℓization Questions
  59. Aaargh, Part Six: One More Thing About Comments
  60. Aargh, Part Five: Comment Rot
  61. SimpleScript Part Seven: Binder Skeleton
  62. invoke.h
  63. invoke.cpp
  64. binder.h
  65. When Are You Required To Set Objects To Nothing?
  66. SimpleScript Part Five: Named Items and Modules
  67. You Are Thrilled To Read Today's Blog Entry
  68. nameditemlist.h
  69. nameditemlist.cpp
  70. mutex.h
  71. mutex.cpp
  72. Hash h
  73. hash.cpp
  74. Runtime Typing in VBScript
  75. Quotable Quotations, Part Two
  76. SimpleScript Part Four: Finite State Machines and Script Engines
  77. A Face Made For Email
  78. SimpleScript Part Three: Engine Skeleton
  79. engine.h
  80. engine.cpp
  81. SimpleScript Part Two: Class Factories Are Also Boring
  82. Gretchen and Zoe are cool
  83. dllmain.h
  84. classfac.h
  85. classfac.cpp
  86. dllmain.cpp
  87. assert.cpp
  88. guids.cpp
  89. assert.h
  90. guids.h
  91. headers.h
  92. SimpleScript.def
  93. Aargh, Part Four: There is no part four
  94. Strolling Around VSLive
  95. Aaargh! Part Three
  96. I'm A Travelin' Man
  97. Revenge of The Cycle Detector
  98. School days, part two
  99. School Days, School Days
  100. Attack of the Undead Cycle Detector
  101. I'm Putting On My Top Hat, Tying Up My White Tie, Brushing Out My Tails -- In That Order
  102. Things in my eyes!
  103. Denne funksjonen er fullstendig ubrukelig!
  104. Aargh, Part One: A Pirate Walks Into A Bar…
  105. OOP = Obviously Oxmoronic Posting
  106. Cargo Cultism, Part Four: Other Disciplines
  107. Metaprogramming, Toast and the Future of Development Tools
  108. Cargo Cultists, Part Two
  109. Mooooore's Laaaaaaw!
  110. WSF Files, Pedagogic Code, and Lippert's Paradox
  111. Table Driven Programming
  112. Randomness
  113. VBScript and JScript Don't Mix, at least in ASP
  114. How Does Script Debugging Work Internally?
  115. Quotable Quotations
  116. True Confessions of a Language Developer
  117. Unicode output and the Windows Script Host
  118. JScript, IE Behaviours and instanceof Redux
  119. Laugh While You Can, Monkey Boy!
  120. Eval is Evil, Part Three
  121. Script And IE Security Part Eight: IDispatchEx
  122. Why Are So Many Of The Framework Classes Sealed?
  123. Script And IE Security Part Seven: Other Stuff
  124. The Triumphant Return of Clinick's Clinic
  125. Script In IE Security Part Six: Creating Objects With State
  126. Script In IE Security Part Five: Creating Objects With The IE Security Manager
  127. Script And IE Security Part Four: Creating Objects Without The IE Security Manager
  128. Script And IE Security Part Three: Some Object Creation Techniques Are Explicitly Forbidden
  129. Can you fix my computer?
  130. Script And IE Security Part Two: Digging Deeper
  131. Welcome to blogs.msdn.com.
  132. Code Security Part One: Code Security and IE
  133. VBScript is to VB as Cheese is to...?
  134. Virtual Methods and Brittle Base Classes

2003 81

  1. Multi-cast delegates the evil way
  2. Once More Into The Breach
  3. Heads up: Fabulous Adventures will be moving
  4. The JScript Type System Part Eight: The Last Blog Entry About Arrays, I Promise
  5. A Grammatical Aside
  6. Six out of ten ain't bad
  7. Speeding Can Slow You Down
  8. The JScript Type System Part Seven: Yeah, you've probably guessed that I wrote the array stuff
  9. The JScript Type System, Part Six: Even more on arrays in JScript .NET
  10. The JScript Type System, Part Five: More On Arrays In JScript .NET
  11. The JScript Type System, Part Four: JScript .NET Arrays
  12. The JScript Type System, Part Two: Prototypes and constructors
  13. The JScript Type System, Part One
  14. Eval is Evil, Part Two
  15. A Parable
  16. Eval is Evil, Part One
  17. Functions are not frames
  18. Global State On Servers Considered Harmful
  19. How many Microsoft employees does it take to change a lightbulb?
  20. JScript Goes All To Pieces
  21. The Most Boring Story Ever
  22. Compatibility vs. Performance
  23. Michael's Security Blog is online
  24. Attention passengers: Flight 0703 is also known as Flight 451
  25. Making Sense of HRESULTS
  26. Constant Folding and Partial Evaluation
  27. I'm not stringing you along, honest
  28. The Malware of Ultimate Destruction
  29. How Bad Is Good Enough?
  30. Long jumps considered way more harmful than exceptions
  31. Dead Trees vs. Bits
  32. Designing JScript .NET
  33. Digging A Security Hole All The Way To China
  34. Wrox is dead, long live Wrox
  35. It Never Leaks But It Pours
  36. What Everyone Should Know About Character Encoding
  37. How Do I Script A Non-Default Dispatch?
  38. Why Is There No #Include?
  39. WSC vs WSH
  40. Why Can't I Create The WScript Object?
  41. Spot the Defect!
  42. I can't make my script do nothing!
  43. Eric's Blog for January 279th, 2003
  44. Let's Get Explicit!
  45. For-in Revisited
  46. A Little More on Nothing
  47. A Whole Lot Of Nothing
  48. In, Out, In-Out, Make Up Your Mind Already
  49. What could numeric rounding possibly have to do with MS-DOS?
  50. Bankers' Rounding
  51. More on Certificates and Trust Decisions
  52. Evil Security Twin Powers... Activate!
  53. I'm a traveling man, don't tie me down
  54. Error Messages Considered Harmful
  55. They call me "LoadPicture Lippert"
  56. JScript eval redux, and some spec diving
  57. Running Me Ragged
  58. "For Each" vs. "for in"
  59. JScript and VBScript Arrays
  60. Why does VBScript have Execute, ExecuteGlobal and Eval?
  61. Arrrrr! Cap'n Eric be learnin' about threadin' the harrrrd way
  62. Hard Core Denotational Semantics
  63. Why is it a bad idea to put script objects in Session scope?
  64. How does Active Server Pages use the script engines?
  65. What are threading models, and what threading model do the script engines use?
  66. How Do The Script Garbage Collectors Work?
  67. What are closures?
  68. Are JScript strings passed by reference?
  69. Why do the script engines not cache dispatch identifiers?
  70. What Are "Anonymous Functions" In JScript?
  71. Are JScript strings passed by value or by reference?
  72. Smart Pointers Are Too Smart
  73. Bad Hungarian
  74. Eric's Complete Guide To VT_DATE
  75. What are the VBScript reference semantics for object members?
  76. More On ByRef vs ByVal
  77. What do you mean "cannot use parentheses?"
  78. Why does JScript have rounding errors?
  79. What's Up With Hungarian Notation?
  80. Eric's Complete Guide To BSTR Semantics
  81. Fabulous Adventures!