Uninstall Subversive

Although Subversive is the official Eclipse Subversion provider, the plugin itself doesn’t behave very well. In particular, it is impossible to uninstall it (v0.7) using the “Software Updates” dialog. The only option is to delete the jar files yourself (in 2001 I remember hoping that soon, we wouldn’t have to do stuff like this). Here are the files to delete:

(Disclaimer: this worked for me, I make no promises for what it might do to your Eclipse installation)

org.eclipse.team.svn.core_0.7.5.I20081029-1900.jar
org.eclipse.team.svn.help_0.7.5.I20081029-1900.jar
org.eclipse.team.svn.resource.ignore.rules.jdt_0.7.5.I20081029-1900.jar
org.eclipse.team.svn.ui_0.7.5.I20081029-1900.jar
org.eclipse.team.svn_0.7.5.I20081029-1900.jar
org.polarion.eclipse.team.svn.connector.javahl15_2.0.5.I20081024-1200.jar
org.polarion.eclipse.team.svn.connector.javahl_2.0.5.I20081024-1200.jar
org.polarion.eclipse.team.svn.connector.svnkit15_2.0.5.I20081024-1200.jar
org.polarion.eclipse.team.svn.connector.svnkit_2.0.5.I20081024-1200.jar
org.polarion.eclipse.team.svn.connector_2.0.5.I20081024-1200.jar

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.

PLT Web Server Changes

Jay, maintainer of the PLT Web Server, has recently made a lot of changes to make it easier for folks to get started with the app server. The latest change is in the documentation, per this post:

The PLT Web Server manual was organized too much like a reference manual with little guide to a user to understand how some modules fits in to the big picture. I’ve reorganized the documentation with the following paradigm:
— Running the Web Server
— Writing Servlets
— Extending the Web Server
Other improvement related to this: I’ve added examples to almost every servlet function. I have integrated the stateless and non-stateless servlet documentation to put stateless servlets on a more secure footing and make it clear that they are usable in real applications. I’ve created an HTTP sub-module that encapsulates most of the HTTP handling. (This will limit the need to use what used to be considered internal Web Server functions.)

Links: Docs, Writing Servlets, Stateless, and HTTP module.