TMux: My Starting Guide
While I seldom leave Emacs, I do dabble on the shell from time to
time, and many colleagues ask about my terminal usage with
so I present my very-opinionated Getting Started Guide to TMux.
Literate Devops: With Databases!
I swore I wouldn’t put any more examples of my literate devops
idea, but when I habitually used
org-mode during a recent
exploration of MySQL database instance, followed by emailing the
results to my teammates, I thought I would share. Read more…
Folder Actions for Emacs
On the Macintosh, the Finder can trigger a script due to any change
of a file in a directory (Apple calls these Folder Actions). I was
tempted to try and learn enough of this so I could
rsync all local
file changes to a system in the lab….
Seemed easier for me to just modify Emacs.
Little Emacs Spreadsheets
I’ve discovered the ultimate in Yak Shaving: Gnu Shaving!
Since I keep everything as org-mode formatted text files, I tried an experiment to directly convert the spreadsheet-like tables in my “tax notes” into a PDF mail for my accountant.
Yours in Emacs
After reading the Wired article, Why We Should Design Some Things to Be Difficult to Use, I finally realize that Emacs should be hard to use, and we really should just give up changing it to be easier for new-comers.
This quote sums up my 20 year experience with Emacs:
[Fujifilm took] the controls out of deep menu functions and putting them back on chrome knobs that just beg to be twiddled.
I bought a Fujifilm X100 two years ago. It was the first piece of technology I’d bought in 15 years where I had to read the manual. Actually, I’ve read the manual at least four times. Now I’m taking the best pictures of my life, and I love it. By being hard to use, my X100 made me a better photographer.
Seems like Emacs users are now in some elite club where the hazing ritual amounts to learning Lisp. Consequently, I’ve decided to start signing all my Emacs-related correspondence with:
Yours in Emacs,
Maintaining servers falls into two phases: First, bang head until server works; second, capture effort into some automation tool like Puppet or Chef. Recently, I’ve been playing around with making the first phase closer to the second. For lack of a better word, I’m calling it literate devops. Read more…
Update 1: I finally got around to troubleshooting using Tramp references to execute code blocks on remote servers (even those behind firewards).
Update 2: Need another complete example? Check out my notes onsetting up IP Tables (and this org-mode file), where part of the file can be executed in the editor in order to see how my machines are configured, and the other part is a script that can be tangled to a machine and executed to reset to the firewall rules.
Key Sequences in Emacs
In Emacs, a key sequence is special key binding that uses multiple keys in a series. Since they require more effort to type, a sequence is chosen for functions that interrupt the normal editing flow.
Let’s explore some code associated with key sequences as well as write a macro to help make these more palatable.
The Tao of Emacs
I’m not saying the Emacs Way is objectively better, but you may find your work-style improved if you incorporate this way in your workflow. Let me demonstrate the way with a few examples.
Emacs is my Window Manager
I have played with a lot of window managers, and while many claim to
be unobtrusive and minimal, I really just want Emacs in full-screen
mode. So, I create an
.xinitrc file that contains only:
That’s right, folks, Emacs is my window manager.
Squashing Commits with Magit
Manipulating the commit history in Emacs isn’t as straight-forward as other Magit processes, so I thought I would share my notes.
Saw this video with Woz, where he describes how he wanted every trace on the original Apple board to be placed where the chips would be in the best position. He then said:
It had to be that artistically perfect to me, because it represents yourself when you do a great design.
Yeah, we can relate.
Computer Languages Suck
I like to publish only positive essays on my blog, and I’ve been conflicted about publishing my perspective on perching on Paul Graham’s shoulders to extend his essay on the Hundred-Year Language. So keep in mind that any snarkiness is my inept attempt at humor.
After many years of teaching Scratch at my local elementary school, I decided to start teaching an after-school session at my local Middle School. With diverse interests and abilities (not to mention, I’m considerably more busy during my day job), I thought I would try a new approach: nothing.
Journaling with org-mode
After all the fun I had this summer at the Open Source Bridge giving my talks on both Lisp/Clojure and Emacs, I figured that I would upload them to YouTube:
Eschewing Zshell for Emacs
Squashing Git Commits for Gerrit
Now that my company is starting to use Gerrit, I decided to resurrect some old essays on Git usage.
Good Git practice encourages developers to create a history of useful commits. This essay is a ‘recipe’ for squashing multiple… uh… less than helpful commits into a single commit using the Git’s interactive rebase command.
This is a good technique if you start to use the Gerrit Review system.
As a professional software engineer, I’m stunned that put up with an editor that insists that you bind your fingers to someone else’s accepted practice.
Clustered Random Numbers for Art
Using functional programming techniques and the standard functions from Underscore to generate random numbers that favor particular numbers. Useful for picking colors.
Getting Started with Emacs
Just learning? Well, this ancient editor can be modernized for someone without much memory already embedded in their fingertips.
A/B Testing at jQuery Summit
You’re viewing the results.
Everything should be simple, open, and easy. Oh, and did I mention that I’m publishing directly from Emacs. Yeah, that is how old men do.
My original blog was originally written in Markdown. Once easy to
org-mode is much better. To convert or not convert them
all? I’ve done these, but most of my original essays will continue
to date themselves.