2023-10 Austin Emacs Meetup

There was another meeting a couple of weeks ago of EmacsATX, the Austin Emacs Meetup group. For this month we had no predetermined topic. However, as always, there were mentions of many modes, packages, technologies and websites, some of which I had never heard of before, and some of this may be of interest to you as well. I was only on for an hour before I had to drop off; hopefully people did not save their bon mots for the period after my departure.

#1 was the organizer.
#2 was a no show (a developer in the Dallas area).
#3 was again a no show (the Esteemed Gentleman From Oklahoma).
#4 was the engineer who lived in north Texas. He is now in College Station because his wife is in grad school. He is working for the same company remotely.
#5 was a seminary student and former software developer in the Bay Area.
#6 was a sysadmin in Kansas.
#7 was a recently retired software developer. His last day was the Friday before the meeting. He had tried to attend the meeting a few times before, and this time was successful.

Here is a list of the modes and packages that were mentioned (I will not list the big ones here, like Org, Doom, Spacemacs):

Non-Emacs Topics:

  • Font Awesome
  • Security and the software industry (this took more time in the meeting that is apparent from this write-up)
  • Learning and Tech
  • If it’s not Lisp, it’s crap

We had quite an interesting bunch this time. Like this writeup, we spent a lot of time talking about things other than Emacs (and thankfully it wasn’t ChatGPT this time).

Let me just say that EmacsATX attendees are like my children: I love them all equally. That being said, this group was one of the most interesting combinations that we have had in a while.

We did not have a set topic this time. #1 was having technical issues, so I introduced myself and talked about my Emacs journey. Then we went around the list and asked the others to introduce themselves. #1 and I both noticed that #2 and #3 are not only our most talkative regulars, but they never seem to be at the same meeting. Coincidence? I think not.

We went in random order as we went around the horn.

#7 tried to attend a few times and was never able to make it. The Friday before the meeting was his last day working. He had been a software developer for decades. He started using Emacs in 1982 on VAX machines (both VMS and Unix). He has used almost every variant of Emacs. He listed a few I had never heard of before; they are all listed on the Wikipedia page for Emacs.

Fun fact: The first variant of Emacs started out as macros for an editor called TECO which was a modal editor. The next time a vim-mer brags that Vim is a “modal editor”, we can say: Been there, done that, got a better way.

He did not mention TECO Emacs, but he did say he used Emacs on Lisp Machines (I assume he meant one or more of EINE, ZWEI or Multics Emacs), Gosling Emacs and GNU Emacs. He called GNU Emacs “Stallman Emacs”, which may or may not appease Stallman (considering how much time he spent pestering people about saying “GNU Linux” instead of just “Linux”; it is amazing how many people think “freedom” means “You are free to do what I think you should do”).

He said that the tty on Vaxes was different and you had to hit the keys separately, which sounds very un-Emacs to me. He also said he is a big user of Eshell, even on Windows. He is the only person that I have met that I know of who has used one of the famous Space Cadet keyboards. I have done some Googling on them, and nobody seems to know why they are called “Space Cadet” keyboards.

#4 is still working as an engineer, but he has relocated from northern Texas to College Station because his wife is attending graduate school. He mentioned that he wrote his dissertation in Org.

#5 was a former software developer from Texas who is now a seminary student in the Bay Area. He used Emacs for programming, and now he uses it to write papers. And now he can profess two gospels.

#6 was a sysadmin who is a closet Emacs user, and uses Org for as much as they can.

One of the participants said they liked nano-emacs, which is an Emacs configuration repo that has nothing to do with the GNU nano editor. Nano-emacs requires a few fonts, so that led to discussion of other packages for fonts and icons, like svg-lib (which is by the same person who wrote nano-emacs), all-the-icons, and Font Awesome. Font Awesome is a freemium font and icon toolkit that is not part of Emacs. There is an Emacs package that connects with Font Awesome (called fontawesome); I have not used Font Awesome, so I do not know if you need the fontawesome package to use the Font Awesome package from Emacs. A few of the members used these packages to make their Org files look better. If you use Emacs and want to get more into design, these are good places to start.

I do not know a lot about design, but I do have a few opinions. I like a high contrast between the background and the font, and I hate the animated icons that fall like rain, like on the Anti-Meta Fedi Pact site (link here, archive here); bad aesthetics aside, stay away from FaceCrook and anything associated with Mark Snakerberg whenever possible.

