Contact Information

Eli Weinstock-Herman (Tarwn)
Raleigh, NC   USA 35° 53' 6.69" N 78° 31' 9.74" W
Eli Weinstock-Herman, Contact Information


(from the Reading List page)
Working Effectively With Legacy Code
Continuous Delivery

Distributed Storage: How SQL Azure Replicas Work

Original post blogged on Wed, Nov 18 2015 at

One of the benefits of Microsoft SQL Azure over an on-premise or VM installation is built-in resiliency. In a typical on-premise/VM installation your database lives on a single server, with all the single points of failure that brings to mind. SQL Azure, on the other hand, always has 3 or more replicas assigned for each database. This allows it to weather issues like network glitches and commodity hardware failures with no administration and little to no downtime.

Finding good, detailed articles about this has been difficult. Here’s a couple I found:

Real World Azure: Lease Container bug in Azure Storage API

Original post blogged on Mon, Nov 16 2015 at

Recently we’ve been working with the raw Azure Storage API to try and get to a more stable solution then the far more aggressively changing Azure Storage SDK. One of the goals is to be able to work equally well locally, against the emulator, and in production. We’re used to cases where the Emulator diverges from production or the documentation, but recently we found a case where the emulator and documentation match, but the production services appear to be wrong.

The prior “real world azure” post (September 2013) was a

Compiled list of C# + .Net Features

Original post blogged on Mon, Sep 07 2015 at

We have talked about doing this at work for a while, so I finally sat down this weekend and tried to make a list of C# features that the team could share. We intend to use this to help gauge who the best people are to ask questions in different areas (C# isn’t our only list) as well as a list of things to learn when you’re bored (after crossing off all the ones you know). I added in some of the .Net framework features to round the list off.

Based on their relevance in our team, I left some grouped together (like unsafe code and WPF) and broke others into details (ASP.Net)...

Advanced Smoke Testing with PhantomJS

Original post blogged on Wed, Aug 26 2015 at

Recently I found myself wanting a new kind of safety net. There are any number of surprise problems that can show up in front-end development, from mistyped image URLs to bad output when the minification script barfs to the unexpected surprises after adding new dependencies. As an application scales from smaller to larger, it becomes even more time consuming to check all of the interfaces and look for little things like 404s, script errors, and odd side effects.

While manual testing is possible, we’re only human and will eventually miss something. Plus there’s the ongoin...

Using CodeDOM to Automate Technical Screening Evaluation

Original post blogged on Wed, May 27 2015 at

CodeDOM provides dynamic compilation of .Net code and is commonly used in places like template generation or compilation of emitted code. I recently needed a way to evaluate code submissions against a known set of test cases, so this post will walk through building a small program to do take source code as files, compile it, and execute it against a series of known inputs and outputs to evaluate it.

Sample Code: tarwn/Blog_CodeDom on github

To download and run the code yourself, you will n...