2023-05 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, former employee of the City of Austin.
#2 was a developer near Dallas.
#3 was again a no-show.
#4 was a developer from Europe now living in Australia.
#5 was a developer in Seattle.
#6 was a hardware designer in north Texas near Dallas.
#7 was our professor in Oklahoma City.

Someone in South America RSVP’d, but they did not show up. If they did, we would only need someone from Africa to complete our list of Continents That Have Attended.

In a change to the format, here is a list of the modes and packages that were mentioned (I will not list the big ones here, like Org, Doom, Spacemacs; nevertheless, it’s a smörgåsbord):

Non-Emacs Topics:

  • The tech scene in Australia
  • AI (of course)
  • Vim (yuk!) 🤮
  • Browsers as generic interfaces

I asked #4 about the tech industry in Australia. He has only been in “Straya” for a year; before he was in Europe, and he works remotely with a lot of US people and does not have too many Australian co-workers. Australia has a reputation for not being on the cutting edge of technology. He heard there is Clojure at Qantas. So now the sentence “Qantas never crashed” has two meanings.

#4 started Emacs 8 years ago, jumping from Emacs to Vim, but has only been serious about Emacs for 3 years. He tried Spacemacs and Doom, and now has his own config.

#1 was a hard-core vim user forever, in 2005 got into learning Lisp and Scheme and Emacs was only option that worked well. He was using Perl back then, and when he found out he can run the Perl debugger in Emacs he was hooked.

#6 uses evil mode, which helped him transition from Vim. He and the Vim refugees talked about a few things they like about Vim over Emacs. They said Vim keybindings are easier on your hands than Emacs, especially the pinky. They talked about the “leader key” (which I guess allows you to use customized shortcuts in Vim). Emacs is hard on my pinky; now I try to move my hand when I need to. Speed is nice, but it is not the main point. The ex-Vimmers mentioned a few modes they like: general.el (which helps you define custom key-bindings) and God mode (to reduce RSI by removing need for modifier keys). #2 liked modality in Vim. There was too much pro-Vim talk for me. Bad-mouthing Vim is part of this group’s raison d’être. I do not remember the full context, but at one point per my notes #2 said “Vim made him hate himself”. Works for me. WRT which editor is better: Emacs can emulate Vim, but the reverse is not true.

#2 demonstrated putting accents and tics for letters. He used the term “digraphs”, which is combining letters two letters to make a sound. What he showed was how to do diacritics in Emacs. Someone noticed the tab bar, and #2 talked about that for a few minutes (article here, page in Emacs documentation here). He demonstrated diacritics with élan, makes him part of the Emacs élite. [Note 1]

Then there was another demo of ChatGPT in Emacs. I think #2 was using ChatGPT.el. He made a query to ChatGPT, and put the output into an org file template that he exported to HTML. He also used SerpApi, to add more links to his pages and reports. SerpApi is a freemium service that offers an API that queries search engines and can be used to integrate search into apps. I did not find an Emacs package that integrates with SerpApi. #5 said the power of Emacs and AI is in the outputs and doing something with it.

Public service announcement: I tried a free alternative called “DerpApi”. Totally not worth your time.

ChatGPT said there are Emacs meetups in SF, Portland, Los Angeles and Seattle. As far as I know, there is only one in San Francisco and not the other cities. When an AI halluncinates, we should call it ElChapoGPT.

#6 mentioned Auto-GPT. It resends a prompt over and over again to ChatGPT until it looks like monkeys wrote Shakespeare. The author of Auto-GPT told Auto-GPT to improve itself, and it did.

Narrator: That developer was never seen or heard from again.

Then it was on to Org. The software that changes your life, that manages your life, that is your life. A couple of people asked how to learn more about Org. Two things that were mentioned were Rainer Koenig’s Udemy course, and his playlist on YouTube. I learned from the course. #2 said he learned by making simple to-do lists and learning more things as he needed them. #6 started his Org journey while he was sidelined with an ear infection. He was bored, and started going down different rabbit holes on YouTube (is that redundant?). He thinks what made him want to take the plunge was a video by EmacsNYC. They have a few videos about Org mode listed on their site.

