noxter: JavaScript - warum nicht mal serverseitig

Neben schnellen Lösungen, lassen sich auch komplette Anwendungen umsetzten. Die SSX genannte und auf Mozilla Rhino (JavaScript-Engine/Interpreter) und Seanox Devwex (Web-Server) basierende Lösung kann JavaScript serverseitig ausführen. Neben den bekannten JavaScript-Funktionen werden dazu weitere Methoden und Objekte bereitgestellt u.a. für den Zugriff auf Connection, Request und Response. Zudem werden asynchrone Prozesse (Threads), die (De)Serialisierung von Objekten, die Synchronisation von Programmteilen, der Zugriff auf lokale oder entfernte Dateisysteme sowie auf Datenbanken per JDBC unterstützt. Auch das Einbinden von Java ist möglich.

Für Interessierte der Link: http://www.seanox.de/projects.ssx.php

Einige Beispiele sind auf der Internetseite zum SSX enthalten, weitere findet man in den Testfällen, welche den Quellen bei liegen.

Hinweis:

Es wird Folgendes benötig:

- Seanox Devwex (Java Binary)
  - Seanox Commons (Java Bibliothek)
  - Seanox SSX (Modul Version)

Alles ist installationsfrei und entpackt gerade mal 1,5 MB groß.

Zur Installation wird alles in ein Verzeichnis entpacken und das SSX in der Datei devwex.ini wie folgt konfiguriert:

[SERVER:HTTP:CGI]
    SSX = GET HEAD POST >> com.seanox.ssx.Connector [M]

