Book Logging

Jack Baty has a post on how he logs the books he’s read. Logging books you read may be useful information to keep but it’s probably not all that interesting to others. What is interesting, though, is how he uses column view to display the information.

He collects the information as an Org file with each top-level header the title of the book. Specific information about each book—such as author, pages, rating, and other information—is kept in a PROPERTIES drawer. Since the items in the PROPERTIES drawer are tagged, it’s easy to access them to produce reports.

As Baty demonstrates, it’s easy to produce such a report using Column View. You can even perform some elementary arithmetic on the numeric entries as Baty shows by summing the total number of pages he’s read.

Of course, not everyone is a prolific reader or wants to track which books they’ve read. Still, the paradigm Baty illustrates is applicable to many situations: collect the information as tagged data in a PROPERTIES drawer and use column view to display it.

Baty doesn’t even use a capture template to record his data. He feels that the books he’s read are insufficiently numerous to make a capture template worthwhile. I disagree with that but it’s surely an individual decision. For many applications, a capture template is just what you need to ease data collection.

The post is short and worth your attention as a nice way of collecting and organizing data.

Thanks to Karl Voit for the link.

Posted in General | Tagged , | Leave a comment

Airbnb Faces and Adapts to the Future of Work

With the COVID-19 pandemic winding down, many companies have started planing for getting their workers back into the office. They are, if you’ll forgive the hackneyed cliché, like dinosaurs after the meteor hit wondering how to get things back to normal. But the old days aren’t coming back and the companies most likely to survive the post pandemic world understand this and are planning for it.

A case in point is Airbnb. Rather than asking how they can get their workers to return to the office, they’re asking how they can leverage what they learned about remote work during the pandemic to hire and retain the best possible people. Their CEO, Brian Chesky, just announced Airbnb’s plan for the new order.

The TL;DR is that virtually everyone in the company can work anywhere they like within the country they’re currently working in without a change in compensation. That includes, for those inclined, a return to the office. Chesky also recognizes the importance of face-to-face interaction so they’re planning (at least) quarterly get-togethers.

There’s more involved in the Airbnb plan, of course. Here’s Chesky’s summary:

  1. You can work from home or the office
  2. You can move anywhere in the country you work in and your compensation won’t change
  3. You have the flexibility to travel and work around the world
  4. We’ll meet up regularly for gatherings
  5. We’ll continue to work in a highly coordinated way

Which sort of company would you rather invest in: a company like Airbnb that accepts and plans for the new reality or a company that obsesses over how to force employees back into the office? Who would you rather work for: a CEO who says I trust you to work as you always have or a CEO who thinks that if he takes his eyes off you for a second you’ll start goofing off? Put that way, the questions answer themselves.

Posted in General | Tagged | Leave a comment

Red Meat Friday: Coffee Confidential

This episode of Red Meat Friday isn’t really red meat so much as an account of a skirmish between two bête noires of yore. The two combatants were Microsoft and IBM. Not very long ago they were the two giants in the field and feared by everyone. Younger engineers probably have only vague memories of what Microsoft was like when Gates was still there. They were very aggressive and absolutely committed to crushing anything and anyone they perceived as competition. Still, as an organization they had a West Coast laid-back vibe.

Most younger engineers probably have no memory of the way IBM used to be. That IBM seems like it was from a different century. Actually, it was from a different century. They were straight-laced, buttoned-down, and stiff necked. Andy Tanenbaum (of Minix fame) captures the zeitgeist perfectly in this vignette from his personal FAQ on why he chose an academic rather than industrial career.

“When I was in college, I worked at IBM one summer to earn money. One day I wore a shirt that wasn’t the right shade of white. My coworkers informed me of my transgression and made suggestions for improving matters. In great detail.”

They may still be that way but no one knows or cares anymore.

The story of their squabble is told by Raymond Chen, a longtime Microsoft engineer. The action takes place during the companies’ joint development of OS/2. IBM’s development took place in Boca Raton, Florida. Most of Microsoft’s effort was centered in Redmond but there was a small Microsoft contingent at Boca Raton.

