Automobiles and Apple

For those who have been off-planet and haven’t heard the news, Apple’s iOS 8 encrypts the contents of users’ iPhone and iPads in such a way that only the user—not Apple—can access it. That means that Apple can no longer respond to warrants from law enforcement asking that they unlock users’ data1.

Naturally, law enforcement is upset. Very upset. There’s the usual punditry about pedophiles and “think of the children” but Christopher Soghoian reminds us that they always say this sort of thing

UPDATE: The Macalope has a roundup of the idiocy about this issue.

Footnotes:

1

At least that data not stored in iCloud, which Apple can access and is legally obliged to turn over when presented with a warrant.

Posted in General | Tagged | Leave a comment

Emacs Idioms

Learning to configure and extend Emacs is pretty easy for those with a modicum of Lisp experience. Much has been written about the shortcomings of Elisp and while those criticisms have merit, it’s easy for a Lisper to become comfortable with it. What’s not so easy is learning what in other contexts would be called the run time library.

Emacs Lisp is specialized—or at least its library is—to processing text. The hardest thing for a new Elisper is learning that library and becoming familiar with Elisp idioms. One of the places that I found most useful when I was learning Elisp was Xah Lee’s Emacs Lisp Tutorial. It free to read on the Web or you can buy a personal copy. Believe me, if you’re trying to learn Emacs Lisp, it’s a great resource.

One page of the tutorial that is particularly useful is Emacs Lisp Idioms for Writing Interactive Commands. It shows the most common templates for Elisp commands and demonstrates how to code basic Elisp commands. Read that page and code a few simple commands and you’re well on your way to Elisp mastery. It’s worth a look whether or not you want take on the whole tutorial.

Posted in Programming | Tagged , | Leave a comment

SBCL 1.2.4 Released

Steel Bank Common Lisp 1.2.4 has been released and is available at the usual place. Check the NEWS page for what’s new in this release (mostly some improvements in how certain sequence functions are implemented).

As usual, there were no problems building the distribution or with the regression tests. Things just work.

Even if you merely want to play around with Lisp a bit, SBCL is a good choice. It’s got plenty of tools and is easy for a beginner to use. When you’re ready to move forward, SBCL will be right there with you. Plenty of serious, professional Lispers use SBCL as their Lisp development environment.

Posted in Programming | Tagged , | Leave a comment

Wilfred Hughes on Macro Systems

Wilfred Hughes has an interesting post, Comparitive Macrology, in which he looks at the macro systems of various languages. For each, he implements two macros:

  • A swap macro to exercise hygiene
  • An anaphoric macro to exercise (intentional) variable capture

He demonstrates the advantages and disadvantages of each language’s macro system.

Hughes starts with C, moves on to Common Lisp, New Lisp, Scheme, Clojure, sweet.js, Rust, and Julia. It’s a really interesting post and well worth reading.

One of the things that struck me was how ugly the syntax of the non-Common Lisp languages are. Even Scheme, which shares most of its syntax with Common Lisp has a really ugly macro language. That’s something worth remembering the next time non-Lispers start grousing about all those parentheses. Just refer them to the syntax of their language.

UPDATE: Wilford → Wilfred

Posted in Programming | Tagged | 3 Comments

BSD Unix Repository

As I’ve written before, I believe that one of the best ways of becoming a master programmer is to study the work of the masters. One of the best sources for this that I know of is the BSD Unix sources. Years ago I purchased a CD with the code for all the BSD releases. It was a great resource and I learned a lot.

The other day, I came across a link to an online SVN repository of the same thing. This is also a great resource. Of course, it’s mostly of use to C programmers or those that want to be. If you’re doing front-end work in Ruby, or JavaScript, or some other higher order language you may not be interested. If you want to find out how the Web and operating systems really work, it’s hard to imagine better material to study.

Posted in Programming | Tagged , | 1 Comment

The Virtue of Practice

Via Jean-Philippe Paradis:

I love this. It represents the attitude of a master who is forever striving to improve.

Posted in General | Tagged | Leave a comment

Privacy for the Rest of Us

A recurrent theme around here has been the need to give crypto-enabled apps a user interface that is transparent to Aunt Millie. This is important because no matter how well-protected the geeks make themselves, no one is truly safe until we, as a society, achieve herd immunity from surveillance by criminals and overreaching governments. As it stands now, anyone taking steps to ensure their privacy is putting on a sign that says, “I’m someone you should look at.”

Sadly, the problem is a hard one. Now, Cory Doctorow is reporting in the Guardian on an effort to solve this problem. The article discusses why this is important to everyone and announces the formation of a new non-profit organization to address the issue. The organization, Simply Secure, has a new Website up that explains what they’re trying to do and solicits user input. They also have a blog Twitter feed and a newsletter so you can follow their progress.

This seems like an excellent effort and one that deserves our support. Visit the site and see if you have skills they can use. We’ll all be better off for it.

Posted in General | Tagged | 1 Comment

The Java Virtual Machine Tax

Via Wilfred Hughes

I’ve often been tempted by Clojure but the JVM tax that Alex Payne talks about is primarily why I’ve resisted.

Posted in Programming | Tagged , | Leave a comment

Spring Fall Cleaning

In a comment to my Mathematics in a Blog Post post, Grant Rettke asked what versions of WordPress and org2blog/wp I was using. It turned out I had a pretty old version of org2blog/wp installed so I decided to upgrade. I had been maintaining a cloned version of its repository but I decided to see if I could get it to work from ELPA. I’d tried that before but it pulls in Org mode and there were problems with getting Org to work from ELPA then.

This time both Org and org2blog/wp worked fine when installed with ELPA so I got rid of my private cloned repositories for them. If you had a similar problem with Org and ELPA it appears to be working well now.

While I was cleaning things up, I decided to get rid of old files and subdirectories in my tools and tars directories. For example, I had half a dozen old copies of SBCL hanging around and even though I didn’t need the space (my iMac has a terabyte of disk space) I was in a housekeeping frame of mood so out they went. Normally when I do this type of thing, I use eshell to remove the files with

rm -rf ~/tools/sbcl-1.2.1

But then it occurred to me that even though I don’t edit any files in the tools directory, there was no reason I couldn’t bring it up in a dired buffer and just mark the subdirectories that I wanted to delete. That worked fine, of course, and was much faster than deleting each one by hand. Unless I’m already in a shell and just need to deal with one or two files, dired is faster and easier—even if it’s a directory that I don’t normally use Emacs with.

Emacs really is a wonderful environment. It is, as I’ve said many times, as close as we can come to using a Lisp machine. Not everyone, I suppose, wants that but I love it and don’t understand why anyone would use anything else.

Posted in General | Tagged | 5 Comments

Rock & Roll and a Rare Personal Item

I don’t often write about myself on Irreal because, really, who cares? I’m going to make a rare exception and share something about myself: I am a HUGE Pink Floyd fan and consider them the best Rock and Roll band in the world. You’re free to disagree, of course, but then you’d be wrong.

Last night I was at the Pizza parlor stocking up on programmer fuel when the (young) clerk noticed my Pink Floyd tee shirt and told me something extraordinary that I had somehow missed. After 20 years, the gods have smiled on us and we have this. I’m overjoyed and can’t wait. Here, in typical fashion, is the announcement.

Posted in General | Leave a comment