February 11 2010

# Technological Progress happens via Simulated Annealing

by Hang

If you ever learn about optimization, the second technique they teach you after “hill climbing” is something called “simulated annealing“. Forget trying to work through Wikipedia’s definition of it, here’s how I mentally visualize it:

Imagine you your job was to find the highest point on a random Frank Gehry designed building, say the Hotel Marques de Riscal. The problem is, you’re blind so you can only determine the height of one point at a time.

Hotel Marque de Riscal

One way to do it would be to take the entire outside shell of the structure and turn it upside down and then drop a ball bearing in it. When the ball bearing stops moving, you declare that point to be probably the lowest point.

Upside Down Hotel Marque de Riscal

In the field of optimization, this is called hill climbing and it sure is fast but the problem with it is obvious: the ball bearing will likely drop into some rut on the side of the building before reaching the bottom (aka: a local minima).

Simulated annealing is like adding a giant paint shaker and imagining the ball bearing getting heavier over time. At first, the ball bearing is light as a feather and every random vibration is going to make it bounce around, sometimes to a lower point but also sometimes to a higher point. Over time, as the ball bearing gets heavier, it becomes progressively harder to jostle out of it’s rut but when it does move, it moves to a lower rut some distance away. Finally, the ball bearing becomes so heavy it’s virtually impossible to budge, at which point, you declare that position to be probably the lowest point. Simulated annealing can still get trapped in local minima but it usually does a hell of a lot better than hill climbing.

Now, imagine that the ball bearing is society and it’s searching for the solution to a problem like, say, attaching sheets of paper together. If you’re living in any time since the 1930’s, it’s overwhelmingly likely that you’ll be reaching for a “Gem” style paperclip.

A Gem style paperclip

What many people don’t realize is that the Gem paperclip wasn’t the only type of paperclip invented. In fact, the 1909 Websters Dictionary entry on paperclips referred to the “Konaclip” version which was considered the prototypical paperclip of the time.

A Konaclip style paperclip

From 1864 when the first paperclip patent was granted, till 1930 when the gem became dominant, there were literally dozens of designs for paperclips (which, thankfully, has been documented on the Paperclip section of the Early Office Museum). But since the 1930’s, technological progress in the paperclip arena has ground to a halt with the entirety of society standardizing on the Gem and every other style dying in obscurity (For a much more detailed look into the paperclip’s fascinating history, I refer you to the book The Evolution of Useful Things).

To explain this history, I refer back to the simulated annealing analogy. In the early days of paperclipdom, society wasn’t particularly attached to any one design so there was very little momentum in the system. Even a tiny vibration was enough to make another design viable. However, as time went on, certain styles of paperclips started to have legacy effects and it became a race between a few, select alternatives, most notably the Konaclip & the Gem. Finally, society had settled so firmly upon the Gem that it it would take the most extraordinary effort to have any other design supplant it which is why it remains the paperclip of choice to this day. In Simulated Annealing terms, the entropy was now so low that it became practically impossible to escape from a local minima.

Indeed, one of the characteristics of simulated annealing is that it goes through 3 distinct phases. A period of fluid, diverse shifting, a long period of stagnation punctuated by occasional radical shifts and then finally stability from which only incremental improvement is possible.

Looking at the pattern of historical developments of other technologies, it’s possible to spot these same shifts in between phases.

Before 1973, there was a diverse ecosystem of physical interaction paradigms for desktop computing. The most notable examples from that era were Ivar Sutherland’s Sketchpad using light pen interaction and Alan Kay’s tablet style Dynabook.

Dynabook circa 1972

Then, in 1973, the Xerox Alto was released and virtually halted the progress of computer interfaces from that point forward. Nearly every desktop computer today is a recognizable descendant of the Xerox Alto.

Xerox Alto circa 1973

The list of genuine innovations in physical UI that have been adopted since the Alto are as laughably few in number as they are trivial in scope. In rough order of importance: Speakers, microphones, webcams, the mouse wheel, wireless networking, higher resolution screens, a numpad, flatter screens & the Windows/Command button (this is not a sampling, it’s the complete list).

The list of potential innovations are as staggering as they are futile: Pen computing, Tabletop computing, Tablet computing, Augmented & Virtual Reality, Touch based interaction, Multitouch, MultiMouse, Bimanual Interaction, Single Display Groupware, 3D displays and the list goes on and on. In the last 37 years, billions of dollars have been poured into these alternative technologies in a vain attempt to supplant the Xerox Alto as the dominant paradigm with pretty much nothing to show from all that work except a bunch of pretty pilot projects.

