Unicode Escape Sequences in Emacs Strings

Xah Lee recently tweeted out a reference to one of his old pages on Emacs Lisp. This one considers specifying Unicode escape sequences in Emacs strings. It’s a handy guide and well worth giving a look. Doubtless, you could find the same information in the documentation but Lee’s page is a useful guide, especially since most of us won’t need the facility very often.

The TL;DR is that if you want specify a Unicode character in an Emacs string, you can either insert it directly like this: “Here is the Unicode character 😁 in a string.” Or you can specify it as an escape sequence like this: “Here is the Unicode character \U0001f601 character in a string.”

The rules are pretty simple. If the code point for the Unicode character has 4 or less hexadecimal digits, you specify it as \uxxxx where each x is a hexadecimal digit and you must add leading zeroes if necessary. If the code point has 5 or 6 hexadecimal digits, you specify it as \U00xxxxxx where, again, the each x is a hexadecimal digit and you must add leading zeroes.

Take a look at Lee’s post for more details and further examples.

Posted in General | Tagged | Leave a comment

Why Emacs

Saurabh Kukade is planning a series on configuring Emacs. His introductory post discusses why he thinks Emacs is so cool. Most bloggers who write about Emacs end up posting something like that, of course, but I always enjoy reading why others find the Emacs experience a good fit for them.

Kukade starts off by observing that Emacs was first released in 1976 so it’s 43 years old. Even if you limit yourself to GNU Emacs, it’s been around 34 years. Some folks describe that disparagingly as meaning that Emacs is old and used only by gray beards. It’s not true, of course, that only gray beards use Emacs but I think the characterization is wrong in a more fundamental way: Emacs has undergone 43 years of steady improvement and refinement making it a finely honed tool that outperforms its competitors.

The next thing Kukade calls out is Emacs’ use of Lisp. That has two big advantages. First, it means that any user who bothers to learn Elisp can get at the core editing routines and change them on-the-fly to suit themselves. This is partly what I mean when I say that Emacs is a sort of light-weight Lisp Machine. Secondly, Kukade says, Lisp is the ideal language for implementing text editing. Its primitives make handling text much easier than in most other languages.

The use of Lisp is, in large part, what makes Emacs so configurable. Not only can users modify the built-in functions, they can write their own functions to do special tasks. In Emacs, this has lead to the incredibly rich package system with hundreds of user-written packages that either improve on a core functionality or provide a completely new one.

Finally, of course, there is Org mode. As Kukade points out, many people have learned and adopted Emacs just to get access to Org mode. Many of those people later say, “I came for Org-mode but stayed for the incredible editing experience.”

Emacs is a big and complex system and all of us have taken the time and trouble to learn it for our own reasons. I always enjoy hearing why other people put in that effort.

Posted in General | Tagged | Leave a comment

The Unpickable Lock

It used to be, and probably still is, a rite of passage for young hackers to learn how to pick locks. I believe this started at MIT where the idea of locked /anything/—software, doors, …—was an anathema, and challenge, to the hackers there who could not let such things stand. This resulted in the infamous MIT Guide to Lock Picking.

You may think that it requires a lot of skill and practice but actually picking a modern pin tumbler lock is pretty easy. Is there such a thing as an unpickable lock? Almost certainly not but in the 1800s in Britain, two inventors, Joseph Bramah and Jeremiah Chubb each claimed to have invented an unpickable lock. These weren’t idle boasts. Bramah offered a substantial prize for anyone who could pick his lock and that prize went unclaimed for 67 years. Chubb’s lock was adopted by the British Government after substantial vetting. Both locks were defeated in 1851 by an American locksmith and inventor, Alfred C. Hobbs.

The story of these two locks is amusingly told by Arran Loomas in the video Could You Pick The Unpickable Lock? He tells the story of the locks, how they operated, and how Hobbs was finally able to pick them. For a brief span of almost 70 years, unpickable locks did exist. The video is 14 minutes, 27 seconds long.

If you like this sort of thing and are wondering what a modern day “unpickable” lock might look like, consider the Browley lock. The LockPickingLawyer has an excellent video that shows how it works and why it’s so hard to pick. That video is 17 and a quarter minutes long.

Posted in General | Tagged | Leave a comment

Correcting Org Tags

A couple of days ago, I was adding some item to my journal—which is really my engineering note book—and when my capture template prompted me for a tag and I started to type it in, I noticed that in the list of suggestions (from Ivy) there was a misspelled tag. That happens fairly regularly. Sometimes I make a flat out typo, sometimes I unconsciously capitalize a proper noun (my policy is all tags are lower case), and sometimes I use a slightly different tag from what I usually do.

When I find a bad tag, I fix it by searching my agenda files with the m option from the Agenda menu1 to bring up the headlines with the offending tag and then fix it by editing the tag with Ctrl+c Ctrl+q.

