2023-09 Austin Emacs Meetup

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

#1 was the organizer.
#2 was a no-show.
#3 was the Esteemed Gentleman From Oklahoma.
#4 was someone whose name was unfamiliar to me. They did not speak during the meeting, at least while I was there.
#5 was a developer in College Station. He also did not speak much.
#6 was a developer here in Austin. He made some small talk at the beginning with the organizer, but dropped off before I did.
#7 was a developer in Virginia.

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:

  • Culture in OKC; high school wrestling is big in OKC.

Note: This time events are arranged by topic/theme, and not chronologically.

#3 spent some time talking about Crafted Emacs. They added a new maintainer, and #3 has been documenting the modules for Mac OSX and evil mode.

At first I thought he said “eel mode”, but I do not think there is an eel mode. There could be and I just don’t know about it. When I think about how likely it is there could be an eel mode for Emacs, is it really quite…..

wait for it

shocking.

M-x rimshot

Thanks, eel be here all week.

#3 is also deleting some obsolete code and thinks it will be ready for an RC1 release soon.

#7 asked about Crafted Emacs, so #3 gave another off-the-cuff presentation about it by going through his config.

I asked #3 is there were plans to do an intro video when Crafted makes version 1. He said the main System Crafters guy (Dave Wilson) might do one if he feels like it, but #3 has no plans to do one himself. #3 said he is not a video guy, but he does do a good job speaking off the cuff in my opinion. He has done a few presentations on Crafted Emacs already. If we were using Zoom for out meetings, we could just ask it to compile one for us (links to Zoom and AI here and here).

#3 has set up the package archive list in Crafted Emacs to not use MELPA out of the box, but he does not disallow it. He does not like MELPA because packages there tend to be out of date. A good overview of the differences between ELPA and MELPA can be found here; a lot of the packages in MELPA are hosted on Github, and the FSF does not like Github. Per that post, I think the point of NonGNU ELPA is to replace MELPA and de-Github Emacs packages. It is ironic that git is supposed to be decentralized and open source, and yet it wound up being centralized on a site owned by Microsoft.

You can find the list of GNU ELPA packages here, and the list NonGNU ELPA packages here. Anything that gets MS out of my life is good, so going forward I will pay more attention to where the packages I install are hosted. I also have a third-party package URL in my Emacs config. I will have to see which packages I use from there. When I list packages, my package buffer does not tell me which archives my “installed” “dependency” packages come from.

#1, #3 and #7 talked about using Emacs for email. Gnus and mu4e were mentioned. At one point #3 showed us his filters for his IMAP account (I think it was Gmail). I might look into this. Now I use Thunderbird for email, but as I wrote in a non-EmacsATX post, I would like a way to save my Firefox and Thunderbird configs in a way that is more elegant than zipping up my entire profile directory. Keeping them in Emacs Lisp is a better alternative. #3 uses bbdb for his filters. There does not seem to be any sort of manual on the web about bbdb. #7 uses gnus w/his gmail, said somethings were complicated.

I liked the theme #3 was using. It was one of Prot’s themes. I think it was modus-vivendi-tinted.

#3 uses which-key. Which-key seemed to me a lot like Embark, which #2 likes. Perhaps #2 and #3 could have a pop-up showdown.

We also talked a bit about Eshell. I mentioned I had written something about it, the article on Mastering Emacs, and the fact that a lot of people did not seem to know where the manual is. Mickey Petersen replied to my comment and told me that when he wrote the article the manual either was not there, or was much smaller (and less useful) than it is today. Someone posted a link to a page by Howard Abrams about Eshell called Why use EShell? He has a few other pages about Eshell (like here) and gave a talk about it at EmacsConf in 2022. I am trying to replace my use of bash with Eshell. I did not make any promises about having an actual presentation, but I did say I might give an update at the next meeting.

Per the schedule for EmacsConf 2023, it looks like the other member from OKC (aka “The Professor”) will be presenting for his third straight EmacsConf.

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

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

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. You can read the disclaimer, or you can just use the short version: you are on your own and don’t come crying to me if anything goes wrong.

Image from the Gladzor Gospels, a 14th-century Armenian manuscript housed at UCLA (article here, images here); image assumed allowed under public domain.

Email Cerebus and the Three-Body Problem

BLUF: Many people find it difficult to run small, independent email servers due to the behavior of the three largest providers. This post will give some thoughts on email’s three-body problem and on alternatives to Email Cerberus.