Then the discussion went to non-Emacs technical topics for a while. Someone mentioned The Cathedral and the Bazaar by Eric S. Raymond (link here, Wikipedia page here). We went back and forth on whether or not one of the central theses of the essay is still true: Linus’s Law, or “given enough eyeballs, all bugs are shallow”. The code that caused Heartbleed had been in OpenSSL for two years before someone found it. I pointed out that while a bug could be in open source code for years, once it is discovered, developers pinpoint and fix it very quickly. Many proprietary vendors are not diligent about fixing bugs, and sometimes have a hostile relationship with the security community (Oracle is a prime example of this). #4 mentioned the article A Generation Lost in the Bazaar, which is a rebuttal to ESR’s essay.

This led to a discussion about the relationships between both open- and closed-source software and security. In open source, developers work on what interests them, while in proprietary firms the priorities are features, sales and avoiding bad publicity; for them, security is at bottom the list. #7 said he had worked in several industries, and the one that cared the most about security was finance, and that was because it was imposed upon them by regulation. He spent a lot of time in what he called “audit-proofing mode”, which actually sounds like an Emacs package.

Then we talked about what I would call a prevalent anti-development bias. #4 said that at his job they use some CAD tools, but his co-workers refuse to learn any technology beyond that. Meanwhile, by learning some programming and scripting he has saved himself a lot of work by automating a lot of tasks. I find it irritating that as technology people we are told we have to keep up with technology, AND learn “the business”, yet the “business people” never have to learn anything at all about technology, and get to coast with MS garbage. Many times I have been brought in to explain why something went wrong, and after explaining things, some business pinhead will say something like, “That is a technical explanation, and I do not do technology.” First off: What answer are you expecting? “Gremlins did it”? Secondly: Everything runs on software these days. Learn about technology, or go back to pen and paper.

To a certain degree, some people are willing to learn some technology, but only something by MS, which I really do not understand. They will learn the ins and outs of a product by the biggest software vendor on the planet, but ask them to learn something not from MS, and suddenly “Tech is not my area.”

God forbid anything get in the way of talking on the phone all day.

We agreed that the world would be a better place if more people knew Lisp and were willing to learn it. I used to think Lisp was strange, and while I am not the world’s foremost Lisp expert, once you learn it then it is not that hard. Perhaps I will write a post about it. #4 (and I think #1) mentioned that Structure and Interpretation of Computer Programs (aka SICP) changed his life (page here, PDF file here). As the Teach Yourself CS site put it: SICP is unique in its ability—at least potentially—to alter your fundamental beliefs about computers and programming. (I have heard the same thing about Thinking Forth, which is on my ever-expanding TODO list.) We agreed that MIT made a mistake going away from SICP (see here and here). MIT thought that since most programmers do not build systems from the ground up anymore, there is no need for the “first principles” approach, or what SICP co-author Gerald Sussman called “analysis-by-synthesis”. Now we just hook black boxes together, which Sussman calls “programming by poking”. Maybe he’s right, but what about whoever built the black box? Shouldn’t they know theory and first principles? And if MIT is not going to teach it, then who will?

Lisp has atoms and expressions, and that is it. Much simpler than other languages.

I mentioned I might go through How To Design Programs as a preparation for SICP. It was written by the leaders of the Racket project (site here, Emacs package here). They wrote HtDP as a version of SICP for people who do not have the hard-core math background that an MIT would have (see Wikipedia page and linked PDF file). A few of the people on the call with STEM degrees who had been through SICP said that while it had some math in it, the multi-variate anti-matter temporal calculus with pesto sauce in SICP was not that hard. At least I think that is what they said.

Even the Racket team is trying to move away from S-expressions. They are implementing a new language called Rhombus (see paper here). Prefix notation in Lisp is not that hard (although I admit the one place it falls down for me is inequality operators). Just about everything other language uses infix notation. I am not sure how being like everything else will make Racket more popular. Everybody wants the power of S-expressions without using S-expressions. I just do not get the push from some people to use something else when S-expressions are not that hard. There are even a few SRFIs about it: 105, 110 (which has the same two co-authors as 105) and 119. Every time I look at one of these they usually look like Python. Rhombus looks like it uses more punctuation characters than Racket.

