Opportunity from 2020

Massed withdrawal from ordinary social activity early in 2020 surely was necessary as an emergency measure to get the coronavirus pandemic under control, but staying for days on end in my apartment mutated from weeks or months into a year. At least I do have the luxury of being able to keep to myself for long times, both financially and psychologically. In all my imagining of how I might be cast in a movie apocalypse, I figured I’d be killed off early as an example of being not fit to survive, but what we got instead is this one scenario that I’m very well adapted for. All I wish is that I had realised from the start that it would go on for so long: I might have planned my time better!

For make no mistake: provided the pandemic (or its embarrassingly poor handling by most rich-world governments) has not turned your life into a question of survival, it made 2020 into a year of opportunity. Because everyone’s life was turned upside down in 2020, there never will be so little awkwardness about having nothing to show for a year. If you had the luxury of not starving, then 2020 was the year to risk whatever it is that has been on your to-do list for years even though you’ve known all along that you never would find the many months needed just for getting it started. Write that novel or play!

This website drew two opportunities from 2020.


One opportunity is a thorough revision of the site’s scripts and stylesheets, even to the extent that I may no longer be able to say straightforwardly that I am not any sort of web programmer. Except for a week of slightly desperate revision in 2011, these scripts and stylesheets had barely changed since a token effort in 2009 at cross-browser compatibility. Now they are getting a bigger reworking than was involved in writing them back in 2007.

Back then, Internet Explorer 7 was still overwhelmingly the most widely used browser and the burning desire of most web programmers not just to dethrone it but to be rid of it was only just beginning to look powerful enough to succeed. Who knew, though some did, but web designers’ insistence on standards which mostly rejected Internet Explorer’s existing (and in some cases long-established) methods turned the tables so that Internet Explorer, with its need for compatibility with old behaviour, didn’t adapt to the standards any better than web programmers had been able to keep making special cases for Internet Explorer.

Browsers have moved on, mostly for the better. This website will never be one that chases the latest fads—not least because it doesn’t have ads or other third-party content—but it certainly could look better on new standards-compliant browsers. Indeed, there has been a need for this for many years. There are plenty of new stylings that have graceful fallbacks for old browsers, such that I have no excuse not to use them where they help. There are also old stylings that Internet Explorer supported but which either were contrary to the standards at the time or became so as the standards evolved. Curiously many of these have no easy or satisfactory replacement. On some points the standards have arguably not benefited anyone and it may even be fair to say they are ridiculously deficient (as with the styling of columns in tables).

Users has moved on, too. I detect a dichotomy. For computers on (or beneath) desktops, monitors have got really big and users often have dozens and even hundreds of pages open as tabs in a maximised browser that’s 2000 or more pixels wide. Nobody resizes the browser window to fit one page’s ideal presentation at, say, half this. Yet lines of text across the maximised width become unreadably long. More than a few readers have pointed this out to me in recent years. Most kindly noted that this is to be expected of old-school websites. Still, something had to be done sooner or later.

At the other extreme are the many who try to read with a full-screen browser on a mobile phone. Some phones have screens that aren’t even 400 pixels wide. There’s only so much I can do about the presentation of long and deeply technical material to fit so narrow a screen. Some data just is not sensibly read this way. But although such data is present on most of the thousands of pages here, some pages have none of it, as with introductions and most in the Home section of the site. Again, something had to be done sooner or later.

At both extremes, push eventually turned to shove because of my first explorations of the other opportunity.

Reverse Engineering

Much more interesting to an author, and I hope to you too, is some reorganisation of content to open some larger themes. Though this website does not teach reverse engineering, nor even is about reverse engineering, it plainly has reverse engineering as more than mere background. The pandemic has been my opportunity to bring reverse engineering to the centre. My chosen theme is: what can reverse engineering tell us about Microsoft’s source code for Windows?

Certainly someone must do something along this line. Too many people, not just employees of Microsoft, take as granted that any detailed examination of Windows needs access to source code—and that an attempted reproduction of or substitute for Windows, as with the ReactOS project, must have used Microsoft’s source code by hook or by crook. And why should they not think so? Where the reverse engineering of Windows doesn’t look like it has benefited from insider knowledge, it has instead the look of having been lifted from the back of a truck. Some writing on Windows internals somehow picks up both looks—concurrently, even—and the writers are widely regarded as brilliant reverse engineers. They may actually be brilliant, but I think they’ve done incalculable damage to the development of reverse engineering as any sort of academic discipline within computer science, let alone to its respectability. If what I achieve with this website is at all worthwhile, it will be that I’ve done as best as one man can to counteract this damage.