Steve Jobs’ Cabinet

Over at Perfect Days, Padraig has a post that really resonated with me. He begins by quoting Steve Jobs on cabinet making. Jobs says that a real craftsman wouldn’t use a piece of plywood on the back of a beautiful cabinet even though it will be against the wall and no one will ever see it. The thing is, according to Jobs, is that the carpenter will know it’s there and that it would be an insult to his aesthetic sensibilities.

Padraig remembered this quote when he took apart a MacBook Pro to replace a speaker. He was struck by how elegant its construction was. It was the same principle. Hardly anyone would ever see the inside of the computer but it was still built as if it was visible to all.

This commitment to excellence, even when it’s not visible is, to me, the essence of good engineering. Not meeting a deadline. Not meeting some arbitrary Wall Street expectation. Not making a fortune in the marketplace. But being able to sleep at night knowing the thing you built is as beautiful inside as it as outside. That’s what we mean by great engineering.

Sadly, I think we’ve lost some of that. Maybe it’s just a matter of being a geezer and wanting kids to get off my lawn but I see less and less of that commitment. I’d guess that that’s because many people no longer think of programming as a craft but as just another job to get through with the least amount of pain. To be sure, the urgency to get the product out the door no matter what was always there but in the old days™ there was more push back from engineering, Now, many don’t seem to care. It’s why we can’t have nice things.

Posted in General | Tagged | Leave a comment

More From Casual

Charles Choi has announced some upgrades to his Casual Suite. He’s added two new interfaces along with the appropriate menus:

  1. Compile for compilation-mode and grep-mode
  2. Elisp for emacs-lisp-mode

He also makes explicit the support for an Eshell interface that he introduced earlier but didn’t write much about. Finally, a big part of this release is improved documentation, which he writes in Org mode, exports to Texinfo, and then formats as Info files and HTML.

As usual, transient menus are provided for each of the modes Choi supports. If, for example, you use the compile command all the time, you’ve likely internalized the auxiliary commands you need to negotiate the mode. On the other hand, if you only occasionally invoke compile, you may not remember all the related commands and will welcome the ability to popup a menu with those commands. As I’ve said before, having these menus available but hidden by default is a win. They only appear when you ask them to and then they disappear again.

Choi has put a lot of effort into Casual and it continues to improve and cover more areas. Irreal, as most of you know, is not a fan of menus in general but I do like the idea of a menu that pops up only when you ask for it. It’s the same concept as the excellent which-key: it’s there to help you discover commands that you don’t use often enough to remember.

Posted in General | Tagged | Leave a comment

Emacs Carnival Writing Experience: Choi

As you all know, I’m really enjoying Greg Newman’s Emacs Carnival: Writing Experience blog posts by various Emacs users who do their (non-code) writing with Emacs. I’ve commented on several of them and today I want to comment on another. This one is from Charles Choi, himself a frequent subject of Irreal posts.

Choi’s contribution makes a point that is obvious when you see it but might not occur to you out of the box: a lot of the power of Emacs comes from its ability to deal with text structures. What does that mean?

To a first approximation, text editors deal with characters and their manipulation. You insert a character, you delete a character and maybe you copy or delete one or several characters and insert them somewhere else. The point is, you deal mostly with characters. Emacs is different. It recognizes various text structures in addition to characters. Trivial examples are words, sentences, lines, and paragraphs. A few other editors deal with some of those as well but Emacs deals with more.

For example, Emacs can deal with s-expressions, delimited structures such as quoted text or parenthetical text. The thing is, Emacs has several commands that deal specifically with these structures. That means that an Emacs user can think in terms of operating on those structures instead of just characters. That makes dealing with text easier and more efficient.

There’s more to Choi’s post than just this point so you should take a look at it. He mentions, for example, his Casual EditKit that makes some of those commands available in a Casual menu. Whether you like the idea of a menu or would rather internalize the commands, Emacs’ rich set of commands for dealing with text structures is a real win.

Posted in General | Tagged | Leave a comment

Eric Fraga’s Emacs Writing Carnival Entry

I’ve been a long time fan of Eric Fraga’s quiet work in the Emacs sphere. He an academic who, as far as I know, doesn’t work directly on Emacs development but is nevertheless active in the community making suggestions and answering questions. If you check the Emacs Devel list or the Org Mode Devel list, you’ll see his name all over the place. He’s even stopped by Irreal a couple of times.

