Robust Flag Enumerables

Posted by Ancestry Team on June 2, 2015 in C#, Development

Flag Day in the USA is just a couple of weeks away.  Flags are used to represent different things (usually nations or states).  While the things a nation’s flag stands for are more important than what flags in code represent, it’s easier to discuss how to use flags in code, so that’s what I’ll do Read More

Monitoring progress of SOA HPC jobs programmatically

Posted by Ancestry Team on October 17, 2014 in C#, Development, Distributed Computing

Here at Ancestry.com, we currently use Microsoft’s High Performance Computing (HPC) cluster to do a variety of things.  My team has multiple things we use an HPC cluster for.  Interestingly enough, we don’t communicate with HPC exactly the same for any distinct job type.  We’re using the Service Oriented Architecture (SOA) model for two of Read More

Maintaining Balance by Using Feedback Loops in Software

Posted by Ancestry Team on July 29, 2014 in C#, Performance

Maintaining Balance by Using Feedback Loops in Software Feedback is an important part of daily life.  Used wisely, feedback loops can help us make better decisions, resulting in overall improvements.  Feedback loops are useful in all sorts of situations, from relationships to what we eat for dinner.  Software can also be made to take advantage Read More

Announcing Daisy, An Ultra Lightweight, Open Source Rules Engine

Posted by Ancestry Team on January 23, 2014 in C#

We just released a new open source package here at Ancestry: Daisy. Daisy is a business writeable domain specific language for business rules. It lets business experts write the rules, and software developers define how they are implemented. Daisy itself is domain agnostic, but allows domain experts and software developers to create the rule domain together.  An example Read More

Open Source Development

Posted by Liam Molloy on November 26, 2013 in ASP.NET, C#, CSS/HTML/JavaScript

At Ancestry.com, we have many developers whom contribute to open source projects. Today I want to talk about an open source project I have been involved in, along with one of my team members Shane Burke. As contributing to open source projects is not directly related to the day to day development work at Ancestry, Read More

Creating Random Data for Testing

Posted by on June 12, 2013 in C#, CSS/HTML/JavaScript, Testing

In my experience, tests that emulate real-world usage and use real-world data, find more relevant bugs, convey intent more clearly, and exercise the system under test more thoroughly than tests that do not. Consider testing a cab service to assert that a given vehicle arrives at its destination: cabService.SendVehicleToDestination(vehicle, destination); Assert.AreEqual(vehicle.Location, destination); Now, it shouldn’t Read More

Testing, Code Coverage, and Other Ways You Could Be Wasting Time

Posted by on May 22, 2013 in C#, Testing

I’ll be the first to say that testing and code metrics can improve software quality and increase productivity, but an overzealous application of either could incur a heavy cost.Tests are code, code is overhead, and while some overhead is necessary and even advisable, overhead is debt and should be minimized whenever possible.There is no perfect Read More