Fabulous Adventures In Coding

Eric Lippert's Erstwhile Blog

Shadowcasting in C#, Part Three

Before we get started, thanks for all the great comments to the previous couple of posts. I'll be...

Author: Eric Lippert Date: 12/19/2011

Shadowcasting in C#, Part Two

I hope the basic idea of the shadow casting algorithm is now clear. Let's start to implement the...

Author: Eric Lippert Date: 12/15/2011

Shadowcasting in C#, Part One

I've always loved the "roguelike" games; perhaps you've played some of them. Those are the games...

Author: Eric Lippert Date: 12/12/2011

Roguelike people

No technology today. Rather, some advice. I don't know if there's some sort of grifter convention...

Author: Eric Lippert Date: 12/09/2011

So many interfaces, part two

In my earlier article from April 2011 on interface implementation I noted that C# supports a...

Author: Eric Lippert Date: 12/08/2011

What's the difference? Remainder vs Modulus

Today, another episode of my ongoing series "What's the difference?" Today, what's the difference...

Author: Eric Lippert Date: 12/05/2011

Why have a stack?

Last time I discussed why it is that we have all the .NET compilers target an "intermediate...

Author: Eric Lippert Date: 11/28/2011

Why IL?

One of the earliest and most frequently-asked questions we got when we announced the Roslyn project...

Author: Eric Lippert Date: 11/18/2011

A C# Reading List

Just a couple of quick links today. First: One of the questions I get most frequently is "can you...

Author: Eric Lippert Date: 11/10/2011

Breaking changes and named arguments

Before I get into the subject of today's post, thanks so much to all of you who have given us great...

Author: Eric Lippert Date: 11/07/2011

The Roslyn Preview Is Now Available

I am super excited to announce that the Roslyn project code is now sufficiently coherent that we can...

Author: Eric Lippert Date: 10/19/2011

Insanely great

I've never owned an Apple product; I haven't written Mac software professionally since working on...

Author: Eric Lippert Date: 10/06/2011

Async articles

I am pleased to announce that MSDN Magazine is doing a special issue this month on the new...

Author: Eric Lippert Date: 10/03/2011

Keep it secret, keep it safe

A lot of people really love the idea of cryptography. To computer geeks like us there is nothing...

Author: Eric Lippert Date: 09/27/2011

Inheritance and Representation

(Note: Not to be confused with Representation and Identity) Here's a question I got this morning:...

Author: Eric Lippert Date: 09/19/2011

What is this thing you call a "type"? Part Two

Well that was entirely predictable; as I said last time, if you ask ten developers for a definition...

Author: Eric Lippert Date: 09/07/2011

What is this thing you call a "type"? Part one

