Contact Information

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

Good Reads

(from the Recommended Books page)

Access Git Commits during a TeamCity Build using Powershell

Original post blogged on Wed, Oct 29 2014 at

Recently I needed access to the list of commits that were included with each of my TeamCity builds. TeamCity provides a pretty big list of Predefined Build Parameters, but it doesn’t provide access to details of the commits it is currently building. Having Powershell and Git on my server, though, I can write some scripts to extract not just information about the latest commit, but about any series of commits that have occurred.

Extracting U...

Automated Database Deployments – Presentation Demos

Original post blogged on Sun, Sep 07 2014 at

This is an outline of the tools and scripts I used while demonstrating conversion of a sample “we make all our changes in production” database into a basic pipeline to verify and deploy changes automatically, as well as verify restores on a nightly basis.

This post contains all of the steps, software, and scripts that I used during the “Automated Deployments” talk at SQL Saturday 320.

There aren’t any pictures, if I did that than what would be the point of presenting it?

Client-side vs Server-side Validation in Web Applications

Original post blogged on Fri, Aug 01 2014 at

Validation exists to “ensure that the application is robust against all forms of input data” ( Invalid data can cause unexpected execution errors, break assumptions elsewhere in your application, introduce errors into reporting, and even let someone hijack your service to attack others (script injection, sending spam, etc).

When we’re talking about web form submission, the majority...

Threadsafe Incrementing in C#

Original post blogged on Wed, Jul 02 2014 at

Recently I’ve had the opportunity to review a number of different parallel C# methods that were performing work over a collection of items. Nearly all of them have used ++ to increment parent or global variables from inside threaded contexts. Unfortunately the ++ operator is not guaranteed to be threadsafe in C#.

So let’s take a simple code example using ++ and convert it to a threadsafe one.