Larry Osterman's WebLog

Confessions of an Old Fogey
Blog - Title

Why do people write applets?

Why do people write applets?

  • Comments 39

Since I spend so much time railing about applets, I also tend to look at applets to see what they do (after all, the first step in knowing how to defeat the enemy is to understand the enemy).

In general, applets seem to fall into several rough categories:

  • Updaters
  • Notification Area Handlers
  • Helper applications
  • Services (I did say that I lump services into the same category as applets).

Let me take them in turn...

Updaters:  I LIKE updaters.  Updaters are awesome.  IMHO, I trust applications that include updates more than those that don't (because an updater implies a commitment to further development and bug fixes).  However way too many vendors build programs that run all the time and do absolutely nothing other than wait to check for updates every week (or every month).  One other problem with updaters is that sometimes the authors of the updater use the updater to push unrelated software (at the moment, I'm particularly annoyed at the iTunes updater - if you install just Quicktime, the updater tries to get you to install Quicktime+iTunes, and there seems to be no way of shutting it up).

Notification Area Handlers:  Every application seems to want to put its own icon in the notification area.  To me, the functionality that is offered by many of these is of limited value. For example, my display driver includes an applet that allows the user to quickly switch between screen resolutions, but I almost never change my screen resolution - so why provide a easy shortcut for that functionality?  I'm not sure why, but personally I believe it's because of branding (since you get to put an icon with your notification area handler, it makes it obvious to the user that you've installed the software).  Some pieces of notification area functionality are quite useful (the "big 4" (Sound, Network, Battery, Clock) in Windows are good examples, as are things like RSSBandits' status indicator), but many of them make me wonder (which is why I suspect that branding is the real reason behind many of the notification area icons).

Helper applications: These are things like "FlashUtil9d.exe" (running on my machine right now) and other support processes.  Users often don't see these (since they don't bring up UI), but they live there nonetheless.  I have an HP 7400 printer at home, and the printer driver for that runs 2 separate processes for each user (one of which hangs during shutdown every time a user logs off).

Services: A special class of helper application, services have some significant advantages over helper applications (and some drawbacks).  Services can be centrally managed, and expose a common startup/shutdown interface.  They also can be automatically started at system boot, have strict dependencies, and can run in arbitrary user contexts (including elevated contexts).  On the other hand, it's difficult (and in many ways effectively impossible) to have services run in the context of the currently logged on user.  I'm a huge fan of services, but it's possible to totally overdo it.  In Windows Vista, there were a slew of new services introduced, and more and more applications are creating services, since the currently logged in user is no longer an administrator.  An example of a helper service is the WHSConnector service that comes with Windows Home Server (another of my current favorite products), and there are a bazillion others.

 

I'm sure that there are other categories of applets, but these 4 appear to be the biggies.

 

Tomorrow: So why are applets bad?

  • "I had to rename the app's exe to stop that."

    "Since I couldn't figure out which mechanism it used to start the installer I finally resolved it by patching..."

    My preference for stopping programs from running is to set NTFS permissions to deny execute.  That way the filename stays the same and won't affect uninstalls, restores, etc.

  • It looks like several posters agree than a nice public API would be nice.

    But let's take another mess that was not mentioned: why, oh why, does every piece of junk insists to add itself to HKCU\Software\Microsoft\Windows\CurrentVersion\Run or HKLM\Software\Microsoft\Windows\CurrentVersion\Run?

    Or in a hundred of other places?

    Why not Start -> Programs -> Startup, where you can see it and edit it without a PhD?

  • "Apple is notorious for this because of their patch policy (they only apply patches for the current revision of the OS, customers that have older OSs need to upgrade to get the security fix, even if the older OS is vulnerable)."

    Apple isn't quite that bad -- they supply security updates for at least current and current-1, sometimes more.  I know, since I'm current-1 now and was current-2 last year.

    Microsoft is basically the same way: there are no security updates for pre-SP2 XP, and the only other client OS out is Vista.

    It's about age and support load, not upselling.

  • Random Reader: Microsoft's patching policy is far more liberal than any other commercial OS out there.  We provide patches for something like 7 years after the release of the OS, 5 years after the successor.  And if you're willing to pay for a custom support agreement, you can get support beyond the product lifecycle.

    You're right that only version of XP we provide patches for is XP SP2 and and not XP SP1, but honestly, that's not surprising (IMHO, anyone running XP SP1 is a total fool).  We currently provide ongoing security patches for Win2K, XP SP2 and Vista.

    My issue with Apple is that they essentially say "no matter how heinous our security flaw is, if you're not running a recent version of our OS, tough".  My mom was forced to buy a new Mac because of this (they stopped supporting her machine when it was only something like 4 years old (her machine didn't come with a DVD drive and none of their current OS releases came on CDs)).

  • Tiger still ships on CDs as well as on DVDs, but however Leopead will probably not.

  • Wednesday, August 15, 2007 4:34 PM by James

    > Norman: It's just you. Look at the "properties" settings for the

    > taskbar and disable whatever system icons [sic] you like

    > --clock, volume, network, or power.

    OK then, Vista moved those settings to a *better* place than they were before, and it's just me who overlooked it while traversing the Control Panel settings for network, power, etc.  Thank you.

    Thursday, August 16, 2007 1:24 AM by LarryOsterman

    > IMHO, anyone running XP SP1 is a total fool

    Agreed.  SP2 was a bugfix release for both coding bugs and design bugs, and it was priced right for a bugfix release.

  • "My preference for stopping programs from running is to set NTFS permissions to deny execute.  That way the filename stays the same and won't affect uninstalls, restores, etc."

    Yes but the downside is that it doesn't work on FAT32 partitions and I like to keep my XP on FAT32 partition because I need to be able to boot DOS and see/edit/copy/delete files without having to boot from WinPE CD.

    Larry, I used XP SP1 until recently, it had all but SP2 patches installed and it worked fine. It had lower memory footprint and it was more responsive than SP2 version. Because of SP2, I can't use Soft-Ice kernel debugger anymore and I would rather be a fool and use it then be smart and use that awkward Microsoft Windows Debugger.

  • Devils Advocate: Scheduled tasks may not run if the machine is off - a concern for laptops, at any rate.

    That having been said, don't drop a craplet, check for updates at program run

  • In previous articles, I've pointed out: Programmer Hubris - He's just not that into you Programmer

Page 3 of 3 (39 items) 123