Main menu

Category Archives: Design Principles

I have a tendency to use my bed as a great place for lengthy lights-out conversations, especially when it is 39°C outside, and the only effective way to fall asleep is by sprawling on a window ledge in a precarious position. And I’m glad nights like these exist. I’m also glad I have a husband, who continuously stimulates my mind and questions my ramblings.

Form follows function is one of those elegant phrases, which fell victim to overuse by designers and engineers. Optimize rather than maximize is also not as straightforward of a phrase as I thought at first. Seems, elegant phrases always have a danger of being misinterpreted for the lack of appropriate context.

Tim gave an excellent example of the importance of context in nature:

The most plentiful protein on earth RuBisCo, is not overly ‘efficient’ at capturing CO2, but does an effective job given the context. In fact some genetic engineers are trying to figure out how to increase the efficiency of RuBisCo, and I wonder if as a result it would lower the resilience of the photosynthetic system as whole?

So, RuBisCo is:

The most abundant protein on earth (40-60% of plant leaf protein content)

The only link between inorganic and organic carbon (turns over more than trillion tons of carbon dioxide each year)

One of the most painfully slowest enzymes known

Does that mean, that if genetic engineers find a way to speed up RuBisCo, they may find a way to increase plant production? Eradicate famine?

Now, here’s a question that I would like to ask:

Why is it, that nature – over millions of years of intensive selection process – failed to increase the rate of carbon fixation to improve efficiency? Did it just find an answer at random through mutation – and that answer may be far from the best possible – but the mutations required to find better solutions were so unlikely, so out of range, that it got stuck optimizing RuBisCo rather then finding a more efficient solution?

Also, if genetic engineers truly wish to improve the rate of plant production, doesn’t it make sense to look for a completely separate solution? The chances of RuBisCo being improved are very slim – nature was all R&D about it over a much greater period of time.

This is where the conversation with my husband comes in

Myk is a game programmer, interested in memory allocation and optimization in games. He basically wants games to run faster, so you don’t have to be subjected to a sight of patchy Elf Paladin (while he is busy loading himself), when all you want is to get a new quest and be on your way.

The conversation I had with him at 2 a.m. was about the difference between memory allocation in offline games – where the environment is extremely predictable and static – and memory allocation in internet browsers – where the environment is unpredictable and dynamic. Think, scripted scenario in Doom vs. what-the-hell-did-i-click-to-end-up-here scenario on internet.

I thought it was a perfect example of optimization vs. resilience in the world of computer science. Web browsers employ a much slower, dispersed (but much less vulnerable to disruption) memory allocation algorithms, whereas game designers always strive for a much more compact, efficient solution, which also is more prone to disruption.

Unlikely comparison? Not so much, when it comes to optimization algorithms. In Doom, you are pretty much predetermined to end up in the web of this adorable brainy spider. In contrast, you really never know where you'll end up in the forest of google interwebs. Funny, how today I started reading an article about tar sands of Alberta and ended up reading about William Windsor the Royal Goat and his daily diet. If you're interested in connection, it went like this: Tar sands – Tar percentage in cigarrettes – Daily acceptable amount of tar in human diet – Royal goat and his ration of two cigarettes per day, which he eats.

My friend and colleague Anthony Dewar has an addiction. He gets to the TED talks website, then wakes up hours later and finds he has looked at over 50 videos. I have a similar problem, when it comes to MIT online lectures. Yesterday Anthony sent me a link to a talk by Tim Harford titled Trial, error, and the God complex. A couple of days earlier, we had a brief conversation about a well-known debate between algorithm vs. heuristic approach followers. Before I proceed, here’s a talk.

When I was working on a civil engineering project in a far-away land called Nova Scotia, my professor made sure we all knew what engineering was about. He once said:

Engineering is an algorithm. The design process can be fast or slow, but the important thing is the guarantee of the perfect solution.