Installing Org 8.3

Org 8.3 is ready on Elpa so those of you installing it with the package manager can upgrade at your convenience. When I upgraded and reloaded Org I got the error message

Invalid function: org-babel-header-args-safe-fn

After some experimentation, I gave up and started trawling the Internet. It turns out that if you’re trying to use R in Babel, you need to byte recompile ob-R.el to make things work.

I’m not sure what the optimal procedure is but after discovering the problem when updating my iMac, I followed these steps on my MacBook

  • Updated as usual with the package manager
  • byte compiled ob-R.el by calling 【Meta+xbyte-compile-file <path to org>/ob-R.el
  • Restarted Emacs. Still got the error so I byte compiled ob-R.el again and
  • Restarted Emacs

The main thing is to do the byte compile. After that, you can enjoy the new and wonderful Org mode.

Posted in General | Tagged , | 1 Comment

CNN on Encryption Policy

The CNN Website has a deeply dishonest Op Ed by Mike Rogers on Encryption. Rogers is the former Congressman who served as the head of the Select Committee on Intelligence. You may remember him as the apologist for the NSA’s phone metadata collection program who claimed you have nothing to be concerned about because the metadata does not include your name, only your phone number, so the records can’t be tied back to you. Who knew about phone books?

That sort of dishonestly is already reason enough to disregard anything he has to say on the matter but even taken on its own terms, the Op Ed is disingenuous. He makes the reasonable observation that sometimes the public good outweighs a company’s desire to make a profit. For example, even though trafficking in child pornography or money laundering might be profitable, everyone agrees that it’s sound public policy to prohibit them. It’s the same, he says, with encryption. But, of course, that ignores the fact that encryption, unlike child pornography or money laundering, serves a useful public purpose as Mike McConnell, Michael Chertoff, and William Lynn—experienced government officials with intelligence backgrounds—explained in a recent Op Ed in the Washington Post. Note, also, the insulting and dishonest intimation that the only reason for resistance to the backdoors is a desire on the part of tech companies to profit at the public’s expense.

Of course, no piece like this would be complete without waving the terrorism banner. The Op Ed starts with a video of FBI director Comey testifying that we risk “going dark,” a perennial FBI talking point that is debunked every time it’s raised. The video is labeled “FBI: U.S. can’t crack secret terror messages from ISIS.” If only the tech companies would install backdoors, this couldn’t happen. Except, of course, it would. ISIS doesn’t care very much about U.S. laws and will simply use one of the many open source encryption programs available to communicate securely while the rest of us suffer from decreased security. It is, really, just another example of the dishonesty of the piece. It’s too bad CNN chose to publish such a flawed and deceitful Op Ed. We deserve better.

Posted in General | 0 Comments

Diff a Buffer with its On-Disk File

Ben Maughan over at Pragmatic Emacs has a handy tip that I didn’t know about. Sometimes it’s convenient to see the differences between the current buffer and the underlying on-disk file. Emacs, of course, has you covered. Just call ediff-current-file to get a diff between the buffer and the file.

It’s not hard to understand how this handy command escaped my notice; it’s not in the ediff menu. I don’t use the menu for operations, of course, but it’s a good way of discovering commands for a particular area. Even if you read the ediff menu, it’s easy to miss particular commands but the menu makes them stand out.

In any event, thanks to Maughan for pointing out this useful command. If you aren’t already following Pragmatic Emacs, you really should add it to your feed. It’s full of good material.

Posted in General | Tagged | 1 Comment

Finally. The Mysteries are Solved

Heh.

Posted in General | Tagged | 0 Comments

SBCL versus C++

Drmeister has an interesting mini-benchmark that compares Common Lisp to C++ and Python. The real purpose of the post is to compare the performance of CCLASP Common Lisp to C++. CCLASP is a new Common Lisp system that drmeister is developing to tie together C++ and Common Lisp. The good news for him is that CCLASP has improved from being hundreds of times slower than C++ to just 4 times slower. It will be interesting to see where this ends up when the CCLASP compiler matures a bit more.

What I found most interesting about the post, though, was that SBCL was also tested in the benchmark and it outperformed C++. It’s a small test—calculating the 78th Fibonacci number 10,000,000 times—so it is by no means comprehensive. Still, it shows that the ridiculous FUD you still hear being dispensed about Lisp being slow is not true (and hasn’t been for years). See the post for the details, including the compile options that were used.

