17 Mar 2015

Creating a Custom ETW EventSource for Debugging High-Performance Code in C#

One of the things I’ve been working on for both Helios and Akka.NET is a custom ThreadPool implementation that allows us to isolate mission-critical code from the noise of the CLR ThreadPool.

My second pass at implementing...

Read More

04 Feb 2015

The Right Way to do Equality in C#

One of the pitfalls of doing development in C#, Java, C++, or really any predominantly Object Oriented language (OOP) is how “equality” is defined.

In C#, for instance, you have the following methods that are built into every object:

  • object.Equals
  • the == operator
  • ReferenceEquals, for explicitly checking reference equality

My personal opinion: in any managed language, checking for referential equality is a pretty bad default - and if you’re working with immutable objects then equality by reference doesn’t really work.

In C/C++, where pointer arithmetic and knowing the precise location of something in memory matters it’s a different story. Equality by reference is the correct default in that case.

What’s the right thing to do?

Read More

20 Jan 2015

Akka.NET - One Year Later

Akka.NET - Distributed Actor Model for .NET

I originally posted this at Beyond HTTP, Petabridge’s official blog. Read More

12 Jan 2015

In Response to a Letter from a Beginning Programmer

I received a heartfelt response from a new software developer in response to my “What Do You Need to Become an Elite Developer?” blog post. With his permission, I decided to post his letter and my response – with his name omitted.

Hi Aaron,

First, I want to...

Read More

27 Dec 2014

The Next Fork in the Road

I had several friends and advisors review this post prior to publishing it; most encouraged me to go forward with publishing it but others cautioned that future investors / business partners may choose to pass on a deal with me due to the content below. I took time to consider...

Read More

24 Jul 2014

Real-time Marketing Automation with Distributed Actor Systems and Akka.NET

I published a lengthy post on MarkedUp’s blog yesterday about the new product we recently released, MarkedUp In-app Marketing Automation for Windows Desktop (with support for Windows Store, Windows Phone, iOS, and Android planned) and how it uses Akka.NET’s distributed actor system to execute real-time marketing automation...

Read More

15 Jul 2014

Tradeoffs in High Performance Software

I’ve spent down the past week tracking down an absolutely brutal bug inside Akka.NET. Sometimes the CPU utilization of the system will randomly jump from 10% to 100% and stay pegged like that until the process is recycled. No exceptions were thrown and memory / network / disk usage...

Read More

03 Jul 2014

The Profound Weakness of the .NET OSS Ecosystem

I’m in the process of writing up a lengthy set of blog posts for MarkedUp about the work that went into developing MarkedUp In-app Marketing, our real-time marketing automation and messaging solution for Windows desktop applications (and eventually WP8, WinRT, iOS, Android, Web, etc…)

During the course of bringing...

Read More