Amazon and Walmart

Back in April, I gave a status update on my quest to go walletless. In that post, I wrote that although I had been a frequent Walmart customer, COVID-19 had taught me that Amazon would deliver to my door the same things I used to get from Walmart for comparable prices. That’s a pretty serious challenge to Walmart.

If Walmart is going to hang on to their role as the premier retailer, they are going to have to reduce the friction of shopping there. Otherwise, folks will just order things from Amazon. I wrote that one of those things Walmart was going to have to do was to stop being stubborn about Apple Pay and stop clinging to the ridiculous Walmart Pay. I ended the post by saying that until Walmart did that, I wouldn’t be one of their customers. I acknowledged that—obviously—Walmart wouldn’t miss me but I wondered what would happen if there were other folks like me out there.

It turns out that there are. According to the New York Times, people now spend more money at Amazon than they do at Walmart. A lot of that is due to the pandemic and subsequent lockdown, of course, but it does suggest that Walmart is going to have to start listening to their customers and taking their concerns into consideration along with their traditional strategy of squeezing every possible penny out of their costs.

Once you start using Apple Pay or its Android analogue, it seems like an imposition to deal with an actual credit card. A first-world problem, I know, but there it is. The world is moving to digital and while we’re not quite at “go digital or go home,” it’s getting harder and harder to insist on the old ways.

Posted in General | Tagged | Leave a comment

War Is Peace

WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH

That’s the motto of the party in Orwell’s 1984. Apple’s Craig Federighi appears to want to add a fourth item:

SURVEILLANCE IS PRIVACY

Big Brother would approve. Federighi gave an interview to the Wall Street Journal in which he calls Apple’s planned photo scanning an advancement in privacy. That’s pretty ironic considering Apple’s iconic 1984 ad

Apple should have ended the ad with, “1984 will not be like 1984; 2021 will be like 1984.”

If you don’t know about 1984, how about a Vietnam-era-like slogan: “We have to destroy privacy to save it.” If you need something more timeless, how about “Liar liar, pants on fire.” Of course, like Big Brother’s motto, the meaning of Federighi’s statement is more than its obvious contradiction. Loosely translated, the meaning of his words are “It could have been worse.” In the interest of fairness, here’s a more generous translation: “This is the least intrusive way we can surveil you.”

But the thing is, it’s still surveillance, something Apple promised they’d never do. And despite Apple’s demurrals, it won’t end with child pornography. As Kurt Opsahl of the EFF puts it, If You Build It, They Will Come. All governments—all—hate that their citizens have access to cryptography and do everything they can to subvert it. There’s no reason to think they won’t go after the backdoor Apple is introducing. If you think Apple’s CSAM scanning is not a backdoor, you’re about to be rudely disabused of that comfortable notion.

Posted in General | Tagged , | Leave a comment

In Defense of C

I spent most of my career writing C code. I’ve also got an old-timey and grumpy outlook so I’m inclined to look on those disparaging C with a certain skepticism. Often, complaints about C are easy to dismiss as the uninformed mewlings from those who neither know nor write in C. But there are also complaints from knowledgeable programmers who have extensive experience in C.

The complaints from those who know what they’re talking about usually center around the issue of the “safety” of C and, in particular, its undefined behaviors. How can you write good code when there are so many undefined behaviors, when there’s no bound checking for arrays, and all the other safety issues? It’s a good question and seems compelling when you see it but, somehow, it always ran counter to my experience. Like every other programmer, I’ve written lots of buggy code but none of it was because of undefined behaviors or because I busted an array bound. To me, the complaints of C being unsafe always seemed more theoretical than practical.

I just came across a 2017 paper, Some Were Meant for C, by Stephen Kell that examines the issue of C’s safety and concludes that (1) the problems with C are not in the language itself but in its typical implementations and (2) that the features of C are essential for systems programming where “systems programming” is defined in a way that includes but is different from, say, kernel implementation.

One of Kell’s major points is that there’s nothing in the C specification that prevents a safe implementation. Rather, he says, it’s the erroneous belief that C users care mostly about performance that keeps compiler writers from adding, for example, bounds checking code. He also has a lot to say about the undefined behaviors and why they’re necessary in a language like C.

It’s a fairly long paper but definitely worth reading if you’re interested in C or confused about all the talk about its not being safe.

Posted in General | Tagged , | Leave a comment

Prettifying Org-mode

