Jeff Duntemann's Contrapositive Diary Rotating Header Image

windows

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

WorkingWatch500Wide.jpg

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

DualMonitorSetup500Wide.jpg

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.

How Necessary Is Windows? Part 3: Apps

I came down with a monster headcold the last couple of days, and whereas this entry was in the can since Sunday, the remaining entries may be a little slower in coming. Bear with me…


We don’t use Windows because it’s Windows. (Most of us use it because it came on the machine and, well, it’s paid for.) Windows is just an operating system, and an OS is a troll living under a bridge. Applications with specific missions lean over the railing and shout orders to the troll, who (mostly) does as they say while keeping order up on the bridge. An OS is 80% facilitator and 20% bodyguard. Our real work happens in the apps. If the apps we use can be run without Windows, then Windows isn’t necessary at all.

There are three ways to break free of an application’s dependence on Windows:

  1. Find a version of a Windows app that runs on your OS of choice;
  2. Switch to a similar app that runs on your OS of choice; or
  3. Coerce a Windows app to run somehow on the OS of your choice.

I’ve done all three, and for the sake of further discussion here, the OS of choice is Linux. Mac OS/X is another worthy option, and all three of these methods are available there too, but for several reasons I hesitate to give Apple my money. (We’ll talk of this at some point; people who know my deep history will understand.)

There is a lot of very good free software to be had for Linux, and it can be had very easily. The Ubuntu Software Center allows easy search for apps via category browsing or keyword search, and any selected apps are downloaded from trusted repositories and installed without further intervention. The Software Center can tell you what packages are already installed, and can uninstall packages you no longer want. This is so uncharacteristic of the ancient Unix culture of pain that I still giggle sometimes when I install something. (“This is easy. Too easy…”)

I was a little surprised at how many Windows apps have almost identical versions running under Linux. This is true of some commercial apps as well as free apps, but free apps are much more likely to have Linux versions. I use the following apps almost identically under both Windows and Linux:

This represents a good deal of what I do in front of the keyboard. (Maybe a third.) I’ve heard that Google Earth can be had in a Linux version but haven’t tested it yet. It’s not available through the Ubuntu Software Center.

Switching to a similar Linux app takes more doing, but for some sorts of work it isn’t difficult. I don’t use newsgroups very much anymore, but using Pan under Linux was relatively pain-free, even though it’s quite different from Forte Agent in many respects. There’s a very useful site called Open Source As Alternative that provides suggestions as to what free apps are reasonable alternatives to many commercial Windows apps. Definitely spend some time there if you haven’t already; the real trick in open source software is often just knowing that it exists, absent pervasive ad campaigns. For example, I’ve known about the Gimp for ten years, but never heard of GimpShop (Gimp reworked to have a menu structure more like Photoshop’s) until I read about it on OSAlt.

KOffice is probably the best of the open-source office suites, though not all the several apps are equally powerful or polished. OpenOffice is even better functionally, but it has some weirdnesses (font management first among them) that probably stem from its Java-centric design. It used to be the only one of the open source word processors I know of that will load a .docx file, but the latest Abiword will do that now. Note that OO will bog anything less muscular than a 2 GHz Pentium, so don’t install it on older machines, and max your memory before you install it on anything.

For generating raw text and editing old Word 2000 files, I now use Abiword routinely. I don’t do much spreadsheeting, but my fairly simple PlanetPlanner spreadsheet loads and runs on Gnumeric, and that’s good enough for me.

Alas, once you get away from the most simple and widespread categories of apps (like word processors and spreadsheets) the news is mostly bad. The real problem with similar-but-not-identical apps isn’t the work it takes to learn them. It’s a phenomenon called file format lock-in, and in some respects is the key issue in this discussion. More about that in the next installment, probably when my nose stops dripping into my keyboard.

How Necessary Is Windows? Part 2: Ubuntu

In the past two week’s I’ve installed Ubuntu Linux 9.10 (Karmic Koala) three times: twice as upgrades, and once as a clean install from a CD. The combo LiveCD/installer ISO came down with uTorrent in 8 minutes 5 seconds (!!) and has given me trouble only once, and that with the partitioner: I tried to install 9.10 on Carol’s old HP laptop, but the partitioner could not determine the size of the existing Windows partition, and thus the resizer slider would not appear. On an SX270 with a similar size hard drive and an existing XP partition, the partioner resized XP without any trouble. (I’m wondering if there’s some weirdness in the HP BIOS, but have not gone after it yet.) I’ve spent a great deal of time in Ubuntu in recent days, and beyond that one little glitch with the laptop, I’d say Karmic is the best one yet.

Apart from its contrarian (and purely optional) brownness, Karmic’s default GNOME desktop is a great deal like Windows XP. The taskbar functionality is divided between two panels, one at the top and one at the bottom. Now that 20″ displays are common, I use two lines for the Windows taskbar as well and don’t begrudge GNOME the extra line–and you can put both panels at the screen bottom if you want to. The Home folder stands well for My Documents, with familiar subfolders for documents, music, pictures, video, and downloads. Nautilus looks enough like Windows Explorer to pass, especially given that most of us custom-configure Explorer after awhile and not everyone’s configuration is identical. Left mouse button selects, right brings up context. In short, all the basic ideas of the Windows UI are present, in recognizable form. There’s some bumping-up-against-habit in switching from one UI to another, but after even a little time exploring in GNOME you won’t be lost anymore.

The Control Center is a great deal like Control Panel, with applets to manage most configurable options. One gripe about the Control Center is that there is a perfectly good applet to manage grub’s boot options, but it’s not installed by default and I only came across mention of it online by accident, while looking for something else. If you want it, go into the Software Center, and search for Startup-Manager. Install it, and you can specify grub’s default OS, the menu time delay, a splash background, and other things. I take back the grouchiness expressed in my entry for November 7, 2009, with the exception that Startup-Manager needs to be installed by default.

I still have a gripe with Linux generally that goes back a long ways: It needs centralized font management. Unless I’m missing it (and I looked pretty hard) no such applet exists for Control Center, and installing fonts is much more fussy than it needs to be. This may not matter much if you’re not a publisher or a graphic artist, but it matters a lot to me. I have a set of expensive Type 1 fonts that I bought in 2001 and use in all of my Copperwood Press books, but getting them into Linux was non-trivial, and not all apps that should recognize them do. Scribus and poor little Abiword picked them up immediately, but OpenOffice still can’t see them and I still can’t figure why. I know that X11 makes font management a little more complex than it is in Windows, but that’s no excuse for not having a font manager in Control Center.

Beyond that, few complaints. There is now a Safely Remove Drive context menu item for thumb drive mount icons that I don’t remember seeing in earlier versions. Videos that play without sound in Windows (due to obscure codec errors) play with full sound in Karmic. Bottom line: Ubuntu 9.10 implements all the fundamental GUI machinery that Windows does, and does it with enough similarity not to drive a newcomer to distraction. From that standpoint, Windows really isn’t necessary at all…but alas, GUI machinery is only one small piece of the larger Windows pie. More tomorrow.