Emacs for iA Writer Users

I’ve long since moved all my writing—at least all my new writing—to Org mode. It does everything I need and let’s me stay in Emacs. Different folks favor different strokes, of course, so it’s always interesting to see what they are and especially how they use Emacs to scratch their itches.

Azer Koçulu recently moved to Linux from macOS and wanted to bring his writing protocol with him. He was using iA Writer on his Mac but it wasn’t available on Linux. Koçulu decided to see if he could recreate the iA Writer experience in Emacs. He was happy with the result and documented what he did in a blog post. It turns out that it’s pretty easy to set up an iA Writer environment in Emacs. I’m not an iA Writer user so I can’t say how well it recreates the experience but Koçulu is happy with it.

There’s probably a larger lesson here. If you really like some writing tool but need to move to an environment that doesn’t support it or want to move to Emacs for your writing for some other reason, Emacs probably has you covered. Koçulu shows you how to do it for iA Writer and here’s a video showing how to do it for Scrivener. Doubtless solutions exist for other tools too.

Posted in General | Tagged | Leave a comment

Xmonad

One of the reasons I enjoy working as much as possible within Emacs is that I have a consistent mouseless interface to all my applications. That means that I develop muscle memory for most of what I do and I never have the cache miss of reaching for the mouse. I’m a touch typist so being able to do everything from the keyboard is a real win for me.

But what if you aren’t an Emacs user and still want to keyboard driven environment? It turns out there’s an answer that Ethan Schoonover brilliantly demonstrates in his video, XMonad Demo. Xmonad, for those of you who don’t know, is a tiling window manager for the X Window system. It’s very configurable and can allow you to live an almost mouseless life.

The features are too legion to detail in a short blog post so you should take a look at Schoonover’s video. He demonstrates a custom configuration that can even adjust itself depending on what screen he’s using. There’s a link to his configuration if you’d like to duplicate it or use it as a starting point for your own.

Those of us living in the Mac world can’t take advantage of Xmonad, of course, but if I were using X, I would definitely want it as my window manager. After you watch the video, you’ll see why. The video is 17 minutes so you may have to schedule some time.

Update [2018-10-11 Thu 11:37]: Fixed links.

Posted in General | Tagged | Leave a comment

An Old School Editor

I saw this tweet:

and my first reaction was that it made me feel old. But then I started wondering: in what sense, exactly, is Emacs “old school?”

Certainly not in the sense that it’s a relic. Emacs development is on-going and vigorous. And not in the sense that it’s underpowered and lacking features, either. Emacs is famously the “kitchen sink” editor, containing every possible feature. At one point, a kitchen sink was even used—at least informally—as its logo.

Perhaps it’s old school in the sense that it’s mostly used by gray beards. But no, younger users are constantly adopting Emacs as you can see by their questions and comments on the various forums. Maybe it’s that Emacs is not up to some modern tasks. Again no. Emacs is so extensible that you can configure it to do any possible editing task. You can even understand it as an editor construction kit. As I wrote the other day, no editor can claim to be more powerful because whatever feature they base that claim on can be added to Emacs, probably relatively easily.

So what’s the answer? Bling. Emacs doesn’t have any. I suppose if you really wanted it, you could add some chrome to Emacs but it’s beside the point and most Emacs users don’t see the need for it. To reuse my previous analogy, you don’t want a sports car for working the farm.

So I’ll embrace the “old school” label and wear it proudly as I use the most powerful editor possible even if it is a plain Jane.

Posted in General | Tagged | Leave a comment

The Decline of Penmanship

In response to Friday’s post on going paperless, Smitty notes that one of the consequences is the decline of penmanship. He’s not the first to notice. Here’s what The Oatmeal had to say about it. The Oatmeal is, as always, screamingly funny but the cartoon contains the germ of truth.

Of course, it’s also true that:

Posted in General | Tagged | Leave a comment

Final Update on Mojave/Emacs Problem

Thursday night I compiled a new Emacs from the Emacs-26 branch1. Today, Friday, I updated my OS to Mojave. I’m happy to say that everything seems to be working fine. I will hold off publishing this until Saturday just to make sure nothing nasty pops up.

It does appear, though, that Alan Third’s patches have resolved all the problems that people were reporting. Thanks to Alan and all the others who worked on getting this resolved so quickly.

Footnotes:

1

Compiling Emacs from source now requires a later version of makeinfo than I had on my system. The easiest way to resolve that is to use brew to get the latest texinfo release. Of course, you can just get the source from GNU and compile it yourself if you’d rather.

Posted in General | Tagged , | Leave a comment

Another Take on Going Paperless

After I wrote the post on Aqeel Akber’s Perfect Email Setup, I browsed around his site a bit and found this other interesting post from 2016 on going paperless. I’ve written a bit on that subject in the last few years ever since I started making a conscious effort to avoid using pens, pencils, and paper as much as I could. I’ve been successful in my attempt to the point that except for a few common exceptions—the occasional check, signing of credit card receipts, making a mathematical calculation, and the like—I virtually never pick up a pen or pencil anymore.

Although we both start with Org mode, Akber’s solution is interesting to me because it differs from mine in some respects. He likes to store his data according to type in separate directories and files. That’s the natural thing to do especially for those of us brought up on the command line. The thing is, it’s hard, in many cases, to decide where a piece of data should be stored and can correspondingly make it harder to find later. And there’s really no reason to do it. Search on modern computers is fast and will find the data no matter where it’s stored. Ironically, Akber himself demonstrates this in a short video demonstrating how he searches for data. He just uses an Org mode search that doesn’t depend at all on which Org file the data is stored in.

