Adulthood. Coming of age. Voting. High school graduation. These are all things that greet us here in the US when we turn 18. So it seems E-g has finally come of age! How do we celebrate our 18th anniversary? Just like we do the rest of life here at E-g – like a family. We gathered at one of our beautiful local parks, swung open the gates, and said, “Have fun!” Honestly, we needed little instruction after that!
Being recognized among the Best Places to Work in Indiana – a hard-working state filled with so many excellent companies – is an incredible honor. But being named the #1 place to work, in a year in which we moved from the Small Companies up to the Medium category, is downright indescribable. As we have grown from a folding table in a garage almost 20 years ago into 80+ people and around 20,000 square feet of office space today, the… [continue]
Retroactive modeling is the practice of using existing types to represent new concepts, without modifying those types. This technique is important for reusing existing structures, while maintaining compatibility with the current usage. Swift supports retroactive modeling through the use of extensions. Extensions enable you to add new functionality to existing types, without the need to have access to the original source code. Swift extensions are similar to categories in Objective-C, and can be used to extend a class, struct, enum,… [continue]
Earlier this year we put together a Christmas Card Workshop for employees to bring their kids. We invited them to EG on a Saturday for cookie decorating (and eating of course), Christmas card making, and some fun family portraits. We even had some silly props to make it more exciting! When our monthly lunch rolls around in December, we like to celebrate the season with some good food (pulled pork/brisket bbq of course), and a little fun. Alongside the… [continue]
Most, if not all, programming languages have a construct for defining reusable sets of instructions. In Swift that construct is a closure. A closure is a self-contained chunk of code that is used to perform a specific task. The most basic type of closure is a named closure, which is more commonly known as a function. Functions (Named Closures) Every function is defined using the func keyword followed by the function name. The function name should describe the task that… [continue]
August 21, 2017. The day the sun went dark. Starting in Oregon and ending in South Carolina, the eclipse was a sight to see. A partial eclipse could be seen from most of the United States, but that wasn’t good enough for several E-gineers. Troy, Don, Tim, and I traveled down to Scottsville, KY to witness totality. Totality happens when the sun is completely covered by the moon, and it could only be seen within a 70-mile band across the… [continue]
There’s Pi Day (3.14 or March 14th) and then there’s Pi Approximation Day (22/7 or 22 July), which is technically tomorrow. So, within a little over 4 months there are (at least) two wonderful occasions for baking, and eating, pie. We take these opportunities very seriously around here. The math behind date-based compulsory pie eating may be a little complicated, but we find that eating the pies themselves comes very easily. Besides the straightforward connection we make from computing and… [continue]