Emacs As Your Shell

I’m finally finding time to watch more of the videos from the Emacs Conference 2019. Howard Abrams gave an interesting talk on using Emacs as his shell and scripting language. As he says, it’s just him trying out some ideas meant for his personal use.

He starts out with a typical shell pipeline and wonders how the same thing might be done in Emacs. Why would you want to do that? The problem is that a pipeline’s intermediate results are pretty much opaque. You see the input and you see the output but not what’s happening in the middle. By using Emacs, you can see what the data looks like at every step. Abrams also says that in general Emacs tools are superior to the shell so you gain there too. It turns out not to be very difficult to use Emacs interactively to do a task that you might otherwise use a pipeline for. Abrams demonstrates this by using Emacs to do the same thing as his original pipeline.

In the second half of the talk, Abrams considers how you might use Elisp as a scripting language. He puts together some macros and functions that lets him write vaguely shell-like scripts but within Emacs. The advantage to this approach is that he has the full power of Emacs available whenever he needs it.

I can imagine circumstances where I might use Emacs interactively instead of a pipeline but I don’t think I’d bother with the scripting. I’m happy to use a shell script if that’s what the job requires. Still, Abrams’ approach was interesting and definitely worth taking a look at. You might even decided to adopt his approach.

Sadly, there were technical problems and the video feed was lost in the middle of the talk. That’s not as serious as it could have been because it happened near the end of the talk proper and mostly affected the Q&A. Secondly, Abrams has provided a sort of transcript of the talk complete with the slides. That makes it pretty easy to follow along in the part without video. As usual with Abrams’ videos, you’ll probably learns some new things and it is definitely worth your while.

Posted in General | Tagged | Leave a comment

CNBC on Open Source

The Programming subreddit has a pointer to an interesting CNBC report on Open Source. The report is in the form of a video that is just shy of 14 minutes long so while it’s not a comprehensive survey, it’s more than the usual drive-by offering we’ve come to expect from the general press.

The main conclusion is that most of the world now depends on open source software. Even those building or selling proprietary software almost certainly have a large open source component in their products. They tell the story of the Heartbleed vulnerability in OpenSSL and after explaining that it’s used by virtually all Websites note that it was maintained by just a handful of unpaid developers.

The unpaid developer angle is significant because although many companies have figured out how to monetize open source, most of the people doing the actual work are still unpaid. The report notes that the situation is improving because the industry has come to realize how much they depend of the open source developers and they are therefore devising ways to see that they are compensated.

One of the more interesting things I learned from the report is the “velocity” of changes to the Linux kernel. I’ll let you watch the video to find out what exactly that means but it is astounding.

The report is an intelligent and sympathetic look at the open source movement and definitely worth 14 minutes of your time.

Posted in General | Tagged | Leave a comment

Mailfence

Those of you who liked the suggestion from Monday’s post to get rid of your Gmail account may be wondering how to do that. Realistically, if you want an account that isn’t harvesting your data, you’re going to have to pay a small amount for it.

Everyone’s favorite alternative to Gmail seems to be Fastmail. It’s similar in look and feel to Gmail and there are apps for your tablet and smartphone but it comes without the spying. The price ranges from \$3 to \$9 a month mostly depending on how much storage you want.

Recently, I stumbled upon another mail service, Mailfence, that looks promising. If you’re extra paranoid it might be a better fit than Fastmail. For one thing, they are located in Belgium, which has very strict data privacy laws that make it hard for even judges to get at your data. For another, they offer browser based end-to-end encryption so that no one but you and the recipient can read your email. Of course, that requires that your correspondent also support a PGP capable mail reader so the encryption is optional and you can still email your Aunt Millie.

Their prices are comparable to Fastmail’s. They’re priced in Euros but at the time I’m writing this the monthly charge is between \$2.78 and \$27.75. Take a look at their Website to see what you get with the various plans.

