Year archives: 2014

Understanding digital infrastructure in a digital age

If you ask the average business owner whether they have internet access, they are very likely to answer ‘yes’.  If you ask them if they have broadband, most, but not all will continue to answer confidentially in the affirmative.  If you ask them if they have ‘superfast broadband’ a look of confusion slowly spreads across …

Controlling access to shared resources in an asynchronous world

In my last post I introduced the AsyncLock and AsyncDebouncedFunction.  AsyncLock is a fantastic way of asynchronously holding a ‘lock’ without actually blocking threads.  It is the natural go to class for resource synchronization, but there are alternatives (with caveats). In .Net 4.5 the ConcurrentExclusiveSchedulerPair was introduced, offering a powerful approach to concurrency control.  Using this …

Debouncing asynchronous operations

With the introduction of the async and await keywords, asynchronous programming has finally become achievable by any .Net developer.  Building on the TPL, async and await extend the C# language specification to make task based programming relatively straight forward, and is a huge step forward from APM. However, being able to write code that runs …

Memory Mapped File Performance

In my last post I introduced Memory Mapped Files, and discussed how you could mark them as sparse.  Today, I would like to talk a little about performance.  Using LINQPad (my favourite tool!), I created a rough and ready test script which can be downloaded at the end of the article. The idea was to …

Sparse Memory Mapped Files

Memory mapped files are a powerful addition to the .NET framework in version 4.0.  They’ve been a key part of the windows Operating System since Windows 95, but using them required a working knowledge of COM Interop, as they weren’t exposed directly through the framework.  It’s well worth reading up on them, especially if you’re …

Secret Diary of an Interviewer

We do a lot of interviews at Web Applications, especially with the launch of our Apprenticeship scheme.  Over the years I’ve seen the best and worst of what candidates bring to the table.  Unfortunately, there’s far more bad than good, and it’s so unnecessary. Every now and then I get invited to speak at conferences …