Appsterdam talk “Chips: The Engine Beneath Your Apps”

Today during lunch, I gave a talk at Appsterdam where I spoke about what’s inside your phone. We start with an overview of the semiconductor industry, and take a deeper look at what makes your phone do all the things it can do: the chips inside.  I made the slides available through slideshare, and Erik Romijn did a quick writeup which you can find on his website.

Rain Man

[after Ray spills a box of toothpicks on the floor]

Raymond: 82, 82, 82.
Charlie: 82 what?
Raymond: Toothpicks.
Charlie: There’s a lot more than 82 toothpicks, Ray.
Raymond: 246 total.
Charlie: How many?
Sally Dibbs: 250.
Charlie: Pretty close.
Sally Dibbs: There’s four left in the box.

The idea behind this famous Rain Man scene actually comes from the true story “The Twins,” told in the fascinating book The Man Who Mistook His Wife for a Hat by British neurologist and author Oliver Sacks. In that story, a box with 111 matches falls on the floor, and the twins instantly notice that what they’re seeing in front of them is three times the prime number 37. Sacks confirms the number by counting the matches by hand. In the movie, the directors probably wanted to leave out the counting from the scene, and solved this by leaving a few toothpicks in the unused box. Unfortunately, they missed the fact that the twins were primarily interested in prime numbers, which clearly 82 and 246 are not.

For all those software and hardware developers who can’t recognize multiples of prime numbers in a pile of matches at the blink of an eye, there are models, which operate at higher levels of abstraction. Abstraction, you see, is a wonderful weapon against complexity.

These days, even small software and hardware systems consist of millions of lines of code. In my pocket, I typically carry about 30 million lines of code, by means of an Android phone. On my desk there’s a PC, which includes roughly 50 million lines of code as part of Windows, and another 50 million lines of code by means of an Ubuntu installation that runs under a virtual machine. That’s just the base configuration. I’m not counting any of the applications that run on top of this machine. I’m not counting all the code that’s just a split second away from my fingers, by means of running a Google search.

But complexity doesn’t necessarily scale with the number of lines of code. It can be incredibly difficult to find a bug in a snippet of code that’s only 20 lines. Now image trying to find a bug in 100 million+ lines of code. Or being assigned to optimize an application that consists of 1 million lines of code.

One remedy to control such huge complexity is to split the system into modules, and to keep the code within each module as simple, readable, and understandable as possible. Another remedy is, for those sections of the design that allow it, to raise them to a higher level of abstraction. The nice thing about hardware and software is that these  high-level models can be automatically translated to an implementation. And, since this translation is fully automated and follows rules that are proven to be correct, the implementation is often guaranteed to be accurate to the model.

Using a model, one can briefly describe what is otherwise too longwinded or complex when stated using a programming language. This keeps the complexity manageable for the designer. As the complexity of systems increases, the use of models should also increase. We’re not all Rain Man, after all, who always sees the trees for the forest.

This item was previously published in the Dutch magazine Bits&Chips, in their model-based-design issue. Thanks for translating Dutch-American Translations.

Five similarities between Lego and Apple

The other day it was my youngest child’s 5th birthday. I was very happy that his big wish was to get a lot of Lego. I have fond memories of building stuff out of these little bricks, and I believe it stimulates creativity and problem solving. So we spent a few hours putting the models together, which is when it struck me how similar Lego is to Apple. Here are five traits that stood out to me.

1. Quality is everything

Lego’s motto is “det bedste er ikke for godt” which means roughly “only the best is the best,” or more literally “the best is never too good.” Ole Kirk Christiansen, Lego’s founder,  encouraged his employees never to skimp on quality, a value he believed in strongly. Steve Jobs said, “Be a yardstick of quality. Some people aren’t used to an environment where excellence is expected.” Just like Lego, Apple is known for its high-quality products, especially from a design and mechanical perspective.

2. The unboxing experience counts

The unpacking is important. Do you know any other toy makers that clearly number their bags in the order you need to put the model together? In addition, the plastic bags that contain the bricks can easily be ripped and have a high-quality feel to them. The booklets are extremely clear in their instructions and the drawings couldn’t be better. Before Apple, retail packaging of consumer electronics was often a simple cardboard box simply there to protect the device, and sometimes had a sheet of clear plastic so that you could see the product inside. I’m sure you’ve all unboxed an Apple device before; the way they pack and wrap things raised the bar for everyone in consumer electronics.

3. The more you have, the greater the value

iTunes, iCloud, FaceTime, Airplay, iPad, iPhone, Mac: all of Apple’s products tie into each other. Once you have acquired your first Apple device, you’re likely to buy another. And once you have two devices, it makes a lot more sense to buy another one. Once you’re in their ecosystem, it’s hard to get out. Everything locks into each other; the more you have, the more valuable the products become. This is exactly what Lego does. When you have one box, you can build a couple of models, but after you’ve bought another box, you can combine the parts and build new things that weren’t possible before. Lego thought about this right from the beginning. Rule 8 from their Guide to Success is “The more Lego, the greater the value.”

4. Theme parks enhance the brand

The Apple stores are basically Apple’s theme parks. The interior design is amazing, the layouts are excellent, and the stores aren’t cluttered by displaying too many products. And although Apple is trying to sell its products, it’s just fine with customers coming in to look around and play. In contrast to other retail stores, Apple doesn’t have to be afraid you’ll go home and order online at a lower price. Lego has seven theme parks, and three more are under construction. And even though they mainly focus on rides, everything seems to be made out of Lego, and they all include large Lego stores.

5. Ship a lot of product

This focus on quality, user experience, and the ecosystem has resulted in corporate success. The Lego Group estimates that in the course of five decades it has produced some 400 billion Lego blocks. Production runs at 1140 bricks per second. According to an article in BusinessWeek, Lego could be considered the world’s no. 1 tire manufacturer; they produce 306 million tiny rubber tires a year. has excellent graphs on Apple volumes. In 2012, Apple shipped 218M iOS devices, and in January 2013, Apple announced that there have been over 40 billion apps downloaded from their App Store.

There you have it. Lego and Apple. Two stories of great execution, with a lot of similarities. Two companies that have changed the world and turned it into a better place. Mostly.