Many of us on the call live in Org. I do not like using other editors or even Emacs to write ordinary text files. I like being able to break things into sections, and collapse what I do not need. #2 likes using Org-roam to get a graph of his notes (site here, Github repo here). He demonstrated it in the past. It makes tag clouds. #2 said it makes sense to him to think about his Org files by using terms, phrases and concepts, not dates. If you do like thinking of your life in terms of dates, you can use Memacs. I am not clear why they picked February 14th 2007. It has some components in Python that are used to fetch the data and convert to Org format [Note 2].

Someone shared a link to Semantic Search for Org roam: the author used an LLM to represent their Org notes. There was talk of org-habit, a built-in Org feature that enables you to use Org to track your habits. The statuses are different colors based on whether or not you completed your task early, on time, or late (source here, page on Emacs manual here, page on Org site here). So now you can use Org to color-shame yourself.

A few other Org related packages were mentioned. Someone mentioned Org Real, which per the README enables you to “Keep track of real things as org-mode links” (Reddit post here, Gitlab link here, Elpa link here). I have spent just a minute looking at this, so I am not sure I get the concept; I think the author said it is a work in progress. Stay tuned.

You can search your Org files with org-ql (Github page here). I will add this to my voluminous to-do list.

Another one that looks interesting is Org Edna (Savannah page here, documentation here, source repo here). This is to “Extensible Dependencies ‘N’ Actions for Emacs Org Mode Tasks”.

#5 mentioned using Org and Reveal.js to make presentations. There is a page on the Org site about presentations here. There is Org-Reveal (Github page here), and a fork called org-re-reveal (Gitlab page here, web page here).

A few mentioned other programs that tried to emulate Org. Only Emacs does it all. I was going to go through a list I had of other apps that work with the Org format, but why should I? If it’s not Emacs, it’s crap.

#4 is finding that Emacs is replacing more and more applications for him. Many people have gone through this phenomenon as well. The advantages:

  • You don’t have to switch focus.
  • You can use same keystrokes.
  • You can add key-bindings.
  • PDF viewer will match colors of your theme. (I will have to look into viewing PDF files in Emacs; this is probably one of the things that cannot be done if you start Emacs with “–no-window-system” as I do).

As the internet wraiths wrote: “Linux is the init system I use to boot into Emacs.”

The conversation shifted to AI, and how it would affect jobs. I don’t think it will take our jobs or destroy us, but it will change things. It is the end of an era, a sort of fin de siècle of our . AI will not take your job; it will just take the parts you like and leave you with the parts you do not. I stated that as supporters of Emacs and open source, we should look into alternatives to OpenAI and ChatGPT (and although I may not have mentioned it at the time, to not use Copilot). I mentioned OpenAssistant, and a few projects based on LLaMA, like llama.cpp. Some other LLaMA based projects are Alpaca and Vicuña. (I thought AI was going to lead to innovation and new insights, yet everybody wants to just run themes into the ground.) Some of these projects have a goal of running a model locally. GPT4All does run locally, and it runs hot. I speculated that we might see specific models for different industries. Like the leader of the GPT4All project, I think there will be lawsuits over the data in the models.

There is an article article asking Emacs users to avoid OpenAI here, with another about Big AI in general here [Note 3].

Someone mentioned ChatPDF, which analyzes and summerizes PDF files. At some point I will watch the AI is BS video.

#2 mentioned he paying for tokens for ChatGPT, and that it is not too expensive.

Somewhere around this point #7 joined. He said I inspired him to move from Github to Codeberg, and asked me to expand on it. He asked if there was anything that Github could do that Codeberg could not. I told him my desire to move was more ideological than practical. But if nobody ever moves, then nobody will ever move. I still have a Github account in case I want to contribute to a project hosted there. He is an academic, and if other academics he works with do not move, then he will have to have a presence on Github as well. The only feature that is missing is that you cannot search for a string in a repo on Codeberg. My Emacs config is on Codeberg here; I should probably update the README file. You can find Emacs Lisp repos on Codeberg here.

The group talked about Github actions, and how they are different than git hooks. I will include link to Github repos, but not to a Github product.

Then the conversation shifted to user interfaces, and projects that try to use the browser for everything. Mozilla had XUL. When they killed XUL, they killed a lot of projects, like Vimperator. One that is still active is TabFS (web page here, Github repo here). Being Lispers we expressed admiration for Nyxt, the browser written in Common Lisp (page here, Github repo here).

