Bastien tweets to let us know there’s a new Org out:
#emacs #orgmode 9.1.4 is out. Enjoy!
— Bastien Guerry (@bzg2) December 5, 2017
It’s not in Melpa as of but will doubtless appear in the next build.
Bastien tweets to let us know there’s a new Org out:
#emacs #orgmode 9.1.4 is out. Enjoy!
— Bastien Guerry (@bzg2) December 5, 2017
It’s not in Melpa as of but will doubtless appear in the next build.
Annnnd we’re back. Occasionally a package update is broken and aborts the Emacs boot process. Normally I just disable the offending package for a day and keep on trucking. However, when use-package breaks, you’re pretty much restricted to an Emacs -q environment. At least you are if, like me, use-package controls the loading of all your other packages. It’s not all that hard to clone the use-package repository and check out a working version but in this case I opted to just wait for MELPA because I knew the problem had already been fixed. It takes a long time to do a MELPA build, though, so I had to wait.
Today’s post is about AUCTeX. A new version has just been released.
We've just released version 11.92 of the #GNU #AUCTeX plugin for #Emacs. Happy TeXing! https://t.co/6DuHH0ErMG pic.twitter.com/7BMmE1q0AK
— Mosè Giordano (@MoseGiordano) December 3, 2017
It’s not yet in ELPA but will probably appear shortly.
I generally use Org mode to generate my \(\LaTeX\) but sometimes you need fine control and for those cases it’s often easier to just use AUCTeX. If you’re doing heavy duty technical writing, you should probably be using AUCTeX. Besides, they have a new version out.
Update : ACUTeX → AUCTeX.
My Emacs is temporarily broken because of a Melpa/use-package problem. It looks like the problem will be resolved when the current Melpa build cycle completes and if so, I will deliver today’s wisdom then.
Good news from Eli Zaretskii: Emacs 26 is almost ready. In the last paragraph of this message on the Emacs Development list, Zaretskii says,
Emacs 26 is nearing its release; the stream of serious bugs (or any bugs, actually) seems to have died out. So hopefully one more pretest, and we will be ready to go.
This is one more piece of evidence that Emacs is under active and continuing development and puts the lie to the, sadly, often heard claim that Emacs is moribund old technology that is dying. John, Eli, and the others are working hard to make sure the claim remains nonsense.
I don’t have anything else interesting to say today so let’s take a look at Mike Zamansky’s post on the Advent of Code 2017 Day 1 problem. Zamansky has a nice discussion of solving this with Python and the steps you might go through to arrive at a clean solution. You should read his post to see the problem statement. When I saw the problem, the first thing I thought of was using one of the Lisp mapping functions to step through the digits. Here’s my solution in Emacs Lisp:
(defun cksum (captcha) (interactive) ;for interactive testing (let ((checksum 0) (digits (mapcar (lambda (a) (- a 48)) captcha))) (cl-mapc (lambda (a b) (when (= a b) (cl-incf checksum a))) digits (-rotate -1 digits)) checksum)) (cksum "234445662") → 16
The first thing you notice is that it’s really a Common Lisp solution because it makes use of cl-mapc and cl-incf. You could do without the cl-incf but the Elisp mapc operates on only one sequence. You’ll also need Magnar Sveen’s Dash library but if you have any packages at all installed, it’s probably already been pulled in; otherwise you’ll need a (require dash).
We need two sequences because the logic depends on seq1[i+1] = seq2[i]. Notice that this handles the “wraparound case” as well. The second half of the problem is the same except the two lists should be the first and second half of the digits. One nice thing about the Emacs mapping functions is that they operate on any sequence, not just lists. That’s convenient in this problem.
Abo-abo has released Ivy 0.10.0. It’s the result of 8 months work and has several new features. One that I like, is that you can force acceptance of your input when you’re on the first candidate by scrolling up to the input with Ctrl+p. That’s much nicer than having to use Ctrl+Meta+j (which is still available). You have to enable this feature with
(setq ivy-use-selectable-prompt t)
presumably because it will interfere with the ivy-wrap functionality if you have it enabled.
Another nice feature is being able to use Ctrl+d to delete entries in an occur list. Abo-abo gives an example use case for it in his post.
Finally, there are a bunch of new counsel commands. Most of them are specialized to rare situations (at least for me) but you may find that one or two of them are useful in your work flow.
The post describes the most interesting new features but there’s also a complete changelog that you can browse if you’re interested in all the details. As I’ve said before, the Ivy/Swiper/Counsel suite is my most used and useful package. It’s extraordinary how much friction it removes from my workflow. If you aren’t already using it, I urge you to give it a try.
The folks over at Ars Technica UK were resting up after Thanksgiving and reran an article from 2012. The article discusses a paper (2002) by the Microsoft engineers who worked on Palladium, Microsoft’s Trusted Windows Project. The project failed partly due to a fierce backlash from the tech community that feared Microsoft was trying to lock down the PC. The paper was an attempt to allay those fears.
Meanwhile the paper, The Darknet and the Future of Content Distribution, made a series of predictions that have turned out to be largely true. The TL;DR is that DRM will always fail and never succeed in safeguarding Hollywood’s content.
The basic argument is that the DRM has to be perfect: strong enough to defeat even the most talented and motivated cracker not just the average user. I’m sure the Hollywood suits thought that if they just made the cracking hard enough to frustrate the average user, the few really talented crackers wouldn’t matter.
The paper argues that what would actually happen is that the crackers would release the decrypted content on the “Darknet” making it available to everyone. Back in 2002, “Darknet” didn’t have quite the same meaning as it does today but the concept is the same. The authors predicted that the content owners and law enforcement would target the most centralized parts of the darknet but that the darknet would respond by becoming more decentralized. That, of course, is exactly what happened.
It’s interesting to read about this 15 years on but it’s a little depressing to see that Hollywood still can’t bring itself to let get of the notion that maybe this time with this new DRM scheme we’ll succeed. Perhaps in another 15 years.
Some people will go to any lengths to do all their work in Emacs. I can sympathize.
How I spreadsheeted this evening: export as csv->open with emacs->org-table-convert-region->happily edit using isearch-replace, macros, etc.->org-table-export back to csv->import into spreadsheet. #emacs
— Bryan Murdock (@bdmurdock) November 29, 2017
I just had one of those “Well Duh! Of course” moments. It came to me with this Emacs Command of the Day tweet:
M-x read-only-mode, bound to C-x C-q.
Avoid accidentally modifying a buffer with this handy minor mode!
— Ⓔ Command of the Day (@ecotd) November 28, 2017
I always think of Ctrl+x Ctrl+q as turning off read-only-mode in a grep or Dired buffer. See Mike Zamansky’s video on Dired for an example of the latter. But, of course, what it really does is toggle read-only-mode so if you want to put a buffer in view-mode to prevent inadvertent changes you can just use Ctrl+x Ctrl+q to turn it on.
For those of you who like such things, here’s a list of popular languages and the weapons they correspond to. My go to languages are Lisp and C so I guess I’m crazy and dangerous but toting an old—if reliable—weapon.
No matter your favored languages, your ox will almost certainly be gored.