For Sale: Symbolics MacIvory

Are you the only kid who learned about artificial intelligence in the 80s from the film WarGames? Probably not. Would you like to play a game, though? You still can. Pick up a piece of history here. Very very cool. Consciousness expanding when you realize that this dev tech was around in the 80s, long before it would appear in the mainstream.

key-combo and the Spread of Great Ideas

I love watching great ideas percolate through the file editor ecosystem. My cup of tea is Emacs, so I notice it most there, but it happens all over the place. For example EasyMotion appeared in VIM and jumped to Emacs AceJump and then to IntelliJ (and all its children). If you are an Emacs user then you also see it happen a lot between modes.
For example ESS has this nice feature of evaluating the current line or region and stepping forward. It probably sounds so simple to you that you would question its value. Oh yea, you know LISP, so you get it that simple is powerful. Obviously that idea will spread to every mode for every language, and here is how, eval-in-repl.
Today’s story-unfolding for me has to do with setting up your key bindings in order from least to most disruptive to your hands and arm position. Xah Lee gave me the idea. Here is how I do it. key-chord is what made it possible for me. It was so uplifting to start using it. My personal workflow was so improved and I didn’t think any more about how to make it better or how key-chord might serve other purposes. Then I read about key-combo.
It does what key-chord does. OK, that is great. It does a little more though. It cycles through through symbols, too. Why do I care? In ESS the function `ess-smart-S-assign’ helps you deal with assignments in R. At some point, both R and S used the underscore for assignment. The naming standards in R are OK with using underscores in names as separators, too. So what should happen when you hit underscore in ESS mode? When you hit underscore, it starts cycling through ‘<-' and '_'. It makes total sense and it is totally expected. That is nice. key-combo lets you easily do the same thing wherever you want. I want to cycle through umlaut-accented vowels. I want to cycle through escaped and non-escaped symbols in LaTeX mode (here is one way in org). I want to cycle through through the different equality functions in our favorite languages (=, eq?, eqv?, and equal?) using only the = key. So, I will.
This thing called EMACS is really a vehicle for fun. This thing called ALEC is really a vehicle for the expression of creativity. What a treat to be here to do so collaboratively with all of you fine human beings!

How to Type the OSX "Pretzel" Key in Unicode

Emacs tells you everything that you need to know about it using describe-char:

             position: 927 of 1056 (88%), column: 33
character: ⌘ (displayed as ⌘) (codepoint 8984, #o21430, #x2318)
preferred charset: unicode (Unicode (ISO10646))
code point in charset: 0x2318
script: symbol
syntax: . which means: punctuation
category: .:Base, j:Japanese
to input: type "C-x 8 RET HEX-CODEPOINT" or "C-x 8 RET NAME"
buffer code: #xE2 #x8C #x98
file code: #xE2 #x8C #x98 (encoded by coding system utf-8-unix)
display: by this font (glyph code)
mac-ct:-*-Lucida Grande-normal-normal-normal-*-17-*-*-*-p-0-iso10646-1 (#x3B4)
Character code properties: customize what to show
name: PLACE OF INTEREST SIGN
old-name: COMMAND KEY
general-category: So (Symbol, Other)
decomposition: (8984) ('⌘')
There are text properties here:
fontified t

	

EWS support for Emacs

I use Exchange at work for calendaring. I also use terminal-mode emacsclient when I’m logged in from another machine. In that scenario I can’t easily open a web browser to use Outlook Web Access. It annoyed me that I couldn’t check my schedule from within a terminal Emacs session. Thus, I did the only sensible thing and implemented full Exchange Web Services API support for Emacs.

Of course you did.

How to Correctly Enable Flycheck in Babel Source Blocks

If you already have Flycheck turned on then you already have it running your babel source block buffers, but, it isn’t working how you expect it. That buffer hasn’t got a file name. Flycheck can’t be smart about helping you out here. Via this post, the solution follows.

(defadvice org-edit-src-code (around set-buffer-file-name activate compile)
  (let ((file-name (buffer-file-name))) ;; (1)
    ad-do-it                            ;; (2)
    (setq buffer-file-name file-name))) ;; (3)

This is one of those things that if you had though about it for a few minutes, you would have turned it on yourself. It reveals how easy it is to return to the mode of “application user” from “application designer”, of Emacs. That is the source of most of my dumb “misses” regarding workflow optimizations in Emacs.