#5 started talking about modular configs. His dream is that each Emacs package comes with a couple of pre-built configs that people could load and unload, like Docker but lighter. The rest of us thought it was a nice dream, but who would maintain these modular configs? Package developers are like unherdable cats: they do what they want. Will there be a project to make these configs? That is a lot of configs. Per #2: Emacs is a cult to terrify others, not to make you happy.

You’re welcome.

Note 1: I found a page with a list of English words with diacritics. I was going to fill this post with them, but after seeing “Gräfenberg spot”, “ménage à trois” and “negligée” so close together, I decided to dial it back. The thought of writing a post with fewer diacritics filled my heart with Gemütlichkeit. Besides, most of them are related to food, ballet, or 19th century France. Filling this post with objets trouvé would have been a débâcle. The ÐḖꝈṲẌÊ Edition of this post will never see the light of day.

Note 2: For the record, February 14th of 2007 was a Wednesday. I was living in Chicago at the time. I worked in 231 South LaSalle Street. It used to be called The Bank Of America Building, until they bought LaSalle Bank from ABN-Amro, then 135 South LaSalle became The Bank of America Building. Now I think 135 South LaSalle is called the Field Building, and 231 South LaSalle is the Central Standard Building. The link to 231southlasalle.com never serves up anything. There is a page about them on the site for Beacon Capital Partners. I think the ground floor is now used by a bank called Wintrust. I assume the list of people who need a vault is very short.

I can also tell you that December 6, 2004 was a Monday. That is the date the 135 South LaSalle building had a fire (news stories here, here, here and here). I was working late in the 231 South LaSalle building, and myself and a few others there saw it happen. One-third of Chicago’s fire department was there, and some fire departments of nearby suburbs also sent personnel to assist. One reporter actually said it was “the biggest fire Chicago has ever seen.” Except for that other one. In all seriousness: keep up with your cardio, kids; you never know when something bad could happen.

Note 3: EmacsATX has no official position on any of the AI products on the market, nor any position on anything other than Emacs; if it’s not Emacs, it’s crap. Individual members may (and for AI, actually do) differing views on the vendors of LLMs.


2023-05-10_00.33.05: Karl Voit, the developer for Memacs, left a comment clarifying a couple of points, and also made a comment about Org Edna. I edited the post to try to incorporate the information he provided. I have not edited his comment. If I still got it wrong, or things are unclear, take his word over mine. Every call people mention several packages I have not heard of. Sometimes I skim the README and still get things wrong. Karl Voithas presented twice at EmacsConf, in 2021 and 2022. You can find his Emacs page here.


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 a 12th-century manuscript created at St. Panteleimon Monastery on Mount Athos; image from The Gabriel Millet Collection (image page here, collection page here), assumed allowed under public domain.

Alternatives to Org (that I will not be using)

One of the items in my ever-growing to-do list in Org Mode was to look at other outlining software. I think I started the list with the intent of trying these out, but as it grew I just kept track of new programs as I came across them. I have decided to abandon this list since I think Org and Emacs will fit whatever needs I have now and in the future. Plus I kept finding other alternatives to Org (either as outliners or for to-do lists), and since the list got longer and longer, I just decided to scrap the idea. Here I will just list what I found.

  • Leo Editor
  • Todo.txt
    • Main page.
    • Neil Van Dyke’s page on Todo.txt. He also has a page on Emacs packages he has written.
    • Emacs mode for Todo.txt.
  • TaskWarrior
    It looks like this requires a separate server to run.

  • A Plain Text Personal Organizer. This is more of a system, and there does not seem to be an application.
  • [x]it (I guess pronounced like “exit”)
    I looked at the syntax guide for about a second, and decided I did not need to read any further. With Org, you can set the status of an item with a word (like “TODO”, “INPROGRESS”, “CANCELLED”, “DONE”); I think you can add your own if you want. Using punctuation for that is inefficient. I do not need yet another thing to remember. I prefer thinking in words rather than symbols, and I prefer context being somewhere other than in my head.

One of the Hacker News discussions on xit had a comment that made me realize there was not much point in keeping this list:

