Yet Another Convert

It appears that org2blog is on track for world domination. At least the world of Emacs and WordPress.

Posted in General | Tagged , | Leave a comment

The prin* Family

This is really a note to myself but I’ll bet many of you are in the same boat. When I want to print something in Elisp, I usually use format but sometimes one of the prin* functions is really what I need. The problem is that I can never remember exactly what they do. What, for example, is the difference between princ, print, and prin1?

This post is meant to be a cheat sheet for the family. Although it’s not really part of the prin* family, I’ve included pp as well because I always forget about it.

  • prin1
    Output a printed representation of the argument with quoting. Output will be readable if possible.
  • prin1-char
    Return a string representation of the argument, which must be a character.
  • prin1-to-string
    Return a string representation of the argument with quoting. Like prin1 but returns the string rather than outputting it. Output will be readable if possible.
  • princ
    Output the printed representation of the argument without quoting.
  • princ-list
    Print all arguments with princ followed by a newline. OBSOLETE: Use mapc and princ instead.
  • print
    Output the printed representaton of the argument with newlines around it. Output will be quoted and readable if possible.
  • print-buffer
    Paginate and print buffer contents.
  • print-diary-entries
    Print a hard copy of the diary display.
  • print-help-return-message
    OBSOLETE: use help-print-return-message instead.
  • print-region
    Paginate and print the region contents.
  • pp
    Output a pretty-printed representation of the argument with quoting. Output will be readable if possible.
Posted in Programming | Tagged | Leave a comment

An Interview with Carsten Dominik

I recently came across an old but interesting interview of Carsten Dominik. The interview was by Randal Schwartz on his FLOSS Weekly Netcast back in September 2010. Despite its age, the netcast doesn’t seem dated at all.

Dominik is a very interesting and engaging guy. He makes you feel that you’d really enjoy sitting down with him and chatting over a beer. The interview is a 53 minutes long conversation (no demonstrations or code perusal) so you can almost feel as if you had that chance to chat.

Schwartz takes Dominik from the beginnings of Org Mode (a personal itch arising from some shortcomings of Outline Mode) up through the export system and finally to Babel. That’s pretty much where Org stands today so the age of the interview doesn’t matter very much.

You can really see Dominik’s enthusiasm for and love of Org Mode in his chat with Schwartz. He says he spends most of his day in it and uses it for just about everything. A few years before the interview Dominik thought that development on Org Mode was pretty much over; everything he could imagine for it was already in it. Then some new ideas came pouring in and they pretty much haven’t stopped.

If you’re not, yet, an Org Mode user, you might enjoy the video and get some idea of what it can do for you. It’s definitely worth an hour of your time.

Posted in General | Tagged , | Leave a comment

The Wages of Sin (Lenovo Edition)

$10B.

The article estimates that 1,000,000 people in America were affected. That means that I have to revise my previous estimate to 25¢.

Posted in General | Leave a comment

SBCL 1.2.9

Steel Bank Common Lisp is out and available at the usual place. This month’s release has some optimizations and a bunch of bug fixes. You can get the details from SBCL’s NEWS page.

As I say every month, if you’re looking for an excellent Common Lisp system that’s easy to install and use, I can recommend SBCL without hesitation.

Posted in Programming | Tagged , | Leave a comment

Just When You Thought It Couldn’t Get Worse

What could make the Lenovo/SuperFish scandal worse than it already is? This could:

If true and you bought one of those laptops, it probably means that Lenovo sold you and your safety out for less than a dollar.

Here’s the Forbes story.

Posted in General | Tagged , | Leave a comment

Act While You Can

Gabriel Weinberg, the founder and CEO of DuckDuckGo has an impassioned plea to all of us to take a stand in the coming debate over Internet privacy. “Internet privacy” is a large and complex subject that includes abuses by the NSA and other government agencies as well as commercial enterprises that are eager to exploit our personal data for commercial gain.

It’s reasonable to be a bit pessimistic about being able to yank back our privacy from the government but it does seem possible to get the advertisers and data brokers under control. As Weinberg reports, the Obama administration is set to introduce legislation to do just that. We can expect major pushback from those who want to keep mining our personal information and building ever more comprehensive dossiers on us.

Weinberg says that this is a fight where we can actually make a difference and he suggests some ways to claw back our privacy. You should head on over and read his post. As he says, it’s now or probably never.

AFTERWORD: Here’s the EFF’s take on the upcoming legislation.

Posted in General | Tagged | 2 Comments

Oh Nooos

Spock is dead. Now who will be my roll model? The linked NYT has a short video in which Nimoy explains the origin of the Vulcan salute.

Nimoy’s character was an inspiration to me and I loved Nimoy’s portrayal of him. RIP.

Posted in General | Leave a comment

Remapping Your Keyboard

I’ve always been in awe of folks like Xah Lee who do extensive remapping of their keyboards. I have enough problems remembering key sequences without changing the keys around on my keyboard so I don’t do that. Now abo-abo has taken this to extremes with his keyboard layout.

First, he repurposes 【;】 as a modifier key to select alternative mappings for the other keys. For example, 【l】 just inserts the letter l but 【;+l】 inserts <. He also has special keys to insert various sorts of brackets, and to do things like jump to a bookmark or change windows. Take a look at his post to see the full setup.

This sort of thing is definitely not for me but I do think it can be very useful, especially for adding key sequences with an additional modifier key. You should definitely take a look even if you don’t think it’s for you. Perhaps you’ll find it more useful than you think. Abo-abo says that after using his setup for a while, the plain QWERTY keyboard feels unbearably sluggish.

Posted in General | Tagged | 3 Comments

Quick Notes

In my continuing quest to make better use of the Org mode agenda facility, I’ve implemented a way of capturing quick notes that are meant to be ephemeral and not saved long term. It’s a good way to capture information while I’m on the phone or otherwise need to capture some data quickly and deal with it later. For example, maybe someone calls and wants to change the time of an appointment. I can just capture the new time and update my calendar after the call.

The capture template is ridiculously simple. It just grabs a headline and any associated text and puts a timestamp at the end. The capture template is

("q" "Quick Note" entry (file "~/org/quick-note.org") "* %?\n%U")

The quick-note.org file has #+FILETAGS: QN in the header so that it’s easy to find them with a custom agenda view. Here it is:

("q" "Quick Notes" tags "QN" nil)

Once I’ve acted on the note, I can type 【Ctrl+k】 to delete it from the agenda and quick-note.org file.

This is a really simple thing but something I’m almost certainly going to use a lot. Even though it’s simple, I had to do a bit of research to figure out all the details so I’m recording my process here in case any of you want to do the same thing.

Posted in General | Tagged , | Leave a comment