Not only do Lisp variants use fewer characters most of the time, even the parentheses in other languages are doing more work than in Lisp. As this HN comment pointed out, parentheses in C are overloaded: The parentheses in for (;;) are not the same as those in 2/(2+4) which are not the same as those in (double) p, which are not the same as those in p(42)….Lisp has parentheses that do one darn thing in the read syntax—at least when they are not literal as in “(” or #\(.

Every time someone in the Elixir community brags that they have macros that are as powerful as macros in Common Lisp, I always think: Wouldn’t it have been less effort to just learn Common Lisp? With Racket, people who have made a Lisp implementation are now working a whole new language….to do what their Lisp implementation does. The author of Beautiful Racket, Matthew Butterick, has a few thoughts on Rhombus. He has a better handle on what is going on in Racket than I do. He does not see the point of Rhombus, and it will probably not increase Racket’s popularity. He also posts that the port of the underlying Racket engine from C to Chez Scheme is not without issues (post here), since the Racket team has to maintain their own fork of the Chez Scheme repo. He wrote that post in 2021; as I am writing this, the Racket fork of Chez Scheme is both 1597 commits ahead and 2324 commits behind the main branch of Chez Scheme (number current as of 2023-10-24_20:18:54). I question how well the Racket project is being run these days.

Nevertheless I might go through HtDP at some point in the future. I have learned to not make promises to myself.

One of the authors of HtDP, Shriram Krishnamurthi, went his own way and made a language called Pyret, which someone brought up in the meeting. He has another book called Programming Languages: Application and Interpretation (aka PLAI), which does use Racket and I think he still uses in one of his courses. The second edition from 2012 is online and the third is available as a PDF from the PLAI website. There is a playlist on Youtube of lectures from one of his courses that he gave in 2012; I think it is the course that PLAI was used for, but I have not looked at them so I am not sure.

Perhaps all of us Emacs users are cursed: We think efficiency means automation and using the best tools, while to a lot of people efficiency means coasting along with inferior tools that everybody else knows simply because everybody else knows them.

Before I left I gave a few thoughts on getting started with Eshell. This post is already pretty long, so I will post about Eshell in a couple of days.


2023-10-30_17:53:41: I logged into LinkedIn today, and someone who stayed on the call sent me a few links for things that were discussed after I left the call. In the future I will be more diligent about checking my messages. Here are the links:

  • Orgmunge, which is a Python module that per the repo’s README files allows you to “modify Org documents programmatically from within Python.” I skimmed the README, and it looks like there are no links to the main Org website. Perhaps this is a sign that Org is gaining some traction.
  • ejc-sql: This uses Clojure and JDBC to turn Emacs into an SQL client. Clojure is a variant of Lisp that is written in Java and runs on the JVM. So I am sure it is a powerful package, but since it uses Clojure you need to bring in the JVM and a lot of other dependencies to use it. On the other hand, you can use it with a lot of databases, including MS SQL Server and Oracle. Sometimes open source projects do not connect to proprietary databases either due to licensing issues, philosophical purity or spite. This project has been archived by the owner, but I could not see in the README or the commits why they chose to do that or if they recommend a replacement.
  • Khoj is an “offline-first, open source AI personal assistant that is accessible from Emacs, Obsidian or your Web browser” (Who cares about those last two? Not me.) (site here, docs here, Github repo here). Like all things AI it has some Python dependencies. It looks like you can run this locally against your own files and data.

This post was created in Emacs with Org Mode and Love. You’re welcome.

I give people numbers since I do not know if they want their names in this write-up. Think of it as the stoner’s version of the Chatham House Rule. I figured that numbers are a little clearer than “someone said this, and someone else said that, and a third person said something else”. Plus it gives participants some deniability. Most people’s numbers are based on the order they are listed on the call screen, and the same person may be referred to by different numbers in different months. A few regulars have regular numbers.

I am not the official spokesperson for the group. I just got into the habit of summarizing the meetings every month, and adding my own opinions about things. The participants may remember things differently, and may disagree with opinions expressed in this post. Nothing should be construed as views held by anyone’s employers past, present or future. That said, if you like something in this post, I will take credit; for things you don’t like, blame somebody else.

Image from a late 9th or early 10th century Gospel manuscript made at the monastery of Saint Gall in eastern Switzerland, manuscript housed at Bavarian State Library, webpage information here, image from World Document Library, image assumed allowed under public domain.

2 thoughts on “2023-10 Austin Emacs Meetup”

  1. Thanks for these writeups. One of these days I’ll get back to this meetup. Sometimes I enjoy the free form nature, other times not so much.

Comments are closed.