Peter Prevos has a nice post in his using Emacs to be more productive series. The post, Ricing Org Mode: A Beautiful Writing Environment, discusses how to make the org-mode buffer “prettier.” It’s very much like Abhinav Tushar’s post that I wrote about back in 2018.

As I said in that previous post, I always find this kind of thing interesting but I’m unlikely to replicate the setup on my systems. That may be because I have old-timey sensibilities but I think it’s because I really, truly believe in and prefer markup systems for entering text. If you use org-mode for writing your posts/articles/books, you’re making the decision that you prefer the control and advantages that plain text provides over the WYSIWYG bling of word processors such as Word.

If you’re one of those people, why would you want the distractions that a semi-WYSIWYG setup brings? To me, it means that the text is harder to edit. If you hide the markers for, say, italic text, it’s that much harder to remove the italics or change it to something else such as bold. The same applies to replacing the header stars with “fancy bullets.” They make it that much harder to interpolate another subtree.

But, of course, that’s just me. Other people may prefer such things and, as always, Emacs lets you have it your way. And to be honest, I do use some of his suggestions. I like displaying in-line images and turning on prettify entities so that rudimentary mathematics is displayed correctly.

Still, I can’t help but feel that if you want to write in markup, then use markup. On the other hand, to channel DMR, if you want WYSIWYG, you know where to find it. If you disagree, take a look at Prevos’ post to see how you can make things look prettier.

Posted in General | Tagged , | Leave a comment

Apple Doesn’t Want to Hear from Me

Following up on Thursday’s post, I thought I’d let Apple know directly of my concern about their new CSAM monitoring. I’d already signed the open letter to Apple but I thought it was worthwhile to send a personal message as well.

That turns out to be essentially impossible. There’s no email address that I could find and their support Webpage is restricted to seeking support for specific problems on specific devices. I thought I’d found a way by offering feedback on the Photos app but you’re restricted to 800 characters, which wasn’t quite enough for what I wanted to say.

Here, on the slim chance that someone from Apple will see it and send it on to the appropriate folks, is the letter I tried to send.


I am writing to express my shock and dismay that Apple has abrogated their longstanding promise not to surveil their users. I’m a developer and have a familiarity with crypto so I understand the technical details of your proposed system but even if we suppose that the system works perfectly, those technical details don’t change the fact that you’ll be spying on us.

I appreciate that Apple wants to be seen and see themselves as good citizens by fighting the scourge of child pornography but you’re conscripting your user base to bear the cost of that good citizenship by forfeiting their privacy. The right thing to do would have been to ask your users if that was a price they were willing to pay.

Even if the endgame is iCloud encryption, you’re still betraying your users by not giving them a choice in the matter. A compromise like “agree to the scanning and we’ll give up our keys to your iCloud data, otherwise we’ll retain the keys and your data will be subject to subpeonas from law enforcement” would probably satisfy most people and, most importantly, would give your users something rather than taking something away.

Your users aren’t the only ones who will suffer from this change. Apple had the hard won trust and faith of their users. That’s gone now. The principal of Falsus in uno, falsus in omnibus suggests that the wise user will never again trust anything you say.

Posted in General | Tagged , | Leave a comment

Red Meat Friday: Vim Doom

A small incursion in the editor wars:

Sure, it would work equally well with the other editor but I have my Emacs hat on.

Posted in General | Tagged , , | Leave a comment

Betrayal

I’ve been fussing with this post for several days now. I alternate between white hot fury and heartbroken sobbing. I’m speaking, of course, of Apple’s betrayal of the users who believed them when they assured us that they had our backs on privacy and would never spy on us or allow others to do so. The same users who defended them against the naysayers and reminded everyone that the real difference between Android and iPhones was that iPhone owners weren’t being spied on. Here’s the promise:

Here’s the reality.

Countless words have already been written on the technical details. There’s good reason to believe that the system’s not as foolproof as Apple claims but, to me, that’s beside the point. Let us assume, arguendo, that Apple’s system is perfect, doesn’t generate false positives, and works just as Apple says. No matter how hard you squint or how eloquent the weasel words, the fact remains that Apple promised over and over that they wouldn’t do something and then they did it anyway.

Sure, fighting child pornography is a worthy goal and no reasonable person could be against it but it’s not a battle I or other iPhone users signed up for. Apple wants to feel virtuous but they want others to pay for their warm feelings with their privacy. Apple doesn’t care if their users want to pay that price; they simply stole our privacy so they could feel good about themselves.

