Monday, December 19, 2011

The End of PCs?

You are most likely reading this blog article on a machine that would have been considered inconceivably powerful for most of the scope of human history.  You can easily communicate with people around the world in the blink of an eye.  You can effortlessly solve mathematical problems that would have confounded Euclid and Archimedes.  You can access an information repository greater than the Library of Alexandria.  If you transported this machine back a thousand years or so (and lets pretend it would have had access to the necessary battery life and internet knowledge bases), wars would have been fought to possess it.

You hold in your hands the power of the Gods.

"With great power comes great responsibility." (Spider-man comics)

Spider-man learned this lesson to his cost when his inaction lead to the death of his beloved Uncle.  And Spider-man's powers were insignificant next to the powers of a modern personal computer.  This power is literally in your grasp.  Are you ready to accept the mantle of responsibility?

You probably think I'm stretching a point here.  If you're like most people, you just want to use your computer to read the news, gossip with friends on Facebook, and maybe watch some videos on Youtube.  You're just minding your own business.  You have no intention whatsoever of, say, joining a ring of criminals in Eastern Europe and participating in a scheme to extort money from e-commerce sites.  Except that, unless youve been extraordinarily careful with your super-powers, you probably already have.

"All that is necessary for the triumph of evil is that good men do nothing." (Edmund Burke)

The most common form of cyber-crime involves collecting a group of PCs to form a botnet.  This involves infecting each of these PCs with malware, which quietly turns that PC into a slave of the botnet owner, rather than the PC owner.  If the malware is at all clever at its task (which most of them are), it leaves the PC owner oblivious to the fact that anything has changed.  You still think that you're just minding your own business.  You don't realize that you've started engaging in criminal activity.

If it's any consolation, you're not the only inadvertent criminal out there.  You're in the company of millions of others.  Tens of millions.  Possibly hundreds of millions.  When you're talking about this magnitude of numbers, its hard to suggest a lack of personal ethics or failure of responsibility from any particular individual.  What we have is a systemic problem.  Systemic problems require systemic solutions.

"We have met the enemy and he is us." (Pogo cartoon strip)

It is possible to keep a PC free of malware.  You need to keep up to date with your patches.  Not just your operating system patches, however.  Also your browser patches.  And your Adobe patches.  And Java.  And any of the tens or hundreds of other programs you have installed on your computer.  And you need to make sure that you have a detailed understanding of any peer to peer software you run, in order to ensure that it's configured correctly.  And know how to configure your NAT router or firewall correctly.  And understand how to create good passwords.  And understand how to spot false links in emails.

The list goes on and on.  It can be done.  But its a full time job just to keep up with it.

There is an alternative.  It is to realize that not everybody has what it takes to be Spider-man, and not even to try.  This means something that makes most people cringe.  It means the end of PCs.

As revolutionary as this sounds, it's not actually a new idea.  We've already started using iPads, which are not PCs.  Not in the traditional sense.  They are extraordinarily limited.  Theres only one way to get additional software on them.  They don't have an exposed file system.  You can't connect them to all the cool USB devices that make your PC so flexible.  They are limited.  They are restricted.  They are, in a word, much safer than PCs.

"PCs are going to be like trucks.  They're still going to be around.  They're still going to have value.  But they're going to be used by one out of x people." (Steve Jobs)

Steve Jobs had an interesting vision: most people don't need PCs.  Most people don't need the level of power and flexibility that a full-blown computer provides.  You don't need a PC to browse the internet, check your email, and watch Youtube.  And Apple isn't simply filling this need with iPads.  They're moving in that direction with Macs as well.  In March of 2012, Apple will be implementing sandboxing for all applications sold through the Mac store.  This means that every application must request the specific permissions it will require before it is sold by Apple.  And Apple will have to approve it.  This will just be the online store.  At first.  But if Apple has its way, I suspect that it won't be long before the online store becomes the only way to purchase applications for a Mac.

This is going to slow down innovation.  People won't be able to write and release new and interesting applications nearly as fast as they could in the past.  If this had been the model back in the 80s, personal computers might never have gotten off the ground.  But we're no longer in the 80s.  Maybe it's ok for us to finally slow down a tad.

Of course, this doesn't impact Microsoft in the least.  Not yet.  But it seems that even Microsoft is realizing that unlimited power and flexibility in the operating system is not always such a good thing.  In 2001, feeling a surge of Unix envy, Microsoft released a feature called "raw sockets" into Windows XP.  Raw Sockets are cool.  They're powerful.  You can do all sorts of interesting things with them.  Maybe a little too interesting.  Some hackers leveraged them to perform some sophisticated attacks, some against Microsoft itself.  Raw sockets were quietly removed a few service packs later.

We may not yet be at the end of the PC era.  But maybe we should be.  Because most people simply don't need them.  Most people are unable or unwilling to spend the time and energy to use them safely.  And that's OK.  Not everybody needs to be Spider-man.

Monday, December 12, 2011

Bruce's Law of Technology

Once upon a time, Information Technology consisted primarily of Mainframes, sold by IBM and one or two small time competitors.  Oh sure, there were a few Unix and VAX minicomputers around if you looked hard enough, but these were being used mostly by scientists and engineers, and nobody paid them much mind.  Mainframes were running the corporations.  Mainframes were where the action was.

Then Apple (and quickly followed by several others, including IBM) released computers that would fit onto a single desktop.  They were small.  They didn't have much power.  They lacked the basic functionality needed to do any kind of real computing, such as job scheduling.  The IT professionals gave them a quick look, realized they were toys, and then promptly ignored them, to get back to the real business of doing IT.

