Updates to my about.el bio.
[sxemacs] / lisp / about.el
1 ;;; about.el --- the About The Authors page (shameless self promotion).
2
3 ;; Copyright (c) 1997 Free Software Foundation, Inc.
4 ;; Copyright (C) 2001 Ben Wing.
5 ;; Copyright (C) 2004 - 2020 Steve Youngs.
6
7 ;; Keywords: extensions
8 ;; Version: 3.0
9 ;; Maintainer: SXEmacs Development Team
10
11 ;; This file is part of SXEmacs.
12
13 ;; SXEmacs is free software: you can redistribute it and/or modify
14 ;; it under the terms of the GNU General Public License as published by
15 ;; the Free Software Foundation, either version 3 of the License, or
16 ;; (at your option) any later version.
17
18 ;; SXEmacs is distributed in the hope that it will be useful,
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 ;; GNU General Public License for more details.
22
23 ;; You should have received a copy of the GNU General Public License
24 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
25
26 ;;; Synched up with: Not in FSF.
27
28 ;; Original code: Jamie Zawinski <jwz@jwz.org>
29 ;; Text: Ben Wing <ben@xemacs.org>, Jamie Zawinski <jwz@jwz.org>
30 ;; Hard: Amiga 1000, Progressive Peripherals Frame Grabber.
31 ;; Soft: FG 2.0, DigiPaint 3.0, pbmplus (dec 91), xv 3.0.
32 ;; Modified for 19.11 by Eduardo Pelegri-Llopart <pelegri@eng.sun.com>
33 ;;                    and Chuck Thompson <cthomp@xemacs.org>
34 ;; More hacking for 19.12 by Chuck Thompson and Ben Wing.
35 ;; 19.13 and 19.14 updating done by Chuck Thompson.
36 ;; 19.15 and 20.0 updating done by Steve Baur and Martin Buchholz.
37
38 ;; Completely rewritten for 20.3 by Hrvoje Niksic <hniksic@xemacs.org>.
39 ;; The original had no version numbers; I numbered the rewrite as 2.0.
40 ;; Extensively revamped and most text rewritten by Ben Wing
41 ;; <ben@xemacs.org> for 21.4.
42
43 ;; Revamped again by Steve Youngs <steve@sxemacs.org> for SXEmacs.
44 ;; Lets call it version 3.0 of this file.
45
46 ;; Many things in this file are to gag.  Ideally, we should just use
47 ;; HTML (or some other extension, e.g. info) for this sort of thing.
48 ;; However, W3 loads too long and is too large to be dumped with
49 ;; XEmacs.
50
51 ;; If you think this is ugly now -- o boy, you should have seen it
52 ;; before.
53
54 (require 'wid-edit)
55
56 ;; People in this list have their individual links from the main page,
57 ;; or from the `Legion' page.  If they have an image, it should be
58 ;; named after the CAR of the list element (baw -> baw.png).
59 ;;
60 ;; If you add to this list, you'll want to update
61 ;; `about-personal-info' and `about-hackers', and add the name to one
62 ;; of the three mutually exclusive lists just below.
63
64 (defface about-headline-face
65   '((((class color) (background dark))
66      (:foreground "red" :bold t))
67     (((class color) (background light))
68      (:foreground "red4" :bold t))
69     (((class grayscale) (background light))
70      (:foreground "LightGray" :bold t))
71     (((class grayscale) (background dark))
72      (:foreground "DimGray" :bold t))
73     (t (:bold t)))
74   "Face used for colour-highlighted headlines in the About page.")
75
76 (defface about-link-face
77   '((((class color) (background dark))
78      (:foreground "blue" :underline t))
79     (((class color) (background light))
80      (:foreground "blue4" :underline t))
81     (((class grayscale) (background light))
82      (:foreground "DimGray" :bold t :italic t :underline t))
83     (((class grayscale) (background dark))
84      (:foreground "LightGray" :bold t :italic t :underline t))
85     (t (:underline t)))
86   "Face used for links in the About page.")
87
88 (defvar sxemacs-hackers
89   '(
90     ;; to sort the stuff below, use M-x sort-regexp-fields RET
91     ;; ^.*$ RET (\([a-z]*\) RET
92     (adrian    "Adrian Aichner"    "adrian@xemacs.org")
93     (aidan     "Aidan Kehoe"       "aidan@xemacs.org")
94     (aj        "Andreas Jaeger"    "aj@xemacs.org")
95     (ajc       "Andrew Cosgriff"   "ajc@xemacs.org")
96     (alastair  "Alastair Houghton" "alastair@xemacs.org")
97     (baw       "Barry Warsaw"      "bwarsaw@xemacs.org")
98     (ben       "Ben Wing"          "ben@xemacs.org")
99     (bw        "Bob Weiner"        "weiner@xemacs.org")
100     (cgw       "Charles Waldman"   "cgw@xemacs.org")
101     (chr       "Christian Nybø"    "chr@xemacs.org")
102     (craig     "Craig Lanning"     "craig@xemacs.org")
103     (cthomp    "Chuck Thompson"    "cthomp@xemacs.org")
104     (daiki     "Daiki Ueno"        "daiki@xemacs.org")
105     (dan       "Dan Holmsand"      "dan@xemacs.org")
106     (darrylo   "Darryl Okahata"    "darrylo@xemacs.org")
107     (devin     "Matthieu Devin"    "devin@xemacs.org")
108     (dkindred  "Darrell Kindred"   "dkindred@xemacs.org")
109     (dmoore    "David Moore"       "dmoore@xemacs.org")
110     (dv        "Didier Verna"      "didier@xemacs.org")
111     (eb        "Eric Benson"       "eb@xemacs.org")
112     (erik      "Erik Arneson"      "erik@sxemacs.org")
113     (fabrice   "Fabrice Popineau"  "fabrice@xemacs.org")
114     (golubev   "Ilya Golubev"      "golubev@xemacs.org")
115     (gunnar    "Gunnar Evermann"   "gunnar@xemacs.org")
116     (hbs       "Harlan Sexton"     "hbs@xemacs.org")
117     (heatxsink "Nick Granado"      "heatxsink@sxemacs.org")
118     (hisashi   "Hisashi Miyashita" "hisashi@xemacs.org")
119     (hmuller   "Hans Muller"       "hmuller@xemacs.org")
120     (hniksic   "Hrvoje Niksic"     "hniksic@xemacs.org")
121     (hobley    "David hobley"      "hobley@xemacs.org")
122     (horst     "Horst Günther Burkhardt" "horst@sxemacs.org")
123     (hroptatyr "Sebastian Freundt" "hroptatyr@sxemacs.org")
124     (hynek     "Hynek Schlawack"   "hynek@sxemacs.org")
125     (jan       "Jan Vroonhof"      "jan@xemacs.org")
126     (jareth    "Jareth Hein"       "jareth@xemacs.org")
127     (jason     "Jason R. Mastaler" "jason@xemacs.org")
128     (jay       "Jay Belanger"      "belanger@sxemacs.org")
129     (jens      "Jens Lautenbacher" "jens@xemacs.org")
130     (jmiller   "Jeff Miller"       "jmiller@xemacs.org")
131     (jonathan  "Jonathan Harris"   "jonathan@xemacs.org")
132     (juhp      "Jens-Ulrik Holger Petersen" "petersen@xemacs.org")
133     (jwz       "Jamie Zawinski"    "jwz@xemacs.org")
134     (kazz      "IENAGA Kazuyuki"   "ienaga@xemacs.org")
135     (kirill    "Kirill Katsnelson" "kirill@xemacs.org")
136     (kyle      "Kyle Jones"        "kyle@xemacs.org")
137     (larsi     "Lars Magne Ingebrigtsen" "larsi@xemacs.org")
138     (lg        "Evgeny Zajcev"     "lg@sxemacs.org")
139     (marcpa    "Marc Paquette"     "marcpa@xemacs.org")
140     (martin    "Martin Buchholz"   "martin@xemacs.org")
141     (mcook     "Michael R. Cook"   "mcook@xemacs.org")
142     (mly       "Richard Mlynarik"  "mly@xemacs.org")
143     (morioka   "MORIOKA Tomohiko"  "morioka@xemacs.org")
144     (mta       "Mike Alexander"    "mta@xemacs.org")
145     (myrkraverk "Johann Oskarsson" "myrkraverk@sxemacs.org")
146     (njsf       "Nelson Ferreira"  "njsf@sxemacs.org")
147     (ograf     "Oliver Graf"       "ograf@xemacs.org")
148     (olivier   "Olivier Galibert"  "olivier@xemacs.org")
149     (oscar     "Oscar Figueiredo"  "oscar@xemacs.org")
150     (pelegri   "Eduardo Pelegri-Llopart" "pelegri@xemacs.org")
151     (pez       "Peter Pezaris"     "pez@xemacs.org")
152     (piper     "Andy Piper"        "andy@xemacs.org")
153     (pittman   "Daniel Pittman"    "pittman@xemacs.org")
154     (rendhalver "Peter Brown"      "rendhalver@sxemacs.org")
155     (rickc     "Rick Campbell"     "rickc@xemacs.org")
156     (rose      "John Rose"         "rose@xemacs.org")
157     (rossini   "Anthony Rossini"   "rossini@xemacs.org")
158     (slb       "Steve Baur"        "steve@xemacs.org")
159     (sperber   "Michael Sperber"   "mike@xemacs.org")
160     (steve     "Steve Youngs"      "steve@sxemacs.org")
161     (stig      "Jonathan Stigelman" "stig@xemacs.org")
162     (stigb     "Stig Bjorlykke"    "stigb@xemacs.org")
163     (thiessel  "Marcus Thiessel"   "marcus@xemacs.org")
164     (tomonori  "Tomonori Ikeyama"  "tomonori@xemacs.org")
165     (tuck      "Matt Tucker"       "tuck@xemacs.org")
166     (turnbull  "Stephen Turnbull"  "turnbull@xemacs.org")
167     (vin       "Vin Shelton"       "acs@xemacs.org")
168     (vladimir  "Vladimir Ivanovic" "vladimir@xemacs.org")
169     (wmperry   "William Perry"     "wmperry@xemacs.org")
170     (yoshiki   "Yoshiki Hayashi"   "yoshiki@xemacs.org")
171     )
172   "Alist of SXEmacs hackers.")
173
174 (defvar about-current-release-maintainers
175   ;; this list should not necessarily be in sorted order.
176   '(steve njsf horst hroptatyr lg))
177
178 (defvar about-other-current-hackers '(erik hynek))
179
180 (defvar about-once-and-future-hackers
181   '(adrian aj ajc alastair baw ben bw cgw chr craig cthomp daiki dan darrylo
182            devin dkindred dmoore dv eb fabrice golubev gunnar heatxsink hbs hisashi
183            hmuller hniksic hobley jan jareth jason jens jmiller jonathan juhp
184            jwz kazz kirill kyle larsi marcpa martin mcook mly morioka mta myrkraverk
185            ograf olivier oscar pelegri pez piper pittman rendhalver rickc rose
186            rossini slb sperber stig stigb thiessel tomonori tuck turnbull vin
187            vladimir wmperry yoshiki))
188
189 ;; The CAR of alist elements is a valid argument to `about-url-link'.
190 ;; It is preferred to a simple string, because it makes maintenance
191 ;; easier.  Please add new URLs to this list.
192 (defvar about-url-alist
193     ;; to sort the stuff below, use M-x sort-regexp-fields RET
194     ;; ^.*$ RET (\([a-z]*\) RET
195   '((ajc        . "http://www-personal.monash.edu.au/~ajc/")
196     (alastair   . "http://website.lineone.net/~ajhoughton/")
197     (baw        . "http://barry.wooz.org/")
198     (ben        . "http://www.666.com/ben/")
199     (ben-xemacs . "http://www.xemacs.org/Architecting-XEmacs/index.html")
200     (beopen     . "http://www.beopen.com/")
201     (cc-mode    . "http://cc-mode.sourceforge.net/")
202     (chr        . "http://www.xemacs.org/faq/")
203     (daiki      . "http://deisui.bug.org/diary/servlet/view")
204     (dkindred   . "http://www.cs.cmu.edu/People/dkindred/me.html")
205     (dmoore     . "http://oj.egbt.org/dmoore/")
206     (dv         . "http://www.lrde.epita.fr/~didier/")
207     (fabrice    . "http://www.ese-metz.fr/~popineau/")
208     (fptex      . "http://www.fptex.org/")
209     (horst      . "http://midcom.steveyoungs.com/")
210     (hroptatyr  . "http://www.math.tu-berlin.de/~freundt/")
211     (jason      . "http://www.mastaler.com/")
212     (juhp       . "http://www.01.246.ne.jp/~juhp/")
213     (jwz        . "http://www.jwz.org/")
214     (kazz       . "http://www.imasy.or.jp/~kazz/")
215     (kyle       . "http://www.wonderworks.com/kyle/")
216     (larsi      . "http://quimby.gnus.org/lmi/")
217     (marcpa     . "http://www.positron911.com/products/power.htm")
218     (ograf      . "http://www.fga.de/~ograf/")
219     (pez        . "http://cbs.sportsline.com/")
220     (piper      . "http://www.andypiper.com/")
221     (rossini    . "http://faculty.washington.edu/rossini/")
222     (steve      . "https://www.steveyoungs.com/")
223     (steve-syw  . "https://sywriting.com/")
224     (steve-fb   . "https://facebook.com/steve.r.youngs/")
225     (steve-li   . "https://www.linkedin.com/in/steveyoungs")
226     (steve-inits . "https://www.sxemacs.org/SYinits/index.html")
227     (steve-twit . "https://twitter.com/SteveYoungs")
228     (stigb      . "http://www.tihlde.hist.no/~stigb/")
229     (sxemacs    . "https://www.sxemacs.org/")
230     (vin        . "http://www.upa.org/")
231     (vladimir   . "http://www.leonora.org/~vladimir/")
232     (wget       . "http://sunsite.dk/wget/")
233     (xemacs     . "http://www.xemacs.org/"))
234   "Some of the more important URLs.")
235
236 (defvar about-left-margin 3)
237
238 (defun about-lookup-url (name)
239   (let ((result (cdr (assq name about-url-alist))))
240     (assert result)
241     result))
242
243 ;; Insert a URL link in the buffer.  TEXT-TO-INSERT is the text that will
244 ;; be hyperlinked; if omitted, the URL is used.  HELP-ECHO is some text that
245 ;; will be displayed when the mouse moves over the link.
246 (defun about-url-link (url &optional text-to-insert help-echo)
247   (assert url)
248   (when (symbolp url)
249     (setq url (about-lookup-url url)))
250   (when (and text-to-insert (symbolp text-to-insert))
251     (setq text-to-insert (about-lookup-url text-to-insert)))
252   (widget-create 'url-link
253                  :button-prefix ""
254                  :button-suffix ""
255                  :help-echo help-echo
256                  :tag (or text-to-insert url)
257                  url))
258
259 ;; Insert a mail link in the buffer.
260 (defun about-mailto-link (address)
261   (lexical-let ((address address))
262     (widget-create 'link
263                    :tag address
264                    :button-prefix ""
265                    :button-suffix ""
266                    :action (lambda (widget &optional event)
267                              (compose-mail address))
268                    :help-echo (format "Send mail to %s" address))))
269
270 ;; Attach a face to a string, in order to be inserted into the buffer.
271 ;; Make sure that the extent is duplicable, but unique.  Returns the
272 ;; string.
273 (defun about-with-face (string face)
274   (let ((ext (make-extent 0 (length string) string)))
275     (set-extent-property ext 'duplicable t)
276     (set-extent-property ext 'unique t)
277     (set-extent-property ext 'start-open t)
278     (set-extent-property ext 'end-open t)
279     (set-extent-face ext face))
280   string)
281
282 ;; Switch to buffer NAME.  If it doesn't exist, make it and switch to it.
283 (defun about-get-buffer (name)
284   (cond ((get-buffer name)
285          (switch-to-buffer name)
286          (delete-other-windows)
287          (goto-char (point-min))
288          name)
289         (t
290          (switch-to-buffer name)
291          (delete-other-windows)
292          (buffer-disable-undo)
293          ;; #### This is a temporary fix until wid-edit gets fixed right.
294          ;; We don't do everything that widget-button-click does -- i.e.
295          ;; we don't change the link color on button down -- but that's
296          ;; not important.
297          (add-local-hook
298           'mouse-track-click-hook
299           #'(lambda (event count)
300               (cond
301                ((widget-event-point event)
302                 (let* ((pos (widget-event-point event))
303                        (button (get-char-property pos 'button)))
304                   (when button
305                     (widget-apply-action button event)
306                     t))))))
307          (set-specifier left-margin-width about-left-margin (current-buffer))
308          (set (make-local-variable 'widget-button-face) 'about-link-face)
309          nil)))
310
311 ;; Set up the stuff needed by widget.  Allowed types are `bury' and
312 ;; `kill'.  The reason why we offer both types is performance: when a
313 ;; large buffer is merely buried, `about' will find it again when the
314 ;; user requests it, instead of recreating it.  Small buffers can be
315 ;; killed because it is cheap to generate their contents.
316
317 (defun about-finish-buffer (&optional type)
318   (or type (setq type 'bury))
319   (widget-insert "\n")
320   (if (eq type 'bury)
321       (widget-create 'link
322                      :help-echo "Bury this buffer"
323                      :action (lambda (widget event)
324                                (if event
325                                    ;; For some reason,
326                                    ;; (bury-buffer (event-buffer event))
327                                    ;; doesn't work.
328                                    (with-selected-window (event-window event)
329                                      (bury-buffer))
330                                  (bury-buffer)))
331                      :tag "Bury")
332     (widget-create 'link
333                    :help-echo "Kill this buffer"
334                    :action (lambda (widget event)
335                              (if event
336                                  (kill-buffer (event-buffer event))
337                                (kill-buffer (current-buffer))))
338                    :tag "Kill"))
339   (widget-insert " this buffer and return to previous.\n")
340   (use-local-map (make-sparse-keymap))
341   (set-keymap-parent (current-local-map) widget-keymap)
342   (if (eq type 'bury)
343       (progn
344         (local-set-key "q" 'bury-buffer)
345         (local-set-key "l" 'bury-buffer))
346     (let ((dispose (lambda () (interactive) (kill-buffer (current-buffer)))))
347       (local-set-key "q" dispose)
348       (local-set-key "l" dispose)))
349   (local-set-key " " 'scroll-up)
350   (local-set-key [backspace] 'scroll-down)
351   (local-set-key "\177" 'scroll-down)
352   (widget-setup)
353   (goto-char (point-min))
354   (toggle-read-only 1)
355   (set-buffer-modified-p nil))
356
357 ;; Make the appropriate number of spaces.
358 (defun about-center (string-or-glyph)
359   (let ((n (- (startup-center-spaces string-or-glyph) about-left-margin)))
360     (make-string (if (natnump n) n 0) ?\ )))
361
362 ;; Sexy scrolly
363 (defvar about-rolling-message-leader
364   (about-with-face "[Hall of Fame]: " 'about-headline-face))
365
366 (defun* about-rolling-message (leader &rest msg)
367   "Roll MSG along the echo area, use LEADER as non-rolling prefix."
368   (let* ((msg (concat (apply 'format msg)
369                       "            "))
370          (width (- (window-width (minibuffer-window))
371                    (1+ (length leader))))
372          (msglen (length msg))
373          (normal-range (- msglen width))
374          (long-border-interval 1.5)
375          (long-default-interval 0.15)
376          submsg)
377     (if (< msglen width)
378         (display-message 'no-log (concat leader msg))
379       (while t
380         (dotimes (i msglen)
381           (setq submsg (if (< i normal-range)
382                            (substring msg i (+ i width))
383                          ;; Rolling is needed.
384                          (concat (substring msg i)
385                                  (substring msg 0 (- (+ i width) msglen)))))
386           (display-message 'no-log (concat leader submsg))
387           (unless (sit-for (cond
388                             ((eq i 0) long-border-interval)
389                             (t long-default-interval)))
390             (return-from about-rolling-message)))
391           (garbage-collect)))))
392
393 ;; Main entry page.
394
395 ;;;###autoload
396 (defun about-sxemacs ()
397   "Describe the True Editor and its minions."
398   (interactive)
399   (unless (about-get-buffer "*About SXEmacs*")
400     (widget-insert (about-center sxemacs-logo))
401     (widget-create 'default
402                    :format "%t"
403                    :tag-glyph sxemacs-logo)
404     (widget-insert "\n")
405     (let* ((emacs-about-version emacs-version))
406       (widget-insert (about-center emacs-about-version))
407       (widget-create 'link :help-echo "What's new in SXEmacs"
408                      :action 'about-news
409                      emacs-about-version))
410
411     (widget-insert
412      "\n\n"
413      (about-with-face "SXEmacs" 'bold-italic)
414      " is a powerful, highly customizable open source text editor and
415 application development system, with full GUI support.  It is protected
416 under the GNU Public Licence and other open source licences such as the
417 BSD (revised) Licence.  SXEmacs is related to other versions of Emacs, in
418 particular XEmacs.  Its emphasis is on modern graphical user interface
419 support and an open software development model, similar to Linux.  SXEmacs
420 runs on Linux, and nearly every other version of Unix in existence.
421
422 ")
423     (widget-insert "SXEmacs has many ")
424     (widget-create 'link :help-echo "See a list of SXEmacs advantages over XEmacs"
425                    :action 'about-advantages
426                    :button-prefix ""
427                    :button-suffix ""
428                    "advantages")
429     (widget-insert (format " over XEmacs.  In addition, SXEmacs %s
430 provides many "
431                            emacs-program-version))
432     (widget-create 'link :help-echo (format "See a list of new features in SXEmacs %s"
433                                             emacs-program-version)
434                    :action 'about-news
435                    :button-prefix ""
436                    :button-suffix ""
437                    "new features")
438     (widget-insert ".\n\nMore details on SXEmacs' functionality, including available packages, can
439 be obtained through the ")
440     (widget-create 'info-link
441                    :help-echo "Browse the info system"
442                    :button-prefix ""
443                    :button-suffix ""
444                    :tag "info"
445                    "(dir)")
446
447     (widget-insert
448      " system.\n
449 The SXEmacs web page can be browsed, using any WWW browser at\n
450 \t\t    ")
451     (about-url-link 'sxemacs nil "Visit SXEmacs WWW page")
452     (widget-insert "\n
453 SXEmacs is the result of the time and effort of many people.  The
454 developers responsible for this release are:\n\n")
455
456     (flet ((setup-person (who)
457             (widget-insert "\t* ")
458             (let* ((entry (assq who sxemacs-hackers))
459                    (name (cadr entry))
460                    (address (caddr entry)))
461               (widget-create 'link
462                              :help-echo (concat "Find out more about " name)
463                              :button-prefix ""
464                              :button-suffix ""
465                              :action 'about-maintainer
466                              :tag name
467                              :value who)
468               (widget-insert (format "  <%s>\n" address)))))
469       ;; Setup persons responsible for this release.
470       (mapc 'setup-person about-current-release-maintainers)
471       (widget-insert "\n\t* ")
472       (widget-create 'link :help-echo "A legion of SXEmacs hackers"
473                      :action 'about-hackers
474                      :button-prefix ""
475                      :button-suffix ""
476                      "The full list of contributors...")
477       (widget-insert "\n\n")
478       (widget-insert
479        "You have the program, now get the T-shirt...\n\n\t\t    ")
480       (about-url-link 'sxemacs-shop nil "Check out the SXEmacs merchandise")
481       (widget-insert "\n\n"))
482     (about-finish-buffer 'kill)
483     ;; it looks horrible with the cursor on the first line, since it's
484     ;; so big.
485     (goto-line 2)
486     (about-rolling-message about-rolling-message-leader
487                            (mapconcat
488                             #'(lambda (hacker)
489                                 (cadr (assq hacker sxemacs-hackers)))
490                             (append
491                              about-current-release-maintainers
492                              about-other-current-hackers
493                              about-once-and-future-hackers) " · "))))
494
495 ;; View news
496 (defun about-news (&rest ignore)
497   (view-emacs-news)
498   (message "%s" (substitute-command-keys
499                  "Press \\[kill-buffer] to exit this buffer")))
500
501 (defun about-advantages (&rest ignore)
502   (unless (about-get-buffer "*About Advantages*")
503     (let ((title "SXEmacs Advantages over XEmacs"))
504       (widget-insert
505        "\n"
506        (about-center title)
507        (about-with-face title 'bold)))
508     (widget-insert
509      "\n
510 SXEmacs is still a very young project, but already there are quite a
511 few features and benefits over XEmacs...\n\n"
512      (about-with-face "* Win32 Support" 'bold)
513      "\n
514 We have decided not to support the Win32 platform.  Yes, we consider
515 this a feature\n\n"
516      (about-with-face "* Foreign Function Interface (FFI)" 'bold)
517      "\n
518 This makes it possible to bring the functionality of almost any
519 external library to elisp.  Two useful examples can be found in
520 ffi-curl.el and ffi-wand.el.  The former allows SXEmacs to download
521 files from the internet using any protocol that libcurl supports.
522 And the latter allows SXEmacs to view any image format that libWand
523 supports.\n\n"
524      (about-with-face "* OpenSSL" 'bold)
525      "\n
526 SXEmacs can be compiled with OpenSSL that enables a range of cryptography
527 and digest functionalities.\n\n"
528      (about-with-face "* Fully Autotooled Build Chain" 'bold)
529      "\n
530 SXEmacs uses a completely autotooled build chain that uses aclocal,
531 autoheader, automake, and autoconf.  The configure.ac requires autoconf
532 2.59 or above.\n\n"
533      (about-with-face "* PostgreSQL" 'bold)
534      "\n
535 SXEmacs has better support for PostgreSQL 8.x.\n\n"
536      (about-with-face "* More Mouse Buttons" 'bold)
537      "\n
538 You can bind up to 32 mouse buttons.  The first 26 of which can be
539 used as modifiers.\n\n"
540      (about-with-face "* Uptime" 'bold)
541      "\n
542 Every decent OS has an uptime util... SXEmacs is no exception. :-)\n\n"
543      (about-with-face "* Package Bootstrapping" 'bold)
544      "\n
545 The SXEmacs PUI \(Package User Interface\) can be \"bootstrapped\"
546 without the requirement of having "
547      (about-with-face "any" 'underline)
548      " XEmacs packages pre-installed.\n\n"
549      (about-with-face "* Enhanced Number Types" 'bold)
550      "\n
551 XEmacs 21.5 users might know this as \"bignum\". SXEmacs has bignums
552 and bigfloats and ratios like XEmacs 21.5, but it also goes way
553 beyond the XEmacs implementation. Many, many, more number types and
554 other mathematical goodies are supported in SXEmacs.\n\n"
555      (about-with-face "* Raw Strings" 'bold)
556      "\n
557 SXEmacs has Python-style raw strings. It greatly reduces \"backslashitis\"
558 when writing those hairy regexps. :-)
559
560   Normal regexp: \"\\\\(foo\\\\|bar\\\\)\"
561   Raw string regexp: #r\"\\\(foo\\\|bar\\\)\"\n\n"
562      (about-with-face "* TTY font-locking" 'bold)
563      "\n
564 SXEmacs has improved font-locking in a TTY.\n\n"
565      (about-with-face "* More Image Formats Supported" 'bold)
566      "\n
567 This was mentioned under FFI, but it is worth noting again. With FFI
568 and libWand, SXEmacs can display any image format that is supported by
569 Imagemagick's libwand.\n\n"
570      (about-with-face "* Embeddable KBD Macros" 'bold)
571      "\n
572 With SXEmacs you can embed one keyboard macro inside another, not just
573 prepend or append, but anywhere within the macro.  In other words you
574 can replay a macro while you are defining a macro.\n\n"
575      (about-with-face "* Server Sockets" 'bold)
576      "\n
577 Not only can SXEmacs initiate outgoing TCP/UDP connections like XEmacs can,
578 it can also create and listen for incomming TCP/UDP connections through the
579 use of server sockets.  See `open-network-server-stream'.\n\n"
580      (about-with-face "* Multimedia" 'bold)
581      "\n
582 SXEmacs has quite extensive multimedia support.  Not only can it display
583 practically every image format under the sun, it can also play a large
584 selection of audio formats such as: wav, au, mp3, mka, ogg, aac, ac3,
585 mp4, flac, mpc, and mpa.  SXEmacs supports asynchronous playback.\n\n"
586      (about-with-face "* Skip Lists" 'bold)
587      "\n
588 SXEmacs has a basic implementation of Pugh's skip lists.  Their
589 efficiency is overwhelming when compared to alists or plists.  They
590 also perform better on insertion and removal than large hash-tables
591 \(due to the resizing/rehashing which takes place\).  They can be
592 created almost as fast as lisp lists and thus beat hash-tables
593 there, too.\n\n"
594      (about-with-face "* Bloom Filters" 'bold)
595      "\n
596 Bloom filters are special purpose objects for fast membership tests.
597 They combine the speed of hash-tables with the flexibility of lisp's
598 `memq' function.\n\n"
599      (about-with-face "* Double Linked Lists" 'bold)
600      "\n
601 Double linked lists are simply an extension to ordinary lists that
602 allow you to manipulate or work with either the head or the tail of
603 the list \(ordinary lists only allow working from the head\).\n\n")
604     (about-finish-buffer)))
605
606 (defvar about-glyphs nil
607   "Cached glyphs")
608
609 ;; Return a maintainer's glyph
610 (defun about-maintainer-glyph (who)
611   (let ((glyph (cdr (assq who about-glyphs))))
612     (unless glyph
613       (let ((file (expand-file-name
614                    (concat (symbol-name who)
615                            (if (memq (device-class)
616                                      '(color grayscale))
617                                "" "m")
618                            ".png")
619                    (locate-data-directory "photos")))
620             (data nil))
621         (setq glyph
622               (cond ((stringp data)
623                      (make-glyph
624                       (if (featurep 'png)
625                           `([png :data ,data]
626                             [string :data "[Image]"])
627                         `([string :data "[Image]"]))))
628                     ((eq data 'error)
629                      (make-glyph [string :data "[Error]"]))
630                     (file
631                      (make-glyph
632                       (if (featurep 'png)
633                           `([png :file ,file]
634                             [string :data "[Image]"])
635                         `([string :data "[Image]"]))))
636                     (t
637                      (make-glyph [nothing]))))
638         (set-glyph-property glyph 'baseline 100)
639         ;; Cache the glyph
640         (push (cons who glyph) about-glyphs)))
641     glyph))
642
643 ;; Insert personal info about a maintainer.  See also
644 ;; `about-hacker-contribution'.  Note that the info in
645 ;; `about-hacker-contribution' is automatically displayed in the
646 ;; person's own page, so there is no need to duplicate it.
647 (defun about-personal-info (entry)
648   (ecase (car entry)
649     ;; you can sort the stuff below with something like
650     ;;(sort-regexp-fields nil
651     ;; " *(\\([^()]\\|([^()]*)\\|(\\([^()]\\|([^()]*)\\)*)\\)*)\n"
652     ;; " *(\\([a-z]*\\)"
653     ;; (region-beginning) (region-end))
654     (adrian
655      (widget-insert
656       "
657 Sorry, no personal information available about me yet.\n"))
658     (aj
659      (widget-insert "
660 I'm a software developer working for the SuSE Labs of the Linux
661 distributor SuSE.  My main task is to improve the GNU C library.")
662      (widget-insert ".\n"))
663     (ajc
664      (widget-insert "
665 When not helping maintain the XEmacs website, Andrew is a Network
666 Software Engineer(tm) for Monash University in Australia, maintaining
667 webservers and doing random other things.  As well as spending spare
668 time being an Eager Young Space Cadet and fiddling with XEmacs/Gnus
669 et. al., he spends his time pursuing, among other things, a Life.
670 Some of this currently involves doing an A-Z (by country) of
671 restaurants with friends, and has, in the past, involved dyeing his
672 hair various colours (see ")
673      (about-url-link 'ajc nil "Visit Andrew's home page")
674      (widget-insert ".\n"))
675     (alastair
676      (widget-insert
677       "
678 Alastair, apart from being an all-round hacker, occasional contributor
679 to free software projects and general good egg(!), currently works for
680 Telsis, a manufacturer of telephony equipment on the south coast of
681 England.  He'd quite like to have his own company one day, but has yet
682 to think of that killer product...
683
684 See also ")
685         (about-url-link 'alastair nil "Visit Alastair's home page")
686         (widget-insert ".\n"))
687     (baw
688      (widget-insert "
689 As of November 2000, I am a software engineer with the Pythonlabs at
690 Digital Creations.  Pythonlabs is the core team developing and
691 maintaining the Python open source, object-oriented scripting
692 language.  Digital Creations is the publisher of Zope, an open source
693 content management system written in Python.
694
695 In addition to my Python and Zope work, I am lead developer for the
696 GNU Mailman project, a mailing list management system written,
697 naturally, in Python.  See the trend?
698
699 On the side I play bass with a number of Washington DC area bands and
700 also write poems about cows, milk, and fathers.  Here's a sample, and
701 drop me an email if you live in the NYC to Charlotte region; I'll let
702 you know when the band's playing in your area.  It'd be cool to meet
703 you, and talking about XEmacs would make my wife very happy by helping
704 to fend off the legions of groupies that seem to follow me everywhere.
705
706     Milk Me Daddy
707     (C) 1990 Warsaw
708     ===============
709     Oh daddy with your fingers pink
710     From whose udders do you drink?
711     Thy milk offends with putrid stink
712     I'll vomit now, lactose I think
713
714     If I could dream, I'd be a cow
715     Not horse, or mule, or barnyard sow
716     The cud I'd chew would drip and how!
717     So milk me daddy, milk me now!
718
719     My bovine nature knows no bounds
720     I'd naught awake at midnight sounds
721     Of teens approaching o'er the grounds
722     To tip with glee, then screech like clowns
723
724     And so I stare into this glass
725     Of sweaty juice, I gulp so fast
726     Each drop I lick, down to the last
727     The vertigo I know will pass
728
729     My mother smiles and pats my head
730     She's proud of me, so she has said
731     My pop just now gets out of bed
732     His eyes quite comatose and red
733
734     He'll empathize my milky fate
735     Whilest sopping gravy from his plate
736     And as the hour is getting late
737     His belly taut with all he ate
738
739     He isn't often quite so chatty
740     His arteries clogged with meat so fatty
741     With burps that launch soup, thick and splatty
742     Oh how I wish you'd milk me daddy\n\n\t")
743      (about-url-link 'baw nil "Visit Barry's home page")
744      (widget-insert "\n"))
745     (ben
746      (widget-insert
747       "
748 Since September 1992, I've worked on XEmacs as a contractor for
749 various companies and more recently as an unpaid volunteer.
750
751 Alas, life has not been good to me recently.  This former San
752 Francisco \"Mission Critter\" developed insidious hand and neck
753 problems after a brief stint working on a Java-based VRML toolkit for
754 the now defunct Dimension X, and I was forced to quit working.  I was
755 exiled first to \"Stroller Valley\" and later all the way to Tucson,
756 Arizona, and for two years was almost completely disabled due to pain.
757 More recently I have fought my way back with loads and loads of
758 narcotic painkillers, and currently I'm an art student at the
759 University of Arizona.\n\n")
760      (widget-insert "Architecting XEmacs: ")
761      (about-url-link 'ben-xemacs nil "Find the miracles in store for XEmacs")
762      (widget-insert "\nBen's home page:     ")
763      (about-url-link 'ben nil "Visit Ben's page")
764      (widget-insert "\n"))
765     (bw
766      (widget-insert "
767 His interests include user interfaces, information management, CASE
768 tools, communications and enterprise integration.\n"))
769     (cgw
770      (widget-insert
771       "
772 Sorry, no personal information available about me yet.\n"))
773     (chr
774      (widget-insert "
775 Christian is a student at the Norwegian School of Economics and
776 Business Administration in Bergen, Norway.  He used to work for an
777 internet startup called New Media Science, doing scripting and
778 violation of HTML DTD's.  After graduation, spring 1999, he'll be
779 looking for a job involving lisp programming, French and Russian.\n"))
780     (craig
781      (widget-insert
782       "
783 Sorry, no personal information available about me yet.\n"))
784     (cthomp
785      (widget-insert "
786 Chuck is a senior system and network administrator for the Computer
787 Science department at the Unversity of Illinois.  In one previous life
788 he spent every waking hour working on XEmacs.  In another he dabbled
789 as a project manager for a streaming video startup (RIP).  His current
790 reason for not having time to contribute to XEmacs is the Thompson
791 Twins.\n"))
792     (daiki
793      (about-url-link 'daiki nil "Visit Daiki's page"))
794     (dan
795      (widget-insert
796       "
797 Sorry, no personal information available about me yet.\n"))
798     (darrylo
799      (widget-insert
800       "
801 Perennial Emacs hacker since 1986 or so, when he first started on GNU
802 Emacs 17.something.  Over the years, he's developed \"OEmacs\", the first
803 version of GNU Emacs 19 for MSDOS, and \"bigperl\", a 32-bit version of
804 Perl4 for MSDOS.  In recent years, reality has intruded and he no longer
805 has much time for playing with cool programs.  What little time he has
806 now goes to XEmacs hacking, where he's worked on speeding up dired under
807 MS Windows, and to feeding his two cats.\n"))
808     (devin
809      (widget-insert
810       "
811 Sorry, no personal information available about me yet.\n"))
812     (dkindred
813      (widget-insert "
814 Darrell is currently a doctoral student in computer science at
815 Carnegie Mellon University, but he's trying hard to kick that
816 habit.
817
818 See ")
819      (about-url-link 'dkindred nil "Visit Darrell's WWW page")
820      (widget-insert ".\n"))
821     (dmoore
822      (widget-insert "
823 David is a student in the Computer Systems Laboratory at UCSD.  When
824 he manages to have free time, he usually spends it on 200 mile bicycle
825 rides, learning German or showing people the best mail & news
826 environment he's found in 10 years.  (That'd be XEmacs, Gnus and bbdb,
827 of course.)  He can be found at `druidmuck.egbt.org 4201' at various
828 hours of the day.
829
830 He has a page at ")
831      (about-url-link 'dmoore nil "Visit David's home page")
832      (widget-insert ".\n"))
833     (dv
834      (widget-insert "
835 I graduated at ENST (an engineering school in Paris) and have a Ph.D.
836 in computer science. I'm currently a teacher at EPITA (another
837 engineering school, still in Paris) and a researcher at LRDE (EPITA's
838 research and development laboratory). Our research topics include
839 generic programming and distributed virtual reality.
840
841 Apart from XEmacs, I'm also involved in other free software projects,
842 including Gnus, BBDB, and the GNU \"autotools\". I also wrote some
843 LaTeX packages (ugh :-).
844
845 All of this, actually, is only 60% true. Two days per week, I'm also a
846 semi-professional Jazz guitar player (and singer), which means that it
847 is not the way I earn my crust, but things may very well reverse in
848 the future ...\n\n")
849      (widget-insert "Visit Didier's home page: ")
850      (about-url-link 'dv nil "Visit Didier's home page")
851      (widget-insert "\n"))
852     (eb
853      (widget-insert
854       "
855 Sorry, no personal information available about me yet.\n"))
856     (erik
857      (widget-insert "
858 Sorry, no personal information available about me yet.\n"))
859     (fabrice
860      (widget-insert
861       "
862 I'm a computer science researcher and teacher in a French electrical
863 engineering institution called Supelec. My fields of interest are
864 symbolic artificial intelligence, theoretical computer science, functional
865 languages ... and TeX.
866
867 Lately, my hacking time has been devoted to porting the Web2C/teTeX
868 distribution of TeX for Unix to Win32, and I'm still maintaining it.
869 It is included in the TeX Live cdrom edited by Sebastian Rahtz.\n")
870      (widget-insert "Visit fpTeX home page: ")
871      (about-url-link 'fptex nil "Visit fpTeX home page")
872      (widget-insert "\nFabrice's home page:   ")
873      (about-url-link 'fabrice nil "Visit Fabrice's page")
874      (widget-insert "\n"))
875     (golubev
876      (widget-insert
877       "
878 I appreciate power of XEmacs, but elementary editing operations should
879 be done by single keystrokes with no modifiers.  So would not use
880 XEmacs until discovered viper, and now can't live without viper.
881 Occasionally dislike something in there or in other free software, and
882 try to get it fixed.  .plan file contains classic (perhaps reinvented
883 independently) formula:
884
885 Hacking world for ever
886
887 \(borrowed from \"Hacking X for Y\" in ")
888      (about-url-link "http://www.jargon.org/"
889                      "Jargon File" "www.jargon.org")
890      (widget-insert ").\n"))
891     (gunnar
892      (widget-insert
893       "
894 Sorry, no personal information available about me yet.\n"))
895     (hbs
896      (widget-insert
897       "
898 Sorry, no personal information available about me yet.\n"))
899     (heatxsink
900      (widget-insert
901       "
902 Sorry, no personal information available about me yet.\n"))
903     (hisashi
904      (widget-insert
905       "
906 Sorry, no personal information available about me yet.\n"))
907     (hmuller
908      (widget-insert
909       "
910 Sorry, no personal information available about me yet.\n"))
911     (hniksic
912      (widget-insert "
913 Hrvoje thinks he works in the server-side web business.  In reality,
914 he cranks out huge quantities of HTML, Tcl, and Java for the German
915 branch of ")
916      (about-url-link "http://www.arsdigita.com/"
917                      "ArsDigita, Inc." "www.arsdigita.com")
918      ;; Avoid literal I18N characters in strings.  *Displaying* a
919      ;; Latin 1 character should always be safe, though, with or
920      ;; without Mule.
921      (let ((muenchen (format "M%cnchen" (make-char 'latin-iso8859-1 252))))
922        (widget-insert (format "
923   He joined the ranks of Gastarbeiters only
924 recently; he is trying to learn German and get attuned to %s
925 and Bav^H^H^HGermany.\n" muenchen)))
926
927      (widget-insert "
928
929 Before ArsDigita, he worked as a programmer at ")
930      (about-url-link "http://www.iskon.hr/" "Iskon," "www.iskon.hr")
931      (widget-insert " a fast-growing
932 Croatian ISP.  Even before that, he worked part-time for academic
933 institutions like ")
934      (about-url-link "http://www.srce.hr/" "SRCE" "www.srce.hr")
935      (widget-insert " and ")
936      (about-url-link "http://www.carnet.hr/" "CARNet," "www.carnet.hr")
937      (widget-insert " and tried to attend university.
938
939 He takes perverse pleasure in building and maintaining free software
940 in his free time.  Apart from XEmacs, his major contribution is ")
941      (about-url-link 'wget "Wget," "Wget home page")
942      (widget-insert "
943 his very own creation, now jointly maintained by a happy crew.
944
945 He dreams of having a home page.\n"))
946     (hobley
947      (widget-insert "
948 I used to do real work, but now I am a Project Manager for one of the
949 Telco's in Australia. In my spare time I like to get back to basics and
950 muck around with things. As a result I started the NT port. Hopefully I
951 will get to finish it sometime sooner rather than later. I do vaguely
952 remember University where it seems like I had more spare time that I can
953 believe now. Oh well, such is life.\n"))
954     (horst
955      (widget-insert "
956 Horst is a student still working towards his HSC. He has a Unit II
957 certification in Information Technology already, and is studying
958 Chemistry, German, and Physics.
959
960 He started using XEmacs relatively recently, when he started with Linux
961 in 2003. He has since converted to using Linux full-time.
962
963 He hopes to produce the first Linux distribution to use a decked-out
964 SXEmacs as the default editor.\n")
965      (about-url-link 'horst nil "Pandora's Box")
966      (widget-insert ".\n"))
967     (hroptatyr
968      (widget-insert "
969 In real life most of the time my name is Sebastian Freundt.
970 I'm a mathematician at the ")
971      (about-url-link "http://www.math.tu-berlin.de"
972                      "Technical University of Berlin"
973                      "www.math.tu-berlin.de")
974      (widget-insert ".
975 My main task there is to hack at the computer algebra system KANT/KASH,
976 and incorporate the ideas of the SCIEnce project.
977
978 In my rare-spare time I use to hack some obscure auxiliary packages for
979 \(S\)XEmacs, fiddle with new kinds of software technology, give lectures on
980 abstract theories and mostly enjoy the IRC stream at freenode.
981
982 I've been using the XEmacs flavour since the mid 90s, mostly for coding
983 and reading news.\n"))
984     (hynek
985      (widget-insert "
986 Sorry, no personal information available about me yet.\n"))
987     (jan
988      (widget-insert "
989 Jan Vroonhof has been using XEmacs since he needed to write .tex files
990 for his work as a physics and maths student at the Univerisity of Leiden.
991 His XEmacs hacking started when XEmacs kept freezing up under a his
992 window manager. He submitted a fix and has been hooked every since.
993
994 XEmacs has followed him first to Switzerland where he did a maths
995 doctorate at the ETH in Zurich, working on a conjecture by Migdal on
996 the behavior of vertex corrections in Electron-Phonon theory.  Finally
997 sharing a house with his loved one, he now lives in Oxford (UK)
998 working on the Jeode Java Virtual Machine, which like XEmacs is
999 portable, implements a language, includes a non-trivial bit of
1000 graphics and a garbage collector, but is multithreaded to boot!
1001 Unfortunately his XEmacs time is directly limited by the amount of
1002 traffic on the M40.\n"))
1003     (jareth
1004      (widget-insert "
1005 Jareth Hein is a mountain boy who abandoned his home state of Colorado
1006 for the perpetual state of chaos known as Tokyo in a failed attempt to
1007 become a cel-animator, and a more successful one to become a
1008 computer-game programmer. As he happens to be bilingual (guess which
1009 two?) he's been doing quite a bit of MULE hacking.  He's also getting
1010 his hands dirty in the graphics areas as well.\n"))
1011     (jason
1012      (widget-insert "
1013 Jason resides in Northern New Mexico where he works as a Systems
1014 Scientist(tm) in the Los Alamos National Laboratory's Advanced
1015 Computing Group.
1016
1017 See: ")
1018       (about-url-link 'jason nil "Visit Jason's homepage")
1019       (widget-insert ".\n"))
1020     (jens
1021      (widget-insert "
1022 I'm currently working for 1&1 Internet AG, a large Domain and Webspace
1023 Provider in Germany and Europe.  I do mostly Java/XML/OO/Component
1024 stuff today.  I'm interested EJB, Corba and other middleware or
1025 distributed Systems.  Besides work, I occasionally hack on The Gimp
1026 and other gtk/gnome related projects.  Maybe the advent of XEmacs/Gtk
1027 will get me back to spend some time again hacking on XEmacs in the
1028 near future.\n"))
1029     (jmiller
1030      (widget-insert "
1031 Jeff grew up in Indiana and is a country boy at heart.  He currently
1032 lives in, of all places, Millersville Maryland.  He spends a lot of
1033 his free time tinkering with Linux and hacking on XEmacs and loves it
1034 when he finds new cool features in either.  When he's not doing that,
1035 he enjoys downhill skiing, puzzles, and sci-fi.  Jeff is also really
1036 interested in classical Roman history and enjoys making trips to
1037 Italy, where he was born, and seeing the sights")
1038      (widget-insert ".\n"))
1039     (jonathan
1040      (widget-insert "
1041 I work for Symbian Ltd in London, England, looking after low-level
1042 kernel, peripheral and toolchain stuff for the EPOC OS.
1043
1044 I've been using XEmacs since 1994, but didn't start hacking on it
1045 until late 1997 when I started working at Symbian, a Windows-only
1046 company, and felt lost without my favourite editing environment.\n"))
1047     (juhp
1048      (widget-insert "
1049 Jens was born in Copenhagen, grew up in Britain and is now living in
1050 Japan.  He started using XEmacs 20 (instead of Emacs) as his
1051 work-environment in June 1997 while still an EU postdoc at RIMS, Kyoto
1052 University, and quickly got involved in XEmacs development.  Recently
1053 he is getting into Haskell, a very nice pure functional programming
1054 language.
1055
1056 ")
1057      (about-url-link 'juhp nil "Visit Jens' homepage")
1058      (widget-insert "\n"))
1059     (jwz
1060      (widget-insert
1061       "\t"
1062       (about-with-face "\"So much to do, so little time.\"" 'italic)
1063       "\n
1064 Jamie Zawinski was primarily to blame for Lucid Emacs from its
1065 inception in 1991, to 1994 when Lucid Inc. finally died.  After that,
1066 he was one of the initial employees of Netscape Communications, writing
1067 the first Unix version of Netscape Navigator, and designing and
1068 implementing the first version of the Netscape Mail and News readers.
1069 He then helped create and run ")
1070      (about-url-link "http://www.mozilla.org/"
1071                      "mozilla.org"
1072                      "Visit The Mozilla Organization")
1073      (widget-insert " for its first two years,
1074 until America Online bought Netscape Communications, at which point he
1075 gave up in disgust and dropped out of the computer industry entirely.
1076
1077 He now runs a ")
1078      (about-url-link "http://www.dnalounge.com/"
1079                      "nightclub"
1080                      "Visit The DNA Lounge")
1081      (widget-insert " in San Francisco, and occasionally writes
1082 screen savers.\n\n")
1083      (widget-insert "Visit jwz's ")
1084      (about-url-link 'jwz "home page" "Visit jwz's home page")
1085      (widget-insert ".\n"))
1086     (kazz
1087      (widget-insert "
1088 Kazz is the XEmacs lead on BSD (especially FreeBSD).
1089 His main workspace is, probably, the latest stable version of
1090 FreeBSD and it makes him comfortable and not.
1091 His *mission* is to make XEmacs runs on FreeBSD without
1092 any problem.
1093
1094 In real life, he is working on a PDM product based on CORBA,
1095 and doing consultation, design and implemention.
1096 He loves to play soccer, yes football!
1097 See also:")
1098      (about-url-link 'kazz nil "Visit Kazz's home page")
1099      (widget-insert ".\n"))
1100     (kirill
1101      (widget-insert
1102       "
1103 Sorry, no personal information available about me yet.\n"))
1104     (kyle
1105      (widget-insert "
1106 See\n")
1107      (about-url-link 'kyle nil "Visit Kyle's Home page")
1108      (widget-insert ".\n"))
1109     (larsi
1110      (widget-insert "
1111 Lars's day job is as the head of the IT department of a Norwegian
1112 Internet stock broker.  He claims no responsibility for the Dot
1113 Com Bomb, but he snickers a lot.
1114
1115 See ")
1116      (about-url-link 'larsi nil "Visit the Larsissistic pages")
1117      (widget-insert ".\n"))
1118     (lg
1119      (widget-insert "
1120 Evgeny is a gymnast, a security guard, and a father of two beautiful
1121 children, a boy - Vladimir, and a girl, the angel - Arina.  When he has
1122 some spare time he spends it with family or working on open software
1123 products.\n"))
1124     (marcpa
1125      (widget-insert "
1126 I work for Positron Industries Inc., Public Safety Division.
1127 I'm part of the team producing POWER 911, a 911 emergency response
1128 system written in Modula3:\n")
1129      (about-url-link 'marcpa nil "Visit POWER 911")
1130      (widget-insert "
1131 \n\nPreviously, I worked at Softimage Inc., now a Microsoft company
1132 \(eeekkk!), as a UNIX system administrator.  This is where I've been
1133 converted to NT.
1134
1135 In a previous life, I was a programmer/sysadmin at CRIM (Centre de
1136 Recherche Informatique de Montreal) for the speech recognition group.\n"))
1137     (martin
1138      (widget-insert "
1139 Martin was the XEmacs guy at DevPro, a part of Sun Microsystems.
1140 Martin used to do XEmacs as a `hobby' while at IBM, and was crazy
1141 enough to try to make a living doing it at Sun.
1142
1143 Martin starting using Emacs originally not to edit files, but to get
1144 the benefit of shell mode. He actually used to run nothing but a shell
1145 buffer, and use `xterm -e vi' to edit files.  But then he saw the
1146 light.  He dreams of rewriting shell mode from scratch.  Stderr should
1147 show up in red!!
1148
1149 Martin is no longer doing XEmacs for a living, and is Just Another
1150 Volunteer.\n"))
1151     (mcook
1152      (widget-insert
1153       "
1154 Sorry, no personal information available about me yet.\n"))
1155     (mly
1156      (widget-insert "Cars are evil.  Ride a bike.\n"))
1157     (morioka
1158      (widget-insert "
1159 I am a doctoral student at School of Information Science of JAIST
1160 \(Japan Advanced Institute of Science and Technology, Hokuriku).  I'm
1161 interested in Natural Language, Affordance and writing systems.\n"))
1162     (mta
1163      (widget-insert
1164       "
1165 I am a software developer who worked for the University of Michigan
1166 for many years where I was one of the principal architects of the
1167 Michigan Terminal System.  For the last several years I've been
1168 working for Arbortext, a publisher of XML publishing and content
1169 management software.\n"))
1170     (myrkraverk
1171      (widget-insert "
1172 Sorry, no personal information available about me yet.\n"))
1173     (njsf
1174      (widget-insert "
1175 Nelson has been using XEmacs since the mid-90s, always for coding and
1176 Gnus use. He has always built his own and has in occasion contributed
1177 patches.
1178
1179 That all changed with the birth of the SXEmacs project, which became
1180 his main hobby, adding cool stuf like server-side sockets among other
1181 stuff.
1182
1183 In time he will work towards having a multi-threaded SXEmacs and usage
1184 of the Boehm garbage collector.\n"))
1185     (ograf
1186      (widget-insert "
1187 I'm a student of computer sciences at the University of Koblenz. My
1188 major is computational linguistics (human language generation and
1189 analysis).
1190
1191 I make my living as a managing director of a small but fine company
1192 which I started two years ago with one of my friends. We provide
1193 business network solutions based on linux servers and various other
1194 networking products.
1195
1196 Most of my spare time I spent on the development of the XEmacs
1197 Drag'n'Drop API, a enhanced version of Tk called TkStep (better looks,
1198 also Drag'n'Drop, and more), and various other hacks: ISDN-tools,
1199 cd players, python, etc...
1200
1201 To see some of these have a look at ")
1202      (about-url-link 'ograf nil "one of my homepages")
1203      (widget-insert ".\n"))
1204     (olivier
1205      (widget-insert
1206       "
1207 Sorry, no personal information available about me yet.\n"))
1208     (oscar
1209      (widget-insert "
1210 Oscar heads the Computer Science department at CPE Lyon, a french
1211 engineering school in France. Besides his administrative tasks he
1212 teaches networking basics, Internet technologies (you know, all these
1213 xxML and hairy script languages !)  and the Scheme language.\n"))
1214     (pelegri
1215      (widget-insert
1216       "
1217 I did my PhD at UCB and a postdoc at CSL/PARC.  I joined Sun in 1990,
1218 spent some time in DevPro (that is when I made my contribution to
1219 XEmacs) and joined JavaSoft in fall '95, where I've been the lead for
1220 several JSP-related specifications and JAX-RPC.  I'm currently the Web
1221 Layer architect for J2EE.
1222
1223 I was born in Barcelona and I grew up mostly in Caracas; I have two kids
1224 and I speak only catalan to them; I can juggle some (career, family, and
1225 4 balls or 3 pins); and my english can be idiosyncratic!.\n"))
1226     (pez
1227      (widget-insert "
1228 Peter currently serves as Senior Vice President, Product Development
1229 for CBS SportsLine.  See ")
1230      (about-url-link 'pez nil "CBS SportsLine")
1231      (widget-insert ".\n"))
1232     (piper
1233      (widget-insert "
1234 My home page is here:\n")
1235      (about-url-link 'piper nil "Visit andy's home page")
1236      (widget-insert "\n
1237  Andy has been active in the XEmacs team for a number of years,
1238 helping port XEmacs to MS Windows operating systems. He is also the
1239 current MS Windows release manager and maintains the MS Windows
1240 netinstaller.\n"))
1241     (pittman
1242      (widget-insert
1243       "
1244 Sorry, no personal information available about me yet.\n"))
1245     (rendhalver
1246      (widget-insert "
1247 Sorry, no personal information available about me yet.\n"))
1248     (rickc
1249      (widget-insert "
1250 The hacker formerly known as Rick Busdiecker is a developer and
1251 technical manager at Deutsche Bank in New York during daylight hours.
1252 In the evenings he maintains three children, and when he ought to be
1253 sleeping he builds XEmacs betas, and tinkers with various personal
1254 hacking projects.\n"))
1255     (rose
1256      (widget-insert
1257       "
1258 Sorry, no personal information available about me yet.\n"))
1259     (rossini
1260      (widget-insert "
1261 Current development lead for ESS (Emacs Speaks Statistics), a mode and
1262 inferior mode for statistical programming and data analysis for SAS,
1263 S, S-PLUS, R, XLispStat; configurable for nearly any other statistical
1264 language/package one might want.  In spare time, chases his son around
1265 and acts as a Ph.D. (bio)statistician for money and amusement,
1266 primarily focusing on statistical computing, visualization, and the
1267 design and analysis of HIV vaccine trials.  Current position: Research
1268 Assistant Professor of Biostatistics at the University of Washington
1269 and the Fred Hutchinson Cancer Research Center.
1270
1271 See ")
1272      (about-url-link 'rossini nil "Visit Anthony's home page")
1273      (widget-insert ".\n"))
1274     (slb
1275      (widget-insert "
1276 Peaches Baur, 1986-1999.
1277 Rest in peace")
1278      (widget-insert ".\n"))
1279     (sperber
1280      (widget-insert "
1281 When Mike isn't busy putting together patches for free software he has
1282 just installed or changing his hairstyle, he does research in modern
1283 programming languages and their implementation, and hopes that one day
1284 XEmacs will speak Scheme.\n"))
1285     (steve
1286      (widget-insert "
1287 I live near Brisbane, Australia with my wife, Michelle, and our
1288 children, Kaitlyn and Blake.  There's also a cat called Seamus.
1289 Seamus alternates between being a cute, adorable, ginger tom, and the
1290 spawn of Satan with silent, deadly, ninja skills.
1291
1292 In past lives, I've been a bank officer, car salesman, insurance agent,
1293 managed a computer firm and owned and operated my own business.  I now
1294 divide my time between my family, my business, my writing, and maintaining
1295 the SXEmacs project.
1296
1297 "
1298                     (about-with-face "My open source obsession:"
1299                                      'font-lock-warning-face))
1300      (widget-insert "\n\n")
1301      (widget-insert (about-with-face "   SXEmacs:\t\t"
1302                                      'font-lock-string-face))
1303      (about-url-link 'sxemacs nil "Visit the SXEmacs homepage")
1304      (widget-insert (about-with-face "\n   My SXEmacs conf:     "
1305                                      'font-lock-string-face))
1306      (about-url-link 'steve-inits nil "All my sexy SXEmacs init files")
1307      (widget-insert "\n\n"
1308                     (about-with-face
1309                      "More of me on the Interwebz:\n\n"
1310                      'font-lock-warning-face))
1311      (widget-insert (about-with-face "   SY Writing:\t\t"
1312                                      'font-lock-string-face))
1313      (about-url-link 'steve-syw nil
1314                      "I'm a freelance writer, you can hire me! ;-)")
1315      (widget-insert (about-with-face " [Offline, sorry]"
1316                                      'font-lock-comment-face))
1317      (widget-insert (about-with-face "\n   My Blog:\t\t"
1318                                      'font-lock-string-face))
1319      (about-url-link 'steve nil "Visit my infrequently updated blog")
1320      (widget-insert (about-with-face " [Offline, sorry]"
1321                                      'font-lock-comment-face))
1322      (widget-insert (about-with-face "\n   Facebook:\t\t"
1323                                      'font-lock-string-face))
1324      (about-url-link 'steve-fb nil "My Facebook Profile")
1325      (widget-insert (about-with-face "\n   LinkedIn:\t\t"
1326                                      'font-lock-string-face))
1327      (about-url-link 'steve-li nil "My LinkedIn Profile")
1328      (widget-insert (about-with-face "\n   Twitter:\t\t"
1329                                      'font-lock-string-face))
1330      (about-url-link 'steve-twit nil "Follow me on Twitter")
1331      (widget-insert ".\n"))
1332     (stig
1333      (widget-insert "
1334 Peripatetic uninominal Emacs hacker.  Stig sometimes operates out of a
1335 big white van set up for nomadic living and hacking.  Stig is sort of
1336 a tool fetishist.  He has a hate/love relationship with computers and
1337 he hacks on XEmacs because it's a good tool that makes computers
1338 somewhat less of a nuisance.  Besides XEmacs, Stig especially likes
1339 his Leatherman, his Makita, and his lockpicks.  Stig wants a MIG
1340 welder and air tools.
1341
1342 Stig likes to perch, hang from the ceiling, and climb on the walls.
1343 Stig has a cool van.  Stig would like to be able to telecommute from,
1344 say, the north rim of the Grand Canyon or the midst of Baja.\n"))
1345     (stigb
1346      (widget-insert "
1347 Currently studying computer science in Trondheim, Norway.  Full time
1348 Linux user and proud of it.  XEmacs hacker light.
1349
1350 See:\t")
1351      (about-url-link 'stigb nil "Visit Stig's home page"))
1352     (thiessel
1353      (widget-insert "
1354 Worked at University of Kaiserslautern where he took part in the
1355 development and design of a CAD framework for analog integrated
1356 circuits with special emphasis on distributed software concepts. He
1357 has now joined HP as technical consultant.
1358
1359                       All of the buildings,
1360                       all of the cars
1361                       were once just a dream
1362                       in somebody's head.\n
1363                                      P. Gabriel\n"))
1364     (tomonori
1365      (widget-insert
1366       "
1367 Sorry, no personal information available about me yet.\n"))
1368     (tuck
1369      (widget-insert
1370       "
1371 Sorry, no personal information available about me yet.\n"))
1372     (turnbull
1373      (widget-insert "
1374 Stephen lives with his Japanese wife and children in Tsukuba, Japan,
1375 where he is a professor of economics at the University of Tsukuba.\n"))
1376     (vin
1377      (widget-insert "
1378 I'm a software engineer and manager for Teradyne in Boston.  I used
1379 to play a lot of Ultimate - see ")
1380      (about-url-link 'vin nil "Visit the Ultimate Players Association homepage")
1381      (widget-insert " for more details.
1382 Nowadays I'm a family man, so I spend a lot of time with my wife,
1383 Becky, and my son, Noah.\n"))
1384     (vladimir
1385      (widget-insert "
1386 Former technical lead for XEmacs at Sun.  He is now writing a book on
1387 distributed Java and is working at Xerox PARC documenting AspectJ, a
1388 light-weight extension to Java that supports crosscutting concerns.
1389 See ")
1390      (about-url-link 'vladimir nil "Visit Vladimir's home page")
1391      (widget-insert ".\n"))
1392     (wmperry
1393      (widget-insert "
1394 Happily living in Indiana telecommuting for a company based in Seattle
1395 \(who I now prefer not to name), wishing I was in Ireland instead.\n"))
1396     (yoshiki
1397      (widget-insert
1398       "
1399 Sorry, no personal information available about me yet.\n"))
1400     ))
1401
1402 ;; Insert info about a maintainer's contribution to XEmacs.  See also
1403 ;; `about-personal-info'.
1404 (defun about-hacker-contribution (entry)
1405   (ecase (car entry)
1406     ;; to sort the entries below, use M-x sort-regexp-fields RET
1407     ;; then this regexp: ([^(]*([^"]*"[^"]*"[^)]*))
1408     ;; then this regexp: (\([a-z]*\)
1409     (adrian
1410      (widget-insert
1411       "
1412 Adrian has done invaluable work rewriting and maintaining the XEmacs
1413 web pages at www.xemacs.org.  During his tenureship, he has
1414 established a consistent look and feel, placed the web pages under
1415 CVS, set up maintenance procedures, written scripts to handle
1416 automatic updating, validation and mirroring, and done innumerable
1417 other tasks.  He has also helped with many other administrative tasks,
1418 such as the thankless work of dealing with the providers of resources
1419 to XEmacs at SourceForge and tux.org.\n"))
1420     (aj
1421      (widget-insert "
1422 Former `Package Patch Tender', beta tester and GNU libc developer.\n"))
1423     (ajc
1424      (widget-insert "
1425 Former XEmacs web site maintainer.\n"))
1426     (alastair
1427      (widget-insert
1428       "
1429 Rewrote the selection code, adding many new features such as better
1430 support for arbitrary selection types (especially under MS Windows,
1431 where the full power of the clipboard system is available under
1432 XEmacs).\n"))
1433     (baw
1434      (widget-insert "
1435 I'm the author of ")
1436      (about-url-link 'cc-mode "CC Mode" "Visit the CC Mode page")
1437      (widget-insert ", for C, C++, Objective-C and Java editing,
1438 Supercite for mail and news citing, and sundry other XEmacs packages
1439 such as ELP (the Emacs Lisp Profiler), Reporter, xrdb-mode, and
1440 winring.  Even though I still live almost 100% in XEmacs these days,
1441 my Lisp hacking has fallen off in recent years as I became more
1442 involved in Python, and in fact, I currently maintain the Python
1443 editing mode.  See also: ")
1444      (about-url-link "http://www.python.org/emacs" nil
1445                      "Visit the python.org Emacs Goodies page")
1446      (widget-insert ".\n"))
1447     (ben
1448      (widget-insert
1449       "
1450 I am the largest code contributor to XEmacs, and the architect of many
1451 of the features that distinguish XEmacs from GNU Emacs and other Emacs
1452 versions.  My main contributions to XEmacs include rewriting large
1453 parts of the internals and the gory Xt/Xlib interfacing, adding the
1454 Mule \(international) support, improving the MS Windows support,
1455 adding many GUI features to XEmacs, architecting the
1456 device-abstraction and specifier code, writing most of the XEmacs
1457 Internals Manual and the XEmacs-specific parts of the XEmacs Lisp
1458 Reference Manual, synching a great deal of code with GNU Emacs, and
1459 being a general nuisance ... er, brainstormer for many of the new
1460 features of XEmacs.\n"))
1461     (bw
1462      (widget-insert "
1463 Author of the Hyperbole everyday information management hypertext
1464 system and the OO-Browser multi-language code browser.  He also
1465 designed the BeOpen InfoDock integrated development environment
1466 for software engineers.  It runs atop XEmacs and is available from
1467 his firm, BeOpen, which offers distributions, custom development,
1468 support, and training packages for corporate users of XEmacs, GNU
1469 Emacs and InfoDock.  See ")
1470      (about-url-link 'beopen nil "Visit BeOpen WWW page")
1471      (widget-insert ".\n"))
1472     (cgw
1473      (widget-insert
1474       "
1475 Author of an earlier version of the MS Windows setup program for XEmacs.\n"))
1476     (chr
1477      (widget-insert "
1478 Maintainer of the XEmacs FAQ and proud author of `zap-up-to-char'.\n"))
1479     (craig
1480      (widget-insert
1481       "
1482 Sorry, no information about my XEmacs contributions yet.\n"))
1483     (cthomp
1484      (widget-insert
1485       "
1486 Maintainer of XEmacs from mid-1994 through 1996.  Author of the
1487 redisplay engine, the original toolbar and scrollbars and some of the
1488 device-abstraction, TTY and glyph code.  Creator of the xemacs.org
1489 domain and comp.emacs.xemacs.\n"))
1490     (daiki
1491      (widget-insert
1492       "
1493 Sorry, no information about my XEmacs contributions yet.\n"))
1494     (dan
1495      (widget-insert
1496       "
1497 Sorry, no information about my XEmacs contributions yet.\n"))
1498     (darrylo
1499      (widget-insert
1500       "
1501 Sorry, no information about my XEmacs contributions yet.\n"))
1502     (devin
1503      (widget-insert "
1504 Part of the original (pre-19.0) Lucid Emacs development team.
1505 Matthieu wrote the initial Energize interface, designed the
1506 toolkit-independent Lucid Widget library, and fixed enough redisplay
1507 bugs to last a lifetime.  The features in Lucid Emacs were largely
1508 inspired by Matthieu's initial prototype of an Energize interface
1509 using Epoch.\n"))
1510     (dkindred
1511      (widget-insert "
1512 Darrell tends to come out of the woodwork a couple of weeks
1513 before a new release with a flurry of fixes for bugs that
1514 annoy him.  He hopes he's spared you from a core dump or two.\n"))
1515     (dmoore
1516      (widget-insert "
1517 David has contributed greatly to the quest to speed up XEmacs.\n"))
1518     (dv
1519      (widget-insert "
1520 I joined the development of XEmacs in 1996, and have been one of the
1521 core maintainers since 1998. Although I'm mostly interested in the
1522 GUI, ergonomics, redisplay and autoconf issues, it's probably simpler
1523 to describe what I'm *not* involved in: I've never touched the Lisp
1524 implementation, and I probably never will...
1525
1526 I'm the author of the multicast support, I wrote and maintain some
1527 external Emacs Lisp packages (including mchat) and I'm also
1528 responsible for some of the core Lisp code (including the rectangle
1529 library which I rewrote for both XEmacs and GNU Emacs).\n"))
1530     (eb
1531      (widget-insert "
1532 Also part of the original Lucid Emacs development team.  Eric played a
1533 big part in the design of many aspects of the system, including the
1534 new command loop and keymaps, fixed numerous bugs, and has been a
1535 reliable beta tester ever since.\n"))
1536     (erik
1537      (widget-insert "
1538 Sorry, no information about my SXEmacs contributions yet.\n"))
1539     (fabrice
1540      (widget-insert
1541       "
1542 I have started to provide binary kits for the 21.2 series when there
1543 was no installer available. I contributed a few lines of core code
1544 occasionally to make things smoother with the native win32 port which
1545 I'm using all the day.
1546
1547 I also contributed elisp code long ago to make Gnus run under XEmacs.\n"))
1548     (golubev
1549      (widget-insert
1550       "
1551 Used XEmacs since early 1997.  Fixed bugs that annoy me, both in
1552 XEmacs core and in packages I use, mostly viper.  Hoping to get
1553 coding-cookie package distributed, which is also a fix of what I
1554 consider a bug.\n"))
1555     (gunnar
1556      (widget-insert
1557       "
1558 Sorry, no information about my XEmacs contributions yet.\n"))
1559     (hbs
1560      (widget-insert "
1561 Part of the original (pre-19.0) Lucid Emacs development team.  Harlan
1562 designed and implemented many of the low level data structures which
1563 are original to the Lucid version of Emacs, including extents and hash
1564 tables.\n"))
1565     (heatxsink
1566      (widget-insert "
1567 Sorry, no information about my SXEmacs contributions yet.\n"))
1568     (hisashi
1569      (widget-insert
1570       "
1571 Sorry, no information about my XEmacs contributions yet.\n"))
1572     (hmuller
1573      (widget-insert "
1574 Author of the code used to connect XEmacs with ToolTalk, and of an
1575 early client of the external Emacs widget.\n"))
1576     (hniksic
1577      (widget-insert
1578       "
1579 Hrvoje's contribution to XEmacs consists of many hours spent working
1580 on code and taking part in public discussions.
1581
1582 He wrote `savehist' and `htmlize' packages, the latter having a pretty
1583 large gathering of users.  He worked to improve many parts of XEmacs
1584 Lisp code, including isearch (FSF synch and new features), cl, edmacro
1585 \(FSF synch and an almost complete rewrite), profile, gnuserv,
1586 hyper-apropos, etags, about, and custom.
1587
1588 He has worked on improving and optimizing the C core.  He ported many
1589 FSF core features such as indirect buffers, tty-erase-char,
1590 save-current-buffer and friends, debug-ignored-errors, etc.  He also
1591 wrote line numbering optimizations for large buffers, initial support
1592 for TTY frames, abbrev improvements, Lisp printer and reader
1593 improvements, support for extent modification functions, and lots of
1594 minor bugfixes, optimizations, and Muleifications.
1595
1596 He contributed to Lispref and Internals documentation, including a
1597 section on writing Mule-compliant C code.  Maintains NEWS.  He
1598 participated on xemacs-beta since 1996 and on the Patch Review Board
1599 since its inception in 1998.\n"))
1600     (hobley
1601      (widget-insert
1602       "
1603 Creator of the earliest version of the MS Windows port of XEmacs.\n"))
1604     (horst
1605      (widget-insert "
1606 He mainly contributes documentation and looks on in envy when the
1607 other hackers do neat things to SXEmacs.\n"))
1608     (hroptatyr
1609      (widget-insert
1610       "
1611 Major stuff:
1612 - created the OpenSSL crypto and ssl library API
1613 - ported XE's bignums and ratios to SXE and
1614   integrated them into something superior called ENT
1615 - brought support for modern audio interfaces and audio servers
1616   and integrated them as part of a multimedia SXE (MM)
1617
1618 Minor tweaks:
1619 - redesigned configure.ac
1620 - implemented C-level doubly linked lists, bloom filters and skiplists
1621 - experimented with new hash algorithms
1622 - brought exhaustive caching of compiled regular expressions
1623 - revised lispref and other documentations
1624 - migrated the build chain to autotools
1625
1626 Major dreams:
1627 - turn SXEmacs into a grid-based HPC machine :)\n"))
1628     (hynek
1629      (widget-insert "
1630 Sorry, no information about my SXEmacs contributions yet.\n"))
1631     (jan
1632      (widget-insert "
1633 Apart from hunting down redisplay bugs Jan has worked on such
1634 things as improvements to the package system, implementing lazy-shot,
1635 a short stint at tracking patches and currently acts as a guardian
1636 of the XEmacs custom subsystem and gnuserv.\n"))
1637     (jareth
1638      (widget-insert "
1639 Owner of cvs.xemacs.org, the machine that holds the XEmacs CVS
1640 repository, and author of some of the graphics code in XEmacs.\n"))
1641     (jason
1642      (widget-insert "
1643 Beta tester, manager of the various XEmacs mailing lists and binary
1644 kit manager.  Also, originator and maintainer of the gnus.org domain.\n"))
1645     (jens
1646      (widget-insert "
1647 Jens did the artwork for graphics added to XEmacs 20.2 and 19.15. He's
1648 also the author of \"XEmacs Mine\", a game similar to Minesweeper, but
1649 running in XEmacs\n"))
1650     (jmiller
1651      (widget-insert "
1652 Beta tester and last hacker of calendar.\n"))
1653     (jonathan
1654      (widget-insert "
1655 I started the native port of XEmacs to MS Windows. Author of the
1656 Windows frame, redisplay, face and event loop support.\n"))
1657     (juhp
1658      (widget-insert "
1659 Author of \"find-func.el\", improvements to \"help.el\" and a good
1660 number of bug fixes during June 1997 to December 1998.\n"))
1661     (jwz
1662      (widget-insert
1663       "
1664 Creator and maintainer of Lucid Emacs (the predecessor of XEmacs),
1665 from 1991 through mid-1994.\n"))
1666     (kazz
1667      (widget-insert "
1668 IENAGA Kazuyuki is the XEmacs technical lead on BSD, particularly
1669 FreeBSD.\n"))
1670     (kirill
1671      (widget-insert
1672       "
1673 Abstracted the subprocess code and wrote much of the MS Windows
1674 support in XEmacs, including the subprocess interface, dialog boxes,
1675 printing support, and much of the event loop.\n"))
1676     (kyle
1677      (widget-insert "
1678 Author of VM, a mail-reading package that is included in the standard
1679 XEmacs distribution, and contributor of many improvements and bug
1680 fixes.  Unlike RMAIL and MH-E, VM uses the standard UNIX mailbox
1681 format for its folders; thus, you can use VM concurrently with other
1682 UNIX mail readers such as Berkeley Mail and ELM.
1683
1684 Also rewrote the object allocation system in XEmacs to support full
1685 32-bit pointers and 31-bit integers.\n"))
1686     (larsi
1687      (widget-insert "
1688 Author of Gnus the Usenet news and Mail reading package in the
1689 standard XEmacs distribution, and contributor of various enhancements
1690 and portability fixes.\n"))
1691     (lg
1692      (widget-insert "
1693 Sorry, no information about my SXEmacs contributions yet.\n"))
1694     (marcpa
1695      (widget-insert
1696       "
1697 Sorry, no information about my XEmacs contributions yet.\n"))
1698     (martin
1699      (widget-insert
1700       "
1701 Beta release manager and author of many stability fixes and speed
1702 improvements in XEmacs.\n"))
1703     (mcook
1704      (widget-insert "
1705 Author of the \"shy groups\" and minimal matching regular expression
1706 extensions.\n"))
1707     (mly
1708      (widget-insert "
1709 Early code contributor to Lucid Emacs.  Synched up Lucid Emacs with
1710 the first actual release of GNU Emacs 19, and architected and wrote
1711 the first version of XEmacs's object allocation system.\n"))
1712     (morioka
1713      (widget-insert "
1714 I am the author of tm-view (general MIME Viewer for GNU Emacs) and
1715 major author and maintainer of tm (Tools for MIME; general MIME
1716 package for GNU Emacs).  In addition, I am working to unify MULE API
1717 for Emacs and XEmacs.  In XEmacs, I have ported many mule features.\n"))
1718     (mta
1719      (widget-insert
1720       "
1721 Contributed minor improvements to the Windows support, especially
1722 related to subprocess communication and portable dumping as well as
1723 a bit of general bug fixing.\n"))
1724     (myrkraverk
1725      (widget-insert "
1726 Sorry, no information about my SXEmacs contributions yet.\n"))
1727     (njsf
1728      (widget-insert "
1729 Major stuff:
1730 - added server network streams to SXEmacs.
1731
1732 Minor stuff:
1733 - Security oriented sweep of string handling.
1734 - MacOS X build fixes.
1735 - Miscellaneous fixes.\n"))
1736     (ograf
1737      (widget-insert "
1738 Author of the XEmacs Drag'n'Drop API.\n"))
1739     (olivier
1740      (widget-insert
1741       "
1742 Author of the portable dumper.\n"))
1743     (oscar
1744      (widget-insert "
1745 Oscar's major contributions to XEmacs are the internal LDAP support
1746 and the EUDC package, an interface to query various directory services
1747 in a uniform manner (when composing mail for instance).\n"))
1748     (pelegri
1749      (widget-insert "
1750 Author of EOS, a package included in the standard XEmacs distribution
1751 that integrates XEmacs with the SPARCworks development environment
1752 from Sun.  Past lead for XEmacs at Sun; advocated the validity of
1753 using Epoch, and later Lemacs, at Sun through several early
1754 prototypes.\n"))
1755     (pez
1756      (widget-insert "
1757 Author of SQL Mode, edit-toolbar, mailtool-mode, and various other
1758 small packages with varying degrees of usefulness.\n"))
1759     (piper
1760      (widget-insert "
1761 Author of the Cygwin port of XEmacs including unexec, the widget,
1762 gutter and buffer-tab support, glyphs under MS-Windows, toolbars under
1763 MS-Windows, the original \"fake\" XEmacs toolbar, outl-mouse for mouse
1764 gesture based outlining, and the original CDE drag-n-drop
1765 support.\n"))
1766     (pittman
1767      (widget-insert
1768       "
1769 Sorry, no information about my XEmacs contributions yet.\n"))
1770     (rendhalver
1771      (widget-insert "
1772 Sorry, no information about my SXEmacs contributions yet.\n"))
1773     (rickc
1774      (widget-insert "
1775 Maintainer of ILISP.\n"))
1776     (rose
1777      (widget-insert "
1778 Author of many extensions to the `extents' code, including the initial
1779 implementation of `duplicable' properties.\n"))
1780     (rossini
1781      (widget-insert "
1782 Author of the first XEmacs FAQ;
1783 Development lead on Emacs Speaks Statistics;
1784 Assisted Jareth Hein with setting up the JitterBug tracking system.\n"))
1785     (slb
1786      (widget-insert
1787       "
1788 Maintainer of XEmacs from 1996 through 1998.  Author of the package
1789 system.\n"))
1790     (sperber
1791      (widget-insert "
1792 Mike ported EFS to XEmacs 20 and integrated EFS into XEmacs.  He's
1793 also responsible for the ports of facemenu.el and enriched.el, the
1794 code to handle path-frobbing at startup for the XEmacs core and the
1795 package system, the init file migration from .emacs to
1796 .xemacs/init.el, and the CVS Great Trunk Move.\n"))
1797     (steve
1798      (widget-insert "
1799 I am the maintainer and project lead of this crazy thing we call the\n"
1800                     (about-with-face "SXEmacs Project.\n" 'bold)))
1801     (stig
1802      (widget-insert "
1803 Implemented the faster stay-up Lucid menus and hyper-apropos.
1804 Contributor of many dispersed improvements in the core Lisp code, and
1805 back-seat contributor for several of its major packages.\n"))
1806     (stigb
1807      (widget-insert "
1808 Maintainer of the RPM package.\n"))
1809     (thiessel
1810      (widget-insert "
1811 Does beta testing and helps take care of the XEmacs web site.\n"))
1812     (tomonori
1813      (widget-insert
1814       "
1815 Sorry, no information about my XEmacs contributions yet.\n"))
1816     (tuck
1817      (widget-insert
1818       "
1819 Sorry, no information about my XEmacs contributions yet.\n"))
1820     (turnbull
1821      (widget-insert
1822       "
1823 Responsible for getting the current release of XEmacs out the
1824 door.\n"))
1825     (vin
1826      (widget-insert "
1827 Vin maintains the stable version of XEmacs.  This involves reviewing
1828 a lot of other peoples' patches and testing and applying them.
1829 He also gets to generate his own patches from time to time.  Being
1830 release manager is a fun way to contribute to the XEmacs project.
1831 Write me at acs@xemacs.org if you're interested in learning more.\n"))
1832     (vladimir
1833      (widget-insert "
1834 Former technical lead for XEmacs at Sun.\n"))
1835     (wmperry
1836      (widget-insert "
1837 Author of the GTK support in XEmacs, Emacs-w3 (the builtin web browser
1838 that comes with XEmacs), and various additions to the C code (e.g. the
1839 database support, the PNG support, some of the GIF/JPEG support, the
1840 strikethru face attribute support).\n"))
1841     (yoshiki
1842      (widget-insert
1843       "
1844 Sorry, no information about my XEmacs contributions yet.\n"))
1845     ))
1846
1847 ;; Setup the buffer for a maintainer.
1848 (defun about-maintainer (widget &optional event)
1849   (let* ((entry (assq (widget-value widget) sxemacs-hackers))
1850          (who (car entry))
1851          (name (cadr entry))
1852          (address (caddr entry))
1853          (bufname (format "*About %s*" name)))
1854     (unless (about-get-buffer bufname)
1855       ;; Display the glyph and name
1856       (widget-insert "\n")
1857       (widget-create 'default :format "%t"
1858                      :tag-glyph (about-maintainer-glyph who))
1859       (widget-insert
1860        "\n\n" (about-with-face (format "%s" name) 'bold)
1861        " <")
1862       (about-mailto-link address)
1863       (widget-insert ">\n\n")
1864       ;; Display the actual info
1865       (about-personal-info entry)
1866       (widget-insert "\n")
1867       (widget-insert
1868        (about-with-face "Contributions to SXEmacs:\n\n" 'about-headline-face))
1869       (about-hacker-contribution entry)
1870       (widget-insert "\n")
1871       (about-finish-buffer 'kill)
1872       (forward-line 2))))
1873
1874 (defsubst about-tabs (str)
1875   (let ((x (length str)))
1876     (cond ((>= x 24) " ")
1877           ((>= x 16) "\t")
1878           ((>= x 8) "\t\t")
1879           (t "\t\t\t"))))
1880
1881 (defun about-show-linked-info (who)
1882   (let* ((entry (assq who sxemacs-hackers))
1883          (name (cadr entry))
1884          (address (caddr entry)))
1885     (widget-create 'link :help-echo (concat "Find out more about " name)
1886                    :action 'about-maintainer
1887                    :button-prefix ""
1888                    :button-suffix ""
1889                    :tag name
1890                    :value who)
1891     (widget-insert (about-tabs name)
1892                    "<")
1893     (about-mailto-link address)
1894     (widget-insert ">\n")
1895     (about-hacker-contribution entry)
1896     (widget-insert "\n")))
1897
1898 (defun about-hackers (&rest ignore)
1899   (unless (about-get-buffer "*About Contributors*")
1900     (let ((title "A Legion of Contributors to SXEmacs"))
1901       (widget-insert
1902        (about-center title)
1903        (about-with-face title 'bold)))
1904     (widget-insert
1905      "\n
1906 Like most open source software, SXEmacs is a collaborative effort.
1907 These are some of the contributors.  And, at this stage, most of them
1908 are unaware of their status here because SXEmacs is so new.  The vast
1909 majority of the people here are here because of their contributions to
1910 XEmacs, rather than SXEmacs.
1911
1912 We have no doubt forgotten lots of people, if you are one of the
1913 forgotten, please accept our apologies.  And then let us know so we
1914 can give you the credit you deserve.\n\n"
1915      (about-with-face "Primary maintainers for this release:"
1916                       'about-headline-face)
1917      "\n\n")
1918     (mapc 'about-show-linked-info about-current-release-maintainers)
1919     (widget-insert
1920      "\n"
1921      (about-with-face "Other notable current hackers:"
1922                       'about-headline-face)
1923      "\n\n")
1924     (mapc 'about-show-linked-info about-other-current-hackers)
1925     (widget-insert
1926      "\n"
1927      (about-with-face "Other notable XEmacs and GNU/Emacs hackers:"
1928                       'about-headline-face)
1929      "\n\n")
1930     (mapc 'about-show-linked-info about-once-and-future-hackers)
1931     (flet ((print-short (name addr &optional shortinfo)
1932              (widget-insert (concat (about-with-face name 'italic)
1933                                     (about-tabs name)
1934                                     "<"))
1935              (about-mailto-link addr)
1936              (widget-insert
1937               (concat ">\n"
1938                       (if shortinfo (concat shortinfo "\n") "")))))
1939       (widget-insert
1940        "\n
1941 In addition to those just mentioned, the following people have spent a
1942 great deal of effort providing feedback, testing beta versions of
1943 XEmacs, providing patches to the source code, or doing all of the
1944 above.  We couldn't have done it without them.\n\n")
1945       (print-short "Nagi M. Aboulenein" "aboulene@ponder.csci.unt.edu")
1946       (print-short "Per Abrahamsen" "abraham@dina.kvl.dk")
1947       (print-short "Gary Adams" "gra@zeppo.East.Sun.COM")
1948       (print-short "Gennady Agranov" "agranov@csa.CS.Technion.Ac.IL")
1949       (print-short "Mark Allender" "allender@vnet.IBM.COM")
1950       (print-short "Stephen R. Anderson" "sra@bloch.ling.yale.edu")
1951       (print-short "Butch Anton" "butch@zaphod.uchicago.edu")
1952       (print-short "Fred Appelman" "Fred.Appelman@cv.ruu.nl")
1953       (print-short "Tor Arntsen" "tor@spacetec.no")
1954       (print-short "Marc Aurel" "4-tea-2@bong.saar.de")
1955       (print-short "Larry Auton" "lda@control.att.com")
1956       (print-short "Larry Ayers" "layers@marktwain.net")
1957       (print-short "Oswald P. Backus IV" "backus@altagroup.com")
1958       (print-short "Mike Battaglia" "mbattagl@dsccc.com")
1959       (print-short "Neal Becker" "neal@ctd.comsat.com")
1960       (print-short "Paul Bibilo" "peb@delcam.com")
1961       (print-short "Leonard Blanks" "ltb@haruspex.demon.co.uk")
1962       (print-short "Jan Borchers" "job@tk.uni-linz.ac.at")
1963       (print-short "Mark Borges" "mdb@cdc.noaa.gov")
1964       (print-short "David P. Boswell" "daveb@tau.space.thiokol.com")
1965       (print-short "Tim Bradshaw" "tfb@edinburgh.ac.uk")
1966       (print-short "Rick Braumoeller" "rickb@mti.sgi.com")
1967       (print-short "Matthew J. Brown" "mjb@doc.ic.ac.uk")
1968       (print-short "Alastair Burt" "burt@dfki.uni-kl.de")
1969       (print-short "David Bush" "david.bush@adn.alcatel.com")
1970       (print-short "Richard Caley" "rjc@cstr.edinburgh.ac.uk")
1971       (print-short "Stephen Carney" "carney@gvc.dec.com")
1972       (print-short "Lorenzo M. Catucci" "lorenzo@argon.roma2.infn.it")
1973       (print-short "Philippe Charton" "charton@lmd.ens.fr")
1974       (print-short "Peter Cheng" "peter.cheng@sun.com")
1975       (print-short "Jin S. Choi" "jin@atype.com")
1976       (print-short "Tomasz J. Cholewo" "tjchol01@mecca.spd.louisville.edu")
1977       (print-short "Serenella Ciongoli" "czs00@ladybug.oes.amdahl.com")
1978       (print-short "Glynn Clements" "glynn@sensei.co.uk")
1979       (print-short "Richard Cognot" "cognot@ensg.u-nancy.fr")
1980       (print-short "Andy Cohen" "cohen@andy.bu.edu")
1981       (print-short "Richard Coleman" "coleman@math.gatech.edu")
1982       (print-short "Mauro Condarelli" "MC5686@mclink.it")
1983       (print-short "Nick J. Crabtree" "nickc@scopic.com")
1984       (print-short "Christopher Davis" "ckd@kei.com")
1985       (print-short "Soren Dayton" "csdayton@cs.uchicago.edu")
1986       (print-short "Chris Dean" "ctdean@cogit.com")
1987       (print-short "Michael Diers" "mdiers@logware.de")
1988       (print-short "William G. Dubuque" "wgd@martigny.ai.mit.edu")
1989       (print-short "Steve Dunham" "dunham@dunham.tcimet.net")
1990       (print-short "Samuel J. Eaton" "samuele@cogs.susx.ac.uk")
1991       (print-short "Carl Edman" "cedman@Princeton.EDU")
1992       (print-short "Dave Edmondson" "davided@sco.com")
1993       (print-short "Jonathan Edwards" "edwards@intranet.com")
1994       (print-short "Eric Eide" "eeide@asylum.cs.utah.edu")
1995       (print-short "EKR" "ekr@terisa.com")
1996       (print-short "David Fletcher" "frodo@tsunami.com")
1997       (print-short "Paul Flinders" "ptf@delcam.co.uk")
1998       (print-short "Jered J Floyd" "jered@mit.edu")
1999       (print-short "Gary D. Foster" "Gary.Foster@Corp.Sun.COM")
2000       (print-short "Jerry Frain" "jerry@sneffels.tivoli.com")
2001       (print-short "Holger Franz" "hfranz@physik.rwth-aachen.de")
2002       (print-short "Benjamin Fried" "bf@morgan.com")
2003       (print-short "Barry Friedman" "friedman@nortel.ca")
2004       (print-short "Noah Friedman" "friedman@splode.com")
2005       (print-short "Kazuyoshi Furutaka" "furutaka@Flux.tokai.jaeri.go.jp")
2006       (print-short "Lew Gaiter III" "lew@StarFire.com")
2007       (print-short "Itay Gat" "itay@cs.huji.ac.il")
2008       (print-short "Tim Geisler" "Tim.Geisler@informatik.uni-muenchen.de")
2009       (print-short "Dave Gillespie" "daveg@synaptics.com")
2010       (print-short "Christian F. Goetze" "cg@bigbook.com")
2011       (print-short "Yusuf Goolamabbas" "yusufg@iss.nus.sg")
2012       (print-short "Wolfgang Grieskamp" "wg@cs.tu-berlin.de")
2013       (print-short "John Griffith" "griffith@sfs.nphil.uni-tuebingen.de")
2014       (print-short "James Grinter" "jrg@demon.net")
2015       (print-short "Ben Gross" "bgross@uiuc.edu")
2016       (print-short "Dirk Grunwald" "grunwald@foobar.cs.Colorado.EDU")
2017       (print-short "Michael Guenther" "michaelg@igor.stuttgart.netsurf.de")
2018       (print-short "Dipankar Gupta" "dg@hplb.hpl.hp.com")
2019       (print-short "Markus Gutschke" "gutschk@GOEDEL.UNI-MUENSTER.DE")
2020       (print-short "Kai Haberzettl" "khaberz@synnet.de")
2021       (print-short "Adam Hammer" "hammer@cs.purdue.edu")
2022       (print-short "Magnus Hammerin" "magnush@epact.se")
2023       (print-short "ChangGil Han" "cghan@phys401.phys.pusan.ac.kr")
2024       (print-short "Derek Harding" "dharding@lssec.bt.co.uk")
2025       (print-short "Michael Harnois" "mharnois@sbt.net")
2026       (print-short "John Haxby" "J.Haxby@isode.com")
2027       (print-short "Karl M. Hegbloom" "karlheg@inetarena.com")
2028       (print-short "Benedikt Heinen" "beh@icemark.thenet.ch")
2029       (print-short "Stephan Herrmann" "sh@first.gmd.de")
2030       (print-short "August Hill" "awhill@inlink.com")
2031       (print-short "Mike Hill" "mikehill@hgeng.com")
2032       (print-short "Charles Hines" "chuck_hines@VNET.IBM.COM")
2033       (print-short "Shane Holder" "holder@rsn.hp.com")
2034       (print-short "Chris Holt" "xris@migraine.stanford.edu")
2035       (print-short "Tetsuya HOYANO" "hoyano@ari.bekkoame.or.jp")
2036       (print-short "David Hughes" "djh@harston.cv.com")
2037       (print-short "Tudor Hulubei" "tudor@cs.unh.edu")
2038       (print-short "Tatsuya Ichikawa" "ichikawa@hv.epson.co.jp")
2039       (print-short "Andrew Innes" "andrewi@harlequin.co.uk")
2040       (print-short "Markku Jarvinen" "Markku.Jarvinen@simpukka.funet.fi")
2041       (print-short "Robin Jeffries" "robin.jeffries@sun.com")
2042       (print-short "Philip Johnson" "johnson@uhics.ics.Hawaii.Edu")
2043       (print-short "J. Kean Johnston" "jkj@paradigm-sa.com")
2044       (print-short "John W. Jones" "jj@asu.edu")
2045       (print-short "Andreas Kaempf" "andreas@sccon.com")
2046       (print-short "Yoshiaki Kasahara" "kasahara@nc.kyushu-u.ac.jp")
2047       (print-short "Amir Katz" "amir@ndsoft.com")
2048       (print-short "Doug Keller" "dkeller@vnet.ibm.com")
2049       (print-short "Hunter Kelly" "retnuh@corona")
2050       (print-short "Gregor Kennedy" "gregork@dadd.ti.com")
2051       (print-short "Michael Kifer" "kifer@cs.sunysb.edu")
2052       (print-short "Yasuhiko Kiuchi" "kiuchi@dsp.ksp.fujixerox.co.jp")
2053       (print-short "Greg Klanderman" "greg.klanderman@alum.mit.edu")
2054       (print-short "Valdis Kletnieks" "Valdis.Kletnieks@vt.edu")
2055       (print-short "Norbert Koch" "n.koch@delta-ii.de")
2056       (print-short "Rob Kooper" "kooper@cc.gatech.edu")
2057       (print-short "Peter Skov Knudsen" "knu@dde.dk")
2058       (print-short "Jens Krinke" "krinke@ips.cs.tu-bs.de")
2059       (print-short "Maximilien Lincourt" "max@toonboom.com")
2060       (print-short "Mats Larsson" "Mats.Larsson@uab.ericsson.se")
2061       (print-short "Simon Leinen" "simon@instrumatic.ch")
2062       (print-short "Carsten Leonhardt" "leo@arioch.oche.de")
2063       (print-short "James LewisMoss" "moss@cs.sc.edu")
2064       (print-short "Mats Lidell" "mats.lidell@contactor.se")
2065       (print-short "Matt Liggett" "mliggett@seven.ucs.indiana.edu")
2066       (print-short "Christian Limpach" "Christian.Limpach@nice.ch")
2067       (print-short "Maximilien Lincourt" "max@toonboom.com")
2068       (print-short "Markus Linnala" "maage@b14b.tupsu.ton.tut.fi")
2069       (print-short "Robert Lipe" "robertl@arnet.com")
2070       (print-short "Derrell Lipman" "derrell@vis-av.com")
2071       (print-short "Damon Lipparelli" "lipp@aa.net")
2072       (print-short "Hamish Macdonald" "hamish@bnr.ca")
2073       (print-short "Ian MacKinnon" "imackinnon@telia.co.uk")
2074       (print-short "Patrick MacRoberts" "macro@hpcobr30.cup.hp.com")
2075       (print-short "Tonny Madsen" "Tonny.Madsen@netman.dk")
2076       (print-short "Ketil Z Malde" "ketil@ii.uib.no")
2077       (print-short "Steve March" "smarch@quaver.urbana.mcd.mot.com")
2078       (print-short "Ricardo Marek" "ricky@ornet.co.il")
2079       (print-short "Pekka Marjola" "pema@iki.fi")
2080       (print-short "Simon Marshall" "simon@gnu.ai.mit.edu")
2081       (print-short "Dave Mason" "dmason@plg.uwaterloo.ca")
2082       (print-short "Jaye Mathisen" "mrcpu@cdsnet.net")
2083       (print-short "Jason McLaren" "mclaren@math.mcgill.ca")
2084       (print-short "Michael McNamara" "mac@silicon-sorcery.com")
2085       (print-short "Michael Meissner" "meissner@osf.org")
2086       (print-short "David M. Meyer" "meyer@ns.uoregon.edu")
2087       (print-short "John Mignault" "jbm@panix.com")
2088       (print-short "Brad Miller" "bmiller@cs.umn.edu")
2089       (print-short "John Morey" "jmorey@crl.com")
2090       (print-short "Rob Mori" "rob.mori@sun.com")
2091       (print-short "Heiko Muenkel" "muenkel@tnt.uni-hannover.de")
2092       (print-short "Arup Mukherjee" "arup+@cs.cmu.edu")
2093       (print-short "Colas Nahaboo" "Colas.Nahaboo@sophia.inria.fr")
2094       (print-short "Lynn D. Newton" "lynn@ives.phx.mcd.mot.com")
2095       (print-short "Casey Nielson" "knielson@joule.elee.calpoly.edu")
2096       (print-short "Georg Nikodym" "Georg.Nikodym@canada.sun.com")
2097       (print-short "Andy Norman" "ange@hplb.hpl.hp.com")
2098       (print-short "Joe Nuspl" "nuspl@sequent.com")
2099       (print-short "Kim Nyberg" "kny@tekla.fi")
2100       (print-short "Kevin Oberman" "oberman@es.net")
2101       (print-short "David Ofelt" "ofelt@getalife.Stanford.EDU")
2102       (print-short "Alexandre Oliva" "oliva@dcc.unicamp.br")
2103       (print-short "Tore Olsen" "toreo@colargol.idb.hist.no")
2104       (print-short "Greg Onufer" "Greg.Onufer@eng.sun.com")
2105       (print-short "Achim Oppelt" "aoppelt@theorie3.physik.uni-erlangen.de")
2106       (print-short "Rebecca Ore" "rebecca.ore@op.net")
2107       (print-short "Sudeep Kumar Palat" "palat@idt.unit.no")
2108       (print-short "Joel Peterson" "tarzan@aosi.com")
2109       (print-short "Thomas A. Peterson" "tap@src.honeywell.com")
2110       (print-short "Tibor Polgar" "tibor@alteon.com")
2111       (print-short "Frederic Poncin" "fp@info.ucl.ac.be")
2112       (print-short "E. Rehmi Post" "rehmi@asylum.sf.ca.us")
2113       (print-short "Martin Pottendorfer" "Martin.Pottendorfer@aut.alcatel.at")
2114       (print-short "Colin Rafferty" "colin@xemacs.org")
2115       (print-short "Rick Rankin" "Rick_Rankin-P15254@email.mot.com")
2116       (print-short "Paul M Reilly" "pmr@pajato.com")
2117       (print-short "Jack Repenning" "jackr@sgi.com")
2118       (print-short "Daniel Rich" "drich@cisco.com")
2119       (print-short "Roland Rieke" "rol@darmstadt.gmd.de")
2120       (print-short "Art Rijos" "art.rijos@SNET.com")
2121       (print-short "Russell Ritchie" "ritchier@britannia-life.co.uk")
2122       (print-short "Roland" "rol@darmstadt.gmd.de")
2123       (print-short "Mike Russell" "mjruss@rchland.vnet.ibm.com")
2124       (print-short "Hajime Saitou" "hajime@jsk.t.u-tokyo.ac.jp")
2125       (print-short "Jan Sandquist" "etxquist@iqa.ericsson.se")
2126       (print-short "Marty Sasaki" "sasaki@spdcc.com")
2127       (print-short "SATO Daisuke" "densuke@ga2.so-net.or.jp")
2128       (print-short "Kenji Sato" "ken@ny.kdd.com")
2129       (print-short "Mike Scheidler" "c23mts@eng.delcoelect.com")
2130       (print-short "Daniel Schepler" "daniel@shep13.wustl.edu")
2131       (print-short "Holger Schauer" "schauer@coling.uni-freiburg.de")
2132       (print-short "Darrel Schneider" "darrel@slc.com")
2133       (print-short "Hayden Schultz" "haydens@ll.mit.edu")
2134       (print-short "Cotton Seed" "cottons@cybercom.net")
2135       (print-short "Axel Seibert" "seiberta@informatik.tu-muenchen.de")
2136       (print-short "Odd-Magne Sekkingstad" "oddms@ii.uib.no")
2137       (print-short "Gregory Neil Shapiro" "gshapiro@sendmail.org")
2138       (print-short "Justin Sheehy" "justin@linus.mitre.org")
2139       (print-short "John Shen" "zfs60@cas.org")
2140       (print-short "Murata Shuuichirou" "mrt@mickey.ai.kyutech.ac.jp")
2141       (print-short "Matt Simmons" "simmonmt@acm.org")
2142       (print-short "Dinesh Somasekhar" "somasekh@ecn.purdue.edu")
2143       (print-short "Jeffrey Sparkes" "jsparkes@bnr.ca")
2144       (print-short "Manoj Srivastava" "srivasta@pilgrim.umass.edu")
2145       (print-short "Francois Staes" "frans@kiwi.uia.ac.be")
2146       (print-short "Anders Stenman" "stenman@isy.liu.se")
2147       (print-short "Jason Stewart" "jasons@cs.unm.edu")
2148       (print-short "Rick Tait" "rickt@gnu.ai.mit.edu")
2149       (print-short "TANAKA Hayashi" "tanakah@mxa.mesh.ne.jp")
2150       (print-short "Samuel Tardieu" "sam@inf.enst.fr")
2151       (print-short "James Thompson" "thompson@wg2.waii.com")
2152       (print-short "Nobu Toge" "toge@accad1.kek.jp")
2153       (print-short "Raymond L. Toy" "toy@rtp.ericsson.se")
2154       (print-short "Remek Trzaska" "remek@npac.syr.edu")
2155       (print-short "TSUTOMU Nakamura" "tsutomu@rs.kyoto.omronsoft.co.jp")
2156       (print-short "Stefanie Teufel" "s.teufel@ndh.net")
2157       (print-short "Gary Thomas" "g.thomas@opengroup.org")
2158       (print-short "John Turner" "turner@xdiv.lanl.gov")
2159       (print-short "UENO Fumihiro" "7m2vej@ritp.ye.IHI.CO.JP")
2160       (print-short "Aki Vehtari" "Aki.Vehtari@hut.fi")
2161       (print-short "Juan E. Villacis" "jvillaci@cs.indiana.edu")
2162       (print-short "Vladimir Vukicevic" "vladimir@intrepid.com")
2163       (print-short "David Walte" "djw18@cornell.edu")
2164       (print-short "Peter Ware" "ware@cis.ohio-state.edu")
2165       (print-short "Christoph Wedler" "wedler@fmi.uni-passau.de")
2166       (print-short "Yoav Weiss" "yoav@zeus.datasrv.co.il")
2167       (print-short "Peter B. West" "p.west@uq.net.au")
2168       (print-short "Rod Whitby" "rwhitby@asc.corp.mot.com")
2169       (print-short "Rich Williams" "rdw@hplb.hpl.hp.com")
2170       (print-short "Raymond Wiker" "raymond@orion.no")
2171       (print-short "Peter Windle" "peterw@SDL.UG.EDS.COM")
2172       (print-short "David C Worenklein" "dcw@gcm.com")
2173       (print-short "Takeshi Yamada" "yamada@sylvie.kecl.ntt.jp")
2174       (print-short "Katsumi Yamaoka" "yamaoka@ga.sony.co.jp")
2175       (print-short "Jason Yanowitz" "yanowitz@eternity.cs.umass.edu")
2176       (print-short "La Monte Yarroll" "piggy@hilbert.maths.utas.edu.au")
2177       (print-short "Blair Zajac" "blair@olympia.gps.caltech.edu")
2178       (print-short "Volker Zell" "vzell@de.oracle.com")
2179       (print-short "Daniel Zivkovic" "daniel@canada.sun.com")
2180       (print-short "Karel Zuiderveld" "Karel.Zuiderveld@cv.ruu.nl")
2181       (widget-insert "\n"))
2182     (about-finish-buffer)))
2183
2184 ;;; about.el ends here