I was, therefore, delighted to see that he had make a contribution to Greg Newman’s Emacs Carnival Writing Experience. His experiences are worth listening to because he has been using Emacs and Org mode to write his technical papers for a long time. He works in process systems engineering so he can get away without having to make his submissions in the format whose name must not be mentioned.

His Emacs Carnival contribution discusses some of the advantages of using Emacs/Org mode for writing his papers. Those include the usual ability of combining code and prose in the same file, having the code be executable, and having it modify the prose in the file. He leverages that ability to generate diagrams and graphs directly from data in the paper. That’s a real win because the diagrams and graphs always reflect the data in the paper and don’t get out of sync.

Another example of the power of Emacs that he gives is almost trivial but vastly underrated: abbreviations. If there are words that you use all the time—especially long words or words that are difficult to spell—this can be a real time saver. See Fraga’s post for an example.

I’m really enjoying the Emacs Carnival Writing Experience and was glad to see Fraga share his views.

Posted in General | Tagged , | Leave a comment

The Emacs Cat’s Org Configuration

The Emacs Cat, like me, is a heavy Org mode user. He uses it for note taking, maintaining his personal knowledge base, agenda management, and blogging. He recently decided to share his org mode configuration. It’s worth taking a look at.

The thing about Org mode is that it’s a huge app with lots of functionality and plenty of knobs that can be tuned to make it behave exactly as you want it to. So even if you’re a heavy user, it’s very possible that there’s a knob that you didn’t know about that will improve your workflow.

One way of discovering those knobs—and other functionality—is to read other people’s configurations. That’s why The Cat’s sharing of his configuration is so useful. It let’s us discover things that we didn’t know about that might be useful in our own workflows.

For example, there’s a variable, org-return-follows-link, that enables clicking on a link to open it in your browser. I generally use org-open-at-point, bound to Ctrl+c Ctrl+o, for this. It’s a bit more general but it’s still nice to have another, simple way of following a link.

There are a lot of nice suggestions in the Cat’s configuration so it’s definitely worth your while to spend a couple of minutes reading it.

The minions, of course, are upset and jumping up and down about his use of a dark theme but, minions aside, Irreal is willing to let folks use whatever themes they like. Even if the minions are right

Posted in General | Tagged , | Leave a comment

Writing With Emacs: Two Out Of Three Ain’t Bad

Ross Baker, channeling the late, great Meatloaf, has a contribution to Greg Newman’s Emacs Carnival on writing with Emacs entitled Writing in Emacs: two out of three ain’t bad. The title comes from the three ways that Baker writes:

  1. Alone
  2. With asynchronous collaboration
  3. With synchronous collaboration

Baker uses Emacs and Org mode for the first two. After all, despite what anyone else might tell you, Org mode is the absolute best way of writing text that you want to do “something else” with later. By “something else” I mean, perhaps, publishing it on the Web, turning it into a PDF, or even exporting it to that spawn of the devil from Microsoft. Even if you’re just writing for yourself with no thought of exporting it, there are a lot of advantages to writing in Org mode.

It’s the third category that gives Baker problems. Lots of people—for reasons I’ve never been able to understand—like to pair program and have two or more people modifying the same piece of text simultaneously. To my mind, that’s the way to madness but plenty of serious people, like Perry Metzger, swear by it.

Regardless, if you do want to pair program it’s pretty much impossible in Emacs. Folks who need it are forced to do the unthinkable and use something like Google Docs. That’s what Baker does. He’s hopeful that Ethersync and its nascent Emacs interface will allow him to avoid the horrors of things like Word and Google Docs.

Posted in General | Tagged | Leave a comment

Ramírez’s Decade With Org Mode

As you all know, I’m a huge Org Mode fan but Álvaro Ramírez’s use and customization of it dwarfs mine. Yesterday, I wrote about how Ramírez was an expert at finding solutions to small problems and that those solutions can payoff by reducing some of the friction in our day-to-day chores.