And with each passing year, it’s become more and more difficult to foster a viable alternative paradigm because more and more gets invested into keeping Alto style computing firmly entrenched. Software is designed for a keyboard+mouse+screen, people have invested time learning the intricacies of a WIMP OS and thousands of companies have a vested interest in keeping the system entrenched.

The same pattern can be found in keyboard layouts with QWERTY, programming languages with C, web standards with HTML+CSS+JS, Office Productivity with Microsoft Office, Email with Eudora and so forth. In every instance, a period of rapid innovation was brought abruptly to a close with a dominant technology and, from that point forward, genuine changes in the status quo happen at best every decade and only after extraordinary effort *.

Almost every discussion of a new innovation focuses on the details of the innovation almost exclusively without considering the broader social context. Such discussion manages to miss the vital point that adoption of an innovation depends only a tiny bit on the actual innovation and almost completely on the current progress of society. Once a technology has reached a certain maturity point, whatever local minima that society has currently reached will establish itself be the dominant technology until the end of time regardless of what technological progress has occurred or has yet to occur. Like a game of musical chairs, it’s all about when the music stops. If you’ve managed to grab a seat at the table, then you’ll stay there forever, if you missed your spot, then it’s going to take extraordinary effort to regain it, no matter how much of an improvement you are over the status quo.

* This same model also explains why European & Japanese mobile & broadband technology is so far in advance of the US even thought the US were the pioneers of both technologies. Because the US started early, it’s industry matured around an earlier technological & social standard which caused it to fall behind the less mature, more technologically limber peers.

February 27 2009

# Open vs Closed

by Hang

Geeks have been so used to hearing about how open systems beat out close systems that they seem surprisingly blind to what I see is an obvious evolution in the web into which closed systems are winning. The 90’s were all about tearing down of walls and openness and standards ruling the roost. The Internet beat AOL, Bittorrent beat RIAA, reddit and digg are beating the New York Times. It’s easy to conclude from this that, on a long enough timeline, open systems always prevail.

But what I see is a shift in the opposite direction in which we increasingly depend more on facebook, the iPhone and other closed, managed services. I’m not quite prepared to stake my thinking on a single answer at this point but it seems to be based a lot on a closed service’s greater ability to create a compelling user experience and a shift in technological maturity which has made this a greater selling point.

I had the chance to use a Windows Mobile phone for 2 weeks and the user experience was absolutely shockingly abysmal compared to my iPhone. When I talked to Windows Mobile defenders about this, they inevitably raise the ability to use it as a wireless AP and as a turn by turn navigation device and have background programs and as a freaking multimedia message sender but I think such concerns are becoming increasingly more irrelevant to a larger proportion of the population. What’s compelling about the iPhone is that the things it can do, it does beautifully and that it has the fortitude to do what it took to make that experience compelling. Unfortunately, compelling user experiences are sometimes at odds with freedom.

Freedom also means the freedom to be mediocre and there’s frankly a lot of windows mobile apps which are shockingly poorly made. Freedom also means freedom to build complex things which require a complex abstraction to support them. Apple’s decision to have one program running at a time is restrictive but it also means it never needs to expose manual memory management to the user.

As a developer, I’m appaled at the arrogance and tone deafness that Apple treats the developer community but I also recognise that these are some of the eggs Apple has to break to make a compelling user experience omlette. Other phone manufacturers still seem to be missing the point and are now bending over backwards to emphasize how open and free they are without realising that’s precisely why people abandoned such platforms as unusable.

February 11 2009

by Hang

A post on the O’Reilly Radar mirrors some thoughts I’ve been having. We have passed over a distinct phase shift in history from when only some things were remembered to when everything is rememebered and in the future, this distinction is only going to get more and more stark. In the future, every single edit in wikipedia will be preserved, every tweet and every livejournal entry, we’ll have more information on a 3rd rate reality tv star from 2005 than most presidents and this is going to radically alter the way future generations interpret the past.

The curious thing is that phase shift happened a long time before anyone thought there would be a phase shift. I estimate the phase shift to be at the point of the first world war. Everything before then will cross into a vague sort of blur, Greeks, Romans, Renaissance, Industrial Revolution. Events spaced 100s of years apart. But after that point, it’ll be WWI, Depression, WWII, Cold War. Events spaced 10 years apart.

