What Did They Think Was Going To Happen?

I can’t stop laughing:

I’m evil, I know, but the schadenfreude is killing me.

I don’t feel even a little sorry for these people. They’ve been warned repeatedly about something like this happening. Some organizations, like CERN, saw this sort of thing coming and started investigating alternatives but most just went blithely on assuming everything would be okay. Until it wasn’t. Of course, this is just a blip and by the time you read this Microsoft will undoubtedly have found and fixed the problem. But here’s some questions for those addicted to Microsoft Office:

  1. What happens if something like this occurs when you have a hard deadline? Imagine a law firm, say, that can’t file a brief in time and costs a client their money/freedom/life.
  2. Could your organization survive for an extended time without email?
  3. What happens when Microsoft end-of-lifes Office? Will you be able to read your old Word documents or Excel spreadsheets?

I know I keep harping on this but you must retain control of your data and the means to access it. If you don’t, sooner or later you will experience massive hurt. When that happens, don’t bother moaning about how evil your software vendor is because no one will feel sorry for you then either.

As a practical matter, this means you should use open-source/open-standards software. If you don’t, disaster will eventually strike and it won’t matter that you were using the “industry standard” office suite. Your data will still be gone.

Posted in General | Tagged , | Leave a comment

Ken Thompson Talks About Computer Chess

Someone posted a pointer to a 2005 interview of Ken Thompson by John Mashey in which they discuss Thompson’s work on computer chess. It’s unusual, as far as Thompson interviews go, because it doesn’t mention Unix except to note that one of Thompson’s first chess programs appeared in the some early versions of Unix. The interview concerns itself entirely with computer chess.

One of the things that comes through clearly is that a lot of Thompson’s success came about from his playing around with computers just for the fun of it. Most of us know that Unix came about largely because of that dynamic and his successes with computer chess are the same. It’s clear from the interview that he really enjoyed the computer chess tournaments and that he was doing it not for fame or to win prizes but for fun.

Most people think of computer chess as a premier application of artificial intelligence but, in fact, there’s virtually no AI involved. It’s all brute force. The algorithms are mostly concerned with generating possible moves at each board position, pruning infeasible solutions, and picking (one of) the best of those that remain. Thompson says that the winning computer was usually fastest because it could look at more possibilities in the given time.

An interesting thing I learned from the interview was how computer chess programs handle endgames. It was widely held that a program would never be able to handle endgames. One chess expert even poked fun at Thompson for thinking otherwise. Of course, Thompson took that as a challenge and showed that it could be done. The method is entirely different from that used in the beginning and middle games. It’s worth reading the interview just to see how Thompson solved the problem.

If you have any interest in computer chess or in seeing another example of Thompson’s genius you should take a look at this interview.

Posted in General | Tagged | Leave a comment

Zamansky 62: Magit Forge

Mike Zamansky has posted another great video in his Using Emacs Series. This video takes a look at Magit Forge. It’s available from Melpa and is easy to install. Zamansky shows how easy in the video.

Once installed, it just becomes part of the Magit status panel. From there you can make and respond to GitHub—or other Git Forges, such as GitLab—pull requests from the comfort of Emacs. Zamansky demonstrates making and responding to the PR from Emacs and from GitHub. The only thing he couldn’t do from Emacs was to merge code from the PR into the Master branch.

The video is just shy of 18 minutes so you’ll need to schedule some time but it’s definitely worth a few minutes to watch the video.

UPDATE [2019-11-19 Tue 20:50]: Tarsius provides a pointer to a reddit post on why there is no dedicated merge-pull-request.

Posted in General | Tagged , | Leave a comment

Probably the Worst Password Advice You’ll Ever See

I have no—because there are no—words to describe what a stupid idea this is:

What you won’t know unless you follow the link to the Vice article is that in addition to this terrible advice the bank also charges its customers to change their passwords.

Posted in General | Tagged | Leave a comment

Generating Technical Documents with Org-mode

Mike Hamrick has put up an excellent video on using Emacs and Org-mode to publish nice looking and consistent technical documents. In preparing a document, Hamrick uses literate programming and—although he doesn’t mention it—reproducible research techniques. That’s important, because as he notes, if the code or data used in the document changes, things that depend on that code or data will change as well and it’s important to keep them in sync.

This is exactly the problem—or at least one of the problems—that Org-mode’s Babel was designed to solve. By having Babel embed the results of running the document’s code against its data into the document itself, you’re guaranteed that everything will stay consistent.

Hamrick has a few tricks that he uses to get a nice looking document and keep it consistent. For HTML, he uses Fabrice Niessen’s ReadTheOrg theme, which I’ve written about before, to produce beautiful HTML documents. The other trick he uses that I really liked is to have a file of helper functions that he can call from the text he’s writing. These do things like return the length of a string or the first 2 characters of a string. By using them, he ensures that his document remains consistent even if the data the string is from changes.

Don’t worry about trying to absorb the source code from the video. He’s put all the code and data for the video on GitLab. Similarly, his configuration files are on GitLab so you can see his publishing setup.

The video is 22 minutes, 42 seconds long so you’ll need to block out some time but it’s very much worth it. If you use Org-mode in your writing, you really need to watch this video.

Posted in General | Tagged , | Leave a comment

Zamansky 61: Org-msg

Mike Zamansky has another video up in his Using Emacs Series. This time he looks at writing mu4e emails in Org-mode. Like me, he mostly wants to send plain text emails but sometimes he’d like to send tables, source code, or other rich text. He tried using the built-in org-mu4e-compose-org-mode but it’s deprecated and didn’t do everything he wanted. I’ve had the same experience. I tried org-mu4e-compose-org-mode but it didn’t do many of the things I cared about so I stopped using it.

