GM Sold Customer Data And Wants To Continue

Remember when I told you that GM was resisting Car Play/Android Auto because they wanted to collect data from their customers so they could sell it? Did you think that I was merely mounting my privacy hobby horse and exaggerating? It turns out I wasn’t.

GM has agreed to pay $220 million dollars to settle a suit by 35 states and the District of Columbia that alleges GM collected data from their customers via their Smart Drivers program and, even though they promised not to, sold the data to data brokers and insurers who used it to set, and sometimes increase, insurance rates.

Personally, I find this remedy and the previous one with the FTC inadequate. The FTC agreement stipulates that GM can not collect user data for 5 years. How about never? No matter what GM claims, there’s no reason to collect this data other than to sell it.

GM’s insistence on using their own media system is just another indication that they want to continue collecting and selling their customers’ data. Why anyone would buy a GM car after this is beyond me. John Gruber agrees. He finds their cars of poor quality but says that even if they made decent cars, he wouldn’t buy one because GM thinks it’s just fine to rat out their customers to the insurers. Don’t even get him started on the Car Play thing.

Posted in General | Tagged , | Leave a comment

A Discovery Typo

As you can probably tell from my recent post on Patrick Stewart, I’m a certified space buff. I no longer track the details of our space program but I’m always interested in new happenings. I was really surprised, therefore, when I saw this article on the space shuttle Discovery. It turns out that someone has just noticed that the ‘S’ in “Discovery” on the starboard side is upside down.

It’s pretty subtle and you have to be a bit of a typography nerd to notice but the Helvetica ‘S’ is a bit wider on the bottom. Imagine it: Discovery flew for 27 years and no one noticed. Or at least no one mentioned it. The letters were applied by using stencils so it’s easy to understand how it could have happened. One of the commenters noted that the ‘S’ is right on a seam, which may have made it more difficult to see the problem. In any event, as everyone commenting on it says, once it’s pointed out, you can’t unsee it.

None of this is really important, of course. At most, it’s an amusing deviation from NASA’s obsessive attention to detail. As the article at the link points out, NASA even had detailed, written instructions on what text on the orbiters should look like. They forgot to mention that the stencils should be placed right side up.

Posted in General | Tagged | Leave a comment

Highlighting The Active Window

Three years ago, I wrote about marking the active window (update here ) so that it’s easy to pick it out from the other, inactive windows. I did that by making the mode line of the active window a distinct color instead of the slightly different shade of gray from the other windows. That’s worked out really well for me and I’ve never looked back.

Now Ray Zeitler over at Ray on Emacs takes another look at the problem and found a really nice solution. It’s a bit more in your face than mine so if you’re looking for something that makes the active window really stand out, you should take a look at his post. The TL;DR is that instead of changing the active window, he changes the background color of all the other windows.

Zeitler found his solution on a 10 year old Stack Exchange post so it’s pretty certain to work no matter what version of Emacs you’re using. The code is very simple and you can simply copy it to your init.el if you’re interested.

As I said, this solution seems a little aggressive to me so I doubt I’ll be implementing it but others may disagree. One thing for sure, it’s going to make your active window stand out. It’s a small enough change that you can try it out—say by copying it to your scratch buffer and executing it—to see if it’s something you’d like.

Posted in General | Tagged | Leave a comment

Patrick Stewart

Truly a sad day for us nerds. Patrick Stewart, known to us as Captain Jean-Luc Picard, has died. He was 86. Stewart is the second Star Trek actor to die this week. Earlier, Walter Koenig, who played Pavel Chekov on the original Star Trek died at 90.

I suppose that some younger Irreal readers may only vaguely remember—or perhaps not even seen—Star Trek and Star Trek TNG but for those of us who were there they were important cultural phenomena. All the nerds in my generation aspired to be like Spock. Stewart’s Star Trek TNG was actually the better series and a large part of that was due to Stewart. His portrayal of Picard was spot on.

The days of Star Trek are over now and Stewart, who was a well established Shakespearean stage actor moved on to other projects, including X-Men. Still, for many of us, Star Trek and Stewart were an important part of growing up. We’re going to miss him.

Posted in General | Tagged | Leave a comment

Emacs Turns 50

Over at the MIT Technology Review there’s a nice article on Emacs turning 50 this year. It gives a short history of Emacs starting from its TECO days. Most of that history is pretty well known to seasoned Emacs users but it’s still interesting.

What the article doesn’t give is the exact day of Emacs’ 50th birthday. That’s not surprising. The early history of Emacs involved the researchers at the MIT Artificial Intelligence Laboratory agreeing on a standard set of TECO macros in order to improve collaboration. That was undoubtedly an ongoing process that didn’t have a well defined beginning or end so it’s easy to understand why the exact birthday of Emacs is a little murky.

Regardless, we can all celebrate Emacs’ 50th year. It’s remarkable when you think about it. Very few programs last that long. There’s FORTRAN and Lisp, of course, but I can’t think of any other piece of software with that sort of longevity. There is, to be sure, a Ship of Theseus aspect to that longevity but it’s one shared by FORTRAN and Lisp as well.

