Some Org Agenda Tips

Marcin Borkowski (mbork), who’s been posting several great articles lately, has a nice offering with A few org-agenda hacks. It’s a short list of some of the ways he’s tweaked Org’s agenda view to better suit his needs.

As Borkowski says, all of this is in the documentation but may be a bit hard to dig out. If you use even one of his tips it will have been worth reading this short but pithy post.

Posted in General | Tagged , | 1 Comment

Emacs, OS X, and PATHS

As I mentioned the other day, I encountered a difficulty in building the documentation for the latest version of SBCL. That’s because I recently updated OS X to El Capitan, which has a new feature. It’s impossible for anyone (even root) to write into the /usr directory (/user/local is OK, though). That’s a bit annoying but I suppose it does make some sense from a security standpoint.

In any event, the MacTeX distribution used to set a symbolic link into /usr so that the shell and other applications could find the executables. Those links were removed when El Capitan was installed so the SBCL makefile couldn’t find TeX to build the documentation. It’s easy to fix this and Herbert Schulz has a nice writeup on how to do it. While I was at it I also downloaded and installed latest version of MacTeX. Once I had it loaded, I fixed my shell PATH variable and the SBCL documentation built without incident.

That left the problem of fixing the path variable in Emacs. That always seems much harder than it should. The reason is that the GUI version of Emacs under OS X does not import the PATH variable so you have to set it up by hand. Actually, you don’t. Steve Purcell has a tremendously useful package called exec-path-from-shell that imports the shell PATH variable into Emacs for you.

That simplifies everything. I just installed the package and it took care of telling Emacs where the TeX executables were. I highly recommend this package if you are an OS X user.

Posted in General | Tagged , | Leave a comment

Tech Support for Telemarketers

The best story I’ve seen in a long time:

Posted in General | Tagged | 1 Comment

SBCL 1.2.16

SBCL 1.2.16 has been released and is ready for download at the usual place. This month’s update has one enhancement involving timers and 3 bug fixes. You can read the details on the NEWS page.

As usual, I compiled the system from source without any problems. The regression tests are still showing 1 failure on OS X but the developers usually squash those in a cycle or two.

Because I recently updated my OS to El Capitan, I did have a problem building the documentation. That was easily fixed, though, and I’ll write more about that and general PATH problems shortly.

Posted in General | Tagged , | Leave a comment

Sacha’s Guide to Managing Tasks with Org Mode

The ever awesome Sacha Chua has an excellent Baby Steps Guide to Managing Your Tasks with Org. It’s still a work in progress but even in its unfinished state it’s a really useful guide for getting started with Org mode.

One of problems with Org is that it can be overwhelming. Org can do so much and has so many facets that it’s easy for beginners to bog down trying to understand everything. Chua’s guide takes the approach of learning to do just one thing with Org: manage your TODO lists. By the time you’re finished mastering that, you will have learned enough about Org and how it works that it will be easy to move on to the next set of Org features.

Chua starts off by having you create a list of tasks and shows how you can manipulate that list by moving tasks up and down in the file. When you’re done she says to change the TODO to a DONE. That’s kind of a bore, though, so she shows you how to toggle it with a simple key sequence. But maybe you want more states than just TODO and DONE. You might want WAITING or SOMEDAY, for example. Chua shows you how to add these and assign speed keys to them so you can switch states easily.

Next she suggests that you break that list of tasks up into projects. That makes it a bit easier to organize your tasks and track progress on individual projects. Finally, she shows you how to schedule tasks for a certain date.

If you’ve been wanting to get started with Org, Chua’s tutorial is an almost painless way of getting started and learning to use Org for a useful task at the same time. Definitely recommended.

Posted in General | Tagged , | 3 Comments

Ruining the Internet

John Gruber over at Daring Fireball has a post on how adtech is ruining the Internet. He points to an article on Bloomberg that makes the case for how disastrous adtech is for advertisers. When I followed the link, Bloomberg ran an autoplay ad1. Case closed.

Footnotes:

1

Of course I left the site immediately in accordance with my firm rule on autoplay ads. Later, I went back to check that the ad really did autoplay and that I didn’t accidentally click on it. This time they didn’t push an autoplay ad so I read the article. It’s a pretty good article. Too bad Bloomberg proves Gruber’s point so graphically.

Posted in General | Tagged | Leave a comment

We Have to Outlaw Gloves

A nice followup to Blaze’s tweet that encryption was a problem in only four cases last year.

Posted in General | Tagged | Leave a comment

Happy Birthday: Free at Last

It’s long been obvious to anyone who took a serious look that the claimed copyrights on “Happy Birthday” are invalid. That hasn’t stopped Warner Music from extorting user fees on the order of two million dollars a year, though. Now, happily, a federal judge has put a stop to the nonsense and ruled that none of the companies that have collected royalties on the song held a valid copyright.

The judge ruled a 1935 copyright covered only a specific piano arrangement and not the song itself. Warner can appeal, of course, but they haven’t announced their intentions. I’d be surprised if they do. The thing about sketchy copyright claims like this is that they only work because the claimed royalties are too small to make litigation cost effective. Once someone takes them on, the house of cards falls.

On the other hand, they may have to pay back all those royalties they’ve collected over the years so they do have a financial incentive to appeal. We’ll see what happens, but in the mean time “Happy Birthday” is free.

Posted in General | Tagged | Leave a comment

A Nifty Example of Metaprogramming

Some of the most enjoyable programming I do is metaprogramming: writing code that writes code. Lisp macros are all about that, of course, but the idea is much more general. Often times the code that the code writes is just a simple shell script. Several years ago when my main workstation was a Linux machine, the ripperX program was broken for one reason or another so I wrote a program to read the CD directory and generate a shell script to rip the tracks. It was nice because I had complete control over the format of the names assigned to the tracks.

I just came across a nifty example of this sort of thing over at Sacha Chua’s blog. Chua was working on cutting the video stream from the recent Emacs Conference 2015 into individual talks1. The idea is to note the start time and duration of each talk and use that in a call to ffmpeg. You can write those ffmpeg calls by hand, of course, but that’s boring and error prone.

Instead, Chua captured the talk title, start time, and end time in an Org table and used the table spread sheet functionality to calculate the duration. Then she used a code block in the Org file to output the calls to ffmpeg automatically. A nice example of metaprogramming using Org mode. It’s a great post and well worth a read. Perhaps it will give you some ideas for your own work. In any event, we’re all the beneficiaries of Chua’s work because now we can watch those conference talks. See Chua’s post for the details.

Footnotes:

1

Here’s another Chua post with some background on the technical details of the media she was working with.

Posted in General | Tagged , | Leave a comment

Org Basics IV

Ben Maughan has posted the fourth episode in his Org Mode Basics series. This time he talks about formatting the text in Org buffers and adding executable source code blocks to your Org file.

The Org markup language is very similar (in spirit) to Markdown but is a bit richer. If you’re not already familiar with Org markup, take a look at Maughan’s post to see the basic markup and what the results look like. As Maughan says, you can also include blocks of LaTeX right in your document if you need to. Small pieces of LaTeX can merely be added to the file without any special markup other than the LaTeX.

Although Maughan hasn’t mentioned it yet, you can also add HTML for those files you plan on exporting to HTML. Maughan will be discussing exporting Org files in a subsequent post.

As I said before, if you’re new to Org Mode, these posts are an excellent way to get up to speed. They’re short, easily digestible pieces that add to what’s come before. Even if you’re a long time Org user they’re worth reading; you may learn something new.

Posted in General | Tagged , | 3 Comments