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.

.NET Fringe Conference

One of central themes of .NET Fringe is open source communities - and there’s two sides to this coin:

  • How does an open source project successfully attract contributors and make them effective?
  • How does your typical software developer become an OSS contributor?

I’m going to touch on the former topic in a subsequent post, as that appeals to a more niche audience than the latter.

Why do open source?

All OSS contributors start...

Read More

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. I’ve multiple hours per day thinking about it for years and years and told no one. I was afraid that people would think it’s a ridiculous goal, and that I wasn’t successful enough to do it yet. And really, I was scared that I would fail. So I let these fears stop me from ever trying or ever sharing it.

The Forum helped me realize that these fears are bullshit.

I’m going to help put the first permanent human settlement on Mars. That’s my mission, and today I’m committing to realizing the possibilities that go with it. Sure, it’ll be...

Read More

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 one of these instanceable thread pools had me borrow the work-stealing queue implementation that’s been responsible for dramatic performance improvements in the CLR ThreadPool. The original ThreadPool code is very optimized and relies on native calls internally, so it’s not always easy to follow.

My initial performance numbers for DedicatedThreadPool were absolutely awful, so I needed to find a high-performance way of measuring just how well this work queueing structure was working for me.

Enter Event Tracing for Windows (ETW.) I spent way more time than I care to admit trying...

Read More

Want me to work on your distributed .NET applications?

Petabridge - We help .NET companies make distributed, realtime applications.

Time for a brief commercial interruption…

Recently Petabridge announced its professional services offerings around Akka.NET.

I’ve been approached over the past year by a lot of .NET developers who’ve needed help using Helios for socket programming, or Akka.NET for distributed systems programming in .NET, and sometimes just some help getting Cassandra set up on Windows Azure.

Well, as part of Petabridge’s offerings my time is officially now on the market for your projects.

If you would like my personal help learning how to use Akka.Cluster to build scalable ASP.NET and Windows Service microservices , deploying Akka.NET on Azure, rewriting your in-house socket servers to use Helios, or whatever else you need - request...

Read More

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

Akka.NET - One Year Later

Akka.NET - Distributed Actor Model for .NET

I originally posted this at Beyond HTTP, Petabridge’s official blog. Read the original there.

This month marks the one-year anniversary of Akka.NET and it has been a massive year for Akka.NET. In December of 2013, Roger Alsing and I had never met and we were both working on our own actor framework implementations in .NET.

Before it was Akka.NET…

My startup at the time, MarkedUp Analytics, was just starting its R&D efforts to begin developing its real-time marketing automation product on top of our existing in-app analytics product. We knew we needed the Actor model...

Read More

My Next Thing: Petabridge - the Future of Distributed Software in .NET

Petabridge - Akka.NET Training and Distributed Computing in .NETAfter wrapping up MarkedUp, I took some time off to consider my future. Travel. See old friends. Catch up on rest.

During the entire time I was gone I received a steady stream of questions and inquiries about two open source projects I helped found:

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 thank-you for the article you wrote concerning becoming an elite programmer. I have not read it through entirely as of yet because I am overly tired making it difficult to process properly, so I will do so once I have had some rest. I did feel a sense of urgency to write this e-mail to you while I had it in my mind.

I made a career change to become a developer last December, and spent six months learning Ruby. I got my first position as a developer in July of 2014, and was in the position for six months.


Read More

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 their warnings. I’ve decided that any businessperson who would deny me business simply because I express what it’s like to be a vulnerable, actual human being going through a sustained period of immense stress is someone I don’t want to do business with in the first place. That being said…

It was just over a month ago that we made the decision to shut down MarkedUp, and in the time since I’ve been on the road visiting with family and friends I neglected during my three years of 100+ hour work weeks working on MarkedUp.

While I’m proud of...

Read More

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 campaigns for our customers.

If you’re interested in learning how to use actors inside your application or want to know how they can help you build types of applications that are virtually impossible to build over simple HTTP APIs, then you should read it (click here!)

Read More

P.S. Get the latest from Aaronontheweb

Have my most recent essays and articles delivered directly to your mailbox.