Musings on Software Testing

It was spring 2003, I had just finished a weekend camping in the southern Arizona desert.  I was dusty and physically exhausted from hours of playing paintball.  For those who have never been in those parts, imagine long straight roads with dry sage brush, painful cactus, and jagged mountains.  I needed a book to pass…

16

All About Iterators

Design patterns have been all of the rage for a number of years now.  We have design patterns for concurrency, user interfaces, data access, object creation, and so many other things.  The seminal work on the topic is the Gang of Four‘s book, Design Patterns.  When used appropriately they are a fantastic way to codify…

17

Performance Engineering

Recently, many people have asked me about the performance of Linq.  The questions have ranged from the broad, “How can I analyze the performance of code using Linq?”, to the very specific, “Why is the performance of this code sample not what I expected?” I want to address these questions.  So before I dive into some…

8

Linq to ASCII Art

Last night I was searching for an audio version of Painters and Hackers by Paul Graham.  Pretty soon I had completely forgotten about the book and found myself reading the Wikipedia article about Hackers.  Isn’t Internet search great? Of all of the things in the article, the one thing that captured my attention was the…

44

How Linq to Objects Queries Work

If you have ever tried to step through a Linq to Objects query in the debugger, you may have been mildly surprised at the results.  It may have seemed as if the program had a mind of its own and ran certain expressions when it wanted to and not when it was supposed to.  Be…

12

Reading and Writing Queries

Now that we have discussed some of the underpinnings of query expressions, we can turn our attention to how to use them. As has already discussed, most people who see query expressions immediately think of SQL and often even mistake query expressions for embedded SQL.  While it is true that there is a similarity in the…

3

Thus Quoth the Humble Programmer

I love Scheme!  It is such a beautiful language.  I was first introduced to it during college.  At that time, I thought it was an interesting language but I didn’t see the power of the language until later.  That moment came when I experienced reading The Structure and Interpretation of Computer Programs.  It was a…

6

Transparent Identifiers

My last post described in detail how query expressions in C# are translated, but I have a confession to make.  I did a little bit of hand waving through one part of the translation rules.  The astute reader (whomever that is, whenever I read such things I always wonder, “Am I that astute reader?”) may…

9

Comprehending Comprehensions

Not long ago, I was reading through some articles posted on programming.reddit.com when I came across an article claiming that C# is trying to be a dynamic language.  One user posted a comment that mentioned that C# 3.0 included among other things “embedded SQL”.  Unfortunately, it seems that there is still some confusion about what…

7

Types of confusion

  When I began programming in my early teens, I was very excited to learn about programming and also excited to become a “real” programmer.  I remember picking up a book from the library that purported to teach what real programmers were like.  I absorbed the material and enjoyed every page.  I can only remember a handful…

15