The Case Against Agile

Back in early April, I wrote about Nic Ferrier’s take on agile. Ferrier understands it as a way of increasing communication in development teams. He makes a good case that agile is at worst benign and that in most cases it has a lot to offer.

Here’s the other side of the story. Ralf over at agileoverflow presents the above post from Michael O. Church arguing that agile is nonsense and giving a long and detailed account of its shortcomings. It’s very interesting and you should definitely read it.

As I said in my original post on Ferrier’s interview, I’ve never used agile and am completely ignorant about its benefits and shortcomings. The two posts give opposing view points and help, at least, identify some of the main issues. I still don’t know if agile is something we should embrace or not but I’d be happy to hear from readers on either side who have some wisdom on the matter.

Posted in General | Tagged , | Leave a comment

Org Mode HTML Themes

Fabrice Niessen has a couple of beautiful Org mode HTML themes that lets you produce lovely and functional Web pages by exporting normal Org mode files to HTML. Currently there are two themes. The first, Bigblow, is a general theme for Org documents. It does the same sort of thing that exporting to the default theme does but has much more functionality and produces beautiful output. Niessen has a demo of the theme in action that will give you a good idea of its capabilities.

The second theme, ReadTheOrg, is a clone of the Sphinx theme used by the Read The Docs site. It’s perfect for producing HTML documentation.

Niessen has a useful refcard that explains how to use the themes with Org mode. It’s mostly the usual Org mode objects but there are a few other commands to generate special notation for things like notes and warnings.

These themes and Katherine Cox-Buday’s post on exporting to PDF show that Org mode provides a publishing platform that is much more flexible than it might appear. The default output is very nice and usable as it stands but with a little CSS or documentclass work you can produce beautiful documents that are the equal of any other documents—at least any other documents that are digitally produced.

Posted in General | Tagged , | Leave a comment

Memacs Paper

I’ve mentioned Karl Voit’s Memacs project before. I’m really interested in its ideas and have been implementing various manual procedures to capture some of the same data. My end goal is to implement Memacs on my own machines but it may take some work as Memacs is implemented in Linux and some of the data gathering modules may have to be reworked to function on OS X.

If you’re interested in more information about Memacs, Voit published a very nice description of it on arXiv.org, which you can get for free. The paper goes into the rationale for Memacs, its basic architecture and then a use-case story that illustrates how it’s helpful.

It’s an interesting paper and not too long so you should give it a read if you have any interest at all in personal information management.

Posted in General | Tagged , | Leave a comment

A Nice Set of Emacs Tips

Via Artur Malabarba we have a link to an excellent set of Emacs tips from Ben Maughan. Maughan has a local mailing list to which he posts an Emacs tip every week. Happily, for the rest of us, the list is available as a Web page too.

A lot of the tips are elementary but I learned a couple of things so it’s probably worth your while to cycle through them. Or you could extend the pleasure by reading one a day. Either way, the tips are short and to the point so you won’t waste any time.

I’m glad Malabarba pointed us to the list and I’m grateful to Maughan for making it available to all of us through the Web site. Now if I could only figure out a way to get on the list.

Posted in General | Tagged | 3 Comments

Grep in Emacs

Xah Lee has a useful tutorial page on grep and grep-like searches from Emacs. The page is an old one but is worth bookmarking if, like me, you keep a list of valuable Emacs reference material. For some reason, I have difficulty remembering the material covered in the tutorial so it’s really useful to me to have a quick link to it.

Lee covers how to use grep, rgrep, and lgrep from Emacs. That’s pretty straight-forward, of course, but he also shows how to get the resulting file listed in a dired buffer and how to search every marked file in dired for a regular expression and then step through the results.

It’s a short tutorial and worth taking a look at if you’re not already familiar with using grep and grep-like searches from Emacs. You may also want to bookmark it so you have it handy for a quick review.

Posted in General | Tagged | 1 Comment

Some Dired Tips

