This is the first of a series of articles about recursion and iteration Introduction to iterationIntroduction to recursionMutual recursion and tail recursionBlurring the linesLoop unrolling Recursion and iteration are both techniques for doing some work (or similar work) repeatedly, so that you can solve a bigger problem. This could be things like summing all the … Continue reading Recursion and iteration – an introduction to iteration
Category: LINQ
The cost of flexibility
Flexibility in software design is often seen as a good thing, but it can come at a cost. This isn’t surprising, because software engineering is a kind of engineering, and engineering involves making trade-offs among several good things. For instance, there is no “best” car, just the best car for a given situation, with a … Continue reading The cost of flexibility
Usability for programmers
I recently started learning Xamarin. I should say I’ve started learning it again, because the first time I just couldn’t get into it. This time it’s going better, although I’ve still been struck by something that’s surprisingly labour-intensive and so surprisingly annoying. This made me think about the relatively cushy world I normally experience when … Continue reading Usability for programmers
Streaming and buffering in C# and Talend
This could also be entitled: How to make your code over 3x faster*. I love LINQ in C#, and I think that I'm not the only C# programmer who does. However, there are hidden problems to watch out for, and I'll describe one now. It is based on the difference between streaming and buffering, which … Continue reading Streaming and buffering in C# and Talend