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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson Date: 03/25/2014

Tail Recursion and C#

Tail recursion is a powerful optimization since it typically improves both execution time and memory...

Author: Emil Gustafsson 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....

Author: Emil Gustafsson Date: 03/11/2014

Hashtable vs ConcurrentDictionary

Historically I've seen the Hashtable be favored over ConcurrentDictionary with the assumption that...

Author: Emil Gustafsson Date: 03/04/2014

Circuit Breaker Pattern

Start here to learn more about different ways to implement the circuit breaker pattern!

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson Date: 10/22/2013

Unexpected Progress

When I was working on the WithProgress extensions I learned something about Progress<T> that I...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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....

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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)...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson Date: 04/25/2013

Using T4 to eliminate maintenance

I like to abstract diagnostics (logging and performance counters) into a separate interface or...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson Date: 03/21/2013

Certificates are hard

Almost to the day, Azure had another certificate related outage. Last year was more interesting I...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson Date: 03/07/2013

The green February revolution

I read this great article "the February Revolution" listing four things that tend to happen when...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson 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...

Author: Emil Gustafsson Date: 02/14/2013

Implementing IDisposable

The IDisposable is probably one of the most abused interfaces in .Net. Except from all the cases...

Author: Emil Gustafsson Date: 02/07/2013

Next>