Viel Spaß.

  1. Als clientseitige Sprache ist JavaScript einigermaßen brauchbar - zumal die jeweilige Alternative nur begrenzt als solche bezeichnet werden kann. Glücklicherweise gibt es serverseitig da wesentlich mehr Auswahl.

    Genausogut könnte die Frage also lauten:

    Warum nicht mal serverseitig [Lisp - Lua - Bash-Scripte - Awk - Malborge - letzteres bitte streichen]...

    Gruß, LX

    --
    RFC 1925, Satz 6: Es ist einfacher, ein Problem zu verschieben (...), als es zu lösen.
    1. Hi,

      Warum nicht mal serverseitig [Lisp - Lua - Bash-Scripte - Awk - Malborge - letzteres bitte streichen]...

      okay, ab jetzt baue ich unsere Arbeits-Tools mit letzteres bitte streichen.

      Cheatah, SCNR ;-)

      --
      X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Bitte nicht - das ist noch langsamer als PHP (die Statements müssen nämlich von Hand gestrichen werden)!

        Gruß, LX

        --
        RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine ganz wunderbar. (...)
        1. Hi,

          Bitte nicht - das ist noch langsamer als PHP (die Statements müssen nämlich von Hand gestrichen werden)!

          Ook! Ook? Ook. Ook. Ook? Ook! Ook! Ook.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Tach,

            Ook! Ook? Ook. Ook. Ook? Ook! Ook! Ook.

            0

            mfg
            Woodfighter

            1. Moin!

              »» Ook! Ook? Ook. Ook. Ook? Ook! Ook! Ook.

              0

              Nö. Das gibt ASCII 1 aus.

              --
              "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                    - T. Pratchett
              1. Nö. Das gibt ASCII 1 aus.

                (☺)

                --
                "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                      - T. Pratchett
                1. Tach,

                  Nö. Das gibt ASCII 1 aus.
                  (☺)

                  da musst du dann aber vorher die Codepage umschalten, ASCII ist das nicht mehr ;-)

                  mfg
                  Woodfighter

              2. Tach,

                »» Ook! Ook? Ook. Ook. Ook? Ook! Ook! Ook.

                0

                Nö. Das gibt ASCII 1 aus.

                ich dachte die Schleife endet bei 0, nicht bei 1.

                mfg
                Woodfighter

          2. Hi,

            »» Bitte nicht - das ist noch langsamer als PHP (die Statements müssen nämlich von Hand gestrichen werden)!

            Ook! Ook? Ook. Ook. Ook? Ook! Ook! Ook.

            ??

            Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

            Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook! Ook! Ook? Ook!

            Ook. Ook? Ook. Ook. Ook. Ook.

            Oder nicht?!

            --
            "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                  - T. Pratchett
            1. Tach,

              Ook! Ook? Ook. Ook. Ook? Ook! Ook! Ook.

              ??

              Schleife Anfang, inkrementieren, Schleife Ende, aktuellen Wert ausgeben

              Oder irre ich mich da? Da die Schleife aufhört, wenn der aktuelle Wert 0 ist, sollte auch 0 ausgegeben werden; eher ASCII-Zeichen Nummer 0, also Null.

              Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

              Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook! Ook! Ook? Ook!

              Ook. Ook? Ook. Ook. Ook. Ook.

              Das parse ich jetzt aber nicht im Kopf. Sehe ich so aus wie ein Orang Utang?

              mfg
              Woodfighter

              1. Hi!

                Schleife Anfang, inkrementieren, Schleife Ende, aktuellen Wert ausgeben

                Oder irre ich mich da? Da die Schleife aufhört, wenn der aktuelle Wert 0 ist,

                Argh. Ich hasse Brainfuck und Ook is noch schlimmer. Wir haben beide unrecht, aber du hast rechter.

                Ook! Ook? beginnt die Schleife solange der Wert der Zelle ungleich 0 ist und Ook? Ook! beendet die Schleife, wenn der Wert der aktuellen Zelle gleich 0 ist.

                Die Schleife sollte eigentlich nicht beginnen, also ist das Ergebnis 0. (Aber nicht weil die Schleife beendet wird wenn die Zelle 0 ist.)

                Hab keinen Brainfuck oder Ook! Parser da und 'beherrsche' den Kram nur theoretisch. (Wer will das schon richtig können? Soviel Langeweile hab ich nicht.)

                Ich entschuldige mich für meine Voreiligkeit.

                Mein Code schreibt übrigens 42 in die Zelle. (ganz vielleicht)

                --
                "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                      - T. Pratchett
                1. Tach,

                  Ook! Ook? beginnt die Schleife solange der Wert der Zelle ungleich 0 ist und Ook? Ook! beendet die Schleife, wenn der Wert der aktuellen Zelle gleich 0 ist.

                  werden die Werte denn mit 0 initialisiert? Ich hätte geraten die sind erstmal zufällig, allerdings habe ich in der Spec nichts zum Thema gelesen ;-)

                  mfg
                  Woodfighter

                  1. Hoi!

                    werden die Werte denn mit 0 initialisiert? Ich hätte geraten die sind erstmal zufällig, allerdings habe ich in der Spec nichts zum Thema gelesen ;-)

                    Sofern ich weiß schon. Da aber ja auch inkrementiert wird, müssten Werte negativ beginnen. Naja. Nicht umsonst heisst der Kram Brainfuck.

                    --
                    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                          - T. Pratchett
                    1. Tach,

                      Sofern ich weiß schon. Da aber ja auch inkrementiert wird, müssten Werte negativ beginnen.

                      negativ muss nicht sein, das passiert ja durch den Überlauf automatisch.

                      mfg
                      Woodfighter

                      1. Hola!

                        negativ muss nicht sein, das passiert ja durch den Überlauf automatisch.

                        Hm. An sowat denk ich doch nich. Da frag ich mich doch grad wie sich sone 'Zelle' überhaupt definiert. Hab ich noch nicht nachgeschaut.

                        Das würd ich gern mal ausprobieren. Könnte stimmen. Muß aber ja nicht.

                        Warum zum Henker mach ich mir überhaupt Gedanken um Brainfuck?! Mir  bekommt der Urlaub nicht.

                        --
                        "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                              - T. Pratchett
    2. Yerf!

      Warum nicht mal serverseitig [Lisp - Lua - Bash-Scripte - Awk - Malborge - letzteres bitte streichen]...

      Mich würde ja PEARL interesieren. Aber bei Google findet man zu dem Thema nur Leute, die nicht wissen wie man Perl schreibt...

      Gruß,

      Harlequin

      --
      <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
      1. Hi,

        Mich würde ja PEARL interesieren. Aber bei Google findet man zu dem Thema nur Leute, die nicht wissen wie man Perl schreibt...

        dann ist http://de.wikipedia.org/wiki/PEARL vielleicht nicht der schlechteste Einstieg. Ich selber habe mich mit der Sprache zwar noch nicht beschäftigt, aber Wikipedia liefert gewöhnlich recht brauchbare Links.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo noxter,

    JavaScript serverseitig – könnte ich vielleicht brauchen, und wollte es mal testen.

    Zur Installation wird alles in ein Verzeichnis entpacken und das SSX in der Datei devwex.ini wie folgt konfiguriert:

    [SERVER:HTTP:CGI]
        SSX = GET HEAD POST >> com.seanox.ssx.Connector [M]

    Ok, habe ich alles gemacht. Aber wenn ich meine Datei ssxTest.ssx aufrufe, ercheint immer nur folgendes:

    SSX  RUNTIME ERROR  H:/WebServer/devwex/documents/ssxTest.ssx

    Die Datei ist einfach eine Kopie der index.html im Root-Verzeichnis des Servers. Da ist gar kein JavaScript drin. Es kann also kein JavaScript-Fehler sein.

    Bin völlig ratlos.
    Was mache ich falsch?

    Kannst du mal eine einfache "Hello World"-SSX-Datei hier posten, die funktionieren müsste? Vielleicht ist der Server auch nicht richtig konfiguriert, er meldet:

    2009-04-07 17:13:47 SERVICE INITIATE START
    2009-04-07 17:13:47 SERVICE RESOURCES LOADING
    2009-04-07 17:13:47 SERVER TCP 127.0.0.1:25000 READY
    2009-04-07 17:13:47 SERVER TCP 127.0.0.1:80 READY
    2009-04-07 17:13:47 SERVER TCP 127.0.0.1:443 READY
    2009-04-07 17:13:47 SERVICE STARTED (0.5 SEC)

    Sieht doch gut aus...

    Das Rhino-Dingens funktioniert auch. Habe mal die JavaScript-Shell getestet => Alles ok soweit. Nur mit dem Webserver will es nicht klappen.

    Gruß, Don P