Book Review: Cryptonomicon by Neal Stephenson

If there’s ever a book that you can say is pure geek indulgence, it’s Cryptonomicon. No other book I’ve seen takes the abstract concepts of topics as varied as UNIX, cryptography and normalising preferences between siblings for Grandma’s inheritance through a distribution on a cartesian plane formed in a parking lot. You can tell this isn’t your daddy’s war novel.

Stephenson weaves together two stories, interlinked through blood – in the 1930s, Lawrence Waterhouse, a borderline-Autistic mathematician encounters Alan Turing shortly before World War II is due to break out; Bobby Shaftoe is a U.S. Marine stationed in Asia, retreating from Shanghai ahead of the march of the Japanese through China, while Goto Dengo is Bobby’s counterpart of sorts on the Japanese side, a soldier who dares to think of self-preservation ahead of the Emperor’s wishes.

In the late 90s, Randy Waterhouse is being dragged into a business venture by his friend and former business partner Avi; he ends up working with Amy and her father Douglas Macarthur Shaftoe, son of Bobby. They employ the services of one Goto Engineering, which, yes, is presided over by Goto Dengo himself. All this has the backdrop of the mysterious Societas Eroditorum in the background, with a seemingly ageless preacher by the unlikely name of Enoch Root playing a part in both timelines.

This is all not even mentioning the central push of this novel, which is so loaded with technical details it’ll make your head spin: the Cryptonomicon is all about cryptography, encoding messages for secure transmission. It has actual technical details, an algorithm and even an actual Perl script for encoding and decoding a method of encryption specifically invented for this book. There’s even an appendix dedicated to explaining the method for the audience that didn’t catch on through the novel. I mean, damn!

Although some of the technical aspects can be a bit overbearing in the middle of a novel, and the different voices of the narrators are occasionally jarring – albeit pleasingly distinct – this stands on its own as a thriller without the technical background.

The technical details are more easily understood if you come from a software background, but nevertheless I would suspect this would add greatly to the realism, at least for all those that know precious little about both the code-breaking efforts in WWII and the workings of today’s technology.

Rarely does Stephenson use these elements gratuitously. His writing is dense and yet spare, descriptive without being prescriptive – you can easily imagine these people in your head, but the descriptions aren’t overly specific or belaboured.  In some ways, perhaps that does truly identify it as a geek novel: it says enough to get the salient points across, but without being needlessly wordy about it.

Cryptonomicon suffers a little from the same issue many a novel that uses historical characters in its narrative, namely that had the fictional characters actually be interacting with the non-fictional ones in the ways described, the non-fictional novel should be equally if more significant than the ones the actual characters deliver.

Ripping and engaging yarn, hard to put down. ★★★★

Windows 8 Developer Preview

I’ve been an Apple user since 2006, but I’ve been a Windows user since 1993 – the sheer gravity of Microsoft Windows on the computing landscape is inescapable, and it’s given me a certain amount of perspective: you can’t be ideological about what you use to get your work done[ref]Or at least, it doesn’t help. YMMV.[/ref].

Last week, Microsoft introduced the upcoming Windows 8 at its BUILD conference to an audience of developers. In many ways, it’s almost the direct opposite of what Apple would do – introduce to devs and market to devs the biggest change in the user interface since Windows 95, instead of a consumer-friendly presentation. The key here is that Microsoft needs developers on board much more than they need the consumers – for all the hype Apple gets, it’s still only around 10% of the computing market, and the overwhelming weight of Microsoft in the corporate environment will give Windows inertia for years.

Windows 8 does something totally different, though: it pivots Microsoft’s market towards the consumer. This is a user interface that takes Windows Phone 7 and turns it up to 11 – everything is big fonted, with broad splashes of colour and blocks as the “icons” of applications, all geared towards touch. The traditional desktop-and-window application model that defines the name “Windows” is relegated to a “Classic”-style compatibility mode.

Microsoft is pitching this as the unifying OS, bringing tablets and desktops together, but what we’ve seen thus far of the OS suggests tablets and touchable screens are the way of the future as far as Microsoft is concerned, and the old-school of peripheral-based computing is a legacy to be supported.

To Microsoft’s credit though, that legacy is supported – as evidenced by the free public release of the developer preview build. You can go download it here, install away on any device[ref]Min requirements: 1GHz, 1GB RAM, 16GB HDD, DX9 Graphics – but it runs on virtual machines – I’m using VirtualBox[/ref] you so chose (with the obvious caveat emptor about being pre-release software), and have a play with it. That’s something you’d never see from Apple, and it goes to show – in my mind – the extent to which Microsoft is trying to get developers and cutting-edge users on board before this thing goes “live”.

