Why is Emacs Hanging?

Even after using Emacs for 15 years there’s still so much I can learn. I probably should have already known this, but there’s a first time for everything. It’s rare that Emacs hangs. Exceedingly rare. Which is probably why I didn’t know how to deal with it. Today Emacs started hanging when trying to open files over a remote TRAMP session (SSH). The most important key of all that everyone who uses Emacs knows is C-g.

Replacing Strings in an Entire Project

This is a little trick I just applied and thought was cool enough to write down. Let’s say you want to replace a name that is used throughout a project. Due to various conventions/restrictions in use the name might appear in several forms like: MY_COOL_NAME, my-cool-name, my_cool_name etc. In Emacs you can invoke regexp replace across an entire project by invoking project-query-replace-regexp, by default bound to C-x p r. This will first prompt for the regexp to search for, then what to replace it with.

My 2023 Emacs Python Setup

I’ve been using Emacs for almost 15 years now. Somewhat surprisingly, I hadn’t touched my config in three years! It’s been working that well. But now that Emacs 29 has been released I’ve decided to take a look at what’s new and there have been some big changes, particularly for Python. Goodbye Elpy, Goodbye Projectile Elpy has been the primary mode for Python development for me for years now. But sadly, it looks like the project is no more.

Install Calibre without Root

On Linux, software should generally be installed with your system package manager (apt, yum, portage etc.) However, Calibre is a bit “special” in this respect. While well-loved, it’s known to be a bit difficult to package (to say the least) and most distro packages you’ll find are out of date. The official website recommends against using any distro packages and instead installing it directly from the site. Unfortunately, the official instructions are problematic for a number of reasons.

If you want to start Arduino programming you’ll notice a lot of the documentation and tutorials are centred around the Arduino IDE. Now, obviously, as an Emacs user you’ll be loath to install something like Arduino IDE, let alone actually use it. The good news is it’s super easy to get started with Arduino with any editor, including Emacs and even Vim if you so desire. All the Arduino IDE is doing is calling a cross-compiler toolchain then using avrdude to communicate with the Arduino to upload software.

I love going to the cinema, but I’ve always been disappointed that I can’t see older films and I can’t see them when it’s convenient for me. There have always been ways to watch films at home, but even today when large screens and high-definition formats are ubiquitous, it’s just not the same as the cinema experience. There’s something completely different about the big screen that a TV in a living room can’t replicate.

Writing a Blog with Org-mode

I’ve always thought I should write a blog, but I just never got around to setting it up. I know there are services you can simply sign up to and start writing, but that isn’t for me. I have two requirements for this thing: I can write using tools of my choice, I can host it anywhere. My tool of choice for writing anything is emacs and, for natural language in particular, org-mode.