08 Jul 2015

Helios 2.0 Development Diary 2 - Channels, Config, and the Curiously Recurring Template Pattern

Picking up where I left off in the previous Helios 2.0 diary entry… After clearing the decks of all of any code I wasn’t 100% certain we’d be keeping, I began writing new code.

IChannel, IChannelConfig, and more

I immediately began by porting Netty’s Channel...

Read More

07 Jul 2015

Helios 2.0 Development Diary 1 - Clean Slate

To my eternal shame, I’ve never blogged about one of the most important open source projects I’m involved in: Helios. Helios is for all intents and purposes a .NET port of Java’s wildly successful Netty project, the reactive high-performance socket server...

Read More

15 Jun 2015

Cassandra, Hive, and Hadoop: How We Picked Our Analytics Stack

MarkedUp Logo

This is an archive of a blog post I wrote for the MarkedUp Analytics blog on February 19th, 2013. It’s been a popular post and I’m posting it here in order to preserve it.

When we first made MarkedUp Analytics available...

Read More

11 Jun 2015

Scalability Lessons we can Learn from Voat

Voat - have your say

Last weekend I found voat.co on the /r/dotnet subreddit, one of the places I frequent for news and happenings related to...

Read More

07 May 2015

Talking about Akka.NET and the Actor Model on Hanselminutes and .NET Rocks

I’ve done a bit of a “press tour” for Akka.NET since we released Akka.NET v1.0 at the beginning of April and I wanted to share a couple of the interviews I’ve done in the .NET community since.

Hanselminutes: Inside the Akka.NET open source...

Read More

24 Apr 2015

How to Start Contributing to Open Source Software

The Petabridge team (all two of us) just wrapped up a big two weeks. We launched Akka.NET V1.0 and then traveled to Portland to talk about .NET open source software at .NET Fringe.

24 Mar 2015

On a Mission to Mars

This weekend I went through the Landmark Forum and had to confront a big secret that I’ve been keeping hidden for virtually my entire life: the true aim of my ambitions.

Ever since I was a middle schooler, I’ve wanted to help build the first human colony on Mars....

Read More

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