He also likes to have a separate file for each day in his notebooks/logs. Using Org mode’s datetree capture makes this—and all the machinery he added to support it—completely unnecessary. I simply use the appropriate capture template and Org will add the entry in the proper place—creating a new headline for the day, if necessary—without my doing anything special.

Still, it’s fair to say that our methods are more alike than different. We both use Org as the basis of our note and record keeping and value the fact that the data is plain text. We differ in that he likes to encode his data taxonomy in the file system while I prefer to dump everything in just a few files and let search worry about finding them. If you’re looking for a way to go paperless yourself, be sure to take a look at Akber’s post. It’s a nice example of one way of approaching the problem.

Posted in General | Tagged , | Leave a comment

Another “Perfect” Mail Setup

As you all know, I really like the idea of email within Emacs and collect various solutions to implementing it. I’ve long settled on mu and mu4e and have no intentions of looking for something else. Still, it’s nice to see what software and configurations other people pick.

Aqeel Akber has settled on his own perfect email setup. His uses notmuch for both the indexer and mail client. Like me, he uses to mbsync to retrieve his email (from Google in his case). Unlike me, he uses msmtp to take care of sending his emails. This is an advantage because, among other things, it takes care of queuing his emails if they can’t be sent immediately.

Akber likes to partition his computer system into “subsystems,” which he believes makes them easier to configure, manage and reason about. His configuration reflects this but you needn’t blindly follow his setup. On the other hand, if you want to, you can simply download his configuration and make the necessary changes to have a similar system. If you’re looking for an Emacs/Email solution, Akber’s post is worth taking a look at. A problem that many seem to have is how to get mbsync to work with Gmail. Akber has solved that problem so if you have it too, that alone makes his post worthwhile.

Posted in General | Tagged | Leave a comment

RMSbolt

I have always felt that knowing, at least in a general way, how a higher level language compiles down to machine code enables one to write better code in the higher level language. That’s not to say that everyone should learn their processor’s assembler language—that’s not necessary these days and would require an effort greater than the expected returns—only that you should be able to read an assembly listing and get a general idea of what it’s doing. This seems so obvious to me that I don’t understand how people can disagree. Some do, however, and they probably won’t be interested in this post.

For many languages it’s possible to get a listing of the assembler output or, in the case of languages like Python, a listing of the bytecode. The problem is that in most cases it’s enough trouble that you won’t bother unless you have a pressing need. Jay Kamat’s RMSbolt package makes everything easy and will give you an automatically updating display of the generated code in a window next to your source code.

Take a look at the animated GIFs in the project’s README to see it in action. This is really ideal because it will let you try alternative statements and see how their code differs. Compilers are always doing surprising things, sometimes even erroneous things, so this can be very useful.

RMSbolt supports C/C++, OCaml, Haskell, Python, Java, Pony, and (limited) Common Lisp. It’s available from Melpa and doesn’t require anything other than Emacs 25 or greater and whatever compilers you’re using.

UPDATE [2018-10-03 Wed 17:55]: Fix link.

Posted in General | Tagged | Leave a comment

Reproducible Research and Literate Programming in Econometrics

About a year and a half ago Rob Hicks wrote an interesting post on bringing literate programming and reproducible research methods to Econometrics. Hicks works mostly in Python and Matlab but also sometimes needs Strata and R. When he began looking for some software to make research and writing easier, he had pretty simple requirements: being able to handle LaTeX (including graphics and math), supporting both Python and Matlab, and being able to publish his results in PDF or HTML.

Of course, once he began investigating, his list grew. Most of the new items were concerned with supporting additional programming languages and with being able to easily produce (at least an almost) submission-ready manuscript. You can check his post for his final list of requirements.

Hicks considered four possible solutions:

  1. Strata with Markdoc
  2. R with Markdown
  3. Jupyter Notebook
  4. Org Mode

He includes three tables that summarize his results.

No one reading this will be surprised that he chose Org mode as his solution. It’s unmatched at producing great documents and packages such as John Kitchin’s Org-Ref make manuscript preparation much easier. It also supports nearly every language and—although Hicks doesn’t mention it—it’s easy to add others.

Most of us, of course, aren’t doing research in Econometrics but Hick’s results are applicable to a large number of fields and it’s well worth taking a look to see if his results are applicable to yours.

Posted in General | Tagged , | Leave a comment

Blogging with Org Mode

Ambrevar (Pierre Neidhardt) has an interesting post on why and how he uses Org mode to blog. His two main criteria are that

  1. He can write his blog posts in Org mode.
  2. He was complete control over how his blog is laid out.

It turns out that he can accomplish that using org publish. That required that he write a bit of Elisp for things like his RSS feed but he mostly used org-publish out of the box. Take a look at his post to see how he set things up and what the result looks like.

What I found most interesting about the post was his discussion of the tension between keeping a post up to date and the value of preserving the original post. At Irreal, I do that by making whatever fix is required and adding a note at the bottom of the post. Ambrevar has a different, arguably better, solution: He keeps his posts in a publicly available Git repository. That way, readers can see both the original post and any corrections/updates that he makes. This, it seems to me, offers the maximum in transparency.

If you’re a blogger or interested in becoming one, take a look at Ambrevar’s post. Whether or not you use his method, he has a nice list of goals and things you should think about when you set up your blog.

Posted in General | Tagged , | Leave a comment