The UK Plans an Anti-encryption Campaign

Rolling Stone has an article on a planned UK Campaign against end-to-end encryption. Of course, after the University of Virginia rape story debacle, everything they report should be viewed, um, critically. That said, the story is disturbing.

The Home Office has reportedly hired the M&C Saatchi advertising agency to concoct what can only be termed a disingenuous advertising campaign to discredit end-to-end encryption in general and FaceBook’s plan to implement it in WhatsApp—its messaging app—in particular.

You can read the article to discover some of the stunts they have planned but the whole campaign is based on the usual Four Horsemen of the Infocalypse and especially how that nasty encryption makes it impossible to “protect the children”™.

As always in this type of action, the Home Office is pretending that it’s possible to provide a backdoor key that only the good guys can use. Virtually every cryptography expert says that’s impossible and there’s nothing in the government’s past record in protecting these types of secrets that suggests it will be any different with a backdoor key. One former government security executive described it as “the digital equivalent of alchemy”.

All governments hate end-to-end encrypted messaging apps because it allows citizens to keep their private business private and how can the nannies do their job if they can’t snoop on what you’re saying? They’ll bring up “think of the children”, drugs, terrorism and all the other boogeymen as if encryption were somehow unique in its use by criminals. I hope my cousins in the UK tell them to get lost.

Posted in General | Tagged | Leave a comment

Users Sue PayPal

I love the idea of PayPal: a neutral broker that holds funds involved in online purchases until both sides have fulfilled their obligations. The buyer sends the funds for a purchase to PayPal, which tells the seller it has the money and holds it until the buyer confirms it has received the merchandise. The only wrinkle should be when there are disputes about the merchandise. In that case, PayPal adjudicates the dispute.

That’s the theory and as far as I know, that’s the way it worked in the beginning. But like many Internet sites, PayPal came to believe that they should police their users’ activities. That’s not completely unreasonable. After all, no one wants to be serving as a middle man for, say, drug sales or sex trafficking. But also like many sites, PayPal also prohibited actions that they didn’t like even though they might not be illegal.

Even that would probably have been okay if they simply refused to deal with those people and terminated their accounts for clear violations of a well defined and published terms of service. That’s where the problems begin. PayPal has apparently terminated some accounts, refused to say why, and seized the users’ funds. The amounts are not trivial: in one case it was $172,000.

Some users are fed up and are fighting back. They are suing PayPal and trying to get the suit certified as a class action. If the allegations are true, I hope the suits succeed and that criminal charges are filed. After all, how are these actions not stealing customers’ funds?

One could maintain that even terminating the accounts for legal activities that PayPal doesn’t like should be prohibited. Yes, PayPal is a private corporation but they are also, arguably, a public utility with a duty to serve anyone not breaking the law.

Posted in General | Tagged | Leave a comment

Exporting Variables From Org-mode to LaTeX

Franco Pasut has posted on exporting variables from Org to LaTeX. The TL;DR is that you can define LaTeX macros defining a variable value in #+LATEX_HEADER: entries at the top of the Org file and then interpolate the variables in the text by including \variable_name{} in the body of the document. That’s nice because it makes it easy to change the value of those variables, if needed, in one place and have the results reflected in the whole document.

The problem with this method is that it’s not portable. It’s great if you’re only exporting to PDF but if you want to also export to HTML, say, it won’t work. The proper way of handling the general case is to define the variables at the Org level as described by Mike Hamrick in his excellent video Consistent Technical Documents Using Emacs and Org Mode that I wrote about wrote about previously.

In either case, the idea of defining variables in one place and using their values throughout the document makes a lot sense precisely because it makes it easy to change those values when needed without scanning the entire document. Take a look Hamrick’s video to see how powerful the method can be.

Posted in General | Tagged , | Leave a comment

Source Block Executors

Isa Mert Gurbuz (isamert) has a very interesting post on using Org Babel to interactively deal with Web APIs. Starting with Zweifisch’s ob-http, he queries a site and gets some JSON returned. The ob-http code even allows you to pipe the results through the jq binary to slice and filter the JSON results.

That’s pretty neat but what’s better is he shows us how to make the JSON results “executable”. It’s probably not clear what it means to “execute” JSON but the idea is simple: use can specify source block header parameters to specify filtering or other manipulation. The code to do this is simple and isamert gives an example of such code.
There are several examples in his post so take a look to see how it all works.

But wait! There’s more. JSON is an existing Emacs major mode but it’s possible to extend the idea to custom modes as well. The example isamert uses is for the Couchbase database. There’s no mode for Couchbase, so isamert created one by simply extending sql-mode. Then he wrote a function to take an SQL statement and send it to the Couchbase server. Again, that’s simple because Couchbase provides a command line tool. Finally, he wrote an executor for the Couchbase source block thereby providing an interactive Org-mode based tool to manipulate the database. Here’s an example of the its use (n1ql is the name of the mode):

#+begin_src n1ql :host DB_HOST :username DB_USERNAME :password DB_PASSWORD
  SELECT * FROM SomeTable LIMIT 10;
#+end_src

When he executes this block, the database is queried with the SELECT statement and the results are returned in a #+RESULTS: block as usual.

This is good stuff and has application outside of Web APIs so it’s well worth spending some time to read and understand isamert’s post even if you don’t routinely deal with Web APIs.

Posted in General | Tagged , | Leave a comment

Encoding, Encryption, and Hashing

Encoding, encryption, and hashing: those are three different things only loosely connected. It never occurred to me that anyone in our tribe wouldn’t understand the difference among them but according to Eric Mann there is confusing about them.

Mann has a useful post that explains the differences. The TL;DR is that encoding has nothing to do with cryptography while (cryptographic) hashing is generally considered part of any cryptographic suite.