For me, Apple’s betrayal is the important thing in this story but there are also slippery slope concerns. Apple pinky-swears, as Sarah Jamie Lewis puts it, that they absolutely, positively won’t let the system be abused or expanded to detect other behaviors but can we believe them? After all, they’ve already lied to us once. Is there any reason to take them at their word? Here’s four reasons why I don’t think we can:

  1. First there’s the principal of falsus in uno, falsus in omnibus. If they lied to us once, why should we believe anything else they say?
  2. Their track record in standing firm against government incursions into privacy are not good even when the stakes are merely economic as their capitulation to the Chinese government has shown.
  3. Apple like everyone else in the U.S. has to obey the law. What are they going to do when presented with a court order (or law, for that matter) insisting they scan for other material? Their arguments in the 2016 San Bernadino case obviously don’t apply.
  4. The Iron Law of Data Collection.

There’s not much we average iPhone users can do other than write Apple and let them know we’re unhappy. An easy way of doing that is to sign the open letter to Apple protesting their spying. What can Apple do? I don’t need them to apologize or don sackcloth, I just want them to knock it off.

Posted in General | Tagged , | Leave a comment

Org-roam Templates

A couple of weeks ago I wrote about David Wilson’s video on getting started with Org-roam. That video provided the information you need to get Org-roam set up and to start taking notes. Now he has a follow on video that considers how to efficiently enter those notes into the system.

The way to do that is through templates just as with the Org capture. The templates are basically the same but there are a few differences to accommodate the Org-roam system. Wilson steps us through how to set up Org-roam capture templates for a couple of different types of data. The nice thing about Org-roam is that all your notes—no matter they’re about—go into the same repository and the linking mechanisms take care of connecting related notes.

Wilson is promising more videos on Org-roam so if you’re interested in a Zettelkasten system that operates in the Emacs environment, you should subscribe to the series. The current video is about 31 minutes so you’ll probably need to schedule some time.

Posted in General | Tagged , | Leave a comment

The Hole Hawg

Do you know what a Hole Hawg is? Neither did I but Neal Stephenson does and he explains it in graphic and amusing detail. Stephenson, of course, is a Science Fiction author responsible for, among other things, the geek paean Snow Crash and, among crypto nerds, Cryptonomicon. He’s also the author of the longish essay In the Beginning was the Command Line, which, among other things, praises Emacs and says that Emacs “outshines all other editing software in approximately the same way that the noonday sun does the stars.”

His much shorter essay, Unix – The Hole Hawg, is, similarly, an ode to Unix. Like the Hole Hawg—spoiler: the 800 pound gorilla of electric drills—Unix, he says, is a tool of such power and flexibility that everything else pales beside it. As with the Hole Hawg, it’s easy to hurt yourself if you don’t know what you’re doing or are careless but in capable hands it’s a tool that outshines all others. As Stephenson says of Unix masters, “They might use Apple/Microsoft OSes to write letters, play video games, or balance their checkbooks, but they cannot really bring themselves to take these operating systems seriously.”

Aside from his point about Unix, the essay is an interesting exploration of the Hole Hawg and well worth taking a couple of minutes to read. If you’re a Unix/Emacs user, it will resonate.

Posted in General | Tagged , | Leave a comment

Org-ref-cite Video

Yesterday, we took a quick look at the new Org-cite functionality. It’s been merged into Master and will doubtless see its official release with Org 9.5. In the mean time, John Kitchin is busy reimagining his wonderful org-ref package to work in the org-cite framework. That process is not yet complete and Kitchin says that he probably won’t package it up for Melpa until Org 9.5 is released.

For now, you can get an idea of what it’s like by watching his video demonstration of org-ref-cite in action. There’s still some rough edges to be sanded down and not all the org-ref functionality is there. The cross reference citations haven’t been implemented yet and there was no mention of the great import mechanisms in org-ref as shown at the beginning of this video. It’s worth watching that video if you aren’t familiar with org-ref to get an idea of what it does.

Kitchin says he will probably run both org-ref and org-ref-cite in the future because he has over 8 years of papers that depend on org-ref. If you’re just starting, you’ll probably want to stick with org-ref-cite.

You can see the file that Kitchin works on here. The video is 15 minutes, 20 seconds long so it should be pretty easy to fit in. I’m really looking forward to seeing the final product. If it’s anything like org-ref, it’s going to be a winner.

Posted in General | Tagged , | Leave a comment