Commit graph

5 commits

Author SHA1 Message Date
William Carroll
ba1034a9c8 Begin the Emacs email journey
While this commit isn't much (i.e. notmuch), it represents one brave step
forward in the quest for supporting email in Emacs -- something I'm estimating
to be somewhere between a 1.5x and 2x workflow booster.
2020-01-06 15:25:25 +00:00
William Carroll
67f060d6f9 Temporarily disable flycheck
TL;DR:
Problem: I ran into a bug where my computer wallpaper was changing every five
seconds whenever my init.el file was open and I was typing in it.

Short-term solution: Disable flycheck.

Long-term solution: Disable flycheck just for Elisp or just for init.el in
Elisp.

Post Mortem:
Warning: If you have flycheck-emacs-lisp-initialize-packages set to auto or
really anything other than nil, than the emacs-lisp flycheck-checker will spin
up a new Emacs instance, and evaluate all of the Elisp in init.el.

Why does this matter? Well, if like me, you have code anywhere in your
init.el (and any files downstream from init.el), that code will get evaluated
not just twice. But countless times... tens, hundreds, w/e. So... while you
might think you have code that is just running at startup this code will be
called incessantly.

As a dramatic, contrived example, if you had something like...

```elisp
(bank/send :amount 100 :to "wpcarro@gmail.com")
```

...anywhere in that your init.el would evaluate, you may end up sending
wpcarro@gmail.com millions of dollars. To make debugging this problem a bit more
complicated is that because this runs in a separate Emacs instance, you can't do
something like...

```elisp
(defvar already-evaluated? nil)
(unless already-evaluated? (bank/send :amount 100 :to "wpcarro@gmail.com"))
(setq already-evaluated? t)
```

...since the `already-evaluated?` variable will be local to the Emacs
instance. So if you needed a mechanism to ensure code like this runs only once,
you would need a way to share this semaphore across Emacs instances --
e.g. writing to and reading from disk.
2020-01-06 15:25:25 +00:00
William Carroll
6cf8517cab Combine google-{stuff,tooling}
Google-related files should eventually be moved out of GitHub hosting and onto
Google infrastructure (e.g. Git on Borg).

When I do this, I should run:

```fish
> git grep --ignore-case google (git rev-list --all)
```

To assess the reference I've introduced into this repository.

Other tools that should come in handy when I do this are:
- git filter-branch
- BFG repo-cleaner
2019-12-24 15:21:34 +00:00
William Carroll
7adb776927 Support Prolog
Register the .pl file extension with `prolog-mode'. This is useful because I'm
reading the "Learn Prolog Now!" book at the moment.
2019-12-24 15:21:34 +00:00
William Carroll
6b456c1b7a Massive configuration overhaul
Currently paying the price of months of non-diligent git usage.

Here's what has changed.

- Theming support in Gvcci and wpgtk
- Dropping support for i3
- Supporting EXWM
- Many Elisp modules
- Collapsed redundant directories in ./configs
2019-12-24 15:21:34 +00:00