A New Look for Xah’s Emacs Tutorial

Xah Lee has updated the look of his Emacs Tutorial pages. He’s organized the material into functional categories that make it a bit easier to find a specific page. Go on over and give it a look.

Posted in General | Tagged | 3 Comments

Emacs Redux

Bozhidar Batsov has started a new blog, Emacs Redux, that is dedicated to tips and techniques to make the Emacs experience more productive and enjoyable. So far, I like what I see.

One of the tips from the first day of the blog is how to mark variables and functions void. This is something I often want to do when I’m experimenting with some Elisp and want to get rid of it when I’m done so that it doesn’t take up space. (I know, I know, I’m OCD but remember that I come from the time when EMACS == Eventually Mallocs All of Core Storage still had traction.) You do that with makunbound and fmakunbound as Batsov explains here.

If you’re an Emacs user you should give this blog a look. I’m looking forward to reading future posts. As far as I can see, he doesn’t have RSS set up yet but I’m hoping that happens—I wouldn’t want to miss out on any tips.

Afterword: I was able to subscribe the blog to Reeder, my RSS reader, by just specifying http://emacsredux.com. Users of other RSS readers report having to add http://emacsredux.com/atom.xml to get it to work.

Posted in General | Tagged | Leave a comment

Sacha Chua Chats With Carsten Dominik

The tireless Sacha Chua is on a roll with another video chat about Emacs. This time it’s with Carsten Dominik, the creator of the essential Org mode. Org mode has become so important that many newcomers are taking up Emacs specifically to get it.

This is, by far, Chua’s most engaging chat so far. Dominik is a natural story teller and the two of them are clearly at ease and having a lot of fun. Dominik talks about his early start with MicroEmacs before he graduated to the real thing and how he’s always made little tweaks and add ons to Emacs even before Org. He gives a real sense of how Org mode grew organically, often surprising even him.

It turns out that Dominik follows Chua’s blog and he speaks highly of it and of Magnar Sveen’s Emacs Rocks! videos. He comes across as someone you’d love to spend a few hours with just chatting. I really recommend this video. It’s about 50 minutes so you’ll need to block out some time but I’m sure you’ll find it worthwhile.

Posted in General | Tagged | Leave a comment

The Wages of Sin

Well, not sin really. More like the consequences of ill considered decisions. As we all know by now, Google has decided to terminate their Google Reader service. On the face of it, the decision doesn’t appear particularly controversial. The service, while used by many, is by no means wildly popular and with the decline of RSS has become less so. Google has never found a way to monetize it so why keep spending resources on it?

The answer to that is found in the nature of the Google Reader constituency. By and large it is used (and loved) by nerds. That might seem like an even better reason to ax it except that on the Internet, it’s the nerds who are the influencers. They are the ones that the technically naive come to for advice on what hardware they should buy and what services they should sign up for. If you’re trying to make money on the Internet, you ignore them at your peril.

You’d think that Google, more than most, would understand this yet here they are not only ignoring the nerds but doing something they find deeply offensive. So what? Well, Google is launching a new service, Google Keep, that is obviously meant to compete with the popular Evernote. Suppose the nerds were to turn against the new service and advice people to avoid it. What arguments would they use? The answer writes itself doesn’t it? Depend on this service and sooner or later Google will retire it and all your notes will be lost. Would the technical community do that? Why yes. Yes, they would.

Maybe in the end it won’t matter but Google was first embraced by the nerds who served as evangelists to the laity. If the technical community does play a roll in causing the failure of Keep and future Google initiatives Google will have no one but themselves to blame and the nerds will enjoy a moment of schadenfreude.

For my part, I’ve upgraded my Evernote account to premium even though I don’t come close to exceeding the free account limits. I think of it as a way to help preserve my notes and to ensure that Google doesn’t crush Evernote.

Posted in General | Leave a comment

Meetings Are Mutexes

From Vivek Haldar, an absolutely wonderful characterization of meetings.

Posted in General | Leave a comment

What to Do About the Worst Law

Over at the New Yorker, Tim Wu writes about Fixing the Worst Law in Technology. That law is, of course, the Computer Fraud and Abuse Act. CFAA was the vehicle that federal prosecutors used to threaten Aaron Swartz with decades in prison and millions of dollars in fines for what, at the end of the day, was violating JSTOR’s terms of service. Those threats are widely believed to have precipitated Swartz’s suicide but far from being chastened, prosecutors are busy charging others with similar trivial violations carrying equally severe penalties.

None of this is news to the informed geek and certainly the Irreal readership is aware of the issues. What’s significant about the New Yorker article is that it’s in the New Yorker. The magazine is hardly a hotbed of technology news and not a place where one would expect to find a large contingent of geeks hanging out. It is, in short, as mainstream as a magazine can be. Thus, it’s significant that they are covering this issue and bringing it to the attention of people who might never have heard of it otherwise.