Once upon a time, music was played on physical media.  Changes in technology involved migrating from one media to the next.  LPs gave way to tape cassettes (with a short detour through 8 track tapes), and then to Compact Disks.  Record labels looked forward to these changes, because it meant they could resell all their old titles in the new media.

Then, somewhere in the nineties, people started talking about music files called MP3s, which could play directly on computers, or even on dedicated devices.  These files took up a large percentage of the hard drive space that was available at the time.  Their sound quality was lousy.  The record labels took a look at MP3s, realized they couldn't compete with CD quality music, and then promptly ignored them, to get back to the real business of selling music.

Once upon a time, books consisted of sheets of paper bound together between two covers. People liked their paper books a lot.  So did authors and publishers.  They were cheap and portable.  The format had survived relatively unchanged for roughly a thousand years.  They seemed likely to be the dominant format for the next thousand years.

Then it became possible to store books on digital media.  It was lousy.  Nobody liked reading a CD Rom on their computer desktop.  Portable book readers had poor screens, terrible battery life, and were all incompatible with each other.  Publishers took a quick look at these eBooks, realized they'd never catch on, and then promptly ignored them, to get back to the real business of publishing paper books.

Clearly, we have a pattern here.  A pattern that was consistently missed by the people who most desperately needed to spot it.  They failed to understand what was happening, because they ignored Bruce's Law of Technology (which is perhaps understandable, as it is being published here for the first time).  Bruce's Law of Technology is as follows:

"New technology sucks.  Until, suddenly and unexpectedly, it doesn't."

It seems obvious.  But based on the anecdotes above (and I could add many more), people consistently ignore it's implications.  They know that technology improves.  But they dont want to think about the possibility that it might overturn the world they know and understand and love.  They see its limitations, and refuse to see its possibilities, until it's far too late to do anything about it.

Somewhere out there, theres technology that has the potential to turn your world upside down.  When you discover that technology, dont discount it because it sucks.  Plan ahead for what the new world will look like once it stops sucking.  Think about how you will need to reinvent yourself, no matter how unpleasant that prospect may be.  Remember that not reinventing yourself will be much worse.  Remember Bruces Law of Technology.

Monday, December 5, 2011

The Limits of Reason

In the late eighteenth and early nineteenth centuries, a device known as the Mechanical Turk toured Europe and the United States, astounding it’s audiences by playing chess with an impressive degree of skill.  Many leading thinkers and engineers of the day were utterly convinced that it was a true chess playing machine, although there were persistent suspicions that perhaps the device (which included a large cabinet, apparently filled with gears and cogs) hid a real human chess player, possibly a dwarf, in its interior.

One of the most convincing exposes on the subject was written by Edgar Allen Poe in 1836.  His article was printed in the Southern Literary Messenger, and elicited responses from numerous newspapers and magazines including the New Yorker and the Baltimore Gazette.  It was well written, and completely correct in it’s conclusions – the Mechanical Turk was eventually revealed as a fraud.  However, it’s interesting to note that some of the most critical arguments employed by Poe were utterly incorrect.

His primary point was that as a mechanical device, it must necessarily be 100% fixed and determinate.  From this foundation, he makes several observations about the nature of the machine: “The moves of the Turk are not made at regular intervals of time, but accommodate themselves to the moves of the antagonist – although this point (of regularity), so important in all kinds of mechanical contrivance, might have been readily brought about by limiting the time allowed for the moves of the antagonist.”

He goes on to make a very interesting argument about the nature of the machine's purported algorithm: “The Automation does not invariably win the game.  Were the machine a pure machine, this would not be the case – it would always win.  The principle being discovered by which a machine can be made to play a game of chess, an extension of the same principle would enable it to win a game; a further extension would enable it to win all games – that is, to beat any possible game of an antagonist.  A little consideration will convince any one that the difficulty of making a machine beat all games is not in the least degree greater, as regards the principle of the operations necessary, than that of making it beat a single game.”

I’m not aware that any of Poe’s contemporaries had any disagreements with these points.  However, from our modern perspective, it’s easy to see that he was utterly incorrect.  We have chess playing machines today.  And what we know about the principles of making them play chess did not inevitably lead to an understanding of how to make them play perfect chess – it took decades of improvement (mostly on the hardware side) to evolve from the first primitive chess program to Deep Blue, which finally defeated world chess champion Gary Kasparov.  Even now that we've left human players far behind, nobody would claim that any computer in the foreseeable future could play a “perfect” game of chess (a feat which would require calculating every conceivable move on the chess board – a trivial exercise with a game like tic-tac-toe, but infeasible on a 64 square chess board).  Nor has our success at developing computer chess programs led to similar success teaching computers to master the much more fluid game of Go.

What would it have taken to convince Poe that he was wrong, especially when his ultimate conclusion was correct?  We could try to introduce him to the concept of heuristics, or allowing variable response times through the use of triggers, or even introducing the concept of indeterminacy to a system by seeding a complex algorithm with an external (and completely random) value.  Maybe this would have worked.  But none of this would be nearly as effective as simply having him grow up in a world where computers play chess all the time, and nobody thinks very much about it.

We like to think of ourselves as living in the age of reason and critical thinking.  We like to point at our technological progress and say “Here is where logic and reason have taken us.  They will solve any problem.”  We forget how much of what we know is built not on reason, but on trial and error, iterative improvement, and pure luck.