How To Avoid Search Warrants

Last week, DuckDuckGo tweeted that they have had zero search warrants since their founding in 2008. That’s because they don’t log their users’ searches so there’s no useful information for law enforcement to demand access to. Contrast that to Google who last year had 11,554 geofence warrants. To channel the meme, if you collect it, they will come. What DDG has shown is that if you don’t collect it, they will leave you and your users alone.

I was disappointed with the tweet’s comments. They mostly fell into the “Yeah but the XYZ search engine is better” or the “Yeah but the guvment will issue secret warrants forcing them record queries and not reveal it” categories.

I’m not sure that the second complaint is reasonable in the U.S. There have been such warrants targeted at specific individuals but a general warrant targeting everyone would doubtless run into fourth amendment issues.

As far as which search engine is best, that’s a war I don’t want to enlist in. Irreal commenters I trust have recommended Brave and I do use it but my go to search engine is still DDG and I find it adequate for most uses. Brave, I find, does have slightly more comprehensive results so I fall back to it if I need to bear down. Truth to tell, I suspect that the search engine with the best results—once you filter out all the nonsense—is Google but then your search data is being logged and you could be caught up—perfectly innocently—in some law enforcement dragnet having nothing to do with you.

I think we should all take a moment and celebrate DDG—and yes, the others—for keeping our data so safe that law enforcement doesn’t bother trying to get it out of them.

Posted in General | Tagged | Leave a comment

RSS for the Researcher

At the beginning of his Elfeed video, John Kitchen mentioned a paper by James Fraser on RSS for the researcher. This is notable for two reasons. First, there’s the paper itself, of course, but there’s also the very nice way Kitchin has of representing URLs. He lists the URL in text but also provides a QR Code for it. My first reaction was that it was sort of gimmicky but the URL to Fraser’s paper was long and was split over two lines so I paused the video and scanned the QR code with ScanLife on my iPhone. That captured the URL and when I shared it with my laptop, the paper was automatically opened in my browser. That’s really easy and convenient. I wish others would consider doing that, at least for complicated or long URLs.

Although it was written in 2013, the paper is still interesting and useful today. A significant part of a researcher’s job is keeping up with the literature. There are all sorts of aggregators specialized for a particular discipline but RSS is a general solution that can aggregate almost any periodic content provider such as journals and blogs.

The paper goes over the advantages of RSS, which most Irreal readers are familiar with but Fraser also details his workflow and how he keeps up with the literature virtually for free by reading his RSS feed in short downtimes or even when he is walking. If you’re a researcher trying to keep up, RSS is something you should take a look at. You should also read the paper if you’re an RSS n00b.

Posted in General | Tagged , | Leave a comment

Emacs as a Tool for Scientists

Recently, John Kitchin tweeted a pointer to the draft of a paper by
Timonthy Johnson that makes the case for Emacs as the tool for scientists to organize and report their research. The paper, Emacs as a Tool for Modern Science, contrasts the “normal” way or organizing and conducting research to using Emacs for the same job.

Whereas the normal procedure involves the use of multiple pieces of software, the Emacs method uses only a single program: Emacs. It’s easy to take the attitude of ‘Meh, so what?’ but with Emacs, there is only one set of keystrokes to learn and there are no context switches as you move between different phases of a research project.

Johnson also stresses the importance of persistence. When you use proprietary software, you are at the mercy of the vendor. They may go out of business, discontinue the product, or make non-backward compatible changes. With open source software, the user can always recover—although perhaps not easily—because the source is available. More importantly, with Emacs, everything is in plain text and readable with any editor.

Finally, there is Org-mode. With Org, data and the calculations upon it can be embedded in the manuscript. That’s a huge win for reproducible research and ensures that the results in the paper also reflect the latest version of the data and the calculations on it. It’s also an easy way of generating LaTeX for submission to journals.

All of these benefits are well-known to developers who use Emacs but many scientists are focused on their field of research and don’t consider their tools. Mostly they use whatever tools they learned in grad school regardless of the tools’ shortcomings. If you follow Emacs, you know there are exceptions like Kitchin and Eric Fraga—to name the first two to come to mind—who have embraced the Emacs way in their research. Indeed, Kitchin has a similar paper in ACS Catalysis that makes analogous points.

I’ve written before about the use of Emacs in the humanities. Most of the same points apply. Really, if you’re wrangling text or doing research, you should consider Emacs.

Posted in General | Tagged , | Leave a comment

A Broken Way of Working

I’ve written several times about the future of work and my fascination with what used to be called digital nomads. The idea of remote work has become so common that the term “digital nomad” no longer makes sense and there are probably people who wouldn’t know what you were talking about if you used it.

Once the concern of nerds and the publications they read, the idea of remote work has become mainstream. So mainstream that even The New Yorker is writing about it. A recent article considers the proposition that going to the office is a broken way of working. The pandemic has made clear that virtually any knowledge worker can work remotely just as effectively as if they were in the office.

