Slashdot Mirror


Fault Tolerant Shell

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."

10 of 234 comments (clear)

  1. (offtopic, but..) Python by Anonymous Coward · · Score: 1, Informative

    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.

  2. Python already has that by xlurker · · Score: 5, Informative
    here you go autocompletion in the editor is availible in vim here
    --
    ______________________________________________
    sigamajig...
  3. Re:Python by LarsWestergren · · Score: 2, Informative

    You can download Python plugins to work together with the excellent Eclipse.

    --

    Being bitter is drinking poison and hoping someone else will die

  4. One of the few who get it apparently. by SmallFurryCreature · · Score: 4, Informative
    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)

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  5. Re:Nice, which brings me too.... by aurelien · · Score: 2, Informative

    Any good Common Lisp implementation ?

    --
    aurelien
  6. Code not very tolerant of my machine! by nick_urbanik · · Score: 2, Informative
    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.

  7. If you want a fault tolerant scripting language by WetCat · · Score: 4, Informative

    Erlang (http://www.erlang.org) 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.

  8. Push doesn't scale. by Moderation+abuser · · Score: 3, Informative

    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:

    http://www.infrastructures.org/bootstrap/pushpul l. shtml

    --
    Government of the people, by corporate executives, for corporate profits.
  9. Mod up! by Ayanami+Rei · · Score: 3, Informative

    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.

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  10. Re:First Real Post by danielrendall · · Score: 3, Informative

    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.