Jeff Duntemann's Contrapositive Diary Rotating Header Image


Odd Lots

  • Verizon refuses to stop using tower-side cookies (which can’t be deleted by mobile device users) even as AT&T has caved on the issue. The solution is to stop using Verizon. That’s what Carol and I are about to do.
  • Relax. Microsoft did not pull the plug on Win7 updates on 1/13. That won’t happen until 2020. What’s going away are new OS features and phone support, two things I don’t think the world desperately needs.
  • I like molten lava as much as the next guy. (Just wait until you read my novella Firejammer, coming out–finally–this spring.) That said, I’m not sure I like it quite this much…
  • With January only half over, the Great Lakes ice cover is now up to 34%. Lake Erie has pretty much iced over completely.
  • Britain’s Royal Society has published some evidence that people born during solar maxima do not live as long as people born during solar minima. It may be folate depletion by UV. Or something else. However, the correlation appears to be real. (Thanks to Neil Rest for the link.) Carol and I are solar minima babies, whew.
  • Discovered two very good red wines recently: Menage a Trois Red, and Menage a Trois Midnight. Both are dry reds, both are fruit-forward, and (in contradiction of the vintner’s Web writeups) neither has any detectable oak. I guess if you’re going to get the hipster market you have to claim oak, even if you lie about it. In this case, nothing of value was lost.
  • I doubt that my readers are dumb enough to think you can lose weight by ingesting chemistry sets like Slim-Fast. But just in case, read what Tom Naughton says about recent diet rankings in content-free publications like US News. Hint: The same doofi who bleat endlessly against “processed foods” (which now means “any foods I don’t like”) are endorsing fructose cocktails like Slim-Fast over Atkins and paleo.
  • Popular Mechanics lists the 14 best cities in America for startups. None are in Silicon Valley, and all are in relatively low-cost areas. Maybe hipster city cachet is finally starting to lose its cachet. Or so we can hope.
  • Lots has happened in CPU architectures since the 1980s, when a lot of us learned it. (I started a little earlier, but the IBM PC brought most of us to a new starting gate at the same time.) Here’s a decent summary. One consequence of all this is that human-written assembly language is less of a win over compilers, and the best reason to learn assembly these days is to understand what your damned compilers are up to in there.
  • Before he broke into the SF business, Keith Laumer was an ace model airplane designer. (Thanks to Pete Albrecht for the link.)
  • Physically small, fanless PCs have been around for awhile, and I was bullish on them until I began using Dell USFF (ultra-small form factor) machines like the Optiplex 780, which are pretty small and almost entirely silent. Should we settle for 1.6 GHz? Only if there’s a specific application in mind, like education (think RPi) or embeddedness.
  • Bill Cherepy sends us news of a thermostatic butter keeper that can keep a stick of butter (block? It’s a form factor we don’t make in the US) at any arbitrary temp from 15 to 23 degrees C. Butter is definitely coming back into its own, bravo halleluia!

Odd Lots

When XP’s svchost.exe Takes 100% of the CPU

I have computers the way some people have mice (those other mice, with legs) and two days ago, a couple of them went nuts. Carol’s SX280 went to 100% CPU usage and roaring fans, and when I turned it on, a second machine (an older SX270) did the same thing. Rebooting changed nothing, though it took a minute or so after reboot for the problem to reappear, which allowed me to do some hasty troubleshooting.

Meanwhile, my quadcore purred along without incident. All three machines use XP SP3, and all three are set for auotmatic updates. I pulled an older SX270 off the shelf that I knew was still at XP SP2 and hooked it up on the bench. Nothing so far. I booted into Windows 7 on my GX620 (it ordinarily runs Mint) and have not seen anything out of the ordinary.

The module sucking all those cycles is the instance of svchost.exe that runs all of the miscellanous Windows machinery, including updates. Hmmmmm.

This is not a new problem; in fact, this rang some bells so old the cloud of dust took an hour to settle. As long ago as 2004, people have reported svchost.exe suddenly taking the whole CPU. Quite a few reports indicated that the culprit was the Windows Update automatic updates client, wuauclt.exe. I turned off automatic updates on the misbehaving machines, rebooted again, and the problem went away.

