Here's a Nickel Kid...

I recently found a reference to one of my all time favorite Dilbert cartoons. It's almost 20 years old and still makes me laugh. I'm linking to rather than embedding the cartoon to avoid copyright problems.

Posted in General | Tagged | Leave a comment

let with Lexical and Dynamic Scope

Artur Malabarba points to this excellent Stack Exchange entry on the speed of let with lexical versus dynamic scope. Malabarba asks why let is faster with lexical scope than it is with dynamic scope. lunaryorn provides an excellent and detailed answer that shows the generated byte code for both cases.

The TL;DR is that using dynamic scope means that the let variables have to be looked up in the global scope, set, and then reset after use, while using lexical scope just makes the variables local and avoids all lookup and setting/resetting. That may sound a little opaque but lunaryord's answer explains things in a very understandable way.

Generally, I don't worry too much about speed in the Elisp I write because it's mostly just simple functions that run quickly no matter how ham handed my coding is. If you write functions that have “long” running times, it's worthwhile to take the lessons in lunaryord's answer into account. It is, in any event interesting and worth knowing for the day you need it.

Posted in Programming | Tagged , | Leave a comment

A Movement I Can Get Behind

A great idea from Christopher Moore. I hate it when Web sites do this. Even more if there's sound.

Posted in General | Tagged | Leave a comment

Lots of New

Here at the International Irreal Headquarters there are lots of new things to explore and play with. First, there is OS X Yosemite, the new Apple OS. I've been playing with it for a few days and like it so far. It did take a little grief for its overly-flat UI but that doesn't bother me. I haven't really explored the new things yet so perhaps I'll comment on those later.

Second, Emacs 24.4! At long last. Again, I've mostly just got things compiled and set up so any comments on its features will have to wait. In the meantime, you've got Artur Malabarba, Mickey Petersen, and the many posts of Bozhidar Batsov to help you explore Emacs 24.4 if you haven't already read them.

Along with the new Emacs, Bastien Guerry has pushed out a point release, 8.2.10, of Org mode. Org mode just keeps getting better and better and Bastien has done a great job in driving its development.

Finally, the best new thing of all

FullSizeRender 2.jpg

My old MacBook Pro is still in great shape and is a real work horse but it's over 7 years old now. The main problems are that the 120G disk is pretty much full making it hard to deal with updates and difficult to store much more data on it. Since it has only 2G of RAM, it tends to get very slow when I have more than, say, Emacs and Safari open. My new machine (Manfred II for now) is a 13 inch MacBook Pro with 16G of memory and a 512 GB SST. I can't tell you how fast this thing feels. It's also a bit lighter than my 15 inch MacBook Pro. I considered getting the 15 inch model—mainly to get four cores—but it was heavier and, really, I don't do enough CPU bound computing to make that an issue.

So all in all, Christmas has come early to Irreal.

Posted in General | Tagged , | 5 Comments

Happy Anniversary to Mickey

It's Mastering Emacs' fourth anniversary and Mickey has refreshed the site. Drop in and take a look if you haven't been there lately.

Posted in General | Tagged | Leave a comment

Inhibiting Dired Details in Emacs 24.4

Who ever thought having Dired hide details by default was a good idea? I know some people like having fewer details but I don't get it. Why wouldn't you want as much information about the files as possible? Maybe I'm an outlier but it made me quite cross when I brought up a Dired buffer and got a plain list of files.

At first I thought that Dired+ was not getting loaded (like with ace-window that I wrote about before) but uninstalling it and readding it didn't help. After a bit of investigation, I discovered that Dired was doing this on purpose. Grrrrr.

If, like me, you want to stop the madness and you're using Dired+ (which you definitely should be), here's what to do:

(setq diredp-hide-details-initially-flag nil)
(require 'dired+)

Note that you must set the flag before loading Dired+. Also notice the ‘p’ at the end of the first dired. I had several iterations of failure because I didn't notice it.

If you're OK with the hidden details but would occasionally like to see them, 【(】 will toggle the details.

UPDATE: Phil points out in the comments that this behavior is the default under Dired+ but not with Dired. You can still toggle the hide details feature on and off with 【(】 whether or not you're using Dired+.

Posted in General | Tagged | 6 Comments

The Need for a Central Office

Via Jean-Philippe Paradis we have Paddy Foran explaining why "We need to have everyone together in an office." is just hokum. At least when it comes to development shops.

One thing for sure, a distributed work force is way better than an open plan office. Sadly, not everyone, it seems agrees.

Posted in General | Tagged | Leave a comment

Emacs 24.4 is Released

Emacs 24.4 is finally with us. You can go to the GNU Emacs site to get a copy. When I downloaded it, the mirrors had not yet been updated so I just went to the primary FTP server to get my copy.

It compiled without problem. You can just follow the INSTALL file instructions, perhaps going to the INSTALL file for your particular platform but the TL;DR for the Mac is

./configure --with-ns
make
sudo make install

Then (for the Mac) you have to drag Emacs.app in the nextstep directory to /Applications. It almost takes less time to do it than it does to describe the process.

When I brought the new Emacs up, I had two problems (at least so far). First, it wasn't loading ace-window because it couldn't find the file, even though it was there. I deleted it from ELPA and then readded it and it worked again.

Second, I have Emacs configured to split the frame horizontally so that I have two side by side windows when I start. The frame split during initialization but then killed one of the windows so that I had a single wide window. I solved that by setting disabling desktop-save-mode:

(desktop-save-mode nil)

It still remembers my open buffers across invocations so it's just like it was before. This is no doubt because of the new session-saving features: I'll have to investigate it more later.

This is my second post written in Emacs 24.4 and as you can see it's working just fine. I doubt any Irreal Emacsers need the reminder but you should definitely upgrade. It's really easy, even if you compile from source.

Posted in General | Tagged | Leave a comment

Just A Reminder

I know I've said it over and over but it bears repeating: Law Enforcement will ALWAYS abuse any data collection opportunity they are given.

Posted in General | Tagged | Leave a comment

Stallman on the History of Emacs and GNU

Here's an interesting video from 2002 of Richard Stallman talking about the history of Emacs and the GNU project. As far as I can tell, this is the talk whose transcript I wrote about 3 years ago. It's about 40 minutes so plan accordingly.

Posted in General | Tagged , , , | Leave a comment