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

RabbitMQ: AMQP Channel Best Practices

I’ve long been confused with best practices around AMQP channel handling. This post is my attempt to explain my current thoughts, partly in an attempt to elicit feedback.The conversation between a...

View Article


Image may be NSFW.
Clik here to view.

EasyNetQ: IConsumerDispatcher

EasyNetQ has always had a single dispatcher thread that runs user message handlers. This means that a slow handler on one queue can cause other handlers on other queues to wait. The intention is that...

View Article


Image may be NSFW.
Clik here to view.

Brighton Fuse

Last night I attended the launch of The Brighton Fuse report. This is the result of a two year research project into Brighton’s Creative, Digital and IT (CDIT) sector. It’s one of the most detailed...

View Article

Image may be NSFW.
Clik here to view.

EasyNetQ: Big Breaking Changes in the Publish API

From version 0.15 the way that publish works in EasyNetQ has dramatically changed. Previously the client application was responsible for creating and disposing the AMQP channel for the publication,...

View Article

Image may be NSFW.
Clik here to view.

AsmSpy Coloured Output

AsmSpy is a little tool I put together a while back to view assembly reference conflicts. Even though it took just an hour or so to knock together, it’s proved to be one of my more successful open...

View Article


Image may be NSFW.
Clik here to view.

EasyNetQ: Publisher Confirms

Publisher confirms are a RabbitMQ addition to AMQP to guarantee message delivery. You can read all about them here and here. In short they provide a asynchronous confirmation that a publish has...

View Article

Image may be NSFW.
Clik here to view.

RabbitMQ Request-Response Pattern

If you are programming against a web service, the natural pattern is request-response. It’s always initiated by the client, which then waits for a response from the server. It’s great if the client...

View Article

EasyNetQ: Big Breaking Changes to Request-Response

My intensive work on EasyNetQ (our super simple .NET API for RabbitMQ) continues. I’ve been taking lessons learned from nearly two years of production and the fantastic feedback from EasyNetQ’s users,...

View Article


Image may be NSFW.
Clik here to view.

EasyNetQ: Polymorphic Publish and Subscribe

From version 18.0 of EasyNetQ, you can now subscribe to an interface, then publish implementations of that interface.Let's look at an example. I have an interface IAnimal and two implementations Cat...

View Article


EasyNetQ: Changes to Conventions With Version 0.18

TL:DR: Exchange and queue names used to have ‘.’ replaced with ‘_’. From version 0.18 this is no longer the case.Yesterday I announced version 0.18 of EasyNetQ. The big change was the addition of...

View Article

EasyNetQ: Consumer Cancellation

Consumer cancellation has been a requested feature of EasyNetQ for a while now. I wasn’t intending to implement it immediately, but a pull request by Daniel White today made me look at the whole issue...

View Article

EasyNetQ: Multiple Handlers per Consumer

A common feature request for EasyNetQ has been to have some way of implementing a command pipeline pattern. Say you’ve got a component that is emitting commands. In a .NET application each command...

View Article

EasyNetQ: Send Receive Pattern

From version 0.21, EasyNetQ supports a new message pattern: Send/Receive.Whereas the Publish/Subscribe and Request/Response patterns are location transparent, in that you don't need to specify where...

View Article


Image may be NSFW.
Clik here to view.

EasyNetQ: Non-Generic Subscribe

Since it’s very first version, EasyNetQ has allowed you to subscribe to a message simply by providing a handler for a given message type (and a subscription id, but that’s another...

View Article

EasyNetQ’s Minimalist DI Container

I’ve been a long time fan of IoC (or DI) containers ever since I first discovered Castle Windsor back in 2007. I’ve used Windsor in every major project I’ve been involved in since then, and if you’d...

View Article


Image may be NSFW.
Clik here to view.

EasyNetQ: Replace the Internal DI Container

EasyNetQ, is made up of a collection of independent components. Internally it uses a tiny internal DI (IoC) container called DefaultServiceProvider. If you look at the code for the static RabbitHutch...

View Article

Are Your Programmers Working Hard, Or Are They Lazy?

When people are doing a physical task, it’s easy to assess how hard they are working. You can see the physical movement, the sweat. You also see the result of their work: the brick wall rising, the...

View Article


How to Run a Successful Open Source Project

A couple of months ago I attended BarCamp Brighton, an open conference at Brighton University. Everyone is encouraged to present a session, and as I don’t need much excuse to talk to a room full of...

View Article

Image may be NSFW.
Clik here to view.

The Geek Christmas Quiz 2013

This is the second year of my Geek Christmas Quiz. Six sections of the ultimate geek questions. The office competition was won by Toby Carter with a score of 46. See if you can do better. Last year’s...

View Article

The Geek Christmas Quiz 2013: The Answers!

Here are the answers to this year’s Geek Christmas Quiz. What does this acronym stand for? (one point per correct answer)     1. AWS – Amazon Web Services     2. SQL – Structured Query Language     3....

View Article
Browsing all 112 articles
Browse latest View live