The article is partially a conversation with Chris Herd who started a financial-tech company in northern Scotland. He realized immediately that his location made finding local talent hard or impossible so rather than establish an office, he staffed the company with remote workers. Herd was so impressed with the results of his remote work force that he started a second company, Firstbase, a company that provides remote-work infrastructure.

Herd says that office work and its surrounding culture is a derivative of factory work where people had to come together to work on manufacturing machines and be closely supervised by management. Oddly, Herd does not believe in remote-only work. He feels that face-to-face contact is still important and says that teams should meet in person periodically—perhaps once a month. My first thought was that it would be prohibitively expensive to fly everyone to a central location for these monthly meetings but Herd notes that it would be cheaper than maintaining expensive office space for those employees.

Herd is a crusader for remote work and whether due to him or not, the message is getting out. Amazon just announced that corporate and technical workers can work from home indefinitely, backing off from their previous announcement that workers would have to return to the office at least 3 days a week. Remote work is a powerful idea that, apparently, won’t be denied.

Posted in General | Tagged | Leave a comment

Scimax Notebook

As I’ve said before, John Kitchin is producing so many videos that it’s hard to keep up. One of his recent videos is about Scimax Notebook, his implementation of digital notebooks based on Projectile, Bozhidar Batsov’s project interaction package. In my Zamansky-79: Project.el post, I mentioned that I’ve never felt the need for a package like Projectile but Kitchin reimagined it as an engine for digital notebooks.

The idea is pretty simple: every notebook is a project in the Projectile sense, and every Projectile project can be thought of and acted on like a notebook. The Scimax Notebook library is simply a series of functions that operate and search the project’s file. All of that is, of course, leveraged on Projectile.

The library and Kitchin’s explanation of it is interesting. It’s clear that the library grew organically with functions being added as there was a need for them. Kitchin says that he rarely uses some of them indicating a failed experiment. In other words, the library grew according to his needs and will doubtless continue to evolve.

The source code, as a literate programming file, is available here. The video provides a quick exegesis of many of the functions and provides an idea of what’s going on. The video itself is just over 37 and a half minutes so you’ll definitely have to schedule some time. If, like me, the idea of an Emacs-based notebook infrastructure appeals to you, be sure to spend the time to watch his video. The source code, being a literate file, should be easy to adapt for your own purposes and needs.

Posted in General | Tagged , | Leave a comment

Prosecuting the Press

As you all know, Irreal doesn’t think very highly of journalists and the press. What Irreal likes even less is know-nothing politicos who nevertheless feel fully qualified to opine and pass judgment on technical matters. The Congressional hearings on social media companies are an excellent example of the phenomena.

Brian Krebbs provides us with a particularly egregious example. Suppose you’re the head of a large organization and that your organization’s Website embedded the social security numbers of over a hundred thousand of your employees in the site’s HTML. Suppose further that when an area newspaper informed you of this problem and held up their story on it until you could fix the problem, your response was to complain how much it would cost to fix the problem and to seek criminal prosecution of the reporter who worked on the story.

The story beggars the imagination and is made worse by the fact that the “large organization” is the State of Missouri and that its head is, of course, the Governor, Mike Parson. The level of cluelessness about how the Web works, what constitutes “hacking”, and the First Amendment to the US Constitution is astounding.

I have no idea about the politics of the St. Louis Post-Dispatch—Media Bias/Fact Check says they’re left-center—but Parson is a Republican so it’s a reasonable suspicion that he and the Post-Dispatch have had an adversarial relationship. But even if the Post-Dispatch has been a thorn in Parson’s side—even if they’ve been unfair to him—that doesn’t justify his ridiculous reaction. If his staff doesn’t fill him in on reality, the courts surely will.

If you live in Missouri, you might have a few questions. Two such questions are:

  1. What kind of people do you have building the state’s websites? Why would anyone think it okay, safe, or secure to embed social security numbers in the HTML?
  2. How can it possibly cost 50 million dollars to fix this?

If you’re a Missouri resident, you can probably think of a few more questions.

Posted in General | Tagged , | Leave a comment

Lets in Elisp

John Kitchin has a short video in his Scimax channel that considers another Elisp construct. This video talks about let and its siblings. One of the first non-trivial things a new Lisper learns is how to deal with local variables using let.

If that didn’t make sense to you, Kitchin’s video explains it all. If you’re familiar with any of the Lisp dialects, you’ll also be familiar with let. It turns out, though, that there’s still a bit to learn. Elisp has additional let constructs that are reminiscent of Common Lisp’s destructuring-bind.

The first, let-alist, binds each car of an alist to its corresponding cdr. If you have to deal with several entries in an alist, it’s a way of referring to an alist value by name instead of the normal assoc/car/cdr dance.

The second, seq-let, is similar except that it takes two lists. The first is a list of symbols that are bound to the corresponding items in the second list. This is basically a scaled down version destructuring-bind.

Finally, Kitchin mentions pcase-let, which binds patterns to values. It’s much more complex than the others so Kitchin doesn’t discuss it in depth.

