2023-03 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 was mention of new modes, packages, technologies and websites that I had never heard of, and some of this may be of interest to you as well.

#1 was one of the organizers; he used to live in Austin and now lives in East Texas.
#2 was a programming instructor in NYC.
#3 was The Artist Known as Number Three, the Esteemed Gentleman From Oklahoma.
#4 was a devops engineer for a quantum computing company in Madison, WI (he is in Madison, but the company is based elsewhere).
#5 was the other organizer, formerly working for the City of Austin.
#6 was our professor, the Other Esteemed Gentleman From Oklahoma.

When I dialed in the guys were talking about how to keep their kids out of their home offices, although some allow them to go in sometimes. #3 said his kids are adults, and they still do not go into his office. His adult daughter will not cross that yellow line.

#4 talked about the company he works for and his use of Emacs. They make quantum computers by using lasers to trap atoms in a vacuum. I asked him if he worked for Rigetti Computing, but he said it was another company. I guessed Rigetti because 1. It is the only quantum computing company I could name, and 2. Whenever someone on the web asks who uses Common Lisp, a Rigetti person mentions they use Common Lisp. I assume a company that uses Common Lisp would have a lot of Emacs users. He explained that Rigetti makes a chip, while making a quantum computer with trapped ions is a completely different process. #4 said he does not know too much about the lasers and that there is an engineering team that configures them. He said that the configurations are stored in Org files and the process can be run multple times from the same configuration.

Still, I think it is interesting that Emacs can be used to control lasers. And because there were some snarky comments in the chat, he was compelled to point out the lasers are not mounted on sharks.

#4 did know more about lasers than the average person (like what the can and cannot cut through), and he and #3 spent a few minutes discussing lasers. #3 worked with lasers in the Navy. I remarked that #3 seemed like a Renaissance Man: He uses Emacs, he was in the military, he shoots lasers, he has had some music from different genres on in the backround during meetings.

#2 introduced himself. He found out about the group from #4. They met through the nanofiction community. #2 has been using Emacs for 2 years, and came to Emacs from Vim because he thought Vim was too limited. #4 came to Emacs from SciTE.

