Generating Slides and a PDF From the Same Org File

Karl Voit has a revealing post in his UOMF series that explains how to generate a slide deck and supporting PDF from the same Org file. That has some obvious benefits, not least that it provides a single source of truth so you don’t have to worry about the slides and PDF getting out of sync.

It turns out to be pretty easy to mix LaTeX and HTML source in the same file without having them interfere with each other. For example, anything in a NOTES block will appear only in the PDF, not on the slides.

One of the interesting things about Voit’s method is that he likes to maintain just a few Org files that cover all his work so the slides and PDF are just one node of a large Org file that contains other material. If you like that idea, be sure to take a look at his post to see how he does it.

If your work requires you to give presentations and you like to use slides accompanied by a PDF for a handout that fills in the blanks, be sure to read Voit’s post. It really makes sense to keep everything together in a single file and Voit shows you how to do that.

Posted in General | Tagged , | Leave a comment

Just A Reminder…

…of why I call Steve Purcell an Open Source hero:

As I’ve said before, Purcell lives in New Zealand so most of us won’t have the opportunity to meet him but if you do, be sure to buy him a beer. He’s earned it.

Posted in General | Tagged | Leave a comment

Toasters, New and Old

About a year ago, ESR wrote a post on consumer grade toasters and how, regardless of price, they are all essentially the same, suffer from identical problems, and are basically junk. It’s hard not to sympathize. Here at Irreal headquarters we gave up on toasters some time ago and replaced them with what amounts to a high end toaster oven. It can theoretically cook all sorts of things but I can’t remember ever using it for anything except toasting bread.

The other day, I saw a link to a video about a toaster from over 60 years ago that, the video claimed, is better than the toaster you’re using today. It’s the Sunbeam Radiant Control Toaster. I remember having one of those as a child and marveling at how all you had to do was put the bread in the toaster and everything else was automatic. There was no lever to push down and no timer to set. Just put the bread in.

Automatically lowering the bread is sort of nice, I guess, but it was the lack of a timer that was the killer feature. Modern toasters all have a timer—either implicit or explicit—to determine how long to heat your bread. The Sunbeam used a simple and ingenious mechanism to estimate how brown the bread was and to stop heating and raise the toasted bread when it reached the desired color.

Every bit of this was analog of course but what was really incredible was the mechanism for raising and lowering the bread. There was no motor or electromagnet as I had always assumed. Rather the mechanism depended on a series of levers and the thermal expansion of the heating coil.

The video is 18 minutes long and several of the commenters remarked that they couldn’t believe they’d just spent 18 minutes watching a video on toasters but they all seemed glad they had. Toasters aren’t in the normal Irreal purview, of course, but the site is for and by geeks and I can’t imagine any geek not loving this video.

Posted in General | Tagged | Leave a comment

Swiper and Multiple Cursors

As most of you know, I’m a huge fan of the Swiper/Counsel/Ivy suite and consider it one of my most important packages. I’m sure I use it more than any other package or set of commands. I’m also a fan of Multiple Cursors.

Álvaro Ramírez has a quick post that shows them working together. I think I might have known you could do this at one time but I’d long since forgotten. Abo-abo’s post announcing the integration was in 2015 and I vaguely remember thinking, “Oh, that’s neat. I’ll have to remember to use it.” Sadly, I never did.

Take a look at Ramírez’s post to see it in action. There are a couple of things to know if you want to try it out:

  1. The binding to Ctrl+7 is enabled by default so you don’t have to do anything about that unless you want to change it.
  2. You must add swiper-mc to the mc/cmds-to-run-once list. I messed this up initially and had to fix it by hand.

This is another one of those tricks that you probably won’t use everyday but it’s just perfect for finding and changing every occurrence of some symbol. It’s also handy for making mass deletions in a buffer list as abo-abo demonstrates in his original post.

Posted in General | Tagged | Leave a comment

Ken Thompson’s Password

Many years ago, (the old) SCO released the source for some “ancient” versions of Unix. They did that by releasing a tape dump of the file system. Included in the image was a copy of the password file. The file is from System 3 and well before the introduction of the shadow password file so it had the password hashes in them. The hash was several iterations of DES with some changes to the S-boxes to prevent using hardware to crack them.