That’s only a partial solution, of course. And the problem is evidently still with us. In the comments to that post, a user suggested this command series as a fix:

  1. net stop “Automatic Updates”
  2. del /f /s /q %windir%\SoftwareDistribution\*.*
  3. net start “Automatic Updates”
  4. wuauclt.exe /detectnow

In essence, you disable automatic updates, delete all the files from the subdirectory where wuauclt.exe keeps its logs and other data files (you can’t do this if automatic updates is running), restart automatic updates, and then force an immediate check for updates. This worked, and I dusted my hands together in triumph.

Alas, yesterday noonish, both machines again went nuts. Both are scheduled for replacement, so I just let them run. After about two hours of screaming fans, svchost.exe let go of the CPU, and everything returned to normal. In the meantime, my quadcore and that creaky old SP2 machine have shown no symptoms.

I still don’t know precisely what’s going on, but it’s almost certainly some kind of bug in automatic updates. (I’ve scanned all machines for malware and found nothing.) XP updates end next April 1, and by that time I’ll have replaced the two wonky machines with much newer Win7 boxes. (One is already on order.) In the meantime, I’d be curious to hear if anyone reading this has seen the same issue. I expected to see a flurry of online reports and found nothing, right up to a couple of minutes ago. So maybe Carol and I just got to the top of the XP karma fairy’s little list. Still looking, and certainly open to suggestions.

Odd Lots

  • Maybe it’s some of the recent solar storms (the sunspots were not spectacularly high) but I heard both Guyana and the Cayman Islands on 17m the other day–the first time I’ve seen any significant life on that band in several years.
  • I have yet to find an Android ebook reader app that will open and render an MS .lit file, of which I have several. No surprise: Having blown an early and promising start in ebook reader software, MS has recently announced that it is withdrawing the app. Reader is actually a nice piece of work, and the first ebook reader program I used regularly. DRMed .lit books are now just noise, and the rest of them will have to be translated by something like Calibre. DRM, especially when it’s abandoned, trains people to locate cracks and become pirates. Way to go, guys.
  • SanDisk just announced a thumb drive about the size of its own USB connector cap. 4, 8, or 16GB. I’ve now broken two thumb drives by leaving them plugged into the rear edge of a laptop and then tipping the laptop back. If that’s a common problem, this is definitely the solution.
  • What do you do with the Moon once you rope it down? (Watering it would be interesting, though Mars needs it more.)
  • This guy thinks like I do. Just ask Carol. (Thanks to Michael Covington for the link.)
  • I recently found a PDF describing the first computer I ever programmed for money. It was a…1 MHz…8080. It cost a boggling number of 1979 dollars, so Xerox ended up using most of the initial production run in-house. The 3200 cast a long shadow: I got so used to sitting in front of it that when I built a computer table later that year for my S100 CP/M system, I made it just high enough that the keyboard was precisely as far off the floor as the 3200’s, a height that I use in computer tables to this day.
  • How long did it take you to figure out what this really was? (Thanks to Pete Albrecht for the link.)
  • Russian President Medvedev has taken a liking to ReactOS, a long-running and mostly ignored attempt to create a driver-compatible, win32-friendly (via WINE) open source Windows clone. He’s suggesting that the Russian government fund it. Now if Medvedev can convince Putin, we could have quite a project on our hands.
  • I’d never thought much about how you recycle a dead refrigerator. Now I know.
  • Begorrah! Zombies are not a new problem. (Thanks to Frank Glover for the link.)
  • And if that machine gun in your hollow leg won’t slow them down, send them into sugar crash.

Luck Happens: The Blotter and the Pocketwatch


A couple of people have asked me where I got the Windows blotter wallpaper discussed and shown in the photo on my January 19, 2011 entry. I stumbled across it while looking for art depicting steampunk airships. Jim Strickland and I have been tossing ideas around for a drumlin airship, and I wanted to see what other people had done in that area. Just clicking around, and alluva sudden I was looking at this. Egad, it’s 1600 X 1200 too–no need for me to do any resizing. If you’re widescreen, you might consider this one instead.