Email was originally intended to be a set of decentralized protocols that would have each have multiple implementations, that would each have multiple instances; a hundred implementations would bloom, thousands of servers would provide. Over time, the market of email providers has shrunk, with the Email Cerberus (GMail, Microsoft and Yahoo) having enormous sway over the email landscape. They have the power to reject email from particular domains, and it is hard to get them to reverse their decisions. If you are blacklisted by a provider, you can still get email from other domains, but domains hosted by that provider do not get your emails. Two-way conversations become sources of frustration. This has made it very difficult for small firms and individuals to run their own email servers. Many of them give up and outsource, either to one of the big three, or to a specialized provider.

When you check your email, you are using either POP to get emails from the server to your local machine, or IMAP to read them on an email server. When you send an email, your client sends your message to an SMTP server, which is how servers communicate with each other. For web-based email like Gmail, the web application is just a wrapper around these email protocols.

Over time, more protocols were added to reduce spam, like DomainKeys Identified Mail (DKIM), Sender Policy Framework (SPF) and Domain-based Message Authentication, Reporting and Conformance (DMARC). If your domain gets blacklisted by Email Cerberus, usually it is because you did not set up your DNS entries and email server to conform to these protocols to their satisfaction. One of the more insidious “innovations” by the techbros in Silicon Valley is that is it next to impossible to talk to an actual human to solve your problem. Once the algorithm has decided, your fate is sealed.

If you decide to take your life into your own hands and run your own email server, there are a couple of projects that make it easier to self-host: iRedMail and Mail-in-a-Box (project homepage here, Wikipedia page here). Each protocol is handled by a different application, and there is also a database script to handle the storage of messages. Mail-in-a-Box lists the different components on their Github page. These projects have their own support channels. You can also check out the /r/selfhosted subreddit (self-hosted email is only one topic amongst others on that sub). I do not think either of them can support sending emails from multiple domains.

There are companies that specialize in webmail. Wikipedia has a list here. Based on comments/blogs/toots, some favorites are Fastmail, Hushmail, Protonmail and Tutanota. I think you can use either their web interface or your own client for most of the services on that page. Avoid Mail.ru (now VK) and Yandex.

I found a few others mentioned on the /r/webhosting subreddit: MX Route, Great Mail, 25 Mail St, Roller and Migadu. I have not looked at these too closely, but I assume they are not just front-ends for one of the larger providers. There is a company in Austin called MxToolbox (which is very close to where I live). It looks like they do not provide email hosting. I think they help with setup and monitor your email traffic to ensure your emails are going where they need to go and help you avoid getting blacklisted.

You could also use your shared web host as your email provider. Some of the comments on /r/webhosting were that using your webhost for your email is a bad idea, but I am not a business, and so far it seems to be working out. You can find an incomplete list here.

Sometimes a web host will just outsource email to one of the big three; I think both Dreamhost and Bluehost use Gmail under the hood, and Rackspace uses Office 365.

I use InMotion webhosting. They use Exim based on what I can see in the headers. For a month I have able to send emails that did not get rejected. They use CPanel, and it had links for all my domains for DKIM and SPF and buttons to fix them. The SPF is there. I did not do anything with DMARC. Yahoo said that the DKIM was unknown. Perhaps InMotion needs to restart their mailserver, or CPanel is not hooked up correctly.

There are a couple of forum sites about email: Email Questions and Email Discussions. They have posts about setting up servers and news and trends in the industry.

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

But do not forget this site has a disclaimer.

Image from the Adysh Gospel, a 9th-century Georgian manuscript housed at the Svaneti Museum of History and Ethnography; image from The Gabriel Millet Collection (image page here, collection page here), assumed allowed under public domain.

Things I Wished Browsers Did

This post is a list of things I wish browsers did out of the box.

