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
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?
Equality by value - i.e. determining if two objects are equal by comparing their content.
In Akka.NET all message classes are supposed to be...
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 and reliable...
After 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:
- Akka.NET, the .NET port of Typesafe’s wildly successful Akka distributed actor framework and
- Helios – a .NET port of Java’s popular Netty socket programming library; Helios powers the network communication used by Akka.Remote and Akka.Cluster within Akka.NET. All of these developers reached out to me – asking how...
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.
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...
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.
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!)
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 all remained constant (until I added monitoring.)
I couldn’t reproduce this CPU spike at all locally, nor could I determine the root cause. No one else had reported this issue on the Akka.NET issue list yet, probably because the product is still young and MarkedUp In-app Marketing is the only major commercial deployment of it that I know of (hopefully that will change!)
I had to hook up StatsD to MarkedUp’s production Akka.NET deployments to figure out what was going on ultimately[footnote: I open sourced our Akka.NET + StatsD integration into a NuGet package –...
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 this product to market, I personally made the following OSS contributions:
- Adding full CQL3 collections support to FluentCassandra, a project which Nick Berardi created and I am now maintaining;
- Inventing Helios, a high-performance TCP/UDP socket server middleware developed in the style of Java’s wildly successful Netty project;
- Co-creating Akka.NET, a C# port scala’s Akka project for distributed actor systems – I was largely responsible for writing the remoting layer, finite state machines, actor system extensions, and lots of other additions here and there;
- A reliable inter-process file-lock implementation in C#, used...
Following on from my previous post about the second / third generation cryptocurrencies advancing the start of the art, I’ve spent a lot of time participating in /r/dogecoin on Reddit and seeing dozens of new businesses start accepting Dogecoin every day.
I’ve mined a fair bit of Dogecoin so far (albeit on laptops, not dedicated mining rigs) and purchased a substantial amount, so I’ve been looking for some ways to spend or invest it.
Here’s some of the purchasing that I’ve done or am considering at the moment:
Until recently, I was extremely skeptical of cryptocurrency in general. In the midst of the investment speculation and mania in late 2013, when the price of Bitcoin first climbed to $500-$800, it smelled too much like digital Beanie Babies for my blood. So whatever interest I had in learning about the technology and its disruptive potential was buried underneath multiple layers of speculation sediment.
Two things piqued my interest, however: 1) I attended a Bitcoin meetup in Santa Monica and heard more about it and 2) the Jamacian bobsled team raised money to attend the Winter Olympics with a huge amount of support from Dogecoin.