E-Mail:
Get our new Windows 7 eBook (PDF) for $7 with 70+ Tips. Download Now!

Developers: Consolidate your Services!

There are few things in life that annoy me more than the Catch-22. So often in life, we get software we have major problems with; but which we cannot remove.

Allow me to provide an example. I recently upgraded my webcam to a Logitech QuickCam Orbit MP. Bad product naming schemes aside, this peripheral came with the worst software I’ve seen in years (Ever since the KDS Organizer, the steamiest turd in explored space).

I also have a G15 Gaming Keyboard and a G5 mouse. They also came with horrible software. Come to think of it, those are from Logitech too.

Let’s just cut through the ol’ crap cake and get to the point. When I install the driver for a new peripheral, that’s all I want: The driver. If your device provides functionality unavailable to a native Windows applet (i.e. the Orbit MP’s motor actuation), you may get away with installing software; but do it smart.

Three devices, three drivers. With the unique functionality the Keyboard and Camera offer, they can get away with each having one resident executable. The mouse has no excuse. Allow me to list for you what I have in memory that these three devices are consuming (In addition to the Hardware Abstraction layer (HAL), Virtual Device Drivers (VXD), Dynamic Link Libraries (DLL), etc):

QuickCam10.exe 6.9MB
wisptis.exe 6.8MB
LogitechDesktopMessenger.exe 10.1MB
Communications_Helper.exe 7.8MB
COCIManager.exe 3.5MB
LVComSX.exe 4.1MB
LGDCore.exe 8MB
LCDClock.exe 6.5MB
LCDMedia.exe 3MB
LCDMon.exe 3.3MB
LVPrcSrv.exe 1.5MB

All in all, that’s 11 resident executables and 61.5MB of my memory being consumed for these three puny devices. The peripherals themselves are great; I have almost no complaints about them. The engineers (and possibly developers), on the other hand, should be chastized and reprimanded.

Let’s look at the list:
QuickCam10, wisptis, LogitechDesktopMessenger, Communications_Helper, COCIManager, LVComSX, and LVPrcSrv all seem to be there for the Camera, as they were absent prior to its installation. If you’re going to make them run all the time anyway, why not merge them all into one? Even better, remove the parts that aren’t in constant demand and dispose of the excess. All I want is the driver and a widget to pan/zoom/tilt.

Furthermore: Communications_Helper? What is the camera supposedly communicating with, and what justification can you provide for it? Why does it need help? WTF are wisptis, COCIManager, LVComSX, and LVPrcSrv? Why would my desktop require a Logitech Messenger?

LGDCore, LCDClock, LCDMedia, and LCDMon are all part of the G15’s comprehensive software package (Read: “Bloatware”). It has an LCD panel that displays the time, processor and memory utilization, and media playback status. The problems I have with this setup are simple: LCDMedia runs even when I’m not playing media, and I’ve totally disabled the clock in the Logitech software; thus LCDClock shouldn’t be there either. Since LCDMon is in charge of monitoring the LCD’s activity, why not just load the management for these modules directly into LCDMon? You would simply omit the objects that represent the unused functionality.

Then there’s the Notification Area icons. You should give me an option to check for updates upon load; but I should be able to disable this functionality as you are highly unlikely to provide any updates in which I would be interested. Other than that, none of the three Notification Area icons are neccessary. You don’t need to load them. Get them off my computer!

The Notification Area (Frequently mislabeled as the “System Tray”, an idea that died when Windows 95 was in beta) is designed for things that need to notify me of specific events. For example, if the camera is activated through a user in another session, I’d really need to be notified. If there’s an update available, I’ve disabled the update checking anyway, so you have no further justification for loading the icon or the software behind it.

In conclusion, these 62MB memory, 11 executables, and 3 icons can and should be consolidated into two executables (Camera movement API and Keyboard Macro API); the rest should be moved to the driver and nestled snugly deep within the HAL.

Oh, and in case any Logitech developers do happen to read this… Fire your design people. They suck. Gimme a rectangle with the pan, tilt, and zoom controls. You can jam it all into 100×100px and provide it in an attractive applet. Or at least give me an SDK and I’ll do it myself.

That’s my rant for the day.

What Do You Think?

 
38 queries / 0.157 seconds.