About 9 months ago, we took a trip to New York City.
Naturally, during our time in Manhattan we found time for several nice walks through Central Park; the weather was wonderful and it couldn't have been a more pleasant experience.
Part of the beauty of Central Park is the magnificent foliage. Although it was already nearly winter, I couldn't help but notice all the trees, and I thought to myself:
Didn't I hear that all these trees died? Didn't I hear that Dutch Elm Disease had destroyed them all?
But, as is the way with The City, we were soon distracted by other things, and I didn't pursue the thought at the time.
Now comes a nice article at the Nautilus website: New York City Battles on Against Dutch Elm Disease
Like elm trees across the globe, the elms in Central Park are stricken with a ruthless beetle–fungus alliance known as Dutch elm disease. In the early 1980s, the park was losing more than 100 elms—American and other species—each year. Today, thanks to diligent monitoring and eradication by the Central Park Conservancy, the death rate is much lower—sometimes in the single digits—although bad years can still claim as many as 35 trees.
Despite rigorous efforts to maintain the Central Park elms in all their glory, scientists still can’t stamp out the disease. Botany labs are hard at work on cures, including one that could “freeze the biology” of the trees to trip up evolution. But the nature of Dutch elm disease makes it a tough opponent.
(A "ruthless beetle-fungus alliance;" what a marvelous phrasing!)
One of the most interesting aspects of the article was how multi-layered the efforts to preserve the trees are:
- “We’re always monitoring” the elm trees, hence the patrols throughout the summer.
- “You can prune out infections,”
- cross-breeding the least susceptible American elms they could find
- inserting genes that offer the trees some defense against Dutch elm
- replace lost trees
- a cryopreservation program, he says, that would allow today’s trees to thrive decades down the line
This is a time-tested engineering technique, many many tens of thousands of years old, and it typically goes by the name: "Defense in Depth".
In software engineering, we use this approach constantly.
- We choose programming languages which feature memory safety, garbage collection, type safety, and other similar mechanisms
- We use operating systems which implement process isolation, address space randomization, etc.
- We select hardware which features error correcting codes, redundant recording of data, etc.
- We deploy our algorithms across farms of machines, cross-checking and verifying each other
- We log status and progress messages to diagnostic logs for post-mortem analysis
In a way, there's nothing new under the sun. You're an engineer, and you're faced with a problem, whether it's how to build a secure mobile chat application or how to save an urban forest threatened with blight and pestilence.
You try something, you see how it works.
You try again, and again, and again. You record your experiments; you talk with your colleagues.
Sometimes it seems like Prometheus is rolling that rock up the hill, only to start again from the bottom.
But we're engineers; that's what we do.