The NSA Stonewalls Congress

I don’t get this. Reuters is reporting that the NSA is refusing to tell congress about its seeking of back doors. It’s certainly true that an argument can be made that the NSA should be seeking back doors but how is it okay for them to give congress the finger? If you look at what the NSA is saying, it’s pretty clear they’re either incompetent or lying. They say they have a “lessons learned” document about the fallout from the Snowden revelations but that they can’t find it.

In any event, it’s worth taking a look at the premise that the NSA should be seeking back doors and actively trying to get companies to install them. The usual argument against back doors is that others will find and exploit them. That’s not just a theoretical concern. In the real world there have been many (embarrassing to the NSA) instances of exactly that. The primary (known) example of that is the Juniper exploit in which an NSA backdoor in Juniper equipment was modified to provide a new back door for unknown actors.

Every expert who doesn’t work for the NSA or one of its siblings agrees that back doors are a bad idea that will be exploited. The NSA thinks the use of back doors make us safer but the evidence suggests otherwise. The real problem, I think, is that the NSA hasn’t internalized the reality that they’re no longer the best cryptologists in the West and maybe the world. They aren’t and just because it’s hard doesn’t mean that the bad guys won’t find and exploit whatever back doors they manage to install. Just ask Juniper.

Posted in General | Tagged , | Leave a comment

Literate Calc Mode

Robin Schroer has an interesting project that recently landed in MELPA. Many of you know that I’m a big fan of reproducible research and its handmaiden literate programming. Schroer’s project is a sort of light-weight Jupyter Notebook that’s integrated with Emacs. He’s got a post that announced the project and explained what it’s about.

There’s a video with his post but I couldn’t get it to play. That may because I’m on macOS or perhaps because of my anti-tracking software. In either case, the README at the Git repository provides some nice examples of how it works. If you can’t play the video either, take a look at the repository. It will help you understand the project and its aims.

I’m really comfortable with calc and don’t feel the need for an infix calculator but literate calc mode does have some nice features. For instance, you can capture the result of a calculation in a variable and if you change any constituent part, all the results are recalculated. Even better, it’s possible to capture the whole thing to a text file so it can be published or reloaded later for more work.

It’s still early days and Schroer has some enhancements planned. I think this is going to be a really useful project for Emacs users.

Posted in General | Tagged | Leave a comment

Algol 68, Pascal, C, and All That

Apropos of nothing, here’s a really nice short video by Professor David Brailsford of The University of Nottingham about the days when Algol 68 and Pascal were in contention for the language to be taught in various computer courses. Some of those courses were for hardcore Computer Science students and others were for people in other disciplines who needed some computer and programming knowledge.

It’s hard to appreciate from today’s world of multiple industrial strength compilers for every language imaginable but in those days the decisions tended to be made on pragmatic grounds. In particular, Brailsford and his colleagues were concerned that whatever language they chose it should have a competent compiler with good diagnostics. Because this was all taking place in Nottingham in the UK, the situation was further complicated by the type of hardware that was available due to budget concerns.

In the end, they chose Algol 68 for the Computer Science students and Pascal for the others. Neither language has much of a mindshare today. The story that Brailsford tells takes place in the late sixties to the early seventies so Unix and C were on the horizon and would soon be recognized as the proper solution.

The video is only 10 minutes, 12 seconds long so it should be easy to find time for it. You won’t learn anything actionable from it but it’s a really interesting peek back to the early days that only a few still have first hand memory of. Those memories should not be lost so I urge you to take a look.

Posted in General | Tagged | Leave a comment

Orgmode.org Has a New Look

Just a quickie today to note that the Org-mode site, orgmode.org, has a brand new look. That’s thanks to the work of Tecosaur who completely revamped the site. According to his announcement over at Reddit, the core pages are smaller and load faster, the site is more mobile friendly, and many of Org’s features now have animated demonstrations.

The site looks great and it’s much easier to find things than it was before. I especially like the Features page that gives an excellent introduction to some of Org-mode’s features. There are animated examples and explanations so it’s just the thing for a n00b trying to get oriented in the large and intricate Org universe.

Thanks to Tecosaur for his hard work. I’ve added him to the list of people I should buy a beer for if I happen to meet him in real life. You should do the same.

Posted in General | Tagged , | Leave a comment

The Danger of Web Forums

Karl Voit has an interesting diatribe on his Web site that really resonated with me. The TL;DR is that you shouldn’t commit anything relevant to Web forums like Reddit, Hacker News, or Facebook. What Voit terms as “relevant,” I would describe as important: something that’s worth preserving. If you’re posting something like, “Happy Programmers’ Day,” it hardly matters if it disappears tomorrow. If, on the other hand, you have an important lesson or insight to impart that’s important.

The problem, Voit says, is that anything you commit to one of these forums will disappear sooner or later. Look at the popular Google apps or the MySpace content that are no longer available. Right now, it’s hard to imagine a post-Facebook world but they too shall pass and anything important that you had to say on that platform will be lost.

Sadly, though, the problem is larger than just companies going out of business or dropping products. There’s also the problem of politically incorrect posts. You might think that that problem doesn’t apply to those of us in the sciences and engineering but there is case after case of posts on scientific or technical subjects that violate the current narrative being censored. Even if you embrace the current narrative, there are, as Voit explains, significantly differing laws among countries. For example, Germans consider being a Nazi a crime whereas in the US their beliefs are abhorred but still protected.

This is a smaller part of one of my favorite hobby horses: don’t commit your data to any platform that you don’t control. Ideally that means your data is in plain text and resides on a computer you control. That’s not always possible but it represents a goal.

