Garbage Collection and Your Refrigerator

Jonathan Magen has a nice introduction to garbage collection. In it he illustrates various garbage collection strategies by using the same algorithm to get rid of old food in the refrigerator. It's not a deep technical discussion but is perfect for getting a feel for how the algorithms work and their advantages and disadvantages.

Magen supplies references to more advanced works for those who want to dig a bit deeper. If you've wondered how GC works, this is a resource to start with.

Posted in Programming | Tagged | Leave a comment

Emacs 24.4 RC1

As promised, Emacs 24.4 RC1 was released on Friday. If all goes well, we'll have the official release of 24.4 on Monday. There's a lot of great improvements in the new release so, like most Emacers, I can hardly wait for it to be released.

Of course, if you really want to live on the edge, you can move directly to the new Emacs 25 development branch. I depend on Emacs and want it to be absolutely stable so I don't want to be that far out on the limb. On the other hand, Lee lives in Emacs too and seems to be happy with living on the edge.

Posted in General | Tagged | Leave a comment


Ooh, I want one.

Posted in General | Tagged | Leave a comment

Elisp and the Clojure Threading Macros

One set of Clojure features that its adherents are quite fond of is the threading macros ->, ->>, and -->. Unless you're familiar with Clojure, you probably don't know what they do.

You might wonder why we should care. The answer is that Magnar Sveen has implemented them for Elisp in his dash library and they turn out to be useful. The problem is that most Elispers don't have an easy way of finding out what they do. Yoo Box has come to our rescue with a nice post that explains the macros and how to use them.

On the one hand, they aren't very (Common or Emacs) Lisp-like but they can make your source code more readable and perhaps easier to write. I'm still not sure whether I'm a convert but with Sveen's library and Emacs, I have all the tools I need to experiment with them. Box's post is well worth a look for any Elisper.

Posted in Programming | Tagged , | Leave a comment

A Tip on Editing Org Mode Table Formulas

Rob Syme offers up a tip about editing org-mode table formulas that everyone should know but many don't:

Posted in General | Tagged , | Leave a comment

Sharpening the Knife

SQLite, a C library that implements an SQL database engine, is the most widely deployed database engine in the world. The system is extraordinarily stable. One of the reasons is that although SQLite contains about 89.9 KSLOC it has 91493.0 KSLOC of test code and scripts. Follow the last link to see what's involved in that testing. One hundred percent coverage and regression tests are only part of it. If every project did as well, we'd have a lot less buggy software. It reminds me of Walter Bright (of Zorland C/C++ and D programming languages fame) who once wrote that over the years he has accumulated a set of regression tests for his code generator that tests every error he has ever found.

As Magnar Sveen said in Episode 4 of Emacs Rocks!, it's all about sharpening the knife. The SQLite developers know a thing or two about knife sharpening. The latest version of SQLite (3.8.7) is 50% faster than version 3.7.17 due to micro-optimizations. They say that each optimization may contribute as little as 0.05% improvement but over the hundreds of such optimations they've achieved a spectacular improvement. Read the article to get an idea of what they did. Really, they're an inspiration to us all.

Posted in Programming | Tagged | 1 Comment

If Programming Languages Were Cars

I probably shouldn't but I love this sort of thing and find many of the entries hilarious.

Posted in Programming | Leave a comment

Global Key Bindings

Over at the Google G+ Emacs community Alison Chaiken points us to an interesting post by Akkana Peck. Many times, I've set a key sequence for some function—often the recommended key sequence—only to have some other module steal it out from under me. This happened twice with ace-jump-mode for instance.

Peck finally got tired of that and figured out how to set a global key binding once and for all. It involves creating a minor mode and setting some alists. Head on over to Peck's site for the details. If this sort of thing has been bothering you, take a look at Peck's post.

Meanwhile, back at the Emacs Community, Detlev Zundel comments on Chaiken's post pointing us toward another, more general, solution by John Wiegley. It's also worth looking at if you have this problem.

Posted in General | Tagged | 2 Comments

Golden Keys and the Four Horsemen of the Infocalypse

Recently, The Washington Post published an editorial suggesting that Apple, Google, and other smart phone manufacturers provide a golden key to allow law enforcement access to locked phones. “Golden Key,” of course, is just a euphemism for a backdoor. It's unlikely that any Irreal reader will fail to understand the implications of that but here's some ammunition for talking to Aunt Millie.

Chris Coyne has an excellent post that details the problem with this proposal. As he says, increasingly our phones store our digital lives and in the near future will be a transcript of our lives, even our non-digital lives. Coyne's major point is that once there's a backdoor, others will find and use it. That could be foreign powers, rogue government agents, or criminals.

Corey Doctorow makes the same point in The Guardian and says that we can be sure that corrupt public officials will sell us out just as they have before:

“The same forces that led to bent cops selling out the public’s personal information to Glen Mulcaire and the tabloid press will cause those cops’ successors to sell out access to the world’s computer systems, too, only the numbers of people who are interested in these keys to the (United) Kingdom will be much larger, and they’ll have more money, and they’ll be able to do more damage.”

This is the same point I made in a recent post: law enforcement will always abuse any surveillance power they're given. The only way to protect ourselves is to not give them those powers.

Law enforcement, of course, claims that if they can't break into our phones they will no longer be able to investigate pedophiles, kidnappers, terrorists, and drug dealers. Bruce Schneier puts the lie to that nonsense. He recounts several instances where law enforcement has made these claims and were later found to be lying and notes that of the 3,576 warrants issued for communication intercepts in 2013, exactly one involved kidnapping. He also notes that far from “going dark,” this is the golden age of surveillance for law enforcement. Schneier's post has lots of links to more background material and you should definitely read it.

Posted in General | Tagged | Leave a comment

Burritos and Monads

Ahh, now I get it

Posted in Programming | Tagged | Leave a comment