Reminded by a talk on Guerilla marketing today, I’d like to take a moment to recommend that people who hack on dbus related stuff consider a few basic ideas for generalising services. As an example… Colin Walters has been working on a CUPS thingy (blogged here) and he says:
<quote> Eggcups will respond to a D-BUS request for a password by popping up a dialog. It uses libgnomeui for the dialog, and also uses gnome-keyring to optionally store the password. </quote>
This demonstrates one of the things which I personally find irritating
in people’s use of dbus. In my opinion, popping up a dialog and asking
for a password; then using gnome-keyring to store that password is
completely the wrong way up. The utopian view of things involves
services. D-BUS is all about services and services should be
generic. So what Colin should be doing (in my opinion) is getting
gnome-keyring to provide some form of
org.gnome.keyring service with a
GetPassword method call. That could look up the password by some key
in the keyring and reply with the password (or prompt as appropriate for
the keyring master password etc). Asking for a password should
not be a behaviour of a printer management system.
Especially given that it is using a password management
service. HTH… D.