WeScriptTogether / Programmidee

  • Hallo alle,
    hatte mal eine kleine und wie ich finde nützliche Idee für ein Programm:

    Ein "Multiscripteditor", das bedeutet man verbindet sich zu Beginn mit einigen Freunden über das Internet.
    Danach hat jeder einen Editor vor sich, in dem er mit den andern das Script bearbeiten kann.
    Das bedeutet, das soll es wesentlich einfacher machen mit andern Leuten Scripte zu schreiben oder zu ändern -
    weil alle das aktuelle Script vor sich haben und es jeder dort für die anderen sichtbar ändern kann.
    Damit nicht alle gleichzeitig darauf rumschreiben, sollte es bei dem Verbinden einen Host geben, der
    den anderen dann das "Script zum Editieren freischalten" kann. So kann immer nur einer das aktuelle Script bearbeiten.

    Folgende Features wären dabei echt hilfreich:
    - Syntax Highlighting für möglichst viele Sprachen (wird schwer)
    - Chat
    - Übersichtlich, jedoch viele Funktionen

    Mir schwirrt diese Projektidee schon seit längerem im Kopf herum, nur ich weiß momentan nicht wie ich es alleine schaffe es umzusetzen. Wäre toll, wenn ich jemanden davon überzeugen könnte, sodass er mithilft!

    Folgende Fragen wären auch noch zu klären:
    - über Ftp, Tcp oder sonstwas soll das laufen?
    - flüssig umsetzbar?

    Hoffe jemand hat Lust mitzuhelfen,
    viele Grüße,
    stayawayknight

    PS: Achja, über den Namen lässt sich natürlich streiten

  • mit Autoit wohl nicht möglich

    Habe versucht mal einen normalen Editor mit syntaxhighlight zu machen, aber sogar das ist bei Autoit ( z.B. mit richedit ) nur komplex einsetzbar und glaube kaum das du dann noch das andere einbinden kannst

  • Ich finde die Idee, "zusammen" zu scripten, sehr geil!
    Eigentlich dachte ich, dass google mit WAVE aus den Socken kommt, aber der Cloud-Hype hat wohl Entwicklerkapazitäten aufgefressen....
    Über die Datenübertragung würde ich mir keine Gedanken machen, da "nur" der veränderte Text verschickt wird. Kaum einer von uns wird 200-300 Anschläge/Minute schaffen, das würde auch ein Akkustikkopler von vor 30 Jahren noch schaffen^^
    Aber ich stelle mir gerade vor wie extrem cremig das aussehen würde, wenn sich ein Text/Script auf dem Bildschirm aufbauen würde, der von 3-4 Leuten gleichzeitig erstellt wird^^

  • ich finde die Idee auch interessant.

    Raupi hatte dazu testweise mal einen Gobby Server am Start.
    Ist aber wieder eingeschlafen, da die Funktionalität nicht so ganz unseren Erwartungen entsprach.
    Das Thema ansich ist ja nicht neu, aber wie Andy schon sagte mit Cloud-Computing und Web 3.0 warten wir ja alle auf den großen Durchbruch.

    Ich persönlich denke dass der Erfolg einer solchen Software ganz entscheiden von den Usern abhängt.
    Dazu gehört Absprache, Disziplin, Struktur usw...
    Sowas kann keine Software in dem Maße vorgeben, ohne die Freiheit des einzelnen Proggers zu sehr einzuschränken.

    Sonst wird es wirklich "cremig" :D

    Hier mal ein Link den ich gefunden habe mit ersten Anlaufstellen zu dem Thema.

    PS: Selber schreiben würde ich einen solchen Editor nicht, da meiner Meinung nach sowas nur funktioniert wenn jeder darauf zugreifen kann, wann er will.
    Und das Internet (eigener Webspace) ist nunmal 24Std. geöffnet ;)

    Linkseite Editoren
    Linkseite allgemein (Wiki)

    Wenn sich dazu eine nette Gemeinschaft findet, bin ich gerne auch dabei...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Schön, dass die Idee hier so gut aufgefasst wird :)
    Ich weiß auch nicht ob das wirklich so klappt, wie ichs mir vorstelle, aber ich denke einne Versuch wärs wert.
    Mir kam die Idee dazu, als ich mich mit einem Freund in einem Chatroom mit Lua auseinandergesetzt habe und wir versucht haben ein kleines Script zu schreiben, aber niemand hatte wirkich den Überblick was bereits geschrieben war und wie das Script momentan aussah.

    Wie ich höre würdet ihr eher zu Datenübertragung per Ftp tendieren...
    ich weiß nicht aber ist das nicht zu langsam? Müsste ja alle paar Sekunden dann eine
    entsprechende Datei hoch/downloaden...

    mit Autoit wohl nicht möglich

    Habe versucht mal einen normalen Editor mit syntaxhighlight zu machen, aber sogar das ist bei Autoit ( z.B. mit richedit ) nur komplex einsetzbar und glaube kaum das du dann noch das andere einbinden kannst


    Gabs dazu nicht mal was im englischen Forum?

    Vielleicht hilft uns in ein paar Tagen dies weiter (wurde gestern geschrieben(: http://www.autoitscript.com/forum/index.php?showtopic=120634

    Ich denk ich fang nachher (nach den Mathe-Hausaufgaben :D ) mal damit an... hab dann ein bisschen Zeit bevor's zur Demo geht

  • Ich würde das komplett vom Editor loslösen! Jeder Programmierer hat seinen individuell für sich eingerichteten Editor, und das soll auch so bleiben! Wozu ein rollendes Ding erfinden mit 12 Ecken, wenn es schon ein Rad gibt?
    Gerade Scite bietet sich doch hervorragend an, um "von aussen" (per AutoItscript/Lua) gesteuert zu werden. Wen es interessiert, hier gibt es Infos bzgl der Scite Steuerkommandos, die auch ohne weiteres aus AutoIt aufgerufen werden können.
    Im Prinzip muss doch nur die Datei auf dem neuesten Stand gehalten werden. Da würde eine Aktualisierung alle paar Sekunden sicherlich ausreichen...

    Zitat

    Wie ich höre würdet ihr eher zu Datenübertragung per Ftp tendieren...
    ich weiß nicht aber ist das nicht zu langsam?

    Da nur die Änderungen während einer Session übertragen werden müssen, spielt sich der Aufwand bei einer Datenübertragung im Byte-Bereich ab!
    Mal angenommen, der "Refresh" würde 1x in 10 Sekunden erfolgen. Dann müssten nur die Daten übertragen werden, die während dieser Minute gecodet wären. (Wieviel KB Code schreibst du in 10 Sekunden^^)

    Ggf. wäre aber auch ein "Ringsystem" vorteilhaft, welches den kompletten Text zum "nächsten" Coder schickt, dort mit dessen Änderungen versehen wird usw...selbst wenn kompletter Code verschickt wird sind das nur einige (sehr gut und schnell komprimierbare) Textdateien.

    Ich hatte mal vor einiger Zeit versuchsweise ein "Terminal"-AutoItScript bei mir im (damals 10MBit) Netz laufen. Selbst wenn 5 Leute gleichzeitig gearbeitet/geschrieben hatten, war eine Verzögerung praktisch nicht bemerkbar...
    Wenn man dann auch noch so programmiert, dass möglichst viel Code in Funktionen ausgelagert wird (Includes ftw! ), kann jeder Programmierer seine eigenen Brötchen backen und ggf per "Upload"-Hotkey den anderen zur Verfügung stellen...

    Über interna, d.h. wer coded welche Funktion bzw in welchem Codebereich, könnte man sich ja Gedanken machen, TS/Chat wäre auch nicht verkehrt (zu Raupi rüberschiel^^).
    Die Verwendung der #Regions halte ich für hervorragend! Wenn jemand eine Änderung gemacht hat, könnte z.B. die entsprechende Sequenz mit "Region" Informationen (Coder, Änderung, Datum usw...) für jeden lesbar eingefasst werden. Ideen her und los gehts!

  • Hört sich sehr interresant an. Was wäre aber wenn, Person A an dem Script schreibt und Person B nicht online ist. Später wenn Person B online ist , aber A nicht, dann würde B nicht sehen was A geschrieben hat. Deshalb müsste man einen Server machen, bei dem man ein neues Projekt erstellen kann und mit einem Passwort dieses verändern kann. Dann wäre auch das zusammenfinden untereinander nicht mehr so schwer. :)
    Ich werde auf jeden Fall das Projekt verfolgen.

  • Ggf. wäre aber auch ein "Ringsystem" vorteilhaft, welches den kompletten Text zum "nächsten" Coder schickt, dort mit dessen Änderungen versehen wird usw...selbst wenn kompletter Code verschickt wird sind das nur einige (sehr gut und schnell komprimierbare) Textdateien.

    Da muss ich aber gegenhalten, da ich z.B. gerne die bilder in das Script packe und somit auch der code "Gross" wird

    eine "änderung" zu übertragen und nicht den gesamten text ist in jedemfall sinnvoller.

  • Mir gefällt die Idee auch sehr.
    Ich würde dabei auch zu einem inkrementellen Abgleich tendieren,
    am besten wären wohl Autoit-Clients die Scite lokal ansteuern und ein php-Server,
    der dabei direkt in Text-Dateien schreiben kann.

  • Die Idee von Faweyr find ich wirklich gut und eure ganzen anderen Ideen sind alle wirklich brauchbar!
    Ich werde dann bald einen Ftp-Server bei einem Freehoster registrieren, auf den man die dann die Projekte "ablegen" kann. Benutzerdaten würde ich dann jedem der mitmacht zukommen lassen! Wer möchte dann jetzt genau alles mithelfen?

  • Ich finde die Idee gut :).

    Die Vorgehensweise, die SlowlyDead beschrieben finde ich auf jeden Fall effektiv.
    Erstens gibt es einen enormen Geschwindikeitsvorteil. Damit könnte man locker mehrmals pro Sekunde aktualisieren, was wesentlich flüssiger wirkt.
    Außerdem ist es einfach sicherer. Bei einem FTP Upload musst du immer das Passwort mitgeben. Dann beschränkt sich das Script auf einen sehr kleinen Userbereich.

    Also meiner Meinung nach ist ein kleines PHP Script die bessere Alternative.

  • Die Idee von Faweyr find ich wirklich gut und eure ganzen anderen Ideen sind alle wirklich brauchbar!
    Ich werde dann bald einen Ftp-Server bei einem Freehoster registrieren, auf den man die dann die Projekte "ablegen" kann. Benutzerdaten würde ich dann jedem der mitmacht zukommen lassen! Wer möchte dann jetzt genau alles mithelfen?

    server und ftp kann ich zur verfügung stellen, hab n webspace bei 1und1.
    platz is auch da aber scripte brauchen ja nich soo viel. kann auch gerne jemand n http frontend drauf ablegen. zugangsdaten würd ich bei interesse dem ideenfinder zukommen lassen der dann auch gern die verteilung übernehmen kann.

  • Moin, ich hab mal schnell einen einfachen php-Server gebastelt. (quick&dirty, nix mit Sicherheit :-D).
    Bei nem flotten Server dürften Synkronisierungen von mehreren Users gleichzeitig alle paar Sekunden kein Problem sein, dank txt-Datei ist keine DB nötig.
    Bisher ist das ganze nicht inkrementell, das dürfte jedoch mit nem Integritätssystem möglich sein, das z.B. Zeilenweise vergleicht. Jede Zeile wird gehasht und dann der Wert auf Client und Server verglichen. (Man addiert z.B. die Hashes der ersten 50 Zeilen auf Server und Client, bei Unterschied nach nem Halbierungsverfahren mit 2 Hashblöcken a 25 Zeilen etc.)
    <ironie>
    Super Software Patent
    </ironie>

    So, jetzt aber zum Server:

    php-Server


    Den Server würd ich auch vielleicht weiter programmieren, auf die Geschichte auf der Client-Seite hab ich wenig Lust. Ein Beispiel wie der Client zu arbeiten hätte:

    Autoit Client
    [autoit]


    ;===========================
    ; Config für den Client
    ;===========================

    [/autoit] [autoit][/autoit] [autoit]

    $server = "http://www.wst-api-server.de"
    $pfad = "/api/"
    $api = "wst_api.php"

    [/autoit] [autoit][/autoit] [autoit]

    $user = "SlowlyDead" ; Groß/Kleinschreibung wichtig, später pw

    [/autoit] [autoit][/autoit] [autoit]

    ;===========================
    ; Aktuelles vom Client
    ;===========================

    [/autoit] [autoit][/autoit] [autoit]

    $neu_geschrieben ; Inhalt aus Scite auslesen

    [/autoit] [autoit][/autoit] [autoit]

    ;===========================
    ; Synkronisation
    ;===========================

    [/autoit] [autoit][/autoit] [autoit]

    $inhalt_jetzt = InetGet($server & $pfad & $api & "?user=" & $user & "&new=" & $neu_geschrieben

    [/autoit] [autoit][/autoit] [autoit]

    ;inhalt_jetzt in Scite schreiben

    [/autoit] [autoit][/autoit] [autoit][/autoit]


    Letzteres auf dem Client in einer Whileschleife, jedoch sollte der Server den Intervall vorgeben ...

  • Um nicht am ende die Speicherkapazität des Servers zu überlasten, könnte man ja wenn mit mehreren verbunden ist eine Direktverbindung aufbauen um Zusatzdaten auszutauschen (zb.dlls,Ressourcen...) .

  • Öhm will jetzt nicht hier irgendwie die Euphorie dämpfen, aber das gibts es schon nennt sich Subversion. klick mich

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.