Kommunikation zwischen Clients

Django, Flask, Bottle, WSGI, CGI…
Antworten
Pitwheazle
User
Beiträge: 973
Registriert: Sonntag 19. September 2021, 09:40

Wieder mal was Besonderes:
In meinem "alten" Rechentrainer (Der als Makro unter Calc läuft) ist mein "Rechenduell" sehr beliebt. Dabei wird eine Matheaufgabe angezeigt (mittels Beamer) und nach einer kurzen Denkpause die Namen von zwei zufällig ausgewählten Schüler/innen aus einer Liste. Wer zuerst die richtige Antwort nennt, bekommt einen Punkt und rückt im Ranking höher.
Das möchte ich mit meiner servergestützten Rechentrainerversion jetzt auch übernehmen. Genial wäre es, wenn die Aufgabe allen Schüler/innen innerhalb einer Lerngruppe, gleichzeitig auf ihren Tabletts angezeigt würden und nur bei zweien dann ein Aufgabenfeld erscheint und ich diese Eingabe in meinem Programm auswerten könnte.
Ich vermute, das geht gar nicht - ich wollte aber zumindest mal gefragt haben.
Frohe Weihnachten!
Benutzeravatar
sparrow
User
Beiträge: 4313
Registriert: Freitag 17. April 2009, 10:28

Die Clients müssen nicht miteinander sprechen. Es reicht wenn sie beide mit dem Server sprechen. Der muss das dann managen.
Pitwheazle
User
Beiträge: 973
Registriert: Sonntag 19. September 2021, 09:40

OK, prima - heißt das, dass das prinzipiell möglich wäre? Das das nicht von Client zu Client, sondern über den Server gemanaged werden muss, ist sogar mir klar. Kannst du mir da bitte mal einen Anfang skizzieren?
Benutzeravatar
sparrow
User
Beiträge: 4313
Registriert: Freitag 17. April 2009, 10:28

Du möchtest, dass die Clients Nachrichten miteinander austauschen. Grob ist das also ein Chat. Das sollte als Recherchestart ganz gut passen.
nezzcarth
User
Beiträge: 1669
Registriert: Samstag 16. April 2011, 12:47