This is a short video, 12 minutes, 12 seconds, but it’s really useful for Elisp n00bs and those not familiar with let-alist, seq-alist, and pcase-let. If you fall into either category, be sure to take a look.

Posted in General | Tagged , | Leave a comment

Zamansky-79: Project.el

Mike Zamansky, on the heals of his last video, has another offering in his Using Emacs Series. This time it’s about the new Project library built into the latest Emacs. If you’re familiar with Bozhidar Batsov’s Projectile package, you can think of Project as a pared down, built-in Projectile.

Zamansky is refactoring his Emacs configuration and trying to keep down the bloat. Since he doesn’t use the Project/Projectile functionalities very often it makes sense for him to see if he can replace Projectile with Project.

The video takes us through the Project workflow and concludes that, at least for Zamansky’s needs, it’s a decent replacement for Projectile. There’s no doubt that Projectile is more complete and polished at this point but Project will no doubt evolve to meet the needs of its users.

Projectile has long been a popular project and many people swear by it. I’ve never felt the need for what it offers so I have nothing to offer in the way of informed advice. By way of uninformed advice, I’d say try out Project and if it works for you, investigate Projectile.

The video is 11 minutes, 39 seconds so you can probably fit it into a coffee break. The good news is Zamasnsky is promising more videos in the near future.

Posted in General | Tagged | Leave a comment

How Kitchin Uses Elfeed

John Kitchin has been vlogging up a storm. He’s producing so many videos, Irreal is having a hard time keeping up. One of his recent offerings is a really great1 video on one of my favorite Emacs packages: Elfeed. Elfeed, of course, is the Emacs RSS reader. My use of it is pretty much out-of-the-box: it had everything I needed and in any event there weren’t any obvious ways of customizing it short of digging into the code. Kitchin, of course, showed that for the nonsense it is. He’s made numerous tweaks without touching the Elfeed source code.

The first thing that struck me was that he set up a timer to update his feed database automatically, much like email. Elfeed doesn’t have that built in but it’s a trivial one command addition to the Elfeed config to implement it.

He also sets some font faces so that article headlines display in a different color depending on their subject matter. The latest Elfeed README has some guidance on how to do this. If this appeals to you, it’s easy to do and Kitchin explains one implementation.

For most people, Kitchin’s biggest tweak is probably his implementation of scoring. He used to have a home-grown solution for that but now uses the elfeed-score package. It provides Gnus style scoring so that articles that are of the most interest to you are at the top. If you have lots of feeds, seldomly check them, or have limited time to deal with them, scoring is an excellent way of concentrating on the ones most important to you.

Being a researcher, Kitchin also has several functions to do things like email an RSS entry to a colleague, capture an entry into his bibliography database and store links for later use.

If you aren’t an Elfeed user, you should be. If you are an Elfeed user, you should definitely watch Kitchin’s video; it has a ton of useful ideas to make your workflow better and easier.

Footnotes:

1

The video mentions Irreal, which is gratifying but not why I think it’s great. For more on that, read on.

Posted in General | Tagged | Leave a comment

Zamansky-78: Grading Workflow

Mike Zamansky has come up for air and after a long hiatus, he’s back with another video in his Using Emacs Series. This video is about his project grading workflow. That may not seem to interesting to some folks but, as usual, he leverages Emacs and some new packages that he hasn’t discussed previously.

If you haven’t been a teacher, you probably have no idea what a chore grading is. If you want to evaluate your students fairly, you have to bear down and can’t just phone it in. Therefore, anything that eliminates routine chores and makes the process run more smoothly is a real win.

To a first approximation, Zamansky use GitHub and GitHub Classroom to handle his homework and project assignments and their grading. GitHub provides a very nice infrastructure for teaching and coordinating with students. That was true before COVID-19 and is probably more true now. The problem with it is that it’s Web based and involves a lot of clicking when you’re dealing with several students and their repositories.

Zamansky deals with this by cloning all the student repositories to his local machine. That’s a win because he can then deal with everything from inside Emacs. For example, if he wants to compile and run some student code, that’s easy from within Emacs.

A typical workflow is grading a project. Zamansky first runs consult-find to find all student programs implementing the project. He can direct all the paths to a separate buffer from which he can visit each in turn. There’s no navigating to each student, then to the proper project, and finally to the code. Everything is right there so he can simply step through the list. This is handled through the consult package.

Likewise, he can communicate with a student by leveraging the forge package to raise an issue in the student’s repository. Similarly, a student can raise an issue that can be downloaded with forge. Finally, Zamansky can use the Embark package to render PDFs or link in a separate utility, although he usually prefers to render it directly in Emacs.

If you’re interested in this sort of thing, you can also take a look at this 2014 blog post and video from John Kitchin on how he handled things then: blog post, video. I’m sure he’s evolved his system subsequently but it was already pretty powerful and completely Emacs based.

Zamansky’s video is 18 minutes, 39 seconds long so plan accordingly. It’s interesting even if you aren’t a teacher. In any event, it’s nice to have Zamansky back.

Posted in General | Tagged | Leave a comment