As most of you know, I use mu4e to read my mail from my Apple Mail account. Apple’s email is arguably an exception to the “have to pay to be exempt from spying” rule but I do pay a nominal charge for storage some of which is used for email. In any event, that means that I haven’t personally used Fastmail or Mailfence so I’m depending on what others have said, reviews, and their Websites. Caveat Emptor.

Posted in General | Tagged | Leave a comment

Irreal SSL Certificate Update

The new Irreal SSL certificate is (finally) activated. Despite appearances, I’ve been dealing with this since last Friday when I discovered the old certificate had expired. Of course, I got no notification of a pending expiry, just a browser exception when I tried to access the site.

I renewed the certificate immediately but nothing happened. I thought maybe the hosting minions didn’t work on the weekend so I waited until Monday before querying my provider. The process exactly replicated what happened last year but, of course, I’d forgotten the details and had to rediscover them again this year. In any event, the rep I talked to was very helpful and got things taken care of forthwith.

Luciano Passuello told me there’s a better way: I should be using Let’s Encrypt. Perhaps I’ll try that. I don’t really mind paying the nominal renewal fee, I just want the process to be automatic so I don’t have to worry about it and Irreal readers don’t get errors when they try to read my bloviations profound thoughts. In the mean time, I’ve documented the process in my Journal so that whatever course I choose, I’ll be able to get the certificate renewed before the next ice age.

Now back to our normally scheduled bloviations.

Posted in Administrivia | Leave a comment

Google Blocking Some Browsers?

There’s a mini-scandal roiling the Internet making the claim that Google is blocking some Linux browsers. It apparently started when onedoer complained on the KDE subreddit that he could no longer log in to Google services with Falkon or Konqueror. Since then, many others have taken up the story. There’s been a bit of pushback, though. Many commenters have said they’ve had no problems and, of course, Google hasn’t commented or answered any questions.

The thing I found interesting about the story is the reasons Google gives for not supporting a browser. Google says these restrictions are for security and to protect users’ accounts but the first reason given is that the browser doesn’t support JavaScript or has it turned off. That seems odd. Since when is an enabled JavaScript a security benefit? It isn’t, of course, because it allows the Web site to get into all sorts of mischief.

Google, of course, isn’t dealing malware in the traditional sense but it is very interested in tracking our Internet habits for which it depends on JavaScript. One might be excused, therefore, for suspecting that the real reason to block these browsers is that they don’t support tracking or at least not as much tracking as Google would like. No one outside of Google seems to know for sure and Google isn’t talking.

Meanwhile, DHH claims that Google isn’t a search engine, it’s an ad engine. He’s definitely not a fan and says that “Google is a tax on the internet.” Who could disagree? As I’ve said many times before, if you don’t like being spied on get rid of as many Google services as you can. It’s hard to be 100% Google-free but you can get rid of the most invasive apps—like Gmail, Search, and Google Suite—pretty easily. It’s worth the effort.

Posted in General | Tagged | Leave a comment

A Bit of Wisdom…

…from Paul Graham

Posted in General | Leave a comment

Displaying Org-mode Notifications Natively on MacOS

As many of you know, I live happily in the Apple Ecosystem but do virtually everything that doesn’t involve the browser in Emacs. One exception is my calendar. Events like “Renew ACM membership” or “Research ways of doing \(X\)” are added to my todo.org file and appear in my Org Agenda. Events with a specific, hard date and time attached, such as a doctors appointment, are added to my Apple calendar.

That’s a bit schizophrenic, of course, but it works well for me. The advantage of using the Calendar app is that the event and details about it are synched to my other Apple devices—including my iPhone—and so go with me everywhere. It’s possible, certainly, to use an app like beorg or organice to get my Org-mode events synched to my iPhone but as I said, this system works well for me.