If you want a plain text organizational, compositional and scheduling tool that you can use for the rest of your life and know that 30 years down the line it will be actively supported, developed and you will be able to tweak anything you want…. emacs/org mode is by far and away the best choice. It isn’t even remotely close, we are talking about the difference between a planet and a tiny asteroid when you compare org mode to other plain textish organizational, compositional and scheduling tools.

For as long as humanity doesn’t collapse and probably even after it does org mode and emacs will be used (there is going to be some nerd somewhere using org mode and ledger cli to meticulously track how many smoked rats and cockroach kebobs they have left to eat before they have to leave their bunker), there is just such an intense critical mass of utility under an open source license.

WRT outliners: I do not create plain text files anymore. I just make everything an Org file, and collapse parts that I am not interested in looking at in any given moment. When you have a tool that can do anything, why use anything else?

You’re welcome.

Image from an 11th century manuscript made at the monastery of St. Gall, housed at the Jagiellonian Library (Wikipedia page here), image from e-Codices, assumed allowed under CC BY-NC 4.0.

2023-04 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 the developer in north Texas.
#3 was not here. (I might give The Esteemed Gentleman of Oklahoma a permanent number.)
#4 was a hardware designer in north Texas near Dallas.
#5 a developer in Australia.
#6 did not speak much.
#7 was the other organizer, formerly working for the City of Austin.
#8 was the devops engineer from the company that makes quantum computers from lasers.
#9 was our professor in OKC.

In a change to the format, 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:

#1 got us started. He helped someone at his job with Base64 encoding and decoding for OAuth. He may have sold someone on trying Emacs. He does not evagelize too often since Emacs does require a commitment. However, #1 mentioned this person was a ham radio operator, so perhaps the Church of Emacs will save another soul.

#2 pointed out Emacs can convert text to Morse code and the NATO alphabet. As a non-native English speaker, he finds NATO alphabet useful.

You know you want it, so here are those previous two sentences in Morse code:

#..--- .--./---/../-./-/./-.. ---/..-/- ./--/.-/-.-./... -.-./.-/-. -.-./---/-./...-/./.-./- -/./-..-/- -/--- 
--/---/.-./.../. -.-./---/-../. .-/-./-.. -/..../. -./.-/-/--- .-/.-../.--./..../.-/-..././-/.-.-.- 
.-/... .- -./---/-./-....-/-./.-/-/../...-/. ./-./--./.-../../.../.... .../.--././.-/-.-/./.-./--..-- 
..../. ..-./../-./-../... -./.-/-/--- .-/.-../.--./..../.-/-..././- ..-/..././..-./..-/.-../.-.-.-

We looked at the “Games and Other Amusements” page in the Emacs documentation, and spent a few minutes trying some of them out. When people say Emacs is stuck in the 1970s, show them the built-in Tetris.

#4 asked about Hyperbole (Emacswiki link here, GNU link here). #4 cannot find a good use case for it since Org handles what he does.

I am surprised more people are not using Hyperbole. It is the best Emacs mode ever. It is so good, there is a Youtube channel for it. Really, the videos are just amazing. Hyperbole mode is totally top notch. I just cannot convey how great it is. High marks.

I am not the only one blown away by how excellent Hyperbole mode is. The critics have spoken:

..../-.--/.--././.-./-.../---/.-../. --/---/-../. .-/-.-/-.../.-/.-.
- Morse Code Allah

Try Hyerbole Mode. Think really hard. Write down how great Hyperbole Mode is.
- Richard Feynman

Zathras try Hyperbole. Hyperbole best thing happen to Zathras. 
Zathras must go tell Zathras.
- Zathras

I loved it. It was better than "Cats". I am going to use it again and again.
- Saucer-Eyed Tourist in NYC

But isn't vim better thaALL GLORY TO HYPERBOLE MODE.
- Resident of New New York, Year 2999

Much Lisp. Such Meta-X. Def wow.
- Dogechan

We also talked about Big Brother Database: ELPA page here, EmacsWiki page here.

#2 showed a Chat-GPT package. Apparently there are a lot. He asked for a prompt, and I told him to ask about a good use for Hyperbole. I am not sure which package #2 used. I think it was either gptel or gpt.el. #1 wants syntax highlighting in his GPT client. I have not used any of the GPT clients, so I was not aware there was no highlighting. #2 says you have to give Chap-GPR precise directions, and uses it for proofreading.

