Emacs & Screen: backspaces, servers, and escape characters
I frequently have trouble using Emacs under screen because sometimes erase and backspace get switched, resulting in emacs believing every backspace is a Control-h for help. For some reason I always forget the command to fix this. For now and future reference, the fix is: M-x normal-erase-is-backspace-mode.
I highly recommend upgrading to Emacs CVS-HEAD as it now includes multi-tty emacs. Multi-tty allows console or graphical frames to attach to an existing emacs server on the system, regardless of the graphics mode. What this means is that I can start a server using (server-start) in an emacs session under my screen session. I can then connect to this instance of emacs using emacsclient from both another console, or from a graphical frame. Since all of the buffers are shared between instances I no longer need to worry if I remembered to save changes to a buffer of another instance running on the same computer.
It does have a few bugs that remain to be fixed. If I forget and invoke screen -DAr from another console that forceably disconnects both the screen on the other terminal, as well as the other terminal. If that terminal is also hosting the graphical emacsclient it seems to kill both the emacs client and the hosting emacs server. I’m sure this issue will be corrected prior to the next official release.
Given that RMS has just stepped down as the maintainer for GNU Emacs1, perhaps a new release is forthcoming sooner rather then the more usual later. Moving away from CVS to a more distributed SCM may also assist in this venture.
I have returned to using Ctrl-z as the prefix code for screen commands. Despite it’s obvious shortcomings by overriding normal process suspension, it does not impair XON/XOFF terminal status in the way Ctrl-q did. As a side effect this would also break creation of new screen-shells in screen, as they would not forward key events back to the main screen session. This prevents screen switching until the newly created screen-shell is terminated. The Ctrl-a code despite being the default screen prefix is not suitable as it overrides emacs/bash keybindings for beginning of line. Finally, Ctrl-z still allows for process suspend using Ctrl-z z. Ctrl-z is a bit cramped, but as a bonus it does make it easier to eat or drink and monitor several screen-shells at the same time.
yum is useless 3
Following in my adventures in discovering the total uselessness of fedora core [3,4] I have discovered a whole new set of issues to complain about. I discovered the best way
to fix both the weird iso image sizing/md5sum problem and the unreliability of the cd install medium to successfully install every package is to do a network install. Which works great for me since wuarchive is accessable as a nice reasonable speed of about 8 megs a second. Somehow I don’t think it works well for most people though.
My new complaint has to do with the yum installer. Yum apparently stands for yellowdog update manager, which is a quick giveaway that it wasn’t even originally designed for fedora core. This is a retrofitted advancement for fedora.
So I have been going through a variety of installati
ons on a couple of matching boxes on my desk. I discovered that FC3’s latest update to there kernel, 2.6.12-1.1372_FC3 totally fails to boot on any smp system anyone has found. I’m not quite sure I understand the product testing system if it is unusable on any platform, but this is the least of my problems. For a variety of other reasons I need the kernel-devel package which provides the source of the currently installed kernel. Unfortuneatly as far as I can dtermine, yum only lists the latest kernel-devel packages in it’s repository. This is because yum is designed only to update things. Apparently the idea that an update might not be applicable/work is a foreign concept for this tool. Is it really that difficult to support some type of version management? Doesn’t the ability to roll back to a working state, even package by package seem like a useful requirement?
I have since discovered that the way for me to update my system is apparently to specifically exclude the kernel and kernel-smp package unless I want to go in and edit the bootloader file to ensure that I can still boot. Nicely enough when manually excluding packages it doesn’t automatically remove packages that depend on the packages that were excluded.
This is all excluding the fact that yum isn’t even usable on FC3 after install because the gpg keys aren’t installed by default. It’s not like the gpg keys are for random weird sites either, no they are for the standard sites provided by FC3 by default with the installation.
There seems to be some sort of way to retarget the add/remove program manager, at least to a dvd iso image, given that none of the disk images seem to work all the way through. Not sure if it can be retargeted at a network package source though, which seems to be the only reliable way to install packages. Unfortuneatly it also seems to have major issues if any of the packages have been updated since the original install cd was mastered. Which means the add/remove function only works reliably the first time the machine is booted after install.
I REALLY don’t understand why people seem to like yum and fedora core so much. Debian does some things that annoy me with licensing, and certainly some annoying things with dev packages, not to mention the way they absolutely gut ruby’s standard library, but at least for the most part it’s installer and packages seem to work. It feels like everyone in fedora land loves yum simply because it’s such an improvement over dealing with rpm dependency hell by hand, manually downloading each package. As for rpm’s and fedora core itself, I don’t understand the attraction at all. Anaconda sometimes seems to do a nice job of auto detecting hardware, but it’s only part of the time. Does anyone know why people actually like fedora core?
Fedora Core is Useless
I fail to see why distributions like Fedora core are immensly popular. Fedora core and any corresponding system based on rpm and dependent on the anaconda installer all suffer from the same fatal flaw. If any single rpm fails to install, the entire install process is halted and must be restarted. It doesn’t pause and ask you for a different source for the rpm, in this day and age it could probaby even download the specified rpm online, let alone just wait for you to clean the install disk.
The problem is exacerbated by the fact that as near as I can tell Fedora Core install disks are the most finicky disk images I have ever encountered. The only possible way I can even get a system installed is to install bare GUI desktop install.
Yet once the base system is installed the problems still continue. Apparently it’s only possible to manually select all the packages you didn’t get to install with yum. There is a gui for selecting additional packages but it suffers from the same problem the original install gui suffered from, ie a single failure kills the whole process. I don’t know if this is better here or worse, on the one hand at least you can try several different combinations without needing to walk back through the entire disk formatting procedure, but on the other it would definitely seem logical to allow the tool to download packages from a remote location if the cd fails.
It’s not really like the problems end with the installation and package system either. If you ever need to compile anything from source I bid you good luck. Assuming you track down all the devel rpm’s that are missing because of the afore-mentioned problems, it still assumes that the rpm themselves are actually complete, or working properly. Though I have imagemagick, imagemagick-c++ and the corresponding devel packages installed I am still unable to link RMagick against these installed libraries.
Lets not even get into the abomination that is Fedora Core 4. I see no logical reason to base any distribution on gcc4 at this point unless you want to be involved in the gcc development process. Sure it’s stable, but it’s significantly slower then say gcc 3.4.3.
I highly recommend more flexible distributions like gentoo or debian if anyone is interested in a usable platform for development.
