Eyas's Blog

Occasional musings on software development, tech, the Middle East, and anything else.

Software Archives

Data-Oriented Architecture

There's a little-known pattern in software architecture that deserves more attention. Data-Oriented Architecture was first described by Rajive Joshi in a 2007 whitepaper at RTI , and again in 2017 by Christian Vorhemus and Erich Schikuta at the University of Vienna in this iiWAS paper . DOA is an inversion of the traditional dichotomy between a monolithic binary and data store (monolithic…

Read more →

Unexpected Lessons from 100% Test Coverage

The conventional wisdom of the software engineering community is that striving to 100% test coverage is a fool's errand. It won't necessarily help you catch all bugs, and it might lead you down questionable paths when writing your code. My recent attempts at 100% test coverage showed me the answer is much more subtle. At times I was tempted to make questionable code changes just for the sake of…

Read more →

Use trackBy in Angular ngFor Loops and MatTables

A missing trackBy in an ngFor block or a data table can often result in hard-to-track and seemingly glitchy behaviors in your web app. Today, I'll discuss the signs that you need to use trackBy . But first—some context: More often than not, you'll want to render some repeated element in Angular. You'll see code that looks like this: In cases where the ngFor is looping over the results of a…

Read more →

The Joys and Happy Accidents of Branching Out

How helping on a film set led to me down a serendipitous path, publishing a new open source library, and getting an IMDB mention. About a year ago, a friend asked me—along with some others—to help as extra hands on set filming the second season of an absurdist comedy mini-series she was working on called Look it Up . Helping film anything wasn't something I thought I would ever do, so I was…

Read more →

Learning by Implementing: Observables

Sometimes, the best way to learn a new concept is to try to implement it. With my journey with reactive programming, my attempts at implementing Observables were key to to my ability to intuit how to best use them. In this post, we'll be trying various strategies of implementing an Observable and see if we can make get to working solution. I'll be using TypeScript and working to implement…

Read more →