M
Marjolein Katsma
Don ([email protected]) wrote in
XML is no better or worse than .ini files or Registry entries (well, maybe
a little better in some respects, and owrse in others ) - what matters
is *semantics* of the data. XML doesn't solve anything in that respect.
The problem with standardizing is in the kinds and types of data
necessary: semantics. This is a BIG problem.
And once you have (theoretically only, since it's not even feasible)
standardized the types of data needed for all existing apps, a new one
comes along that needs different data yet again. What do we need: a world-
wide repository of user settings semantics? Accessible over the Internet?
What if a computer user doesn't have Internet access?
1. Easy installation with enough choices to let an installation adapt to
*my* system rather than adapt my system to an installer (that means both a
"standard" instaland a "custom" install, at least.
2. Uninstallation of everything that was *installed*
3. Tell me about any user data left in directories create by the installer
or subdirectories of that
Given that, it's
1) The application's responsibility to store any settings that are not
directly editable by the user in the Registry *below* a branch that was
created by the installer - so an uninstaller is able to remove those
2) The application's responsibility to store any settings that *are*
directly editable by the user in the file system *in* or *below* the
application's installation directory, or in a standard "Application data"
subdirectory - so the installer can warn the user not all data have been
removed (OR use a single .ini file in the %windows% directory created at
install time so the uninstaller can find it - but this is deprecated, not
least because it doen't handle different settings for different users)
3) The *users* resposibility to take care of any user data stored in a
location *they* decided in the first place - no uninstaller can know about
those and no installer should touch them anyway
BUT that ignores the multi-user situation - which makes the simplified 1-
2-3 lists above a whole lot more complicated.
A user may *want* that - but I've already explained that it's just not
possible. Maybe I should say, only naive users want that - users who
understand a little how applications and the OS they're running on work
will not wish for the impossible - and will not be prepared to pay the
price of a dedicated uninstaller which duplicates half the program's
logic.
They're NOT part of the program. Very often, I *don't* want them
uninstalled, so a newer version of the software can use them (directly, or
by importing them). Temporary files are the user's responsibility anyway -
who decides *how long* they should be kept? Only the user.
It should bloody NOT! An uninstaller that does that to me will mean I will
never, ever even consider another version of that software, unless I'm
reassured it's bettered its life. An uninstaller should NOT touch *my*
data (or at most ask me friendly whether to remove what it knows how to
find). Anything else is just not well-behaved.
Sure, remove the *program* and anything it needs to start up. But do NOT
touch ANY data.
No, it's impolite, to say the least. Hands off MY data! And not feasible
anyway. Your "just standardize" completely misses the reality of an
infinite set of semantics to describe all those data. See above.
Such as where?
No, it's not "just the way windows works". Where data are stored depends
on two things: the application (its own data) and the user's choice (user
data). An application that deosn't allow a user to choose where to store
their data is badly programmed. Nothing to do with how Windows works,
Windows makes these choices possible for responsible programmers.
Of course, we only need to "just standardize" how the last user-selected
location of all the possible somethings for all possible users are
recorded. For all possible applications used anywhere on the world.
And don't forget those semantics. ;-) They come before establishing rules.
See above.
In the sense that Windows is an application, yes; it's a tad sloppy - but
that is mostly because of backwards-compatibility with original bad
choices.
In the sense that Windows does not *enforce* any specific locations for
anything, true as well.
Both of these apply equally to *nix though. Mac OS is only partly an
exception in that OS X is built on top of *nix and you can do all *nix
things in it, as well. (Conveniently ignoring other OSs for a moment.)
Do they try that? Try to retrofit dicsipline?
Only in the sense that some deprecated (and insecure) approaches are no
longer possible (such as direct access to hardware). Otherwise backwards
compatibility rules, which has its disadvantages but huge advantages as
well.
The real responsibility is with application programmers; an OS only
provides a framework to make responsible applications happen.
Some MS programmers are *very* good. I've said it before: MS is BIG. Then
again, some MS programmers are indeed bad.
It's a result of flexibility.
No - where settings and user data are stored is not a result of whatever
kind of OS design, merely of programmer and user choice.
I intensily dislike any application that *doesn't* give me a choice where
to store my data (including my settings). Most programs that don't won't
ever make it past trial install and are quickly removed. Especially a
program that insists on storing user data (as opposed to settings here)
below the installation directory: I keep a strict separation between
programs and my data, they go on different physical drives.
It's MY system, after all. *I* decide what goes where. A program that
doesn't respect that doesn't deserve my respect.
....
Enough of that, I've explained enough now. If you still don't get it, I
give up.
So, tell me: what are all those places where Nikon Scan stores data during
operation (i.e., after installation)? Places that weren't set or accepted
by you in the first place?
There are literally dozens of ways to reconcile heterogeneous data.
Let's take the latest fad: XML for starters!
XML is no better or worse than .ini files or Registry entries (well, maybe
a little better in some respects, and owrse in others ) - what matters
is *semantics* of the data. XML doesn't solve anything in that respect.
The problem with standardizing is in the kinds and types of data
necessary: semantics. This is a BIG problem.
And once you have (theoretically only, since it's not even feasible)
standardized the types of data needed for all existing apps, a new one
comes along that needs different data yet again. What do we need: a world-
wide repository of user settings semantics? Accessible over the Internet?
What if a computer user doesn't have Internet access?
What does a user want from an (un)installer?
1. Easy installation with enough choices to let an installation adapt to
*my* system rather than adapt my system to an installer (that means both a
"standard" instaland a "custom" install, at least.
2. Uninstallation of everything that was *installed*
3. Tell me about any user data left in directories create by the installer
or subdirectories of that
Given that, it's
1) The application's responsibility to store any settings that are not
directly editable by the user in the Registry *below* a branch that was
created by the installer - so an uninstaller is able to remove those
2) The application's responsibility to store any settings that *are*
directly editable by the user in the file system *in* or *below* the
application's installation directory, or in a standard "Application data"
subdirectory - so the installer can warn the user not all data have been
removed (OR use a single .ini file in the %windows% directory created at
install time so the uninstaller can find it - but this is deprecated, not
least because it doen't handle different settings for different users)
3) The *users* resposibility to take care of any user data stored in a
location *they* decided in the first place - no uninstaller can know about
those and no installer should touch them anyway
BUT that ignores the multi-user situation - which makes the simplified 1-
2-3 lists above a whole lot more complicated.
The answer is, an automatic install so the user doesn't have to copy
any files manually or twiddle any OS settings (e.g. add registry
entries by hand).
Then, when the time comes to uninstall, automatic removal of all
files *including* any files the program has generated because it needs
them to operate! That does not include user *data*, of course, but it
does include user *settings*, temp files, OS settings, etc.
A user may *want* that - but I've already explained that it's just not
possible. Maybe I should say, only naive users want that - users who
understand a little how applications and the OS they're running on work
will not wish for the impossible - and will not be prepared to pay the
price of a dedicated uninstaller which duplicates half the program's
logic.
Conceptually and physically those settings are a part of the program
and you don't want them lingering on after uninstalling. What good are
those settings or temp files (the preview) etc. after you uninstall
the program? You want them gone!
They're NOT part of the program. Very often, I *don't* want them
uninstalled, so a newer version of the software can use them (directly, or
by importing them). Temporary files are the user's responsibility anyway -
who decides *how long* they should be kept? Only the user.
In short, an uninstaller should *fully* restore to "status quo ante",
(not a *partial* restore with bits left all over the place).
It should bloody NOT! An uninstaller that does that to me will mean I will
never, ever even consider another version of that software, unless I'm
reassured it's bettered its life. An uninstaller should NOT touch *my*
data (or at most ask me friendly whether to remove what it knows how to
find). Anything else is just not well-behaved.
Sure, remove the *program* and anything it needs to start up. But do NOT
touch ANY data.
By contrast, removing all program related files (whether they existed
at the time of initial installation or not) is meaningful
No, it's impolite, to say the least. Hands off MY data! And not feasible
anyway. Your "just standardize" completely misses the reality of an
infinite set of semantics to describe all those data. See above.
And, to get specific again, NikonScan sprinkles them all over the
place.
Such as where?
Not necessary Nikon's fault, it's just the way Windows works. Which
gets us back to poor MS programming!
No, it's not "just the way windows works". Where data are stored depends
on two things: the application (its own data) and the user's choice (user
data). An application that deosn't allow a user to choose where to store
their data is badly programmed. Nothing to do with how Windows works,
Windows makes these choices possible for responsible programmers.
Which is why I said at the beginning that (at the very least) an
uninstaller should be able to delete any settings in the program's
default location and the last user-selected location.
Of course, we only need to "just standardize" how the last user-selected
location of all the possible somethings for all possible users are
recorded. For all possible applications used anywhere on the world.
Standardization means: Instead of a free for all, both the
program and the OS agree to observe certain established rules so they
can work together.
And don't forget those semantics. ;-) They come before establishing rules.
See above.
Windows has traditionally had very little discipline.
In the sense that Windows is an application, yes; it's a tad sloppy - but
that is mostly because of backwards-compatibility with original bad
choices.
In the sense that Windows does not *enforce* any specific locations for
anything, true as well.
Both of these apply equally to *nix though. Mac OS is only partly an
exception in that OS X is built on top of *nix and you can do all *nix
things in it, as well. (Conveniently ignoring other OSs for a moment.)
That's why there are so many problems even when MS tries to retrofit
discipline.
Do they try that? Try to retrofit dicsipline?
Only in the sense that some deprecated (and insecure) approaches are no
longer possible (such as direct access to hardware). Otherwise backwards
compatibility rules, which has its disadvantages but huge advantages as
well.
The real responsibility is with application programmers; an OS only
provides a framework to make responsible applications happen.
And also why MS programmers are anything but good.
Some MS programmers are *very* good. I've said it before: MS is BIG. Then
again, some MS programmers are indeed bad.
The fact that there are so many *uncontrolled* places to store all
those settings is a prime example of all of that.
It's a result of flexibility.
It's also a prime example of sloppy OS design.
No - where settings and user data are stored is not a result of whatever
kind of OS design, merely of programmer and user choice.
I intensily dislike any application that *doesn't* give me a choice where
to store my data (including my settings). Most programs that don't won't
ever make it past trial install and are quickly removed. Especially a
program that insists on storing user data (as opposed to settings here)
below the installation directory: I keep a strict separation between
programs and my data, they go on different physical drives.
It's MY system, after all. *I* decide what goes where. A program that
doesn't respect that doesn't deserve my respect.
....
Enough of that, I've explained enough now. If you still don't get it, I
give up.
So, tell me: what are all those places where Nikon Scan stores data during
operation (i.e., after installation)? Places that weren't set or accepted
by you in the first place?