Who knows what things will look like in another 50 years but if we still have editors, I’m putting my money on Emacs still being around. Wouldn’t that be something?

Posted in General | Tagged | Leave a comment

Electric Quote Mode

Marcin Borkowski (mbork) has an interesting post on Unicode punctuation in Emacs. His post is mainly concerned with the vagaries of dealing with English and Polish punctuation in the same document but a lot of the heavy lifting is accomplished with Electric Quote Mode.

The main problem is handling single and double quotes ‘like this’ and “like this”. Because I do almost all my writing in Org mode, I use the ':t option to turn the ASCII double quote (") into their curved typeset equivalents on export. That’s supposed to do the same with single quotes but I could never get it to work for me and always had to add then manually.

Fortunately, it’s easy to make everything work right in the buffer as you type. You merely turn electric-quote-mode on and it takes care of everything for you. By default it acts the way TeX used to by requiring “ for an opening double quote and ” for the closing double quote and similarly for single quotes. You can make it accept ” and ‘ instead by setting electric-quote-replace-double and electric-quote-context-sensitive to t.

Electric Quote Mode is global so turning it on enables it for all your buffers. You can use electric-quote-local-mode if you want it only in the current buffer. You can toggle either of them on or off by simply calling Meta+x electric-quote....

If you have to deal different quote notation for two or more languages, take a look at mbork’s post for a nifty solution.

Posted in General | Tagged | Leave a comment

Controlling Where Isearch Starts Searching

Today I learned a new Emacs trick from Emacs Dwelling. Well, new to me. It turns out it’s been in Emacs since 28.1 so for about four and a half years.

Here’s the problem. When you call isearch it starts searching at the current point location to the bottom of the file. You can cause it to wrap around and continue searching at the top of the file but this isn’t always convenient. As a result, many people always start their search by moving to the top of the buffer first. But this isn’t always convenient either. For example, if you quit the search you go back to the top of the file, not where you started.

Sometimes you want a bit more control: perhaps you want to start at the first match or the last match and if you quit, you’d like to be back where you started. Well this is Emacs so of course you can do that. The nice thing is that it’s already built in. There are no packages to install, you just enable it my setting isearch-allow-motion to t.

You can start the search at any of:

  1. The current point position
  2. The first match in the file
  3. The last match in the file
  4. The first match before the window
  5. The first match after the window

Take a look at the Emacs Dwelling post to see the details and how to invoke the extra behavior. I don’t know why this hasn’t become the default. If you don’t use the extra capabilities, everything works exactly as before.

Posted in General | Tagged | Leave a comment

Analyzing Emacs News

Sacha Chua has a nice post that describes something that I really like: taking some data that she’s collected and analysing it to extract useful information. For some reason I really like that sort of thing and am always doing it myself with my own data.

In Chua’s case, she wanted to know how many Emacs News entries she’s written and plot them over time. It’s a little more difficult than you might think. First of all, she didn’t have the complete Emacs News index so she had to recreate the missing parts by converting the HTML entries into Org mode. She did that with a standard Unix pipeline using Pandoc.

Once she had everything in Org mode, she wrote some Elisp to extract the needed information and put it in a table. From there, it was easy to produce a graph showing how may entries she wrote by year. You can even see the years her daughter was a toddler because the number of entries went down for a couple of years. As Chua says, “Babies sleep a lot; toddlers, not so much.”

Take a look at Chua’s post to see all the code and the final graph. The data is mostly useful only for Chua just as mine is useful mostly for me but the way she goes about analyzing the data is useful to anyone that needs to take some data and massage it.

Posted in General | Tagged , | Leave a comment

Variables In Org Capture

Martin Schell has an excellent post on building and using Org capture templates. What’s interesting about his approach is that his template prompts for certain information—customer ID and site location in his example—captures that information in some local variables, and uses those variables to customize the capture for the particular customer.

His two main tools for doing this are:

  1. The %^{PROMPT|A|B|...} placeholder to prompt for data.
  2. The %(EXP) placeholder to execute the Elisp expression EXP.

He wrote some helper functions to deal with setting and accessing local variables. The first, ms/set-var, prompts the user for the value of a variable, creates the variable, sets its value, and returns the value. This is different from the %^{...} placeholder in that it captures the value of the user’s answer for later use. The other helper functions make use of the captured variables.

Take a look at Schell’s post to see the functions and how the whole thing hangs together. His needs may be more complicated than normal but the ideas he uses to solve them are handy and applicable to many—even simpler—situations.

I’ve used all the placeholders that uses in my own templates but the idea of capturing a variable for later reuse in the template is new to me. It’s a neat idea and definitely worth knowing.

Posted in General | Tagged , | Leave a comment

Success!

I’ve successfully updated PHP so although I will continue to monitor
things, everything looks fine. Let me know if you experience any problems.

Posted in Administrivia | Tagged | Leave a comment