A potential problem with maintaining one’s calendar in Org-mode is alerts. The Calendar app will alert you to upcoming events even when you’re not in Emacs. It wouldn’t do to miss an alert from Emacs because you happen to be, say, in the browser. Christian Tietze has in interesting post in which he explores the beginning of a solution to the problem of having Emacs generate MacOS native alerts. It turns out to be pretty easy although there are some edge cases. Those seem reasonably easy to fix so if you’re interested in that type of functionality, be sure to take a look at Tietze’s post.

There are other possibilities. One is to use Growl. It’s a notification system that can receive messages from other applications and show them on a system wide basis. There is, of course, an Emacs interface. Or two. Another possibility is John Wiegley’s alert module, which he describes as a Growl workalike. Doubtlessly these systems would require a bit of integration but since I’m satisfied with my hybrid solution, I haven’t looked into what would be involved.

Posted in General | Tagged | Leave a comment

Strategies for Remote Work

Ever since I read Mike Elgan’s article on The New Bedouins back in 2007, I’ve been fascinated by the idea of remote work. These days, remote work is commonplace and becoming more so but in 2007 it was an impossible dream for most of us. Still, remote work isn’t always easy for either the employer or employee.

Two recent posts look at the problems from both perspectives. In the first, Josh Comeau recounts his experiences as a remote worker. His experiences may seem atypical but as he says, the point of remote work is flexibility and that, therefore, every remote worker’s experience is different. He discusses the problems and benefits but says that the main difficulty is communication. Remote workers aren’t privy to the water cooler discussions and it’s easy for them to feel isolated.

In the second post, Cédric Fabianski talks about remote work from the employer’s point of view. He has several interesting conclusions—including that “remote-first” companies do best with remote workers—but his main conclusion is the same as Comeau’s: the most essential problem to solve with remote work is communication.

Fabianski talks about the strategies that his company, bearer, uses to keep remote workers and everyone else up to date on their team’s progress and everything else that’s happening in the company. It’s an interesting read and reinforces everything that Comeau says about the importance of keeping remote workers “in the loop.”

Both posts are interesting and informative. If you have any interest in remote work, you should definitely take a look.

Posted in General | Tagged | Leave a comment

Expired SSL Certificate

I noticed this morning that Irreal’s SSL certificate expired last night. I’ve ordered a new one that should be active shortly (although it was a hassle last time so who knows). In the mean time you can still reach the site using the HTTP (rather than the HTTPS) URL.

Posted in Administrivia | Tagged | Leave a comment

Building a Personal Knowledge Base

I’m a big believer in collecting and storing information: in building a personal knowledge base if you like. I do this, of course, with Org-mode but that’s not the only possibility. Sung Cho has a nice post in which he describes how he built himself a personal knowledge base.

He started out by keeping his notes in Evernote but soon realized that he was spending all his time maintaining and polishing his notes but hardly ever using them. That led him to his first principal: Organizing knowledge should never become the goal. Rather, the goal should be to retain knowledge and help yourself learn. In keeping with this, he built himself a simple command line interface to a YAML database. He limited each note to a single line and didn’t use any tags.

In accordance with his second principal—searching is more efficient than organizing—he retrieved information by simply grepping for it. That was easy because of the third principal that the knowledge base should be local and open source. At this stage it was also plain text so the powerful Unix search tools could easily be applied for searching.

Overtime he has evolved his system to use an SQL database and made it accessible over the Internet. He also arranged for it to email him a digest of his recent entries to help him absorb the material. The whole system is open source and you can download a binary or source code from the dnote repository.

My own system pretty much adheres to Cho’s principals but I do use tags to help me search the data. I don’t obsess over them: I just tag the entries with keywords that I think suggest the data I’m entering.

Ali Abdaal has a similar system but he uses the proprietary Notion application and therefore violates the important rule that you must maintain control of your data and the means to access it. Abdaal has an excellent video on his system. It would be pretty easy to implement almost all of it with Org-mode so the video is worth watching even if you’re not interested in Notion.

Posted in General | Tagged , , | Leave a comment