Slashdot is powered by your submissions, so send in your scoop


Forgot your password?
Programming IT Technology

Fault Tolerant Shell 234

Paul Howe writes "Roaming around my school's computer science webserver I ran across what struck me as a great (and very prescient) idea: a fault tolerant scripting language. This makes a lot of sense when programming in environments that are almost fundamentally unstable i.e. distributed systems etc. I'm not sure how active this project is, but its clear that this is an idea whose time has come. Fault Tolerant Shell."
This discussion has been archived. No new comments can be posted.

Fault Tolerant Shell

Comments Filter:
  • by Anonymous Coward on Monday March 15, 2004 @06:20AM (#8566889)
    auto-completing python interpreter and editor

    An auto completing Python interpreter and editor:

    Pythonwin [] (Windows only).

    When it expands a class or module, select the one you want with the up and down arrows (or just keep typing to narrow the selection down), then press tab to select it.
  • by xlurker ( 253257 ) on Monday March 15, 2004 @06:28AM (#8566920) Homepage
    here you go autocompletion in the editor is availible in vim here []
  • Re:Python (Score:3, Informative)

    by LarsWestergren ( 9033 ) on Monday March 15, 2004 @07:31AM (#8567049) Homepage Journal
    You can download Python plugins [] to work together with the excellent Eclipse [].
  • by SmallFurryCreature ( 593017 ) on Monday March 15, 2004 @07:31AM (#8567050) Journal
    This is indeed little more then the wrapper that you describe. Yet most seem to comment on its non-claimed properties of fixing the programmers errors. Wich it really really doesn't. In fact it is worse since this one would happily keep trying to execute a command like "rm -Rf / home/me/tmp".

    I have often had to write such wrappers myself. Sure even easier/better would have been if somebody added this to say BASH as an extension but perhaps that is not possible.

    How often have you needed to write horrible bash code just to pull data from an unreliable source and ended up either with a script that worked totally blind "command && command && command &&" wich never reported if it failed for days on end or ended up with several pages just to catch all the damn network errors that could occur.

    I will definitly be giving this little language a try in the near future. Just another tool for the smart sys-admin. (smart people write as little code as possible. Let others work for you)

  • by aurelien ( 115604 ) on Monday March 15, 2004 @08:17AM (#8567161)
    Any good Common Lisp implementation ?
  • by nick_urbanik ( 534101 ) <{nicku} {at} {}> on Monday March 15, 2004 @09:23AM (#8567411) Homepage
    I finished building the shell after I changed the code that uses a non-standard way of printing the usage message, show_help() in src/ftsh.c. In emacs, I replaced ^\(.*\)\\$ with "\1", and then went back and changed the lines that did not end in a backslash, removed the beginning and ending quotes.

    Then it compiled (on Fedora Core 1).

    Then it failed the functions test, because my computer does not have the file /etc/networks. For a fault tolerant shell, it does not seem very tolerant of my machine! After sudo touch /etc/networks, make succeeded.

    Anyway, those were the only two problems, and now it's installed. Let's see if it's worth building into an RPM package.

  • by WetCat ( 558132 ) on Monday March 15, 2004 @09:25AM (#8567421)
    Erlang ( has it.
    You can have multiple linked interpreters and
    even fault-tolerant database!
    It is a scripting language.
    From the FAQ:
    1.1. In a nutshell, what is Erlang?
    Erlang is a general-purpose programming language and runtime environment. Erlang has built-in support for concurrency, distribution and fault tolerance. Erlang is used in several large telecommunication systems from Ericsson. The most popular implementation of Erlang is available as open source from the open source erlang site.

  • Push doesn't scale. (Score:4, Informative)

    by Moderation abuser ( 184013 ) on Monday March 15, 2004 @09:45AM (#8567532)
    The system you pull from is a distribution server, all it does is distribute files. If it's slow, it's slow for all the machines sucking data and you need a bigger infrastructure. If it's down, the client scripts fail safe and do nothing.

    Even here, pull scales better than push, look at a web server as an example thousands of machines sucking web pages from a server is not uncommon. Try pushing those pages out to the same number of machines.

    Push methodologies simply don't scale, I've been there, done that and it's a bad architecture for more than trivial numbers of machines and I'm not the only one to notice: l. shtml

  • Mod up! (Score:4, Informative)

    by Ayanami Rei ( 621112 ) * < minus punct> on Monday March 15, 2004 @12:01PM (#8568688) Journal
    The language even allows you to create file "variables" which are safely allocated and destroyed during the operation of a script, analogous to automatic varibles in C++/Java or what-have-you. The point of this language is that it is entirely focused on exception handling. This is _excellent_ programming practice.
  • Re:First Real Post (Score:3, Informative)

    by danielrendall ( 521737 ) on Monday March 15, 2004 @12:45PM (#8569113) Homepage Journal
    Um... no, that doesn't do the same thing. The whole point of ftsh is that the 'try' block encloses a set of statements which must all be executed or it fails. If the 'cd /tmp' fails, bash will blindly run the 'rm -f data' anyway, whereas ftsh will stop and jump to the start of the try block to have another go.

Loose bits sink chips.