I haven't written much about Scheme lately because I wasn't able to get Guile to compile on my Macs. Today I saw this nice video of Andy Wingo talking about building programs with Scheme and Guile. He discussed the current Guile system and some of his plans for the future. It's a bit less than 40 minutes and worth a watch so if you have any interest in Scheme, I recommend it.

Watching the video inspired me to try compiling Guile again so I downloaded the latest stable source and gave it a go. Of course there were a bunch of GNU libraries that weren't on my OS X system so I had to hunt them up and get them installed but that wasn't much trouble. After that, the configure completed and I was able to compile and install Guile. I brought it up to make sure it was working but I haven't done anything with it yet. I'll write about it a bit more when I've had time to play with it.

If you're on a Mac and gave up on Guile because you couldn't get it to compile, now's a good time to try it again.

Posted in General | Tagged | Leave a comment

An Idea Whose Time Has Come

Posted in General | Tagged | 1 Comment

Overturning Section 1201

Bunnie Huang, Matt Green, and the EFF are suing the U.S. Government over §1201 of the Digital Millennium Copyright Act. That's the part of the act that prohibits bypassing software restrictions on copyrighted material. The original intent was to prevent music and movie piracy but, of course, the act has been abused to prevent such things as third party printer toner cartridges and even coffee capsules for Keurig coffee machines.

Huang and Green are concerned about the effect §1201 has on security research. The act makes it very difficult to do good faith security reviews of software and this has disastrous consequences for the public because flaws go undiscovered except by criminals who seek to abuse them.

We can only hope that the plaintiffs prevail but I'm not very sanguine about their chances. The industry is ferocious in their support of the law and will fight any attempt to chip away at it.

Both Green and Huang have posted remarks about the suit on their blogs. Green's, especially, is a detailed rationale for the suit and explains what they hope to accomplish.

Posted in General | Tagged | Leave a comment

Emacs Bullet Points

Bryan Berry has posted the notes from a presentation on Emacs that he gave to some of his colleagues. The notes are basically a set of bullet points on Berry's thoughts about Emacs.

They're definitely worth reading if only to get another developer's perspective. I'm inclined to disagree with his assertion that Emacs is probably not better than your current editor because, among other things, what does that even mean? I consider “best editor” to mean the one that enables you to be the most efficient and I know from experience that Emacs makes me more efficient. Others may have a different definition or find that some other editor makes them more efficient.

Making you more efficient is one of the things that Berry says Emacs does. I agree completely that Emacs has a high learning curve but that the ROI on the time spent is quite high. Another of his assertions with which I agree is that Emacs has been enjoying a Renaissance of late and has gotten dramatically better in the last 5 years.

You probably won't learn anything you didn't already know—unless you're not a user or a rank beginner—but I found them interesting and worth the short amount of time to read the 3 pages.

Posted in General | Tagged | Leave a comment

That's Not a Password; THIS is a Password

Via Karl Voit:

Posted in General | Tagged | Leave a comment

Reveal.js and Org Mode

Mike Zamansky is back from his trip and has a new video up. It's on making presentations with reveal.js and Org mode. This is a nice introduction to reveal.js and shows how easy it is to make a nice looking1 presentations simply by writing a Org file.

Each top-level heading is a new slide and you can have subslides by using subheadings. You can add code, tables, or images in the usual way and they get added to your slides just as you'd expect. There are also a number of themes and special effects to choose from. Watch the video to see the details.

One of the things I didn't like about reveal.js was that it could be a bit fiddly to get the environment set up but Zamansky shows you how to use the CDN version that gets dynamically loaded from the cloud.

The nice thing about reveal.js is that it's easy to use and doesn't require remembering a lot of details so it's perfect if, like me, you don't make a lot of presentations and don't want to spend a lot of time learning a more complicated system.



At least if you don't mind PowerPoint-like presentations.

Posted in General | Tagged , | Leave a comment

Literate Programming with R

Since I've been writing about literate programming lately, here's a nice talk by Don Knuth on Literate Programming in R. Knuth begins his talk with an overview of several books that have been written using literate programming and discussing why it's a win for the reader.

One of the things that many of the authors of those books said is that it's much harder to write a literate program that it is to write a book or write a program. Knuth disagrees. He says that some of the really hard programs he's written would have been impossible if he had tried just writing conventional program.

