Generating Technical Documents with Org-mode

Mike Hamrick has put up an excellent video on using Emacs and Org-mode to publish nice looking and consistent technical documents. In preparing a document, Hamrick uses literate programming and—although he doesn’t mention it—reproducible research techniques. That’s important, because as he notes, if the code or data used in the document changes, things that depend on that code or data will change as well and it’s important to keep them in sync.

This is exactly the problem—or at least one of the problems—that Org-mode’s Babel was designed to solve. By having Babel embed the results of running the document’s code against its data into the document itself, you’re guaranteed that everything will stay consistent.

Hamrick has a few tricks that he uses to get a nice looking document and keep it consistent. For HTML, he uses Fabrice Niessen’s ReadTheOrg theme, which I’ve written about before, to produce beautiful HTML documents. The other trick he uses that I really liked is to have a file of helper functions that he can call from the text he’s writing. These do things like return the length of a string or the first 2 characters of a string. By using them, he ensures that his document remains consistent even if the data the string is from changes.

Don’t worry about trying to absorb the source code from the video. He’s put all the code and data for the video on GitLab. Similarly, his configuration files are on GitLab so you can see his publishing setup.

The video is 22 minutes, 42 seconds long so you’ll need to block out some time but it’s very much worth it. If you use Org-mode in your writing, you really need to watch this video.

Posted in General | Tagged , | Leave a comment

Zamansky 61: Org-msg

Mike Zamansky has another video up in his Using Emacs Series. This time he looks at writing mu4e emails in Org-mode. Like me, he mostly wants to send plain text emails but sometimes he’d like to send tables, source code, or other rich text. He tried using the built-in org-mu4e-compose-org-mode but it’s deprecated and didn’t do everything he wanted. I’ve had the same experience. I tried org-mu4e-compose-org-mode but it didn’t do many of the things I cared about so I stopped using it.

Happily, Zamansky has found another solution: org-msg. It does a much better job of allowing you to use Org markup in your emails and rendering the results nicely. Of course, to do that it sends your mail as HTML so if you don’t like that, org-msg is not for you.

Take a look at Zamansky’s video to see both org-mu4e-compose-org-mode and org-msg in action. You can see right away why org-msg is the superior solution. In addition to its better rendering, org-msg is more configurable. You can, for example, set it to automatically add a signature or to extract the sender’s name from an email you’re replying to and use it to add a salutation.

If you’ve been looking for a way to use Org-mode with mu4e, be sure to spend a few minutes to watch this video. The video is just short of 15 minutes so it should be easy to find some time for it.

Posted in General | Tagged , | Leave a comment

Generating Gantt Charts with Org-mode

Perhaps because I’ve always worked for smaller organizations, I’ve never had to deal with Gantt charts. I’ve always considered them yet another management fad but that may be due to ignorant prejudice. In any event, lots of people use them and find them useful.

The other day I saw a pointer to a recent video on generating Gantt charts with Org-mode. It turns out to be pretty easy. Once you get the start and end dates into an Org table it’s just a matter of invoking a bit of gnuplot code from a source block to generate the chart.

As I said, I don’t have much interest in Gantt charts but I do like reading about leveraging Org-mode to accomplish tasks that used to take dedicated applications. The video is 13 minutes, 11 seconds so it should be easy to fit it in. It’s worth taking a look at if only to see how versatile Org-mode and Emacs can be.

Posted in General | Tagged , | Leave a comment

The Demise of the Car Key

As I predicted previously, car manufacturers are beginning to jump on the keyless bandwagon. In a way, they’re already there with the widespread adoption of key fobs to open doors and start the engine. The fobs are convenient because you don’t have take them out of your pocket or purse so there’s no fumbling around trying to find your keys. Still, it’s one more thing you have to carry around and in that sense it’s no different from having a traditional key.

What’s needed is a way to unlock your car’s doors and start its engine with your smartphone. According to a CNBC article, we’re on our way. Tesla has already implemented such a system and Lincoln has announced that it will introduce its own solution this fall.

There are, of course, some problems. The first thing everyone thinks of is, “What if my phone dies or gets lost?” That’s not a real concern to me for reasons I’ve explained before but not everyone is as obsessive about keeping their phone charged and in sight as I am. Lost phones or dead batteries could be a real concern for many people.

Another problem that the CNBC article points out is dealing with other people, such as parking valets, using your car. Depending on where you live, that can also be a significant problem. Tesla’s answer to both those problems is a card that can also be used to unlock and start the car. Lincoln’s answer is similar but uses a key fob instead of card. The problem with both those solutions is that we’re back to carrying something extra around.

I’m hoping that the next time I get a new car, the smartphone solution will be available and I can stop carrying around keys. That would be a delight.

Posted in General | Tagged | Leave a comment

Emacs Resources for Writers

Recently, James Gill tweeted about a collection of Emacs resources for writers that he’s curated into a GitHub repository. There are two parts to the collection:

  1. Tips and examples for writing with Emacs, and
  2. Writing a book with Emacs.

As you’d expect, most of the articles are about leveraging Org-mode for writing. That’s no surprise, of course, because Org excels at that. Indeed, almost any type of writing from memos or blog posts—such as Irreal’s—to journal articles or books is easily accomplished with Org. I’ve reached the point were virtually everything I write is done with Org-mode.

Sadly, the literary writing market runs on Word so if that’s your niche, you’re going to have to deal with conversion. Org, of course, has built in tools for that and if those don’t meet your needs, the excellent Pandoc almost certainly will.