From time-to-time people have tried their hand at cracking those passwords just for fun. The DES algorithm is notoriously weak (because of the small key space) given today’s computers so this wasn’t too difficult. One password that no one seemed able to crack was Ken Thompson’s.

For the last week or so I’ve been following a thread on the TUHS mailing list about efforts to find out what that password was. As Leah Neukirchen reports in this blog post, Nigel Williams finally succeeded in cracking his password. It’s p/q2-q4!, which, appropriately enough for Thompson, is an opening chess move.

Looking at it, you can see why it was harder to crack than some of the rest. Whether by design or as a consequence of its being a chess move, it was as hard to crack as it was possible to make passwords in those days. It’s the maximum length and comprises letters, numbers, and symbols. It’s not clear whether or not capital letters were available.

After the result was announced, Thompson posted his congratulations.

Posted in General | Tagged , | Leave a comment

Cashless

Commenting on my Obsolete Tech That Refuses to Die post, Johnathan Mantey remarked that a technology that is having a hard time obtaining traction is cashless transactions and he pointed me to a USA Today article on going cashless. There are two sides to the idea of going cashless. The first side is that of consumers like you and me. We can pretty much be cashless. I haven’t used actual cash in some years. My only “cash-based” transactions are the occasional checks I write to those two small business I mentioned in the Obsolete Tech post. Everything else is Apple Pay or a physical credit card.

The other side is the merchants’. Although I’ve never encountered one, some merchants are refusing to take cash. You can see why it’s an attractive option for them. Beyond the obvious benefit of speeding up checkout, it also means the establishment doesn’t have cash lying around to attract armed robbers, their employees don’t have to spend time reconciling cash balances, and no one has to carry cash to the bank for deposit.

But there is a downside. Some people—mostly poor people—don’t have bank accounts, let alone credit cards. Refusing to take cash prohibits these people from taking advantage of a merchant’s services, whatever they are. Naturally, this created an opportunity for politicians to pander that was not ignored. Rather than find creative solutions to the problem—see the solution used by Atlanta’s Mercedes Benz stadium discussed in the USA Today article—they simply passed laws outlawing the practice.

Really, they needn’t have bothered. Most merchants who tried the cashless option have decided to take cash after all. They feel it’s more equitable and many of their customers—even those who did have credit cards—objected to the cashless policy.

From the credit-card-using consumers’ point of view, it doesn’t matter. I very rarely see anyone using cash at supermarkets or other “everyday” places let alone in upscale establishments. The amount of time I’ve spent waiting in line for someone to pay in cash is negligible. The conclusion, I think, is that going cashless is mostly an advantage for merchants.

That said, there’s no reason we can’t move to a cashless society. The advantages to merchants, and ultimately consumers, are manifest. Sweden has shown that it can be done. We can do it here in the US too. We’ll achieve a cash-free society when we start finding solutions to the problems instead of pandering. So never.

Posted in General | Tagged | Leave a comment

Zamansky 58: LSP Mode

After a long hiatus, Mike Zamansky is back with another video in his Using Emacs Series. This time, Zamansky tells us how he got LSP mode working with Emacs. It’s not as simple as you’d like but it also isn’t overwhelmingly hard.

He’s tried to get LSP running before but there were always conflicts with his configuration so he decided to start over by declaring Emacs bankruptcy and clearing out his .emacs.d directory. He quickly discovered that life in vanilla Emacs was not for him. Like me, he’s a swiper/counsel fan and has integrated it into his workflow so he added that back in. He also added other must-have things like magit and the latest org-mode. Really, what he needed to get rid of was all the language-specific configuration. His old and new configurations are on GitHub so you can see what he did.

In the video, he shows how he got things working for Python and C++. That mostly involved loading the language servers for Python and C++. The details are, unfortunately, extremely finicky and you’ll be glad to have Zamansky’s video to use as a go by if you decide to set it up yourself.

As usual with Zamansky’s videos, there’s a lot to learn. If you’ve been wanting to get LSP mode working, this video is a good place to start. There were a few technical problems with the video but nothing that makes it impossible or painful to watch. It’s good to have him back and I hope he’ll continue making new videos. The video is just short of 15 minutes so it should be easy to fit it in.

