The COVID-19 Disinformation Campaign

I’ve written several times about the origin of COVID-19 but there are still no answers. What has become clear, however, is that we’ve been subjected to an organized disinformation campaign. In February of 2020 The Lancet published a letter from Charles Calisher, Dennis Carroll, Rita Cowell, Ronald Corley, Peter Daszak, Christian Drosten, and others stating that COVID-19 originated naturally through animal transmission and that the idea that the outbreak originated from a lab accident was unfounded and a conspiracy theory. They repeated these claims in another July 2021 letter to The Lancet.

It’s now become clear that this is actually the opposite of the truth. There is, in fact, no compelling scientific evidence to support the hypothesis of a natural, zoonotic origin and the idea of a lab accident is, far from being a conspiracy theory, a plausible explanation. Indeed, those with the means to know and who don’t have a vested interest in the outcome, have long believed the lab accident hypothesis a good explanation.

An article in BMJ examines the possibility that the press—an therefore all of us—were taken for a ride by an organized disinformation campaign by actors with a vested interest in denying the lab accident explanation. The Lancet letter campaign turns out to be an organized effort by Daszak and others associated with the EcoHealth Alliance who did their best to obscure their connection with EcoHealth Alliance.

This disinformation campaign even trickled down—or is it up—to Facebook and Google, both of whom spent a year censoring any content that suggested COVID-19 might have originated in the lab. You can say what you want about those who refuse to “trust the experts” but they might be onto something.

Posted in General | Tagged | Leave a comment

Embracing the Emacs Way

If you’re looking for an introduction to The Way of Emacs, there’s a long article that explores the Emacs way and why it’s worthwhile embracing despite what seems, at first, to be a formidable learning curve. There are a couple of major themes:

  1. Emacs as a framework providing a huge number of functionalities including such non-editor tasks as playing music, reading and writing email, reading RSS feeds, displaying and annotating PDF files, reading ebooks, and much, much more.
  2. Emacs as a philosophy: freedom, longevity, and even minimalism.

The article’s (unnamed) author uses a wide swath of Emacs functionality including Org-mode, Magit, Tramp, Dired, Mu4e, Org-roam, Nov.el, EMMS, Daemon mode, password management, REPL modes, and more. The article is a good introduction to the things you can do from within Emacs. After you read it, you’ll know why so many of us never want to leave Emacs.

He also makes the point that Emacs is becoming a rarity in today’s software world. There’s no subscription model, no user lock-in, no planned obsolescence, and most importantly, your data remains your data. It’s all held locally and is in plain text. Even if Emacs magically disappeared, you’d still have access to your data using any other editor or even simply spooling it to the screen. Compare that to, say, Google Docs. Even if you manage to avoid getting your account closed for some unspecified violation of the ever shifting code of conduct, you’ll still lose your data when Google tires of maintaining the editor and sunsets it.

The longevity of Emacs is indisputable. It’s one of the oldest applications still in wide use. Those who don’t know what they’re talking about are fond of mocking Emacs as old technology of no current relevance. What they mean is it doesn’t have enough bling for them and isn’t mouse/menu driven. Meanwhile, Emacs is undergoing continuous development and constantly introducing technologies—Magit, Org, e.g.—that are shamelessly copied by all the “modern” editors. When we Emacsers hear this nonsense, we just smile and get on with our work using Emacs.

If you’re not an Emacs user and want your eyes opened, take a look at this article.

Posted in General | Tagged | Leave a comment

Annotating a Text File

Chewxy had a need to annotate a text file. He wanted to mark a rectangle of text, capture a classification type, and write the results to a JSON file. He thought about writing a Web app to do it but realized that as an Emacser, it would quicker and easier to write a little Elisp instead.

The result was a minor mode to annotate a text file. To make an annotation, he just highlights the text, captures the resulting rectangle and the annotation, and writes it to the JSON file. That’s all pretty straightforward but there are a few subtleties mostly involving writing the JSON file, and using the mouse to mark the region.

One thing that was not hard was turning his functions into a minor mode. It’s just a matter of adding a bit of boiler plate and a couple of functions to turn the mode on and off.

The source code for the project is here. Note that the link in Chewxy’s post is broken.

Posted in General | Tagged | Leave a comment

Reverse Warrants Explode