If you’re a writer who’d like to escape from the pain that is Word and give Emacs a try, be sure to read the articles in Gill’s list. I’ve discussed several of them in Irreal previously but a few are new to me. A handful of the resources are videos but most are short blog posts or articles that are easy and quick to read.

It’s not always obvious how to use Emacs for writing effectively so the articles and videos collected by Gill, which distill a lot of hard won wisdom, can be a real help.

Posted in General | Tagged , | Leave a comment

Remote Debugging With Tramp

Matt Ray gave a very nice presentation to EmacsConf 2019 on Interactive Remote Debugging and Development with TRAMP Mode. One of the frequent complaints about Emacs is that it’s hard to work with remote files. Mostly that’s because the person complaining doesn’t know about Tramp. There are, of course, some situations where Tramp is not the best solution but it’s usually an excellent way of working with remote files.

It’s easy to think of Tramp simply as a way of editing remote files but it’s actually much more powerful than that. Ray demonstrates some of that power first by using Tramp to open a shell on a remote system and then by showing how he uses it to work with virtual machines on his own workstation. He uses the freely available tools Chef, Vagrant, and Kitchen to spin up a virtual instance of Debian and work with it all from the comfort of Emacs.

Even command-line aficionados will enjoy his video because although he stays in Emacs, he does a lot of the work using the shell command. He begins the video by showing why using the shell from Emacs can be a win over firing up a separate terminal. During the rest of the presentation, he just opens a shell on the remote machine—or virtual machine—when he needs to make a change to the remote environment.

The video is about 35 and half minutes so you’ll probably have to schedule some time but I found it worth the time.

Posted in General | Tagged | Leave a comment

List Commits to Dired-Marked Files

Via Wilfred Huges we have this useful tip:

Apparently, it’s not widely known.

I just tried it—I’m running dired+—and it worked perfectly. It’s easy to see how the magit-dired-log command could be very useful.

Posted in General | Tagged | Leave a comment

Digital Payments in India

I’ve written several times about how the Chinese, through apps like WeChat, can pay for almost anything with their smartphones (1, 2, 3, 4, 5). One of the things that have helped make digital payments ubiquitous in China is the use of QR codes. All it takes to accept a digital payment is a QR code that the buyer can scan with their phone. It’s cheap and easy and just about every merchant—at least in urban areas—participates.

Paytm is bringing similar functionality to India. You can get an Uber ride, buy a railway ticket, send money to a friend, pay utility bills, and all the other things you’d expect from a digital cash service. India is still predominately a cash-centric society so, unlike China, digital payments has not replaced cash. Paytm has about 400 million users out of the 600 million Internet users but there’s plenty of room for growth because another 800 million Indians have never been online. Paytm is moving in the same direction as WeChat as they add new services to their app.

The driving force behind Paytm is Vijay Shekhar Sharma, who is making plans to bring Paytm to the United States. The US is far behind in digital payments and represents a huge market for Paytm and other services. Of course, Apple and Google have been trying to bring this functionality to the US for the past few years but have met some resistance. Still, Apple is making headway and the market does seem to be developing. It will be interesting to see what happens.

I, of course, would be delighted if everyone would start accepting Apple Pay but perhaps a QR-code-based system can break through merchant reluctance.

Posted in General | Tagged , | Leave a comment

Project and Org Mode

Karl Voit has an interesting post in which he explores ways of defining projects in Org-mode. Note that by “project” Voit doesn’t mean the type of object handled by an app such as Projectile, but a set of tasks meant to achieve a common goal. If you’re like me, the answer seems obvious: add a project tag to the header defining the project.

Of course, things aren’t that simple, especially for someone like Voit who on the one hand has exacting standards for how things should appear in, say, his agenda but on the other hand wants very fluid Org files. By “fluid” I mean that projects aren’t necessarily top level items or even second level items. They can appear anywhere in the tree. I’m inclined to be more rigid in my Org file layout so I avoid some of the problems that Voit has.

Voit discusses several possibilities along with their pros and cons. I’ll let you read his post to see what solution he finally settled on. If you’re trying to impose a project structure on top of Org, it’s definitely worth taking a look at his discussion.

Posted in General | Tagged , | Leave a comment

PayPal Says the Death of Cash Is Here

I recently wrote a couple of posts, here and here, about how we are moving to an essentially cashless society and the problems and backlash it’s bringing. The TL;DR is that it’s now possible to live your life pretty much without handling actual cash—I know I do—and that many merchants started adopting a “no cash” policy. Those policies were met with resistance for a variety of reasons that are discussed in the two posts.

Having written those posts, I keep seeing, in accordance with Baader-Meinhoff, articles about going cashless and the backlash against it. The latest is a CNBC article on PayPal CFO John Rainey who says that the death of cash has arrived. It was killed, he says, by the rise of digital payments and smart phones. PayPal sees itself as a enabler—through such services as Venmo—of the new cashless society.

If you recall my previous posts, you know that the principal argument against a cashless society is that many poor people don’t have access to banks1 or credit cards. Rainey notes that 70% of these people do have a mobile device and says that PayPal is going to solve the cashless problem by bringing the power of a bank branch and its financial services to those devices. It’s not clear from Rainey’s remarks exactly how this would work without a bank or bank-like institution holding the funds to be transferred. It will be interesting to hear more details.

Footnotes:

1

As soon as Irreal achieves world domination, use of the term “unbanked” or any of its derivatives will be a capital offense.

Posted in General | Tagged , | Leave a comment