# -*- org -*- #+OPTIONS: toc:nil num:nil #+TITLE: Commander S, a review * Commander S: the shell as broken glass #+BEGIN_HTML
#+END_HTML ** Tumescence Like you, my dear reader, I was excited upon encountering the paper [[http://www.deinprogramm.de/scheme-2005/05-knauel/05-knauel.pdf][Commander S: the shell as a browser.]] Commander S, as described in the paper, is "a new approach to interactive Unix shells based on interpretation of command output and cursor-oriented terminal programs." Better yet, it functions as an interactive front-end to the Scheme shell, [[http://www.scsh.net][scsh]] -- bringing the power of Scheme shell scripting to the command-line. As with most things Scheme (allowing certain [[http://www.call-with-current-continuation.org][notable exceptions]]) and going double for academic output, I expected impracticality in the real world, yet to have a lot of fun poking around, getting some ideas and maybe even, hope of hopes, hammering it into usability. The [[http://www-pu.informatik.uni-tuebingen.de/users/gasbichl/darcs/commander-s/][lack of public release]] was barely a concern, given that the authors thought enough of it to write a detailed paper expounding its virtues in the present tense. In short, I expected exactly what anyone might from a proof-of-concept. ** Essence Unfortunately, it was not to be. Commander S crashes at the drop of a hat, making exploration time-consuming and frustrating. :> ls :[Ah, works fine. A good start.] : :> ls filename with a space :((syscall-error 2 "No such file or directory" #{Procedure 13576 #} "space" ---) . ...) : :> ls "filename with a space" :((syscall-error 2 "No such file or directory" #{Procedure 13576 #} "space" ---) . ...) : :> ls "filename :# the dungeon collapses! :starting remote handler for condition(parser-syntax-error (end of file :within a string #{Tracking-port #{String-input-port}})) : :# Okay, we'll restart the Commander. :> ps :I'm sorry jim, I'm afraid I can't do that. The following error occured: : (call-error invalid argument number->string #f) : :> pwd :> # Paste result to command line -- a noted feature :# the dungeon collapses! :starting remote handler for condition(error unknwon message : in make-standard-viewer get-selection-as-text) :Please connect to port 8888 : :# Gah! Let's try another plugin. :> printenv :> # Paste result to command line :# the dungeon collapses! :starting remote handler for condition(error unknwon message : in make-standard-viewer get-selection-as-text) :Please connect to port 8888 Other issues include terminal handling which continually corrupts the screen and forgets to add carriage returns, process output that goes to a blank screen instead of the output ring, and hanging background processes which force me to SIGQUIT. ** Anti-depressants The Commander S concept is a fascinating one, but basic exception handling and feature testing would encourage users to contribute. My experience so far is that the shell is too fragile to bother hacking on. #+HTML:
* COMMENT html style specifications # Local Variables: # org-export-html-style: " # # # " # End: