Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Invalid face reference: quote

55 views
Skip to first unread message

Davin Pearson

unread,
Jun 18, 2016, 8:19:23 PM6/18/16
to
I posted this message on June 7 but got no useful response, so I am posting it again in the hope that one of you braniacs could help me with my code...

Here is the output of my *Messages* buffer:

Here it is in the header file
Invalid face reference: quote [27 times]
Mark set
Invalid face reference: quote [24 times]
Mark set
Invalid face reference: quote [12 times]
Mark set
Invalid face reference: quote [12 times]
Mark set
Invalid face reference: quote [167 times]
<<< Type SPC or RET to bury the buffer list >>>
Invalid face reference: quote [8 times]

What is the reason for all of the "Invalid face reference: quote" error messages? I have added the following setq's to my font lock file. Is this anything to do with the error message?

(progn
(setq fg:lightred 'fg:lightred)
(setq d-face-cc-illegal-type 'd-face-cc-illegal-type)
(setq d-face-super-comment 'd-face-super-comment)
(setq d-face-cc-allegro 'd-face-cc-allegro)
(setq fg:white 'fg:white)
(setq bg:lightmagenta 'bg:lightmagenta)
(setq d-face-cc-debugging 'd-face-cc-debugging)
(setq bg:lightgreen 'bg:lightgreen)
(setq d-face-property-inverse 'd-face-property-inverse)
(setq d-face-cc-debugging 'd-face-cc-debugging)
(setq fg:lightmagenta 'fg:lightmagenta)
(setq fg:lightgreen 'fg:lightgreen)
(setq d-face-m4 'd-face-m4)
(setq d-face-m4-dnl 'd-face-m4-dnl)
(setq d-face-cc-digits 'd-face-cc-digits)
(setq d-debug-face 'd-debug-face)
(setq d-checkpoint-face 'd-checkpoint-face)
(setq d-face-el-quote 'd-face-el-quote)
(setq d-face-cc-debugging 'd-face-cc-debugging)
(setq d-face-cc-allegro 'd-face-cc-allegro)
(setq d-face-cc-illegal-type 'd-face-cc-illegal-type)
(setq bg:yellow 'bg:yellow)
(setq d-face-cc-libd 'd-face-cc-libd)
(setq d-face-cc-ctor-dtor 'd-face-cc-ctor-dtor)
(setq d-face-cc-clib 'd-face-cc-clib)
(setq fg:lightmagenta 'fg:lightmagenta)
(setq d-face-cc-global 'd-face-cc-global)
(setq d-face-cc-illegal-type 'd-face-cc-illegal-type)
(setq d-face-red-and-white 'd-face-red-and-white)
(setq d-face-green-and-black 'd-face-green-and-black)
(setq d-face-el-d-stuff 'd-face-el-d-stuff)
(setq d-face-el-quote 'd-face-el-quote)
(setq d-face-cc-opengl 'd-face-cc-opengl)
(setq d-face-makefile-dollar-dollar-highlight 'd-face-makefile-dollar-dollar-highlight)
(setq d-face-makefile-dollar-dollar 'd-face-makefile-dollar-dollar)
(setq fg:white 'fg:white)
(setq bg:lightmagenta 'bg:lightmagenta)
(setq d-face-cc-debugging 'd-face-cc-debugging)
(setq d-face-cc-private 'd-face-cc-private)
(setq bg:lightgreen 'bg:lightgreen)
(setq d-face-property 'd-face-property)
(setq d-face-property-inverse 'd-face-property-inverse)
(setq fg:lightmagenta 'fg:lightmagenta)
(setq fg:lightgreen 'fg:lightgreen)
(setq fg:lightmagenta 'fg:lightmagenta)
(setq fg:lightmagenta 'fg:lightmagenta)
(setq fg:lightgreen 'fg:lightgreen)
(setq fg:red 'fg:red)
(setq fg:lightred 'fg:lightred)
(setq bg:lightred 'bg:lightred)
(setq bg:yellow 'bg:yellow)
(setq d-face-path 'd-face-path)
(setq d-face-red-and-yellow 'd-face-red-and-yellow)
(setq dc-face-dired-web 'dc-face-dired-web)
(setq dc-face-dired-text 'dc-face-dired-text)
(setq dc-face-dired-executable 'dc-face-dired-executable)
(setq dc-face-dired-sounds 'dc-face-dired-sounds)
(setq dc-face-dired-sources 'dc-face-dired-sources)
(setq dc-face-dired-archives 'dc-face-dired-archives)
(setq dc-face-dired-graphics 'dc-face-dired-graphics)
(setq dc-face-dired-movies 'dc-face-dired-movies)
(setq dc-face-dired-unimportant 'dc-face-dired-unimportant)
(setq d-face-m4 'd-face-m4)
(setq d-face-m5 'd-face-m5)
(setq d-face-m6 'd-face-m6)
(setq d-face-makefile-space 'd-face-makefile-space)
(setq d-face-el-d-stuff2 'd-face-el-d-stuff2)
(setq d-face-green-and-yellow 'd-face-green-and-yellow)
(setq default 'default)
(setq bold 'bold)
(setq fg:lightblue 'fg:lightblue)
(setq underline 'underline)
)

I have also removed all of the quote characters from my font lock file like so:

(defun d-font-lock-mode-hook ()

;; removes FONT from modeline:
;;(if (assq 'font-lock-mode minor-mode-alist)
;; (setcar (cdr (assq 'font-lock-mode minor-mode-alist)) " F"))

(d-flock-checkpoint "1")

;;; COOL: font-lock-string-face
(if (eq major-mode 'fundamental-mode)
(setq font-lock-string-face nil)
(set (make-local-variable 'font-lock-string-face) 'font-lock-string-face))

(setq font-lock-keywords-case-fold-search nil)

(d-flock-checkpoint "2")

(d-flock-checkpoint "3")

(when (and prefs-font-lisp++-p
(or (eq major-mode 'emacs-lisp-mode)
(eq major-mode 'text-mode)
(and (buffer-file-name)
(or (string-match "eraseme" (buffer-file-name))
(string-match "\\.\\(method\\|lisp[+][+]\\|temp\\)$" (buffer-file-name))
)
)))
(d-font-lock-add-begin
'(
("std::" 0 fg:lightred t)
("\\<jit-lock-stealth-fontify\\>" 0 d-face-cc-illegal-type nil)
("\\<jit-lock-refontify\\>" 0 d-face-cc-illegal-type nil)
("\\<font-lock-fontify-buffer\\>" 0 fg:lightred nil)
)))

)

instead of 'd-face-cc-illegal-type
and 'fg:lightred.

Could this be the reason for the bug?

I have added the following helper function to the above code:

(defun d-font-lock-add-begin (keywords)
(if (fboundp 'font-lock-add-keywords)
(font-lock-add-keywords nil keywords nil)
(setq font-lock-keywords
(append
keywords
font-lock-keywords))))

Emanuel Berg

unread,
Jun 19, 2016, 10:10:52 AM6/19/16
to help-gn...@gnu.org
Davin Pearson <davin....@gmail.com> writes:

> I posted this message on June 7 but got no
> useful response, so I am posting it again in
> the hope that one of you braniacs could help
> me with my code...

Well, what is it that you wish for that
isn't happening?

The code seems awfully complicated to just deal
with faces...

"Now I've seen places and faces
and things you ain't never thought about thinkin'..."
(Coolio 1997)

--
underground experts united .... http://user.it.uu.se/~embe8573
Emacs Gnus Blogomatic ......... http://user.it.uu.se/~embe8573/blogomatic
- so far: 52 Blogomatic articles -


Pascal J. Bourguignon

unread,
Jun 19, 2016, 1:11:57 PM6/19/16
to

I get different errors; perhaps you should correct them first?

(byte-compile-file "/tmp/faces.el")
t


Compiling file /tmp/faces.el at Sun Jun 19 19:09:59 2016
Entering directory `/tmp/'
faces.el:2:50:Warning: assignment to free variable `fg:lightred'
faces.el:3:50:Warning: assignment to free variable `d-face-cc-illegal-type'
faces.el:4:50:Warning: assignment to free variable `d-face-super-comment'
faces.el:5:50:Warning: assignment to free variable `d-face-cc-allegro'
faces.el:6:50:Warning: assignment to free variable `fg:white'
faces.el:7:50:Warning: assignment to free variable `bg:lightmagenta'
faces.el:8:50:Warning: assignment to free variable `d-face-cc-debugging'
faces.el:9:50:Warning: assignment to free variable `bg:lightgreen'
faces.el:10:50:Warning: assignment to free variable `d-face-property-inverse'
faces.el:12:50:Warning: assignment to free variable `fg:lightmagenta'
faces.el:13:50:Warning: assignment to free variable `fg:lightgreen'
faces.el:14:50:Warning: assignment to free variable `d-face-m4'
faces.el:15:50:Warning: assignment to free variable `d-face-m4-dnl'
faces.el:16:50:Warning: assignment to free variable `d-face-cc-digits'
faces.el:17:50:Warning: assignment to free variable `d-debug-face'
faces.el:18:50:Warning: assignment to free variable `d-checkpoint-face'
faces.el:19:50:Warning: assignment to free variable `d-face-el-quote'
faces.el:23:50:Warning: assignment to free variable `bg:yellow'
faces.el:24:50:Warning: assignment to free variable `d-face-cc-libd'
faces.el:25:50:Warning: assignment to free variable `d-face-cc-ctor-dtor'
faces.el:26:50:Warning: assignment to free variable `d-face-cc-clib'
faces.el:28:50:Warning: assignment to free variable `d-face-cc-global'
faces.el:30:50:Warning: assignment to free variable `d-face-red-and-white'
faces.el:31:50:Warning: assignment to free variable `d-face-green-and-black'
faces.el:32:50:Warning: assignment to free variable `d-face-el-d-stuff'
faces.el:34:50:Warning: assignment to free variable `d-face-cc-opengl'
faces.el:35:50:Warning: assignment to free variable
`d-face-makefile-dollar-dollar-highlight'
faces.el:36:50:Warning: assignment to free variable
`d-face-makefile-dollar-dollar'
faces.el:40:50:Warning: assignment to free variable `d-face-cc-private'
faces.el:42:50:Warning: assignment to free variable `d-face-property'
faces.el:49:50:Warning: assignment to free variable `fg:red'
faces.el:51:50:Warning: assignment to free variable `bg:lightred'
faces.el:53:50:Warning: assignment to free variable `d-face-path'
faces.el:54:50:Warning: assignment to free variable `d-face-red-and-yellow'
faces.el:55:50:Warning: assignment to free variable `dc-face-dired-web'
faces.el:56:50:Warning: assignment to free variable `dc-face-dired-text'
faces.el:57:50:Warning: assignment to free variable `dc-face-dired-executable'
faces.el:58:50:Warning: assignment to free variable `dc-face-dired-sounds'
faces.el:59:50:Warning: assignment to free variable `dc-face-dired-sources'
faces.el:60:50:Warning: assignment to free variable `dc-face-dired-archives'
faces.el:61:50:Warning: assignment to free variable `dc-face-dired-graphics'
faces.el:62:50:Warning: assignment to free variable `dc-face-dired-movies'
faces.el:63:50:Warning: assignment to free variable
`dc-face-dired-unimportant'
faces.el:65:50:Warning: assignment to free variable `d-face-m5'
faces.el:66:50:Warning: assignment to free variable `d-face-m6'
faces.el:67:50:Warning: assignment to free variable `d-face-makefile-space'
faces.el:68:50:Warning: assignment to free variable `d-face-el-d-stuff2'
faces.el:69:50:Warning: assignment to free variable `d-face-green-and-yellow'
faces.el:70:50:Warning: assignment to free variable `default'
faces.el:71:50:Warning: assignment to free variable `bold'
faces.el:72:50:Warning: assignment to free variable `fg:lightblue'
faces.el:73:50:Warning: assignment to free variable `underline'

In d-font-lock-mode-hook:
faces.el:97:14:Warning: reference to free variable `prefs-font-lisp++-p'

In end of data:
faces.el:114:1:Warning: the following functions are not known to be defined:
d-flock-checkpoint, d-font-lock-add-begin


--
__Pascal Bourguignon__ http://www.informatimago.com/
“The factory of the future will have only two employees, a man and a
dog. The man will be there to feed the dog. The dog will be there to
keep the man from touching the equipment.” -- Carl Bass CEO Autodesk

Stefan Monnier

unread,
Jun 19, 2016, 11:28:08 PM6/19/16
to help-gn...@gnu.org
> What is the reason for all of the "Invalid face reference: quote"
> error messages?

This means that somewhere in a buffer (more specifically in one of the
visible parts of one of your buffers), there is a `face' property whose
value is either `quote' or a list that contains `quote'.

Most likely you're in the second case and the better way to try and
track down the source of the problem might be to try and see what else
is in that list.

> I have added the following setq's to my font lock file.

I don't what what is a "font lock file".


Stefan


Davin Pearson

unread,
Jun 20, 2016, 12:17:11 AM6/20/16
to
On Monday, June 20, 2016 at 3:28:08 PM UTC+12, Stefan Monnier wrote:
> > What is the reason for all of the "Invalid face reference: quote"
> > error messages?
>
> This means that somewhere in a buffer (more specifically in one of the
> visible parts of one of your buffers), there is a `face' property whose
> value is either `quote' or a list that contains `quote'.

What is a property? Is it related to plists? I am unfamiliar with manipulating plists.

> Most likely you're in the second case and the better way to try and
> track down the source of the problem might be to try and see what else
> is in that list.
>
> > I have added the following setq's to my font lock file.
>
> I don't what what is a "font lock file".
>
>
> Stefan

My font lock file is an offshoot from .emacs which one day grew so unimaginably large that I had to split it into several files. My font lock file just deals with font lock matters. I have uploaded my file to my website so that one of you braniacs could help me to debug it. Here it is in all of its glory:

http://davinpearson.com/binaries/d-flock.el

Davin Pearson

unread,
Jun 20, 2016, 12:20:14 AM6/20/16
to
On Monday, June 20, 2016 at 5:11:57 AM UTC+12, Pascal J. Bourguignon wrote:
> I get different errors; perhaps you should correct them first?
>
> (byte-compile-file "/tmp/faces.el")

When I try byte-compile-file "~/dlisp/d-flock.el") I get no compiler errors.


Davin Pearson

unread,
Jun 20, 2016, 12:30:24 AM6/20/16
to
On Monday, June 20, 2016 at 2:10:52 AM UTC+12, Emanuel Berg wrote:
> Davin Pearson writes:
>
> > I posted this message on June 7 but got no
> > useful response, so I am posting it again in
> > the hope that one of you braniacs could help
> > me with my code...
>
> Well, what is it that you wish for that
> isn't happening?

Help with finding the bug in my code...

> The code seems awfully complicated to just deal
> with faces...

Adding to my font lock file (an offshoot of .emacs) has become something of an addictive thing for me. I have added various weird an wonderful customizations to my font lock file. My code looks like Las Vegas but I don't care! It's pretty to look at, and it is far superior to just plain text.

Davin Pearson

unread,
Jun 20, 2016, 12:41:47 AM6/20/16
to
Okay, here is my *Compile-Log* when I start Emacs with emacs -q I get the
following compiler errors...

Leaving directory `C:\'

Compiling file c:/home/dlisp/d-flock.el at Mon Jun 20 04:36:47 2016
Entering directory `c:/home/dlisp/'
d-flock.el:39:50:Warning: assignment to free variable `fg:lightred'
d-flock.el:40:50:Warning: assignment to free variable `d-face-cc-illegal-type'
d-flock.el:41:50:Warning: assignment to free variable `d-face-super-comment'
d-flock.el:42:50:Warning: assignment to free variable `d-face-cc-allegro'
d-flock.el:43:50:Warning: assignment to free variable `fg:white'
d-flock.el:44:50:Warning: assignment to free variable `bg:lightmagenta'
d-flock.el:45:50:Warning: assignment to free variable `d-face-cc-debugging'
d-flock.el:46:50:Warning: assignment to free variable `bg:lightgreen'
d-flock.el:47:50:Warning: assignment to free variable
`d-face-property-inverse'
d-flock.el:49:50:Warning: assignment to free variable `fg:lightmagenta'
d-flock.el:50:50:Warning: assignment to free variable `fg:lightgreen'
d-flock.el:51:50:Warning: assignment to free variable `d-face-m4'
d-flock.el:52:50:Warning: assignment to free variable `d-face-m4-dnl'
d-flock.el:53:50:Warning: assignment to free variable `d-face-cc-digits'
d-flock.el:54:50:Warning: assignment to free variable `d-debug-face'
d-flock.el:55:50:Warning: assignment to free variable `d-checkpoint-face'
d-flock.el:56:50:Warning: assignment to free variable `d-face-el-quote'
d-flock.el:60:50:Warning: assignment to free variable `bg:yellow'
d-flock.el:61:50:Warning: assignment to free variable `d-face-cc-libd'
d-flock.el:62:50:Warning: assignment to free variable `d-face-cc-ctor-dtor'
d-flock.el:63:50:Warning: assignment to free variable `d-face-cc-clib'
d-flock.el:65:50:Warning: assignment to free variable `d-face-cc-global'
d-flock.el:67:50:Warning: assignment to free variable `d-face-red-and-white'
d-flock.el:68:50:Warning: assignment to free variable `d-face-green-and-black'
d-flock.el:69:50:Warning: assignment to free variable `d-face-el-d-stuff'
d-flock.el:71:50:Warning: assignment to free variable `d-face-cc-opengl'
d-flock.el:72:50:Warning: assignment to free variable
`d-face-makefile-dollar-dollar-highlight'
d-flock.el:73:50:Warning: assignment to free variable
`d-face-makefile-dollar-dollar'
d-flock.el:77:50:Warning: assignment to free variable `d-face-cc-private'
d-flock.el:79:50:Warning: assignment to free variable `d-face-property'
d-flock.el:86:50:Warning: assignment to free variable `fg:red'
d-flock.el:88:50:Warning: assignment to free variable `bg:lightred'
d-flock.el:90:50:Warning: assignment to free variable `d-face-path'
d-flock.el:91:50:Warning: assignment to free variable `d-face-red-and-yellow'
d-flock.el:92:50:Warning: assignment to free variable `dc-face-dired-web'
d-flock.el:93:50:Warning: assignment to free variable `dc-face-dired-text'
d-flock.el:94:50:Warning: assignment to free variable
`dc-face-dired-executable'
d-flock.el:95:50:Warning: assignment to free variable `dc-face-dired-sounds'
d-flock.el:96:50:Warning: assignment to free variable `dc-face-dired-sources'
d-flock.el:97:50:Warning: assignment to free variable `dc-face-dired-archives'
d-flock.el:98:50:Warning: assignment to free variable `dc-face-dired-graphics'
d-flock.el:99:50:Warning: assignment to free variable `dc-face-dired-movies'
d-flock.el:100:50:Warning: assignment to free variable
`dc-face-dired-unimportant'
d-flock.el:102:50:Warning: assignment to free variable `d-face-m5'
d-flock.el:103:50:Warning: assignment to free variable `d-face-m6'
d-flock.el:104:50:Warning: assignment to free variable `d-face-makefile-space'
d-flock.el:105:50:Warning: assignment to free variable `d-face-el-d-stuff2'
d-flock.el:106:50:Warning: assignment to free variable
`d-face-green-and-yellow'
d-flock.el:107:50:Warning: assignment to free variable `default'
d-flock.el:108:50:Warning: assignment to free variable `bold'
d-flock.el:109:50:Warning: assignment to free variable `fg:lightblue'
d-flock.el:110:50:Warning: assignment to free variable `underline'
d-flock.el:113:1:Error: Cannot open load file: no such file or directory, d-flock-coding-preferences

Emanuel Berg

unread,
Jun 20, 2016, 12:41:54 AM6/20/16
to
Davin Pearson <davin....@gmail.com> writes:

> What is a property?

You can put point at a word which has a color
other than the default. Then eval

(thing-at-point 'word)

Bingo. You see the face turns up as one of the
properties of that piece of text.

> http://davinpearson.com/binaries/d-flock.el

That file is 1803 lines, so when I read

;;; d-flock.el ends here

I almost didn't believe it!

So the brainiac advice is - do more like the
brainiac - here is my Elisp with the number of
lines to the left.

292 navigate-fs-keys.el
212 ide/find-command.el
161 global-keys.el
153 gnus/group.el
137 isbn.el
133 gnus/article.el
125 gnus/message-my.el
114 dired-my.el
110 faces.el
109 wrap-search.el
109 buc.el
107 help-new.el
104 gnus/moggle.el
101 w3m/w3m-unisearch.el
98 xsel.el
92 scroll.el
92 caps-back.el
85 search-regexp-in-files.el
85 erc-my.el
85 buffer-menu.el
84 edit.el
74 gnus/summary.el
73 gnus/mail.el
71 my-bibtex.el
70 gnus/gnus-my.el
68 w3m/w3m-my.el
64 ide/compile-my.el
64 files-my.el
62 iterate-files.el
61 list-quoted-functions.el
60 times.el
58 w3m/w3m-keys.el
58 mode-line.el
55 w3m/bookmarks.el
54 error.el
52 kill-path.el
52 ide/ide.el
50 spell-new.el
50 sort-my.el
49 align-new.el
47 translate.el
42 get-search-string.el
42 fill-new.el
41 w3m/dl.el
41 time-my.el
41 shell-cli.el
40 todo-did.el
39 ide/elisp.el
37 window-new.el
36 man-my.el
35 latex.el
33 w3m/autologin.el
33 console-keys.el
32 help-font-lock.el
29 kill.el
29 ide/lisp-new.el
27 quit.el
27 gnus/server.el
26 misc.el
26 gnus/browse.el
24 ide/c-and-cpp.el
24 elpa.el
22 w3m/w3m-tabs.el
22 emacs-shell.el
20 print.el
19 gnus/send-spell.el
18 show-command.el
18 scale.el
18 mode-by-filename.el
17 match-data-format.el
16 super.el
16 revert-buffer-my.el
14 yank-my.el
14 close.el
13 vt.el
13 minor-modes.el
13 linux-shell.el
12 batch.el
11 tabs.el
11 gnus/mail-to-many.el
10 sudo-user-path.el
9 signal.el
8 keys.el
7 w3m/history.el
7 file-write-to.el
6 my-string.el

Dig?

Emanuel Berg

unread,
Jun 20, 2016, 12:47:07 AM6/20/16
to
Davin Pearson <davin....@gmail.com> writes:

>> Well, what is it that you wish for that
>> isn't happening?
>
> Help with finding the bug in my code...

What do you want to happen *with Emacs*?

> I have added various weird an wonderful
> customizations to my font lock file. My code
> looks like Las Vegas but I don't care!
> It's pretty to look at, and it is far
> superior to just plain text.

You don't have to write code like that to get
it to look like Las Vegas:

http://user.it.uu.se/~embe8573/figures/gnus/message-mode-colors.png

Davin Pearson

unread,
Jun 20, 2016, 12:58:27 AM6/20/16
to
On Monday, June 20, 2016 at 4:47:07 PM UTC+12, Emanuel Berg wrote:
> Davin Pearson writes:
> > I have added various weird an wonderful
> > customizations to my font lock file. My code
> > looks like Las Vegas but I don't care!
> > It's pretty to look at, and it is far
> > superior to just plain text.
>
> You don't have to write code like that to get
> it to look like Las Vegas:
>
> http://user.it.uu.se/~embe8573/figures/gnus/message-mode-colors.png

I like the look of it yes, but I prefer a white (or better still, semi white) background as that is easier to read than with a black screen. In my early days of using Emacs I had a black screen like yours.

My Emacs customizations total 45,000 lines of code. That puts me in second place behind Jamie Zawinski who has 50,000 lines of Elisp code.

Davin Pearson

unread,
Jun 20, 2016, 1:07:27 AM6/20/16
to
Check out my emacs screen-shot:

http://davin.50webs.com/emacs-screen-shot.png

and you will see why a semi white #f0f0f0 background colour is easier on the eyes for reading text.

Emanuel Berg

unread,
Jun 20, 2016, 5:51:05 AM6/20/16
to
Davin Pearson <davin....@gmail.com> writes:

> Check out my emacs screen-shot:
>
> http://davin.50webs.com/emacs-screen-shot.png
>
> and you will see why a semi white #f0f0f0
> background colour is easier on the eyes for
> reading text.

With a white-on-black theme less light enters
the eye so a smaller volume has to be decoded
into what is information before the decoding
of the actual information takes place. That is
why a white-on-black theme implies much less
eye stress. I see you are also a mouse user.
The mouse is even more than an "arm killer" an
"eye killer" as hands have to be moved from
typing position and the eye has to follow when
they are reset; also, with a GUI, the eye has
to "aim" every so slightly to hit icons and
such. Not using the mouse implies a fragment of
eye focusing, in absolute terms but also
considering the changes in level.

Emanuel Berg

unread,
Jun 20, 2016, 6:10:15 AM6/20/16
to
Davin Pearson <davin....@gmail.com> writes:

> My Emacs customizations total 45,000 lines of
> code. That puts me in second place behind
> Jamie Zawinski who has 50,000 lines of
> Elisp code.

Keep up writing code like that and you'll soon
beat every record :)

Now, I have 4 818 lines of Elisp. Here is all
my code stats - but it is from 2015 which is
why the Lisp digit is much smaller. You know:
the world makes one revolution in one year -
except for South America, where the figure is
much higher (Viva Zapata!)

http://user.it.uu.se/~embe8573/code.txt

Actually it is not a lot of code. But I like
the distribution. I also did Erlang, SML,
gnuplot, groff, and LaTeX/Biblatex which aren't
in the stats.

I also did C#, JavaScript, Python, VB, VBA,
TI-Basic, the Basic for the PS2, and Java, but
that is sort of like a well kept secret :)

I have ~half that much zsh (2676 lines) tho
I am impassionate about that, at least compared
to Lisp. I guess it just happened along
the way.

Loris Bennett

unread,
Jun 20, 2016, 9:29:00 AM6/20/16
to
Emanuel Berg <embe...@student.uu.se> writes:

> With a white-on-black theme less light enters
> the eye so a smaller volume has to be decoded
> into what is information before the decoding
> of the actual information takes place. That is
> why a white-on-black theme implies much less
> eye stress.

You can reduce the amount of light entering your eye even more by using
a very-dark-grey-on-black theme and wearing sunglasses. That should
really minimise your levels of eye stress.

Cheers,

Loris

--
This signature is currently under construction.

Dan Espen

unread,
Jun 20, 2016, 10:01:04 AM6/20/16
to
You may find this hard to believe, but NOPE.

Isn't it odd, people have different preferences.

As for your huge file, divide it in half, repeat...

--
Dan Espen

Emanuel Berg

unread,
Jun 20, 2016, 10:24:26 AM6/20/16
to
"Loris Bennett" <loris....@fu-berlin.de>
writes:

> You can reduce the amount of light entering
> your eye even more by using
> a very-dark-grey-on-black theme and wearing
> sunglasses. That should really minimise your
> levels of eye stress.

If you suffer from severe eye problems you can
wear sunglasses and use a projector with a big
text size. If you wear normal glasses, you can
use the 3D-glasses from the cinemas on top.
However if you do all this you should have very
*bright* text colors to contrast as sharply as
possible from both the background and the other
colors. It is not only about minimizing the
light, it is also about maximizing "seeing" as
opposed to reading. It is clear that only the
most dedicated people can suffer from such
a condition and still keep up programming every
day for several years... nothing for cowards
who hide behind irony and their monitors.

Loris Bennett

unread,
Jun 20, 2016, 10:53:21 AM6/20/16
to
Emanuel Berg <embe...@student.uu.se> writes:

> "Loris Bennett" <loris....@fu-berlin.de>
> writes:
>
>> You can reduce the amount of light entering
>> your eye even more by using
>> a very-dark-grey-on-black theme and wearing
>> sunglasses. That should really minimise your
>> levels of eye stress.
>
> If you suffer from severe eye problems you can
> wear sunglasses and use a projector with a big
> text size. If you wear normal glasses, you can
> use the 3D-glasses from the cinemas on top.
> However if you do all this you should have very
> *bright* text colors to contrast as sharply as
> possible from both the background and the other
> colors. It is not only about minimizing the
> light, it is also about maximizing "seeing" as
> opposed to reading. It is clear that only the
> most dedicated people can suffer from such
> a condition and still keep up programming every
> day for several years... nothing for cowards
> who hide behind irony and their monitors.

I sorry I seem to have offended you. I was merely trying to point out
in a light-hearted manner that minimising the amount of light entering
the eye, if really does reduce eye stress, cannot be the whole solution,
with which you seem to agree.

I have also had issues with eye strain and, from the information I was
able to find, decided that the evidence seems to favour dark-on-light as
being less stressful and that the brightness of the display should be
similar to the ambient brightness.

If you have any information to the benefits of light-on-dark (which I
have always felt looks way cooler - your dark version of angry fruit
salad being no exception) and brightness minimisation, I would be
interested to read it.

Emanuel Berg

unread,
Jun 20, 2016, 5:24:53 PM6/20/16
to
"Loris Bennett" <loris....@fu-berlin.de>
writes:

> If you have any information to the benefits
> of light-on-dark (which I have always felt
> looks way cooler - your dark version of angry
> fruit salad being no exception) and
> brightness minimisation, I would be
> interested to read it.

OK, I'll tell this story one more time and then
put it on my home page and never tell it again.
I thought about doing that anyway for years so
this seems like a good time finally doing it.
You know how people say, "if it can help even
a single person, it is worth it" - that always
sounds pathetic, but... yeah, I suppose it
is true!

For the impatient, before I tell the story, to
sum it up:

1. Bright on dark theme.

2. Big text size.

3. Bright (high contrast) text colors:
"see, don't read".

4. Heavy use of font lock/syntax highlight:
"see, don't read".

5. No visual noise (e.g., blinking cursor,
popups) - reduce visual information to
the essentials - civilized scrolling,
one line at a time is another example.

6. No mouse as it implies resetting eyes
and arms and "aiming" at GUI elements.

7. No reading huge parts of text.
When writing, keep eyes very relaxed. (I
don't really read what I write.
The typing provides small vibrations
which are pleasant. The eyes are just
there for the ride. It is like a walk in
the park.) For reading, printers and
books are useful.

8. Use of a projector. (This also gives
good posture.)

9. Master the software so it is all typing
and being active and no "looking" and
searching - thru endless menus only to
set some option, browsing documentation
not finding what you need - away with
all that. Speed kills! And in a pleasant
way...

To reduce eye pain when it happens:

1. Everything that brings physical
relaxation - sports, yoga - but not the
sauna as it dehydrates you (as does
alcohol, coffee, etc.) - "sports"
doesn't have to be advanced, try twelve
push-ups or the plank for one minute!

2. Tiger balm around the nostrils to
produce a tear reaction - pulling nose
hairs or riding a bike without blinking
can do this, too.

The story:

God willing, my eye problems are a thing of the
past. Back then, I thought I'd give up
computing altogether. Then I started to
configure everything from the software to the
physical setup to myself, mentally and
physically. The shell, Emacs, and Gnus made
configuration possible, pleasant, and not
extreamly difficult, so there was hope.

As for the physical setup I found huge,
available rooms at my university with
projectors. So I stopped having a computer at
home but instead went there every night, say
00.00-00.05. This isn't a lot of computer hours
compared to the typical programmer or computer
kid/bum. But do it with 100% discipline for 365
days a year half a decade, it it enough. So in
the days I read all the books and thought about
cool ideas which never happened because at
school in the nights I had hundreds of other
things to do!

This reduced the problem by say 75%, but it was
still so much pain only the iron will of
youthful enthusiasm would have any normal
person doing it for any stretch of time.

But several years later (!) I discovered the
reason for the eye pain was me being allergic to
shampoo! Since I did a lot of sports every day
I reproduced the problem not knowing it.
Ironically, the showering actually helped the
problem in the short run, because of the
relaxation. Not being i hippie, I didn't even
use a lot of shampoo! It was just insane.
None of the countless physicians I saw ever
thought about it until I myself found out by
intuition - it wasn't even an experiment, rather
one day I stopped using it not thinking about
it and in time the problems went away to some
95% at least.

Now, when I suddenly didn't have it, I was
surprised and impressed I didn't jump off
a cliff or something when it was at its worse!
To do CS at such a state is just mind-boggling
to me today. But from all the configuration and
problem solving I learned a lot. So it was
a blessing in disguise, tho it certainly didn't
feel like that for many years.

"HTH" :)

Emanuel Berg

unread,
Jun 20, 2016, 5:39:47 PM6/20/16
to
Emanuel Berg <embe...@student.uu.se> writes:

>> If you have any information to the benefits
>> of light-on-dark (which I have always felt
>> looks way cooler - your dark version of
>> angry fruit salad being no exception) and
>> brightness minimisation, I would be
>> interested to read it.
>
> OK, I'll tell this story one more time and
> then put it on my home page

OK, I put the article here. If you are
altruistic and have no problem bragging about
it, put this URL in your bookmarks and when you
here someone complain about eye problems and
computers, simply pass them the URL.

Getting the girls to stop using shampoo tho
might be unrealistic :)

http://user.it.uu.se/~embe8573/blogomatic/me/eye-problems-and-computers-and-what-to-do.html

--
underground experts united .... http://user.it.uu.se/~embe8573
Emacs Gnus Blogomatic ......... http://user.it.uu.se/~embe8573/blogomatic
- so far: 55 Blogomatic articles -

Davin Pearson

unread,
Jun 20, 2016, 5:51:59 PM6/20/16
to
On Monday, June 20, 2016 at 4:41:54 PM UTC+12, Emanuel Berg wrote:
> Davin Pearson writes:
>
> > What is a property?
>
> You can put point at a word which has a color
> other than the default. Then eval
>
> (thing-at-point 'word)
>
> Bingo. You see the face turns up as one of the
> properties of that piece of text.

Thank you for your help with debugging my code. I tried executing (thing-at-point 'word) many times until I found the bug. It turns out that the bug was not in d-flock.el at all, but rather in another file called d-speedbar, which is my improvement over the built in speedbar feature.

See http://davin.50webs.com/emacs-screen-shot.png for a picture of my d-speedbar in action. It uses windows rather than frames because windows are easier to manipulate using the keyboard than than frames.

The offending line was this:

(put-text-property (point-at-bol) (point-at-eol) 'face' 'default)

which should read as this:

(put-text-property (point-at-bol) (point-at-eol) 'face 'default)

Emanuel Berg

unread,
Jun 20, 2016, 6:14:30 PM6/20/16
to
Davin Pearson <davin....@gmail.com> writes:

>> Bingo. You see the face turns up as one of
>> the properties of that piece of text.
>
> Thank you for your help with debugging my
> code. I tried executing (thing-at-point
> 'word) many times until I found the bug.

Cool, no problem :)

> (put-text-property (point-at-bol)
> (point-at-eol) 'face' 'default)
>
> which should read as this:
>
> (put-text-property (point-at-bol)
> (point-at-eol) 'face 'default)

Wow, that bug was sure difficult to spot! I had
to stare at the code for some 30 seconds before
I saw it!


--
underground experts united .... http://user.it.uu.se/~embe8573
Emacs Gnus Blogomatic ......... http://user.it.uu.se/~embe8573/blogomatic
- so far: 55 Blogomatic articles -

Barry Margolin

unread,
Jun 20, 2016, 7:50:26 PM6/20/16
to
In article <86ziqft...@student.uu.se>,
Emanuel Berg <embe...@student.uu.se> wrote:

> Davin Pearson <davin....@gmail.com> writes:
>
> >> Bingo. You see the face turns up as one of
> >> the properties of that piece of text.
> >
> > Thank you for your help with debugging my
> > code. I tried executing (thing-at-point
> > 'word) many times until I found the bug.
>
> Cool, no problem :)
>
> > (put-text-property (point-at-bol)
> > (point-at-eol) 'face' 'default)
> >
> > which should read as this:
> >
> > (put-text-property (point-at-bol)
> > (point-at-eol) 'face 'default)
>
> Wow, that bug was sure difficult to spot! I had
> to stare at the code for some 30 seconds before
> I saw it!

If you frequently switch between Lisp and other languages, you probably
have to strain to get out of the mode of seeing single quotes as
surrounding delimiters rather than just a prefix.

The Lisp parser sees that as

(put-text-property (point-at-bol)
(point-at-eol) 'face ''default)

which explains the original error. ''default is short for '(quote
default).

--
Barry Margolin, bar...@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
0 new messages