We got to know #4 a bit more. He is originally from Austin, and now lives North Texas near Dallas. He works for a semiconductor company based in Boise. He uses some Emacs in his job and uses Org to track tasks and his time. He mentioned Org Notion, which I assumes helps Org talk to the Notion mentioned at this link (I had never heard of it). He runs Emacs on Windows through WSL. His job is hardware design, but I do not think he uses Emacs for that specific task.

I googled “Emacs CAD”, and the best result I got was a Reddit thread from 2017. There is also an architecture firm in Nairobi called “Emacs CAD“, but I do not think it has anything to do with the Emacs we are all familiar with. The founder’s name is Emmanuel, so perhaps that is a factor in why the firm is called “Emacs”. However, their “About Us” page has a few statements I think we can all agree with:

With a passion to raise the standards, Emacs will satisfy and exceed your requirements.

Emacs values and recognises talent and variety from other professions and approaches its solutions provision using the consortium approach.

The Emacs Vision is to be an excellent provider of life enhancing solutions.

Then there was a lot of talk about configuration. #4 is a former Vim user, likes to tinker, made the switch to Emacs four years ago, and might declare Emacs bankruptcy. #2 uses Doom core with mostly his own modules. #2 talked about difference between Spacemacs and Doom. #2 showed us a few Doom macros for configuration: after! and map!. #4 makes a config per module and groups them into directories. This allows him to zero to a package to find out which is causing issues. He talked about wanting to use daemons to run multiple instances to debug problems.

#8 revealed that he is one of the maintainers of Spacemacs, and sees using a daemon connecting to different clients as an anti-pattern. One exception would be if he used a different daemon to run unit tests when he updates a repo; that way a failing test would not upset his workflow. #8 said there has been cross-pollination between Doom and Spacemacs.

#9 said he formerly used a config based on Daniel Higginbotham’s config for Clojure For the Brave and True. Now his is all in one file, which is easy to keep in version control. It is about 6K lines. He tried Org mode for his config, but could not get it to work. My Emacs config is also based on DH’s. At some point I will try to get it to work with use-package or as an Org file.

#2 has his config set to be lazily loaded, so it starts fast but he pays for it later. #8 declared Emacs bankruptcy. He went bankrupt two times in three years. Now with Spacemacs his config is 300 lines of Emacs Lisp. Before his config had 1000 pages. He said you can but page breaks into files and use a customized character for the page break, like a horizontal line. This can make a large file easier to parse visually. Here are a few links for my convenience: A page on Emacs wiki here, an old page at Indiana University here, page-break-lines.el on Github here, the Emacs manual’s page on Pages (getting meta with Meta-X) here. I will add this to my ever-growing to-do list. The stereotype is that Emacs users are always changing their config. I keep adding to a list of things I say I will add to my config someday.

#8 said there might be some changes coming to tree-sitter, but did not say too much else. That link says to use the built-in Emacs tree-sitter module for 29+.

Then we got back to AI. #8 talked about a study that was done for AI and chess. AI could beat a grandmaster. But if an AI gave an amateur a list of 10 possible moves and the amateur picked from that list, the amateur beat the AI. And if the AI gave a grandmaster options for the grandmaster to choose, they beat all everyone else. Perhaps that will be a model for software development going forward.

The conversation then shifted to ways of writing in general, not just software. A few participants talked about Tolkien’s Leaf by Niggle, and then the snowflake method of writing. Honestly it was a bit upsetting.

We talked a bit about Latex. I had a job working with Latex to prepare them for academic journals. #9 said he is only one on his campus that uses it. That surprised me.

Lastly, as people dropped off,#7 and I talked to #5. #5 was in Melbourne, Australia. Not a banana bender, crow eater, top ender, or sandgroper. (For some reason there is no slang term for people from New South Wales.) Another continent checked off. All we need is Africa and South America, and we have a complete set.

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 Matenadaran MS 1568, a 12th-century Armenian manuscript housed at the Matenadaran Institute of Ancient Manuscripts in Yerevan; image from Wikimedia, assumed allowed under public domain.

 

Tracking Tax Documents And Other Ideas For Learning Org Mode