Happily, Zamansky has found another solution: org-msg. It does a much better job of allowing you to use Org markup in your emails and rendering the results nicely. Of course, to do that it sends your mail as HTML so if you don’t like that, org-msg is not for you.

Take a look at Zamansky’s video to see both org-mu4e-compose-org-mode and org-msg in action. You can see right away why org-msg is the superior solution. In addition to its better rendering, org-msg is more configurable. You can, for example, set it to automatically add a signature or to extract the sender’s name from an email you’re replying to and use it to add a salutation.

If you’ve been looking for a way to use Org-mode with mu4e, be sure to spend a few minutes to watch this video. The video is just short of 15 minutes so it should be easy to find some time for it.

Posted in General | Tagged , | Leave a comment

Generating Gantt Charts with Org-mode

Perhaps because I’ve always worked for smaller organizations, I’ve never had to deal with Gantt charts. I’ve always considered them yet another management fad but that may be due to ignorant prejudice. In any event, lots of people use them and find them useful.

The other day I saw a pointer to a recent video on generating Gantt charts with Org-mode. It turns out to be pretty easy. Once you get the start and end dates into an Org table it’s just a matter of invoking a bit of gnuplot code from a source block to generate the chart.

As I said, I don’t have much interest in Gantt charts but I do like reading about leveraging Org-mode to accomplish tasks that used to take dedicated applications. The video is 13 minutes, 11 seconds so it should be easy to fit it in. It’s worth taking a look at if only to see how versatile Org-mode and Emacs can be.

Posted in General | Tagged , | Leave a comment

The Demise of the Car Key

As I predicted previously, car manufacturers are beginning to jump on the keyless bandwagon. In a way, they’re already there with the widespread adoption of key fobs to open doors and start the engine. The fobs are convenient because you don’t have take them out of your pocket or purse so there’s no fumbling around trying to find your keys. Still, it’s one more thing you have to carry around and in that sense it’s no different from having a traditional key.

What’s needed is a way to unlock your car’s doors and start its engine with your smartphone. According to a CNBC article, we’re on our way. Tesla has already implemented such a system and Lincoln has announced that it will introduce its own solution this fall.

There are, of course, some problems. The first thing everyone thinks of is, “What if my phone dies or gets lost?” That’s not a real concern to me for reasons I’ve explained before but not everyone is as obsessive about keeping their phone charged and in sight as I am. Lost phones or dead batteries could be a real concern for many people.

Another problem that the CNBC article points out is dealing with other people, such as parking valets, using your car. Depending on where you live, that can also be a significant problem. Tesla’s answer to both those problems is a card that can also be used to unlock and start the car. Lincoln’s answer is similar but uses a key fob instead of card. The problem with both those solutions is that we’re back to carrying something extra around.

I’m hoping that the next time I get a new car, the smartphone solution will be available and I can stop carrying around keys. That would be a delight.

Posted in General | Tagged | Leave a comment

Emacs Resources for Writers

Recently, James Gill tweeted about a collection of Emacs resources for writers that he’s curated into a GitHub repository. There are two parts to the collection:

  1. Tips and examples for writing with Emacs, and
  2. Writing a book with Emacs.

As you’d expect, most of the articles are about leveraging Org-mode for writing. That’s no surprise, of course, because Org excels at that. Indeed, almost any type of writing from memos or blog posts—such as Irreal’s—to journal articles or books is easily accomplished with Org. I’ve reached the point were virtually everything I write is done with Org-mode.

Sadly, the literary writing market runs on Word so if that’s your niche, you’re going to have to deal with conversion. Org, of course, has built in tools for that and if those don’t meet your needs, the excellent Pandoc almost certainly will.

If you’re a writer who’d like to escape from the pain that is Word and give Emacs a try, be sure to read the articles in Gill’s list. I’ve discussed several of them in Irreal previously but a few are new to me. A handful of the resources are videos but most are short blog posts or articles that are easy and quick to read.

It’s not always obvious how to use Emacs for writing effectively so the articles and videos collected by Gill, which distill a lot of hard won wisdom, can be a real help.

Posted in General | Tagged , | Leave a comment

Remote Debugging With Tramp

Matt Ray gave a very nice presentation to EmacsConf 2019 on Interactive Remote Debugging and Development with TRAMP Mode. One of the frequent complaints about Emacs is that it’s hard to work with remote files. Mostly that’s because the person complaining doesn’t know about Tramp. There are, of course, some situations where Tramp is not the best solution but it’s usually an excellent way of working with remote files.

It’s easy to think of Tramp simply as a way of editing remote files but it’s actually much more powerful than that. Ray demonstrates some of that power first by using Tramp to open a shell on a remote system and then by showing how he uses it to work with virtual machines on his own workstation. He uses the freely available tools Chef, Vagrant, and Kitchen to spin up a virtual instance of Debian and work with it all from the comfort of Emacs.

Even command-line aficionados will enjoy his video because although he stays in Emacs, he does a lot of the work using the shell command. He begins the video by showing why using the shell from Emacs can be a win over firing up a separate terminal. During the rest of the presentation, he just opens a shell on the remote machine—or virtual machine—when he needs to make a change to the remote environment.

The video is about 35 and half minutes so you’ll probably have to schedule some time but I found it worth the time.

Posted in General | Tagged | Leave a comment