I like blotters. I had a desktop blotter at Borland that was an Ampad Efficiency Deskpad 24-003. It was basically a faux-leather frame surrounding a pad of 17″ X 22″quadrille paper, which I have always liked for sketches and off-the-cuff coding. When Borland laid us off they told me I could have it, since they were just going to dump it (and everything else in my desk) anyway. It’s followed me around ever since, though I’m not sure the quadrille paper for it is available anymore.

The only thing that bothered me about the blotter wallpaper was the pocket watch, which (while well-drawn) was just an image, and always read 3:37. (Days later, I found a version of the blotter wallpaper without the watch.) If the watch had to be there, it had to work. And then I remembered something I had seen a long time ago and forgotten.

There’s a widget engine for Windows called Rainmeter. It was mentioned on one blog or another that I followed back in 2008 or 2009. A widget engine is an app that runs without a conventional windowed UI, and allows you to display frame-less output on your desktop. The widgets are basically skins, and the output can be drawn in easily parameterized ways. There are myriad skins for Rainmeter, and while I was experimenting with it back then I ran across a clock skin called Pocketwatch. It looked a little bit Stickley (as does much else in this house) and I would still have it running had I kept Rainmeter across the last couple of Windows reinstalls. (I did not.)

On a hunch I did the obvious: I took a 6″ steel rule and measured the size of the Pocketwatch widget on the screen, then measured the static pocketwatch image on the blotter wallpaper. The face of one was precisely the same size as the face of the other. (The Pocketwatch skin is the face only; the blotter has the whole pocketwatch.) I quickly installed Rainmeter and Pocketwatch. I centered Pocketwatch over the face of the pocketwatch image, and then un-checked the Draggable setting on Pocketwatch’s context menu. Bang! The watch on my wallpaper now keeps time. All free, too. C’mon, people: What are the chances? Sometimes luck just happens.

Displaying Wallpaper on One Monitor Only


I got annoyed the other day (finally!) after being annoyed off and on since, well, almost forever. The problem was this: I was following a Web tutorial explaining how to do something in InDesign. I had InDesign up and maximized (as I always use it) and the Web tutorial in a Firefox window. Firefox wasn’t maximized, but that didn’t matter: Each time I selected a menu item in InDesign to tweak a setting, Firefox vanished under InDesign. That’s just the way Windows has always worked, and for a long time (ten years? more?) I was wondering if there were a better way. Tiling is not an option, not if I want to work on spreads in InDesign. So I just kept on keeping on, with Firefox appearing and vanishing as I ticked off steps on the tutorial.

Until this morning, when shadows on the wall told me that the light bulb had appeared over my head. Yes!

I ran downstairs and got an old monitor off the shelf. It’s a 15″ Samsung SyncMaster 570B, bought for Carol in 2003. She used it until I got her a 20″ display a couple of years ago. It has a mount pivot, and can be used in either portrait or landscape mode. I plugged it into the idle VGA video connector on my desktop, and without any fuss I had dual displays.

I’ve done that before to see how it was done, but never had the desk space for two identical (big) monitors. It wasn’t until today that I hit upon the refinement of putting the second monitor in portrait mode, which takes some space but not as much as anything in landscape mode. Now I can put a Firefox window on the secondary display while working on something full-screen on the primary display, without having to rescue the tutorial window from behind the app window each time I do something in the app window. Victory is sweet–and contains no fructose.