I know a lot of people like to use their phones to access the internet. As a man with large hands, I like using my laptop to go online. I do not get the appeal of phones: smaller screen, smaller controls, less memory and hard drive space, most apps are just there to get you to spend more money, they make people stupid (I have seen people pull halfway out of parking spaces and stop because they were looking at their phones) and you are telling people they can reach you anywhere anytime.

  • Have a button to clear the cache. That is ALWAYS the answer to any issue. It is like adjusting the tracking on VCRs: your computer could catch fire, and the first suggestion would be to clear the cache.This is especially important in corporate environments when you are logging into different instances of an app on different servers.But every browser puts the control to clear the cache in a different place, and sometimes they will change things between versions. Just give me one button to make it easier. All browsers have a home button and a refresh button. Why not a button to clear the cache?
  • Let me save my config to a file, and give me a way to upload it on another machine, or later on the same machine. I do not want to save a directory and have to copy it (like Firefox; note to Firefox developers: the only thing less elegant would be to tell people to write it out in longhand) or have to do it by hand every single time (like Chrome and Edge). Every browser has the ability to import and export bookmarks. Why not import and export all the settings? I don’t care if it is XML or JSON. Just make my life easier. It would enable people to roll back changes easily. Before my most recent hard drive crashed, I would save my bookmarks to a file that grew to about 300 MB. So a large file should not be a problem. If browser developers can use all that config information in-flight, they can export it to a file.Sometimes I have spent a lot of time finding out how to get things they way I want them. For a while Firefox was setting a cookie for Mozilla.org every time I started Firefox. When I pay my bills I only want to have cookies from the domain I am sending money to. Before I figured out the exact setting to change, I would have to delete that cookie every single time. You have to uncheck “Allow Firefox to send technical and interaction data to Mozilla.”

    I just looked at Chrome (version 116.0.5845.179), and there is an option to reset settings to the original defaults. But nothing to save my settings. Given that Google is pushing out their “ad privacy” nonsense, being able to restore my own settings is a higher priority. Note to the not-as-smart-as-they-think-they-are people at Google: To most people “ad privacy” is disabling ads altogether.

    I would also love to save some settings for Thunderbird: account info, and especially all the filters.

  • I wish the order of the sections in the config screen was more intuitive.One way would be to arrange them alphabetically. It is great that Chrome has a search engine for the config, but usually the first thing I do is mentally search: I try to find what I am looking for. Having the sections in alphabetical order would help with that. A random order makes them look chaotic, although I can understand having “About Chrome” at the end.If you have a search function for configuration, maybe that is a sign your app is too complicated.Some of the Chome sections only have one option, while others go a few levels deep.

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

There are a few line and paragraph breaks that looked fine in the Org export AND the WordPress preview that are off in the final post. I decided to just leave it as-is.

Image from Grec 550 by Gregorius Nazianzenus, a 4th century manuscript housed at the Bibliothèque nationale de France. Source gallica.bnf.fr / BnF; image assumed allowed under public domain.

Example of Eshell Use and Thoughts On Eshell

While it may not be possible to live in Emacs 24/7, I am trying to do more things in Emacs. Part of that is using more Eshell.

For each story or defect I would get, I would make a directory with notes and I would backup the files. I have blown away local changes a few times, so I usually make sure that no longer happens. (This past week I lost some files when Windows deleted some files after a forced restart.) Once the story or defect has been released to production, I delete the local backups.

I used to use Notepad++, now I use Emacs. I take the steps and/or subrequirements and make them into a TODO list, making it easier to track progress.

For copying the files, I would make a .bat file, with aliases for directories. I would copy the files to a common directory, and append a number between the name and the extension. SomeFile.java would be copied to SomeFile.002.java, etc. I would edit the file by hand, adding files as I changed them, and incrementing the version number each time. I would then run the file in a DOS window.

Since I started keeping notes in Org, I started copying the files in Eshell. I also added some commands to put a message into a text file. I would edit as needed, and then use set-mark-command and copy-region-as-kill to highlight and copy my commands, then yank them in the Eshell buffer. There might be a way to put it all in an Emacs Lisp file, or use looping and a list, but one step at a time. Switching between buffers is more convenient than switching between applications.

The Eshell version also makes a new directory for each iteration, and moves the files there.

Here is an example, with names changed to protect the innocent (names provided by Random Word Generator):


