PageRenderTime 65ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 1ms

/lisp/about.el

https://bitbucket.org/xemacs/xemacs-21.4
Emacs Lisp | 2166 lines | 1933 code | 125 blank | 108 comment | 117 complexity | 89a28952a9c9857b4d31ebd417f925cb MD5 | raw file
Possible License(s): LGPL-2.0, GPL-2.0

Large files files are truncated, but you can click here to view the full file

  1. ;;; about.el --- the About The Authors page (shameless self promotion).
  2. ;; Copyright (c) 1997, 2005 Free Software Foundation, Inc.
  3. ;; Copyright (C) 2001 Ben Wing.
  4. ;; Keywords: extensions
  5. ;; Version: 2.5
  6. ;; Maintainer: XEmacs Development Team
  7. ;; This file is part of XEmacs.
  8. ;; XEmacs is free software; you can redistribute it and/or modify it
  9. ;; under the terms of the GNU General Public License as published by
  10. ;; the Free Software Foundation; either version 2, or (at your option)
  11. ;; any later version.
  12. ;; XEmacs is distributed in the hope that it will be useful, but
  13. ;; WITHOUT ANY WARRANTY; without even the implied warranty of
  14. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. ;; General Public License for more details.
  16. ;; You should have received a copy of the GNU General Public License
  17. ;; along with XEmacs; see the file COPYING. If not, write to the
  18. ;; Free Software Foundation, 59 Temple Place - Suite 330,
  19. ;; Boston, MA 02111-1307, USA.
  20. ;;; Synched up with: Not in FSF.
  21. ;; Original code: Jamie Zawinski <jwz@jwz.org>
  22. ;; Text: Ben Wing <ben@xemacs.org>, Jamie Zawinski <jwz@jwz.org>
  23. ;; Hard: Amiga 1000, Progressive Peripherals Frame Grabber.
  24. ;; Soft: FG 2.0, DigiPaint 3.0, pbmplus (dec 91), xv 3.0.
  25. ;; Modified for 19.11 by Eduardo Pelegri-Llopart <pelegri@eng.sun.com>
  26. ;; and Chuck Thompson <cthomp@xemacs.org>
  27. ;; More hacking for 19.12 by Chuck Thompson and Ben Wing.
  28. ;; 19.13 and 19.14 updating done by Chuck Thompson.
  29. ;; 19.15 and 20.0 updating done by Steve Baur and Martin Buchholz.
  30. ;; Completely rewritten for 20.3 by Hrvoje Niksic <hniksic@xemacs.org>.
  31. ;; The original had no version numbers; I numbered the rewrite as 2.0.
  32. ;; Extensively revamped and most text rewritten by Ben Wing
  33. ;; <ben@xemacs.org> for 21.4.
  34. ;; Many things in this file are to gag. Ideally, we should just use
  35. ;; HTML (or some other extension, e.g. info) for this sort of thing.
  36. ;; However, W3 loads too long and is too large to be dumped with
  37. ;; XEmacs.
  38. ;; If you think this is ugly now -- o boy, you should have seen it
  39. ;; before.
  40. (require 'wid-edit)
  41. ;; People in this list have their individual links from the main page,
  42. ;; or from the `Legion' page. If they have an image, it should be
  43. ;; named after the CAR of the list element (baw -> baw.png).
  44. ;;
  45. ;; If you add to this list, you'll want to update
  46. ;; `about-personal-info' and `about-hackers', and add the name to one
  47. ;; of the three mutually exclusive lists just below.
  48. (defface about-headline-face
  49. '((((class color) (background dark))
  50. (:foreground "red" :bold t))
  51. ;; red4 is hardly different from black on windows.
  52. (((class color) (background light)
  53. (type mswindows))
  54. (:foreground "red" :bold t))
  55. (((class color) (background light))
  56. (:foreground "red4" :bold t))
  57. (((class grayscale) (background light))
  58. (:foreground "LightGray" :bold t))
  59. (((class grayscale) (background dark))
  60. (:foreground "DimGray" :bold t))
  61. (t (:bold t)))
  62. "Face used for color-highlighted headlines in the About page.")
  63. (defface about-link-face
  64. '((((class color) (background dark))
  65. (:foreground "blue" :underline t))
  66. ;; blue4 is hardly different from black on windows.
  67. (((class color) (background light) (type mswindows))
  68. (:foreground "blue3" :underline t))
  69. (((class color) (background light))
  70. (:foreground "blue4" :underline t))
  71. (((class grayscale) (background light))
  72. (:foreground "DimGray" :bold t :italic t :underline t))
  73. (((class grayscale) (background dark))
  74. (:foreground "LightGray" :bold t :italic t :underline t))
  75. (t (:underline t)))
  76. "Face used for links in the About page.")
  77. (defvar xemacs-hackers
  78. '(
  79. ;; to sort the stuff below, use M-x sort-regexp-fields RET
  80. ;; ^.*$ RET (\([a-z]*\) RET
  81. (adrian "Adrian Aichner" "adrian@xemacs.org")
  82. (aj "Andreas Jaeger" "aj@xemacs.org")
  83. (ajc "Andrew Cosgriff" "ajc@xemacs.org")
  84. (alastair "Alastair Houghton" "alastair@xemacs.org")
  85. (baw "Barry Warsaw" "bwarsaw@xemacs.org")
  86. (ben "Ben Wing" "ben@xemacs.org")
  87. (bw "Bob Weiner" "weiner@xemacs.org")
  88. (cgw "Charles Waldman" "cgw@xemacs.org")
  89. (chr "Christian Nybř" "chr@xemacs.org")
  90. (craig "Craig Lanning" "craig@xemacs.org")
  91. (cthomp "Chuck Thompson" "cthomp@xemacs.org")
  92. (daiki "Daiki Ueno" "daiki@xemacs.org")
  93. (dan "Dan Holmsand" "dan@xemacs.org")
  94. (darrylo "Darryl Okahata" "darrylo@xemacs.org")
  95. (devin "Matthieu Devin" "devin@xemacs.org")
  96. (dkindred "Darrell Kindred" "dkindred@xemacs.org")
  97. (dmoore "David Moore" "dmoore@xemacs.org")
  98. (didier "Didier Verna" "didier@xemacs.org")
  99. (eb "Eric Benson" "eb@xemacs.org")
  100. (fabrice "Fabrice Popineau" "fabrice@xemacs.org")
  101. (golubev "Ilya Golubev" "golubev@xemacs.org")
  102. (gunnar "Gunnar Evermann" "gunnar@xemacs.org")
  103. (hbs "Harlan Sexton" "hbs@xemacs.org")
  104. (hisashi "Hisashi Miyashita" "hisashi@xemacs.org")
  105. (hmuller "Hans Muller" "hmuller@xemacs.org")
  106. (hniksic "Hrvoje Niksic" "hniksic@xemacs.org")
  107. (hobley "David hobley" "hobley@xemacs.org")
  108. (jan "Jan Vroonhof" "jan@xemacs.org")
  109. (jareth "Jareth Hein" "jareth@xemacs.org")
  110. (jas "Simon Josefsson" "simon@xemacs.org")
  111. (jason "Jason R. Mastaler" "jason@xemacs.org")
  112. (jens "Jens Lautenbacher" "jens@xemacs.org")
  113. (jmiller "Jeff Miller" "jmiller@xemacs.org")
  114. (jonathan "Jonathan Harris" "jonathan@xemacs.org")
  115. (juhp "Jens-Ulrik Holger Petersen" "petersen@xemacs.org")
  116. (jwz "Jamie Zawinski" "jwz@xemacs.org")
  117. (kazz "IENAGA Kazuyuki" "ienaga@xemacs.org")
  118. (kirill "Kirill Katsnelson" "kirill@xemacs.org")
  119. (kyle "Kyle Jones" "kyle@xemacs.org")
  120. (larsi "Lars Magne Ingebrigtsen" "larsi@xemacs.org")
  121. (marcpa "Marc Paquette" "marcpa@xemacs.org")
  122. (martin "Martin Buchholz" "martin@xemacs.org")
  123. (mcook "Michael R. Cook" "mcook@xemacs.org")
  124. (mly "Richard Mlynarik" "mly@xemacs.org")
  125. (morioka "MORIOKA Tomohiko" "morioka@xemacs.org")
  126. (mta "Mike Alexander" "mta@xemacs.org")
  127. (ograf "Oliver Graf" "ograf@xemacs.org")
  128. (olivier "Olivier Galibert" "olivier@xemacs.org")
  129. (oscar "Oscar Figueiredo" "oscar@xemacs.org")
  130. (pelegri "Eduardo Pelegri-Llopart" "pelegri@xemacs.org")
  131. (pez "Peter Pezaris" "pez@xemacs.org")
  132. (piper "Andy Piper" "andy@xemacs.org")
  133. (pittman "Daniel Pittman" "pittman@xemacs.org")
  134. (rickc "Rick Campbell" "rickc@xemacs.org")
  135. (rose "John Rose" "rose@xemacs.org")
  136. (rossini "Anthony Rossini" "rossini@xemacs.org")
  137. (slb "Steve Baur" "steve@xemacs.org")
  138. (sperber "Michael Sperber" "mike@xemacs.org")
  139. (stig "Jonathan Stigelman" "stig@xemacs.org")
  140. (stigb "Stig Bjorlykke" "stigb@xemacs.org")
  141. (thiessel "Marcus Thiessel" "marcus@xemacs.org")
  142. (tomonori "Tomonori Ikeyama" "tomonori@xemacs.org")
  143. (tuck "Matt Tucker" "tuck@xemacs.org")
  144. (turnbull "Stephen Turnbull" "turnbull@xemacs.org")
  145. (vin "Vin Shelton" "acs@xemacs.org")
  146. (vladimir "Vladimir Ivanovic" "vladimir@xemacs.org")
  147. (wmperry "William Perry" "wmperry@xemacs.org")
  148. (yoshiki "Yoshiki Hayashi" "yoshiki@xemacs.org")
  149. (youngs "Steve Youngs" "youngs@xemacs.org")
  150. )
  151. "Alist of XEmacs hackers.")
  152. (defvar about-current-release-maintainers
  153. ;; this list should not necessarily be in sorted order.
  154. '(vin turnbull adrian ben martin piper sperber youngs))
  155. (defvar about-other-current-hackers
  156. ;; to sort this list or the one below, use:
  157. ;; M-x sort-regexp-fields RET [a-z]+ RET \(.*\) RET
  158. '(aj alastair cgw craig daiki dan didier fabrice golubev gunnar hisashi hniksic
  159. jan jareth jmiller jason jonathan kazz kirill larsi morioka mta ograf
  160. olivier oscar pittman tomonori tuck wmperry yoshiki))
  161. (defvar about-once-and-future-hackers
  162. '(ajc baw bw chr cthomp darrylo devin dkindred dmoore eb hbs hmuller
  163. hobley jas jens juhp jwz kyle marcpa mcook mly ograf pelegri pez
  164. rickc rose rossini slb stig stigb thiessel vladimir))
  165. ;; The CAR of alist elements is a valid argument to `about-url-link'.
  166. ;; It is preferred to a simple string, because it makes maintenance
  167. ;; easier. Please add new URLs to this list.
  168. (defvar about-url-alist
  169. ;; to sort the stuff below, use M-x sort-regexp-fields RET
  170. ;; ^.*$ RET (\([a-z]*\) RET
  171. '((ajc . "http://www-personal.monash.edu.au/~ajc/")
  172. (alastair . "http://website.lineone.net/~ajhoughton/")
  173. (baw . "http://barry.wooz.org/")
  174. (ben . "http://www.666.com/ben/")
  175. (ben-xemacs . "http://www.xemacs.org/Architecting-XEmacs/index.html")
  176. (beopen . "http://www.beopen.com/")
  177. (cc-mode . "http://cc-mode.sourceforge.net/")
  178. (chr . "http://www.xemacs.org/faq/")
  179. (daiki . "http://deisui.bug.org/diary/servlet/view")
  180. (dkindred . "http://www.cs.cmu.edu/People/dkindred/me.html")
  181. (dmoore . "http://oj.egbt.org/dmoore/")
  182. (didier . "http://didier.lrde.org/")
  183. (dvljazz . "http://www.didierverna.com/")
  184. (fabrice . "http://www.ese-metz.fr/~popineau/")
  185. (fptex . "http://www.fptex.org/")
  186. (jas . "http://josefsson.org/")
  187. (jason . "http://www.mastaler.com/")
  188. (juhp . "http://www.01.246.ne.jp/~juhp/")
  189. (jwz . "http://www.jwz.org/")
  190. (kazz . "http://www.imasy.or.jp/~kazz/")
  191. (kyle . "http://www.wonderworks.com/kyle/")
  192. (larsi . "http://quimby.gnus.org/lmi/")
  193. (marcpa . "http://www.positron911.com/products/power.htm")
  194. (ograf . "http://www.fga.de/~ograf/")
  195. (pez . "http://cbs.sportsline.com/")
  196. (piper . "http://www.andypiper.com/")
  197. (rossini . "http://faculty.washington.edu/rossini/")
  198. (stigb . "http://www.tihlde.hist.no/~stigb/")
  199. (vin . "http://www.upa.org/")
  200. (vladimir . "http://www.leonora.org/~vladimir/")
  201. (wget . "http://sunsite.dk/wget/")
  202. (xemacs . "http://www.xemacs.org/")
  203. (youngs . "http://eicq.sourceforge.net/"))
  204. "Some of the more important URLs.")
  205. (defvar about-left-margin 3)
  206. (defun about-lookup-url (name)
  207. (let ((result (cdr (assq name about-url-alist))))
  208. (assert result)
  209. result))
  210. ;; Insert a URL link in the buffer. TEXT-TO-INSERT is the text that will
  211. ;; be hyperlinked; if omitted, the URL is used. HELP-ECHO is some text that
  212. ;; will be displayed when the mouse moves over the link.
  213. (defun about-url-link (url &optional text-to-insert help-echo)
  214. (assert url)
  215. (when (symbolp url)
  216. (setq url (about-lookup-url url)))
  217. (when (and text-to-insert (symbolp text-to-insert))
  218. (setq text-to-insert (about-lookup-url text-to-insert)))
  219. (widget-create 'url-link
  220. :button-prefix ""
  221. :button-suffix ""
  222. :help-echo help-echo
  223. :tag (or text-to-insert url)
  224. url))
  225. ;; Insert a mail link in the buffer.
  226. (defun about-mailto-link (address)
  227. (lexical-let ((address address))
  228. (widget-create 'link
  229. :tag address
  230. :button-prefix ""
  231. :button-suffix ""
  232. :action (lambda (widget &optional event)
  233. (compose-mail address))
  234. :help-echo (format "Send mail to %s" address))))
  235. ;; Attach a face to a string, in order to be inserted into the buffer.
  236. ;; Make sure that the extent is duplicable, but unique. Returns the
  237. ;; string.
  238. (defun about-with-face (string face)
  239. (let ((ext (make-extent 0 (length string) string)))
  240. (set-extent-property ext 'duplicable t)
  241. (set-extent-property ext 'unique t)
  242. (set-extent-property ext 'start-open t)
  243. (set-extent-property ext 'end-open t)
  244. (set-extent-face ext face))
  245. string)
  246. ;; Switch to buffer NAME. If it doesn't exist, make it and switch to it.
  247. (defun about-get-buffer (name)
  248. (cond ((get-buffer name)
  249. (switch-to-buffer name)
  250. (delete-other-windows)
  251. (goto-char (point-min))
  252. name)
  253. (t
  254. (switch-to-buffer name)
  255. (delete-other-windows)
  256. (buffer-disable-undo)
  257. ;; #### This is a temporary fix until wid-edit gets fixed right.
  258. ;; We don't do everything that widget-button-click does -- i.e.
  259. ;; we don't change the link color on button down -- but that's
  260. ;; not important.
  261. (add-local-hook
  262. 'mouse-track-click-hook
  263. #'(lambda (event count)
  264. (cond
  265. ((widget-event-point event)
  266. (let* ((pos (widget-event-point event))
  267. (button (get-char-property pos 'button)))
  268. (when button
  269. (widget-apply-action button event)
  270. t))))))
  271. (set-specifier left-margin-width about-left-margin (current-buffer))
  272. (set (make-local-variable 'widget-button-face) 'about-link-face)
  273. nil)))
  274. ;; Set up the stuff needed by widget. Allowed types are `bury' and
  275. ;; `kill'. The reason why we offer both types is performance: when a
  276. ;; large buffer is merely buried, `about' will find it again when the
  277. ;; user requests it, instead of recreating it. Small buffers can be
  278. ;; killed because it is cheap to generate their contents.
  279. (defun about-finish-buffer (&optional type)
  280. (or type (setq type 'bury))
  281. (widget-insert "\n")
  282. (if (eq type 'bury)
  283. (widget-create 'link
  284. :help-echo "Bury this buffer"
  285. :action (lambda (widget event)
  286. (if event
  287. ;; For some reason,
  288. ;; (bury-buffer (event-buffer event))
  289. ;; doesn't work.
  290. (with-selected-window (event-window event)
  291. (bury-buffer))
  292. (bury-buffer)))
  293. :tag "Bury")
  294. (widget-create 'link
  295. :help-echo "Kill this buffer"
  296. :action (lambda (widget event)
  297. (if event
  298. (kill-buffer (event-buffer event))
  299. (kill-buffer (current-buffer))))
  300. :tag "Kill"))
  301. (widget-insert " this buffer and return to previous.\n")
  302. (use-local-map (make-sparse-keymap))
  303. (set-keymap-parent (current-local-map) widget-keymap)
  304. (if (eq type 'bury)
  305. (progn
  306. (local-set-key "q" 'bury-buffer)
  307. (local-set-key "l" 'bury-buffer))
  308. (let ((dispose (lambda () (interactive) (kill-buffer (current-buffer)))))
  309. (local-set-key "q" dispose)
  310. (local-set-key "l" dispose)))
  311. (local-set-key " " 'scroll-up)
  312. (local-set-key [backspace] 'scroll-down)
  313. (local-set-key "\177" 'scroll-down)
  314. (widget-setup)
  315. (goto-char (point-min))
  316. (toggle-read-only 1)
  317. (set-buffer-modified-p nil))
  318. ;; Make the appropriate number of spaces.
  319. (defun about-center (string-or-glyph)
  320. (let ((n (- (startup-center-spaces string-or-glyph) about-left-margin)))
  321. (make-string (if (natnump n) n 0) ?\ )))
  322. ;; Main entry page.
  323. ;;;###autoload
  324. (defun about-xemacs ()
  325. "Describe the True Editor and its minions."
  326. (interactive)
  327. (unless (about-get-buffer "*About XEmacs*")
  328. (widget-insert (about-center xemacs-logo))
  329. (widget-create 'default
  330. :format "%t"
  331. :tag-glyph xemacs-logo)
  332. (widget-insert "\n")
  333. (let* ((emacs-short-version (format "%d.%d.%d"
  334. emacs-major-version
  335. emacs-minor-version
  336. emacs-patch-level))
  337. (emacs-about-version (format "version %s; %s %s"
  338. emacs-short-version
  339. (cdr (assoc (substring emacs-build-time
  340. 4 7)
  341. '(("Jan" . "January")
  342. ("Feb" . "February")
  343. ("Mar" . "March")
  344. ("Apr" . "April")
  345. ("May" . "May")
  346. ("Jun" . "June")
  347. ("Jul" . "July")
  348. ("Aug" . "August")
  349. ("Sep" . "September")
  350. ("Oct" . "October")
  351. ("Nov" . "November")
  352. ("Dec" . "December"))))
  353. (substring emacs-build-time -4))))
  354. (widget-insert (about-center emacs-about-version))
  355. (widget-create 'link :help-echo "What's new in XEmacs"
  356. :action 'about-news
  357. emacs-about-version))
  358. (widget-insert
  359. "\n\n"
  360. (about-with-face "XEmacs" 'bold-italic)
  361. " is a powerful, highly customizable open source text editor and
  362. application development system, with full GUI support. It is protected
  363. under the GNU Public License and related to other versions of Emacs, in
  364. particular GNU Emacs. Its emphasis is on modern graphical user
  365. interface support and an open software development model, similar to
  366. Linux. XEmacs has an active development community numbering in the
  367. hundreds (and thousands of active beta testers on top of this), and runs
  368. on all versions of MS Windows, on Linux, and on nearly every other
  369. version of Unix in existence. ")
  370. (widget-create 'link :help-echo "An XEmacs history lesson"
  371. :action 'about-collaboration
  372. :button-prefix ""
  373. :button-suffix ""
  374. "Support for XEmacs")
  375. (widget-insert
  376. " has been supplied by
  377. Sun Microsystems, University of Illinois, Lucid, ETL/Electrotechnical
  378. Laboratory, Amdahl Corporation, BeOpen, and others, as well as the
  379. unpaid time of a great number of individual developers.
  380. XEmacs has many ")
  381. (widget-create 'link :help-echo "See a list of XEmacs advantages over GNU Emacs"
  382. :action 'about-advantages
  383. :button-prefix ""
  384. :button-suffix ""
  385. "advantages")
  386. (widget-insert " over GNU Emacs. In addition, XEmacs 21.4
  387. provides many ")
  388. (widget-create 'link :help-echo "See a list of new features in XEmacs 21.4"
  389. :action 'about-news
  390. :button-prefix ""
  391. :button-suffix ""
  392. "new features")
  393. (widget-insert " not found in previous versions of XEmacs.
  394. More details on XEmacs's functionality, including bundled packages, can
  395. be obtained through the ")
  396. (widget-create 'info-link
  397. :help-echo "Browse the info system"
  398. :button-prefix ""
  399. :button-suffix ""
  400. :tag "info"
  401. "(dir)")
  402. (widget-insert
  403. " on-line information system.\n
  404. The XEmacs web page can be browsed, using any WWW browser at\n
  405. \t\t ")
  406. (about-url-link 'xemacs nil "Visit XEmacs WWW page")
  407. (widget-insert "\n
  408. Note that W3 (XEmacs's own browser), might need customization (due to
  409. firewalls) in order to work correctly.
  410. XEmacs is the result of the time and effort of many people. The
  411. developers responsible for this release are:\n\n")
  412. (flet ((setup-person (who)
  413. (widget-insert "\t* ")
  414. (let* ((entry (assq who xemacs-hackers))
  415. (name (cadr entry))
  416. (address (caddr entry)))
  417. (widget-create 'link
  418. :help-echo (concat "Find out more about " name)
  419. :button-prefix ""
  420. :button-suffix ""
  421. :action 'about-maintainer
  422. :tag name
  423. :value who)
  424. (widget-insert (format " <%s>\n" address)))))
  425. ;; Setup persons responsible for this release.
  426. (mapc 'setup-person about-current-release-maintainers)
  427. (widget-insert "\n\t* ")
  428. (widget-create 'link :help-echo "A legion of XEmacs hackers"
  429. :action 'about-hackers
  430. :button-prefix ""
  431. :button-suffix ""
  432. "The full list of contributors...")
  433. (widget-insert "\n
  434. Steve Baur was the primary maintainer for 19.15 through 21.0.\n\n")
  435. (setup-person 'slb)
  436. (widget-insert "
  437. Chuck Thompson and Ben Wing were the maintainers for 19.11 through 19.14
  438. and heavy code contributors for 19.8 through 19.10.\n\n")
  439. (setup-person 'cthomp)
  440. (setup-person 'ben)
  441. (widget-insert "
  442. Jamie Zawinski was the maintainer for 19.0 through 19.10 (the entire
  443. history of Lucid Emacs).\n\n")
  444. (setup-person 'jwz))
  445. (about-finish-buffer)
  446. ;; it looks horrible with the cursor on the first line, since it's
  447. ;; so big.
  448. (goto-line 2)))
  449. ;; View news
  450. (defun about-news (&rest ignore)
  451. (view-emacs-news)
  452. (message "%s" (substitute-command-keys
  453. "Press \\[kill-buffer] to exit this buffer")))
  454. (defun about-collaboration (&rest ignore)
  455. (unless (about-get-buffer "*About Collaboration*")
  456. (let ((title "Why Another Version of Emacs"))
  457. (widget-insert
  458. "\n"
  459. (about-center title)
  460. (about-with-face title 'bold)))
  461. (widget-insert
  462. "\n\n"
  463. (about-with-face "The Lucid, Inc. Point of View"
  464. 'italic)
  465. " (quite outdated)\n
  466. At the time of the inception of Lucid Emacs (the former name of
  467. XEmacs), Lucid's latest product was Energize, a C/C++ development
  468. environment. Rather than invent (and force our users to learn) a new
  469. user interface, we chose to build part of our environment on top of
  470. the world's best editor, GNU Emacs. (Though our product is
  471. commercial, the work we did on GNU Emacs is free software, and is
  472. useful in its own right.)
  473. We needed a version of Emacs with mouse-sensitive regions, multiple
  474. fonts, the ability to mark sections of a buffer as read-only, the
  475. ability to detect which parts of a buffer have been modified, and many
  476. other features.
  477. For our purposes, the existing version of Epoch was not sufficient; it
  478. did not allow us to put arbitrary pixmaps/icons in buffers, `undo' did
  479. not restore changes to regions, regions did not overlap and merge
  480. their attributes in the way we needed, and several other things.
  481. We could have devoted our time to making Epoch do what we needed (and,
  482. in fact, we spent some time doing that in 1990) but, since the FSF
  483. planned to include Epoch-like features in their version 19, we decided
  484. that our efforts would be better spent improving Emacs 19 instead of
  485. Epoch.
  486. Our original hope was that our changes to Emacs would be incorporated
  487. into the \"official\" v19. However, scheduling conflicts arose, and
  488. we found that, given the amount of work still remaining to be done, we
  489. didn't have the time or manpower to do the level of coordination that
  490. would be necessary to get our changes accepted by the FSF.
  491. Consequently, we released our work as a forked branch of Emacs,
  492. instead of delaying any longer.
  493. Roughly a year after Lucid Emacs 19.0 was released, a beta version of
  494. the FSF branch of Emacs 19 was released. The FSF version is better in
  495. some areas, and worse in others, as reflects the differing focus of
  496. our development efforts.
  497. We plan to continue developing and supporting Lucid Emacs, and merging
  498. in bug fixes and new features from the FSF branch as appropriate; we
  499. do not plan to discard any of the functionality that we implemented
  500. which RMS has chosen not to include in his version.
  501. Certain elements of Lucid Emacs, or derivatives of them, have been
  502. ported to the FSF version. We have not been doing work in this
  503. direction, because we feel that Lucid Emacs has a cleaner and more
  504. extensible substrate, and that any kind of merger between the two
  505. branches would be far easier by merging the FSF changes into our
  506. version than the other way around.
  507. We have been working closely with the Epoch developers to merge in the
  508. remaining Epoch functionality which Lucid Emacs does not yet have.
  509. Epoch and Lucid Emacs will soon be one and the same thing. Work is
  510. being done on a compatibility package which will allow Epoch 4 code to
  511. run in XEmacs with little or no change.\n\n"
  512. (about-with-face "The Sun Microsystems, Inc. Point of View"
  513. 'italic)
  514. "\n
  515. Emacs 18 has been around for a long, long time. Version 19 was
  516. supposed to be the successor to v18 with X support. It was going to
  517. be available \"real soon\" for a long time (some people remember
  518. hearing about v19 as early as 1984!), but it never came out. v19
  519. development was going very, very slowly, and from the outside it
  520. seemed that it was not moving at all. In the meantime other people
  521. gave up waiting for v19 and decided to build their own X-aware
  522. Emacsen. The most important of these was probably Epoch, which came
  523. from the University of Illinois (\"UofI\") and was based on v18.
  524. Around 1990, the Developer Products group within Sun Microsystems
  525. Inc., decided that it wanted an integrated editor. (This group is now
  526. known as DevPro. It used to be known as SunPro - the name was changed
  527. in mid-1994.) They contracted with the University of Illinois to
  528. provide a number of basic enhancements to the functionality in Epoch.
  529. UofI initially was planning to deliver this on top of Epoch code.
  530. In the meantime, (actually some time before they talked with UofI)
  531. Lucid had decided that it also wanted to provide an integrated
  532. environment with an integrated editor. Lucid decided that the Version
  533. 19 base was a better one than Version 18 and thus decided not to use
  534. Epoch but instead to work with Richard Stallman, the head of the Free
  535. Software Foundation and principal author of Emacs, on getting v19 out.
  536. At some point Stallman and Lucid parted ways. Lucid kept working and
  537. got a v19 out that they called Lucid Emacs 19.
  538. After Lucid's v19 came out it became clear to us (the UofI and Sun)
  539. that the right thing to do was to push for an integration of both
  540. Lucid Emacs and Epoch, and to get the deliverables that Sun was asking
  541. from the University of Illinois on top of this integrated platform.
  542. Until 1994, Sun and Lucid both actively supported XEmacs as part of
  543. their product suite and invested a comparable amount of effort into
  544. it. Substantial portions of the current code have originated under
  545. the support of Sun, either directly within Sun, or at UofI but paid
  546. for by Sun. This code was kept away from Lucid for a while, but later
  547. was made available to them. Initially Lucid didn't know that Sun was
  548. supporting UofI, but later Sun was open about it.
  549. Around 1992 DevPro-originated code started showing up in Lucid Emacs,
  550. starting with the infusion of the Epoch redisplay code. The separate
  551. code bases at Lucid, Sun, and the University of Illinois were merged,
  552. allowing a single XEmacs to evolve from that point on.
  553. Sun originally called the integrated product ERA, for \"Emacs
  554. Rewritten Again\". SunPro and Lucid eventually came to an agreement
  555. to find a name for the product that was not specific to either
  556. company. An additional constraint that Lucid placed on the name was
  557. that it must contain the word \"Emacs\" in it -- thus \"ERA\" was not
  558. acceptable. The tentatively agreed-upon name was \"XEmacs\", and this
  559. has been the name of the program since version 19.11.)
  560. As of 1997, Sun is shipping XEmacs as part of its Developer Products
  561. integrated programming environment \"Sun WorkShop\". Sun is
  562. continuing to support XEmacs development, with focus on
  563. internationalization and quality improvement.\n\n"
  564. (about-with-face "Lucid goes under" 'italic)
  565. "\n
  566. Around mid-'94, Lucid went out of business. Lucid founder Richard
  567. Gabriel's book \"Patterns of Software\", which is highly recommended
  568. reading in any case, documents the demise of Lucid and suggests
  569. lessons to be learned for the whole software development community.
  570. Development on XEmacs, however, has continued unabated under the
  571. auspices of Sun Microsystems and the University of Illinois, with help
  572. from Amdahl Corporation and INS Engineering Corporation. Sun plans to
  573. continue to support XEmacs into the future.\n\n"
  574. (about-with-face "The Amdahl Corporation point of view"
  575. 'italic)
  576. "\n
  577. Amdahl Corporation's Storage Products Group (SPG) uses XEmacs as the
  578. focal point of a environment for development of the microcode used in
  579. Amdahl's large-scale disk arrays, or DASD's. SPG has joint ventures
  580. with Japanese companies, and decided in late 1994 to contract out for
  581. work on XEmacs in order to hasten the development of Mule support
  582. \(i.e. support for Japanese, Chinese, etc.) in XEmacs and as a gesture
  583. of goodwill towards the XEmacs community for all the work they have
  584. done on making a powerful, modern, freely available text editor.
  585. Through this contract, Amdahl provided a large amount of work in
  586. XEmacs in the form of rewriting the basic text-processing mechanisms
  587. to allow for Mule support and writing a large amount of the support
  588. for multiple devices.
  589. Although Amdahl is no longer hiring a full-time contractor, they are
  590. still funding part-time work on XEmacs and providing resources for
  591. further XEmacs development.\n\n"
  592. (about-with-face "The INS Engineering point of view"
  593. 'italic)
  594. "\n
  595. INS Engineering Corporation, based in Tokyo, bought rights to sell
  596. Energize when Lucid went out of business. Unhappy with the
  597. performance of the Japanese support in XEmacs 19.11, INS also
  598. contributed to the XEmacs development from late 1994 to early
  599. 1995.\n")
  600. (about-finish-buffer)))
  601. (defun about-advantages (&rest ignore)
  602. (unless (about-get-buffer "*About Advantages*")
  603. (let ((title "XEmacs Advantages over GNU Emacs"))
  604. (widget-insert
  605. "\n"
  606. (about-center title)
  607. (about-with-face title 'bold)))
  608. (widget-insert
  609. "\n
  610. * Much better GUI support:
  611. -- a real toolbar
  612. -- more comprehensive and better-designed menubars
  613. -- horizontal and vertical scrollbars in all windows
  614. -- proper dialog boxes
  615. -- tabs for selecting buffers
  616. -- support for variable-width and variable height fonts
  617. -- support for arbitrary pixmaps and widgets in a buffer
  618. -- face support on TTY's, including color
  619. * An installable package system, with a huge number of packages available
  620. that have been tested and are known to work with the latest version
  621. of XEmacs.
  622. * Comprehensive support for the GTK toolkit.
  623. * An open development community, with contributions welcome and no need
  624. to sign over your copyright to any organization. (Please send
  625. contributions to xemacs-patches@xemacs.org. See http://www.xemacs.org
  626. for more information on XEmacs mailing lists, and other info.)
  627. * Support for display on multiple simultaneous X and/or TTY devices.
  628. * Powerful, flexible control over the display characteristics of most
  629. of the visual aspects of XEmacs through the use of specifiers, which
  630. allow separate values to be specified for individual buffers,
  631. windows, frames, devices, device classes, and device types.
  632. * A clean, modern, abstracted Lisp interface to the menubar, toolbar,
  633. window-system events, key combinations, extents (regions in a buffer
  634. with specific properties), and all other display aspects.
  635. * Proper integration with Xt and Motif (including Motif menubars and
  636. scrollbars). Motif look-alike menubars and scrollbars are provided
  637. for those systems without real Motif support.
  638. * Many improvements to the multilingual support, such as the ability to
  639. enter text for complex languages using the XIM mechanism and
  640. localization of menubar text for the Japanese locale.
  641. \n\n")
  642. (about-finish-buffer)))
  643. (defvar about-glyphs nil
  644. "Cached glyphs")
  645. ;; Return a maintainer's glyph
  646. (defun about-maintainer-glyph (who)
  647. (let ((glyph (cdr (assq who about-glyphs))))
  648. (unless glyph
  649. (let ((file (expand-file-name
  650. (concat (symbol-name who)
  651. (if (memq (device-class)
  652. '(color grayscale))
  653. "" "m")
  654. ".png")
  655. (locate-data-directory "photos")))
  656. (data nil))
  657. (setq glyph
  658. (cond ((stringp data)
  659. (make-glyph
  660. (if (featurep 'png)
  661. `([png :data ,data]
  662. [string :data "[Image]"])
  663. `([string :data "[Image]"]))))
  664. ((eq data 'error)
  665. (make-glyph [string :data "[Error]"]))
  666. (file
  667. (make-glyph
  668. (if (featurep 'png)
  669. `([png :file ,file]
  670. [string :data "[Image]"])
  671. `([string :data "[Image]"]))))
  672. (t
  673. (make-glyph [nothing]))))
  674. (set-glyph-property glyph 'baseline 100)
  675. ;; Cache the glyph
  676. (push (cons who glyph) about-glyphs)))
  677. glyph))
  678. ;; Insert personal info about a maintainer. See also
  679. ;; `about-hacker-contribution'. Note that the info in
  680. ;; `about-hacker-contribution' is automatically displayed in the
  681. ;; person's own page, so there is no need to duplicate it.
  682. (defun about-personal-info (entry)
  683. (ecase (car entry)
  684. ;; you can sort the stuff below with something like
  685. ;;(sort-regexp-fields nil
  686. ;; " *(\\([^()]\\|([^()]*)\\|(\\([^()]\\|([^()]*)\\)*)\\)*)\n"
  687. ;; " *(\\([a-z]*\\)"
  688. ;; (region-beginning) (region-end))
  689. (adrian
  690. (widget-insert
  691. "\
  692. Sorry, no personal information available about me yet.\n"))
  693. (aj
  694. (widget-insert "\
  695. I'm a software developer working for the SuSE Labs of the Linux
  696. distributor SuSE. My main task is to improve the GNU C library.")
  697. (widget-insert ".\n"))
  698. (ajc
  699. (widget-insert "\
  700. When not helping maintain the XEmacs website, Andrew is a Network
  701. Software Engineer(tm) for Monash University in Australia, maintaining
  702. webservers and doing random other things. As well as spending spare
  703. time being an Eager Young Space Cadet and fiddling with XEmacs/Gnus
  704. et. al., he spends his time pursuing, among other things, a Life.
  705. Some of this currently involves doing an A-Z (by country) of
  706. restaurants with friends, and has, in the past, involved dyeing his
  707. hair various colours (see ")
  708. (about-url-link 'ajc nil "Visit Andrew's home page")
  709. (widget-insert ".\n"))
  710. (alastair
  711. (widget-insert
  712. "\
  713. Alastair, apart from being an all-round hacker, occasional contributor
  714. to free software projects and general good egg(!), currently works for
  715. Telsis, a manufacturer of telephony equipment on the south coast of
  716. England. He'd quite like to have his own company one day, but has yet
  717. to think of that killer product...
  718. See also ")
  719. (about-url-link 'alastair nil "Visit Alastair's home page")
  720. (widget-insert ".\n"))
  721. (baw
  722. (widget-insert "\
  723. As of November 2000, I am a software engineer with the Pythonlabs at
  724. Digital Creations. Pythonlabs is the core team developing and
  725. maintaining the Python open source, object-oriented scripting
  726. language. Digital Creations is the publisher of Zope, an open source
  727. content management system written in Python.
  728. In addition to my Python and Zope work, I am lead developer for the
  729. GNU Mailman project, a mailing list management system written,
  730. naturally, in Python. See the trend?
  731. On the side I play bass with a number of Washington DC area bands and
  732. also write poems about cows, milk, and fathers. Here's a sample, and
  733. drop me an email if you live in the NYC to Charlotte region; I'll let
  734. you know when the band's playing in your area. It'd be cool to meet
  735. you, and talking about XEmacs would make my wife very happy by helping
  736. to fend off the legions of groupies that seem to follow me everywhere.
  737. Milk Me Daddy
  738. (C) 1990 Warsaw
  739. ===============
  740. Oh daddy with your fingers pink
  741. From whose udders do you drink?
  742. Thy milk offends with putrid stink
  743. I'll vomit now, lactose I think
  744. If I could dream, I'd be a cow
  745. Not horse, or mule, or barnyard sow
  746. The cud I'd chew would drip and how!
  747. So milk me daddy, milk me now!
  748. My bovine nature knows no bounds
  749. I'd naught awake at midnight sounds
  750. Of teens approaching o'er the grounds
  751. To tip with glee, then screech like clowns
  752. And so I stare into this glass
  753. Of sweaty juice, I gulp so fast
  754. Each drop I lick, down to the last
  755. The vertigo I know will pass
  756. My mother smiles and pats my head
  757. She's proud of me, so she has said
  758. My pop just now gets out of bed
  759. His eyes quite comatose and red
  760. He'll empathize my milky fate
  761. Whilest sopping gravy from his plate
  762. And as the hour is getting late
  763. His belly taut with all he ate
  764. He isn't often quite so chatty
  765. His arteries clogged with meat so fatty
  766. With burps that launch soup, thick and splatty
  767. Oh how I wish you'd milk me daddy\n\n\t")
  768. (about-url-link 'baw nil "Visit Barry's home page")
  769. (widget-insert "\n"))
  770. (ben
  771. (widget-insert
  772. "\
  773. Since September 1992, I've worked on XEmacs as a contractor for
  774. various companies and more recently as an unpaid volunteer.
  775. Alas, life has not been good to me recently. This former San
  776. Francisco \"Mission Critter\" developed insidious hand and neck
  777. problems after a brief stint working on a Java-based VRML toolkit for
  778. the now defunct Dimension X, and I was forced to quit working. I was
  779. exiled first to \"Stroller Valley\" and later all the way to Tucson,
  780. Arizona, and for two years was almost completely disabled due to pain.
  781. More recently I have fought my way back with loads and loads of
  782. narcotic painkillers, and currently I'm an art student at the
  783. University of Arizona.\n\n")
  784. (widget-insert "Architecting XEmacs: ")
  785. (about-url-link 'ben-xemacs nil "Find the miracles in store for XEmacs")
  786. (widget-insert "\nBen's home page: ")
  787. (about-url-link 'ben nil "Visit Ben's page")
  788. (widget-insert "\n"))
  789. (bw
  790. (widget-insert "\
  791. His interests include user interfaces, information management, CASE
  792. tools, communications and enterprise integration.\n"))
  793. (cgw
  794. (widget-insert
  795. "\
  796. Sorry, no personal information available about me yet.\n"))
  797. (chr
  798. (widget-insert "\
  799. Christian is a student at the Norwegian School of Economics and
  800. Business Administration in Bergen, Norway. He used to work for an
  801. internet startup called New Media Science, doing scripting and
  802. violation of HTML DTD's. After graduation, spring 1999, he'll be
  803. looking for a job involving lisp programming, French and Russian.\n"))
  804. (craig
  805. (widget-insert
  806. "\
  807. Sorry, no personal information available about me yet.\n"))
  808. (cthomp
  809. (widget-insert "\
  810. Chuck is a senior system and network administrator for the Computer
  811. Science department at the Unversity of Illinois. In one previous life
  812. he spent every waking hour working on XEmacs. In another he dabbled
  813. as a project manager for a streaming video startup (RIP). His current
  814. reason for not having time to contribute to XEmacs is the Thompson
  815. Twins.\n"))
  816. (daiki
  817. (about-url-link 'daiki nil "Visit Daiki's page"))
  818. (dan
  819. (widget-insert
  820. "\
  821. Sorry, no personal information available about me yet.\n"))
  822. (darrylo
  823. (widget-insert
  824. "\
  825. Perennial Emacs hacker since 1986 or so, when he first started on GNU
  826. Emacs 17.something. Over the years, he's developed \"OEmacs\", the first
  827. version of GNU Emacs 19 for MSDOS, and \"bigperl\", a 32-bit version of
  828. Perl4 for MSDOS. In recent years, reality has intruded and he no longer
  829. has much time for playing with cool programs. What little time he has
  830. now goes to XEmacs hacking, where he's worked on speeding up dired under
  831. MS Windows, and to feeding his two cats.\n"))
  832. (devin
  833. (widget-insert
  834. "\
  835. Sorry, no personal information available about me yet.\n"))
  836. (dkindred
  837. (widget-insert "\
  838. Darrell is currently a doctoral student in computer science at
  839. Carnegie Mellon University, but he's trying hard to kick that
  840. habit.
  841. See ")
  842. (about-url-link 'dkindred nil "Visit Darrell's WWW page")
  843. (widget-insert ".\n"))
  844. (dmoore
  845. (widget-insert "\
  846. David is a student in the Computer Systems Laboratory at UCSD. When
  847. he manages to have free time, he usually spends it on 200 mile bicycle
  848. rides, learning German or showing people the best mail & news
  849. environment he's found in 10 years. (That'd be XEmacs, Gnus and bbdb,
  850. of course.) He can be found at `druidmuck.egbt.org 4201' at various
  851. hours of the day.
  852. He has a page at ")
  853. (about-url-link 'dmoore nil "Visit David's home page")
  854. (widget-insert ".\n"))
  855. (didier
  856. (widget-insert "\
  857. Didier has a Ph.D. in Computer Science and is currently working as an
  858. assistant professor for an engineering school in Paris). He gives
  859. lectures on Operating Systems, Computer Graphics, Functional Programming
  860. and Typesetting. His research interests include Genericity, Object
  861. Orientation and Functional Programming, all in one language:
  862. ... Common Lisp.
  863. Apart from the world of XEmacs and Emacs Lisp, Didier is also the author
  864. of several LaTeX packages (FiNK, FiXme, QCM and CurVe) and an occasional
  865. contributor to other Free Software projects (the GNU Autotools most
  866. notably; he was one of the technical reviewers for the \"Goat Book\").
  867. But all of this is only 60% true... Two days per week, Didier is indeed
  868. a semi-professional Jazz guitar player (and singer), which means that he
  869. doesn't quite earn his crust with it, but things may very well reverse in
  870. the future...\n")
  871. (widget-insert "\nVisit Didier's scientific website: ")
  872. (about-url-link 'didier nil "Visit Didier's scientific website")
  873. (widget-insert "\nVisit Didier's musical website: ")
  874. (about-url-link 'dvljazz nil "Visit Didier's musical website")
  875. (widget-insert "\n"))
  876. (eb
  877. (widget-insert
  878. "\
  879. Sorry, no personal information available about me yet.\n"))
  880. (fabrice
  881. (widget-insert
  882. "\
  883. I'm a computer science researcher and teacher in a French electrical
  884. engineering institution called Supelec. My fields of interest are
  885. symbolic artificial intelligence, theoretical computer science, functional
  886. languages ... and TeX.
  887. Lately, my hacking time has been devoted to porting the Web2C/teTeX
  888. distribution of TeX for Unix to Win32, and I'm still maintaining it.
  889. It is included in the TeX Live cdrom edited by Sebastian Rahtz.\n")
  890. (widget-insert "Visit fpTeX home page: ")
  891. (about-url-link 'fptex nil "Visit fpTeX home page")
  892. (widget-insert "\nFabrice's home page: ")
  893. (about-url-link 'fabrice nil "Visit Fabrice's page")
  894. (widget-insert "\n"))
  895. (golubev
  896. (widget-insert
  897. "\
  898. I appreciate power of XEmacs, but elementary editing operations should
  899. be done by single keystrokes with no modifiers. So would not use
  900. XEmacs until discovered viper, and now can't live without viper.
  901. Occasionally dislike something in there or in other free software, and
  902. try to get it fixed. .plan file contains classic (perhaps reinvented
  903. independently) formula:
  904. Hacking world for ever
  905. (borrowed from \"Hacking X for Y\" in ")
  906. (about-url-link "http://www.jargon.org/"
  907. "Jargon File" "www.jargon.org")
  908. (widget-insert ").\n"))
  909. (gunnar
  910. (widget-insert
  911. "\
  912. Sorry, no personal information available about me yet.\n"))
  913. (hbs
  914. (widget-insert
  915. "\
  916. Sorry, no personal information available about me yet.\n"))
  917. (hisashi
  918. (widget-insert
  919. "\
  920. Sorry, no personal information available about me yet.\n"))
  921. (hmuller
  922. (widget-insert
  923. "\
  924. Sorry, no personal information available about me yet.\n"))
  925. (hniksic
  926. (widget-insert "\
  927. Hrvoje thinks he works in the server-side web business. In reality,
  928. he cranks out huge quantities of HTML, Tcl, and Java for the German
  929. branch of ")
  930. (about-url-link "http://www.arsdigita.com/"
  931. "ArsDigita, Inc." "www.arsdigita.com")
  932. ;; Avoid literal I18N characters in strings. *Displaying* a
  933. ;; Latin 1 character should always be safe, though, with or
  934. ;; without Mule.
  935. (let ((muenchen (format "M%cnchen" (make-char 'latin-iso8859-1 252))))
  936. (widget-insert (format "\
  937. He joined the ranks of Gastarbeiters only
  938. recently; he is trying to learn German and get attuned to %s
  939. and Bav^H^H^HGermany.\n" muenchen)))
  940. (widget-insert "\
  941. Before ArsDigita, he worked as a programmer at ")
  942. (about-url-link "http://www.iskon.hr/" "Iskon," "www.iskon.hr")
  943. (widget-insert " a fast-growing
  944. Croatian ISP. Even before that, he worked part-time for academic
  945. institutions like ")
  946. (about-url-link "http://www.srce.hr/" "SRCE" "www.srce.hr")
  947. (widget-insert " and ")
  948. (about-url-link "http://www.carnet.hr/" "CARNet," "www.carnet.hr")
  949. (widget-insert " and tried to attend university.
  950. He takes perverse pleasure in building and maintaining free software
  951. in his free time. Apart from XEmacs, his major contribution is ")
  952. (about-url-link 'wget "Wget," "Wget home page")
  953. (widget-insert "
  954. his very own creation, now jointly maintained by a happy crew.
  955. He dreams of having a home page.\n"))
  956. (hobley
  957. (widget-insert "\
  958. I used to do real work, but now I am a Project Manager for one of the
  959. Telco's in Australia. In my spare time I like to get back to basics and
  960. muck around with things. As a result I started the NT port. Hopefully I
  961. will get to finish it sometime sooner rather than later. I do vaguely
  962. remember University where it seems like I had more spare time that I can
  963. believe now. Oh well, such is life.\n"))
  964. (jan
  965. (widget-insert "\
  966. Jan Vroonhof has been using XEmacs since he needed to write .tex files
  967. for his work as a physics and maths student at the Univerisity of Leiden.
  968. His XEmacs hacking started when XEmacs kept freezing up under a his
  969. window manager. He submitted a fix and has been hooked every since.
  970. XEmacs has followed him first to Switzerland where he did a maths
  971. doctorate at the ETH in Zurich, working on a conjecture by Migdal on
  972. the behavior of vertex corrections in Electron-Phonon theory. Finally
  973. sharing a house with his loved one, he now lives in Oxford (UK)
  974. working on the Jeode Java Virtual Machine, which like XEmacs is
  975. portable, implements a language, includes a non-trivial bit of
  976. graphics and a garbage collector, but is multithreaded to boot!
  977. Unfortunately his XEmacs time is directly limited by the amount of
  978. traffic on the M40.\n"))
  979. (jas
  980. (widget-insert "\
  981. Simon lives in Stockholm where he has discovered that computers
  982. can be a powerful procrastinating tool. Combined with a
  983. frustrating desire to see computers simply work, he spends most
  984. of his time complaining. Occasionally he rises up to the task
  985. and produces something that others may complain about, which
  986. brings him increased satisfaction with every bug report. Today
  987. he is pretending to be a network security guy, with a preference
  988. for standardization issues, while secretly longing to start a
  989. cafe or becoming a theoretical computer scientist. His personal
  990. interest is literature, and to some extent traveling, but will
  991. try anything for fun, such as juggling, skiing, wine, and
  992. long-distance biking.
  993. See: ")
  994. (about-url-link 'jas nil "Visit Simon's homepage")
  995. (widget-insert ".\n"))
  996. (jareth
  997. (widget-insert "\
  998. Jareth Hein is a mountain boy who abandoned his home state of Colorado
  999. for the perpetual state of chaos known as Tokyo in a failed attempt to
  1000. become a cel-animator, and a more successful one to become a
  1001. computer-game programmer. As he happens to be bilingual (guess which
  1002. two?) he's been doing quite a bit of MULE hacking. He's also getting
  1003. his hands dirty in the graphics areas as well.\n"))
  1004. (jason
  1005. (widget-insert "\
  1006. Jason resides in Northern New Mexico where he works as a Systems
  1007. Scientist(tm) in the Los Alamos National Laboratory's Advanced
  1008. Computing Group.
  1009. See: ")
  1010. (about-url-link 'jason nil "Visit Jason's homepage")
  1011. (widget-insert ".\n"))
  1012. (jens
  1013. (widget-insert "\
  1014. I'm currently working for 1&1 Internet AG, a large Domain and Webspace
  1015. Provider in Germany and Europe. I do mostly Java/XML/OO/Component
  1016. stuff today. I'm interested EJB, Corba and other middleware or
  1017. distributed Systems. Besides work, I occasionally hack on The Gimp
  1018. and other gtk/gnome related projects. Maybe the advent of XEmacs/Gtk
  1019. will get me back to spend some time again hacking on XEmacs in the
  1020. near future.\n"))
  1021. (jmiller
  1022. (widget-insert "\
  1023. Jeff grew up in Indiana and is a country boy at heart. He currently
  1024. lives in, of all places, Millersville Maryland. He spends a lot of
  1025. his free time tinkering with Linux and hacking on XEmacs and loves it
  1026. when he finds new cool features in either. When he's not doing that,
  1027. he enjoys downhill skiing, puzzles, and sci-fi. Jeff is also really
  1028. interested in classical Roman history and enjoys making trips to
  1029. Italy, where he was born, and seeing the sights")
  1030. (widget-insert ".\n"))
  1031. (jonathan
  1032. (widget-insert "\
  1033. I work for Symbian Ltd in London, England, looking after low-level
  1034. kernel, peripheral and toolchain stuff for the EPOC OS.
  1035. I've been using XEmacs since 1994, but didn't start hacking on it
  1036. until late 1997 when I started working at Symbian, a Windows-only
  1037. company, and felt lost without my favourite editing environment.\n"))
  1038. (juhp
  1039. (widget-insert "\
  1040. Jens was born in Copenhagen, grew up in Britain and is now living in
  1041. Japan. He started using XEmacs 20 (instead of Emacs) as his
  1042. work-environment in June 1997 while still an EU postdoc at RIMS, Kyoto
  1043. University, and quickly got involved in XEmacs development. Recently
  1044. he is getting into Haskell, a very nice pure functional programming
  1045. language.
  1046. ")
  1047. (about-url-link 'juhp nil "Visit Jens' homepage")
  1048. (widget-insert "\n"))
  1049. (jwz
  1050. (widget-insert
  1051. "\t"
  1052. (about-with-face "\"So much to do, so little time.\"" 'italic)
  1053. "\n
  1054. Jamie Zawinski was primarily to blame for Lucid Emacs from its
  1055. inception in 1991, to 1994 when Lucid Inc. finally died. After that,
  1056. he was one of the initial employees of Netscape Communications, writing
  1057. the first Unix version of Netscape Navigator, and designing and
  1058. implementing the first version of the Netscape Mail and News readers.
  1059. He then helped create and run ")
  1060. (about-url-link "http://www.mozilla.org/"
  1061. "mozilla.org"
  1062. "Visit The Mozilla Organization")
  1063. (widget-insert " for its first two years,
  1064. until America Online bought Netscape Communications, at which point he
  1065. gave up in disgust and dropped out of the computer industry entirely.
  1066. He now runs a ")
  1067. (about-url-link "http://www.dnalounge.com/"
  1068. "nightclub"
  1069. "Visit The DNA Lounge")
  1070. (widget-insert " in San Francisco, and occasionally writes
  1071. screen savers.\n\n")
  1072. (widget-insert "Visit jwz's ")
  1073. (about-url-link 'jwz "home page" "Visit jwz's home page")
  1074. (widget-insert ".\n"))
  1075. (kazz
  1076. (widget-insert "\
  1077. Kazz is the XEmacs lead on BSD (especially FreeBSD).
  1078. His main workspace is, probably, the latest stable version of
  1079. FreeBSD and it makes him comfortable and not.
  1080. His *mission* is to make XEmacs runs on FreeBSD without
  1081. any problem.
  1082. In real life, he is working on a PDM product based on CORBA,
  1083. and doing consultation, design and implemention.
  1084. He loves to play soccer, yes football!
  1085. See also:")
  1086. (about-url-link 'kazz nil "Visit Kazz's home page")
  1087. (widget-insert ".\n"))
  1088. (kirill
  1089. (widget-insert
  1090. "\
  1091. Sorry, no personal information available about me yet.\n"))
  1092. (kyle
  1093. (widget-insert "\
  1094. See\n")
  1095. (about-url-link 'kyle nil "Visit Kyle's Home page")
  1096. (widget-insert ".\n"))
  1097. (larsi
  1098. (widget-insert "\
  1099. Lars's day job is as the head of the IT department of a Norwegian…

Large files files are truncated, but you can click here to view the full file