The article is sympathetic to the movement to get the CFAA changed and unlike many publications—mainstream and technical—gets the facts of the Swartz case correct. Still, Wu is pessimistic about Congress making any meaningful changes, Zoe Lofgren’s bill notwithstanding. He believes that the best hope for change is that President Obama will reform it administratively. Not that encouraging but at least the word is getting out beyond the technical community.

The article is well written and worth a read if only because it won’t tell you that Swartz “hacked” into some site and stole a bunch of papers. Go on over and take a look.

Posted in General | Leave a comment

Emacs Rocks! 14

At last! Magnar Sveen has just posted Episode 14 of Emacs Rocks!. This time it’s about paredit, an extremely useful but often confusing minor mode for dealing with S-expressions. Like Sveen, I also had a hard time getting used to paredit but once you figure it out you won’t want to live without it.

Sveen makes a helpful observation: paredit is not about adding and deleting text; it’s about manipulating the tree that constitutes a Lisp program. It tries to maintain a valid tree at all times. I found that the key to making things work—as detailed in the above linked post from my old blog—is understanding slurpage and barfage.

Sveen covers that as well as several other really useful tricks. As usual, the video is short (3 minutes 39 seconds) but packed incredibly densely with information. Get over there and watch it.

Posted in Programming | Tagged | 1 Comment

An Emacs Crash Course

Andrey Kotlarski has posted a very nice Emacs Guide on github. He says he wrote it for his coworkers after he got tired of being asked to give introductions to Emacs. It’s the perfect guide for someone who wants to get a feeling for Emacs, its capabilities, and how it works.

The guide is divided into 8 sections:

  1. Introduction
  2. Practical essentials
  3. General tips and tricks
  4. Programming tips and tricks
  5. Documentation
  6. Random
  7. Emacs for black belts
  8. Where to go next?

Even if you’re an experienced Emacs user, the guide is worth a read; you may learn something you didn’t know. For example, you can get information on “interesting” files in a directory under version control with 【Ctrl+x v ddirectory-name. The guide also points out some useful packages such as undo-tree and wgrep.

Additionally, the guide covers Org mode. It is, itself, written in Org mode and exported to HTML. The finished product is a nice illustration of how good an exported Org document can look. You can see how it was formatted by looking at its Org mode source. Definitely worth a read and handy to have around for those times when you have an opportunity to evangelize.

Posted in General | Tagged | 1 Comment

Hashing Passwords: An Object Lesson

Irreal regulars know that I periodically go off an a rant about the proper hashing of passwords and the dire consequences of failing to do it correctly. Not even I, however, could have imagined that Cisco would get it wrong. And not just a little wrong but massively and totally wrong.

In fairness, I should say up front that Cisco has acknowledged the problem and issued a bulletin on how to detect if a given piece of equipment is affected and how to deal with the problem if so. Also, Cisco is saying that the problem is an implementation, not a design issue.

With the Cisco IOS 15 codebase, a new type of password—Password Type 4—was introduced. Apparently, the design called for this to be a SHA256-based PBKDF2 hash with an 80-bit salt and 1000 iterations. The idea was to replace the weaker Password Type 5, which is an MD5-based hash that was salted and repeated 1000 times. That makes sense but unfortunately the implementation merely hashed the unsalted password with SHA256 one time. The result is a password that is easily broken as demonstrated by Philipp Schmidt and Jens Steube.

It’s hard to understand how this sort of thing could get by QA. Any time you change a cryptographic primitive it is, or should be, a big deal that requires careful scrutiny and testing. If, indeed, the design called for PBKDF2 hashing, it’s hard to see why the developer would use a single pass of SHA256 instead and how that error could get by any serious code review. If the design didn’t call for PBKDF2, it’s equally hard to understand why any developer with even a modicum of security awareness would not raise an alarm. This is not new stuff. The ideas have been around for a long time. Even the original Unix DES-based password hash from the 70s used multiple iterations and a salt.

The lesson is clear. Unless you, too, want to be the object of near universal derision (and probably fired) use one of the accepted methods for safely storing passwords. Don’t just encrypt them, don’t just run them through a single pass of some hash, and for goodness sake don’t store them in plain text.

Posted in General | Tagged | Leave a comment

A Talk on Lisp Machines

Over at LoperOS they’ve put up a video of a talk that Kalman Reti gave last year at the Boston Lisp Meeting. The talk is about the Symbolics Lisp Machines and includes a demo of the original software running in an emulator on a modern laptop. Reti was a developer at Symbolics and is very familiar with the machines and their history.

As the talk makes clear, it’s incredible how advanced those machines were for their time. In the 1980s they had several features that we consider standard today but that existed virtually nowhere else at the time. The systems came with bitmapped displays, a three button mouse, compilers for several languages, a windowing system, and an advanced file system.

I found the history very interesting but the real treat was the demonstrations. If you forget about the monochromatic display and old style window decorations you might think you were watching a modern demonstration of some advanced Emacs debugging session. If, after watching the video, you’d like to try the emulator yourself, there’s some information about it on the CLiki, including information on how to get the software and set up the emulator.

The talk is about an hour and a quarter so you’ll need to block out some time but I found it well worth the investment.

Posted in General | Tagged | Leave a comment