Quantcast
Channel: Code rant
Browsing all 112 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

An Action Cache

Do you ever find yourself in a loop calling a method that expects an Action or a Func as an argument? Here’s an example from an EasyNetQ test method where I’m doing just that: [Test, Explicit("Needs a...

View Article


Image may be NSFW.
Clik here to view.

How to stop System.Uri un-escaping forward slash characters

Sometimes you want to construct a URI that has an escaped forward slash. For example, the RabbitMQ Management API requires that you encode the default rabbit VirtualHost ‘/’ as ‘%2f’. Here is the URL...

View Article


Image may be NSFW.
Clik here to view.

Restarting RabbitMQ With Running EasyNetQ Clients

Here’s a screenshot of one of my tests of EasyNetQ (my easy-to-use .NET API for RabbitMQ). I’m running two publishing applications (top) and two subscribing applications (bottom), all publishing and...

View Article

Image may be NSFW.
Clik here to view.

Why Write a .NET API For RabbitMQ?

Anyone who reads this blog knows that my current focus is writing a .NET API for RabbitMQ which I’ve named EasyNetQ. This is being paid for by my excellent clients 15Below who build high volume...

View Article

Image may be NSFW.
Clik here to view.

Thoughts on Windows 8 (part 2)

Back in June I wrote some thoughts on Windows 8 after the initial announcement. Now that we’ve got more details from the Build conference, I thought I’d do a little update. Microsoft have climbed down...

View Article


Image may be NSFW.
Clik here to view.

Some Thoughts On Service Oriented Architecture

I’ve been writing a high-level ‘architectural vision’ document for my current clients. I thought it might be nice to republish bits of it here. This is the section that makes a justification a service...

View Article

Image may be NSFW.
Clik here to view.

Some Thoughts On Service Oriented Architecture (Part 2)

I’ve been writing a high-level ‘architectural vision’ document for my current clients. I thought it might be nice to republish bits of it here. This is part 2. The first part is here. My Client has a...

View Article

Image may be NSFW.
Clik here to view.

A Useful Linq Extension Method: Intersperse

Have you ever had a case where you want to insert a constant item in-between each element of a list of items? For example, if I’ve got a list of numbers: 1,2,3,4,5 And I want to insert 0 between each...

View Article


Image may be NSFW.
Clik here to view.

The Database As Queue Anti-Pattern

“When all you have is a hammer, every problem looks like a nail.” When all you know is SQL Server, it’s tempting to try and solve every problem with a relational database, but often it’s not the best...

View Article


Image may be NSFW.
Clik here to view.

EasyNetQ: Topic Based Routing

EasyNetQ is my simple .NET API for RabbitMQ. I’ve just added a new feature, Topic based routing. It’s very cool. Topic based routing is a RabbitMQ feature that allows a subscriber to filter messages...

View Article

Image may be NSFW.
Clik here to view.

Help! How Do I Detect When a Client Thread Exits?

Here’s an interesting library writer’s dilemma. In my library (in my case EasyNetQ) I’m assigning thread local resources. So when a client creates a new thread and then calls certain methods on my...

View Article

Image may be NSFW.
Clik here to view.

How Do I Detect When A Client Thread Exits? Make The Client Tell You.

Yesterday I asked the LazyWeb for some help: how does library code detect then a client thread that has called one of its methods exits? There followed a very useful discussion on Stack Overflow. I’ve...

View Article

Image may be NSFW.
Clik here to view.

The Configuration Complexity Clock

When I was a young coder, just starting out in the big scary world of enterprise software, an older, far more experienced chap gave me a stern warning about hard coding values in my software. “They...

View Article


Image may be NSFW.
Clik here to view.

EasyNetQ: A Breaking Change, IPublishChannel

EasyNetQ is my high-level .NET API for RabbitMQ. Until recently, to publish a message using EasyNetQ you would create an instance of IBus and then call the publish method on it: bus.Publish(message);...

View Article

Image may be NSFW.
Clik here to view.

Time To Consider Node.js?

Unless you’ve been living under a rock for the past couple of years, you’ll have heard the buzz about Node.js, a platform for building network applications in Javascript. If, like me, you’re a .NET...

View Article


Image may be NSFW.
Clik here to view.

EasyNetQ: Introducing the Advanced API

EasyNetQ is an easy to use .NET API for RabbitMQ. Check out our new homepage at easynetq.com. EasyNetQ's mission is to provide the simplest possible API for RabbitMQ based messaging. The core IBus...

View Article

Image may be NSFW.
Clik here to view.

Use AutoResetEvent To Unit Test Multi-Threaded Code

I’ve been guilty of using a very nasty pattern recently to write unit (and integration) tests for EasyNetQ. Because I’m dealing with inherently multi-threaded code, it’s difficult to know when a test...

View Article


Image may be NSFW.
Clik here to view.

When Should I Use An ORM?

I think like everyone, I go through the same journey whenever I find out about a new technology.. Huh? –> This is really cool –> I use it everywhere –> Hmm, sometimes it’s not so great...

View Article

Image may be NSFW.
Clik here to view.

EasyNetQ: Continuous Delivery with TeamCity and NuGet

I recently applied to have EasyNetQ, my awesome RabbitMQ API for .NET, build on the CodeBetter TeamCity build server (you can log on as ‘guest’ with no password). The very helpful Anne Epstein set it...

View Article

Image may be NSFW.
Clik here to view.

Playing with Twitter

My excellent clients, 15Below, are interested in exploring how social media, like Twitter and Facebook can work in their business area, travel communications. I’ve been tasked with investigating the...

View Article
Browsing all 112 articles
Browse latest View live