Posted in General | Tagged | Leave a comment

Obsolete Tech That Refuses to Die

In my The Times They Are A-changin’ post, I passed on the news that the last pager service in Japan was quitting operations. The BBC picked up the same news and decided to look at obsolete technology that is refusing to die.

First they looked at pagers and reported that although Japan has abandoned the technology, other countries still rely on them. As Johnathan Mantey suggested in a comment to my post, one of the largest users is the medical sector, especially hospitals. The BBC says that the UK’s National Health Service alone accounts for 10% of worldwide pager use and that 80 percent of UK hospitals still use them. Nevertheless, the NHS plans to phase them out by 2021.

Next up is checks. Although once ubiquitous, checks are mostly obsolete. The BBC says that the average US household (as of 2015) writes about 7 checks a month. That mirrors my own use almost exactly. Virtually every check we write is to one of two small shops that refuse to take credit cards. A number of countries have already done away with checks but they keep limping along in the US and UK.

Most surprising of all, tape cassettes for music not only haven’t died a well deserved death but are actually making a comeback. That’s surprising because their sound quality is terrible, they’re always breaking, and you need a dedicated device to play them. I blame their zombie-like refusal to die on hipsters and others who value trendiness over function.

Finally, there’s the fax machine. Ten years ago, Dilbert was already making fun of the idea of anyone using a fax machine but it’s another technology that refuses to die. Again, the UK’s NHS is a major enabler. They are the world’s largest buyer of fax machines and were recently prohibited from buying any more and told to phase them out by 2020. As hard as it is to believe, millions of faxes are sent everyday worldwide.

Take a look at the BBC article. It’s amusing and you’ll probably be surprised by all the technology that should be dead but just keeps lurching along.

Posted in General | Tagged | Leave a comment

More on the 737 MAX

In my What Happened at Boeing? post, I recounted some of the disturbing tales told by Matt Stoller of how a dysfunctional management team of Boeing succeeded in taking what was arguably the world’s foremost aircraft design and manufacturing company and turning it into a travesty of itself that produced a plane so flawed that it killed 346 people before it was grounded.

There’s a nice followup to Stoller’s post by Maureen Tkacik in The New Republic that provides a few more details on how bad that management was and how their decisions lead directly to the 737 MAX disaster. Whereas the old Boeing management all had aviation backgrounds and focused on building the best aircraft possible, the post-merger management were mostly finance people concerned solely with bean counting and politics.

A telling example of that was the McDonnell Douglas CEO at the time of the merger who, as Tkacik says, “…liked to use what he called the “Hollywood model” for dealing with engineers: Hire them for a few months when project deadlines are nigh, fire them when you need to make numbers.” Making the numbers was all the new management team cared about. Any management team has to care about fiscal matters, of course, but that shouldn’t be their sole concern, especially when lives are at stake.

Reading Tkacik’s account is a bit overwhelming as she goes over the myriad bad decisions made mostly to ensure that 737 pilots would not have to undergo simulator training to recertify for the 737 MAX. It’s daunting but well worth reading. Of course, engineers are already familiar with its lessons; it’s management that really needs to read her article.

Posted in General | Tagged | Leave a comment

Emacs Keybindings on MacOS

Every three or four years, I run across a tweet or post from someone who’s discovered that the Mac recognizes a few basic Emacs keybindings. Here’s the most recent example. The time before that was about three years ago.

It’s nice that MacOS has some of those keystrokes built in but it’s actually much better than that. The OS has the facility to map arbitrary keystrokes to the various editing and cursor movement functions. All you have to do, as I explained in my original post on the matter, is provide a text file containing the mappings.

Once you do that, you’ll have many Emacs keybindings available system wide. Another nice thing is that you don’t have to make up your own text file containing the bindings. There’s a pointer to one you can download at the link immediately above. Of course, you can edit it to suit your own notion of what the proper bindings should be. I’ve been using this capability for years and wouldn’t want to live without it. Until we can do everything from within Emacs, this is a nice way of leveraging our Emacs muscle memory.

Posted in General | Tagged , | Leave a comment