However, the very nature of this enormous amount of data also casts a certain shape on how we understand our past. Already, I’ve noticed there are certain things which are very hard to Google for. For example, material about a person/thing before it got famous. Finding out what the world was like 10 years ago through Google turns out to be surprisingly difficult. Another rather curious quirk of Google is that it’s almost impossible to find out anything about Wikipedia. Any search you do only results in Wikipedia articles.

When most people think about the future, they map their own notions of significance onto future generations. But they often fail to account for the vagaries of time and fashion and how the future will project it’s own inevitable biases on us as we do on our past.

February 8 2009

# Storage costs

by Hang

4 years ago, a 100Gb Hard Drive was around \$100 which lead me to the observation that it was now cheaper to videotape a lecture than to print out the notes and bring them to class.

Now that prices for hard drives have now falled below \$100 for a Terabyte, that same hour long lecture, recorded in high definition compressed video costs roughly the same as printing out a single piece of paper…

February 7 2009

# The future hiding in plain sight

by Hang

Every once in a while, I run into someone arguing that innovation and progress is now dead and the argument usually runs something like this:

Think of all the world changing “modern” inventions: Computers, the internet, cell phones etc. All of these things were actually invented over 40 years ago. We haven’t actually had any major innovation since then, only minor variations on a theme like Facebook and SMS. Ergo, we have already left the golden era of innovation.

However, this is a fallacious argument, if we were to go back 40 years, we could make the exact same claim. Telephones, rockets and the jet aircraft were the world changing modern inventions of that era and no world changing innovation has happened since then.

In the same way that it’s easier to see your hand than your nose, innovation also looks the most clear from a comfortable distance away. What this also means is that, if you know where to look, you can spot the shape of 2049. Innovations that will be considered world changing then are brewing right now and all it requires to predict it is a sufficient degree of insight about the present day.

November 29 2008

# Dominant categories

by Hang

If you cross a camera with a computer, you’ll end up with a computer. If you cross a car with a computer, you’ll end up with a computer. If you cross a phone with a computer, you’ll end up with a phone.

Communication trumps computation as the dominant category.

November 19 2008

# Thoughts on virtual worlds

by Hang

I went to a talk today on virtual worlds and it got me thinking a bit. I’ve always been somewhat of a virtual worlds skeptic. Virtual worlds is one of those things where the concept is so easy to understand that when you’re first exposed to it as a layman, immediately an infinite field of possibility stretches out before you. You end up envisioning something that could have come out of a William Gibson or Neal Stephenson novel where all our transactions would be conducted in a virtual 3D space. The problem is, as soon as you dig a bit below the surface, some real serious usability issues immediately pop up and I’m not convinced that virtual worlds provided a compelling solution.

The power of computer interfaces is precisely that it breaks away from the strict physical constraints of the real world. It is the types of non-physical abstractions that really leverage the full power of using a machine. Imagine if you tried to build Amazon in Second Life, it would be a disaster. The things which make Amazon so powerful is precisely the things which escape from the limitations of real life bookstores. It’s the ability to store millions of books and find books via search rather than navigation and the ability to slice and dice the book collection in all sorts of interesting ways while conventional bookstores are stuck with only a single sort order which make Amazon succeed. Virtual worlds always struck me as an idealistic but naive attempt to add back in the physical constraints that we worked so hard to get rid of.

However, as I was sitting and listening to the talk, it struck me that the real benefit of virtual worlds is to allow for shared virtual experiences. Our current technology really sucks at delivering a shared experience to people who are not in the same physical world as you.

Think of a group of teenage girls who go shopping together at a mall. They might start independently drifting and forming clusters around certain objects. They can gather around a particular item and point out areas of interest and physically manipulate the item. Conversation will be constant and only semi-directed and the entire social experience has a huge amount of depth and richness.

Now think about shopping online. While we do a good job of replicating the commerce aspects but the social experience is hugely impoverished. It basically amounts to sharing links with each other and then verbally describing what you see on the page that should interest them. Sure, you could imagine some fancy, heavyweight collaboration software that does some sort of shared screen and fancy mouse tracking but there is an inherent limitation of how well you can replicate a shared experience on a GUI platform because there’s so little presence information.

The lack of presence in traditional software is part of it’s power. The only way to create something as powerful as Amazon is to abandon the idea of presence. To abandon the concept of shared spaces and canonical representations. But this lack of presence also means that it’s impossible to deliver any meaningful shared experience.

