unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Thien-Thi Nguyen <ttn@glug.org>
Cc: emacs-devel@gnu.org
Subject: Re: Idea for determining what users use
Date: Sat, 31 May 2003 08:37:03 -0400	[thread overview]
Message-ID: <E19M5bb-0001dL-00@colo.agora-net.com> (raw)
In-Reply-To: <E19LY4o-0007La-25@fencepost.gnu.org> (message from Richard Stallman on Thu, 29 May 2003 20:48:58 -0400)

   From: Richard Stallman <rms@gnu.org>
   Date: Thu, 29 May 2003 20:48:58 -0400

   We could try to make it useful to other programmers--I have nothing
   against trying.  But not in a way that interferes with the original
   intended purpose, which is use for us.

certainly.  it sounds like the requirements for us are that we get
extremely compacted information (1-bit per feature) associated w/ a
particular release.

   For others to be able to use this, they need to be able to specify
   the email address in the call.  That won't be hard.

agreed.

       whether one hit or multiple hits, IMHO it is better to separate the
       collection and reporting sub-activities, not only for efficiency but
       also to support user control/privacy.

   I don't see how this could possibly make sense, but if you show me a
   specific alternative scenario, I will think about whether it is
   better.

sorry, i should have used the word "features" instead of "hits".  in our
case, for any feature, it is desirable to get only one bit of info (that
it is, whether the feature is indeed being used).  also, the number of
features is likely to be small.

for the more general instrumentation i'm slowly fulminating (since the
design of spyware is not the most happy activity, but i feel if it must
be done, might as well do a good job and include proper warnings and
explanations), there may be more bits involved along w/ more complicated
collection methods, some requiring repeated sampling.

an example of this would be, in hideshow.el, to answer the question "how
often does hs-headline usage lose due to C-g?".  i would need to collect
(repeatedly) hs-headline usage info along w/ "fixing the lossage" info,
represented in part by back-to-back invocations of M-x hs-minor-mode
(see Commentary).  to do this i would add something like:

  (snitch-collect-incf '(hideshow using-hs-headline))

to those places where hs-headline is set, and

  (when (eq 'hs-minor-mode last-command)
    (snitch-collect-incf '(hideshow back-to-back-hs-minor-mode)))

to hs-minor-mode.  `snitch-collect-incf' is a specialization of the
general `snitch-assoc-apply' (access $USER-snitched assoc list, munge as
needed, in this case incrementing a counter).

anyway, given this base, we can do something like:

(defun note-used-feature (name description)
  (snitch-assoc-apply name (lambda (current)
                             (unless current    ; one-shot
                               (compose-mail
                                 *feature-assay-email-address*
                                 (format "%s: %s" emacs-version
                                                  description)
                                 ...)
                               ;; retval is stashed in $USER-snitched
                               t))))

disclaimer: i don't actually intend to use snitch for official
hideshow.el maintenance in this way, but such a facility would be nice
for prereleases and other unofficial stuff.  to be annoyingly redundant,
IMHO the compose-mail call should be moved to a second-phase; the
example above is solely to demonstrate conformance to your original
design requirements.
                        
       like any code, its frequency of use is really up to its users
       once it gets into the wild.

   The purpose of this feature is for us to use it for low-frequency
   messages.  There is no sense in redesigning it to optimize
   for some other scenario at the expense of the intended purpose.

well i hope the design i have sketched is supportive of both our needs
and other needs.  i haven't thought too much on whether or not it is
optimized for one or the other in particular.  the main thing i like to
optimize for is effort (reducing it over the long run ;-).

   If you have some other application in mind and this feature isn't
   good for your application, then design some other feature.

ok, will check in a snitch.el independently at some point.  thanks for
triggering these interesting thoughts w/ your idea.

thi

  reply	other threads:[~2003-05-31 12:37 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-27 12:45 Idea for determining what users use Richard Stallman
2003-05-27 13:27 ` David Kastrup
2003-05-27 14:16 ` Vincent LADEUIL
2003-05-27 14:28 ` Stefan Monnier
2003-05-28  0:43   ` Kim F. Storm
2003-05-28  7:04     ` Juanma Barranquero
2003-05-28 13:54   ` Richard Stallman
2003-05-28 14:33     ` Stefan Monnier
2003-05-30  0:49       ` Richard Stallman
2003-05-27 14:39 ` Thien-Thi Nguyen
2003-05-27 15:32   ` Stephen J. Turnbull
2003-05-28 23:58   ` Richard Stallman
2003-05-29 11:35     ` Thien-Thi Nguyen
2003-05-30  0:48       ` Richard Stallman
2003-05-31 12:37         ` Thien-Thi Nguyen [this message]
2003-06-01 15:53           ` Richard Stallman
2003-06-01 20:26             ` Thien-Thi Nguyen
2003-06-03  4:06               ` Richard Stallman
     [not found] ` <m1r86ktqxx.fsf@vila.local.>
2003-05-28 13:54   ` Richard Stallman
2003-05-28 14:40     ` Vincent LADEUIL
     [not found]     ` <m1y90rp221.fsf@vila.local.>
2003-05-30  0:49       ` Richard Stallman
2003-05-30  7:28         ` Jan D.
2003-05-30 13:29           ` Stefan Monnier
2003-05-30 14:52             ` Jan D.
2003-05-30 15:40               ` Stefan Monnier
2003-05-30 16:32                 ` Alex Schroeder
2003-05-31 19:51                   ` Richard Stallman
2003-06-01  0:48                     ` Peter Lee
2003-06-01  1:24                     ` Luc Teirlinck
2003-06-01  1:59                       ` Luc Teirlinck
2003-06-02 11:16                         ` Richard Stallman
2003-06-03 22:55                           ` Kim F. Storm
2003-06-05  0:08                             ` Richard Stallman
2003-06-06  0:21                               ` Kim F. Storm
2003-06-07 10:22                                 ` Richard Stallman
2003-05-30 16:45                 ` Jan D.
2003-05-30 16:57                   ` Stefan Monnier
2003-05-31 19:51             ` Richard Stallman
2003-05-30 23:47 ` Kim F. Storm
2003-05-30 23:04   ` Miles Bader
2003-06-03 22:24     ` Kim F. Storm
2003-05-30 23:14   ` { SPAM 2 }::Re: " Luc Teirlinck
2003-05-30 23:40     ` Luc Teirlinck
2003-05-31 10:45     ` Kai Großjohann
2003-06-01 15:52   ` Richard Stallman
2003-06-01  5:06 ` Luc Teirlinck
2003-06-02 11:16   ` Richard Stallman
2003-06-03  2:43     ` Luc Teirlinck
2003-06-04  8:53       ` Richard Stallman
2003-06-03  4:05     ` Luc Teirlinck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E19M5bb-0001dL-00@colo.agora-net.com \
    --to=ttn@glug.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).