This time, I’d finally had enough and decided to get rid of them all. The question was how to get a list of all the tags? I first tried grep but the result was a mess and too hard to work with. Then I thought that if Ivy was gathering that list for its completing read, there must be an easy way to do it. I asked for help on functions, typed in “org tag”, and looked through the completions until I found org-global-tags-completion-table. That did exactly what I wanted so I fired up ielm, invoked org-global-tags-completion-table, and had a nice list of tags. I didn’t bother sorting it, I just read down the list until a found a bad tag and called the match TAGS query to bring up the affected headlines so I could fix them. It turned out there were a lot of bad tags but it was easy, if boring, to find and fix them all.

The point of this post is twofold. First, Emacs gives you the tools to fix problems in your data even if several files are involved. It also gives you an easy way to discover those tools. Secondly, the exercise reminded me of the power of ielm. Usually, when I need to run a random elisp command I do it from the minibuffer. This time I needed an easily accessible list so I used ielm. I tend to forget about it but it’s often just what you need, even in situations that don’t involve elisp development.

If I had to do this a lot, I’d write some code to handle correcting the bad tags but that didn’t seem worth the trouble in this case. Still, if I ever decide I need to, Emacs has all the tools to make it easy.

Footnotes:

1

I use Ctrl+c a m but if your keybindings differ it’s the “Match a TAGS/PROP/TODO query”.

Posted in General | Tagged , | Leave a comment

Remote-First Companies

Kevin McArdle has an interesting post on working remotely. He makes an interesting point: we have all the technology to make working remotely a reality but we still talk of it as something in the future. Why, he asks, aren’t more companies remote-first?

The benefits of remote work are both obvious and documented. Companies save money—lots of money, it turns out—as do employees. Employees don’t waste time commuting or sitting in mostly useless meetings and are therefore more productive. This, of course, is hugely beneficial to employers. Perhaps the biggest win for companies is that they have a vastly larger talent pool to recruit from.

McArdle’s own company, SureSwift Capital, has 80 team members, operates in 14 time zones, and has no real offices. His experience shows it can be done and that all the advantages can be realized. His post urges other companies to realize them too.

When I first got interested in remote work it really was a dream. Hardly anyone was doing it—mostly journalists and some developers—and we didn’t have nearly the infrastructure to support it that we do now. Now the infrastructure is there and except for those famous face-to-face meeting at the water cooler, there really aren’t many cogent reasons to keep doing what we’re doing.

Posted in General | Tagged | Leave a comment

Revisiting Abrams’ Capture Techniques

A year ago, I wrote about Howard Abrams’ post on Capturing Content for Emacs. I just saw a current reference to the post and reread it. It’s a really great article and worth mentioning again in case you missed it.

The basic idea is to make capturing data and inserting it into the currently clocked in task as effortless as possible. Abrams starts with some simple templates that show how to add a capture to the currently clocked in task and then moves on to adding data directly from the system clipboard to the current task. He even shows how to move selected text in an Emacs buffer to the current task.

All of that uses just the normal capture template mechanisms built into Org-mode. What I really liked was how he arranged to move data from the browser or other apps into the current task. One example is a simple shell script that you can put at the end of a pipeline to capture the output from the rest of the pipeline and import it into your current task.

He also considers capturing text and HTML preserving the necessary formatting and changing (HTML) links into Org links. He shows how to do it for macOS and Linux.

If you haven’t already read his post or you’ve forgotten the details, you really should take a look. There are a lot of great tricks that can help reduce friction in your workflow.

Posted in General | Tagged , | Leave a comment

Writing Academic Papers

Jonathan Bennett has another post up in his Year of Emacs series. This one is about writing academic papers. Bennett is in the humanities but still uses Emacs and Org-mode to write his papers. I’m always interested in posts like this because writers in the humanities have special conventions they need to follow so seeing how they adjust the Org workflow to meet them is instructive. You shouldn’t think, however, that his post is useful only to those working in the humanities. The same setup will work for any discipline.

Bennett’s tool chain is mainly

  • Zotero for library management
  • Org-mode and LaTeX to produce PDFs
  • org-ref to manage his citations
  • PDF tools for reading and marking up papers
  • Magit/Git for version control

Zotero is a nice tool and open source so there’s no reason to avoid it but as shown in Kitchin’s video on org-ref you probably don’t need it. Org-ref can download papers in several ways and using it means there’s one less tool to learn and worry about.

One very nice thing about Bennett’s post for beginners is that he doesn’t assume you know how to configure things for a workflow like his and he show’s everything that’s necessary.