Windows 8 is a complete rethink of how Windows works, and it will polarise. No longer are you opening programs from shortcuts to live in confined windows alongside other programs – you “tap” a “tile”, launching the program full screen. You do actions with swipes and taps, programs interact through “contracts”, and the idea of multitasking takes a bit of a back seat. Even IE 10 in “Metro” mode goes down the Apple route – no third-party plugins supported. This spells the end for Flash as we know it, if Windows too plunges the knife into Adobe’s back.

This is all not to say that touch is the only way to go – after all, this is a unifying effort. Windows offers the cop-out of Desktop mode, instantly familiar but also instantly dated in comparison to Metro-based apps. The desktop view is not designed for touch, so it’ll be interesting to see how this integrates into the wider Windows environment.

I’ve played around with the dev build in a virtual machine, and it really intrigues me as to where Microsoft is going with this. Metro really is a bottom-up rethink – it would be easier to get most people to understand the pivot from Windows to Mac than Windows 7 to Windows 8. Microsoft is taking that risk, willing to see the experiment through to ensure that a unified approach is being used for the OS. It’s admirable that there’s no desire to fracture the OS, but sometimes its unclear which will be the lead element of the design – for instance, Metro’s control panel doesn’t have half the options and offers the kick out to Desktop mode Control Panel to grant you full control.

All in all, I like it – it’s refreshing to see a fresh approach from Microsoft, and in taking the big & bold aspects of Windows Phone 7 to the full desktop scale, Microsoft has brought innovation back to the field. While Windows 8 currently feels built-for-touch, I’m sure Microsoft will refine this to make it more palatable to non-touch users prior to release. The Metro UI forces a total rethink on the developer, and some will thrive while others falter. This goes doubly so for software framework providers – Flash and Java appear to have their days numbered in the new format, and Microsoft are obviously pushing hard to enforce some control over their environment.

What does this mean for enterprise? I would suspect many IT managers are looking at Windows 8 with a lot of dread. Windows 7 tweaked the taskbar, but fundamentally you could follow the idea of programs and program management through from Windows 3.1. Windows 8 asks you to change your paradigm entirely, and those custom built VB6 programs from the guys you had spare after the Y2K bug was fixed are finally going to bite the bullet in terms of seamless experience. This is going to be a hard transition, and some users will be alienated along the way – I wouldn’t put it past Microsoft releasing a “professional” edition for non-touch devices where the traditional desktop remains the primary focus.

Finally, what does it mean for Apple? Simple: They’ve got a fight on their hands.

Back to the Future

We’ve been here before. I wonder if anyone else recognises it?

(Well, I haven’t, though I’ve read about it. Let me explain…)

There’s an eerie sense of deja vu about the computer industry right now, if you look at it the right way.  The PC wars were pretty much over by the time I was born, definitely so by the time I was old enough to be conscious of a computer, but from what I’ve gleaned from my history books and a little recent reading, things weren’t always so straightforward in the computer industry as they’ve been over the last few years.

Once upon a time thirty years ago, there were many computer manufacturers, almost all with significant differences in key technology components of their machines. The chips inside were different, the operating systems weren’t compatible, and if you made a bet on technology occasionally it didn’t pay out – the computer you bought today might be gone tomorrow.

Apple was there, as was Microsoft. That was the genesis of these two giants of the industry, and their approach to the computing world at the time led to their wildly differing fortunes in the 90s. Apple worked as it does now – to control the whole process end-to-end, with the hardware and the software all under the Apple umbrella.

Microsoft on the other hand tied up with a key partner in IBM and picked just the software side of the equation. Someone else would build the hardware, but anywhere Microsoft’s operating system ran its programs could run, too.

Hardware manufacturers were quickly sidelined as Microsoft defined their interaction with the machine. In the end, even IBM was sidelined as “IBM PC-compatible” quickly became the “Wintel” world.

It all looked like a war that was over until the smartphone redefined what a personal computer was.

Today, we’ve got something very much like the 80s playing out again in the tablet and smartphone market – competing, incompatible OSes, different hardware architectures, and a market that is quickly proliferating with options.

Apple’s got a head start like they did last time, and are controlling the end-to-end chain even more strongly than before. They’ve got a major competitor that is selling only the software, not the hardware. Only this time, Google is Microsoft, with Android the biggest challenger amongst the pack.

There are differences, of course. IBM is no longer in the consumer hardware business, and there’s no Big Blue equivalent for either the consumers to go with or Google to work with as a premier hardware partner. Microsoft is still around of course, though not competitive in the segment where the battle is being fought.

And it almost goes without saying, the Internet has changed everything – no longer does your computing platform determine what applications you can use, as increasingly the complex logic is available in a device-agnostic form. No longer is it necessary to be tied to a single platform if what you do is simply accessed through a browser, more than ever a proxy OS environment for the web.

All this is also within the lifespan of the people involved the first time around, and they’re not likely to make the same mistakes twice, especially not Steve Jobs.