(Eric is out camping; this posting is prerecorded. I'll be back in the office after Labour Day.) The...

Author: Eric Lippert Date: 08/29/2011

Funniest Hungarian Joke Ever

I'm back from my fabulous adventures in Austria, Romania and Canada and I had a fabulous time, as...

Author: Eric Lippert Date: 08/22/2011

I'm glad and sad that that's over

No computers; high technology of a different sort today. Shuttle Atlantis has safely returned to...

Author: Eric Lippert Date: 07/21/2011

Strings, immutability and persistence

Todays post is based on a question from StackOverflow; I liked it so much I figured hey, let's just...

Author: Eric Lippert Date: 07/19/2011

The curious property revealed

Today is the fifteenth anniversary of my first day of full time work here at Microsoft. Hard to...

Author: Eric Lippert Date: 07/15/2011

What curious property does this string have?

There are all kinds of interesting things in the Unicode standard. For example, the block of...

Author: Eric Lippert Date: 07/12/2011

My Buddy Neil Totally Agrees With Me

[No computer stuff today; just some fun for a Friday.] British fantasy author Neil Gaiman was in...

Author: Eric Lippert Date: 07/08/2011

Following the pattern

Here's a question I got from a user recently: The foreach loop in C# uses a pattern-based approach...

Author: Eric Lippert Date: 06/30/2011

Ref returns and ref locals

"Ref returns" are the subject of another great question from StackOverflow that I thought I might...

Author: Eric Lippert Date: 06/23/2011

Atomicity, volatility and immutability are different, part three

So what does "volatile" mean, anyway? Misinformation abounds on this subject. First off, so as to...

Author: Eric Lippert Date: 06/16/2011

Atomicity, volatility and immutability are different, part two

Last time we established that an "atomic" read or write of a variable means that in multithreaded...

Author: Eric Lippert Date: 05/31/2011

Atomicity, volatility and immutability are different, part one

I get a fair number of questions about atomicity, volatility, thread safety, immutability and the...

Author: Eric Lippert Date: 05/26/2011

Read-only and threadsafe are different

Here's a common problem that we face in the compiler realm all the time: you want to make an...

Author: Eric Lippert Date: 05/23/2011

Optional argument corner cases, part four

(This is the fourth and final part of a series on the corner cases of optional arguments in C# 4;...

Author: Eric Lippert Date: 05/19/2011

Optional argument corner cases, part three

(This is part three of a series on the corner cases of optional arguments in C# 4; part two is here....

Author: Eric Lippert Date: 05/16/2011

Optional argument corner cases, part two

(This is part two of a series on the corner cases of optional arguments in C# 4. Part one is here....

Author: Eric Lippert Date: 05/12/2011

Optional argument corner cases, part one

(This is part one of a series on the corner cases of optional arguments in C# 4. Part two is here.)...

Author: Eric Lippert Date: 05/09/2011

Maybe there's something wrong with the universe, but probably not

No kidding, I was just walking down a hallway in my building when I overhead the following quite...

Author: Eric Lippert Date: 04/25/2011

Uses and misuses of implicit typing

One of the most controversial features we've ever added was implicitly typed local variables, aka...

Author: Eric Lippert Date: 04/20/2011

Refreshing the Async CTP

Good morning everyone! I am pleased to tell you that the C# and VB teams are announcing a "refresh"...

Author: Eric Lippert Date: 04/13/2011

Happy birthday Channel 9!

Good heavens I can't believe it's been two years since I wished Channel 9 a happy fifth birthday....

Author: Eric Lippert Date: 04/06/2011

So many interfaces!

Today, another question from StackOverflow, and again, presented as a dialogue as is my wont. The...

Author: Eric Lippert Date: 04/04/2011

Compound Assignment, Part Two

Last time I discussed how the compound assignment operators of the form “x op= y” have...

Author: Eric Lippert Date: 04/01/2011

Dot NET Rocks!

We interrupt our series on compound assignment operators with a quick note to say check out my...

Author: Eric Lippert Date: 03/30/2011

Compound Assignment, Part One

When people try to explain the compound assignment operators += –= *= /= %= <<=...

Author: Eric Lippert Date: 03/29/2011

Implementing the virtual method pattern in C#, Part Three

(This is part three of a three-part series; part one is here; part two is here.) Last time we saw...

Author: Eric Lippert Date: 03/24/2011

Implementing the virtual method pattern in C#, Part Two

(This is part two of a three-part series; part one is here; part three is here.) So far we've gotten...

Author: Eric Lippert Date: 03/21/2011

Implementing the virtual method pattern in C#, Part One

(This is part one of a three-part series; part two is here.) If you've been in this business for any...

Author: Eric Lippert Date: 03/17/2011

To box or not to box, that is the question

Suppose you have an immutable value type that is also disposable. Perhaps it represents some sort of...

Author: Eric Lippert Date: 03/14/2011

References and Pointers, Part Two

Here's a handy type I whipped up when I was translating some complex pointer-manipulation code from...

Author: Eric Lippert Date: 03/10/2011

References and Pointers, Part One

Writing code in C# is really all about the programmatic manipulation of values. A value is either of...

Author: Eric Lippert Date: 03/07/2011

Danger, Will Robinson!

As long-time readers of this blog know, I am often asked why a particular hunk of bad-smelling code...

Author: Eric Lippert Date: 03/03/2011

Guidelines and rules for GetHashCode

"The code is more what you'd call guidelines than actual rules" - truer words were never spoken....

Author: Eric Lippert Date: 02/28/2011

Never Say Never, Part Two

Whether we have a "never" return type or not, we need to be able to determine when the end point of...

Author: Eric Lippert Date: 02/24/2011

<Previous Next>