ParEdit for Editing Lispy Languages

ParEdit (paredit.el) is a minor mode for performing structured editing of S-expression data. The typical example of this would be Lisp or Scheme source code.
ParEdit helps keep parentheses balanced and adds many keys for moving S-expressions and moving around in S-expressions.

That quote from EmacsWiki really undersells Paredit, though.
Paredit makes it virtually impossible to un-balance parentheses (aka round, square, and curly brackets).
This mode would be especially interesting for folks avoiding Lisp because of the nightmare of balancing parentheses is too much of an obstacle to overcome (in practice of course it really isn’t, even if you don’t use Paredit).

Adding Unicode Fonts to Windows

Today I set up pretty-mode.el and found that the laptop had all of the Unicode fonts but the desktop did not. I ended up installing Arial Unicode MS as suggested by unicode.org, and that installed all of the missing fonts.

If you have Microsoft Office 2000 and newer versions, you can get the Arial Unicode MS font, which is the most complete. To get it, insert the Office CD, and do a custom install. Choose Add or Remove Features. Click the (+) next to Office Tools, then International Support, then the Universal Font icon, and choose the installation option you want.

Unicode in Emacs

From what I can see, Emacs supports Unicode just fine. I had asked about it on the PLT discussion list, where it was explained that set-language-environment function will configure Emacs to use Unicode wherever possible. Here is the documentation:

(set-language-environment LANGUAGE-NAME)
Set up multi-lingual environment for using LANGUAGE-NAME. This sets the coding system priority and the default input method and sometimes other things. LANGUAGE-NAME should be a string which is the name of a language environment. For example, “Latin-1” specifies the character set for the major languages of Western Europe.

Here is how to get a list of valid LANGUAGE-NAMEs:

(sort (mapcar (lambda (linfo) (car linfo)) language-info-alist) 'string<)

(Execute the command C:u before evaluating it with xe to import the result into the buffer)
Here is how to set it to Unicode:

(set-language-environment "UTF-8")

Toggle between Vertical and Horizontal Windows Splitting

On gnu.emacs.help:

Requested: Function that toggles between vertical and horizontal split layout of currently defined windows preferrably preserving splitting ratio.

(defun my-toggle-window-split ()
  "Vertical split shows more of each line, horizontal split shows
more lines. This code toggles between them. It only works for
frames with exactly two windows."
  (interactive)
  (if (= (count-windows) 2)
      (let* ((this-win-buffer (window-buffer))
             (next-win-buffer (window-buffer (next-window)))
             (this-win-edges (window-edges (selected-window)))
             (next-win-edges (window-edges (next-window)))
             (this-win-2nd (not (and (<= (car this-win-edges)
                                         (car next-win-edges))
                                     (<= (cadr this-win-edges)
                                         (cadr next-win-edges)))))
             (splitter
              (if (= (car this-win-edges)
                     (car (window-edges (next-window))))
                  'split-window-horizontally
                'split-window-vertically)))
        (delete-other-windows)
        (let ((first-win (selected-window)))
          (funcall splitter)
          (if this-win-2nd (other-window 1))
          (set-window-buffer (selected-window) this-win-buffer)
          (set-window-buffer (next-window) next-win-buffer)
          (select-window first-win)
          (if this-win-2nd (other-window 1))))))

Thanks Fabrice.