What’s the answer? Voit suggest things like Usenet and personal blogs. Usenet seems hopelessly out of date but is still available. Personal blogs are an option available to everyone with a computer (hosting Irreal cost less than $10 a month). That’s why everything I have to say I say on Irreal. It’s my platform and will prevail as long as I do or at least as long as I want it to.

Take a look at Voit’s post. Perhaps it will make you rethink the way you contribute to the public discourse.

Posted in General | Tagged | Leave a comment

Zamansky 76: Bookmarks and Burly

Mike Zamansky is back with another video in his Using Emacs Series. This time he discusses Emacs bookmarks and the Burly package. You can set a bookmark for any file that you need often and use the bookmark-jump function to bring that file up quickly and easily. Burly does the same sort of thing but for window/buffer configurations. Take a look at Zamansky’s video to see it in action.

Bookmarks are one of those things that seem like a no-brainer yet many—or perhaps most—of us don’t make as much use of them as we should. That changed for me several years ago when I stole a bunch of ideas from abo-abo. First off was to install bookmarks+, which among other things lets me bookmark websites so I can go to them right from Emacs. This, along with abo-abo’s headlong package allow me to map the bookmarks to one or two letter sequences. Wrapping all this into a window configuration hydra allows me to enter Hyper+w m t to bring up my tax file or Hyper+w m b to open my blog in Safari. I wrote about all of that here.

Finally, it’s worth mentioning that any files you have in ~/.agenda-files will be loaded automatically when Emacs starts so I usually visit those by typing in the first letter or two of the file name and letting council-find-file load it for me. It’s just as quick and easy as using a bookmark and I don’t have to add it to my bookmarks file.

Emacs has a lot of ways of quickly loading files and happily none of them require the use of a mouse. Take a look at Zamansky’s video for one of them. The video is 17 minutes, 32 seconds so plan accordingly.

Posted in General | Tagged | Leave a comment

You Are Not Expected to Understand This Redux

Three and a half years ago, I wrote about what is arguably the most famous comment in computer history. That, of course, is the celebrated “You are not expected to understand this” comment in the V6 Unix source code. The comment appears in the process-switching code and was meant to convey that what was going on was particularly hairy.

I just came across a reference to a post from 2018 by Paul McLellan that also discusses the comment. What’s interesting about the comment is that it’s often interpreted as snark but, in fact, was simply meant to convey that the code was very hard to understand. Indeed, Thompson and Ritchie later confessed that they didn’t understand it either. It worked only because of peculiarity of the Unix PDP-11 compiler. When Unix moved to other architectures, the code no longer worked and was rewritten leading to the disappearance of the comment.

McLellan does a good job of explaining what was going on in the code and why it was so difficult to comprehend. If you think that none of this concerns you, you should think again. A necessary part of learning to write code is to read code and V6 Unix is some of the best code you can read. It will show you how the masters did it even if you aren’t writing an operating system.

Posted in General | Tagged , | Leave a comment

A New Organ?

If you’re like me, you probably think that medical science has long since identified all the organs in the human body. Indeed, no new human organs have been identified for about 300 years. Until now.

The New York Times is reporting that researchers from the Netherlands have discovered a fourth set of pituitary glands at the junction of the nasal cavity and throat. It seems nearly impossible that they could have been missed for so long but they are in an out of the way place and require particularly sensitive imaging to detect. Also the researchers, who are oncologists, have examined only a small set of people who are cancer sufferers and they want a larger and more diverse sample.

Still, the preliminary data is pretty persuasive that they have in fact found a hitherto unknown organ. It’s a good lesson: no matter how settled we think a field may be there’s always something new to learn.

Posted in General | Tagged | Leave a comment

Hardware vs. Software

Everyone who’s been around for a while recognizes that computing has gotten more powerful. Problems that were once intractable now seem almost trivial. It’s not really surprising; it’s progress. It’s what we expect. But it does suggest the question: is the progress because of advancements in hardware or because of improved algorithms being brought to bear on the problems.

It turns out that some researchers have looked at the question scientifically and written up their results. Even better, Vivek Haldar discusses the paper in one of his “Read A Paper” videos. Johannes Fichte, Markus Hecher, and Stefan Szeider have a paper that Haldar discusses that studies the problem of SAT solvers. SAT solving is a notoriously hard NP-Complete problem but we’re now routinely solving problems that were impossible 20 years ago. Is that because the hardware is so much better or is it because the algorithms are so much improved?

To answer that question, the authors ran today’s algorithms on 20 year old hardware and algorithms from twenty years ago on today’s hardware. It’s a clever experiment. If you don’t already know the answer, take a second to guess what the answer is before you watch Haldar’s video or read the paper. If you need a hint, the answer is just what you’d expect it would be.

Posted in General | Tagged | Leave a comment

The Wizard Book Cover Explained

A lot of you probably know that Structure and Interpretation of Computer Programs, SICP, is also called “The Wizard Book.” A glace at its cover explains the alternate name but Conor Hoekstra has a more thorough explanation of the cover:

It’s all tongue-in-cheek, of course, but it does provide an opportunity to once again urge any of you who have not read it to do so. I promise you that no matter how experienced you are, SICP will teach you new things and change the way you think about programming.

You can read the book for free and if you prefer a more passive experience, there’s a complete set of lecture videos that Sussman and Abelson gave at HP in 1986. Both are very much worth your time.

Posted in General | Tagged , , | Leave a comment