The new hotness in law enforcement is reverse warrants. Those are warrants that aren’t targeted at an individual but specify some criterion and seek to identify all individuals who meet that criterion. The most common example is the so-called geofence warrant that demands the user data of everyone who was near a certain location at a certain time. Google, of course, collects that kind of information and has, as a result, seen an explosion in geofence warrants. In 2018 they had 982, by 2020 the number had risen to 11,554.

But wait; there’s more! If being at the wrong place at the wrong time doesn’t worry you, how about warrants asking for the user details on anyone who used some search term? Google and others are getting those too and privacy experts are worried that it’s a growing trend.

There are a couple of obvious points here. First, this is yet another example of the Iron Law of Data Collection. Google and others collected location and search data to be used to target ads. Then, of course, as the Iron Law predicts, new uses were found for the data and suddenly perfectly innocent people are being swept up in police investigations.

The second point is obvious too: stay away from Google and other companies that collect your data. Even with (the deferred) CSAM scanning, the iPhone is a much safer bet than an Android-based phone because they don’t collect location information that ties back to the user so geofence warrants don’t catch iPhone users in their snare (although less accurate cell tower information is still available).

And if you’re still using Google search, stop that right now. Google records all your searches, which means that they’re available to law enforcement. Yes, yes, I know you’re not doing anything wrong but that’s beside the point; you can still be swept up in some wide-ranging search that just happens to involve some search term you were using. Instead, use a search engine, like DuckDuckGo, Startpage, or Brave Search that doesn’t record your search queries.

Posted in General | Tagged | Leave a comment

The Placement of Quotation Marks

I’m pretty much a strict constructionist when it come to grammar issues but there are exceptions. I’m not above starting a sentence with “And” or “But” and my comma usage is driven by what I see as logical and making my meaning as clear as possible even if my 8th grade teacher, Miss Frump, wouldn’t approve.

One place where I do follow the (American) convention is the relative placement of quotation marks and other punctuation. Thus, I always place the period before the quotation mark even though it often doesn’t make sense to do it that way.

The English do this correctly but American usage insists on the illogical. It wouldn’t matter all that much except for when it does:

  • To exit the application, type “quit.”
  • To exit the application, type “quit”.

If you’re a user trying to exit an application (that uses “quit” to exit), which would you prefer the documentation to say?

Erich Grunewald has a nice post that argues that the American convention is an abomination and we should all be doing what the English do. It’s hard to argue with him. Over the years, I’ve read many explanations for why the American convention is the way it is. They mainly cite some ancient typography technical issue. Here’s what the MLA has to say about it. I’ve read other, similar explanations. Regardless, it’s time to stop the nonsense and adopt the more logical English convention.

Posted in General | Leave a comment

Time Tracking With Org-mode

I’m Bmax has a post about his journey to find the perfect way to track his time. Like almost everyone else, he started with a spreadsheet but if you’ve ever done that you know what a pain it is and how hard it is to keep it up. He tried a few other solutions before settling on Emacs and Org-mode.

The thing that makes tracking your time with Org-mode so easy is that you just put the point on a task and clock in. When you’re finished or clock into another task, Org records the start and end time so that the time spent on a task is easily available. It doesn’t end there, of course. Org can produce reports on the total time spent on various task with a single key sequence.

I’m Bmax seems happy with his Org solution. It’s just a matter of clocking in and out of the task Org entries he needs in any event. In my experience, the time tracking comes later. You start with recording tasks or some other item and then realize that you can easily track how much time you spend on them with a simple key sequence.

Lots of people use Org mode to track their time for billing purposes and even produce their bills from the Org data. The nice thing about using Org is that you can simply record the times or use it to produce reports or bills on the time you spent on various tasks.

Posted in General | Tagged , | Leave a comment

Another Emacs Configuration

As you all know—at least if you’ve been around Irreal for a while—I like reading through other peoples Emacs configurations. It’s not just a matter of voyeurism; I almost always learn something from seeing how others use Emacs. The latest example is this post from Supratim Samanta.

It’s in the form of an Org file so there’s a bit of explanation included. Samanta has all the usual use cases

  • Coding
  • Documentation with Org-mode
  • Elfeed
  • Magit
  • Evil for the Vim experience

It’s a fairly extensive configuration so there may be ideas lurking in it that you’ll find useful. Take a look and see.

