Being Cellfish
Stuff I wished I've found in some blog (and sometimes did)
What has happened?
I wrote this almost a year ago the day before my last day at Microsoft. You should really head over...
Date: 03/31/2015
When to use Tuples in C#
I've seen people use the Tuple class in C# code and I've even done it myself once. And I didn't like...
Date: 03/25/2014
Tail Recursion and C#
Tail recursion is a powerful optimization since it typically improves both execution time and memory...
Date: 03/18/2014
Logical task combinators
When I had to use Erlang for the very first time it was a brand new language and I was in collage....
Date: 03/11/2014
Hashtable vs ConcurrentDictionary
Historically I've seen the Hashtable be favored over ConcurrentDictionary with the assumption that...
Date: 03/04/2014
Circuit Breaker Pattern
Start here to learn more about different ways to implement the circuit breaker pattern!
Date: 02/25/2014
Lunch Dictator or Tweeting from PHP
A while back I needed a way to simply post tweets from PHP. To my disappointment most examples I...
Date: 12/24/2013
429 vs 503
A while back I was involved in a discussion around using 429 instead of 503 in order to tell clients...
Date: 12/17/2013
Abstracting time
Probably one of the most common tight couplings I see is a dependency on system time, i.e. using...
Date: 12/10/2013
Xbox One Launch Day
So what is it like to launch Xbox One? Given that it started 3am local time when New Zeeland first...
Date: 11/21/2013
What you really need to know when authoring NuGet packages
I have noticed that most articles on how to author NuGet packages focus on the practical part; which...
Date: 11/12/2013
My worst stand-up(s)
Reading this story about the worst daily scrum ever made me think about my own experience. An both...
Date: 11/05/2013
What is technical debt really about?
When you think about the reasons for reducing technical debt; what do your think about? Read more...
Date: 10/29/2013
Dependency injection with IObservable
Just when I started working on my little toolbox I read this series on dependency injection for...
Date: 10/22/2013
Unexpected Progress
When I was working on the WithProgress extensions I learned something about Progress<T> that I...
Date: 10/15/2013
Evolution of a hand rolled fake - part 5
As you may know if you followed my blog before; I like to roll my own fake. For interfaces it is...
Date: 10/08/2013
Task-based Asynchronous pattern - for your pleasure
If you liked my old series of articles covering TAP and especially the different extension methods I...
Date: 10/01/2013
The 7th impossible thing - Tests for tests
A couple of weeks ago I had just read Dan North's article about how he saw six things he thought he...
Date: 09/24/2013
Throttling requests to your azure website using IP
A few weeks ago the dynamic IP address restriction feature was announced for Azure Web services....
Date: 09/17/2013
Estimating projects
Several years ago I told a story about a project that proved that estimation was a waste of time...
Date: 09/10/2013
1973 days later
1973 days ago I moved away from my private blog and started writing here. I have now decided that it...
Date: 09/02/2013
Using triggers to protect your database from developers - still not a good idea
A long time ago I mentioned that triggers is rarely a good option in your database. I recently read...
Date: 08/29/2013
SQL server backup myths
Any kind of backups other than straight file copies have Always been magic to me. Mostly because in...
Date: 08/22/2013
Azure Websites and logs that are no longer updated
Last weekend I helped my father-in-law (who is hosting his company web site on azure websites)...
Date: 08/15/2013
Asynchronous enumerations - summary
So what did we end up to do after the discussion two months ago? Well we ended up using option #1...
Date: 08/08/2013
Asynchronous enumerations - Part 5: MyEnumerationAsync
For background, read the introduction. If you have no need for filtering using LINQ (or Rx) and you...
Date: 08/01/2013
Asynchronous enumerations - Part 4: IEnumerable<Task<IEnumerable>>
For background, read the introduction. This is really just a variant of option #2 using the fact...
Date: 07/25/2013
Asynchronous enumerations - Part 3: IObservable
For background, read the introduction. In part 2 I briefly mentioned that if you have simple...
Date: 07/18/2013
Asynchronous enumerations - Part 2: IEnumerable<Task>
For background, read the introduction. This is essentially the opposite of option #1. With this...
Date: 07/11/2013
Asynchronous enumerations - Part 1: Task<IEnumerable>
For background, read the introduction. If you need all data before you start processing it or if you...
Date: 07/04/2013
Asynchronous enumerations - Introduction
A couple of weeks ago I had a discussion with a co-worker about what would be the proper way to...
Date: 06/27/2013
"Mocks: the code smell"
So I stole the title from this talk: [View:https://www.youtube.com/watch?v=Giqewl1zT_A] I have seen...
Date: 06/20/2013
Don't make it hard to trust your code
I recently learned that an API I had been using for a project was lying to me. Maybe not...
Date: 06/13/2013
Which collection interface do I use?
ReSharper has a warning that I thought came from FxCop that is so important I wish it was an FxCop...
Date: 06/06/2013
How would I test a WebAPI controller
Kind of related to my previous post, this article on how to test ASP.Net WebAPI controllers made me...
Date: 05/30/2013
If it is hard to test, you did something wrong
I've often been asked questions like how would you test this or been told that there cannot be unit...
Date: 05/16/2013
Collection initializers not doing what you expect
Let's assume that you have a class that have a collection property and that you want the default for...
Date: 05/09/2013
Task-based Asynchronous Pattern - kick starter
Regardless of if you are new to TAP (Task-based Asynchronous Pattern aka "async/await") or have been...
Date: 05/02/2013
How to know when the garbage collector is not helping you
A while back I did an experiment where it turned out that allocating objects was better than pooling...
Date: 04/25/2013
Using T4 to eliminate maintenance
I like to abstract diagnostics (logging and performance counters) into a separate interface or...
Date: 04/18/2013
Analyzing logs from Azure web sites
I recently played around with Azure web sites and wanted to analyze the IIS logs generated by azure...
Date: 04/11/2013
Using HTML as your web service format
In the past I've seen examples of clever use of style sheets to turn XML responses into browsable...
Date: 03/28/2013
Analysing code coverage
I was recently asked to look at a project that had around 60% code coverage and was asked to give my...
Date: 03/21/2013
Certificates are hard
Almost to the day, Azure had another certificate related outage. Last year was more interesting I...
Date: 03/14/2013
An offshoring experiment
Last week I read this article on an experiement a team did to compare off-shoring to co-location of...
Date: 03/07/2013
The green February revolution
I read this great article "the February Revolution" listing four things that tend to happen when...
Date: 02/28/2013
Implementing a good GetHashCode
If you've ever implemented GetHashCode you probably did it the way suggested in MSDN which is using...
Date: 02/21/2013
Cost of meetings
This was recently sent to me and anybody who has worked at Microsoft knows that a lot of teams (if...
Date: 02/14/2013
Implementing IDisposable
The IDisposable is probably one of the most abused interfaces in .Net. Except from all the cases...
Date: 02/07/2013