The dispute centered on coffee. The only coffee available at the IBM facility was a particularly execrable slush dispensed by a machine. Naturally, the Microsofties bought their own coffee maker. Naturally, IBM objected. The resulting story is pretty funny and worth reading about. It’s also the only time in a long while that I’ve taken Microsoft’s side on anything.

Posted in General | Tagged , | Leave a comment

The Golden Age of Emacs

Over at the Emacs subreddit, tdavey asks if we’re living in the golden age of Emacs. He’s an unlikely person to be asking this question because he’s not a developer or scientist. He is, to use his words, “an ordinary business-type who values Emacs mainly for Org.” Still, he’s a long time user (11 years) so his is an informed opinion.

The TL;DR is that he believes Emacs is “growing and innovating at a very healthy clip.” It’s a position that I’ve often advanced and, indeed, tdavey quotes Irreal as saying that Emacs is at the forefront of editor/IDE development. We agree that the Emacs ecosystem is healthy and robust, and that Emacs really is at the forefront of editor/IDE development.

But is this the Golden Age of Emacs? I don’t know. Certainly it’s a good time for Emacs and to be an Emacs user. I’ve felt for sometime that Emacs is losing mindshare to Vim but felt that was a shift in what people wanted: a really great, fast, efficient editor or an extensible framework that can encompass your entire workflow. I understand that.

What I don’t understand is Emacs losing mindshare to things like VS Code. It’s really just a pale imitation of Emacs but with glitz and bling. I don’t understand what VS Code offers (yeah, yeah, LSP) that Emacs doesn’t do better.

Still, as I always say, use whatever editor works for you. One thing for sure, if you’re an Emacs user, this is a good time to be one.

Posted in General | Tagged | Leave a comment

A User Discovers the Difference Between Vim and Emacs

In another Vim to Emacs story, LowCom over at the Emacs subreddit offers his take on the transition. It’s interesting because his analysis focuses on how Vim and Emacs differ. He says, as I often have, that you can’t really compare them because they are different things. Vim is an excellent, (relatively) light weight, fast editor with a wonderfully composable command set that is easy to learn and remember.

Emacs does have a builtin editor but it’s much more. Probably the best characterization is that it’s a Lisp interpreter that comes with an editor application. But the Lisp interpreter is the important part because it allows you to expand in almost any direction you like. That doesn’t mean just that you can customize the editor application; you can extend Emacs in completely different dimensions such as a mail client, an RSS reader, a Git client, a music player, a remarkably complete Zettelkasten, and almost anything else you can think of, especially if it’s text based.

Low Com doesn’t think much of the default Emacs keybindings so, of course, he uses Evil. There was some pushback on that and much of the conversation in the comments is spent on litigating that issue. I’ve used both and like both. When I moved to Emacs, I just learned the native keybindings and am glad I did. Now I know both.

The traditional argument against the Emacs keybindings are that they lead to RSI. Guys I trust, like Eric Fraga, assure me that Evil really does help combat RSI. I’ve been an Emacs user for about 15 years and spend essentially all day on my computer but have never had an RSI problem so I don’t mind the chording. Still, I understand others aren’t as lucky but as usual, Emacs lets you have it your way.

Posted in General | Tagged | Leave a comment

An Apostate Returns

It’s a commonplace in the Emacs community that one of the big advantages of Emacs is that all your tools are connected and work with each other. Those of us at the extreme edge of that truism make it a point to try to do everything we can in Emacs. Still, it’s mostly just something you hear repeated occasionally: there aren’t many case studies to confirm it.

Over at the Emacs subreddit, pragmat1c1 has some actual data. He was an Emacs/Org-mode user who got seduced by all the shiny applications for writing and collecting/storing information. It’s true: they are pretty nice but as pragmat1c1 discovered, they don’t work all that well together. You’ve got a set of nice tools but they aren’t integrated and it’s difficult to share information among them.

Realizing this, pragmat1c1 returned to Emacs and Org-mode and was delighted to (re)discover how well things fit together in the Emacs ecosystem. All his activities, such as writing, text editing, and task management, are connected and he can access any of them while working on any of the others. Everything just fit together.

So, it appears that all that conventional wisdom is correct. The Emacs environment really does provide a coherent framework for accomplishing all your work. So much for Emacs being a niche application with ever decreasing relevancy.
.