The second half of the talk considers using literate programming techniques to write R programs. Knuth says it's a bit different (from, say, C) because R is such a high level language. Nevertheless, literate programming works well in the domain too as he demonstrates with a small paper on the Kolmogorov-Smirnov statistic written using literate programming. If you're interested in the details, Knuth has posted a (corrected) copy of the paper. The slides are also available.

Posted in Programming | Tagged | Leave a comment

Tutorial Update (Week of July 10)

This is just a quick update on the two video tutorial series that I'm following. These are Mike Zamansky's series on Using Emacs and Rainer König's series on Org mode.

Zamansky has been traveling so there are no new videos from his series. He expects to resume the series sometime between now and the end of July.

König has also been busy but does have four new videos up. The first two videos cover internal and external linking. I use external linking all the time. It's a way of providing a clickable link to a external file or URL. All the links in my blog posts start off life as an Org mode external link. Although there can be many types of external links, the idea is straight forward and easy to learn and understand.

Internal links are a little more complex and König covers the topic well. Part of the complexity is the many ways that you can specify a target for a link. He also explains and demonstrates what Org calls a “radio target.” The idea is that you want to link to the same place in your file from many different places. Radio links let you specify a target and a word (or phrase) and every occurrence of the word(s) will be turned into a link to the target.

The third video discusses and demonstrates the Org attachment mechanism, which lets you attach files or buffers to an Org headline. It's very flexible and has its own dispatcher to handle the various cases. Take a look at the video for details.

Finally, König covers the Org priority system, which lets you assign priorities to the headings in a file. If that's the sort of thing that interests you, take a look at the video to see how it works and what you can do with it.

As I've said previously, I really like both these series and look forward to seeing videos from them. You should definitely check them out if you haven't already.

Posted in General | Tagged | 1 Comment

Intelligent Note Taking

Günther Hutter has a nice post on taking notes that can be exported to a nice looking document. His strategy is to use markdown to take the notes and then use pandoc to export them to \LaTeX and produce a PDF output. His post has an example of the input and output.

Karl Voit saw Hutter's tweet pointing to the post and responded with

That's exactly right, I think. Org mode offers many advantages including the (semi-)automatic insertion of time stamps as documented in Rainer König's excellent video on Org timers.

Org mode can facilitate the process in other ways too. For example, the export workflow is slightly easier because Org's already set up to export to \LaTeX and even automatically produce the PDF all from within Emacs. If you find yourself taking the same type of notes often, you can set up a template that has all the boiler plate already in it so you can concentrate of taking notes rather than bookkeeping.

Posted in General | Tagged , | 3 Comments

Avoiding Data Capture

Although I have Linux and FreeBSD machines, most of you know that I mostly live my digital life within the Apple ecosystem. I like the tight integration between my iPhone, iPad, and Macs. The downside, of course, is that it's a closed system and not by any means Open (let alone Free) Software. But being an apostate doesn't mean I have to be stupid.

If apple were to disappear tomorrow, I would be only slightly inconvenienced and I certainly wouldn't lose any data. That's because I never commit my data to closed systems using opaque data formats. Almost all my data—other than things like music, photos, JPGs, and stuff like that—are stored as plain text. All those exceptions are kept in open data formats.

The other day, I saw a post on reddit complaining about the difficulty of exporting data from Google Docs. I wasn't sympathetic. If you lock your data up in proprietary applications, don't be surprised when you find you can't get it out again1. If you want to keep your data available, keep it in plain text and use open source tools to manipulate it.

Of course, others will complain that you're not using Word or Google Docs or some other abomination but they're the ones making other people's life difficult. Almost always you can export your data to DOC/DOCX format so there's little excuse for not writing in Org-mode, Markdown, or something similar.

If you want a horrifying example of what can happen when you ignore this advice, imagine losing 14 years of artwork and an unfinished book manuscript because Google decided it didn't like something you said or did. Yeah, this guy deserved what he got but many many people are guilty of the same thing to a lesser degree. Indeed, Cooper isn't the first to lose data when Google2 decided it was no longer interested in supporting an application or felt you violated it's standards in some way.



Yes, I understand that sometimes your organization requires using Google Docs or whatever but that merely places the blame up a level or two.


Both my examples involve Google but this isn't about them. It's about committing your data to a closed system that you don't control.

Posted in General | Tagged | Leave a comment