If you’re interested in the CLASP project, drmeister has a nice explanation for why he started it and what he hopes to accomplish. Judging from these intermediate results, he’s well on his way to a first rate Common Lisp implementation.

Posted in General | Tagged , | 0 Comments

Org Mode 8.3!

As of my writing this, it hasn’t hit Elpa yet.

Posted in General | Tagged , | 0 Comments

Google and the Smoking Gun

Regular readers know that I’ve been critical of Google in the past. But their business model doesn’t mean that some state attorney general with an agenda gets to use the power of government to do the bidding of the MPAA and movie studios. Nonetheless, it appears that that’s exactly what’s happening.

Knowledgeable observers have long assumed that Mississippi Attorney General Jim Hood has been carrying water for the MPAA and studios by pursuing fraudulent legal action against Google. Indeed, a federal judge has already ruled that Hood acted in bad faith to deny Google its constitutional rights. Google responded by subpoenaing documents from the MPAA and studios. Despite frantic resistance from the studios, Google has found a smoking gun in the form of an email trail between Hood’s staff and the MPAA.

The email, which is marked confidential, details plans to enlist various media outlets—including the Today Show and the Wall Street Journal—to place pieces critical of Google. If that fails, the memo says that Hood can issue a CID (basically a subpoena) written by the MPAA.

One hopes that when Google’s finished they’ll own a large portion of the MPAA’s bank account and that Hood will be removed from office. That’s probably too much to hope for but the collusion between Hollywood vested interests and an Attorney General to deprive a company of their constitutional rights should not be allowed to stand.

Added before publication: In the meantime, Hood refuses to take the hint.

Posted in General | Tagged | 0 Comments

Turning Off Annoying Magit Prompts

As most of you know, I’m a big fan of Magit and have been using it for some time. One thing I didn’t like was that it asked for verification before staging all changed files (【S】 in magit-status) but being Emacs that was easily fixed. With the new Magit, that fix no longer works. We were warned that some of the variable names were changed so I thought, “No problem, I’ll just grep for the prompt string and see what the new magic incantation is.” Sadly, nothing was found. That’s because of the way prompts work in Magit 2.x; you have to add the prompt’s identifier to the magit-no-confirm list. For the stage all prompt, that identifier is stage-all-changes.1

I also noticed that Magit now wants me to confirm where I want to push my commits. There’s a long explanation of the reasons for this change in the doc string of the magit-push-always-verify variable. The TL;DR is that it’s an attempt to make everyone happy.

Here’s the code that configures Magit and eliminates both prompts:

1: (use-package magit
2:   :ensure t
3:   :bind ("C-x g" . magit-status)
4:   :config
5:   (add-to-list 'magit-no-confirm 'stage-all-changes)
6:   (setq magit-push-always-verify nil)
7:   (setq magit-last-seen-setup-instructions "2.1.0"))

The important part for eliminating the Stage all changes? prompt is on line 5. You have to execute that after Magit is loaded. To get rid of the push verify prompt, use line 6.

Footnotes:

1

The prompt is derived from the identifier by removing the dashes, capitalizing the first character, and appending a ‘?’.

Posted in General | Tagged , | 0 Comments

A Diff on Quitting Emacs

I used to know this and probably even blogged on it before but I’d forgotten about it and maybe you have too so it’s worthwhile repeating.

Posted in General | Tagged | 0 Comments

SBCL 1.2.14 Released

The latest version of Steel Bank Common Lisp is available at the usual place. You can check the NEWS page for the changes in this iteration.

When I first tried to download it from Sourceforge, it wasn’t available and Sourceforge offered me version 1.2.13 instead. This despite the fact that the link from sbcl.org was specifically for the new version. I tried later and everything was OK. I wouldn’t have thought much of it except for the recent contretemps involving Sourceforge.

As usual, it compiled without incident and this time when I ran the regression tests there were no failures so the OS X problem in the last couple of releases has been fixed.

I really love SBCL and if you are looking for a good Common Lisp development system, you should definitely check it out. I say that every month, of course, but it’s true nonetheless.

Posted in General | Tagged , | 0 Comments