Pitwheazle hat geschrieben: Mittwoch 20. Dezember 2023, 18:25 Ich vermute, das geht gar nicht - ich wollte aber zumindest mal gefragt haben.
Gehen tut das schon; üblicherweise setzt man so etwas zur Zeit mit WebSockets um (und in Django z.B. hiermit: https://channels.readthedocs.io/). Allerdings ist das halt schon noch mal ein eigenes großes, relativ separates Thema, in das man sich einarbeiten muss. Daher würde ich persönlich vorschlagen, das erst einmal nach hinten zu schieben, bis der Rest gut läuft und man die restliche Technik völlig im Griff hat.

Die jetzige Implementierung als Webanwendung ermöglicht aber ersatzweise auch ähnlich Features, die vorher wahrscheinlich so kaum umsetzbar waren: Statt dieser Live-Duelle kannst du ja zum Beispiel Ranglisten für gelöste Aufgaben einführen. Oder man kann Erfahrungspunkte und Level und so etwas einführen. Je nachdem, was einem so einfällt und pädagogisch sinnvoll ist (davon habe ich keine Ahnung).
Pitwheazle
User
Beiträge: 973
Registriert: Sonntag 19. September 2021, 09:40

Kebap hat geschrieben: Mittwoch 3. Juli 2024, 07:00
Pitwheazle hat geschrieben: Dienstag 2. Juli 2024, 12:40 Und hier [url]viewtopic.php?t=57645[/url ]habe ich meine Idee vorgestellt, das "Rechenduell", das auf meinem OpenOffice Rechentrainer läuft auch in die App zu einzubauen. Das scheint mir nicht so einfach zu sein. Ich habe mich mal eingelesen und muss wohl zunächst mal eine Chat-App erstellen und das alles mal ausprobieren.
Über die technischen Notwendigkeiten hinaus, wird das auch organisatorischen und ggf. weiteren Aufwand produzieren.
Wenn du den Nutzern die Möglichkeit gibst, miteinander zu interagieren, und ggf. sogar freie Texte auszutauschen, birgt das Möglichkeiten es zu misbrauchen.
Ich hatte mich da an den Vorschlag von @sparrow gehalten:
sparrow hat geschrieben: Mittwoch 20. Dezember 2023, 22:50 Du möchtest, dass die Clients Nachrichten miteinander austauschen. Grob ist das also ein Chat. Das sollte als Recherchestart ganz gut passen.
Ich hatte daraufhin mal gesucht und ein Beispiel für ein Chat Programm gefunden und wollte das mal nachvollziehen und hatte gedacht, vielleicht erschließt sich mir dann irgendwann, wie ich das für mein geplantes Rechenduell nutzen kann. Chat brauche ich nicht. Ich denke, ich stelle euch mein Rechenduell hier mal vor. Vielleicht könnt ihr mir da einen Weg aufzeigen, wie ich da dran gehe (oder ihr sagt "das geht nicht" oder auch "das bekommst du nicht hin").
Also das Rechenduell existiert schon als Makro in einer Tabellenkalkulationsdatei. Die Aufgaben entsprechen denen in meiner rechentrainer.app. Die Lehrkräfte haben auch schon eine Liste mit den Schülerinnen und Schüler ihrer Lerngruppe. Diese können sie noch in bis zu drei Ligen einteilen und die Fehlenden eintragen. Beim Start sieht das dann so aus:
Bild
Diese müssten jetzt alle Mitglieder der Lerngruppe auf ihrem Gerät sehen. Bei meinem existierenden Rechenduell benötigt man dazu einen Beamer. Die Lehrkraft sucht eine Aufgabenkategorie aus und klickt sie an, eine Aufgabe wird angezeigt:
Bild
Alle Schülerinnen und Schüler überlegen die Lösung und nach einer voreingestellten Zeit ("Wartezeit") werden zwei Schülerinnen und Schüler zufällig ausgesucht (dabei wird berücksichtigt, wie oft sie schon dran waren und in welchger Liga sie eingeteilt sind), es erscheinen zwei Namen:
Bild
... und wer von diesen die Aufgabe am schnellsten weiss bekommt einen Punkt. Zur Überprüfung tippt die Lehrkraft die zugerufene Antwort ein. Ist die reingerufene Lösung falsch, gibt es einen halben Punkt Abzug. Daraus wird nach jeder Aufgabe die Rangliste angepasst. Die Kids finden das toll. Das mit dem Beamer und dem Reinrufen ist blöd und ich fände es prima, wenn ich dies in meine Rechentrainer.app integrieren könnte. Alle Schülerinnen und Schüler der Lerngruppe sehen die gleiche Aufgabe, aber nach einer kurzen Zeit können nur zwei von ihnen die Lösung eingeben.
Besteht hier irgeneine Chance, sowas (mit meinen bescheidenen Fähigkeiten) zu realisieren? Und wenn ja, wie fange ich an?
Pitwheazle
User
Beiträge: 973
Registriert: Sonntag 19. September 2021, 09:40

nezzcarth hat geschrieben: Donnerstag 21. Dezember 2023, 11:11 Die jetzige Implementierung als Webanwendung ermöglicht aber ersatzweise auch ähnlich Features, die vorher wahrscheinlich so kaum umsetzbar waren: Statt dieser Live-Duelle kannst du ja zum Beispiel Ranglisten für gelöste Aufgaben einführen. Oder man kann Erfahrungspunkte und Level und so etwas einführen. Je nachdem, was einem so einfällt und pädagogisch sinnvoll ist (davon habe ich keine Ahnung).
Ja, das mit den Ranglisten ist schon angedacht, das motiviert aber meines Erachtens nur die Streber, die schwachen Schülerinnen und Schüler demotiviert das nur. Mein Rechenduell ist ja schon getestet und kommt sehr gut an. Der Vorteil ist, dass hier zunächst mal eine Live Wettkampfstimmung entsteht und die schwachen Schülerinnen und Schüler eingebunden sind. Wie gesagt, die Lehrkraft kann bis zu drei Ligen festlegen und die "kämpfen" primär erstmal gegeneinander, zufällig treten dann aber auch die bessergewerteten der unteren Liga gegen die schlechteren der oberen Liga an, gewinnt der/die aus der unteren Liga, steigt er/sie auf, muss aber noch ein weiteres Duell in der neuen Liga gewinnen, sonst steigt er wieder ab, der Verlierer steigt ab. (Ich habe (auch) von Fußball keine Ahnung, habe mich aber inspierrieren lassen.) das ganze ist zurzeit ein Makro in Staroffice.
Pitwheazle
User
Beiträge: 973
Registriert: Sonntag 19. September 2021, 09:40

Kebap hat geschrieben: Mittwoch 3. Juli 2024, 07:00 Mein Tipp, lerne am besten mal in einem kleinen, eigenständigen, lokalen Projekt, wie man virtuelle Umgebungen erstellt und handhabt.
Kein Django, kein Uberspace, keine Datenbanken, kein HTML, einfach 2-3 kleine verschiedene Pythonprogramme, die unterschiedliche Paketen importieren müssen.
Mein Rechentrainer liegt ja schon auf meinem Rechner und wenn ich jetzt ein zweites "Übungsprogramm" installieren will, dachte ich, müsste ich erstmal meinen Rechentrainer in eine virtuelle Umgebung einbetten und für ein weiteres Projekt eine zweite erstellen.
Benutzeravatar
noisefloor
User
Beiträge: 3920
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

das Problem hierbei ist die Latenz, wenn du das online machst. Sagen wir mal, es gehen wirklich an beide Clients die Aufgabe gleichzeitig raus - dann heißt das nicht, dass die gleichzeitig ankommen. Du hast ja eine Netzwerklatenz, auf die du null Einfluss hast. Die kann halt gering sein oder erheblich. Also das beide gleichzeitig die Aufgabe gleichzeitig sehen und gleichzeitig antworten (können) ist extrem unwahrscheinlich.

Sinnvoller wäre IMHO nicht der Echtzeit Ansatz, sondern eher sowas wie bei der App "Quizduell", d.h. man sieht eine Aufgabe, hat X Sekunden Zeit, zu antworten (bei Quizduell ist es multiple choice) und je schneller man ist, desto mehr Punkt bekommt man.

Interessant ist das schon, aber bevor du da dran geht solltest du IMHO den verhandenen Code des Rechentrainers erstmal "production ready" machen - basierend auf deinen diversen Threads sind da genug offene Baustelle plus die neue Baustelle namens "performance".

Gruß, noisefloor
Pitwheazle
User
Beiträge: 973
Registriert: Sonntag 19. September 2021, 09:40

OK, das ist eine interessante Info. Vielleicht lasse ich das dann halt bei meiner funktionierenden OpenOffice Version. Nach Studium der von @nezzcarth Infos zu den "channels" fühle ich mich auch echt überfordert.
... aber mache meinen Rechentrainer nicht schlechter als er ist. Er ist, glaube ich, seit einem Jahr online und funktioniert, meines Erachtens gut. Ich bekomme nur positive Rückmeldungen - die einzigen Beschwerden kommen von Lehrkräften, die bemängeln, dass die Schülerinnen und Schüler nicht genug arbeiten.
Ich habe versucht, eure Anregungen alle einzubauen ... auch bei den neuen Variablennamen.
Bleibt, außer des Performaceproblems noch die fehlende Anzeige meiner Gruppen auf dem iPad.
Benutzeravatar
noisefloor
User
Beiträge: 3920
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

also deinen Rechentrainer macht auch keiner schlecht. Soweit ist das mitbekommen habe richten sich alle Verbesserungsvorschläge und Kritik an den Code, nicht die Applikation und deren Aufgaben an sich.

Gruß, noisefloor
Benutzeravatar
Kebap
User
Beiträge: 713
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Die Kids finden das toll. Das mit dem Beamer und dem Reinrufen ist blöd und ich fände es prima, wenn ich dies in meine Rechentrainer.app integrieren könnte. Alle Schülerinnen und Schüler der Lerngruppe sehen die gleiche Aufgabe, aber nach einer kurzen Zeit können nur zwei von ihnen die Lösung eingeben.
vs.
Pitwheazle hat geschrieben: Mittwoch 3. Juli 2024, 15:50 Mein Rechenduell ist ja schon getestet und kommt sehr gut an. Der Vorteil ist, dass hier zunächst mal eine Live Wettkampfstimmung entsteht und (...)
Mir ist noch nicht ganz klar, wie das Ergebnis aussehen soll.
Gibt es einen Beamer oder nicht mehr nötig?
Wird noch gerufen oder nicht?
Wenn jeder nur bei sich in der App rumklicken muss, wird ggf. Stimmung verloren gehen.
Andererseits könnten Duelle dann auch außerhalb der Unterrichtszeiten eben online stattfinden.

Den Vorschlag von noisefloor finde ich sinnvoll: Jede App misst für sich, wie lange der Schulende gebraucht hatte, um die Antwort zu geben. Der Server kann darüber entscheiden, welche Antwort schneller kam. Somit hast du das Problem mit der abweichenden Latenz schon abgewehrt.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Pitwheazle
User
Beiträge: 973
Registriert: Sonntag 19. September 2021, 09:40

Bei meiner Idee wäre der Beamer und die Installation von OpenOffice überflüssig. Auch das Reinrufen und das Eintippen des reingerufenen Ergebnisses empfand ich als nicht optimal. Es stimmt aber, dass das Klicken auf Handys den Wettkampfcharakter einschränkt. Aber jetzt wo ich das schreibe, habe ich eine andere Idee: Es wäre ja eine Möglichkeit, den Rechentrainer so in meine App zu integrieren, dass die Lehrkraft die entsprechende Grafik vom Tablett oder PC mit dem Beamer projeziert und dadurch die OpenOffice Installation (die für viele ein Problem ist) wegfällt.
Pitwheazle
User
Beiträge: 973
Registriert: Sonntag 19. September 2021, 09:40

noisefloor hat geschrieben: Mittwoch 3. Juli 2024, 18:41 also deinen Rechentrainer macht auch keiner schlecht. Soweit ist das mitbekommen habe richten sich alle Verbesserungsvorschläge und Kritik an den Code, nicht die Applikation und deren Aufgaben an sich.
Ich habe versucht alle (na ja, fast alle) Verbesserungsvorschläge zu berücksichtigen. Wo (und wie) siehst du jetzt noch Änderungsbedarf? Perfekt ist mein Code sicher nicht und vieles könnte man auch anders machen - aber bei welchem Code ist das nicht so.
Antworten