(setenv "VER_NUM" "006")
(setenv "DATE_STRING" (format-time-string "%Y-%m-%d_%H.%M.%S"))
(setenv "COMMIT_MSG" "advance digress cave committee trouser")
(setenv "STORY_NUM" "CULTIVATE-7659")
(setenv "ARCHIVE_DIR" (concat "C:/EKM/stories/" (getenv "STORY_NUM")  "/files"))
(setenv "JAVA_SRC_DIR" "D:/genetic/jurisdiction")
(setenv "SURFACE_PKG" "src/org/partner/sausage")
(setenv "NORTH_PKG"  (concat (getenv "JAVA_DIR") "/" (getenv "SURFACE_PKG") "/west/habit/mosquito"))
(setenv "WOLF_PKG"   (concat (getenv "JAVA_DIR") "/" (getenv "SURFACE_PKG") "/option/drawer/highlight"))
(setq FILE_DIR (concat (getenv "ARCHIVE_DIR") "/files_" (getenv "STORY_NUM")  "_" (getenv "VER_NUM")))
(setenv "COMMIT_FILE" (concat (getenv "FILE_DIR") "/message." (getenv "DATE_STRING")))
cd $ARCHIVE_DIR
cp -v C:/EKM/stories/$STORY_NUM/menu.delete.highway.option.escape_workload.sql $ARCHIVE_DIR/menu.delete.highway.option.escape_workload.$VER_NUM.sql
cp -v $JAVA_SRC_DIR/$NORTH_PKG/PeelBuilder.java          $ARCHIVE_DIR/PeelBuilder.$VER_NUM.java
cp -v $JAVA_SRC_DIR/$NORTH_PKG/WaterFactory.java         $ARCHIVE_DIR/WaterFactory.$VER_NUM.java
cp -v $JAVA_SRC_DIR/$WOLF_PKG/MushroomAdapter.java       $ARCHIVE_DIR/MushroomAdapter.$VER_NUM.java
cp -v $JAVA_SRC_DIR/$WOLF_PKG/WheatBridge.java           $ARCHIVE_DIR/WheatBridge.$VER_NUM.java
cp -v $JAVA_SRC_DIR/web/WEB-INF/conf/tiles-defs-case.xml $ARCHIVE_DIR/tiles-defs-case.$VER_NUM.xml
cp -v $JAVA_SRC_DIR/$SURFACE_PKG/common/properties/ApplicationResources.properties $ARCHIVE_DIR/ApplicationResources.$VER_NUM.properties
mkdir $FILE_DIR
mv -v $ARCHIVE_DIR/*.$VER_NUM.* $FILE_DIR
(write-region (concat (getenv "DATE_STRING") ": " (getenv "COMMIT_MSG")) nil (getenv "COMMIT_FILE"))

There is a good article on Eshell on Mastering Emacs. The author and a few commenters lament that Eshell is not well documented. At least one commenter wrote that the article should be incorporated into the Emacs documentation.

There actually is an Eshell manual: you can find it at this page. The list of built-in commands is here. If you look on the Emacs documentation page, there is a list of four links. As of 2023-08-12, they are: GNU Emacs manual, An Introduction to Programming in Emacs Lisp, Emacs Lisp Reference Manual and Other Emacs manuals. The Eshell manual is listed on the page at the “Other Emacs manuals” link. [Note 1]

That page has a lot of manuals. It has links to the other three main manuals, as well as the parts of Emacs not covered in the primary manual: Calc, Eshell, IDO, Org (which is the same as the manual on the Org mode site), Tramp, use-package, and many more. I always went to the primary Emacs manual, and I do not think I had ever looked at the page for the other manuals until I did so by chance a few days ago. I wonder why the manual for Hyperbole is not on the list.

One of the comments on the Mastering Emacs article links to the Eshell page on EmacsWiki. That page has a few gems not in the manual, like for loops. I downloaded the manual source, and grepped with grep -in ‘for.*in\s’ eshell.texi, and I did not see what looked like a for loop.

I also used it on my Windows machine for work. On Linux, Emacs uses the system grep tool when I select M-x grep; this does not work on Windows since there is no grep command by default. Using grep on Eshell on Windows seems to work recursively, but not on Linux. When I did a grep in Eshell on Windows, it added each file it scanned to the list of buffers. It did choke on a large PDF file. I have not the same type of files on my work laptop as I have on my own machine, so my tests are just prelimiary; most of my files on Windows are Office files, large PDF files and large XML files that are all one line.


Note 1: It is not clear to me from the text and comments on the Mastering Emacs article if people are unaware of the Eshell manual, or if they do not think it has enough information to be useful. Nevertheless, I recommend reading all the articles on that site and the book.

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

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

2023-08 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. I was only on for an hour before I had to drop off; hopefully people did not save their bon mots for the period I was absent for.

#1 was the organizer.
#2 was a devloper in the Dallas area.
#3 was again a no show.
#4 was someone whose name was unfamiliar to me. They did speak during the meeting, but I do not remember much about them.
#5 was a developer in Seattle; he gave a presentation on Org React last month.
#6 was a hardware developer in north Texas.
#7 was the professor in OKC. I only noticed him right before I left.

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:

  • Linux distributions
  • Vim (again)
  • Hammerspoon

We started out talking about Emacs 29.

I asked about building Emacs 29 locally. I run Pop!_OS, which is based off of Ubuntu. The version that comes with it is 27.1. There are reasons to stick with what your distro gives you, but there are a lot of things in 29 that look like it might be worth it to build it myself (like use-package). I got a few suggestions, most of which were in line with what is on this page. (This site also has a page on using Emacs 29.1 with Golang.)

On one of my computers I do have Emacs 29.1 as a flatpak. For my own future reference, flatpaks are stored at $HOME/.local/share/flatpak, and I can run the app in a terminal with “flatpak run org.gnu.emacs”. I do not know when I installed it. I picked Pop!_OS because they do not use snaps. I do not want to jump out of the frying snap and into the flat. I will get rid of it.

A few people talked about long lines. A few said they have used files with really long lines, and wonder how long a line has to be to cause a problem. #6 works on chips, and said the core dumps are CSV files that are over one gigabyte; he said he needs GVim to look at them, and hopes that Emacs will get better at handling large files. Excel cannot handle CSV files that large either.

I wonder if use-package, tree-sitter and long lines will be incorporated into XEmacs. Or will it fall so far behind that we will call it Twitter-Emacs?

#4 said they grew up in Emacs, while #2 and #6 started out as Vim people. #2 said that he learned Vim because it was the default editor for Git. He said learning vim caused him to hate himself. He has said that a couple of times in the past; he has never said that Emacs caused him to hate himself.

A few of us wondered why nano wasn’t the default. It has the commands along the bottom, so you would never have to remember how to use it.

I know a lot of sysadmins say a reason to learn vim is that it is always on a Linux/Unix system, but that is a terrible reason for using it except when you have to. That is no different than the unwashed masses using Windows because that is what was installed on when they got their system from Best Buy. I know this is just one person’s view, but I had an exhange on the Emacs subreddit with a sysadmin who uses Emacs, and they agreed that if systems had nano instead of vim, then nano would be the most popular editor.

A few of the former vim-mers talked about modal interfaces, and using even using them outside of vim, like for the whole OS, or in Emacs. A few Emacs meta-modes (which are Emacs modes that allow you to use Emacs modally) are Meow mode, God mode, and Hydra mode. The best names for one of these would be “à la mode”, or just “Mode mode”. I googled for those, and those names are not used. One of the former vim-mers shared a link explaining the vim philosphy.

#2 showed how he uses a tool called Hammerspoon to automate actions on a Mac. He switches between windows, opens files, controls the volume, you name it, with the keyboard. Hammerspoon uses Lua. I glanced at a few videos about it on Youtube, and they seemed to spend more time in an editor editing the Lua files than showing what you can do with the tool. At least this guy used Emacs to edit Lua.

Then #2 gave another demo of Embark. He did not make a presentation, but he did have some notes outlined in an Org file. He compared it to Hyperbole (Reddit posts on Hyperbole here and here; some of the comments compare it to Embark). I asked him if it would work if Emacs was started with –no-window-system, and he said it would. Embark uses Posframe to pop up frames, and that should still work with no window system.

Embark is a context-aware actionable helper. You can highlight text, or just call it from within a buffer, and it pops up a frame listing functions that could be used at that point, based on the text, the type of buffer, or your place in the buffer (like in a Org outline). It can be used on dired buffers as well as files. It has built-in targets and actions, and you can define your own.

Embark can do a lot. It looks to me like Org: powerful, but a beast to learn. I think I will just tell you to search for Emacs and Embark on Youtube to see what Embark can do. Or you could attend a future meeting and ask #2 to demo it a third time.

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

I give people numbers since I do not know if they want their names in this write-up. Think of it as the stoner’s version of the Chatham House Rule. I figured that numbers are a little clearer than “someone said this, and someone else said that, and a third person said something else”. Plus it gives participants some deniability. 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 “Evangelia [Evangiles dits de Du Fay]”, a 9th century manuscript housed at the Bibliothèque nationale de France. Source gallica.bnf.fr / BnF; image assumed allowed under public domain.

2023-07 Austin Emacs Meetup

There was another meeting a couple of weeks ago of EmacsATX, the Austin Emacs Meetup group. For this month we had a predetermined topic: Org-Reveal. 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 the organizer; he used to work for the City of Austin. I do not know what he does for money, but it involves Emacs.
#2 was the developer in North Texas. I might give him the number two spot permanently.
#3 (aka the Esteemed Gentleman From Oklahoma) was not in attendance.
#4 was a developer in Seattle, originally from Romania.
#5 was in San Francisco; I think he is one of the organizers of the San Francisco Emacs meetup.
#6 was someone in Kansas.
#7 was the professor in OKC.

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

There was just one non-Emacs Topic:

  • The correct pronunciation of “Dracula”. Per the Romanian in attendance, it is “drah-KOO-lah”. If someone tells you otherwise, don’t let them fool ya.

#4 gave a presentation on Org-Reveal, which allows you to export Org files to HTML presentations by connecting to the Reveal HTML presentation framework. You can go from one heading to the next by clicking on the horizonal arrows, and if there are sub-headings you can access them by vertical arrows (see the demo here).

You need to import the org-reveal package and a couple of others. You also need to have an Org keyword poiting to the reveal.js file; you can point to a local copy or one online. #4 pointed to one on JSDelivr. Org-reveal adds an “[R]” option to the org-export-dispatch menu. The result is a large HTML file with your presentation.

Your Org file can contain source, media and images, and those can all be exported. You will still need to look at the documentation on the Reveal website; I do not think Org-Reveal can wrap Reveal completely. You can use any themes from the Reveal website.

There was some discussion about exporting to PDF, but that seems like a chore in general.

#5 talked a little bit about the relationship between Org-Reveal and org-re-reveal. Development on Org-Reveal had stopped, so someone forked it as org-re-reveal. Then after a couple of years work on Org-Reveal resumed, and now they have diverged and are no longer completely compatible. #5 and #7 both thought that org-re-reveal had more features, looks better, and has a better charting library.

I mentioned that someone has resumed work on XEmacs. You can access the source here. My understanding is that way back in the mid-1990s, some developers wanted to add functionality to GNU Emacs, but Stallman wasn’t too interested in their changes. So for a while there were two Emacsen, and XEmacs was where the action was. Then in the mid-2000s somone else started managing GNU Emacs, they changed their process and started making changes to GNU Emacs, and XEmacs lost its momentum. The last release was in 2009.

I wish that #3 had been on this call. He had some contact with both Emacs projects and might be able to offer some insight.

In the past decade there has been a lot of momentum and community growth in Emacs due to Org Mode and Magit. Some people learn Emacs just to use one or both of those tools. A lot of us in the group are heavy Org users. Will XEmacs incorporate these tools? Will it last if it does not? What about use-package? Tree-sitter?

People are always debating if Emacs is just an editor or something more. The front page of the GNU Emacs site calls Emacs “extensible, customizable, free/libre text editor – and more.” The front page of the XEmacs site calls XEmacs “a highly customizable open source text editor and application development system”. Their source page calls XEmacs an “editor and productivity suite.” Some people joke that Emacs is an operating system, but it does not deal with drivers, user accounts, or managing other applications like an OS does. Perhaps it is best to consider it a combination of editor and application platform. This guy has some interesting points on the subject. He is also working on a GUI library for Emacs (HN discussion here).

#2 shared his screen and demonstrated his Emacs-fu. He showed us using Org-noter to keep notes in a PDF file. He ran the PDF viewer within Emacs; I guess he does not start Emacs with the –no-window-system option. He showed us Embark. It lets you choose a command based on the text near the point (which is what Emacs calls the cursor). The example he showed is that if there is a mention of an RFC, like “RFC 1234”, he can highlight that text, and call rfc-mode to download a PDF of the RFC and open it in Emacs. He also showed us anki-editor, a mode to make flash cards in Emacs. #2 truly lives in Org Mode.

At that point I had to leave. The meeting continued, but I do not know for how much longer.

Note: rfc-mode is made by galdor; you can find him on Mastodon here. And there really is an RFC 1234.

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 BNF Latin MS 278, “Evangelia”, an 11th century manuscript housed at the Bibliothèque nationale de France. Source gallica.bnf.fr / BnF; image assumed allowed under public domain.

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

One thing before we go forward: My schedule has changed slightly. There is an event I have started attending that occurs every Wednesday. I can still attend the EmacsATX calls, but I will only be able to stay for one hour. So future write-ups might not contain information for the whole meeting.

#1 was one of the organizers; he used to live in Austin and now lives in East Texas. He was only on for a few minutes.
#2 was the other host.
#3 was the Esteemed Gentleman From Oklahoma.
#4 was a developer in South America. Now all we need is someone from Africa, and we will have had attendees from all populated continents.
#5 was a developer in Seattle.
#6 was our developer in Australia.

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:

  • Linux in general
  • Pop!_OS in particular
  • The hard truth about running a user group
  • Cyprus Preppers

At first it was just myself, #2 and #3. I mentioned that I had not done a whole lot with Emacs in the past month. The hard drive on my laptop died. I spent some of my time backing up the data (there were signs it was not long for this world before the end) and I got a new laptop from System76 (post here, shameless unpaid placement here). I think it is important to support Linux vendors, and I am tired of installing operating systems. The only thing I ever learned from it is that I hate doing it and I get nothing out of it.

The version of Pop!_OS that is on both of my systems is based on an LTS version of Unbuntu, and the version of Emacs on them is 27.1. I will not get the latest and greatest for a while, but I am okay with that. The OS has an alert when there are updates to any packages, and I just install them when they come up. I am trying to not be one of those people who spends more time configuring Emacs than getting things done with it.

#4 introduced himself. He is in a developer in Colombia. He started getting into Emacs recently, and is interested in Org mode.

#3 said he is in Org all day; he keeps notes on meetings and everything else in Org. This is the way. [Reader repeats: “This is the way.”] He keeps longer notes in Denote (Github repo here, manual here) a mode by Protesilaos Stavrou, aka “Prot”. I have a link to his Emacs Youtube playlist on my Emacs page. I have heard of him, and I know a lot of people respect him, but I have not watched any of his videos yet; it is another item on my ever-growing TODO list. #3 said that one of Prot’s projects was to build a hut to live in somewhere in rural Cyprus. Perhaps he was building it out of parentheses. Perhaps Emacs 30 will have a M-x build-hut function. The admin for the Emacs Mastodon server had a coaching session with him recently.

#5 had recently came back from Europe, and had been working on a presentation about Org-Reveal. He gave us a preview. The plan is that he will finish it and present next month, so I will not say too much about his presentation now.

#2 asked if anyone wanted to do a presentation on tree-sitter, and this led to discussion of a lot of stuff that only works on Emacs 29, like tree-sitter-langs and combobulate, and an article about it all at Mastering Emacs. #3 said from user perspective there is not a lot to tree sitter. Someone mentioned dumb-jump, another navigation package; it helps you find the definition of a function. There is also a package called smart-jump. I have not tried either, and I do not know how they are different.

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 an 11th century manuscript housed in the Bavarian State Library (Wikipedia page here); manuscript here, information here, citation link here, image assumed allowed under public domain.

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) have 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 Voit has 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.

Trying Out GPT4All

I tried out GPT4All. It is an app that can run an LLM on your desktop. Some of the models it can use allow the output to be used for commercial purposes. The only downside was it is not very fast, and makes my CPU run hot. The project provides installers for Linux, Apple, and Windows (or, as I like to call it: Win-Don’t).

I found out about it while looking into alternatives to ChatGPT and OpenAI. There are a few videos about it on Matthew Berman’s channel, including an interview with the CEO of Nomic AI, the company that started the GPT4All project. I think it is great that people are making alternatives to ChatGPT and OpenAI.

I first downloaded it a couple of weeks ago. The installer itself worked fine, but I had to change the permissions to get it to run: chmod 755 gpt4all-installer-linux.run. I got an error when I tried to run the program: bin/chat: error while loading shared libraries: libxcb-cursor.so.0: cannot open shared object file: No such file or directory. I installed the library as root: apt install libxcb-cursor0. After that it worked fine.

I downloaded the installer again today and re-installed to see if anything was different. I might have still gotten the libxcb-cursor error if I had not installed it earlier. Now the program lets you choose a model when you first run it. Before the model file had to be in the same directory as the executable, and if there was more than one model file it would pick the default. When I tried to run it the first time, I could download a couple of models, but I could not get past that screen. I had to exit and restart the app to actually use the models. There is a list of the models available here (historical commit here). The output of the default model can be used in commercial applications. Most of the other models are based on LLaMA, and commercial use of the output is prohibited.

The new version also gives you the option of sending feedback on the responses back to the GPT4All project.

The model files are from 3.5GB to about 7.5 GB. I have downloaded several model files over the past few weeks, and I have used up as much hard drive space in two weeks as I did in five years on my recently deceased laptop.

While the application is idle it does not use a lot of resources, but when it is generating output the CPU usage and temperature both spike. I do not know if I will be running this on a regular basis. My Meerkat has an Intel i5-10210U CPU, 4.20 GHz, 6 MB Cache, 4 Cores and 8 Threads with 64 GB of memory. The GPU is Intel, so I do not think I will be running a lot of Pytorch.

When I was using the version of the software from two weeks ago and using the ggml-gpt4all-j-v1.2-jazzy model file, I asked it to write some sample sales emails for companies in different industries. It kept writing emails asking for sample sales email instead of an actual sales email. I tried the new ggml-gpt4all-j-v1.3-groovy model (“Current best commercially licensable model based on GPT-J and trained by Nomic AI on the latest curated GPT4All dataset”), and it did better, but the results were pretty similar for each one. They all started with “Exciting news!” and offered a “wide range of” something. I read “Exciting news!” so many times, I started hearing the voice of Professor Farnsworth in my head. Here is the output from the prompt “Write an email from a consulting company whose software developers use Emacs”:

Subject: Exciting news! Our software developers are now using Emacs.

Dear [Recipient’s Name],
I hope this email finds you well. My name is [Your Name] and I am the owner of [Company Name]. We are excited to announce that our software developers are now using Emacs as their primary text editor.

As a company that specializes in software development, we understand the importance of having the best tools for the job. That’s why we offer a wide range of software development tools, including Emacs. Our developers are trained to use the best tools available, and we are always looking for new clients to hire.

If you are interested in learning more about our services, please don’t hesitate to contact us. We would love to discuss your project and see how we can help you achieve your goals.

Thank you for considering [Company Name]. We look forward to hearing from you soon.

I have to agree, Emacs is the best tool for just about any job.

I tried the same prompt with the same model on the new version, and I got this:

Subject: Help with Emacs – Our Developers Need Assistance

Dear [Name],

I hope this email finds you well. We are writing to inquire about your experience using the popular text editor, Emacs. As we understand that you work as a developer for our esteemed client, we would like to offer some assistance in resolving any issues you may be facing while working on their projects.

We have noticed that many of our clients often struggle with certain aspects of using Emacs, such as navigating through files efficiently, finding specific lines of code, or even understanding basic syntax. These challenges can lead to frustration when trying to accomplish tasks within the program.

To help alleviate these frustrations, we would love to invite you to participate in a webinar where we will provide step-by-step instructions on how to effectively navigate and utilize the features of Emacs. This webinar will cover topics such as file navigation, search functions, and programming language support.

If you are interested in participating, please let us know by responding to this email. If not, no need to worry, we completely understand if you prefer to continue using another tool. However, we believe that our webinar could greatly benefit you and your team members who also work on projects involving Emacs.

Thank you for considering our invitation. We look forward to hearing back from you soon.

Best regards,
[Your Name]

Not as positive. I selected the option to regenerate output, and it was just one sentence that did not even mention Emacs.

I tried the prompt with the model ggml-gpt4all-l13b-snoozy, which is “Current best non-commercially licensable model based on Llama 13b and trained by Nomic AI on the latest curated GPT4All dataset”, and I got this:

Subject: Emacs Software Development at [Consulting Company]

Dear [Client],

I hope this email finds you well. My name is [Your Name], and I am the Director of Software Development at [Consulting Company]. I am writing to express our excitement about the opportunity to work with you on your upcoming project.

At [Consulting Company], we pride ourselves on our use of Emacs as our primary text editor. Our developers have found that Emacs provides a powerful and flexible platform for software development, and we believe that it will be an asset to your project as well.

We understand that your project is of the utmost importance, and we are committed to delivering a high-quality solution that meets your needs. Our team of experienced developers will work closely with your team to ensure that your project is completed on time and within budget.

If you have any questions or concerns, please do not hesitate to reach out to us. We look forward to working with you and delivering a successful project.

Best regards,

[Your Name]
Director of Software Development
[Consulting Company]

I agree that “Emacs provides a powerful and flexible platform for software development”, and that it is as asset to any project.

Some of the responses interpreted the prompt to produce what I want (“We are amazing and Emacs is amazing and we can make amazing software for you with Emacs”) and one was offering to teach developers how to use Emacs. I tried a couple of more times, and again the results were different with the same prompt.

There is a project that provides a command line interface to the models called LlamaGPTJ-chat, which I might get to in a few more days. I have tried a couple of other CLI programs, and they also use a LOT of CPU.

Michael Finney wrote about his experience with GPT4All here. Per his article, GPT4All will soon have an API that can be called and run on a local server. I joined the GPT4All discord, but I have not spent too much time there.

I do not know if I will be using this too much since it puts a lot of stress on my system. I will see if anyone is running models on the cloud and find out how much it costs. But I support anyone who will give the world alternatives to OpenAI.

You’re welcome.

I am not using an image of someone writing because while this post mentions Emacs, it is not about Emacs.

Image from Madrid Skylitzes, a 12th century manuscript of Synopsis of Histories by Greek historian John Skylitzes; manuscript housed at National Library of Spain; manuscript information here. Image from World Document Library, licensed under CC BY-NC-SA 4.0.