The Best Massively Multiplayer Real-time Online Game of All Time

Back in college, in 1996 (I believe) I frequently played the pre-release version of SubSpace, a massively multiplayer online game that was originally designed as a project to test the affects of lag over a modem. If I recall correctly, I first played using a 14.4k baud modem… and it worked. Here’s a recent screen…


Interface Smuggling

While I’m on the subject of COM and extension compatibility, another issue that affected a small number of extensions in IE7 involved passing an interface to a worker thread without first marshalling the interface using CoMarshalInterface() (or the longer and more convenient form, CoMarshalInterThreadInterfaceInStream()). IE uses the uses the Single Threaded Apartment (STA) model for its…


Spy vs. Spy: Revenge of the Tooltip

On Friday I talked about some of the problems with unbalanced CoInitialize() and CoUninitialize() calls and how to debug an unbalanced CoUninitialize inside IE7. At the end I mentioned that using IInitializeSpy in an extension to “fix” an unbalanced init or uninit was a bad thing and to never do it. Here’s one story that illustrates…


Space Shuttle Analogies

First, congratulations to everybody who contributed to the successful launch of the space shuttle Discovery this evening. I watched online via. NASA TV and it’s been a long time since I’ve watched a “live” liftoff. In some recent meetings people have been making analogies between the space shuttle and complex software such as Windows and Internet Explorer….


My Toolbar or BHO is Causing IE7 on Vista to Crash on Close. Help!

During the development of IE7, one problem we discovered was that a small number of extensions have unbalanced CoInitialize() or CoUninitialize() calls. On IE6 they sometimes lucked out, but due to architectural changes in IE7 these would cause crashes, hangs, or erratic behavior. Unbalanced CoInitialize() calls seem harmless enough at first glance. During shutdown COM…


IE7 Tabbed Browsing Q & A

I’m working on some long-overdue posts about tabbed browsing, but before I get too deep into them what I’d like to know most is: what do you want to know about IE7’s tabbed browsing implementation? If you have questions, please post them as comments. For the smaller questions I may reply as a comment, but the…


IE7 Menu Flickering / Toggling Glitch

Just before we shipped IE7 we heard sporadic reports of a “Heisenbug” where users would click a tab or click in the address bar, and the IE window would start shaking (or “flickering”, or “menus bouncing up and down”, depending on how users described it). We researched the bug and contacted some end users, but it remained…


Bringing the Menus to the Top in IE7

In the IE7 Beta 2 Preview the UI element that hosts menus and 3rd party toolbars is located between the navigation bar and tabs. However, in this release there’s a registry key which you can set to move this to the top of the window instead: [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser] “ITBar7Position”=dword:00000001 You can also turn off the…


Use the official IE7 Preview, not the leaked build

Or: When is 5296 > 5299? Many people who managed to get a hold of the leaked IE7 7.0.5299.0 build may be wondering whether they should uninstall it and switch to the official IE7 Beta2 Preview, which is version 7.0.5296.0. On the surface it seems like the 5299 build would be newer, and therefore better,…


Download the IE7 Beta 2 Preview!

The IE blog has announced the availability of the first public beta for IE7: IE7 Beta 2 Preview. This preview isn’t intended to be widely used by the general public, but if you’re reading this blog you’re probably technical enough to try it. Over the next few weeks I’ll post about some of the features…