One peculiarity: My desktop wallpaper was partially duplicated on the second, lower-resolution display. The wallpaper image is a desktop blotter (complete with stains) and it just looked wrong having only part of it on the smaller monitor. I wanted the wallpaper on the primary display only, with just a blank color field on the secondary. Remarkably, there is no obvious way to do this. I dug around for most of an hour, trying things in both Control Panel’s Display applet and the NVidia control applet, without success. Then I hit upon this article. The gist is this:

  1. Return the wallpaper image setting in Display | Desktop to None; that is, turn off your current wallpaper. Both screens will now have the same blank color field for background.
  2. Select Desktop | Customize Desktop | Web. What you’re going to do is add a static image (the wallpaper of your choice) for Active Desktop, instead of a Web page.
  3. Click New. In the New Desktop Item dialog, click Browse, and select your wallpaper image from wherever it lives. Open it. Click OK on New Desktop Item. Click OK on the Web tab. Click OK on the Display applet as a whole to close it.
  4. The image you selected will be displayed, probably spanning both monitors. (It did on mine.) Hover over the top edge until the Active Desktop title bar pops up. Click and drag the image to whichever minotor you want to have it as wallpaper. When it’s moved completely onto one display, click the maximize button in the title bar. Bang! There’s your wallpaper, on one display only.

Now, as best I know Active Desktop was eliminated from Windows Vista, so this mechanism applies only to XP and (I presume) earlier versions. (Let me know if I’m wrong about that; I have no Vista or 7 instances here.) Active Desktop used a lot of CPU time and memory, but I think that was due to continuous refresh of the Active Desktop HTML and inane things like Pointcast that people have long forgotten. I don’t see any resource hit for having a static image in place of a Web page.

If I see any system flakiness in coming days I’ll reverse the change and let you know, but so far I haven’t seen a downside. I may try other uses of the secondary display, but I also think I may just turn it off unless I need to read a Web page while doing something else on the primary display. We’ll see.

Restoring Grub with Rescatux

If a task has to be done often enough, sooner or later somebody will automate it. And so it happened with a very common task that I’m glad I didn’t have to do the hard way: Restore Grub to the MBR after a Windows reinstall overwrote it.

Windows does not play nice with Linux the way Linux plays nice with Windows. When you install Linux on a hard drive that already contains a bootable Windows partition, Linux adds the Windows instance to the Grub bootloader menu, allowing you to choose which OS to boot on startup. On the other hand, when you install Windows to a hard drive that already contains a bootable Linux partition, Windows ignores the Linux partition and puts its own bootloader link into the master boot record (MBR.) At startup, the system boots straight into Windows. Linux is still there, but you don’t get to choose to boot into it at startup.

Getting Grub back into the MBR after a Windows reinstall isn’t hideously difficult, but it’s a bit of picky terminal work done from a LiveCD. The trick is knowing how. The canonical description of how to do it is borderline incoherent, including advice like “This method apparently no longer works. Use with caution (if at all.)” The information is all there, but you have to dig a little to make sense of it. (Being a Linux geek helps a great deal.)

There’s now an easier way that I wasn’t aware of the last time I had to reinstall Windows on a dual-boot system: The Rescatux LiveCD. It’s a Debian instance with some scripting added that puts up a wizard and automatically detects installed bootable partitions. It then rebuilds the Grub bootloader menu and points the MBR back to Grub.

A couple of cautions:

  • The wizard is fairly terse. Don’t expect a great deal of handholding. If you don’t have any prior experience with Grub, read the documentation on the Web site. Then read it again.
  • Give the wizard time to work at each step. When you click the OK button, the options reappear immediately, but when there’s some disk access to be done, the script goes off to work and doesn’t give you any indication that it’s working. It doesn’t take more than a few seconds. Be patient.

I failed to be patient the first time I ran Rescatux, and clicked something once too often. (I’m still not entirely sure what.) When I booted the system again, Grub ran and Ubuntu was listed, but this time Windows was missing. There’s some rough justice in that, I guess, but I need to get into Windows just as surely as I need to get into Ubuntu. So I rebooted back into Rescatux and ran the wizard again, giving it enough time to finish each step. Another reboot, and Windows was back in the Grub bootloader menu.

Supposedly Rescatux works with both Grub 2 (the current version) and “Legacy Grub,” V0.97. My system uses Grub 2, and thus I didn’t test its dealings with older Grub versions.

It’s still a little rough, but it saved me a certain amount of eye-crossing terminal work this afternoon, and that’s always a good thing. Be careful and read the doc before you begin, but having said that, I do recommend it.

A Viral SSID