This is a nice post and well worth reading if you’re involved in writing papers either professionally or as a student. Bennett explains why he prefers not to use Word or one of its evil progeny but, of course, Irreal readers are already familiar with reasons to avoid them. Really, it’s hard to envision a nicer writing environment than one involving Org and org-ref.

Posted in General | Tagged , | Leave a comment

Notion

Ali Abdaal is a Junior Doctor (sort of like a Resident in the US) practicing in Cambridge, UK. He’s also a YouTuber producing videos on productivity, efficient study habits, tech reviews, and life as a Junior Doctor. I’ve been following him since his medical school days after I saw his excellent video on how (and why) he uses an iPad and Notability to take notes in medical school. If you’re still in school you must watch this video.

One of his favorite topics is productivity apps and how he uses them to organize his life and manage his many activities. His latest favorite is Notion, a notetaking app with many features and ways to display your data. Normally, I wouldn’t pay any attention to something like this because I have the power of Emacs and Org-mode to do everything that Notion does and much more but when Abdaal gives such a positive review of an application, it’s worth taking a further look.

My quick take is that it’s a nice application that has much of the Org-mode note taking capabilities all wrapped up in a pretty GUI. It is, of course, mouse-centric so if you aren’t a point and clicker you might not like it. If you’re not an Emacser—or more generally, don’t live in your editor—you may find it a useful way to organize your notes and data. It will probably appeal to the same sort of person who likes and uses Evernote. There are mobile as well as desktop versions so you can have access to your data on the go and make notes when you’re out and about without a laptop.

All-in-all it seems to be a pretty nice application if you don’t mind the point and click aspects. Or it would be except for one fatal flaw: Your data lives on someone else’s server1. If you want more than the free version, you have to buy a subscription to the service. That would be Okay—after all, you’re renting space on someone else’s computer—but what Notion really is is software as a service and that’s inherently dangerous as Eric Raymond had occasion to point out just the other day.

Of course, a huge number of people aren’t bothered by this—until they are—and happily commit their irreplaceable work to Google apps despite Google’s record of freezing accounts if they detect what they suspect might be BadThink. I don’t know anything about the people running Notion and what their thoughts are on this sort of thing but I’m not willing to risk my data and workflow to someone else’s whim. Especially not when Org-mode gives me the same or better functionality and I can keep control of my data.

Footnotes:

1

I can’t tell for sure that the client apps don’t keep a local copy of your data but their Web page suggests not. If I’m wrong, perhaps some Notion user will let me know and I can update this post.

Posted in General | Tagged , , | Leave a comment

How to Limit Google Tracking You

It turns out that there are some steps you can take to limit the type and amount of data that Google collects on you. This is especially relevant if you live in the Android ecosystem but even for those of us, like me, who prefer to live in the Apple world, some of these steps are useful to stop some of the collection.

Via John D. Cook’s excellent Data Privacy twitter feed, I found a pointer to a Wired article entitled All The Ways Google Tracks You—And How To Stop It. The article tells you how to find the Google pages concerned with managing your data and how to turn the collection off. If you’re signed into your Google account (such as Gmail) you can simply follow a link in the article and it will take you to the page. Once there, you can turn off the collection of various sorts of data and delete what they have.

I’ve made a point of not being signed into Google for some time now. About once a month I check my Gmail account and then delete cookies so that I’m signed out again. If you’re like me, simply sign in to your Gmail account or whatever you have, follow the link, and set things the way you want them. When you’re done, delete your cookies and everything should be fine.

This is, I know, like bailing out the sea with a teaspoon but every bit helps.

Posted in General | Tagged , | Leave a comment

Cell Phones and the Crime Rate

The New Luddites current favorite hobby horse is the evils of smart phones and all the myriad ways they are destroying civilization as we know it. These people are exceptionally tiresome but they never seem to tire of badgering us with their end-of-the-world warnings.

Rather than repent, I offer the following: according to a study by Lena Edlund and Cecilia Machado, cell phones may be responsible for the dramatic decrease in crime from 1990 to 2000. Well, at least there is a negative correlation between cell phone usage and the homicide rate. Mathematical grownups know that correlation doesn’t imply causation but the paper is suggestive and the reason Edlund and Machado give for correlation appears reasonable.

You might think that that reason is obvious: cell phones make it easier to quickly report crime as it’s happening. But that’s not the reason Edlund and Machado give. They say that cell phones changed the illegal drug trade making it less important for gangs to hold and defend territory. They attribute the fall in homicide rate to a decrease in gang violence.

The paper has received some push back—mainly from people with their own theories of what caused the decline—but its explanation seems more sensible than some of the competing theories such as the rise in abortions.

The cautious reader should always treat studies like these with suspicion. Most of them boil down to “Hey! Look at this correlation.” Still, it’s a pleasant change from the New Luddites’ incessant doom saying.

Posted in General | Tagged , | Leave a comment