There’s nothing very deep about the differences among these notions but if you’re unsure about them, take a look at Mann’s post. Maybe knowing the differences will even help you in an employment interview as it did Mann.

Posted in General | Tagged | Leave a comment

Blocking Apple’s Private Relay

Fortunately for those of you who don’t follow the sturm and drang of the endless Internet melodrama, Irreal has your back and follows it so you don’t have to. The latest contretemps involves carriers blocking, or threatening to block, or trying to get regulators to block Apple’s Private Relay.

Private Relay, for those of you who don’t know, is a sort of VPN that hides a user’s actions on the Internet. The carriers hate it, of course, because they like to record their users’ click streams and sell them to advertisers. For the carriers, Private Relay is worse than a VPN because it’s automatic and even naive users will have their Internet activity protected.

So far, it appears to be European carriers who are doing the blocking. Their reasons for doing so are the stuff of high humor. Their most humorous reason is that “it undermines ‘European digital sovereignty.’” The real reason, of course, is that it interferes with their ability to capture and sell their users’ Internet usage.

In the United States, T-Mobile users are the only ones experiencing this problem and T-Mobile says that it affects only those who have signed up for Internet filtering. That makes sense: if you want to filter what your children see in their browsers, your carrier has to be able to see that content. Some T-Mobile users say they don’t have content filtering and are still getting Apple Relay blocked so the situation remains ambiguous.

Those with any options should vote with their wallets and abandon any carrier doing this. If you can’t switch carriers, then consider using a traditional VPN instead. As far as Europe and their regulators are concerned, John Gruber has this to say: “Let’s see if the EU’s vaunted regulators know which side of this dispute is actually working in favor of user privacy. There should be no debate which side is right here.”

Posted in General | Tagged | Leave a comment

The Second Emacs 28 Pretest

Some more splendid news from the Emacs front: the second Emacs 28 pretest is out. There’s a lot of great features coming in Emacs 28 so please give it all the testing you can.

It always seems as if progress is excruciating slow but this is the developers making sure that when Emacs 28 is released, it will be rock solid. As always, I want to thank all the developers donating their time and energy to help bring this latest release to us.

Posted in General | Tagged | Leave a comment

Emacs Calc Video

Over at the Calculator Culture Youtube Channel they have a nice Introductory video on the GNU Emacs calculator otherwise known as Calc. The thing about Calc is that’s it’s gigantic. It’s not Mathematica but it seems like it can do practically anything mathematical that you need.

The problem with Calc is neatly captured by Karthink in a reddit comment:

“The problem with Calc is that it’s got a big learning curve for anything more than simple arithmetic, and it doesn’t stick in the head because of the terse and arcane UI (even for Emacs) for the higher level functions. I have to relearn how to access most of the above every time I fire it up.”

This is exactly what I find. Calc does so much that I find it impossible to remember most of the advanced features unless I’m using one of them constantly. As soon as I stop that constant use, I forget the more abstruse parts.

The video is only 13 minutes, 21 seconds long so it doesn’t begin to cover all of Calc but it does give you an idea of some of what it can do. The good news is that it’s easy to learn and remember the basic functions so you always have a useful calculator at hand when you’re in Emacs. I use it as my desktop calculator and couldn’t be happier with it.

Posted in General | Tagged | Leave a comment

Yak Shaving

“Yak shaving”. It is, at base, an opprobrious term but with a touch of indulgence and humor. Sort of like “rascal”: naughty, yes, but lovably so. It’s clear why yak shaving has a bad reputation. It’s a distraction from what we’re supposed to be doing. It is, really, a form of procrastination.

Procrastination, distraction, not doing what you’re supposed to be doing. Not notions we associate with Donald Knuth, arguably the apotheosis of their opposite. Yet, yakshav.es makes the case that Knuth is yak shaving’s patron saint. To support that claim, they tell the familiar story of how in the middle of writing The Art of Computer Programming, his (self described) life’s work, Knuth noticed that hot type typesetting was no longer available to print Volume 2 of the series and that the alternatives looked terrible. So Knuth took 11 years off to build his own typesetting system. In the middle of building TeX, he noticed that there no free fonts to use with TeX so he undertook a side project to build the Computer Modern font set. In the middle of building the Computer Modern Font, he noticed that there was no way of programmatically specifying a character in a font set so he invented Metafont. And on and on. See the post for the more comprehensive version.

Building TeX is the very definition of yak shaving. A seemingly infinite recursion of side projects in service of the main goal. The yakshav.es post made me reappraise yak shaving. It’s not always a bad thing. Sure, it can delay the main goal but great things can come from it. TeX revolutionized typesetting and the preparation of technical documents. Its influence is felt well outside Computer Science. Some might argue that TeX’s influence exceeds that of TAOCP. Whether you believe that or not, there’s no denying that TeX’s importance is profound, especially for an instance of yak shaving.

Posted in General | Tagged | Leave a comment

Raindrop

It’s Sunday and I don’t have anything interesting to write about so instead I have a small gift. I stumbled across an amazing website the other day and have been obsessed with it since. The TL;DR is that you’re presented with a map of the World and can click anywhere on it.

That click represents placing a raindrop in that location. What follows is endlessly intriguing. The path the raindrop takes to the sea or other large body of water is mapped and animated on the map. The result is almost always unexpected. A surprising number of paths in North America end in the Gulf of Mexico, even if the raindrop is deposited in the north central U.S. or, say, Colorado. Even then the path is not as direct as you’d expect.

The above description doesn’t quite capture how amazing and entertaining the site is. Give it a try and see for yourself.

Posted in General | Leave a comment