In his latest post, Ramírez demonstrates this again by recounting how his use of Org Mode has evolved over the last decade. He started as many of us suggest: he chose a single task to automate with Org. That was making technical notes for his own use. But then he wanted to be able to access those from his iPhone when he was away from his computer. His solution was to simply export them to HTML—thereby learning another bit of Org Mode—and publish them so that he could access them from anywhere. He described it as accidentally falling into blogging. He’s still using the same (large) file for everything he publishes to the Web.

From there, his Org use continued to grow. Many of the apps that we associate with Ramírez actually grew out of his Org mode use. His post is fairly long and describes all this. Even his wonderful app, Journelly, grew out of his desire to integrate Org mode with his iPhone and its portability.

A lot of Ramírez’s work is available for download or purchase but perhaps the most important thing is seeing how he solved one small problem after another until he’d built up a powerful system for handling his data. If you’re an Org user or want to be one, you should definitely take a few minutes to read his post.

Posted in General | Tagged , | Leave a comment

Patching A Homebrew Emacs

Álvaro Ramírez is a genius at what might be called programming at the edges. By that I mean he’s good a finding and solving small problems that can negatively effect our workflows. A great example of that is his dwim-shell-command package. Of course, he written some full fledged applications such as Journelly as well.

His latest example of programming at the edges is a post on how to patch an Emacs from Homebrew. For those who don’t know, Homebrew is a package repository that provides pre-built packages for macOS and Linux.

After a long time of building Emacs from source, Ramírez starting using Emacs Plus from Homebrew. It’s a lot easier than worrying about library dependencies, especially on macOS. But what happens if you want to patch Emacs Plus or some other Homebrew package?

Ramírez, of course, has the answer. It’s just the sort of problem that he excels in. There’s no point in me repeating his procedure. Most of us won’t need it but if you’re one who does, take a look at Ramírez’s post.

Posted in General | Tagged | Leave a comment

Functions To Streamline Your Writing Workflow

Chris Maiorana has another post on streamlining your writing. I like his posts because he’s an actual writer and we can be sure that the things he recommends actually work, at least for him. His latest post is a list of specific functions and packages to make your writing easier.

I especially liked his first suggestion. I often end a sentence with a period and then realize that it’s a question and should end in a question mark. It’s easy enough to fix this of course but Maiorana offers a better way. If the point is on a punctuation mark and you type a different punctuation mark, the new mark will replace the old one.

You’d have to use this function a lot of times to amortize the time spent installing it but that’s not the point. The point is that it help to reduce your writing friction and keep you in the flow.

His next function is also something you might want if you’re writing in Org mode. It’s important for writers to have a (reasonably) accurate word count. Maiorana has a word count function specialized for Org that ignores lines beginning with # or *. I have a function like this that I wrote for Troff files when I was writing in Troff but never wrote one for Org. If for some reason I really need an accurate count I just do the same thing with a grep-wc pipeline. Still, if you write a lot in Org, this is a useful function to have.

Maiorana recommends a bunch of other functions/packages in his post so if you’re regularly writing in Org mode (or even just Emacs) you should definitely take a look at his post. There’s a lot a good suggestions in it.

Posted in General | Tagged , | Leave a comment

The UK Is Seeking A Way To Back Down On Encryption

As I reported 5 or 6 months ago, the UK decided to issue an order to Apple mandating a backdoor to all their users’ data. Apple responded by simply withdrawing their encryption services from the UK.

At the time I noted that even the US Government—despite their obvious desire for such a capability—were not amused and Congress began rattling their sabers. Lately, the Trump administration has been even more explicit in their displeasure and now, it appears, the UK Government is looking for a way to back down.

Backing down is not something any government wants to—or can even afford to—do except under the most exceptional circumstances but it appears that the UK government finds itself in just that situation. Senior government officials are saying that the Home Office has badly mismanaged the situation and that they need to find a way to back down.

In the courts, at least, the Home Office is maintaining its stance but that’s just silly. Regardless of what the UK Tribunal decides, there is no way that Apple is going to provide the backdoor and no way the US Government is going to insist that they do. The last thing the British Government needs is to have its very serious mandates ignored and be seen as a toothless lion.

As I’ve said before, I have nothing but good feelings for our English cousins but perhaps a bit of humiliation will give other governments pause when they’re considering similar
Quixotic adventures. Even if, against all odds, they were to prevail, the bad guys would find a work around and only the honest people would suffer.

Posted in General | Tagged | Leave a comment