First of all, you can stop worrying about me–Carol and I took an intense week-long trip to Chicago tending to family business, and I just couldn’t summon the energy to post while I was there.

But I was reminded of an interesting thing on the trip home, while we waited at the gate for our plane at O’Hare. I opened my new laptop to check for connectivity, and in addition to the airport’s Boingo network, I saw the oft-encountered but poorly understood “Free Public Wifi” SSID. I’ve seen that SSID in airports on almost every trip I’ve taken in the last three or four years, well-aware that it’s not anything like free connectivity. I’ve always assumed that it was a virus running on somebody else’s close-by laptop, because it’s not an infrastructure node like an access point, but an ad-hoc (peer-to-peer) node instead.

Well, it is a virus, but one of a truly fascinating sort. And that may be a little unfair. It’s not malware in the sense of adverse execution on the machine, but a consequence of some Windows foolishness in XP and (possibly) more recent versions. The “Free Public Wifi” SSID spreads virally without the help of anything except Windows itself. I never completely understood the mechanism until I looked it up yesterday. There’s a great writeup here, and I’ll summarize:

Wireless Zero Configuration (WZC) is the part of Windows that manages Wi-Fi connections. When enabled, it will do the following when the machine is booted:

  1. It looks to see if one of your preferred network SSIDs is present in the list of detected infrastructure networks, and will connect if present. Failing that,
  2. It attempts to connect “blind” to infrastructure networks on your preferred list that are not detected, to cover the possibility that your network’s SSID beacon is disabled. This is the Wi-Fi implementation of “security by obscurity,” and no one really uses it anymore. Having failed to connect to a hidden infrastructure node,
  3. WZC will look to see if one of your preferred network SSIDs is present in detected ad-hoc networks, and will connect if it finds one.
  4. Now the weirdness begins: If none of your preferred network SSIDs is present as an ad-hoc node, and if there is an ad-hoc SSID in your preferred networks list, WZC sets your system up as an ad-hoc network with the first ad-hoc SSID it finds in your preferred list.

Hoo-boy. Read that again: If you’ve ever connected to an ad-hoc node and no networks in your preferred list are available, your machine becomes an ad-hoc node. This may not be the worst wireless idea ever, but it’s right up there. Basically, you’ve opened a door to your machine, and (depending on your firewall situation) if somebody connects to your laptop through the ad-hoc node that WZC has created, they can browse your shares.