Virtual worlds represent the other compromise. To accept everything that sucks and is limiting about a physical representation and to embrace those constraints rather than fighting against them. The up side of doing this is that you now can allow for the types of powerful shared experiences that we have in the real world.

It’s no coincidence that MMORPGs are the first real success we’ve had with virtual worlds. MMORPGs are founded on having shared experiences and they derive their power from making presence an integral part of the gameplay. However, I think this concept of shared experience allows us to take a much more nuanced view of what the impact of virtual worlds will be. It’ll allow us to gain a more sober insight of what virtual worlds can and cannot deliver which seems much more credible than the utopia that gets hyped in the mainstream press.

November 1 2008

# Nov 1st (day 20): “Just because you can, doesn’t mean you should. Just because we shouldn’t, doesn’t mean we won’t”

by Hang

Just because you can, doesn’t mean you should. Just because we shouldn’t, doesn’t mean we won’t

It seems slightly curious to be how public debate on various technology issues fall neatly on two sides:

• This is technologically inevitable and therefore, we should embrace it as progress for mankind
• This is socially corrosive and so therefore we should fight as much as possible to combat it

These lines are relatively similar regardless of whether the debate is about music piracy, biofuels, strong encryption, ad blocking software, transhumanism or biotechnology. The obvious missing argument is: “This is technologically inevitable and also socially corrosive”.

It seems entirely reasonable to me that music piracy will be harmful to most artists, strong encryption will be used by terrorists more than “freedom fighters”, ad blocking will severely hamper the ability to monetize the internet and transhumanism will lead to humans being kept as pets of intelligent AI. Such a view is not popular because it presents no solutions, only a slow grind towards inevitability. What’s more, it’s in contrast to the standard stories about progress and the long steady march towards the future.

Bill Bishop in The Big Sort talks about how people are increasingly segregating themselves into more intelectually homogenous communities since the 70’s. What’s even more disturbing, the more educated you are, the less change you have of meeting someone who disagrees with you. The proximate causes of this are easy to explain, as our society has gotten more wealthy, “lifestyle” factors trump all else in the choice of where to live and people self-segregate into homogenous social groups.

I would consider myself as someone who actively works to meet people who disagree with me and yet even I’m no exception to the rule. On the eve of the 2008 election, I can count a total of two people within my social network who I know to be voting for McCain. Every single other person, I’m almost certain is an Obama supporter. What does this hold for the future or reasoned political discourse?

We’ve given people choice, we’ve given people liberty and diversity and the right to pursue wealth and happiness but the result is a stultifying, homogenous echo chamber. This wasn’t a bug, it’s not something that can be engineered out, it’s what people want.

October 3 2008

# Collaborative job interviewing

by Hang

Why don’t we apply the collaborative filtering approach to finding the right job candidate?

Here’s a simple model of how it could work for say, a network engineer:

Any and every potential candidate is invited to submit potential questions to ask which they think could seperate out a good network engineer from a bad network engineer over the course of a 24 hour period.

Once these questions are accumulated, all candidates are split into two groups and given one hour to use a collaborative voting system to determine which questions they feel are the best ones.

Each group gives the top n questions to the other group and they both have 3 hours to complete the test.

Each group now collaboratively marks the other group. A right answer is one which concurs with the answers of those who got the most right answers. In the end, the top 5 people with the highest score from each group are selected for a in depth interview.

Is this approach better than the typical HR keyword search based weeding approach? Is it robust enough to efficiently weed out the poor candidates while pushing the good ones to be great? It seems like an interesting experiment to me.

August 3 2008

# Software as a backdrop:

by Hang

We must first recognize that what a town or building is, is governed, above all, by what is happening there. […] Those of us who are concerned with buildings tend to forget too easily that all the life and soul of a place, all of our experiences there, depend not simply on the physical environment, but on the patterns of events which we experience there.

– Christopher Alexander, The Timeless Way of Building, p62

Software is not about code, it’s about experiences. It’s about people doing things. Your software should serve as a backdrop to this, an enabler and a force multiplier. But keep in mind that software is never the center of the show.

Stop thinking about your product in terms of code, in terms of technology and features. Instead, your software is stories, it’s actions and people doing stuff. If you haven’t got people doing stuff, then you don’t actually have software, just a bunch of bytes sitting on a server. When people change the stuff they’re doing, your software has changed.

As a designer, you need to be always mindful that you’re designing spaces, it’s up to the users to inhabit them.