From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass (mailfrom) smtp.mailfrom=irif.fr (client-ip=2001:660:3301:8000::1:2; helo=korolev.univ-paris7.fr; envelope-from=jch@irif.fr; receiver=) Authentication-Results: mail.toke.dk; dkim=pass (2048-bit key; unprotected) header.d=irif.fr header.i=@irif.fr header.a=rsa-sha256 header.s=dkim-irif header.b=YIwFvB28 Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) by mail.toke.dk (Postfix) with ESMTPS id 1D3A0B519C7 for ; Thu, 19 Jun 2025 13:11:01 +0200 (CEST) Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/82085) with ESMTP id 55JBB1Mh028812 for ; Thu, 19 Jun 2025 13:11:01 +0200 Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id 7323678279 for ; Thu, 19 Jun 2025 13:11:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=irif.fr; h= content-type:content-type:mime-version:user-agent:subject :subject:from:from:message-id:date:date:received:received; s= dkim-irif; t=1750331458; x=1751195459; bh=YGXc3Dsi3AutLDDRBCp4+G p98eGN8F1QFs+srcrtbfk=; b=YIwFvB281o3ttLFF1fjeRs3KIbx0Z15QN7mO7z FhRGHbdq+BCtTUFFq4SD0snZJSVjCMhng0cpFsaeOTKEzSSiXtvYmkl4mgmCVhHO dBcj17VlerFSlFvkZarQG8fciOGgLIAO7lu164r1Y3wVJXOVWKK4knRPwf9OE22H 5tIFxRS6N6uxwlIgi8Pooo+ZymhEqUGJ/jvbuHr3LEjGucHahj9cZs3lXwAR+cgz WeQViaBRP1m3cUhWxKsDV4IlWAL1HOk+70aq0OWSSeX3YUJEUbT4z1z8zh0N513d YldG/ZTk9JN2TVFQU9AzF2WJdJj+vWTocjD4OXF4b6tVR32g== X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id fwNlE7hFaWFK for ; Thu, 19 Jun 2025 13:10:58 +0200 (CEST) Received: from pirx.irif.fr (unknown [89.64.69.181]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id D68417837E for ; Thu, 19 Jun 2025 13:10:57 +0200 (CEST) Date: Thu, 19 Jun 2025 13:10:56 +0200 Message-ID: <87ikksdm0v.wl-jch@irif.fr> From: Juliusz Chroboczek To: galene@lists.galene.org User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/30.1 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [194.254.61.138]); Thu, 19 Jun 2025 13:11:01 +0200 (CEST) X-Miltered: at korolev with ID 6853F045.001 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 6853F045.001 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/ X-j-chkmail-Score: MSGID : 6853F045.001 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000 X-j-chkmail-Status: Ham Message-ID-Hash: ZGKZDNFYUETJNZX5WSLD5N45LYZLRY3C X-Message-ID-Hash: ZGKZDNFYUETJNZX5WSLD5N45LYZLRY3C X-MailFrom: jch@irif.fr X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Subject: [Galene] About subgroups List-Id: =?utf-8?q?Gal=C3=A8ne_videoconferencing_server_discussion_list?= Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Hi, I've recently had a telephone conversation with a user who told me that none of his colleagues understand how to use the auto-subgroups functionality in Galene. Since I'll be writing it down for them, I might as well share with the list. The auto-subgroups functionality was designed for CS practicals, where 12 to 30 students are programming in a relatively autonomous manner, with occasional help from a lecturer. The practicals are usually not graded, collaboration between students is encouraged, and the students are provided with a detailed list of steps. Here's an example: https://www.irif.fr/~jch/enseignement/sieci/lab4.pdf Before the beginning of the semester, I create a Galene group called something like https://galene.org:8443/groups/advanced-network-programming/ with "auto-subgrops" set to true. For the lecture, I arrive on time, about half of the expected students are already logged in. I ask the students who have a cat to switch their camera on and show us their cat; this creates a relaxed atmosphere, but also makes students less self-conscious about participating (nobody wants to be the first to switch their camera on). When the students start joking among themselves in the public chat, it is time to start. I ask the students to switch their cameras off, and to only switch them on when they have a question to ask. During the lecture, I keep my camera on, I share my slides, a drawing appliation for impromptu diagrams, and sometimes a terminal to make a demo. When it's time to do a practical, I tell the students to organise themselves into teams of 1 to 3 people, and to pick a nickname for the team. I then ask each student to remain logged into the main group, and to also join a group called https://galene.org:8443/groups/advanced-network-programming/team-name/ In that subgroup, they are required to share their editor window, and I tell them it's okay to use it for chatting with their team members. Most of them switch their microphone on, some of them also turn the camera on (usually the ones with cats). Some groups want more privacy, and they chat on a channel I don't control (usualy Discord, it gars me greet). I then switch my camera off, I make myself a coffee (instant, no time for proper brewing) while the students get organised, and come back to the main group. I type /subgroups which gives me the list of teams. I then join all of the subgroups, and mute all the browser tabs except the one with the main group. I mostly look at the main group, where students ask questions in the chat. If a question is easy, I simply answer in writing in the main group; if a question is more involved, I ask the student which subgroup they're in, unmute the subgroup, and discuss the issue together with the team. If multiple students have asked the same question, I switch my camera on in the main group, and explain the issue to everyone. If the main group is idle, then either the students are working (the practical was written well, they don't need my help), or everyone is sleeping. When that happens, I roam around the subgroups to see what they're doing (that's why sharing the editor window is compulsory), which gives me an idea whether I should leave them in peace or intervene to wake them up. This procedure requires juggling with anywhere between 5 and 20 groups, which is impossible with any software other than Galene. With a little practice, it works fairly well: I've managed to lead successful practicals online during Covid and, more recently, when I couldn't do my practicals in person, which, false modesty put aside, I'm rather proud of. As with all things Galene, the functionality is there, but the UI needs improving. I need to make the output of the "/subgroups" command clickable (an easy fix, just not something I've gotten around to yet). There should be a way to find out which subgroup a student is in without asking them, but that's made somewhat difficult by the lack of user identity in Galene. (Galene handles authentication, not user identity -- there's no way to determine if two users logged with the same username are the same person. That's a feature, by the way, not a bug.) Your usages are likely to differ, please feel free to suggest improvements, as long as they don't harm my use case. -- Juliusz