Marcin Borkowski (mbork) has a nice post on Emacs dired tips. Dired is amazingly powerful but most of us don’t begin to take advantage of its capabilities. Mbork looks at a few things you can do to enhance your workflow with dired. Many of them I was (and you probably are) familiar with but I did learn about how to omit “uninteresting” files.

He covers several areas so you should take a look. If you learn even one thing you didn’t know, it will be time well spent.

Posted in General | Tagged , | Leave a comment

The 500 Mile Email Limit

If you’re in our business for any length of time, you accumulate a number of amusing stories. Most of them are in-jokes that outsiders wouldn’t get or find funny.

One of my favorite such stories concerns a problem with email recounted by Trey Harris. At the time Harris was working as a system administrator at MIT (I think) and the Chairman of the Statistics Department called saying they had a problem with email. When Harris queried him on what the problem was, he was told that they couldn’t send any emails further than slightly more than 500 miles. Harris’ reaction was pretty much what yours or mine would be: he didn’t believe it. That is, until he ran his own tests and discovered it was really happening.

Before you follow the link and read what was going on, try to imagine what the problem was. I must admit, I sure didn’t know when I first read the story. It’s one of those things that seems impossible until you read the explanation.

I’m glad someone posted the story again. I haven’t seen it in years and it definitely deserves to be read and enjoyed by geeks everywhere.

Posted in General | Tagged | Leave a comment

Diceware as a Pipeline

If you’re interested in picking a passphrase using the Diceware method but don’t want to bother with compiling a program for what is most likely a one-off use, you’re in luck. Dr. Drang over at And now it’s all this shows how to use a simple pipeline to get \(n\) random words from the Diceware list.

He even shows you how to build your own lists using books from Project Gutenberg. If you’re on OS X, you won’t have shuf available so you’ll have to install the GNU Coreutils but this is easily done via Homebrew if you don’t like compiling your own utilities.

This is a nice solution and easier than bringing up my Lisp environment for those rare occasions when I want a passphrase.

Posted in General | Tagged | Leave a comment

Working with Customers

We’ve all been there:

Posted in General | Tagged | Leave a comment

Calc Update

I’ve written before that I’ve started learning Calc. That last post was after I’d worked through the introductory material (which is, itself, quite dense). I’ve now completed the first three sections of the tutorial covering

  • Basic Tutorial (RPN, stack, algebraic notation, Undo/Redo, Modes)
  • Arithmetic Tutorial (arithmetic and scientific functions)
  • Vector/Matrix/List Tutorial (operations on vectors and matrices)

It may seem that my progress is slow—that last post was two weeks ago—but there’s a huge amount of material, especially in the last section. The basic and arithmetic tutorials are pretty much what you’d expect although you’d probably be surprised at how many different functions there are. The last section is astounding. For example, there is a function to calculate the dot product of two vectors but even if there weren’t you could do the same operation using the map and reduce functions. In Elisp (but not Calc) terms that would be

(reduce #'+ (cl-mapcar #'* V1 V2))

There are lots of examples that don’t have a simple, single command so these functions turn out to be really powerful and useful.

The tutorial has exercises, some of which could be from the Euler Project. They’re not all that hard, thankfully, but some of them require careful thinking about before you can solve them. They’re really useful for helping to cement some of the functions and techniques in your head.

I’ve already started using Calc in my day-to-day work. Where before I’d bring up a Lisp REPL or try to make do with Elisp, I now just pop into Calc and perform whatever calculations I need. It’s nice that I don’t have to worry about overflow and things like that. The only downside is that I still haven’t internalized all the function codes. They are generally one or two characters and while some—like *, +, …—are obvious others are less so. For example VC is the cross product of two vectors and HL is \(\log_{10}\). Fortunately, there’s a cheat sheet that lists the most common commands.

I’m really enjoying working through the tutorial and am learning a lot. I’ll post another status report when I’ve worked through more of the tutorial.

Posted in General | Tagged , | 4 Comments