Posted in General | Tagged , | Leave a comment

Hints For Writing Unix Tools

Marius Eriksen has a useful post for those not afraid to leave the comfort of the GUI for the command line. It’s long been noted that the ability of Unix to compose tools into pipelines is extraordinarily powerful and makes building one-off custom commands almost trivially easy.

This composability is a feature of virtually all Unix command line tools but sometimes a specific workflow or domain requires a new tool that can’t be built up from existing ones. Eriksen’s post, Hints For Writing Unix Tools, offers some pointers for building such a tool. The main principle is too make sure the new tool composes well.

First and foremost that means reading from STDIN and writing to STDOUT. That’s the key to making it possible to use the tool in a pipeline. Two other, almost as important, principles are to avoid interactive input and to write error messages and other diagnostic output to STDERR.

There’s more, of course, so be sure to take a look at Eriksen’s post to get the whole story. I know that it’s a popular opinion among some younger developers that the command line is dinosaur land but I think there’s a good case to be made that if you can’t build command line pipelines, you’re working too hard. Once you accept that, it’s pretty clear that knowing how to build your own pipeline applications is a useful thing to know.

Posted in Programming | Tagged , | Leave a comment

Editors versus IDEs

Over at the Hacking the Grepson podcast, Mike and Matt discuss text editors versus IDEs. The podcast was at once informative and annoying. On the one hand, they discuss the difference between a text editor and an IDE.

If you’re like me, your first reaction is, “What’s the problem? Everyone knows the difference.” That works right up until someone asks you specify what that difference is. Then we mostly fall back to channeling Justice Stewart and settle for saying we can’t define it “but I know it when I see it”.

Mike and Matt have a pretty good definition: it’s an IDE if you can compile, debug, and run the code from within the application. Of course, even that’s a little squishy. Is Emacs an editor or an IDE? According to Mike and Matt’s definition, it’s an IDE. I’m fine with that but others would disagree. Everyone agrees that Nano is an editor and that Eclipse is an IDE but there are a lot of editors/IDEs in the middle.

The annoying aspect of the podcast is that Mike and Matt act as if they were born yesterday. In discussing the ED line editor, they wonder why anyone would choose such a paradigm as if they’d never heard of a teletype and were unaware of how editing was done in the days before cursor addressable terminals—including, of course, the early development of Unix as this iconic picture of Ken Thompson and Dennis Ritchie illustrates.

Even worse, from my point of view, is their dismissal of Emacs as a niche editor that has long since been eclipsed by VS Code. As I’ve said many times, I’m fine with the unenlightened preferring the bling and glitz of editors like VS Code but please don’t tell me that VS Code and other pretenders have supplanted the Emacs. The fact—as evidenced by Org-mode and Magit—is that Emacs is at the forefront of editor/IDE development. If you don’t understand and admit this then your opinions on the relative merits of editors is suspect.

Posted in General | Tagged , | Leave a comment

Invoking the *Messages* Buffer

The Emacs Command of the Day Twitter feed tells us something that I didn’t know:

That’s a really handy way of popping up the *Messages* buffer and it works even though the minibuffer is not active. Of course, you have to use the mouse to invoke it but that’s not too bad if you have a laptop with a trackpad—especially a MacBook where you can do the whole operation with your thumb while keeping your fingers on the home row.

There are many ways of popping up the *Messages* buffer—Ctrl+h e for example—but clicking on the minibuffer seems particularly easy. If you’ve taken a sacred pledge to abjure mouse usage from within Emacs, this method is obviously not for you but if you’re flexible about the mouse it’s a nice thing to know.

UPDATE [2022-04-26 Tue 13:24]: adjure → abjure

Posted in General | Tagged | Leave a comment

Org Mode 9.5.3

I somehow missed this yesterday but Bastien has announced the release of Org-mode 9.5.3. It’s a bug release so it’s probably not urgent to install it unless you’re being bitten by one of the bugs.

Bantien’s announcement notes that the next release, Org 9.5.4, will be released with Emacs 28.2.

As always, thanks to everyone involved in getting this release out to us. Org is incredibly important to my workflow and I couldn’t do most of what I do without it.

Posted in General | Tagged , | Leave a comment