Posted in General | Tagged | Leave a comment

Two Mini Tutorials

Here are a couple of mini-tutorials on using two Emacs packages. They’re both pretty short so I’ve combined them into a single post. In the first, Yuri Tricys presents some configurations and packages to customize Olivetti-mode. He shows how to adjust the margins, toggle the fringe on and off, and configure wrap and fill columns, He also shows using the highlight-numbers and the stripes packages.

Unfortunately, Tricys doesn’t provide any examples of the output but most of his configurations are self explanatory. If you’re a writer who uses or is considering using Olivetti-mode, take a quick look at Tricys’ post.

The second tutorial is by Franco Pasut and considers using expand-region with LaTeX. Many Irreal readers are probably familiar with expand-region from using it with their programming buffers but it’s also useful for dealing with LaTeX source. Pasut has a series of animated GIFs that show it in action. Judging from the GIFs, expand-region has some shortcomings when used with LaTeX as compared to other languages. For example, I’d expect the highlighting to go from word to sentence and then to paragraph.

Of course, Magnar anticipated that people would want to add capabilities and made that easy. If you’re really interested in using expand-region with LaTeX, you should look into adding the features you need.

Posted in General | Tagged | Leave a comment

Quitting Safari

Today’s post is specific to those Irreal readers who use the Safari browser. As I’ve written many times, almost all my tube time is spent in either Emacs or Safari. A typical workflow occurs when I’m reading my RSS feed in Emacs with Elfeed. If I see a post that looks interesting, I have Elfeed launch the site in the browser. After I finish with the website, I delete the tab with ⌘ Cmd+w. This same process also happens in many other situations.

The problem is I often type the neighboring key ⌘ Cmd+q instead, which quits Safari and all the open tabs I was working on. That’s not too bad because Safari has an option to reload all the tabs from the previous session so I don’t really lose those tabs.

But there is a problem. When I quit Safari like that, I lose the mapping from F6 to Emacs and can only get it back by rebooting macOS. That’s a real problem because I’m constantly using F6 and F7 to switch between Emacs and Safari.

The last time it happened, I’d had enough and decided something had to be done. Surely, I thought, there must be a way to get Safari to query you before quitting. That’s what happens when you spend all your time in Emacs: you expect everything to be configurable. But Safari is not Emacs and there isn’t an option for asking for confirmation before quitting. I asked Duck Duck Go and found this post from John Gruber, who had similar problems. Gruber provides a bit of Apple Script to provide the confirmation dialogue but he mentions that if all you want to do it avoid confusing ⌘ Cmd+q with ⌘ Cmd+w, you can simply change (or remove) the shortcut for quitting Safari. That’s really easy to do: see Gruber’s post for the details.

Now I’m having the reaction I always have when I trivially solve some longstanding problem: why didn’t I do this earlier? I will, it appears, never learn.

Posted in General | Tagged , | Leave a comment

Prot on Bookmarks

Protesilaos Stavrou has a new video out on the Emacs bookmarks system. If you don’t use bookmarks, you should give them a try. They’re really handy for files you use often but don’t want to keep loaded all the time. Where they really shine for me is hard-to-find nodes in the info system. For example, I always have a hard time finding the Emacs syntax class information so I set a bookmark to pop me right into the info page.

If you use bookmark+ you can even use bookmarks to call a function or load a page in your browser. I have a bookmark to load Irreal, which is useful when writing and posting to the site. I’ve been using bookmark+ for a long time so I’m no longer sure what functionality is also in the default bookmark package.

If you want to integrate bookmarks into your workflow, I can’t recommend stealing abo-abo’s workflow enough. He uses a hydra and his headlong package to make opening a bookmark every efficient. Here’s the hydra entry I use for opening bookmarks

("m" headlong-bookmark-jump "bmk")

I’ll let you read the details at the above link but the TL;DR is that you can specify a bookmark with a single key in most cases. Thus, to open the aforementioned syntax node, I simply type Hyper+w m s and the page opens. The Hyper+w invokes a hydra that I use for window and buffer related operations. The m says to jump to a bookmark and the s specifies the syntax class info node.

The video is 24 minutes, 20 seconds long so plan accordingly. As always with Prot’s videos, it’s worth spending a few minutes on.

Posted in General | Tagged | Leave a comment