The Emacs C-x 4 Bindings

Marcin Borkowski (mbork) has a very nice review of the【Ctrl+x 4】key bindings. Most of us learned—or at least read about—those when we started with Emacs but probably forgot about them because they were too esoteric for us then. That’s where his post is useful: it’s an excellent reminder of those key bindings and the functionality they provide.

For example, did you know, or remember, that 【Ctrl+x 4 c】 provides a clone of the current buffer in another window? Or even that 【Ctrl+x 4 f】 opens a new file in the other window? There are others as well so unless you’re up to speed with the 【Ctrl+x 4】 key bindings, head on over to mbork’s post and take a look.

UPDATE: Borkowski’s server appears to be having problems. Neither the above link nor those of previous posts about him are working.

UPDATE 2: MaikuMori comments that you can see the post here.

UPDATE 3: Looks like Borkowski’s site is back up.

Posted in General | Tagged | 5 Comments

Magit 2.1.0 Summary

Over at LWN.net, Nathan Willis has a nice summary of the Magit 2.1.0 features. Obviously he doesn’t cover all the features or even all the new features but it’s worth reading for getting an idea what’s in the latest release.

If you haven’t yet tried Magit, give Willis’ post a read and load Magit from Melpa. In the unlikely event that you don’t like it all you have to do is unload it. You won’t have to do any configuration to try it out so you can load it for a trial very easily and cheaply.

Posted in General | Tagged , | 2 Comments

Basic Org Tutorial

Over at the Worg site, David O’Toole has a nice tutorial on the basics of Org mode. It covers only the outlining and TODO features but there’s still some meat there for the more experienced Org user. For example, I learned about the org-log-done variable and the log display from the agenda. Take a look at O’Toole’s tutorial for the details.

If you’ve been following my adventures in setting up a personal information manager around Org and wanted to get in on the fun but don’t really know Org, this tutorial will give you enough information to get you going. Definitely worth a read.

Posted in General | Tagged , | Leave a comment

Seven Emacs Settings

Timothy Pratley lists Seven specialty Emacs settings with big payoffs. These suggestions are “special” in that they aren’t basic settings that every new Emacs user gets around to implementing. Not everyone will want to use all of them. For example, he has a bit of Elisp that saves all the buffers when Emacs loses focus. Pratley explains his use case for this but it’s still not something I’d want.

Others, such as setting chords to run commands are very attractive to me and, in fact, is something I do. You may find some ideas that work for you so it’s definitely worthwhile reading his post.

Posted in General | Tagged | 2 Comments

If You’ve Got Nothing to Hide…

…you’ve got nothing to fear.

For those of you who are as sick as I am of hearing that bit of tendentious nonsense floated by those who want to stick their noses into every aspect of your affairs, Jacques Mattheij has a nice summary post on the past, present, and future of if you’ve got nothing to hide, you’ve got nothing to fear.

Even a moment’s thought exposes it for the absurdity it is. As Mattheij points out, privacy is not the same thing as secrecy. Cory Doctorow notes that what goes on in the toilet is not secret but it sure is private. But Mattheij goes well beyond that obvious fact.

He revisits the example of the Amsterdam Census collecting information about residents’ religion for completely benign reasons and then having it used by the Nazis to hunt down and kill Jews during WWII. Closer to home, we have the example of a huge number (at latest count 21.5 million—7%) of Americans’ most private information being lost by the Office of Personnel Management. Again, data collected for benign reasons end up being used in harmful ways.

It’s time to stop being polite about this. The next time someone tells you you have nothing to fear as long as you’re innocent, laugh in their face and walk away. Nothing else they have to say is likely to be worth listening to either. If that reaction is too strong for you, point them to Mattheij’s post and tell them to come back after they’ve read it.

Posted in General | Tagged | 1 Comment

NSA Bulk Metadata Collection Resumes

This is why you must always resist government overtures to impose surveillance programs: You can never get rid of them. Despite expiration of the enabling legislation, the clear fourth amendment issues, and the lack of any productive results, the FISA court ruled that the NSA could resume collecting it.

The ruling is meant as a stopgap to cover the period before the new law—where the metadata is held by the carriers and requires a warrant to access—takes effect but nonetheless has no statutory authorization. The ruling could be appealed, I suppose, but the issue will be moot before it ever gets heard. Once a surveillance program is in place, the government will resist any efforts to end it. They’ll trot out the usual four horsemen and scare tactics to convince Congress and the citizenry that it’s absolutely necessary and that disaster will result without it.

Posted in General | Tagged | Leave a comment

New Hydra Functionality

I haven’t written about abo-abo’s excellent hydra package for a while but he’s continued to make significant enhancements to it. The latest is the ability to temporarily suspend a hydra and even push it onto a stack while you invoke another.

The nifty thing about the upgrade is that you don’t have to do anything to your hydra definitions. All you need do is bind your desired key sequence to hydra-pause-resume and the functionality is enabled.

Posted in General | Tagged , | 1 Comment

A Wonderful Piece of Unix History

Unix is widely extolled as the first portable operating system but many don’t know how that came about. By the time of Version 6, Unix had been licensed to many universities but it still ran only on the PDP-11 family of computers. Juris Reinfelds tells the story of how the University of Wollongong made the first port of Unix to a non-PDP system.

It’s an interesting story. The small Computer Science section—it was part of the Mathematics Department then—needed a time share system for hands on computing by students and staff. Reinfelds visited Murray Allen and John Lions1 of the University of New South Wales to discuss possible systems. He early on decided that a Unix system would be ideal but the CS section didn’t have enough money for a PDP-11 so they bought an Interdata 7/32 instead.

The Interdata didn’t run Unix, of course, so the plans for a Unix system were put on hold. Around that time, Richard Miller joined the department and was looking for a programming challenge. Reinfelds and Miller decided that porting Unix would be just the thing so Miller started work on the first Unix port. He started by recoding the C compiler’s code generator to output Interdata assembler code. That was difficult because the University of Wollongong had no PDP-11 and the University of New South Wales had no Interdata. A further complication was that there were funds for at most three trips to UNSW.

I’ll let you read Reinfelds’ story (it’s short) to see how it all worked out. It’s a tribute to Miller and Unix that a port was possible at all let alone so easily. Definitely worth reading.

Footnotes:

1

Of Lions Book fame.

Posted in General | Tagged | Leave a comment

Marking Up Quoted Org Strings

Artur Malabarba has a nice tip on how to markup strings in Org mode that begin with " or '. I should have implemented it for this post.

Posted in General | Tagged , | Leave a comment

Elisp/Emacs Examples

Caio Rordrigues has an excellent resource for beginning/intermediate Elisp programmers that also lists some of the common Emacs customizations that many Emacs users end up making. For example, it tells you how to turn off requiring a “yes” or “no” response to certain prompts and enabling a simple ‘y’ or ‘n’ instead.

The real meat, though, is the list of Elisp examples. You can think of it as an Elisp cookbook. It covers things like filtering lists, reading or writing from/to strings, splitting strings, mapping, structures, the loop macro, working with buffers and files, and a host of other useful examples. It’s fun just to read through it and when you do, you’re likely to learn a few things you didn’t know.

This is a really useful resource, especially for learning Elisp idioms and what sort of functions are available. As I’ve written before, the basics of Lisp programming are easy; it’s learning the library that’s hard. That’s especially true of Elisp, which has many specialized functions for editing text. Sometimes you know what you want to do but it’s not clear what terms you should search for to tell you how to implement it. Rordrigues’ examples covers most types of actions and will at least get you to the right set of functions. Even new Emacs users will find the section on customizations helpful.

Posted in General | Tagged , | Leave a comment