Whenever Emacs or Org mode is mentioned on Hacker News, there is usually at least one comment from someone who said they started learning it, but had a hard time sticking with it. It is easier to learn a new technology if you have a goal to use it for something, especially something non-technical. “I want to learn Rails/Phoenix/etc to make a web app to keep track of $SOMETHING-IN-PARTICULAR” is better than “I want to learn Rails/Phoenix/etc”. They could learn Emacs and/or Org if they had a reason to learn them. Here are a few ideas on things you can do to learn Org. It doesn’t have to be a major project.

Right now it is tax time in the United States. They have to be filed with the Internal Revenue Service by April 15. Employers, HSAs, banks and brokerages have been sending out a LOT of forms. You could make a simple checklist for each of the forms you get, and check them off as you get them. Or make them TODO headings, and mark them as DONE as they arrive; this will add a timestamp. Plus: You can make this outline into a template, and re-use it next year.

I think there is a way to make templates in Org using something called Capture, based on what I have read about it. At some point I will read the Org manual or finish Rainer Koenig’s Org-mode course on Udemy. I only finished half of it, and I still got a lot out of it. Right now when I need to re-use a list, I make a template, and when I need a new one, I put it in the kill ring with org-cut-subtree, and I call org-paste-subtree twice: Once to bring back the template, and a second time to have a copy as an instance.

I also have a list of repeating tasks for things that I need to do every month: pay rent, pay electric bill, pay the water bill. I have monthly tasks for backing up my GnuCash files and my KeePassXC files, and I bundle my Org files and put them on thumb drives. I also have tasks for my car: getting my oil changed, and for replacing different fluids. I have yearly goals for bills that I pay once a year: web hosting, mail box, some insurance.

If you make repeating tasks, look in setting the org-log-into-drawer variable. A “drawer” in Org is a section that is hidden by default, but can still be viewed by calling M-x org-cycle.

I just started Org by making to-do lists, and learned more over time.

You’re welcome.

Image from Hillinus Codex, Cod. 12, an 11-century manuscript housed at the Archbishop’s Diocesan and Cathedral Library in Cologne, Germany, allowed under CC BY-NC 4.0.

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 word? 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

 

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

 

I Got an Account On Mastodon

I got an account on Mastodon. I am at https://emacs.ch/@EMacAdie. It is on a server for Emacs enthusiasts. I will probably post about more than just Emacs.

I created the account in the browser, but afterwards I posted using the Mastodon client hosted on Codeberg; here is a link to the post. After you install and add a couple of vars to your Emacs config, you type “M-x mastodon“, and it puts a URL to the authorization page in the OS buffer. You go there, then you get the token, or the secret, or whatever OAuth calls it, and you then do back to Emacs and C-y, and you are in. It will put a file called “mastodon.plstore” with all the login info in your Emacs config directory. If you put your config into a git repo, add “mastodon.plstore” to your .gitignore file (or whatever your equivalent is if you do not use git).

One thing the author of the client does not mention is that you cannot authorize the client if you run with “–no-window-system“. The URL I kept getting when I ran Emacs in terminal mode was just the regular page for my profile. I could get to a page listed what apps were authorized, but I could not actually authorize anything. I re-started Emacs without “–no-window-system” and it worked fine. I looked at some of Mastering Emacs, and apparently there are some things that do not work when you are in terminal mode. There are some times I thought I was doing something wrong and could not get something to work. Perhaps the real issue was that I was in terminal mode.

The client repo does mention that if you want to post with a second account, you need to edit your config and restart.

I mentioned the Mastodon client in my post about the December 2022 Austin Emacs meetup.

What does one do on Mastodon? Tweet? Mastocate? Is there another word for it? [Note 1]

The code for the client is hosted on Codeberg. I might move my Github repos to Codeberg. I want to have as little Microsoft in my life as I can. If I do, I might give some money to Codeberg to help keep them going. I might also donate to help keep Emacs.ch running. I have given money to Wikipedia. I will make a list of projects/organizations to make small donations to, and track them in Org.

I will try to post a link to this post from the Emacs client, but I reserve the right to fall back to the web if needed.

You’re welcome.


Note 1, added after publishing: Per the comments, apparently you “toot” on Mastodon.

Image from the Emperor’s Bible, an 11-century manuscript housed in the Uppsala University Library; image from the Alvin portal, 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 Bulgaria; 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)