flashnfantasy: Wiki-Test in JavaScript

Das ist nur ein Aufruf, eine Website zu testen und eventuell Fehler zu finden.

Mit dieser Seite versuche ich einen JavaScript zu testen, der mir den Unterschied zwischen zwei beliebig langen Texten darstellt.

Explizit will ich damit sowas wie ein Wiki programmieren.
Es werden zwei oder mehr Versionen eines Textes hochgeladen und dann mit Hilfe eines JavaScriptes abgeglichen oder geändert.

Auf der Seite kann man die neuere Version in einem Inputfeld verändern und dann sofort die Änderungen per Link anschauen.
Das ganze muß sich dann sinnvoll und erkennbar darstellen.

http://www.forum35.de/test/wiki01.html

  1. Hi,

    Das ist nur ein Aufruf, eine Website zu testen und eventuell Fehler zu finden.

    Das ist ja eigentlich kein Grund einen neuen Thread aufzumachen, der Alte ist ja schließlich noch offen.

    Mit dieser Seite versuche ich einen JavaScript zu testen, der mir den Unterschied zwischen zwei beliebig langen Texten darstellt.

    Das hattest Du nämlich im altem Thread schon alles lang und breit erklärt. Da auch sonst nichts wesentliches verändert wurde am Problem sind alle Bedingungen für ein hier nicht so gern gesehenes Doppelposting gegeben.

    Aber ich kann ja trotzdem mal Dein Dingen gleich hier auseinandernehmen, wofür gibt's schließlich C&P.
    Ich fang' mal oben an.
    In den Funktionen domIns() und domDel() wird ein Blockelement benutzt dem nachträglich per CSS ein Inlineverhalten aufgepropft wird. Das macht hier wenig Sinn.
    Auf ein Attribut zuzugreifen ohne es erstellt zu haben ist nicht sonderlich abwärtskompatibel.
    Wozu die Abfrage "if (parent != undefined)" und dazu noch ohne ein "else"?
    Wer Aah sagt muß auch Beh sagen: zu "color" gehört stets auch ein "background-color".
    Warum benutzt Du die Funktion domText() nicht überall?
    Die Funktion replaceAll() ist normalerweise unnötig.
    Die Behandlung der Zeilenenden ebenfalls.
    innerHtml ist kein Javascript sondern JScript.
    removeAllChildren() geht auch eleganter.

    Der Rest ist _sehr_ umständlich gelöst und im Grunde auch keine Lösung für Dein im Originalthread beschriebenes Problem. Hatte das einen bestimmten Grund?

    so short

    Christoph Zurnieden

    1. Hi Christoph,

      Das ist ja eigentlich kein Grund einen neuen Thread aufzumachen, der Alte ist ja schließlich noch offen.

      Ja, ich schäme mich auch ein ganz klein wenig.
      Gestern habe ich aber noch versucht, irgendeinen Algorithmus zu finden - mir kam dann aber selber eine Idee, die auch so ganz toll funktioniert.
      Heute brauche ich einfach nur Feedback zu dem fertigen Produkt.

      Aber ich kann ja trotzdem mal Dein Dingen gleich hier auseinandernehmen, wofür gibt's schließlich C&P.
      Ich fang' mal oben an.
      In den Funktionen domIns() und domDel() wird ein Blockelement benutzt dem nachträglich per CSS ein Inlineverhalten aufgepropft wird. Das macht hier wenig Sinn.

      Eine andere Methode ist mir dazu nicht eingefallen.
      Klar, ich hätte eine Klasse definieren können und dann den Klassennamen setzen können, aber das ist für meinen Geschmack nur genauso gut.

      Auf ein Attribut zuzugreifen ohne es erstellt zu haben ist nicht sonderlich abwärtskompatibel.
      Wozu die Abfrage "if (parent != undefined)" und dazu noch ohne ein "else"?
      Wer Aah sagt muß auch Beh sagen: zu "color" gehört stets auch ein "background-color".

      Parent ist ein optionaler Parameter.
      Wenn man ihn weglässt, dann kann man per AppendChild den erzeugten Knoten anhängen.

      Warum benutzt Du die Funktion domText() nicht überall?
      Die Funktion replaceAll() ist normalerweise unnötig.
      Die Behandlung der Zeilenenden ebenfalls.
      innerHtml ist kein Javascript sondern JScript.

      zu replaceAll habe ich keine Alternative gefunden.

      innerHTML ist einfacher (und auch browserübergreifend).
      Klar könnte ich den ganzen Text mit DOM zusammenbasteln, aber das wäre dann etwas langatmig geworden.

      removeAllChildren() geht auch eleganter.

      wie ?
      denn der Algorithmus frisst nämlich viel Zeit !!!

      Der Rest ist _sehr_ umständlich gelöst und im Grunde auch keine Lösung für Dein im Originalthread beschriebenes Problem. Hatte das einen bestimmten Grund?

      Ja und Nein,
      ich war gestern lange in der Wikipedia unterwegs und habe mir angeschaut, wie die das Versionsproblem gerade bei konkurrierenden Versionen lösen.
      Und wird dort das Problem nicht gelöst, man kann immer nur auf den neuesten Artikel aufsetzen, aber alle Artikel gegeneinander vergleichen.
      Damit haben meine Bedenken gegenüber einem Auseinanderdriften in verschiedene Versionen etwas abgenommen - auch ich werde nur zulassen, daß man auf der neuesten Version arbeitet.

      Was bei meinem Algorithmus mir wichtig ist, daß er sich durch einen komplett umgestellten Text sich nicht aus der Fassung bringen lässt i.e. Selbst wenn man einen Absatz an eine ganz andere Stelle kopiert und dann dort was einfügt, erkennt er die eingefügte Änderung.

      Auch was das mutwillige Zerstören von Artikeln angeht habe ich sowas wie einen Maßstab gefunden: die Anzahl der 'Ankerpunkte' von Version zu Version.
      Diese Anzahl ändert sich nicht wesentlich bei Korrekturen oder Ergänzungen, sie ändert sich aber wesentlich bei einem ganz anderen Text oder bei einer Löschung.
      Somit habe ich auch dort meine Alarmglocke.

      videntur,
      Mathias

      1. Hi,

        Heute brauche ich einfach nur Feedback zu dem fertigen Produkt.

        Es ist ein recht schwaches Argument. Du hast Glück, das keiner der entspr. Damen und Herren da ist ;-)

        In den Funktionen domIns() und domDel() wird ein Blockelement benutzt dem nachträglich per CSS ein Inlineverhalten aufgepropft wird. Das macht hier wenig Sinn.

        Eine andere Methode ist mir dazu nicht eingefallen.
        Klar, ich hätte eine Klasse definieren können und dann den Klassennamen setzen können, aber das ist für meinen Geschmack nur genauso gut.

        Und warum hast Du nicht einfach direkt ein Inlineelement genommen?

        zu replaceAll habe ich keine Alternative gefunden.

        Es funktioniert mit normalen Regexen.
        Was hast Du denn probiert, das es nicht funktioniert hat?

        innerHTML ist einfacher (und auch browserübergreifend).

        Naja, "browserübergreifend" ist aber schon recht optimistisch, oder?

        Klar könnte ich den ganzen Text mit DOM zusammenbasteln, aber das wäre dann etwas langatmig geworden.

        Es hält sich in Grenzen.

        removeAllChildren() geht auch eleganter.

        wie ?
        denn der Algorithmus frisst nämlich viel Zeit !!!

        function removeAllChildren(arnold){
          var adam   = arnold.cloneNode(false);
          arnold.parentNode.replaceChild(adam,arnold);
        }

        Und wird dort das Problem nicht gelöst, man kann immer nur auf den neuesten Artikel aufsetzen, aber alle Artikel gegeneinander vergleichen.

        Und das ist keine Lösung? Im Kontext mit der Administration gesehen ist das durchaus eine akzeptable Lösung.

        Was bei meinem Algorithmus mir wichtig ist, daß er sich durch einen komplett umgestellten Text sich nicht aus der Fassung bringen lässt

        Das tut er aber, siehe Twilos Posting.

        i.e. Selbst wenn man einen Absatz an eine ganz andere Stelle kopiert und dann dort was einfügt, erkennt er die eingefügte Änderung.

        Einen Absatz an eine ganz andere Stelle zu verschieben kann bereits den Sinn verändern. Zudem handelst Du Dir völlig unnötig Komplexität ein, denn wenn Du das ganz durchziehst landest Du am Ende und Worst Case bei O(n^m) (m sei die Anzahl der Versionen).

        Bei Text wird normalerweise ein zeilenweises Diff gezogen. Nicht verschachtelt, sondern ganz normal.
        Normal heißt hier: Einfügen und Löschen, Vertauschen wird selten benutzt.
        Für die genauen Algorithmen siehe diff

        Auch was das mutwillige Zerstören von Artikeln angeht habe ich sowas wie einen Maßstab gefunden: die Anzahl der 'Ankerpunkte' von Version zu Version.
        Diese Anzahl ändert sich nicht wesentlich bei Korrekturen oder Ergänzungen, sie ändert sich aber wesentlich bei einem ganz anderen Text oder bei einer Löschung.
        Somit habe ich auch dort meine Alarmglocke.

        Eine ziemlich teure Alarmglocke.
        Aber gut, hast Du ja schon, bräuchtest Du nicht noch extra zu erzeugen.

        videntur,

        "videre" bedeutet im Passiv etwas anderes als im Aktiv. In diesem Zusammenhang hier könnte ich das fast schon als Affront nehmen! ;-)
        (Du wolltest wahrscheinlich "man sieht sich" o.ä.?)

        so short

        Christoph Zurnieden

        1. Hi,

          Heute brauche ich einfach nur Feedback zu dem fertigen Produkt.

          Es ist ein recht schwaches Argument. Du hast Glück, das keiner der entspr. Damen und Herren da ist ;-)

          Da bin ich halt egoistisch, zudem - ich bin sicher, daß Twilo sich das nicht angeschaut hätte, wenn das Posting an der moralisch richtigen Stelle gestanden hätte.
          Und so hätte ich den Fehler nicht bemerkt.

          In den Funktionen domIns() und domDel() wird ein Blockelement benutzt dem nachträglich per CSS ein Inlineverhalten aufgepropft wird. Das macht hier wenig Sinn.

          Eine andere Methode ist mir dazu nicht eingefallen.
          Klar, ich hätte eine Klasse definieren können und dann den Klassennamen setzen können, aber das ist für meinen Geschmack nur genauso gut.

          Und warum hast Du nicht einfach direkt ein Inlineelement genommen?

          Auch da hätte ich die CSS-Eigenschaften verändert. Bei beiden die Farbe und beim Ins hätte ich das Underline rausgenommen.

          Eigentlich habe ich bisher sehr gute Erfahrung gemacht, DIVs zu 'inlinen', in allen Browser die ich nutze (Opera, Mozilla, IE).
          Ich weiß das ist pfui - aber es klappt überall anstandslos, also scheint es zumindest akzeptiert zu werden.
          Also was spricht dagegen ?

          zu replaceAll habe ich keine Alternative gefunden.

          Es funktioniert mit normalen Regexen.
          Was hast Du denn probiert, das es nicht funktioniert hat?

          reguläre Ausdrücke brauchen länger - ich vermeide sie halt, wo ich kann.

          innerHTML ist einfacher (und auch browserübergreifend).

          Naja, "browserübergreifend" ist aber schon recht optimistisch, oder?

          Funktioniert auf Mozilla, Opera und IE, damit habe ich 99.9% meiner User erreicht.

          Klar könnte ich den ganzen Text mit DOM zusammenbasteln, aber das wäre dann etwas langatmig geworden.

          Es hält sich in Grenzen.

          Wahrscheinlich mache ich das, wenn es ernst wird.
          Es war mit innerHTML halt einfacher.

          removeAllChildren() geht auch eleganter.

          wie ?
          denn der Algorithmus frisst nämlich viel Zeit !!!

          function removeAllChildren(arnold){
            var adam   = arnold.cloneNode(false);
            arnold.parentNode.replaceChild(adam,arnold);
          }

          ok, das ist tricky, daran hätte ich jetzt nicht gedacht

          Und wird dort das Problem nicht gelöst, man kann immer nur auf den neuesten Artikel aufsetzen, aber alle Artikel gegeneinander vergleichen.

          Und das ist keine Lösung? Im Kontext mit der Administration gesehen ist das durchaus eine akzeptable Lösung.

          Bin so ein Schwarzmaler, der glaubt, daß jetzt alle Leute den denkbar kompliziertesten Fall wählen.

          Was bei meinem Algorithmus mir wichtig ist, daß er sich durch einen komplett umgestellten Text sich nicht aus der Fassung bringen lässt

          Das tut er aber, siehe Twilos Posting.

          Der Algorithmus war nicht falsch, die Ausgabe hat etwas zu früh abgebrochen. Der Fehler ist jetzt behoben.

          i.e. Selbst wenn man einen Absatz an eine ganz andere Stelle kopiert und dann dort was einfügt, erkennt er die eingefügte Änderung.

          Einen Absatz an eine ganz andere Stelle zu verschieben kann bereits den Sinn verändern. Zudem handelst Du Dir völlig unnötig Komplexität ein, denn wenn Du das ganz durchziehst landest Du am Ende und Worst Case bei O(n^m) (m sei die Anzahl der Versionen).

          Die Komplexität wächst mit dem Faktor O(nn) = Feststellen der Worthäufigkeit, das Zuordnen mit dem Faktor O(n).
          Ich glaube nicht, daß es einen Alg unter O(nn) gibt.
          Müsste aber mal testen, was du mir genannt hast.

          Klar ! - eine Verschiebung ändert den Sinn. Also sollte man sie schon feststellen. Wichtiger ist aber noch, daß man gelöschte und hinzugekommene Wörter unabhängig von der Verschiebung erkennt.
          Letztlich muß man sich den Text sowieso nochmals durchlesen, um zu sehen, ob er iO ist.

          Bei Text wird normalerweise ein zeilenweises Diff gezogen. Nicht verschachtelt, sondern ganz normal.
          Normal heißt hier: Einfügen und Löschen, Vertauschen wird selten benutzt.
          Für die genauen Algorithmen siehe diff

          Ja, wird meist so sein. Es kann aber auch Austausch von Daten sein (aus Alt mach neu), denke ich mal.
          Es ist einfach so gewesen, daß ich bei der ersten Änderung einfach zuviel gestochert hätte, bis ich wieder auf einen gemeinsamen Text hätte aufsetzen können.
          Meine Idee mit den Ankerpunkten kommt vom einem Alg namens SIFT (Scalable Invariant Feature Transform), der beeindruckend gut gleiche Bildteile auf verschiedenen Bildern erkennt.

          Auch was das mutwillige Zerstören von Artikeln angeht habe ich sowas wie einen Maßstab gefunden: die Anzahl der 'Ankerpunkte' von Version zu Version.
          Diese Anzahl ändert sich nicht wesentlich bei Korrekturen oder Ergänzungen, sie ändert sich aber wesentlich bei einem ganz anderen Text oder bei einer Löschung.
          Somit habe ich auch dort meine Alarmglocke.

          Eine ziemlich teure Alarmglocke.
          Aber gut, hast Du ja schon, bräuchtest Du nicht noch extra zu erzeugen.

          Geht so, ich habe Schillers Glocke und die Bürgschaft getestet, auch gegeneinander, und es hat jeweils ne Sekunde gedauert, bis das Ergebniss vorlag.

          videntur,

          "videre" bedeutet im Passiv etwas anderes als im Aktiv. In diesem Zusammenhang hier könnte ich das fast schon als Affront nehmen! ;-)
          (Du wolltest wahrscheinlich "man sieht sich" o.ä.?)

          Dachte ich eigentlich, daß es das heißt ???
          cu,
          Mathias

          1. Hi,

            Da bin ich halt egoistisch, zudem - ich bin sicher, daß Twilo sich das nicht angeschaut hätte, wenn das Posting an der moralisch richtigen Stelle gestanden hätte.
            Und so hätte ich den Fehler nicht bemerkt.

            Ich habe ihn auch bemerkt, keine Angst.

            Und warum hast Du nicht einfach direkt ein Inlineelement genommen?

            Auch da hätte ich die CSS-Eigenschaften verändert. Bei beiden die Farbe und beim Ins hätte ich das Underline rausgenommen.

            Nichts gegen kreativen Umgang mit Technik, wahrlich nicht, aber eine derartige Argumentation gegen die Benutzung eines Inlineelementes finde ich schon etwas ... ähm ... merkwürdig.
            Aber es sei einmal darauf hingewiesen: Du postest in einem Forum, das sich mit HTML beschäftigt, da sind solche Beckmessereien durchaus an der Tagesordnung.

            reguläre Ausdrücke brauchen länger - ich vermeide sie halt, wo ich kann.

            Das ist Microoptimierung und zu meiden.

            Der Algorithmus war nicht falsch, die Ausgabe hat etwas zu früh abgebrochen.

            Ist aber auch 'ne schwache Ausrede ;-)

            Die Komplexität wächst mit dem Faktor O(nn) = Feststellen der Worthäufigkeit, das Zuordnen mit dem Faktor O(n).
            Ich glaube nicht, daß es einen Alg unter O(nn) gibt.

            Das mußt Du nicht glauben, das kannst Du sogar beweisen.

            Müsste aber mal testen, was du mir genannt hast.

            Das war nur zur einfachen statistischen Feststellung, wieviel sich geändert hat, nicht was und wo genau.
            Die punctsum/whitesum Methoden benötigen O(n), die Levenshtein Methode O(n^2).

            Klar ! - eine Verschiebung ändert den Sinn. Also sollte man sie schon feststellen. Wichtiger ist aber noch, daß man gelöschte und hinzugekommene Wörter unabhängig von der Verschiebung erkennt.

            Warum ist das wichtiger? Nein, ernsthafte Frage: warum meinst Du, das es wichtiger ist?

            Letztlich muß man sich den Text sowieso nochmals durchlesen, um zu sehen, ob er iO ist.

            Deshalb bin ich ja auch der Meinung, das für die Feststellung des Änderungsmaßes einfache statistische Methoden vollkommen ausreichen.
            Wenn Du die Änderungen mit Javascript aufzeigen willst mußt Du mindestens zwei Versionen laden. Bandbreite ist heutzutage das einzige, das wirklich noch kostet deshalb würde ich empfehlen sowas den Server machen zu lassen.

            Meine Idee mit den Ankerpunkten kommt vom einem Alg namens SIFT (Scalable Invariant Feature Transform), der beeindruckend gut gleiche Bildteile auf verschiedenen Bildern erkennt.

            Naja, mich beeindruckt da nichts, das funktioniert nicht wesentlich besser, als vor 10 Jahren. Das finde ich schon etwas enttäuschend.
            Apropos Bilder: wie vergleichst Du die in Javascript?

            Eine ziemlich teure Alarmglocke.
            Aber gut, hast Du ja schon, bräuchtest Du nicht noch extra zu erzeugen.

            Geht so, ich habe Schillers Glocke und die Bürgschaft getestet, auch gegeneinander, und es hat jeweils ne Sekunde gedauert, bis das Ergebniss vorlag.

            In Javascript auf dem Clienten, ja. Was ist mit Serverlast?

            (Du wolltest wahrscheinlich "man sieht sich" o.ä.?)

            Dachte ich eigentlich, daß es das heißt ???

            Latein->Deutsch geht noch ganz gut, nur auf's glatte Eis Deutsch->Latein wage ich mich nicht mehr so gerne ;-)

            so short

            Christoph Zurnieden

            1. Hi,

              Da bin ich halt egoistisch, zudem - ich bin sicher, daß Twilo sich das nicht angeschaut hätte, wenn das Posting an der moralisch richtigen Stelle gestanden hätte.
              Und so hätte ich den Fehler nicht bemerkt.

              Ich habe ihn auch bemerkt, keine Angst.

              Beruhigend - ich habe 20 verschiedene Test gemacht, und habe das einfachste übersehen. Manchmal sehen halt viele Leute mehr als man selbst mit hunderten von verschiedenen Denkansätzen.
              Und ich schätze, wenn ich den fertigen Alg den Kiddies in meinem Forum gebe, dann kommen die auf Ideen, an die ich mein Lebtag nicht gedacht hätte.

              Und warum hast Du nicht einfach direkt ein Inlineelement genommen?

              Auch da hätte ich die CSS-Eigenschaften verändert. Bei beiden die Farbe und beim Ins hätte ich das Underline rausgenommen.

              Nichts gegen kreativen Umgang mit Technik, wahrlich nicht, aber eine derartige Argumentation gegen die Benutzung eines Inlineelementes finde ich schon etwas ... ähm ... merkwürdig.
              Aber es sei einmal darauf hingewiesen: Du postest in einem Forum, das sich mit HTML beschäftigt, da sind solche Beckmessereien durchaus an der Tagesordnung.

              Beckmessereien ? (Error: unbekannter Ausdruck)

              Mit Gewohnheiten bricht man schwer. Bei mir sind DIV mit anschliessender Style-Vergewaltigung zur Normalfall geworden :-(

              reguläre Ausdrücke brauchen länger - ich vermeide sie halt, wo ich kann.

              Das ist Microoptimierung und zu meiden.

              Das wird relevant, wenn du Texte mit über 1000 Smilies in JS formatierst. Und ich habe anscheinend eine ganze Menge solcher User.

              Es geht hier auch um Vorschau und Korrektur.
              Ich speichere ja nicht den fertig formatierten Text ab, sondern den Text mit den Tags. Aus dem ganz einfachen Grund, damit man den Text jederzeit editieren kann. Das bedeutet aber auch, daß jedesmal der Text zur Ansicht aufbereitet werden muß.
              Und dann werden solche Micro-Optimierungen interessant.

              Der Algorithmus war nicht falsch, die Ausgabe hat etwas zu früh abgebrochen.

              Ist aber auch 'ne schwache Ausrede ;-)

              Noch schwächer ist, daß ich den Testfall übersehen habe.
              Wo ich doch noch nicht mal eine einfache Prüfsumme schreiben kann.
              Aber für sowas habe ich zum Glück die Argusaugen der Forummitglieder.

              Die Komplexität wächst mit dem Faktor O(nn) = Feststellen der Worthäufigkeit, das Zuordnen mit dem Faktor O(n).
              Ich glaube nicht, daß es einen Alg unter O(nn) gibt.

              Das mußt Du nicht glauben, das kannst Du sogar beweisen.

              Müsste aber mal testen, was du mir genannt hast.

              Das war nur zur einfachen statistischen Feststellung, wieviel sich geändert hat, nicht was und wo genau.
              Die punctsum/whitesum Methoden benötigen O(n), die Levenshtein Methode O(n^2).

              Suche noch immer eine Website für die punctsum/whitesum Methoden, auf der ich den Algorithmus verstehe :-(
              Für Levenshtein habe ich folgendes gefunden:
              http://www.levenshtein.de/

              Soweit ich sehe ist Levenshtein dem Stepping-Stone (Umladeproblem bzw. der Zuordnungsmatrix) sehr ähnlich (Dazu habe ich mit Google nur PDFs gefunden).
              Die Qualität einer Änderung in Levenshtein ähnelt sehr dem, was ich als Hamming-Abstand kenne
              http://de.wikipedia.org/wiki/Hammingdistanz

              Trotz genauerem Durchlesen von Levenshtein habe ich noch keine Idee, wie ich Levenshtein nutzen kann, um Änderungen von zwei Texten darzustellen. Vorallem habe ich das dumpfe Gefühl, daß Levenshtein zwei Texte absolut vergleicht, bei dem Einfügen eines einzelnen Wortes am Anfang würde der Levenshtein-Abstand sich deutlich erhöhen (um jeweils 1 für jeden diagonalen Sprung - was allen folgenden Wörtern entspricht).

              Klar ! - eine Verschiebung ändert den Sinn. Also sollte man sie schon feststellen. Wichtiger ist aber noch, daß man gelöschte und hinzugekommene Wörter unabhängig von der Verschiebung erkennt.

              Warum ist das wichtiger? Nein, ernsthafte Frage: warum meinst Du, das es wichtiger ist?

              Reine Intuition/Überzeugung:
              Wenn ein Absatz verschoben wird, dann ist die Wahrscheinlichkeit eines groben Sinnfehlers des ganzen Textes geringer als beim Löschen oder Einfügen eines Wortes.
              Wenn es bösartige User gibt, dann glaube ich, daß sie eher Löschen und Hinzufügen.

              Und dann noch das eingestehen einer praktischen Schwäche:
              Ich habe mit der Darstellung einer Verschiebung (bzw. wie man die Änderung deutlich machen kann) ein wenig experimentiert.
              In 'der Glocke' habe ich drei Absätze an eine andere Stelle geschoben.
              Alles was ich benutzt habe, war irgendwie Mist als Darstellung.
              Selbst eine 'erase' und 'copy' Markierung der einzelnen Stellen sah nichts aus und half nichts (bei drei Verschiebungen).
              Meist geht dabei die Übersicht für die Änderungen im verschobenen Abschnitt verloren, und das halte ich für fatal, denn auf diese Weise können wirklich falsche Sachen sich einmogeln (siehe oben - meine Überzeugung).

              Letztlich muß man sich den Text sowieso nochmals durchlesen, um zu sehen, ob er iO ist.

              Deshalb bin ich ja auch der Meinung, das für die Feststellung des Änderungsmaßes einfache statistische Methoden vollkommen ausreichen.

              Sowas wie Summe der absoluten Differenzen von gleichen Worten ?

              Mir geht es um eine Erleichterung beim Auffinden der relevanten Stellen. Wenn man zwei Texte mit 3000 Worten abgleicht, in dem nur ein Schreibfehler verbessert wurde, dann braucht man schon sehr viel Konzentration - finde ich.
              Dieser Algorithmus soll ja dazu dienen, um letztlich Änderungen zu überwachen.

              Wenn Du die Änderungen mit Javascript aufzeigen willst mußt Du mindestens zwei Versionen laden. Bandbreite ist heutzutage das einzige, das wirklich noch kostet deshalb würde ich empfehlen sowas den Server machen zu lassen.

              Was das statische Darstellen von Änderungen angeht, da gebe ich dir Recht.
              Wobei, wenn du die Originalversion und die Änderungsdarstellung überträgst, oder die Originalversion und die geänderte Version, da glaube ich, komme ich im zweiten Fall günstiger.

              Meine Idee ist, daß ich dem Nutzer eine Möglichkeit geben will, Änderungen der Änderungen zu machen. Letztlich ist das eine Art Korrekturüberwachung.
              Dazu hätte ich schon gerne eine dynamische Sofortdarstellung beim User:

              Dem User liegt ein Text vor, den er noch für i.O. hält, und ein Text (den er editieren kann), der nicht i.O. ist. Der User kann ziemlich einfach erkennen, wo er was abändern muß, um das Original wieder herzustellen.

              Wobei ich jetzt mal von folgendem Fall ausgehe:
              1. Originalversion (hohe Qualität)
              2. unfreundlicher User verschmutzt die Version und löscht wichtige Informationen
              3. ein weiterer User bringt sinnvolle Infos ein

              Die Originalversion könnte wieder hergestellt werden, aber die Infos aus 3 wären verloren.

              Wenn jetzt 1 und 3 verglichen werden, dann sieht man von beiden Usern die Änderungen. Wenn man jetzt das Ganze korrigiert, dann hilft es (nach meiner Meinung) enorm, wenn man das Ergebniss der Korrektur sofort anschauen kann.

              Meine Idee mit den Ankerpunkten kommt vom einem Alg namens SIFT (Scalable Invariant Feature Transform), der beeindruckend gut gleiche Bildteile auf verschiedenen Bildern erkennt.

              Naja, mich beeindruckt da nichts, das funktioniert nicht wesentlich besser, als vor 10 Jahren. Das finde ich schon etwas enttäuschend.
              Apropos Bilder: wie vergleichst Du die in Javascript?

              JavaScript kann nicht auf Infos aus Grafiken zugreifen...

              Es gibt da ein Programm namens Autopano, daß letztlich erst Sinn macht mit dem Photo-Stitcher bzw. Panorama-Programm Hugin.
              Autopano sucht erstmal gemeinsame deutliche Bildteile aus mehreren Bildern, um dann sukzessive undeutlichere Bildteile zu vergleichen.

              Eine ziemlich teure Alarmglocke.
              Aber gut, hast Du ja schon, bräuchtest Du nicht noch extra zu erzeugen.

              Die Infos würden bei jedem Submit durch den JS erzeugt (falls sie nicht schon vorliegen).
              Zu jeder Version gäbe es eine Änderungsqualität (Ankerpunkte gemessen an der Gesamtwortzahl des neuen Textes).
              Wie gut das in der Praxis funktioniert und wie aussagekräftig dieser Wert ist wird sich zeigen müssen.

              Geht so, ich habe Schillers Glocke und die Bürgschaft getestet, auch gegeneinander, und es hat jeweils ne Sekunde gedauert, bis das Ergebniss vorlag.

              In Javascript auf dem Clienten, ja. Was ist mit Serverlast?

              ???

              Dürfte dabei bei Null liegen.

              Oder meinst du damit, ich sollte mal den Algorithmus auch in PHP schreiben und dann vergleichen ?

              hasta luego,
              Mathias

              1. Hi,

                Beckmessereien ? (Error: unbekannter Ausdruck)

                Die klassische Bildung läßt aber schwer zu wünschen übrig heutzutage!
                Und faul sind die Leute auch noch!
                http://www.google.de/search?q=Beckmessereien&ie=UTF-8&oe=UTF-8
                Aber gut, zumindest letzteres ist entschuldbar, denn wer im Glashaus sitzt ... ;-)

                reguläre Ausdrücke brauchen länger - ich vermeide sie halt, wo ich kann.

                Das ist Microoptimierung und zu meiden.

                Das wird relevant, wenn du Texte mit über 1000 Smilies in JS formatierst.

                Dann hast Du etwas falsch gemacht. Normalerweise ist ein guter Regex nicht wesentlich langsamer als ein handgeschnitzter Automat.

                Suche noch immer eine Website für die punctsum/whitesum Methoden, auf der ich den Algorithmus verstehe :-(

                Nunja, am Algorithmus gibt es nicht viel zu verstehen. Den habe ich in irgendeiner Zeitschrift gefunden als Vorschlag für eine Spamfilter. Die haben den aber auch irgendwo geklaut. Da das auch noch einige Jahre her ist kann ich Dir wirklich nicht mehr sagen, wer's erfunden hat.
                Google schmeißt zwar einen Link aus, aber das kommt mir zeitlich nicht ganz richtig vor.

                Das Problem ist jedoch zu verstehen, _warum_ es funktioniert und wie Du es für Deine Zwecke anpassen kannst.

                Das Prinzip ist erstmal simpel: die Spammer ändern innerhalb eines Wortes zufällig Buchstaben jedoch nie die Reihenfolge. Leerzeichen und/oder Interpunktion bleiben für gewöhnlich gleich.
                Das kannst Du so nicht benutzen, denn es interessiert Dich ja sehr wohl die Art und Reihenfolge der Buchstaben der Worte zwischen den Leerzeichen und der Interpunktion. Nun trägt aber die deutsche Sprache ihren Sinn bevorzugt am Anfang des Wortes. Somit ist die Erweiterung o.a. fuzzy Checksums auf den ersten folgende Buchstaben statistisch ausreichend. Ob der vorhergehende Buchstabe ebenfalls hinzuzunehmen ist, wäre die Sache einer Probe. Aus dem Bauch raus würde ich das aber bejahen.

                Für Levenshtein habe ich folgendes gefunden:
                http://www.levenshtein.de/

                Merriampark erscheint mir besser.

                Die Qualität einer Änderung in Levenshtein ähnelt sehr dem, was ich als Hamming-Abstand kenne
                http://de.wikipedia.org/wiki/Hammingdistanz

                Ja, die sind sehr eng verwandt.

                Vorallem habe ich das dumpfe Gefühl,

                Gefühl? Du wirst doch wohl noch in der Lage sein Dir aus der Javascript-Funktion und einem Formular mit zwei Textfeldern eine Probiermaschine zu machen?

                Warum ist das wichtiger? Nein, ernsthafte Frage: warum meinst Du, das es wichtiger ist?

                Reine Intuition/Überzeugung:
                Wenn ein Absatz verschoben wird, dann ist die Wahrscheinlichkeit eines groben Sinnfehlers des ganzen Textes geringer als beim Löschen oder Einfügen eines Wortes.

                Bereits zwischen "ist ein" und "ist kein" können 30 Jahre Knast liegen.
                Wenn Du es so genau nehmen möchtest ist jeder Schreibzugriff auf die Datei der Hinweis sich das Dingen anzuschauen.

                Letztlich muß man sich den Text sowieso nochmals durchlesen, um zu sehen, ob er iO ist.

                Deshalb bin ich ja auch der Meinung, das für die Feststellung des Änderungsmaßes einfache statistische Methoden vollkommen ausreichen.

                Sowas wie Summe der absoluten Differenzen von gleichen Worten ?

                Nein, die Betonung lag auch _einfach_! ;-)

                Mir geht es um eine Erleichterung beim Auffinden der relevanten Stellen. Wenn man zwei Texte mit 3000 Worten abgleicht, in dem nur ein Schreibfehler verbessert wurde, dann braucht man schon sehr viel Konzentration - finde ich.
                Dieser Algorithmus soll ja dazu dienen, um letztlich Änderungen zu überwachen.

                Ach, das soll als Editierhilfe dienen?
                Ja, dann sag' das doch auch!
                Manch einer ist da nämlich etwas schwer von Begriff und wundert sich die ganze Zeit, was Du da anstellst ;-)

                Ja, für die Darstellung ist das schonmal ganz gut geeignet. Würde das CSS noch auf Klassen umbauen, damit sich die User das individuell anpassen können.

                Du könntest Dir auch mal folgende Visualisierungsprogramme anschauen (sind alle Opensource, daher gilt das anschauen nicht nur für die hier verlinkten Screenshots ;-)
                http://kdiff3.sourceforge.net/doc/screenshots.html@tile=Kdiff3
                http://www.caffeinated.me.uk/kompare/@tile=Kompare
                http://meld.sourceforge.net/screenshots.html@tile=meld

                Apropos Bilder: wie vergleichst Du die in Javascript?

                JavaScript kann nicht auf Infos aus Grafiken zugreifen...

                Ach! ;-)

                Autopano sucht erstmal gemeinsame deutliche Bildteile aus mehreren Bildern, um dann sukzessive undeutlichere Bildteile zu vergleichen.

                Ja, ist aber schon viiiiel zu kompliziert.

                Geht so, ich habe Schillers Glocke und die Bürgschaft getestet, auch gegeneinander, und es hat jeweils ne Sekunde gedauert, bis das Ergebniss vorlag.

                So ist dieser Benchmark rein gar nix wert, es werden schon einige Eckwerte der Maschine benötigt.

                Aber bei einer modernen Maschine und so kurzen Texten dürfte das wohl hinkommen.

                Oder meinst du damit, ich sollte mal den Algorithmus auch in PHP schreiben und dann vergleichen ?

                Ja (wenn auch nicht unbedingt in PHP ;-), aber da Du das dynamisch haben willst und vor allem etwas ganz anderes, als ich die ganze Zeit dachte hat sich das eh erledigt.

                so short

                Christoph Zurnieden

                1. Hi,

                  zu blöd vernünftige Links zu basteln!

                  Kdiff3
                  Kompare
                  meld

                  'tschuldigung

                  Christoph Zurnieden

                  1. Hi Christoph,

                    nein, diesmal werde ich keinen neuen Thread aufmachen, ich vertraue darauf, daß du durch die Seite scrollst ;-)

                    Dann hast Du etwas falsch gemacht. Normalerweise ist ein guter Regex nicht wesentlich langsamer als ein handgeschnitzter Automat.

                    Wobei nach meiner Überzeugung ein Stringvergleich trotzdem schneller ist als der einfachste Automat.
                    Das Problem ist wahrscheinlich erst der RegExp auf lange Texte. Ich optimiere schon, wo ich kann, nutze keine unnötigen Anker und stattdessen RightContext um den Text nach und nach durchzugehen.
                    RegExp ist aber ansonsten bei mir erste Wahl - ehrlich.

                    Suche noch immer eine Website für die punctsum/whitesum Methoden, auf der ich den Algorithmus verstehe :-(

                    Das Problem ist jedoch zu verstehen, _warum_ es funktioniert und wie Du es für Deine Zwecke anpassen kannst.

                    Die Website (Spam-Schutz) hört sich zum Teil an wie ein angepasster Soundex:
                    "w1ll1ge H@ck3r w@rten auf d1ch"
                    das erinnert mich an die beste Vorlesung aller Zeiten:
                    Kryptographie !!!

                    Habe gerade mit Levenshtein probiert. Und die nüchterne Erkenntnis ist, daß Levenshtein die Worte komplett aus dem Kontext herausreißt. Damit erkennt Levenshtein kaum noch hinzugefügte oder gelöschte Wörter.

                    Reine Intuition/Überzeugung:
                    Wenn ein Absatz verschoben wird, dann ist die Wahrscheinlichkeit eines groben Sinnfehlers des ganzen Textes geringer als beim Löschen oder Einfügen eines Wortes.

                    Bereits zwischen "ist ein" und "ist kein" können 30 Jahre Knast liegen.
                    Wenn Du es so genau nehmen möchtest ist jeder Schreibzugriff auf die Datei der Hinweis sich das Dingen anzuschauen.

                    Genau deswegen finde ich die 'Ankermethode' so schön. 'Ein' und 'Kein' werden als inhaltliche Änderung sofort erkannt.
                    Wird jedoch der ganze Absatz verschoben, so wird die Verschiebung zwar erkannt, aber es wird der Absatz für sich 'im inneren Kontext' verglichen.

                    Natürlich kann man jedes System aushebeln - man kann den Kontext umstricken ohne neue Wörter zu verwenden.
                    Letztendlich bleibt mir nur der Vergleich.

                    Aber ich denke, wie bei jedem brauchbaren Filter, in 90% aller Fälle klingelt die Alarmglocke, und mit dem Rest kann man gut leben.

                    In diesem Zusammenhang, gerade weil du Knast erwähnst, würde mich interessieren, wie sich die Wikipedia gegen Beleidigungen, Falschmeldungen und Unterstellungen wehrt.
                    Oder reicht der einfache Hinweis, daß die Webseite ein Plattform zur öffentlichen Meinung darstellt, und deswegen für die Inhalte nicht verantwortlich ist ?

                    Deshalb bin ich ja auch der Meinung, das für die Feststellung des Änderungsmaßes einfache statistische Methoden vollkommen ausreichen.

                    Sowas wie Summe der absoluten Differenzen von gleichen Worten ?

                    Nein, die Betonung lag auch _einfach_! ;-)

                    Das ist einfach :-D

                    Der Filter soll ja in erster Linie die mutwillige Zerstörung des Textes feststellen - dazu zählt neben dem Löschen auch ein komplettes Ersetzen durch einen anderen Text.

                    Hingegen glaube ich nicht, daß man subtile Änderungen (die ja letzlich viel bewirken) automatisch nach gut oder schlecht unterscheiden kann. Dazu wird ein Mensch notwendig sein.

                    Mir geht es um eine Erleichterung beim Auffinden der relevanten Stellen. Wenn man zwei Texte mit 3000 Worten abgleicht, in dem nur ein Schreibfehler verbessert wurde, dann braucht man schon sehr viel Konzentration - finde ich.
                    Dieser Algorithmus soll ja dazu dienen, um letztlich Änderungen zu überwachen.

                    Ach, das soll als Editierhilfe dienen?
                    Ja, dann sag' das doch auch!
                    Manch einer ist da nämlich etwas schwer von Begriff und wundert sich die ganze Zeit, was Du da anstellst ;-)

                    Geht wahrscheinlich beides Hand in Hand.
                    Wenn ich mir bei Wiki das System des Versionstracking anschaue, dann nimmt man zwei Versionen und bekommt die Unterschiede ausgeschmissen.
                    Und das noch nicht mal so besonders brauchbar, finde ich.

                    Letztlich kann man damit aber feststellen, was sich in den einzelnen Versionen an relevanten Information geändert hat.

                    Das Editieren ist vielleicht dabei sehr wichtig. Was ich mir dabei immer vorstelle ist, daß man verlorengegangene Information aus früheren Versionen wieder rekonstruiert:
                    A. enthält die Informationen
                    B. ein Teil der Infos werden gelöscht
                    C. neue Infos kommen dazu

                    Wenn man jetzt eine neue Version auf der Basis von C erstellt, aber A als Vergleich nimmt, so bekommt man die alten Infos angezeigt, man muß sie jetzt halt wieder einfügen.
                    Jede Kontrolle muß ja auch einhergehen mit einer Korrektur, es ist zwar schön, wenn man einen Fehler entdeckt, aber es wäre dann nur akademisch, wenn man ihn nicht auch korrigieren könnte.

                    Ja, für die Darstellung ist das schonmal ganz gut geeignet. Würde das CSS noch auf Klassen umbauen, damit sich die User das individuell anpassen können.

                    Das mache ich auf jeden Fall, etwa Luxus muß ja sein.

                    Du könntest Dir auch mal folgende Visualisierungsprogramme anschauen (sind alle Opensource, daher gilt das anschauen nicht nur für die hier verlinkten Screenshots ;-)
                    http://kdiff3.sourceforge.net/doc/screenshots.html@tile=Kdiff3
                    http://www.caffeinated.me.uk/kompare/@tile=Kompare
                    http://meld.sourceforge.net/screenshots.html@tile=meld

                    Die Links sind allererste Sahne, die Programme habe ich auch so dringenst gebraucht !!!

                    Lediglich für eine Website kann man die nicht einbinden...

                    Bei allem gehe ich davon aus, daß die ganze Sache, also auch die Kontrolle, durch den User auf einem Browser stattfinden kann.
                    Und ich gehe mal davon aus, daß es mehr anständige als unanständige User gibt.
                    Daher will ich kein rein administratives, sondern eher ein redaktionelles Werkzeug haben, das jeder nutzen kann.

                    Was ich dann als der Admin mache ist, daß ich eventuell User aussperre oder ein 'Karma' steuere, mehr aber auch nicht.

                    hasta luego,
                    Mathias Weitz

                    1. Hi,

                      Wobei nach meiner Überzeugung ein Stringvergleich trotzdem schneller ist als der einfachste Automat.

                      Das wage ich aber schwer zu bezweifeln ;-)
                      (Der einfachste Automat ist der, der nix macht. So rein aus dem Bauch raus würde ich doch annehmen, das der schneller wäre)

                      Die Website (Spam-Schutz) hört sich zum Teil an wie ein angepasster Soundex:

                      Hat mit Soundex nichts zu tun, funktioniert anders. Aber das Prinzip des gewollt kollisionsreichen Hashings ist das gleiche, klar.

                      Habe gerade mit Levenshtein probiert. Und die nüchterne Erkenntnis ist, daß Levenshtein die Worte komplett aus dem Kontext herausreißt. Damit erkennt Levenshtein kaum noch hinzugefügte oder gelöschte Wörter.

                      Wenn Du den auf die Buchstaben anwendest ist das nur natürlich. Du mußt den schon auf das Alphabet anpassen, das Du benutzen möchtest.
                      Aber alleine schon wegen der Lahmheit würde ich den nur auf sehr kurze Stücke Text benutzen.

                      Genau deswegen finde ich die 'Ankermethode' so schön. 'Ein' und 'Kein' werden als inhaltliche Änderung sofort erkannt.

                      Alle anderen Methoden würden das auch als Änderung erkennen.

                      In diesem Zusammenhang, gerade weil du Knast erwähnst, würde mich interessieren, wie sich die Wikipedia gegen Beleidigungen, Falschmeldungen und Unterstellungen wehrt.

                      In dem sie die umgehend korrigieren. Alle Artikel unterliegen ständiger Beobachtung.

                      Oder reicht der einfache Hinweis, daß die Webseite ein Plattform zur öffentlichen Meinung darstellt, und deswegen für die Inhalte nicht verantwortlich ist ?

                      Nein, von der Verantwortung kannst Du Dich auch als Herausgeber nicht befreien. Du mußt regelmäßig nachschauen, damit Du "zeitnah" reagieren kannst.
                      Die Definition von "zeitnah" schwankt etwas, aber mit "einmal täglich" sollte es bedient sein.
                      Vorsicht wenn Du von Dritten informiert wirst, dann mußt Du deutlich schneller reagieren.

                      Der Filter soll ja in erster Linie die mutwillige Zerstörung des Textes feststellen - dazu zählt neben dem Löschen auch ein komplettes Ersetzen durch einen anderen Text.

                      Das kann kein Filter, das kann nur ein Mensch.
                      Wenn es tatsächlich Befürchtungen gibt, das erheblicher(!) Mißbrauch betrieben werden könnte muß eben _jeder_ Artikel geprüft werden. Wie das bei Wikipedia fast schon der Fall ist.

                      Wenn ich mir bei Wiki das System des Versionstracking anschaue, dann nimmt man zwei Versionen und bekommt die Unterschiede ausgeschmissen.
                      Und das noch nicht mal so besonders brauchbar, finde ich.

                      Ja, das ist ziemlich besch...eiden, stimmt. Aber das kannst Du ja ändern und tust das auch bereits.

                      Lediglich für eine Website kann man die nicht einbinden...

                      Klar kann man die einbinden, oder was meinst Du jetzt?

                      Daher will ich kein rein administratives, sondern eher ein redaktionelles Werkzeug haben, das jeder nutzen kann.

                      Ich glaube man sollte das einmal etwas aufdröseln, das wird mir hier etwas zu durcheinander. Ist aber kein Vorwurf, ich bin ja auch nicht besser ;-)

                      • Du möchtest also ein Wiki basteln
                      • Du möchtest eine Warnung bekommen, wenn die Qualität der
                          Änderung der Artikel ein gewisses Maß überschreitet.
                      • Du möchtest ein bequemes Browser-Frontend für den Benutzer,
                          das die Unterschiede zwischen den Versionen optisch
                          aufzeigt.

                      Um ein Wiki überhaupt basteln zu können braucht es ein aktives Backend: irgendeine Programmiersprache und die Möglichkeit etwas zu speichern. Da kannst Du zur Not etwas Fertiges nehmen, es ist aber mehr als einfach, das hast Du schneller selber gemacht.
                      Wenn Du besagte Warnung ausstoßen möchtest, mußt Du die Qualität messen können. Das gelingt aber nicht, das kann kein Computer, zumindest jetzt noch nicht. Es müssen also Menschen machen.
                      Für das Browserfrontend würde ich das nehmen, das Du jetzt schon hast, das ist i.O. und wenn die letzten Gimmiks eingebaut sind auch schon deutlich mehr als nur i.O.

                      Bleibt also nur noch der Alarm übrig. Da wolltest Du die vom Frontend erzeugten Diffs benutzen, das geht natürlich nicht, da sie vom Clienten erzeugt wurden. Entweder portierst Du den Algorithmus auf die Sprache des Wikiservers, was dann aber die Flexibilität der Clientimplementation brach legen würde oder Du siehst es ein, das es sich nunmal um ein nicht-technisches Problem handelt. Wenn die Mitglieder Deiner Community (fleißig) mitarbeiten brauchst Du Dich normalerweise um rein gar nichts mehr zu kümmern.

                      Meine Meinung ist also, das Du fertig bist mit dem technischem Teil (zumindest mit der Grundidee, 'was zu verbessern findet sich ja eh immer ;-), kümmere Dich um den Aufbau der Community, das ist schwierig genug. Kleiner Tip dazu von mir noch auf den Weg: sei pragmatisch. Laß Dich nicht von anderer Leite Aufgeregtheit anstecken, es ist seltenst etwas dahinter.

                      so short

                      Christoph Zurnieden

                      1. Hi Christoph,

                        Also - ich habe Levenshtein und White/Blacksum erstmal ad acta gelegt.
                        Der SIFT-Algoritmus (so nenne ich ihn mal) erweist sich als sehr schnell und lässt sich auch durch kleine Gemeinheiten nicht aus dem Konzept bringen.
                        Schwieriger ist es erwartungsgemäß mit einer Qualitätsbewertung der Änderung, hier können eher nur quantitative als qualitative Merkmale bewertet werden.

                        Die Änderungsüberwachung habe ich reduziert - so bleibt eine Änderung bis zu ihrer Genehmigung erstmal nicht öffentlich.
                        Texte, die geändert wurden und noch auf Genehmigung warten können nur noch von der entsprechenden Person selber korrigiert werden.
                        Alle anderen Personen sehen die letzte offizielle Version sowie den Hinweis, daß die Version sich in Bearbeitung befindet.

                        Auch kann immer nur die letzte Version bearbeitet werden.
                        Somit bleibt die Linearität erhalten.
                        Eine Versionshistorie wird es geben, aber ich glaube, sie wird unter diesen Bedingungen nicht so die Bedeutung haben. Letztlich zählt die letzte Version.

                        • Du möchtest also ein Wiki basteln
                        • Du möchtest eine Warnung bekommen, wenn die Qualität der
                            Änderung der Artikel ein gewisses Maß überschreitet.
                        • Du möchtest ein bequemes Browser-Frontend für den Benutzer,
                            das die Unterschiede zwischen den Versionen optisch
                            aufzeigt.

                        stimmt alles

                        Um ein Wiki überhaupt basteln zu können braucht es ein aktives Backend: irgendeine Programmiersprache und die Möglichkeit etwas zu speichern. Da kannst Du zur Not etwas Fertiges nehmen, es ist aber mehr als einfach, das hast Du schneller selber gemacht.
                        Wenn Du besagte Warnung ausstoßen möchtest, mußt Du die Qualität messen können. Das gelingt aber nicht, das kann kein Computer, zumindest jetzt noch nicht. Es müssen also Menschen machen.
                        Für das Browserfrontend würde ich das nehmen, das Du jetzt schon hast, das ist i.O. und wenn die letzten Gimmiks eingebaut sind auch schon deutlich mehr als nur i.O.

                        Das Browserfrontend ist mit JavaScript programmiert, und sollte eigentlich auf den meisten Browsern laufen.
                        Das Frontend bietet eine fertige formatiert Endansicht der Eingabe, sowie eine Differenzansicht (sowohl formatiert als auch im Plaintext)

                        Bleibt also nur noch der Alarm übrig. Da wolltest Du die vom Frontend erzeugten Diffs benutzen, das geht natürlich nicht, da sie vom Clienten erzeugt wurden. Entweder portierst Du den Algorithmus auf die Sprache des Wikiservers, was dann aber die Flexibilität der Clientimplementation brach legen würde oder Du siehst es ein, das es sich nunmal um ein nicht-technisches Problem handelt. Wenn die Mitglieder Deiner Community (fleißig) mitarbeiten brauchst Du Dich normalerweise um rein gar nichts mehr zu kümmern.

                        Auch da habe ich eine Lösung: vor jedem Submit wird der Algorithmus aufgerufen, und der befüllt mit dem Ergebniss der Alarmprüfung ein Inputfeld, daß ausserhalb der Sicht steht (sich aber logischerweise innerhalb des Formulars befindet).
                        Somit wird das Ergebniss aus dem Frontend mitgeliefert.

                        Meine Meinung ist also, das Du fertig bist mit dem technischem Teil (zumindest mit der Grundidee, 'was zu verbessern findet sich ja eh immer ;-), kümmere Dich um den Aufbau der Community, das ist schwierig genug. Kleiner Tip dazu von mir noch auf den Weg: sei pragmatisch. Laß Dich nicht von anderer Leite Aufgeregtheit anstecken, es ist seltenst etwas dahinter.

                        Auch wenn die Grundidee schon zu sehen ist, so wird das ausgefeilte Ergebniss einige Schmankerl aufweisen.
                        Schon jetzt verfügt das Programm über ein WYSIWYG Fenster (in einer div), in dem man per Tastendruck eine sofortige Vorschau hat.
                        Man kann per BBCodes Grafiken als Float einbinden und die Größe verändern, die dann auch in der Vorschau erscheinen.
                        Die Änderungen werden auch in dem Vorschaumode noch angezeigt (soweit es geht).
                        Mein Anspruch ist, daß man eine wirklich optisch ansprechende Seite (die ich mir noch raussuchen werde) im Wiki-System nachgestalten kann. Und logischerweise soll die Beschreibung des Wiki-Systems auch im Wiki-System erfolgen.

                        Das, was man mit der Wikipedia-Formatierung kann ist ja auch schon Wahnsinn.

                        So weit danke ich dir, würde dir zu gerne bald das Ergebniss vorstellen.

                        Fehlt letztlich nur noch ein Punkt: was für Themen kann man Jugendlichen auf einer Partyseite anbieten, die schon bei der Rechtschreibung ihre Probleme haben ???

                        So long, Mathias Weitz

                        1. Hi,

                          Also - ich habe Levenshtein und White/Blacksum erstmal ad acta gelegt.

                          Ja, nachdem ich erstmal Dein Ansinnen verstanden habe ist sowas alles hinfällig klar ;-)

                          Der SIFT-Algoritmus (so nenne ich ihn mal) erweist sich als sehr schnell und lässt sich auch durch kleine Gemeinheiten nicht aus dem Konzept bringen.

                          Ich bin ja immer noch der Meinung, das das schon viel zu viel ist. Denn ...

                          Schwieriger ist es erwartungsgemäß mit einer Qualitätsbewertung der Änderung, hier können eher nur quantitative als qualitative Merkmale bewertet werden.

                          ... die Qualität der Änderungen kann ja nur ein Mensch bewerten, deshalb ist einfach _jede_ Änderung zu prüfen. Vorherige komplizierte Algorithmen sind völlig nutzlos, es reicht ein einfacher Vergleich der Buchstaben, der direkt beim erstem geändertem Buchstaben Alarm schlägt und nur vollkommen ungeändertes durchläßt.
                          Aber es scheint ja, das Du das auch getan hast.

                          Die Änderungsüberwachung habe ich reduziert - so bleibt eine Änderung bis zu ihrer Genehmigung erstmal nicht öffentlich.

                          Naja, wäre mir zu brutal aber ich kenne ja Deine Communitzy nicht, ich kann mir durchaus Gruppen vorstellen, wo das sinnvoll sein kann.
                          Aber ob ich die beaufsichtigen wollte und das auch noch freiwillig? ;-)

                          Auch kann immer nur die letzte Version bearbeitet werden.
                          Somit bleibt die Linearität erhalten.

                          Ja, so kann man auch das Problem der Verzweigungen lösen ;-)
                          Aber ist in Ordnung. Lieber gar nicht, als irgendwas Halbgehangenes wie es bei MS so beliebt scheint.

                          Eine Versionshistorie wird es geben, aber ich glaube, sie wird unter diesen Bedingungen nicht so die Bedeutung haben. Letztlich zählt die letzte Version.

                          Oh, sag' das nicht, so eine Historie kann recht aufschlußreich sein!

                          Für das Browserfrontend würde ich das nehmen, das Du jetzt schon hast, das ist i.O. und wenn die letzten Gimmiks eingebaut sind auch schon deutlich mehr als nur i.O.

                          Das Browserfrontend ist mit JavaScript programmiert, und sollte eigentlich auf den meisten Browsern laufen.

                          Nein, es läuft auf den meisten Browsern nicht, denn die meisten Browser können gar kein Javascript. Du meinst die weitverbreitesten Browser. Selbst da kann man Javascript ausschalten, aber ich kenne Deine Zielgruppe ja nicht. Normalerweise würde ich als Notfallrücklage ein simples Affenformular zum Editieren anbieten. Wenn Dein Publikum _sehr_ jugendlich ist, können die dann auch mit dem Handy editieren ;-)

                          Auch da habe ich eine Lösung: vor jedem Submit wird der Algorithmus aufgerufen, und der befüllt mit dem Ergebniss der Alarmprüfung ein Inputfeld, daß ausserhalb der Sicht steht (sich aber logischerweise innerhalb des Formulars befindet).
                          Somit wird das Ergebniss aus dem Frontend mitgeliefert.

                          Das kannst Du aber nur wegschmeißen. Du kannst nichts was vom Clienten kommt ausreichend vertrauen, Beschiss ist hier einfach zu leicht möglich. Man ist zwar häufig dazu gezwungen, aber dann hat man auch vorher Kosten und Nutzen sorgfältig kalkuliert. Hier ist der Nutzen nicht vorhanden, die Kosten sind jedoch größer Null. Mit etwas krimineller Energie kann der Nutzer Dir ganz schön die Hölle heiß machen.

                          Also: nix vom Clienten übernhmen, alles schön selber machen. Ist ja auch nicht viel, denn Du brauchst Deinen komplexen Algorithmus nicht, nur eine sehr simple Prüfung auf Änderung. Das könnte zur Not sogar Dein Dateisystem übernehmen.

                          Man kann per BBCodes Grafiken als Float einbinden und die Größe verändern, die dann auch in der Vorschau erscheinen.

                          BTW: hast Du auch einen Größenbegrenzer in den Upload eingebaut? Wird nämlich gerne mal vergessen, ich kenn' das ;-)

                          So weit danke ich dir, würde dir zu gerne bald das Ergebniss vorstellen.

                          "Release early and often!" heißt's.

                          Fehlt letztlich nur noch ein Punkt: was für Themen kann man Jugendlichen auf einer Partyseite anbieten, die schon bei der Rechtschreibung ihre Probleme haben ???

                          Kurse in Rechtschreibung? >;->

                          Nein, tut mir leid, ich bin schon ein alter Sack, kenne die heutige Jugend nicht und kann nur sagen, worüber wir uns damals informiert haben: wo die Getränke billig sind, die Musik gut, live aber vor allem laut ist und die geschlechtliche Mischung gut durchwachsen. Ich bezweifele aber arg, das sich das in wesentlichen Punkten geändert haben könnte ;-)

                          so short

                          Christoph Zurnieden

                          1. Hi Christoph,

                            momentan bin ich nicht mehr in den Tiefen eines Vergleichsalgorithmus, sondern mehr in der Organisation um die Seite herum.

                            zB. eine Sache zur Beachtung ist, daß bei einer neuen ungenehmigten Version einer Seite alle User die letzte genehmigte Seite aufrufen, bis auf den Authoren (und den Admin).
                            Der Author soll diese Seite beliebig lange nachbearbeiten können, bis sie halt genehmigt wird.

                            Inzwischen untescheide ich auch zwischen Hauptseiten und Seiten, die nur durch Links innerhalb einer Seite erreichbar sind.
                            Damit will ich die Seitenzahl im Hauptportal etwas übersichtlich halten.

                            Was die automatische Überwachung angeht, so kann ich erstmal nichts sagen, da muß ich noch viele Tests machen.

                            Auch da habe ich eine Lösung: vor jedem Submit wird der Algorithmus aufgerufen, und der befüllt mit dem Ergebniss der Alarmprüfung ein Inputfeld, daß ausserhalb der Sicht steht (sich aber logischerweise innerhalb des Formulars befindet).
                            Somit wird das Ergebniss aus dem Frontend mitgeliefert.

                            Das kannst Du aber nur wegschmeißen. Du kannst nichts was vom Clienten kommt ausreichend vertrauen, Beschiss ist hier einfach zu leicht möglich. Man ist zwar häufig dazu gezwungen, aber dann hat man auch vorher Kosten und Nutzen sorgfältig kalkuliert. Hier ist der Nutzen nicht vorhanden, die Kosten sind jedoch größer Null. Mit etwas krimineller Energie kann der Nutzer Dir ganz schön die Hölle heiß machen.

                            Also: nix vom Clienten übernhmen, alles schön selber machen. Ist ja auch nicht viel, denn Du brauchst Deinen komplexen Algorithmus nicht, nur eine sehr simple Prüfung auf Änderung. Das könnte zur Not sogar Dein Dateisystem übernehmen.

                            Das Input-Feld wird dynamisch erzeugt und ist nicht sichtbar.
                            Da muß sich einer schon verdammt gut mit JS auskennen um das Feld zu entdecken.
                            Irgendwo muß ich auch mal darauf vertrauen, daß die Leute nicht allzu genial sind.

                            Man kann per BBCodes Grafiken als Float einbinden und die Größe verändern, die dann auch in der Vorschau erscheinen.

                            BTW: hast Du auch einen Größenbegrenzer in den Upload eingebaut? Wird nämlich gerne mal vergessen, ich kenn' das ;-)

                            Ja klar.

                            Aber die Bilder werden nicht hochgeladen, sondern verlinkt:
                            [img]http://www.irgendwas.de/bild.jpg[/img]
                            Letztlich halte ich auf diese Weise Traffic und Speicher klein.
                            Problematisch ist das Verwenden von Bildern, auf die ein Urheberrecht besteht. Da muß ich halt sehr genau aufpassen, aber dafür sieht man ja auch die Bildadresse.

                            Fehlt letztlich nur noch ein Punkt: was für Themen kann man Jugendlichen auf einer Partyseite anbieten, die schon bei der Rechtschreibung ihre Probleme haben ???

                            Kurse in Rechtschreibung? >;->

                            Verwendung der Umgangssprache ?
                            Manchmal weiß ich nämlich nicht, ob die sich Beleidigungen unter die Bilder in der Galerie schreiben oder nicht.

                            Nein, tut mir leid, ich bin schon ein alter Sack, kenne die heutige Jugend nicht und kann nur sagen, worüber wir uns damals informiert haben: wo die Getränke billig sind, die Musik gut, live aber vor allem laut ist und die geschlechtliche Mischung gut durchwachsen. Ich bezweifele aber arg, das sich das in wesentlichen Punkten geändert haben könnte ;-)

                            Nicht erst seit Crazy Frog habe ich aufgegeben, die Jugendkultur zu verstehen. Zum Glück läuft 'Per Anhalter durch die Galaxie' im Kino.

                            Also - don't Panic,
                            Mathias Weitz

                            1. Hi,

                              momentan bin ich nicht mehr in den Tiefen eines Vergleichsalgorithmus, sondern mehr in der Organisation um die Seite herum.

                              Ja, so eine Website hat immer viel Baustellen ;-)

                              Der Author soll diese Seite beliebig lange nachbearbeiten können, bis sie halt genehmigt wird.

                              Nein, würde ich nicht machen sondern eine kurze Fristsetzen. UInd/oder mehreren Personen die gleichzeitige Bearbeitung erlauben. Ansonsten kann sowas ewig dauern.

                              Was die automatische Überwachung angeht, so kann ich erstmal nichts sagen, da muß ich noch viele Tests machen.

                              Du hast Dich ganz schön verrannt in Deinen Algorithmus, was?

                              Also: nix vom Clienten übernhmen, alles schön selber machen. Ist ja auch nicht viel, denn Du brauchst Deinen komplexen Algorithmus nicht, nur eine sehr simple Prüfung auf Änderung. Das könnte zur Not sogar Dein Dateisystem übernehmen.

                              Das Input-Feld wird dynamisch erzeugt und ist nicht sichtbar.
                              Da muß sich einer schon verdammt gut mit JS auskennen um das Feld zu entdecken.

                              Er muß nur Mozillas Dominspektor die Seite zum Fraß vorwerfen, dann sieht er sie schon. Ausführliche Kenntnisse in Javascript siond dafür nicht notwendig.

                              Irgendwo muß ich auch mal darauf vertrauen, daß die Leute nicht allzu genial sind.

                              Dui bist in der Öffentlichkeit und auch noch im Internet, da reicht es vollkommen, wenn es einer schafft und verbreitet.

                              Nein, niemals, ich wiederhole: niemals Informationen vom Clienten vertrauen!

                              Aber die Bilder werden nicht hochgeladen, sondern verlinkt:
                              [img]http://www.irgendwas.de/bild.jpg[/img]

                              Mmh...

                              Letztlich halte ich auf diese Weise Traffic und Speicher klein.
                              Problematisch ist das Verwenden von Bildern, auf die ein Urheberrecht besteht. Da muß ich halt sehr genau aufpassen, aber dafür sieht man ja auch die Bildadresse.

                              Ich befürchte das Urheberrecht ist dabei das geringstmögliche Problem. Es kommt aber auch auf Deine Community an, wie gut deren Selbstreinugungskräfte sind.
                              Ansonsten mußt Du in den sauren Apfel beißen und wirklich Uploads benutzen, damit Du die Bilder kontrollieren kannst. Es kostet natürlich Bandbreite, aber das kann man im Rahmen halten.

                              Verwendung der Umgangssprache ?
                              Manchmal weiß ich nämlich nicht, ob die sich Beleidigungen unter die Bilder in der Galerie schreiben oder nicht.

                              Ja, man ist verdammt schnell raus aus der Jugendzeit mit ihrer propietären Sprache, gell? ;-)

                              Nicht erst seit Crazy Frog habe ich aufgegeben, die Jugendkultur zu verstehen.

                              Ach komm: in Diener und in meiner Jugend gab es doch auch solche Dinger, oder? ;-)

                              Zum Glück läuft 'Per Anhalter durch die Galaxie' im Kino.

                              Du hast ihn noch nicht gesehen, oder? Ich auch noch nicht, aber die allgemeine Meinung tendiert wohl leider zu "Die ham's versaut".
                              Aber so wie ich mich kenne, werd' ich ihn mir trotzdem antun.

                              so short

                              Christoph Zurnieden

                              1. Hi,

                                momentan bin ich nicht mehr in den Tiefen eines Vergleichsalgorithmus, sondern mehr in der Organisation um die Seite herum.

                                Ja, so eine Website hat immer viel Baustellen ;-)

                                Logische Fehler in der Organisation der Webseite.
                                Momentan bin ich eine Lösung am Suchen, die das gleichzeitige Schreiben von Artikeln effizient verhindern soll.
                                Am einfachsten wäre da zB das Anfordern einer Arbeitsversion.
                                Der Author selber soll natürlich keine Arbeitsversion anfordern müssen.
                                Das ist aber nur eines von vielen kleinen Problemen.

                                Der Author soll diese Seite beliebig lange nachbearbeiten können, bis sie halt genehmigt wird.

                                Nein, würde ich nicht machen sondern eine kurze Fristsetzen. UInd/oder mehreren Personen die gleichzeitige Bearbeitung erlauben. Ansonsten kann sowas ewig dauern.

                                Hängt vom dem beaufsichtigendem Redakteur ab.
                                Ich kann mir ja jederzeit die Versionen abrufen, die als in Arbeit gemeldet sind.
                                Wenn eine Version seit zwei Stunden nicht mehr geändert wurde, dann kann ich sie nach Prüfung als aktuell einstellen und zur allgemeinen Bearbeitung freigeben.

                                Was die automatische Überwachung angeht, so kann ich erstmal nichts sagen, da muß ich noch viele Tests machen.

                                Du hast Dich ganz schön verrannt in Deinen Algorithmus, was?

                                Letztlich kommt jede Änderung bei mir auf den Tisch.
                                Der Link, der die Versionen genehmigt ist so angebracht, daß ich beide Versionen vorliegen habe, sowohl in ihrer endgültigen Darstellung als auch als Vergleich.

                                Wie eine automatische Überwachung unterstützen kann ist für mich fraglicher denn je.

                                Also: nix vom Clienten übernhmen, alles schön selber machen. Ist ja auch nicht viel, denn Du brauchst Deinen komplexen Algorithmus nicht, nur eine sehr simple Prüfung auf Änderung. Das könnte zur Not sogar Dein Dateisystem übernehmen.

                                Das Input-Feld wird dynamisch erzeugt und ist nicht sichtbar.
                                Da muß sich einer schon verdammt gut mit JS auskennen um das Feld zu entdecken.

                                Er muß nur Mozillas Dominspektor die Seite zum Fraß vorwerfen, dann sieht er sie schon. Ausführliche Kenntnisse in Javascript siond dafür nicht notwendig.

                                »»

                                Frisst der auch Elemente, die erst zur Laufzeit entstehen ?

                                Habe ein Bildergrapper geschrieben, der fast jede Pornoseite knackt, indem er einfach nur den Links folgt, die irgendwo auf der Seite versteckt sind.
                                Werde irgendwann das Programm bei SourceForge.net einstellen.
                                Bin mal gespannt auf die Reaktion.
                                Wenn dieses Programm meine Seite nicht mehr knackt, dann habe ich (abgesehen von Tricks) zumindest die Sicherheit von einer xxx-Seite

                                Aber die Bilder werden nicht hochgeladen, sondern verlinkt:
                                [img]http://www.irgendwas.de/bild.jpg[/img]

                                Mmh...

                                »»
                                Ist Standart für zB. BBCodes,
                                auch da kann man böse sein, und das Bild nach der Genehmigung austauschen durch ein verbotenes Bild.
                                Wer das Bild nicht gecached hat, der wird also das neue Bild sehen.

                                Aber anscheinend stört diese Schwäche viele Leute, die BBCodes anbieten, nicht.

                                Letztlich halte ich auf diese Weise Traffic und Speicher klein.
                                Problematisch ist das Verwenden von Bildern, auf die ein Urheberrecht besteht. Da muß ich halt sehr genau aufpassen, aber dafür sieht man ja auch die Bildadresse.

                                Ich befürchte das Urheberrecht ist dabei das geringstmögliche Problem. Es kommt aber auch auf Deine Community an, wie gut deren Selbstreinugungskräfte sind.

                                Ja, das Melden eines Artikels mit Begründung fehlt noch :-(

                                Nicht erst seit Crazy Frog habe ich aufgegeben, die Jugendkultur zu verstehen.

                                Ach komm: in Diener und in meiner Jugend gab es doch auch solche Dinger, oder? ;-)

                                Ja, ähnlich, wir haben wie die Süchtigen Hanuta gekauft, weil dort die Bilder aller Spieler zu WM ('82 ?) drinnen war.
                                Es kam dann bei uns auf dem Schulhof zu professionellen Tauschgeschäften mit Wertfindung wie bei Aktienkursen.
                                Und natürlich haben wir viel Geld dafür ausgegeben.

                                Zum Glück läuft 'Per Anhalter durch die Galaxie' im Kino.

                                Du hast ihn noch nicht gesehen, oder? Ich auch noch nicht, aber die allgemeine Meinung tendiert wohl leider zu "Die ham's versaut".
                                Aber so wie ich mich kenne, werd' ich ihn mir trotzdem antun.

                                Nein, noch nicht.
                                Ich befürchte aber auch, daß in der Produktion zuviel Amerika und zu wenig England steckt.

                                CU Mathias

                                1. Hi,

                                  Logische Fehler in der Organisation der Webseite.

                                  Kann passieren, hauptsache das Problem ist schonmal erkannt ;-)

                                  Momentan bin ich eine Lösung am Suchen, die das gleichzeitige Schreiben von Artikeln effizient verhindern soll.
                                  Am einfachsten wäre da zB das Anfordern einer Arbeitsversion.
                                  Der Author selber soll natürlich keine Arbeitsversion anfordern müssen.
                                  Das ist aber nur eines von vielen kleinen Problemen.

                                  Bevor Du Dich da zu sehr verzettelst pack erstmal 'was einfaches rein, meinetwegen ein "first comes, first serves". Das ist nicht sonderlich elegant funktioniert aber erstmal.

                                  Hängt vom dem beaufsichtigendem Redakteur ab.

                                  Gut, wenn es eine ständige Aufsicht gibt hast Du Dir schonmal einen ganzen Wust Probleme vom Hals geschafft.

                                  Ich kann mir ja jederzeit die Versionen abrufen, die als in Arbeit gemeldet sind.
                                  Wenn eine Version seit zwei Stunden nicht mehr geändert wurde, dann kann ich sie nach Prüfung als aktuell einstellen und zur allgemeinen Bearbeitung freigeben.

                                  Ja, das ist Geschmacksache das Locking nur auf Schreiben oder auf's Lesen/Schreiben auszudehnen. "It depends", wie der US-Amerikaner zu sagen pflegt.

                                  Wie eine automatische Überwachung unterstützen kann ist für mich fraglicher denn je.

                                  Ich würde es, wie schon mehrfach gesagt, auf das Mindeste beschränken: "wurde zum Schreiben geöffnet" und "wurde mit Änderung unbekannter Größe und Qualität gespeichert". Die Zeit, die dabei draufgeht aufwendigere Algorithmen zu implementieren kann erstmal(!) besser genutzt werden.

                                  Er muß nur Mozillas Dominspektor die Seite zum Fraß vorwerfen, dann sieht er sie schon. Ausführliche Kenntnisse in Javascript siond dafür nicht notwendig.
                                  Frisst der auch Elemente, die erst zur Laufzeit entstehen ?

                                  Ja.
                                  Unterschätze auch nie Zeit und Geduld der Kiddies!

                                  Aber die Bilder werden nicht hochgeladen, sondern verlinkt:
                                  [img]http://www.irgendwas.de/bild.jpg[/img]

                                  Mmh...
                                  »»
                                  Ist Standart für zB. BBCodes,
                                  auch da kann man böse sein, und das Bild nach der Genehmigung austauschen durch ein verbotenes Bild.

                                  Ja, das meinte ich. Das kann durchaus mal Ärger geben. Müssen dabei nicht gleich irgendwelche Schweinereien sein, Werbung reicht da schon.

                                  Wer das Bild nicht gecached hat, der wird also das neue Bild sehen.
                                  Aber anscheinend stört diese Schwäche viele Leute, die BBCodes anbieten, nicht.

                                  Nun, Transfer ist nunmal teuer.

                                  so short

                                  Christoph Zurnieden

                                  1. hi Christoph,

                                    danke dir, daß du noch immer nach hier unten scrollst...

                                    Logische Fehler in der Organisation der Webseite.

                                    Kann passieren, hauptsache das Problem ist schonmal erkannt ;-)

                                    Wenn man drüber stolpert, aber ich habe inzwischen eine ziemliche Abneigung gegen meine eigene Website entwickelt.
                                    Weswegen ich hoffe, daß die Wiki akzeptiert wird.
                                    Denn ich habe keine Lust, so wie viele andere Websites, ständig irgendwelche Infos zusammenzutragen.

                                    Wie eine automatische Überwachung unterstützen kann ist für mich fraglicher denn je.

                                    Ich würde es, wie schon mehrfach gesagt, auf das Mindeste beschränken: "wurde zum Schreiben geöffnet" und "wurde mit Änderung unbekannter Größe und Qualität gespeichert". Die Zeit, die dabei draufgeht aufwendigere Algorithmen zu implementieren kann erstmal(!) besser genutzt werden.

                                    Momentan unterscheide ich zwischen Hilfen und Kontrollen.
                                    Ich glaube, auf Dauer werden die Kontrollen wichtiger.
                                    Und das wird so gehen, daß es erstmal einen Button gibt, der den Text überprüft, und dann mit entsprechenden Mahnungen den Submit-Button anzeigt.

                                    Bisher habe ich ziemlich gute Erfahrungen gemacht mit einem JavaScript-Soundex, der nach solchen Wörtern sucht wie 'Fotze' usw.
                                    Aber weil ich durchaus akzeptiere, daß man das Wort auch korrekt und sinnvoll verwenden kann, gebe ich nur eine Warnung ohne Konsequenz heraus.

                                    Er muß nur Mozillas Dominspektor die Seite zum Fraß vorwerfen, dann sieht er sie schon. Ausführliche Kenntnisse in Javascript siond dafür nicht notwendig.
                                    Frisst der auch Elemente, die erst zur Laufzeit entstehen ?

                                    Ja.
                                    Unterschätze auch nie Zeit und Geduld der Kiddies!

                                    Fängt das Spielchen wieder an - tarnen, täuschen und verpissen ?

                                    Gut zu wissen, daß man darüber angreifbar ist.
                                    Dachte immer, daß sensible Informationen, die kurz vor dem Submit mitgeschickt werden, nicht mehr herausgefiltert werden können.

                                    OK, ich würde den Quelltext vielleicht ändern und dann das Formular an meinen eigenen Apache schicken.

                                    Aber dann ist der Schritt nicht mehr weit bis zum Spam-Bot, der dann tausende von Foreneinträgen macht.

                                    Aber die Bilder werden nicht hochgeladen, sondern verlinkt:
                                    [img]http://www.irgendwas.de/bild.jpg[/img]

                                    Mmh...
                                    »»
                                    Ist Standart für zB. BBCodes,
                                    auch da kann man böse sein, und das Bild nach der Genehmigung austauschen durch ein verbotenes Bild.

                                    Ja, das meinte ich. Das kann durchaus mal Ärger geben. Müssen dabei nicht gleich irgendwelche Schweinereien sein, Werbung reicht da schon.

                                    Das ist glaub ich sogar bei eBay möglich ?
                                    Dort kann man auch seine persönliche Seite einrichten.
                                    Gehe immer danach, was die großen Websites machen...

                                    ---

                                    So, erwarte diesmal keine Antwort mehr, inzwischen steht ja die Wiki.
                                    Jetzt mache ich mir Gedanken, wie ich die Leute dazu kriege, sie zu nutzen, und wie/wo ich Wiki-Artikel auf anderen Webseites einbinde.

                                    Schon jetzt weiß ich, daß die Hilfe-Beschreibung ein oder mehrere Wiki-Artikel sein werden.

                                    Zudem werde ich mir was einfallen lassen, um uninteressante Artikel festzustellen, zu löschen und ihre Links aus anderen Artikeln zu entfernen.

                                    so long,
                                    Mathias Weitz

  2. Hallo,

    verwende mal folgendes als Ausgangstext

    ----
    Test1
    Test2

    Test3
    ----

    und lösche dann mal alles bis auf "Test1" und klicke mal auf vergleichen...
    dein Script erkennt kein Unterschied

    mfg
    Twilo

    1. Danke, habe den Fehler auch gleich gefunden, passiert immer, wenn man den Text am Ende verkürzt.

      Die neue Version spiele ich aber noch nicht auf...