The Chronicle

of a ColdFusion Expatriate

Getting Started With Emacs Lisp

August 7, 2016

As you certainly know by now, I was an outspoken and enthusiastic Vim user for about 15 years. During that time, I tried Emacs a couple of times, but it didn’t really stick until last year. One of the reasons Emacs makes me so happy is its Lisp-based extension language (Emacs Lisp, or just Elisp for short).

I do not have a formal background in computer science, so I never had the experience of being forced to do exercises in Scheme or Lisp; Elisp is the first (and only) Lisp I’ve ever learned. For that reason, I’m sure I went about it all wrong, but I think I know it pretty well now and I want to share with you some of the tricks and concepts I’ve learned so you can hopefully have an easier time than I did.

Introductory Lisp articles abound, so I will try to focus on the Emacs features and functions that make Elisp development unique.

What Is Good Software

August 6, 2016

I’m an opinionated software engineer. I have strongly held beliefs about what makes a program good or bad (as I imagine most programmers do) but as a Vim user for 15 years who changed camps to Emacs, I’m on the front lines of a turf war that shows no signs of calming.

@aaronbieber That doesn’t mean he was wrong :-) Both code bases are pretty horrendous if you look, I’m not sure either is good software. — Michael Ellerman (@michaelellerman)

I believe strongly that “good software” is that which is fit for its intended purpose, and that has both benevolent maintainership and a strong community. Because there is nuance of interpretation in these words, I decided to write more.

Fair warning: this post is long.

Org Navigation Revisited

July 31, 2016

In my previous post, Playing Tag in Org Mode, I talked about leveraging Org Mode’s powerful tag system to help you find the notes or references you’re looking for.

Since then, I’ve refined my use of tags and begun making better use of Org Mode’s custom ID abilities. In this post, I’ll share the new navigation code I’ve written and show you how you can use custom IDs to link or jump directly to a specific item in your notes.

Also, as a special treat, I will debut my latest Emacs package, Tiny Menu (available right now on MELPA).

Playing Tag in Org Mode

March 5, 2016

Once you have achieved Org Mode Nirvana (hopefully with the help of my previous post, Dig into Org Mode) and you have over 2,500 lines of Org notes and TODO lists as I do (I’m serious; see the screenshot below), you’ll want to seriously up your agenda game so that you can find stuff quickly.

One way to collate related information across Org files is by using tags. I’m not a tagging expert, but I’ll tell you what I know.

Advanced Window Management With Slate

January 31, 2016

I am mildly obsessed with window management. When I ran Linux full-time, I tried nearly every window management system I could find and ultimately fell in love with “tiling” window managers. I used Xmonad for more than a year and then switched to i3.

I have used a Mac at home for a long time and previously tried Slate and Spectacle for moving windows around quickly. When I was finally able to get a Mac at work I refocused my efforts into finding just the right solution.

I was quite happy with Spectacle until a colleague showed me that Slate now supports Javascript configuration, which makes it possible to do very sophisticated things. I used that facility to re-implement my favorite feature of Spectacle: the ability to cycle a window through three different sizes along one screen edge.

Here I’ll show you how it’s done. If you don’t desperately want to code up your own Slate system after reading this, I’ve done something terribly wrong.