Re: Preventing multiple instance standalone desktop gui applications

From: steve (me_at_me.com)
Date: 09/27/04


Date: Mon, 27 Sep 2004 07:22:07 +0800

On Sat, 25 Sep 2004 14:09:59 +0800, Jacob wrote
(in article <41550BB7.5030309@yahoo.com>):

> Paul Lutus wrote:
>
>> There can be excellent reasons to do this. It is not necessarily a sign of
>> prorgammer laziness. If the program reads and writes to its own
>> configuration file, it is very confusing to a user to have multiple
>> instances running, and it seems inconsistent to spend time reconfiguring an
>> application, only to have the changes wiped out because of a minimized
>> extra instance that is closed automatically when the system is shut down.
>
> All programs (of a certain size and complexity) access persistent
> session information. That a program has this feature is no excuse
> to make it a "singelton" application.
>
> Technically, session information is no different from _data_ (as
> stored in a database). If concurrent modification is an issue
> then your session storage strategy is to simple.
>
> But of course, the user runs a certain *risk* when launching
> several instances of a program that stores configuration. This
> is a risk that he is aware of and must take the consequences of.
> The user should understand that when changing color in app A, exiting
> app A (=> store settings), and then exiting app B (=> store settings),
> then the color setting will be lost for the next session. This
> will be the user responsibility. The programmer is responsible for
> ensuring that the session info is never corrupted it any way.
> It takes some effort.
>
> I have many standard programs running that solves this problem
> just fine, and I have written quite a few as well.
>
>

you obviously have only ever written programs for Einstein like users.

A recent (real) case to highlight this:

A java program running on linux accessing an oracle database.
program did not start fast enough, for said user. ( startup time about 10
seconds)

at about 5 seconds Said used clicked on program icon 20 times to make it go
faster.

multiple applications launched, java kicked in linux swap files , after 5
minutes use switched off computer at power button, because it had "hung"

result corrupted disk & corrupted flag files ( not cleaned up) + 20 unclosed
connections to the oracle database.

conclusions:

1.A user can find a way to *** any system.
2. Users are generally morons.

Steve