Menu

Jonathan Oliver

Take a look at the last half-dozen or so publicized outages at Amazon. Every single time it was a failure in EBS—including the multi-day EBS outage in April 2011.
I still love AWS. If you have an elastic (scaling) workload, it's awesome. Normally I have a hard time taking a dependency of third-party behavior which facilitates vendor lock-in, but Amazon makes it so incredibly easy because their cloud is vastly more capable when compared to other cloud providers. »

There's a lot of discussion about generics in Go. In fact, it's one of the most-requested features in the language discussion groups. The language designers aren't against generics, but they have not found or seen a good proposal that allows generics in the language without significantly complicating the language and implementation.
That being said, Go has generics. Think about it. What is the primary use case for generics? Collections—when you've got a set of "objects" (instances of a structure) and you want to operate on that structure regardless of type. »

Hacker News is awesome. I browse the site every day because love the continual stream of relevant stories and articles for tech-savvy people. Stories there are sorted by using an algorithm based upon time and community up-votes, among other things. This means that the first page of results is an ever-changing set of compelling and intellectually revealing articles.
My phone started going crazy with email alerts on Sunday afternoon. I was receiving a bunch of email alerts for new Disqus comments on my blog. »

Comcast's Evil Twin We love our movies and our television. After a hard day at work, many Americans like to enjoy some downtime with a good TV show or movie. When technology advanced in the 1980s in the form of video cassette tapes, this gave us a new choice for how and when we consumed media. From this innovation came a natural outgrowth: the video store. Virtually every town in America had one. »

The .NET Framework was good. Really good. Until it wasn't. Why did I leave .NET? In short, it constrained our ability to choose (which is a huge deal for me) and turned our focus inward toward the perceived safety of the nest instead of the helping us experience all of the possibilities out there in the big, wide world.
[Buckle up: this is post has pratically become a book in length. »

As a development environment and a server environment Windows makes less and less sense. It's not that I don't like Windows. It's actually really good operating system for a lot of people and is getting arguably more secure from attacks. My problem is that it continues to get in my way and limit me in ways that hamper and impede progress.
NOTE: I've been using various operating systems since the early 90s, but I've been using Windows as my primary OS for software development until a year ago when we decided to change development stacks. »

Hello, World! I'm still here. It's been a good, long while since I last posted. So where have I been? And what have I been up to?
Well, a lot has changed since my last post, but one thing remains the same: messaging. In fact, messaging is now more ubiquitous in my architecture and designs than it has ever been. I'll touch on that in a future post.
For now, I'm back and I'll be attempting to outline various architectural patterns, styles, and best practices--along with the coding tips and tricks. »

I have been in the process of migrating off of Windows and the .NET Framework for a little while now. The process is still underway, but is going very smoothly. To understand the need for a platform migration, there are two things to understand:
First, why change the development environments and application platform at all? And second, what platform/language should we choose? The first point is beyond the scope of this post and will be covered in more detail at a later date. »

Since leveraging some of the capabilities of NuGet v1.6, such as "package restore", our build server has been giving us random fits about various file locks. Sometimes it was just a matter of re-executing the build and sometimes we had to clear the temporary build workspace and then re-execute. In any case, it was very annoying.
The error message that we'd get during our build was something like this:
The process cannot access the file 'XYZ' because it is being used by another process. »

Hamachi is my new best friend. My company recently expanded into a 3rd data center to have even more redundancy and fault tolerance. One issue that we had as we approached the rollout was how to best create a secure communication channel over the web for this purpose. Generally speaking, this is a solved problem, but even so, when working with a semi-crippled OS such as Windows, the ability to choose VPN solutions becomes a problem. »