I’ve used Emacs in some form since 1989. And GNU-Emacs every day, all the time for the last 15 years. I’ve done extensive Java, C, Python, ActionScript and Shell development inside Emacs, as well as a bunch of other languages.
The last couple of years I’ve started to look at ELisp as a practical language (since it had closures basically) in which I might one day do all my work.
I work for an as yet unnamed Bank as a Technical Architect. I think Technical Architect is a stupid job. Really what I do is help people understand how to get software live.
I’ve started the EmacsBites, a series of screencasts about programming in Emacs and EmacsLisp. I would like to help more people learn Emacs as a second language so they can build tools for themselves. I am struggling to keep this going.
I am the author and maintainer of Elnode, the Emacs Async Webserver; more information about that in this page.
Check out my blog which has lots of stuff about Emacs.
I live in Emacs. Like most people who do that I do a few interesting things. It’s hard to remember to write them down here. I try to.
I store lots of customizations in my
‘custom-file’ like this:
(load-file (setq custom-file (concat (file-name-directory (or (buffer-file-name) load-file-name)) "nic-custom.el.gpg")))
this means that Emacs asks me the password for the file when I start Emacs. The password is then cached and I can use it for all sorts of secure stuff. As long as I have a decent screen lock I should be very secure.
‘epa-file-cache-passphrase-for-symmetric-encryption’ used to be enough for this to work. Sadly it doesn’t anymore, at least on Ubuntu.
You now need to use package:
‘gnupg-agent’. Here’s my Emacs start script:
#!/bin/bash eval $(gpg-agent --daemon) $(dirname $0)/emacs-24-3/bin/emacs # End
When I want to start Emacs in Ubuntu I use
‘ALT-F2’ and that script.
I run a laptop at home with ShoesOff running all the time.
I have a NAT forwarded port on my home router to the bouncer port on the laptop so I can connect to ShoesOff even when I am not at home.
My home connection is reliable enough that this is rarely a problem.
Changing font size is a pain so I wrote FrameSize, it’s now a major part of my workflow.
I’ve read my Email in Emacs since 1999 and I have always used my own email client which has changed over time as email has changed.
Right now I use an IMAP free solution but am considering switching to an IMAP fetch solution.
My current MUA is Emacs Maildir
I mostly always build Emacs from source (though I think the emacs-snapshot packages are great) so I use this page to track what I need to do.
Here is how to get a git clone of Emacs these days:
git clone --depth 1 git://github.com/emacsmirror/emacs -b emacs-24
You can also clone these tags:
... or node.js for Emacs
Elnode is an asynchronous TCP server handling HTTP.
Elnode is in the marmalade repository
As of now Elnode is functional. I am starting to write things with it:
Other stuff I am considering:
I do some remote pair programming inside screen. I would like to use emacs. Standard colors are too difficult for me to read (my eyes are going!).
vim has the very nice:
which turns up the brightness on dark font faces. According to #emacs we have no equivalent.
So I wrote one:
(defvar dark-background nil) (defun toggle-dark-background () (interactive) (let ((difficult-colors '("red" "blue" "medium blue"))) (mapc (lambda (face) (and (member (face-attribute face :foreground) difficult-colors) (set-face-bold-p face (not dark-background)))) (face-list))) (setq dark-background (not dark-background)))
This toggles bold on the dark ones, which I think is all the vim thing is doing.
Everyone needs a project occur. I have a good one for elisp inside Elpakit but I do a lot of webapp programming that isn’t Elisp exclusive so I need a more general one.
This page details my latest attempt at this.
This page describes how I do my config which is somewhat interesting for a wierd section of the population who are obsessed with it.
The idea is to:
This gist shows my self installing Emacs config except for the customizations. The customizations are insecure because they contain passwords and such, hence the need for encrypted packages.
Solving the problem of what is machine specific and what is not is hard.
The image above is my Gravatar. It’s a useful service that ties an email address to an image, so if someone gives you an email you can maybe find a picture of them.
You need to hash the email to generate the url though, here’s how in EmacsLisp:
(print (md5 (downcase "firstname.lastname@example.org")) (current-buffer))
I’ve done quite a few other packages for Emacs, most are on github but check these out:
And some other stuff I haven’t packaged and probably never will:
I used to maintain a mercurial copy of the emacs bzr repo at bitbucket.
I no longer maintain that, people weren’t interested.