It didn’t take malware to make this happen. Windows did it all by its lonesome. Here’s a likely scenario explaining why this SSID is so commonly seen in airports:

  1. Somewhere, somewhen, there was a mesh (peer to peer) network named “Free Public WiFi.” It was probably legitimate. I don’t like mesh networks for various technical reasons, but they have their uses, and there’s nothing necessarily scurrilous about them.
  2. An XP user logs into this original “Free Public Wifi” network and connects to the Internet. The SSID is added to their preferred networks list as an ad-hoc node, where it remains. When finished using the mesh network, the XP user breaks the ad-hoc connection and life goes on.
  3. Later on, which could be months or even years, the same user (“User #1″) goes to an airport and while waiting for a plane, boots his or her laptop to do some local spreadsheet work. No connectivity is found, so Wireless Zero Configuration happily establishes an ad-hoc node called “Free Public WiFi.”
  4. A nearby XP user (“User #2″) boots a laptop, looking for connectivity. He or she sees “Free Public Wifi” as an available network, and (naively) clicks to connect. An ad-hoc connection is established to User #1’s laptop. Nothing happens, since neither user is connected to the Internet. However, the “Free Public Wifi” SSID is added to User #2’s preferred networks list. User #2’s plane eventually comes in, and he or she shuts down the laptop, disappointed that no free connection was found.
  5. Later on, User #2 is again at an airport and boots the laptop. WZC establishes an ad-hoc node, and this time, two users see the “Free Public WiFi” SSID and connect. Again, nothing either good or bad happens, but the “Free Public WiFi” ad-hoc SSID is added to the preferred networks list of both User #3 and User #4.
  6. User #3 and User #4 (neither of whom have any idea what’s going on) boot their laptops at other airports, or at conference centers, or some place where laptops tend to congregate. Similarly naive users connect, looking for a free Internet connection, and add “Free Public WiFi” to their preferred networks list.
  7. Contagion continues, as road warriors spread the SSID as explained above.

Although malware isn’t involved, this is far from harmless, since an ad-hoc connection is a door to your machine. Your firewall will probably stop any shenanigans…if you have it working and configured correctly. Some people won’t.

Note well that this only happens if your system has the WZC service running. If you have vendor-specific software installed to manage your wireless subsystem (as all newer Dell laptops do) this craziness won’t occur. Only if Windows and WZC are in charge of wireless are you vulnerable. The solution? Limit your connections to infrastructure networks. There’s a step-by-step at the end of this article.

Other such viral SSIDs exist; I’ve seen “hpsetup” and “default” myself, and others have been reported. Any ad-hoc network SSID can go viral with the help of Windows Wireless Zero Configuration. The “hpsetup” SSID was “contracted” from certain HP printers that connect to laptops via ad-hoc connections. I’ve only confirmed this on XP; the issue may have been resolved with Vista and 7. It’s a fascinating example of unintended consequences in system design, and should become a textbook case in CS coursework. (Why don’t I think that this will ever happen?)

How Necessary Is Windows? Part 5: Crossover

There have been several attempts down the years to make Windows unnecessary. The most audacious is doubtless ReactOS, which cuts to the heart of things and wants to be a complete Windows XP-compatible OS. Needless to say, this is no small project and will take a long time to complete; right now, I’d call it somewhere between completely useless and intriguingly experimental. (It runs Skype, at least.) I’m also concerned that if they ever do get it anywhere near useful completion, Microsoft will stomp on it hard.

That’s certainly the high road. But how necessary is it to clone the whole damned OS? A Windows app, after all, is just a block of x86 machine code that makes calls into one or more APIs. If you can clone the APIs in an acceptably clean-room manner, you don’t need to duplicate the entire architecture, kernel and all.

And that brings us to one of the oldest and oddest ongoing projects in open-source computing: Wine, begun in 1993 by Bob Amstadt and Eric Youngdale. Wine provides a compatibility layer consisting of clean-room DLLs implementing the Win32 APIs, plus whatever magic is necessary to make the deeper host OS machinery look like Windows to the app. This is easier than implementing a whole OS, with the further advantage that if done properly, Wine can act as a Windows compatibility layer over several Unix-like OSes, rather than only Linux. Currently, Wine can operate over Linux, Mac OS X, FreeBSD Unix, and x86 Solaris.

After 16 years of dogged work, Wine actually works pretty well. Part of its success is due to a remarkable cooperation between the Wine project and a commercial software house in St. Paul named Codeweavers. Codeweavers sells a $40 deployment/management utility for Wine called Crossover, which basically makes Wine noob-friendly. (Naked Wine is pretty stark.) Codeweavers also tweaks Wine itself to improve app compatibility, and contributes those tweaks back to the Wine project under LGPL. Some financial support is also provided to the otherwise volunteer-based Wine project. Wine’s founder, Alexandre Julliard, is an employee of Codeweavers, where he works full-time on Wine development.

Codeweavers focuses mostly on big-market apps like Microsoft Office, and doesn’t officially support apps beyond a relatively short list of “gold” software. However, I’ve found that a great many Windows apps install and run just fine under Crossover whether they’re on the list or not. InDesign 2.0 is listed on the site as “known not to work” but apart from a minor display glitch, it seems to work as always. (I haven’t tested it deeply so far.) Most Microsoft apps work beautifully (especially older ones) and I’ve been using Office 2000 and Visio 2000 under it without incident since last fall.

Wine implements a sort of runtime environment emulation for Windows called a “bottle.” More than one bottle may be created on a single host OS, and each bottle has its own emulated C: drive and Registry. By giving each Windows app its own bottle under Wine, apps are prevented from interfering with one another in the dreaded “DLL Hell” effect. Because it’s not a VM, the performance hit for running Wine/Crossover is very small, and most important, you do not need to have a legal copy of Windows running in the VM. On the other hand, a bottle looks enough like Windows to be infectable by Windows malware, though one bottle probably can’t infect other bottles on a Linux system, or the underlying system itself. (From what I’ve heard, the low-level system tricks played by many malware packages keep them from running or at least running completely.) There are known conflicts between WGA and Wine, so don’t install WGA if you can avoid it.

Bottom line: If Wine supports all the Windows apps you absolutely must use, you do not need Windows at all. I haven’t tested all the Windows packages that I use here (next up is MapPoint 2004) but for Office and Visio 2000 it’s been nothing short of magical, and I’m guessing InDesign will come along eventually. In a mature software market, time works in our favor: One by one, existing apps will be installable under Wine, and each time that happens, Windows slips a little bit deeper beneath the waters of irrelevance.

Next up: For the hard cases, there’s always virtualization.

How Necessary Is Windows? Part 4: Format Lock-In

Computing certainly isn’t about operating systems. Nor is it really about apps. It’s about files. Data is what we create, modify, store, and distribute in electronic form, and the ways that our data is stored give shape to almost everything else we do in computing. Being able to move from one platform to another thus depends almost completely on whether or not we can bring our files with us.

I’ve been working in front of a personal computer on an almost daily basis since May of 1979, and over the past thirty years I’ve accumulated thousands of made-by-hand files. Much of that is text, and I’ve had almost complete success bringing document files forward down the years, bouncing from one word processor to another by using various format-conversion tools. SF stories I wrote in CP/M WordStar in 1980 have passed through WordPerfect for DOS and several major releases of Microsoft Word and still live on my writing projects thumb drive. I keep a commercial Windows utility called Quick View Plus on hand to extract text from extinct file formats when necessary, which has been pretty rarely in recent years. Still, it’s there if I need it.

It’s a lot tougher once you get away from text. There are no conversion utilities for Adobe InDesign or Microsoft Visio, and as best I know nothing will import files created on either app. This is probably also the case for QuickBooks, and probably a great many more major applications that I’ve simply had no need for and no experience with.

I don’t think it’s an exaggeration to say that this kind of file format lock-in is the only thing keeping some of these companies profitable, or for some of them simply in business. Computing is mature in terms of the basic mechanisms we use to manipulate data: text editing, page layout, spreadsheeting, presentation, raster drawing and vector drafting, image processing, and database query and display. Small points may be patentable, but the fundamental machinery is now older than any surviving patents. Building an app that could load and edit an InDesign layout file would take some work but no genius, and if done would be a major competitor to InDesign, not only in new projects but (crucially!) in existing projects as well. Adobe guards its file formats with its life because its file formats are its life.

Alas, my files are my life too. And when Adobe’s IP rights bump up against my IP rights, who wins? Adobe, of course. Hence my hatred of activation: I don’t use newer versions of InDesign because Adobe can turn them off remotely and basically hold my work hostage if they choose to, perhaps because they’re too stupid to tell a RAID from a separate machine, or because they’re hungry enough to want to force me to pay for an upgrade that may have no new features that I need…and maybe no new features at all.

I have no general Stallmanesque animus against commercial software. I have a fortune in boxed apps on the shelf, and have never minded paying for them, even when they were upgrades. However, upgrading must be my choice, and migration of software to newer machines as time passes must not require new licenses.

Even commercial software that doesn’t require activation often demands a service and a tray icon, constantly popping up notifiers trying to upsell me to something I neither want nor need. In a mature market, there’s less demand for upgrades, and people can be happy using software for a long, long time. I can understand the vendors’ perspective and their need to be selling all the time to stay alive in a mature market. I think they should recognize my right to find it annoying and turn to software that doesn’t yammer so much and waste my cycles.

The bottom line here is that some apps are difficult to move away from; for me, the two killers are InDesign and Visio. Yours may be different, but I think most people who do creative work at the keyboard have a few. The difficulty lies entirely in proprietary file formats, and leads me to the infuriating conclusion that Windows is necessary only to allow me access to my own files.

The good news (for small values of “good”) is that there are tricks to be played. More in the next installment.