I mentioned that I wished the developer from Dallas (who was last month’s #2) was on the call. He was speaking to a newcomer who was having a hard time getting into Emacs that many people see Emacs as an editor, tool, or IDE, and while it is those things, ultimately it is a Lisp REPL. My power went out, and I wished I heard him finish the thought. A few people said he went on for several minutes. This led into a rehashing of some of last month’s topics, including Verb mode. #2 thought we said “Bird mode”. It turns out there is a Bird mode; none of us had heard of it or could tell what it does from the sparse Readme.

The two words sound very similar. The word for last month’s mode is “verb”, and connotes action. The word for this month’s mode, on the other hand, has a more avian flare to it. The word for this month’s mode is an ornithogical expression, as it were. What is the work? My friends, “bird” is the word. (According to Wikipedia, it took four people to write that song.)

#4 shared link to RDE, a Scheme repo for reproducible development environments. He and #2 talked for a few moments about Guix, which uses Scheme for configuration.

I asked about an issue I was having with REPLs in CIDER: It would hang when I hit return. The solution was to add this to the Emacs configuration:


(define-key paredit-mode-map (kbd "RET") nil)

This solution was also suggested at Emacs Redux. But when I added it, I kept getting this error:


Symbol's value as variable is void: paredit-mode-map

#4 said it was because it was trying to set paredit-mode-map before paredit was loaded. I am not sure why that would be happening, since I put this at the end of my file. He suggested I change it to this:


(with-eval-after-load 'paredit (define-key paredit-mode-map (kbd "RET") nil))

That worked. I do not know why I was getting the error even though I put the “define-key” towards the end. Perhaps it is time to read Mastering Emacs, the Emacs manual, or perhaps both. Anyway, devops for the win.

I edited my config, and tried out the solution while the conversation continued. When I came back, they were talking about configs and start-up times.

Then talk shifted to startup time. #3 and #6 finally met up in OKC, and #3 helped #6 with his Emacs init, and significantly reduced his startup time. #3 said the basic idea was to use use-package to defer what you need until you need it. Now #6 loads his packages at the beginning using add-to-list to add packages and then configures them with use-package. He has about 155 packages.

Now that I think about it, use-package used to get mentioned a lot at these meetings, but lately it has not been mentioned as much.

#4 runs Emacs server on login, and then runs Emacs client when he needs to edit files, like bluetooth: it starts when you login, not when you connect a device. If #4 comes back on later, I will have to ask him if he keeps any instances going all day, starts and exits, or some combination. He also said that other people on his team use Emacs and talked about their configs, but I did not add that to my notes.

#2 asked about tiling window managers, and #3 talked about WMs that he has used. I use Emacs with the “–no-window-system” option, and just stick with the GUIs that Ubuntu and System76 give me, so some of this went over my head. #3 avoids i3wm because others use it. Not only is he a Renaissance Man, he is a Hipster Renaissance Man.

#3 mentioned he tries to live in Emacs as much as possible, but is not an extremist. He uses Gnus to check email and does a lot of things that most people do in other programs, but he admits there are some things we should do outside of Emacs. He does not play music or browse the web in Emacs. He tried does that. Checks Gnus and email in Emacs. Lives in Emacs. He tried using Emacs to access KeePassXC,but did not like it. I also tried it using keepass-mode, but I did not like the fact that I could not sort the entries in a folder alphabetically. I also tried accessing my database on the command line with keepassxc-cli and I still could not figure out how to list the entries in a group the way I wanted.

#1 talked about using Chemacs, using different profiles. #3 said there is a with-emacs shell script; I assume he was talking about this. Emacs 29 will probably make those obsolete. #3 pointed out that Chemacs can mess with some configs. He mentioned an “early init file“, which I had never heard of. I guess his work with Crafted Emacs forces him to deal with corner cases that most users never deal with.

#6 asked about blogging. He uses org2blog to publish to WordPress. I also blog with WordPress. I write the post in Org, use org-export-dispatch to export to HTML, and then copy and past the HTML into Classic Editor. I hate the Gutenberg editor, and based on the reviews for the Classic Editor plugin, I am not alone; instead of calling the new editor Gutenberg, they should have called it Torquemada. If the Classic Editor plugin gets discontinued, I might go with JBake. #3 uses WriteFreely. #4 pointed out Hugo supports Org, and mentioned write.as and Keybase. #6 also looking at a way to display inline pdfs in Org.

#3 pointed out that Emacs runs on Android. At first I don’t see the point, but #3 mentioned that Chromebooks can run Android.

#4 gave a link to a reg-ex debugger, but this site might not work with Emacs regular expressions. So with Emacs regex, you wind up having three problems. You can find a page on Emacs regular expressions here, Perl here, and Java here. There is a free regex tester that is a part of a group of sties called Dan’s Tools. A few people shared some regex horror stories. (Is “regex horror story” redundant?)

#5 had his cat say hello. #3 mentioned his dogs. I asked if there are any cat people in Oklahoma, and #3 said there are, but it is mostly a dog state.

#4 asked about Zile, GNU’s other configurable editor. Per GNU, it means “Zile Implements Lua Editors” and also “Zile is Lossy Emacs“. I guess it can be used to run a Lua editor names Zz, or an Emacs clone called Zemacs. This led to talk of other Emacsen. Many of them have fallen away, but they were specific platforms that no longer exist. Linus Torvalds uses MicroEMACS, which was last released in 1996. The source to Gosling Emacs was released recently (Github link here, Hacker News link here). #5 gave a rundown of Gosling emacs: Gosling put a wrapper around the TECO language, sold it to a company that charged for it, RMS got mad and rewrote Gosling’s Lisp.

#3 pointed out RMS does not use external packages, per RMS’s EmacsConf talk. He uses VC, and sees no point in integrating Magit into Emacs. To be fair, per the Emacs docs VC can interface with other version control systems in addition to Git.

The converstation turned to Emacs code: a lot of it is forgotten and hasn’t been looked at or changed in a long time, and that there are a lot of features people do not know about. #3 said that working on Crafted Emacs led him to find features that he had never heard of. One feature that was mentioned was Whitespace mode (see here and here). #3 and #4 also talked about proced, which can manage processes. There is no mention of it in the Emacs documentation. There is an article about it on Mastering Emacs and an article and and article here with discussion here. The source code is here, and mirrored here. You have to invoke it old-school with M-x proced. As far as I know, there is no key chord for it.

Like Dired, there are some commands you can run in the buffer:


(n)ext, (p)revious, (m)ark, (u)nmark, (k)ill, (q)uit (type ? for more help)

Using M-x describe-bindings in the proced buffer, I was able to find the proced functions:

Key Binding
RET proced-refine
C-n next-line
C-p previous-line
SPC next-line
0 .. 9 digit-argument
< beginning-of-buffer
> end-of-buffer
? proced-help
C proced-mark-children
F proced-format-interactive
M proced-mark-all
P proced-mark-parents
T proced-toggle-tree
U proced-unmark-all
d proced-mark
f proced-filter-interactive
g revert-buffer
h describe-mode
k proced-send-signal
m proced-mark
n next-line
o proced-omit-processes
p previous-line
q quit-window
r proced-renice
s Prefix Command
t proced-toggle-marks
u proced-unmark
x proced-send-signal
DEL proced-unmark-backward
S-SPC previous-line
<down> next-line
<header-line> Prefix Command
<mouse-2> proced-refine
<remap> Prefix Command
<up> previous-line
<remap> <advertised-undo> proced-undo
<remap> <undo> proced-undo
<header-line> <mouse-1> proced-sort-header
<header-line> <mouse-2> proced-sort-header
s S proced-sort-interactive
s c proced-sort-pcpu
s m proced-sort-pmem
s p proced-sort-pid
s s proced-sort-start
s t proced-sort-time
s u proced-sort-user

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. 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.

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; if you don’t, blame somebody else.

Image from Grec 224, an 11th-century manuscript housed at the National Library of France; image assumed allowed under public domain.

2023-02 Austin Emacs Meetup

There was another meeting a few weeks ago of EmacsATX, the Austin Emacs Meetup group. For the this month we had no predetermined topic.

#1 was one of the organizers. He used to live in Austin, but now lives in East Texas.
#2 was a developer near Dallas. He was a power user of IntelliJ, but now uses Doom.
#3 was one of our developers in OKC (Still the Artist Known as Number Three).
#4 did not say much; their name was unfamiliar to me.
#5 was one of the organizers, and formerly worked for the City of Austin.
#6 was a guy from San Francisco, who also did not say much.
#7 was our professor from OKC.
#8 was from Seattle. I think he attended in 2022-12, and was trying to transition from VS Code to Emacs.
There was a #9 and a #10, but they did not say anything while I was on.

I joined a bit late, and there was a lot of talk about running a meeting. I think #6 is involved in the Emacs group in San Francisco. He said that running a meeting is a lot of work. Someone mentioned recording the meeting, and that was shot down. I think a lot of people did not like being recorded unfiltered. Granted, Emacs users are even more intelligent, sophisticated and attractive than other IT folks, even readers of Tales From the Jar Side. EmacsSF does have a Youtube channel, but there are some gaps. I do not remember if #6 said why they stopped recording or if he had any part in the decision. Maybe they just got sick of doing it.

#8 said it is hard to get into Emacs. #1 recommended resources: YouTube, Sacha Chua, ChatGPT. There were some suggestions about how to discover things in Emacs: C-h o (which runs describe-symbol), info pages. #7 mentioned the Emacs Buddy initiative system: you can connect with an experienced Emacs user. You can find the web page about it here, and an EmacsConf22 talk about it here. I have still not gotten around to watching the videos from prior EmacsConf years.

A lot of the meeting was #2 and #3 sharing their screens showing the rest of us how they use Emacs and Org to manage REST requests. They use different languages inside the Org files to make the requests and to process the results. I have to admit sometimes I was a bit lost during their demos; their Emacs-fu is very powerful.

They both mentioned an Emacs package called verb to help manage requests. #2 uses shell, awk and Python to make the requests, then transforms the JSON result into edn (extensible data notation) (pronounced like “Garden of edn”) and works with it using Clojure in a REPL inside Emacs. He also changed his file to make a request with curl. #3 had an elisp function inside javascript to populate his JSON request.

#3 talked about verb using the header line. I honestly have never heard of the header line. The mode line is the line at the bottom, and every config has that; the header line is like a mode line at the top. I think most configs do not use it or disable it. Prelude does not have it. My config (based on an Emacs config for Clojure by Daniel Higginbotham, aka flyingmachine) does not have it either (see Note 1 below). I think the mode line has always been in Emacs, and the header line was just added a few years ago.

#3 also mentioned which-key: per its web page it is a package “that displays available keybindings in popup”. #3 says lives in Org mode, and uses it to keep notes for meetings; he is an inspiration to us all.

#8 said he loves and hates VS Code. MSCode is easy to use, and he said he was having a hard time getting into Emacs. I think he might be trying to do too much at once with Emacs. #1 mentioned you do not have to open PDFs in Emacs if you do not want to. #2: said many people see Emacs as an editor, tool, or IDE, and while it is those things, ultimately it is a Lisp REPL. I wish I heard what he said after that, but then my power went out. Perhaps next time he will complete the thought again.

You’re welcome.

Note 1: Prelude and flyingmachine’s Emacs config may have changed since I last downloaded them. My version of Prelude is from a year ago, and I have been altering flyingmachine’s config from about three years ago.

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. 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.

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; if you don’t, blame somebody else.

Image from Mungi Gospels, an 11th-century Armenian manuscript housed at the Matenadaran Institute of Ancient Manuscripts in Yerevan; image from Wikimedia, assumed allowed under public domain.

2023-01 Austin Emacs Meetup

There was another meeting two weeks ago of EmacsATX, the Austin Emacs Meetup group. For the this month we had no predetermined topic.

#1 was one of the organizers, and is active in the Austin Clojure group. He shared his screen for most of the presentation.
#2 was our professor in OKC.
#3 was a local Javascript/Clojure dev in Austin.
#4 was a local dev in Austin. I think he was #5 back in June.
#5 was one of the organizers, and formerly worked for the City of Austin.

#2 previously presented to the group back in May on developing Emacs Lisp as well as using it for molecular biology. He referenced the presentation he gave for EmacsConf 2021. He also gave a talk at the recent EmacsConf in December 2022. He spoke a bit about how the conference was handled: people pre-recorded their talks, their talks were shown at the scheduled time, and then there was a chat to ask questions. He said some of the talks were very polished. RMS got to do his live. He can ramble live, or he can ramble on tape. What is the difference?

#2 was surprised at how many young people were involved with the conference.

There is an online book club going over Mastering Emacs that #2 attends. You can find out about it here. There are quite a few regular Emacs meetings listed on Sacha Chua’s Emacs new feed, although some are at a bad time for US people. A couple of people in the ATC meeting wondered how Sacha Chua makes the digest; it would be hard to automate putting posts into categories. Does she do it by hand? She has been doing this since 2015. Maybe she gave a talk about it at an EmacsConf one year; I will have to check. I still have not gotten around to watching the talks from previous years. One of the effects of Org mode is that I am not only better at tracking things on my to-do list, I realized I have a very long to-do list.

There was some discussion about GPT-3 packages, which became discussions about GPT-3. #1 gave it some interview questions for Javascript, and he thought it could pass an interview. #2 pointed out that for all the hand-wringing about GPT-3, you still have to know enough to judge the answer.

#1 said he had asked it to write a few stories, and there seems to be a pattern: a group struggles, they persevere, it works out, happy ending. Like every sports movie.

#1 asked me about Rainer Koenig’s Org-mode course. I still have to finish. I got it two years ago, and I learned enough to get stuff done with it, and haven’t gotten around to finishing. I know there is a stereotype of Emacs users who spend so much time configuring Emacs they never get much done. After I got halfway through Rainer’s course, my config has been pretty stable. Rainer is big on key chords (as are most Emacs people), but now when I learn a new mode I prefer to use M-x $FUNCTION_NAME to get stuff done. I have to pause a lot to get the function names for the new key chords he was introducing. I do not know any of the key chords for Org at all, and I see nothing wrong with that. The only criticism I have of his course is that a lot of the dates in his Org files are from a few years ago, so when you go into agenda views, all the items are from a few years ago. If the view is for a week, you will have to press the “b” key to go back dozens of times. The page on Udemy says the course has not been updated since December 2020. But other than that one point, I recommend the course and I learned a lot from it.

#1 went to Udemy to find Emacs courses, and there were more courses on Udemy than we expected.

#5 said he was getting more into macros. Someone pointed out that using the function keys makes it easier. I guess Emacs did not always use F3 and F4 to start and stop macro definitions. There was some wailing and gnashing of teeth about function keys. #1 put prompt into ChatGPT: write a rant about function keys in style of Leviticus. He read it aloud, and I said he sounded like someone who did not know the answer to a question and was just stalling for time. #5 said that is most of the Bible.

Someone said that ChatGPT was just as vacuous as ELIZA. I said, “Why do you think ChatGPT is as vacuous as ELIZA?” He took the question seriously.

#1 looked at a project on Codeberg, which is the what I am thinking about migrating to. A few people talked about getting off Github. #3 noticed people use “github” the way they use google. People do not search for something, but they google it. Since he was upset, we offered to FedEx him some Kleenex.

Then we were back to ChatGPT. There was some discussion about the legal aspects of it. Github Copilot incorporates a lot of open source material from projects with various licenses. Using it could get a company in some legal trouble. Some of the visual AI programs like DALL-E have some distortions that are speculated to be washed out artist signatures.

#1 asked ChatGPT for some stories to prove they are formulaic. He predicted if you ask it for a story about two people falling in love, they always wind up together. He did that a few times, and that is what happened. I suggested a story about Charles Bukowski finding love on Github (the same way people ask DALL-E to make a picture of an astronaut in the style of French Impressionists), but it would not do it. Although it was more polite than Bukowsky. #1 asked for one where the couple finds love on Github and breaks up. ChatGPT did it, but then they got back together again.

#1 asked ChatGPT for topics for the Emacs meetup. Then he asked for the top Emacs plugins. git-timemachine looked interesting to a few people. Searching for this package led me to the Emacsmirror Github repo and website. Then #1 prompted it for presentations about Magit and beacon mode. It gave a pretty good start. No longer will presenters be hurting for presentations.

Then #1 asked ChatGPT for a story about me getting a job using Emacs. I do not remember if he was making stories for everyone, or if this was inspired by something I said; I have stated a few times I would like a job where I could be in Emacs all day. For some reason it had me learning Python (which I know nothing about) and getting a job with that, and then I fall in love with a woman named Sarah in Antarctica. I think #1 just put in my first name and not my full name, but it seemed odd to everyone that ChatGPT inserted Python and going to Antarctica. I did not think Python is the most popular language amongst Emacs programmers; I would have guessed Clojure has more Emacs users.

At the end of the meeting, #5 mentioned he worked for a couple of summers for BP up in Prudhoe Bay. He said some of them were certified engineers who had gotten burnt out with engineering. #1 said he had a college roommate who did that, made a lot of money, and used that high number to negotiate a higher salary. Then #1 talked about neighbors shooting, and speculated they must have spent a lot of money on ammo.

Kleenex, Leviticus, art, literature, romance, oil, and guns: Emacs people can talk about more than just Emacs.

Or, as some people call it, “E-Max”.

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. 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.

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; if you don’t, blame somebody else.

Image from Codex aureus pultoviensis, an 11th-century manuscript housed at the National Museum in Krakow; image from National Museum in Krakow, assumed allowed under public domain.

 

2022-12 Austin Emacs Meetup

There was another meeting a week ago of EmacsATX, the Austin Emacs Meetup group. For this meeting there was no predetermined topic.

#1 was one of the organizers. He used to live in Austin, but is now somewhere in East Texas.

#2 was a developer near Dallas. He has been to a few meetings in the past.

#3 was one of our developers in OKC (Still the Artist Known as Number Three).

#4 was a developer in San Antonio. I think this was his first time.

#5 was a developer in Seattle, who was originally from Romania.

This meeting was just a few days after EmacsConf 2022. #3 and #4 listened to some of the talks as they happened.

They both listened to Richard Stallman’s talk What I’d like to see in Emacs. They agreed with Stallman that configuring Emacs with Javascript would be a bad idea, although they were against it for more technical reasons. I think using Javascript for anything is a bad idea. Stallman said he wants to be able to edit formatted documents with a WYSIWYG interface. #4 said he asked Stallman about this during the talk, since #4 felt that a WYSIWYG interface would tie information to its style or appearance and guide or possibly limit the users’ thinking, whereas a text-first philosophy allows people to process information they way they want. Both he and #3 did not feel Stallman really answered the question, or had thought it through very well.

The WYSIWYG topic led to lots of talk about what sites can run in Emacs, cookies, JS, and what should Emacs be able to do.

#3 thought it was interesting that Stallman does not use packages.

Someone mentioned that they were shocked Stallman did not know what Magit is. I did some digging, and the only reference I could find to this was a post on the Emacs-development mailing list in 2014. AustinATX did not start having evening meetings until 2016, so I was not as plugged in to Emacs as I am now. I have heard in the past few years that some people have gotten into Emacs because of Magit. I have no idea if that was the case in 2014.

There was some talk about EmacsConf and conferences in general. #3 liked that the talks at EmacsConf were short, like lightning talks, and that left more time for Q&A. #2 said conferences exhaust him. I mentioned that every time I have gone to a conference with two tracks, there will always be a time slot with two talks on topics that interest me, followed by a time slot in which neither topic interests me. A few times I went to conferences and stayed at a less expensive hotel; each time I wound up paying the difference in parking or cab fare.

#3 want to go back and watch EmacsConf presentation on eshell. #2 watches videos by browsing feeds from sites rather than sites themselves with elfeed; for YouTube he uses elfeed-tube and youtube-sub-extractor. I will have to look into these. I use emacs with the –no-window-system switch, so I will have to make a new alias to try this stuff. Anything GUI or pretty does not render when Emacs is run in terminal mode.

At some point I mentioned I bought Mastering Emacs over the holiday weekend. The author ran a sale for 20% off. He runs sales a few times a year. Keep an eye out for a good deal.

#3 said the Crafted Emacs community has moved to Mastodon. He did not give a link, although there is a Mastodon server dedicated to Emacs. There is a Mastodon client in Emacs hosted on Codeberg.

There was talk about ChatGPT. Most of us were worried about our futures.

#2 had a suggestion for next meeting: pool ideas about what we want in Emacs, make a list, maybe make something.

#1 would like a theme that adjusts based on time of day, and someone suggested Circadian. This question came up in the January meeting. I guess they are not reading this site.

#4 wants a starter kit for specific workflow. I cannot remember what it was. This led to a lot of discussion about what starter kits should do, and can non-experts run multiple configs, how easy is it to get started.

#5 asked if anyone else uses Emacs on Windows. I mentioned I use it to keep notes in Org mode. #2 has Linux on a VM on Windows, and provided a link to running Emacs on Windows with WSL2.

#5 has issues with using Emacs in Windows shop: Can he share his tools/scripts with others at his job? Maybe not, but if it makes him more productive than everybody else, who is using the wrong tool? #5 also asked for tips on how to learn Emacs; I think he said this was his fifth attempt, but I also got the impression he is proficient with Emacs, and maybe Emacs Lisp as well. #2 talked a bit about how he learned Emacs, getting through a list in Org mode, starting small and building up. I pointed out nobody looks at JDK javadoc and says, “There are thousands of classes, I could never learn it all.” They learn enough to get something done, then learn more as they need it. But for some reason people seem to freeze learning Emacs. #2 said it can be a long road, but it is worth it. He decided to go cold turkey with IntelliJ and just use Emacs. He uses Emacs because it helps do things he cannot do with other tools. He also said something that could go on a tombstone: “The road to simplicity is never straightforward.” Or he was just quoting Yogi Berra.

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. 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.

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. That said, if you like something in this post, I will take credit; if you don’t, blame somebody else.

Image from a 12th-century manuscript housed at the Dujcev Center at Sofia University in Bulgaris; image from Wikimedia, assumed allowed under public domain.

2022-11 Austin Emacs Meetup

There was another meeting a week ago of EmacsATX, the Austin Emacs Meetup group. For this meeting there was a predetermined topic.

The topic was “Mastering Crafted Emacs”. The speaker was one of the developers in OKC (not the professor), aka The Artist Formerly Known As #3. He gave a more formal talk similar to the off-the-cuff one he gave the previous month on Crafted Emacs, particularly a module implementing configuration options covered in the book Mastering Emacs.

Fourteen people were on the call. We did not go around the horn and introduce ourselves. I did look at a few of the Meetup profiles of the respondants. I think we have a person in India, one in Germany, and one in Nigeria. So now all we need is someone from South America and Australia, and our global dominance is complete. A few people dropped off during the presentation; for the international members, it was very early or very late.

This time, he presented the information in a different order. He went over the basic concept of Crafted Emacs (not as complete as Prelude or Doom, but not leaving you high and dry either; you can still do it yourself without having to do it all yourself). He talked about Mastering Emacs, and again recommended that everyone get it. Even an experienced Emacs user can learn something, and you get free updates for every Emacs release as long as he keeps updating it.

The module can be found here on Github. It provides completion, window configuration, buffer switching customization, and turns on the following modes: winner-mode, flyspell-mode, ibuffer, and uses hydra to configure dumb-jump. He made a VM on his machine, and started with a fresh install of Emacs. He then added Crafted Emacs, and enabled different parts of the file and demonstrated what capabilities it gave him.

There was some general discussion after the presentation. Most of the questions were answered by The Artist Formerly Known As #3. Someone mentioned Tree Sitter (site here, Github repo here, Emacs module site here, Emacs module Github repo here). Per its website, Tree-sitter is a parser generator tool and an incremental parsing library. It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited. It can be used for syntax highlighting, and it can prevent your syntax highlighting from breaking when you start typing. Most language modes would need to be re-written since they currently use regular expressions. It would allow Emacs do for other languages what Paredit does for the Lisp family: you can hide sections of the code, like loops and if/else branches, instead of just folding methods or functions. Combining it with Language Server Protocol could make Emacs more competitive against IDEs. Quite a few members were excited about it. I thought it was another example of other languages finally being able to do something that Lisp could do for years, which is a good summary of the past 40 years of computer science.

Another member asked about require and use-package. The basic idea is that use-package is a macro that calls require, and throws in some housekeeping like error-handling, as well as installing a package on your system if it is not already there. Unlike a package manager, use-package will not keep packages up to date.

A couple of members also talked about corfu and company, which both handle completion. There is an article comparing them here. One member said that understanding search and search results can make you faster if you are good at them.

You’re welcome.

Don’t forget: EmacsConf 2022 is happening online on 2022-12-03 and 2022-12-04.

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. 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.

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. That said, if you like something in this post, I will take credit; if you don’t, in this case you get what you pay for.

Image from MS. Auct. E. 5. 11, a 10th century manuscript housed at the Bodleian Library, University of Oxford; image under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

2022-10 Austin Emacs Meetup

There was another meeting a week ago of EmacsATX, the Austin Emacs Meetup group. For this meeting there was no predetermined topic.

#1 was one of the organizers, and is active in the Austin Clojure group.

#2 was one of the developers in OKC (not the professor), aka The Artist Formerly Known As #3.

#3 was one of the organizers, and formerly worked for the City of Austin.

#2 did most of the talking. There were two general themes: Crafted Emacs and the book Mastering Emacs. He recommended that everyone read Mastering Emacs. When he read it he had been doing Emacs for thirty years, and he still learned something from it, even though it is geared towards beginners. I think I was the only one who had not read it. The group thought that it would be great if the book talked about Org Mode, but it is still worthwhile. The book explains how to get information from Emacs itself, and on customizing it. It emphasizes using the customization buffer to make changes as opposed to using Emacs Lisp. I think Emacs Lisp is not covered in the book; #1 has given a few presentations on Emacs Lisp. #1 and #2 thought the output of the customize interface was difficult to parse.

#2 went over a module he added to Crafted Emacs that incorporates a lot of the information in Mastering Emacs. He also compared a few external packages to their corresponding built-in alternatives, such as how Emacs help is different than the “helpful” package. (Is there a package out there called “useless”?) Helpful provides more information (hence the name), but each call opens a new buffer, while with the built-in help you can control the windows and frames with your configuration. #2 mentioned dedicated windows, which is a term I had never heard. A few other packages that were mentioned were ibuffer (see here, here and here), dumb-jump and ripgrep. One of them mentioned flyspell (see here and here); a lack of spell checking is starting to bug me in my Emacs usage.

#2 used a LOT of key chords. I do not like to memorize key chords, but I admit it looks more impressive when someone is going through buffers, windows and frames and making changes with key chords as opposed to M-x wait-for-me-to-find-what-I-want.

At one point #2 admitted he pointed at screen with his finger while on the call; nice to know I am not the only person who does that. He also used “a priori” in a sentence outside of a philosophy class. You don’t hear that very often. In 1992, I heard someone use “i.e.” (as in “id est“, or “that is (to say)”, not Internet Explorer). Pedantic points for everyone.

There might be a topic next month.

Don’t forget: EmacsConf 2022 is happening online on 2022-12-03 and 2022-12-04.

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. 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.

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. That said, if you like something in this post, I will take credit; if you don’t, blame somebody else.

Image from the Gero Codex, a 10th-century Ottonian manuscript housed at the University and State Library Darmstadt; image under Creative Commons CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.

2022-09 Austin Emacs Meetup

There was another meeting a week ago of EmacsATX, the Austin Emacs Meetup group. For this meeting there was no predetermined topic.

#1 was one of the organizers, and is active in the Austin Clojure group.

#2 was one of the organizers, and formerly worked for the City of Austin.

#3 was the professor in OKC.

#4 was a new guy in India. I do not think he said what part of India he was in (or I did not put it in my notes).

#5 was a new guy in Warsaw, Poland.

Two months ago we had an attendee in Japan. This meeting we had attendees from both Europe and Asia. If we get one each from South America, Africa and Australia, then we will have attendees from each populated landmass. Someday we might get someone out there who has used Emacs for scientific research in Antarctica.

I googled “Emacs Antarctica”, and I found out there is another software package called EMACS: Electromagnetic Airport Control and Survey. It is used to monitor electromagnetic radiation at airports. I also found an article from Linux Journal from 1994 about Australian researchers using Linux all over Australia, even on their bases in Antarctica. There is only a brief mention of Emacs in the article. It is listed with other software that was installed “to make life a little easier”. I guess they did not like vim.

As vim boosters love to point out, you should use vim because it comes with Linux. Kind of like how your Luddite relatives use Windows because that is what was on the machine when they bought it at Best Buy. In all seriousness, there is nothing wrong with buying stuff at Best Buy, but if you are going to spend all your time in a text editor, inertia is a terrible criteria.

As usual, there was no set topic.

When I joined, #1 said that he updated his Mac laptop and everything broke. I am not a Mac person, so I just waited until the topic changed. Someone told #1 to try the Emacs For Mac OS X site to get new binaries.

There was some discussion about features coming in the next version of Emacs. #5 mentioned pgtk, or pure GTK. From googling, the benefit is that there are a few GUI backends to Emacs for different OSes, and pgtk should make Emacs look better and run more quickly on multiple OSes. I use Emacs with the –no-desktop command line switch, so I might be wrong about pgtk’s benefits. #3 started using nightly builds, and found out there is a new command line switch: –init-directory, that might make chemacs2 obsolete. #1 pointed out that native compilation was supposed to be in 28, but got pushed to 29.

#1 was having some issues with git and Emacs. He uses dired instead of his OS’s file explorer interface, but when he moves a file in dired he loses the git history. He asked the other attendees if there was a solution. Someone suggested he try magit. I will ask him next month if he resolved his issue. The magit site is here, the Magit docs are also on EmacsDocs.

#1 and #2 talked about Javascript for a few minutes (another topic that does not interest me). They compared the relationship of ClojureScript to Javascript to that of Clojure to Java: Clojure started out with a lot of wrappers around Java libraries, but now seems more “filled out” (#2’s term), which ClojureScript does not seem as advanced. They said a lot of ClojureScript projects that they are close to have been re-written in Javascript. I pointed out that the Brave Clojure jobs list seems to have more ClojureScript jobs than Clojure jobs, which depressed me and surprised the other two.

At the meeting before the prior meeting, The Artist Formerly Known As #3 talked about his experience w/XEmacs. At some point I came across SXEmacs. Some developers forked the XEmacs source code and are trying to keep the dream alive. I did not try it out, and I have no idea if it can work with a current GNU Emacs config file. The last commit was a year ago. I don’t know if that means the developers have it at a point where they are happy, or if they have abandoned the project. You have to join the mailing lists to view the archives, and I did not feel like joining just to see if it is still active.

It looks like a one-man show. This reminded #5 of TempleOS. I don’t think it is a fair comparison. The TempleOS guy really did go crazy. I think it’s funny that the maintainer of SXEmacs says he will not “tollerate” fools (page here, Wayback Machine snapshot from November 28, 2020 here). I have to admit, for a long time, one of my fears was misspelling “intelligent”. Perhaps it’s time to add spell check to SXEmacs.

Someone pointed the group to Rust Emacs, an attempt to port Emacs to Rust. It has not been maintained. The language stats for the project are interesting:

Emacs Lisp 71.5%
C 16.7%
Roff 5.7%
Rust 1.3%
Objective-C 0.8%
M4 0.7%
Other 3.3%

 

I admit I do not know a lot about Rust. I always thought that Emacs was written mostly in Emacs Lisp, with the Lisp interpreter written in C. I assume that the main task would be to re-write the interpreter in Rust. But they have 10 times as much C as Rust. #2 thought it is odd that the Rust community seems so gung-ho about writing everything in Rust. Then again, when you are trying to replace C, you have to be gung-ho.

I asked #4 and #5 to introduce themselves since they were new. #4 is a developer in India. He uses Python, R, and Org mode, and is interested in literate programming in Org. #5 is a PHP developer in Poland. He has been using Emacs for four years, and intends on diving in and learning more about Emacs, Lisp and Clojure. His goal is to live in Org mode. He likes Emacs because he can execute PHP in Emacs. #1 told me it is possible due to Org Babel.

#4 then shared his screen and showed us how he does literate programming in Org. He was able to put images in his Org files and resize them. This is similar to how #3 in OKC uses Org, and he was very interested in doing more with images. They were exchanging ideas that were over my head, since I do not use Org the way they do.

At first #4 was not able to share his screen. Then he switched from Firefox to Chrome, and we could see his screen. We were using Webex for the meeting. So if you ever have trouble sharing with Webex, try a different browser.

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. 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.

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. That said, if you like something in this post, I will take credit; if you don’t, blame somebody else.

Image from Dobrilovo Gospel, a 12th century manuscript housed at the Russian State Library; image from Wikimedia, assumed to be under public domain.

2022-08 Austin Emacs Meetup

There was another meeting a couple of days ago of EmacsATX, the Austin Emacs Meetup group. For this meeting there was no predetermined topic.

I will tell you up front there was a lot of talk about Doom and running Emacs on Windows, neither of which interest me. Then again, you can get Emacs to do anything you want, so this may interest you.

#1 was one of the organizers, and is active in the Austin Clojure group.

#2 was a developer in the Dallas-Fort Worth area. He tends to talk quite a bit. Kind of like our non-professor developer in OKC. Now that I think about it, I don’t those two have ever been at the same meeting. Coincidence? I think not.

#3 was one of the organizers, formerly worked for the City of Austin. Now your complaints must be taken elsewhere. He did not say much while I was on the call.

#4 had just come back from Europe, and is a developer in Austin. Everyone else seemed to know him, but I did not recognize his face, his voice or his handle. At one point he made a comment that he got a programming job “off the street”. I do not know if that means he scraped by getting a CS degree, or if he was in a non-STEM related field and decided to do something different with his life.

I called in a bit late. #1 was sharing his screen and trying to get emacsclient working on his Mac.

Then #2 and #4 talked about getting Emacs working on Windows with Windows Subsystem for Linux. If you can use Emacs, then you should have no problem with Linux. And why not just run straight Linux? I do not like MS, and I do not trust MS. I got a mini from System 76 with PopOS pre-installed, and it works flawlessly. MS might consider people running Linux to be a problem; I think that is the solution. WSL might be solving a problem MS has, it is not solving a problem I have. Maybe the guy is a hardcore gamer. Still, I think most developers can shell out enough cash for another system. I would never want to discourage people from running Emacs, but it looks like #2 and I see some things differently. (Perhaps that is inevitable with something as customizable as Emacs.)

Granted, he has a job where he uses Emacs all day, so he is doing something right. #2 also mentioned they recently converted a few vim users to Doom Emacs, and one of them said it changed their life.

#2 said running Doom Emacs on Windows was difficult. Apparently Doom uses some C libraries that are not available on Windows. I have no interest in Doom, so I did not ask for details. Later #2 mentioned that he was able to run Doom with multiple profiles without using Chemacs. I would not be surprised if multiple profiles becomes a feature in future versions of Emacs.

#2 also mentioned MS Powertoys. At first I thought he was being facetious and making fun of something called “Power Tools”, but I checked, and, no, it is actually called PowerToys. The jokes write themselves. The page on MS’s site describes PowerToys as “Utilities to customize Windows”. Unfortunately, MSPT would not let #2 make the adjustment he REALLY wanted to make, which sounds like Peak Microsoft.

#4 said they use Emacs for Ruby and Go, and that led to several minutes of people offering their opinions on Go. I have tried it out a bit, and constantly checking if something is nil gets old fast. #4 had heard people say bad things about it, but when he tried it he liked it. #2 and #4 both use Doom, and like #1 use Emacs for Clojure.

#2 mentioned that a recent change in Emacs resolved the “long lines” issue. I think he might be referring to so-long, which was mentioned on Mastering Emacs (also see EmacsWiki page, ELPA page, Savannah page and source page).

The last topic was Brushes With Greatness. #2 had a talk with Simon Peyton Jones at Strange Loop where SPJ gave a talk on “Shaping our children’s education in computing“. #2 mentioned a few things about Haskell that he did not like, and realized it was a mistake. SPJ was not a jerk, and he actually seemed interested in making Haskell better and hearing what #2 had to say, but he was asking questions at a level of detail that #2 was not able to answer.

#1 talked with Rich Hickey at ClojureConj a few years ago. RH uses a minimal setup: Just paredit (see pages on EmacsWiki and WikiEmacs) and Inferior Lisp mode. #1 asked RH if he did any web development, and RH said that he thought web development was too complicated. #1 and #2 thought it was interesting that some big names in development who work on some important projects have some of the simplest setups.

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”. 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.

Image from Harley MS 5647, an 11th century manuscript housed at the British Library, assumed to be under public domain.

2022-07 Austin Emacs Meetup

There was another meeting a couple of weeks ago of EmacsATX, the Austin Emacs Meetup group. For this meeting there was no predetermined topic.

#1 was one of the organizers. He told us he no longer works for the City of Austin, and now works for a payment processor.

#2 was the other organizer, and active in the Austin Clojure group.

#3 was one of our developers in OKC.

#4 was a developer in Austin, and also a member of the Austin Clojure group.

#5 was an expat in Japan. This is the first time we had an attendee from overseas. He is a Haskell programmer.

#6 was our other developer in OKC (the professor).

The first topic of conversation was some new things in Emacs 28. There are a lot of new changes. The pace of Emacs development has accelerated in the past few years along with interest in Emacs. A few people on the call were getting into the new built-in project management solution called simply “Project”: see the page on Mastering Emacs (there are a LOT of things listed on this page; Project is more than halfway down) or the GNU site. This can be used as a replacement for Projectile (Github page here, documentation page here). Number 3 has replaced Projectile with Project.

Number 3 has had a finger on Emacs development for quite a while. He said that Bozhidar Batsov approached the FSF about integrating Projectile into Emacs, but they did not get back to him for a couple of years. By the time they did, Projectile had changed and also had accrued more contributors. Mr Batsov did not think that all the contributors would sign their code over to the FSF (or chose not to bother), and that was the end of it. At some point the FSF decided to make their own. Number 3 said this is in line with Crafted Emacs (formerly Rational Emacs): use or enhance what is built-in as much as possible, with using something external as a last resort. He admitted he might be biased, but he said that there is a general trend of moving towards the built-in stuff.

I will have to add looking into Emacs 28 features (like ibuffer and fido) to my ever-expanding to-do list (which of course is in Org mode). There are a few new functions in Emacs 28 that deal with outlines. Since I tend to use M-x commands rather than key chords I will definitely look into those.

I asked #5 and #6 how they learned Emacs (since I am interested in helping evangelize Emacs to newbies). #6 gave a presentation a few months ago, and while he had been using Emacs for two years when he presented, he learned a lot in his first few months. By the time this topic was over, I think almost everyone had given their Emacs origin story and waxed nostaligic for OSes and systems long gone into the ether. I will start with mine.

I worked at a firm doing analytics from 1998 to 2000. All the developers had Sun workstations (I think mine was a SPARCStation, but it might have been an Ultra). So you had to learn Emacs or vi. Someone showed my vi, and while I got the idea of modes, it just seemed stupid to me at the time. It feels like the Unix version of the Microsoft Paper Clip: “I see you are editing text. Do you want the text to actually appear in this file?” I went to one of the people who knew Emacs, and I asked them: “What happens in Emacs when you press the ‘a’ key?” The guy said: “The letter ‘a’ is added to the file wherever the cursor is. Just like almost ever other text editor on the planet.” I told him to show me more Emacs. Later in 2000 I went to Bank Of America, and I had to use Windows. But I did have a PA-RISC workstation under my desk running HP-UX.

Over the years, my Emacs usage waned. I started running Linux on my home machines, but I tended to use JEdit more than Emacs. There was an Emacs group in Austin, but they met at lunchtime. Given how spread out Austin is and how spread out the jobs are, a lunchtime meetup just seems like a bad idea. Growing up near Chicago, the Loop felt like the center of the universe. It had the highest density of jobs in the region. There are jobs throughout the region, but the Loop has a lot more. Even then, a lunchtime meetup would not have gotten a lot of traction. Doing that in Austin just makes no sense at all.

Number 2 took over, and started having meetups in the evenings. It has been blue skies and no blue screens ever since. The first evening meetup was on Thursday, September 22, 2016, at the now-closed Cafe Express (they still have locations in Houston). It was at one of the meetups at Cafe Express that I first heard about ido and smex. Someone asked what happens if two modules have the same keychord. Another member mentioned smex. It changed my Emacs experience. When I learn new modes, I use the M-x function names and not the key chords. Granted, it can make following along a bit cumbersome. Usually the function names describe what they do.

Until I started going to the Emacs meetups, all I really knew were the basic commands for editing, searching, killing and yanking. I did not do much with modes, buffers or dired. I did not know much, but I got a lot of mileage out of what I did know.

I finally ditched JEdit and went all-Emacs outside of work around October/November 2021 when I found out about the Emacs desktop, and how to only use it for one open session and not others.

I do have Emacs installed on my work laptop, even though it is not a standard tool. I would like to work a job where I can be in Emacs all day. I used to keep notes about all sorts of things at work and at home in text files. Now I use Org. One day I googled if it was possible to do outlining in Notepad++. One suggestion is to “use a UDL (User Defined Language) and just have parentheses to do the folding for you.” Using your editor to use parentheses to make your own language. Sounds familiar.

There are a few other suggestions here, here and here. One of those suggestions lead to this post on OutlinerSoftware. They only have 8 topics to a page (as of 2022-07-27 there are 3,760 pages).

I use the outlining feature in Org a lot. I am on Teams calls with our testers at work a lot, and some of them write their scenarios in Notepad. Not Notepad++, but Notepad. I have no idea why. Anyway, they will have a list of preconditions in a run-on sentence on one line. Making these sections in an outline would make them easier to keep track of. I know PowerPoint has soured people on bullet points, but they are good for organizing thoughts. I am reluctant to talk to them about using an editor with outlining features because I have a feeling they would all go to Word. Note to corporate America: Innovation does not mean “Let’s do everything in Excel” or “Let’s do everything in Javascript.”

Number 1 used vi at his first job. Everyone else used Emacs, but he resisted for a long time. He started doing Lisp, Scheme, and started using Emacs for that. He looked into Perl, and when he found out you could run the perl debugger through Emacs he was hooked.

Number 2 used Emacs on and off. He was working at a company that could not get licenses for UltraEdit, so one day he sat down at a cafe with Number 4 and started learning vanilla Emacs.

Number 3 started using Emacs in 1990 on an AIX machine without info files for reference. He switched to MicroEMACS for a while, and eventually got GNU Emacs running on OS/2. He started getting serious about Emacs in 1995, and kept using Emacs wherever he went. For a period he used SlickEdit to configure Emacs. I told him if we had geek points to award that we should give them to him. Most people have never heard of AIX. He might be the first person I have spoken to in a long time who has actually used it.

Number 5 was a vim user for eight years. He found a vim plugin for org-mode and liked it. He decided to try Emacs, but had trouble with key chords, so he uses Evil mode. He started eight months ago, and has been using Emacs every day for about two months (which will be three months by the time I publish this). He prefers Emacs since it is more customizable. He said Emacs and vim are so different he does not know why people lump them together.

Number 6 started two years ago, and committed a year ago to using Emacs everyday. He started with a book, I think he said it was Learning GNU Emacs, and said it was a good overview. He tried Spacemacs, but found having to deal with the extra layer offputting. Then he just went with the default. He said the main thing is to have a reason to use Emacs and weave it into your daily work. I think for him Org mode was the killer app, although at first he tried to do too much and found success by starting over and incorporating Org more slowly into his workflow. Number 6 uses Org, overleaf, Atomic Chrome and a lot of LaTeX.

There was some discussion about keyboards and ergonomics. Number 5 uses evil because Emacs is hard on his wrist. Number 1 has learned to use both control keys instead of just one. I just move my hand an inch. Speed is nice, but it is not the most important thing. Numbers 3 and 5 both tried Dvorak keyboards with Emacs, and both thought it was a train wreck.

We talked about the changes that have been happening in the Emacs community over the past few years. XEmacs came about because some people thought new versions of GNU Emacs were not coming out quickly enough. XEmacs got some traction. I used it for a few years, but the last release was in 2009. There was some turnover in the GMU Emacs leadership, and there have been more frequent releases and improvements to GNU Emacs. Number 3 said he submitted a small patch to both GNU Emacs and XEmacs. GNU Emacs incorporated it without a fuss, but this small change caused a lot of arguments on the XEmacs mailing list. He said it turned him off to XEmacs, and was not surprised that it eventually died.

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”. 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.

Image from the Susteren Gospel Book, an 11th or 12th century manuscript housed in Susteren Abby in the Netherlands; image from Wikimedia, assumed to be under public domain.

2022-06 Austin Emacs Meetup

There was another meeting this week of EmacsATX, the Austin Emacs Meetup group. For this meeting there was no predetermined topic.

Most of the attendees were in Austin, but we had a few from other states.

#1 is one of the organizers. I think he works for the City of Austin, and does not use Emacs much at his job.

#2 has a math degree and makes machine learning software.

#3 is a student in Massachusetts. He did not specify which school. He uses Emacs to program in Haskell (which was the first language he learned), Common Lisp, and Perl.

#4 is a sysadmin in Tennessee. He was one of the few who lives the dream of using Emacs for his job. Now that I think about it, I should have asked him why he likes Emacs, since a lot of sysadmins prefer Vim. Granted, he could use both. I recently logged into a system that had only Vim and I was able to make a small change. I was not converted.

#5 is another machine learning developer in Austin.

#6 presented a few meetings ago on Rational Emacs (now called Crafted Emacs). He is a software developer in Oklahoma City. I asked him if he knew the presenter from last month before the presentation, and he said he did not. (I know there are around 700,000 people in OKC, but it was a possibility.) We did spend a few minutes chatting about Oklahoma City in general. Like its economy, the OKC tech scene is dominated by oil companies. The capitol building is on top of an oil field, one of the few in the country in an urban area. #6 uses Emacs for several languages for his job, and is also living the dream. I do not remember what languages he uses. I think Python is one of them.

I was hoping the presenter from last month would be here. I think he learned Emacs not too long before he submitted his talk to EmacsConf. If he is a beginner and able to put executable source code into an Org file, then whatever tutorial or book he used was effective.

#7 is a local Austin developer, living the golden dream: Using Emacs to write Clojure. He showed us running Emacs on his iPad using the iSH app. A few people wondered how long it will be until Apple cracks down on this, and whether you can run Emacs on Android.

#3 mentioned shx for Emacs (or “shell extras”), which extends Comint mode. Per the Emacs manual, Comint mode is “a general-purpose mode for communicating with interactive subprocesses”. This led to some discussion about shell modes in Emacs. #6 said that since there are modes for every programming language he uses, he does not do much in the shell since the modes have commands for most things he needs to do. “There’s a mode for that.” I have been spending time with eshell. #1 pointed out eshell works wherever Emacs does, and you can run ELisp code in it, so it is portable and powerful.

The discussion then pivoted to comparing Lisps. The consensus was that Clojure might be The Lisp That Sticks, and that since it is on the JVM it handles dependencies better than most Lisps. I pointed out that a lot of Racket packages do not have version numbers or version numbers for their dependencies, which horrified a couple of people. A few of us agreed that Dr. Racket looks cartoonish, and Racket Mode is much better.

#7 mentioned that Edsger W. Dijkstra wrote a letter to the UT CS department complaining about the decision to drop Haskell as the introductory language. The more I read about Dijkstra, he seems like the sort of person who is only happy if he has something to complain about. #3 started with Haskell, and then went to Prolog before finding Lisp enlightenment. #7 was a CS student at UT when Dijkstra was there. He regrets not taking a course with Dijkstra. Apparently, EWD did teach undergrads. But #7 decided not to since the grade for the course available was based on one oral exam. #5 pointed out that sometimes you don’t know you are in the “good old days” while they are the good old days.

#7 also posted a link to a book by Edgar Graham Daylight, who blogs about EWD at Dijkstra’s Rallying Cry for Generalization. You have to go to the “Recent Posts” list on the right to see the latest post. The post on the front page is the one of the first posts from 2011.

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”.

Image of Saint Luke from the Gelati Gospels, a 12th manuscript housed in the Georgian National Museum, assumed allowed under Public Domain.