Schulnetzwerk

In den letz­ten bei­den Wochen habe ich mich ein wenig in unser Schul­netz­werk ein­ge­gra­ben – als medi­en­päd­ago­gi­scher Bera­ter kann man es ja nicht auf sich sit­zen las­sen, dass man anders­wo nichts vor­zu­stel­len hat – zudem haben wir hier mitt­ler­wei­le vor Ort so aus­ge­zeich­ne­te Bedin­gun­gen, dass sich bestimmt auch ein­mal eine Tagung orga­ni­sie­ren lässt. Weil unser Schul­trä­ger zur­zeit mas­siv in bau­li­che Maß­nah­men inves­tiert, ist man geneigt, sich bei der Bean­tra­gung von Mit­teln für den Ver­mö­gens­haus­halt eher zurück­zu­hal­ten oder eben noch etwas zu warten.

Bei uns man­gelt es nicht an Kup­fer, das im Gebäu­de ver­legt ist – es gibt sogar Glas­fa­ser­stre­cken zwi­schen den ein­zel­nen Gebäu­de­tei­len. Es gibt in den Natur­wis­sen­schaf­ten und in ein­zel­nen Gebäu­de­tei­len auch WLAN, jedoch längst nicht flä­chen­de­ckend. In den PC-Räu­men wer­keln noch P4‑2,8Mhz-Kisten mit 512MB RAM vor sich hin. Zur betreu­en­den Fir­ma kann ich noch nicht viel sagen – so rich­tig habe ich noch nicht mit ihr zusam­men­ge­ar­bei­tet. Gut wäre auf lan­ge Sicht sicher ein peri­odi­scher Ter­min zur Sich­tung und Bespre­chung der anfal­len­den Aufgaben.

Ein wenig möch­te ich das Netz­werk pla­nen und sei­nen Auf­bau koor­di­nie­ren, wer­de in der Anfangs­zeit aber etwas sel­ber zau­bern müs­sen. Immer wie­der mache ich die Erfah­rung, dass sich dabei viel Gehirn­schmalz und Arbeit am Anfang unge­mein posi­tiv für die lang­fris­ti­ge Aus­rich­tung aus­wir­ken. Fol­gen­de Grund­sät­ze hal­te ich für Schul­netz­wer­ke mitt­ler­wei­le für essentiell:

  1. Eine zen­tra­le Authen­ti­fi­zie­rung ist unbe­dingt not­wen­dig. Ich nut­ze für mei­ne Web­ser­vices dafür seit Jah­ren LDAP – kann auch ein AD (Win­dows) sein. Das ist qua­si das Backend für alles wei­te­re – am bes­ten mit zumin­dest peri­odi­scher, nicht-phy­si­ka­li­scher Anbin­dung (CSV, USB-Stick) an das Ver­wal­tungs­netz der Schu­le. Dann kann man auch das mit der Daten­spar­sam­keit realisieren.
  2. PC-Räu­me sind sowas von eight­ies. Die Zukunft liegt in der Cloud, die man sich ent­we­der selbst bas­telt oder ein­kauft. Fol­ge­rich­tig muss ein wesent­li­ches Augen­merk auf WLAN und Uplink lie­gen, um mit­tel­fris­tig vie­le mobi­le Gerä­te bedie­nen zu können.
  3. Soft­ware­de­ploy­ment ist der Schlüs­sel für Nach­hal­tig­keit. Soft­ware muss sich zwin­gend zen­tral ver­tei­len las­sen, am bes­ten per PXE. So hat z.B. eine Fir­ma einen zen­tra­len Punkt, an dem neue Soft­ware ein­ge­pflegt wird – das spart War­tunsg­kos­ten und öff­net gedank­li­che Räu­me für die Wei­ter­ent­wick­lung des Schul­netz­werks. Lösun­gen dafür gibt es vie­le, z.B. opsi, fog oder RIS.
  4.  Ohne didak­ti­sches Kon­zept ist jedes Schul­netz­werk wert­los. Die Tech­nik muss die Fre­ir­räu­me schaffen.
  5. Ohne Fort­bil­dung des päd­ago­gi­schen Per­so­nal ist jedes Schul­netz­werk wert­los. Die Tech­nik muss die Frei­räu­me schaffen.
  6. Das Sys­tem selbst muss didak­ti­sches Poten­ti­al und Par­ti­zi­pa­ti­ons­mög­lich­kei­ten schaf­fen – War­um nicht Schü­le­rin­nen und Schü­ler mit in die Arbeit inte­grie­ren? Da gibt es viel zu ler­nen und zu erfah­ren. Also Open­So­ur­ce. Zumin­dest auf dem Server.
  7. Das Netz­werk muss Band­brei­te lie­fern – Gbit ist Min­dest­stan­dard – vor allem bei den Switches.

Momen­tan habe wer­den unse­re Cli­ents mit dem schon nicht mehr erhält­li­chem Micro­soft Shared Com­pu­ter Tool­kit so ver­ram­melt, dass Ände­run­gen an der loka­len Instal­la­ti­on auch ohne Zusatz­hard­ware nicht mög­lich sind. Ein Schul­ser­ver regelt Frei­ga­ben via Sam­ba und fun­giert gleich­zei­tig als Netz­fil­ter – über den Ansatz lässt sich treff­lich strei­ten, aber er funk­tio­niert. Lei­der bringt er diver­se Nach­tei­le mit sich, die die Punk­te 4+5 mei­ner Lis­te betreffen. 

Eine Soft­ware auf allen unse­ren Cli­ents zu instal­lie­ren, dau­ert unge­fähr 20 Arbeits­stun­den, da nicht nur die Soft­ware ein­ge­spielt wer­den will, son­dern auch die Rech­ner immer wie­der aus der Domä­ne flie­gen usw.. Das geht so nicht. Des­we­gen Deploy­ment (Punkt 3) – image- (fog) oder sys­tem­dienst­ba­siert (opsi).  Das ist ein Muss – gera­de auch in hete­ro­ge­nen Sys­tem­land­schaf­ten mit ver­schie­de­nen Win­dows­ver­sio­nen. Es gibt schi­cke Win­dows­lö­sun­gen, z.B. RIS. Kos­tet. Summen.

Per­spek­ti­visch muss so oder so ein neu­er Ser­ver her, der z.B. einem even­tu­el­lem Dienst­leis­ter die Grund­la­ge für eine War­tungs­tä­tig­keit bie­tet. In Nie­der­sach­sen läuft das an vie­len Schu­len über iserv. Es ist die in mei­nen Augen zur Zeit aus­ge­reifs­tes­te Schul­ser­ver­lö­sung über­haupt (neben paedML aus BW) – kos­tet aber. Bezeich­nen­der­wei­se ist die Kis­te an einer Schu­le ent­stan­den, die Punkt 6 mei­ner Lis­te sehr ernst genom­men hat. Dum­mer­wei­se kann iserv von Hau­se aus kei­ne Ter­mi­nals bedie­nen – das hät­te ich aber soooo ger­ne. Die Vor­stel­lung, 0815-Hard­ware auch in öffent­li­chen Berei­chen der Schu­le zur Ver­fü­gung stel­len zu kön­nen, fin­de ich nett. Zudem kön­nen unse­re bestehen­den Cli­ents PXE. Fürs Ter­mi­nal reicht die Hard­ware dicke.

Wo will ich hin?

  1. Kol­le­ge XY hat den Wunsch nach einer Soft­ware, die idea­ler­wei­se frei ver­füg­bar ist (sonst muss er die Lizen­zen eben auf­trei­ben). Ich oder ein Schü­ler oder ein Dienst­leis­ter modi­fi­ziert Remo­te das Basis­image. Ein Sys­tem­dienst weckt nachts die Cli­ents via WOL auf und spielt das Image neu auf. Kol­le­ge XY kommt am nächs­ten Mor­gen und kann arbeiten.
  2. Die Fest­plat­te eines Note­books an einem SMART-Board ver­sagt. Der Tech­ni­ker der Hard­ware­fir­ma kommt mit einem Ersatz, boo­tet via PXE und das Image wird ohne Nut­zer­ein­griff restau­riert auf den letz­ten Stand.
  3. Das Note­book in der Che­mie ohne fes­ten Netz­zu­griff wird durch einen Kol­le­gen ver­kon­fi­gu­riert. Ich sage dem Schul­as­sis­ten­ten Bescheid, der es zu sich in die Werk­statt nimmt und per PXE über einen GBit-Uplink zum Deploy­ment­ser­ver das Image restau­riert und nach 30 Minu­ten wie­der in die Che­mie stellt.
  4. Ein Media­ser­ver im Schul­netz ver­sorgt nach Klä­rung von Lizenz­fra­gen das Schul­netz per DLNA mit Audio­files (Fremd­spra­chen-CDs) und Fil­men (z.B. Mer­lin). Jedes Android‑, iOS- oder Sonst­wie­ge­rät mit DLNA-Cli­ent spielt das im Klas­sen­raum z.B. über WLAN ab. DLNA-Cli­ents sind übri­gens oft sehr schi­cke Apps, mit denen jeder Maus­schub­ser zurechtkommt.

Tech­nisch ist das alles mög­lich – heu­te, kom­plett mit Open­So­ur­ce. Müss­te das für unse­re Schu­le umge­setzt wer­den, wür­de ich inkl. Migra­ti­on bei einer fähi­gen Fir­ma dafür drei Wochen mit ca. 120 Mann­stun­den ( 80,- Euro Stun­den­satz – soll ja eine fähi­ge Fir­ma sein) anset­zen. Dann wäre mit einem Kapi­tal­ein­satz von ca. 20.000 Euro inkl. Hard­ware aber für eini­ge Zeit Ruhe. Und: Man spart auf mitt­le­re Sicht erheb­lich bei den War­tungs­kos­ten. Außer­dem habe ich eigent­lich das Unter­rich­ten gelernt und soll­te mich dar­auf kon­zen­trie­ren. So – und jetzt Fundraising.

IT-Konzept (technisch)

Wir über­ar­bei­ten nach den Feri­en unse­re kom­plet­te IT-Struk­tur. Ich habe in den letz­ten Tagen dar­über viel nach­ge­dacht und mit Vir­tu­al­box flei­ßig klei­ne, vir­tua­li­sier­te Net­ze gebaut. Ziel war es, etwas zu ersin­nen, was einer­seits tech­nisch für eine Lehr­kraft beherrsch­bar ist, ander­seits mög­lichst vie­le didak­ti­sche Mög­lich­kei­ten eröff­net. Zudem spie­len natür­lich auch Wirt­schaft­lich­keits­über­le­gun­gen und öko­lo­gi­sche Aspek­te eine Rol­le (man muss es ja dem Schul­trä­ger auch ver­mit­teln kön­nen). Her­aus­ge­kom­men ist das hier:

Kern ist das LTSP-Pro­jekt. Ein schö­ner Eins­tig in das grund­sätz­li­che Prin­zip fin­det sich auf Wiki­pe­dia: Man degra­diert sämt­li­che Schü­ler­rech­ner zu rei­nen Anzei­ge­ge­rä­ten. Fest­plat­ten und nicht erfor­der­li­chen RAM reißt man her­aus, ver­ram­melt das BIOS mit einem Pass­wort und lässt die Kis­ten per PXE vom LTSP-Ser­ver boo­ten – das muss pro Tag ein­mal gesche­hen und dau­ert kür­zer als ein WinXP-Start (Was nicht viel hei­ßen will…).

Damit ent­fällt sämt­li­che Turn­schuh­ad­mi­nis­tra­ti­on und auch die emp­find­lichs­ten Kom­po­nen­ten von PCs sind eli­mi­niert. Soft­ware muss nur noch auf einem Gerät instal­liert wer­den und ist dann auf allen Cli­ents ver­füg­bar. Als Anzei­ge­ge­rät ist ein Pen­ti­um I mit 133Mhz und halb­wegs brauch­ba­rer Gra­fik­kar­te aus­rei­chend. Schön wären natür­lich ech­te Thin­Cli­ents, am bes­ten in ein LCD-Panel inte­griert – so dürf­te es lei­se und kühl im PC-Raum wer­den. Alle Anwen­dun­gen lau­fen auf einem zen­tra­len Ser­ver, der natür­lich ein Ser­ver und kein Spiel­zeug sein muss (Hexa­co­re, 32GB RAM, RAID10, red­un­dan­te Netz­tei­le – die 4000-Euro-Klas­se halt). Sound kann man bidi­rek­tio­nal an die Cli­ents wei­ter­rei­chen, mit Video klappt es auch, wenn die Anbin­dung stimmt und man auf HD-Mate­ri­al ver­zich­ten mag.

Der Ser­ver kann aller­dings nur Linux (Ubun­tu). Damit kann man sur­fen, schrei­ben, Audio bear­bei­ten u.v.m. – das Wich­tigs­te halt. Die meis­ten Diens­te ver­la­gern sich eh in die Cloud. Es ist nicht schwer, GNOME einen Win­dows7- oder XP-Look auf­zu­zwin­gen – aber das hal­te ich für eine Art Betrug. Die meis­ten „Win­dowsia­ner“ kom­men mit mei­nem Net­book erstaun­lich gut klar und den Desk­top kann man ja vor­struk­tu­rie­ren mit net­ten, ein­fa­chen Icons. Mit WINE habe ich bis­her zusätz­lich fast alle Soft­ware zum Lau­fen gebracht, die auf unse­ren jet­zi­gen WinXP-Cli­ents vor sich hin­ve­ge­tiert. Hier sind vor allem mit den Her­stel­lern lizenz­recht­li­che Fra­gen zu klä­ren, da es WINE recht egal ist, ob eine Word2010-Instanz 25x von ver­schie­de­nen Nut­zern gestar­tet wird…

Datei­en las­sen sich auf USB-Medi­en spei­chern, die LTSP von den Cli­ents durch­ge­reicht bekommt, oder man nutzt NFS (ist bei LTSP lei­der so) mit fes­tem Quo­ta für jeden Nut­zer­ac­count (gefühlt 1GB, dann wür­de bei uns noch die 2GB-Plat­te für die gan­ze Schul­ge­mein­schaft bei Voll­aus­las­tung reichen).

Die Nut­zer­ver­wal­tung mache ich tra­di­tio­nell über LDAP. Dann kann man den Pro­xy dar­über mit Anmel­dung lau­fen las­sen. Außer­dem lässt sich das Ding so schön per Skript mit einem kas­trier­ten Export der Schü­ler­da­ten­bank füt­tern (inkl. Ord­nung nach Klas­sen) – das Skript gibt es schon für die Anbin­dung unse­res Web­an­ge­bots. Das ist übri­gens der här­tes­te Teil der Geschich­te. LDAP hat dafür aber auch den Vor­teil, dass es mit RADIUS spricht – ein net­tes Spiel­zeug (man kann in LTSP auch die Cli­ent­kon­fi­gu­ra­ti­on dar­über machen). So mel­det man sich per WLAN in der Schu­le mit den gewohn­ten Netz­werk-Log­in­da­ten an, jeder WLAN-Rou­ter kriegt sein eige­nes Netz, (dann gehen die IPs so schnell nicht aus) man kann fest­le­gen, wer sich wann anmel­den darf (abends braucht man kein Netz, oder?) usw.. Dann noch ein AdHoc-Netz, um das gan­ze Schul­ge­län­de zu bestrah­len… (träum…). Aber das wird eh die Zukunft – mehr als der per­sön­li­che Desk­top auf dem Schulserver.

Eini­ge Din­ge gehen par­tout nicht unter Linux. Dafür wür­de ich ger­ne einen WindowsServer2008RC2 hin­stel­len, der über 25 Accounts ver­fügt. Bei der Anmel­dung am LTSP kann man sich dann ent­schei­den, ob man Win­dows möch­te oder nicht und sowohl der Ser­ver als auch die Soft­ware­li­zen­zen sind bei 25 Cli­ents noch über­schau­bar teu­er. Ob man nun einen RDesk­top oder die die Aus­ga­be eines XSer­vers an die Cli­ents wei­ter­lei­tet, ist wohl egal. Viel­leicht lässt sich der Win­dows­Ser­ver sogar vir­tua­li­sie­ren, wenn man den LTSP-Ser­ver noch dicker… .

Das Schö­ne an die­sem Kon­zept ist sei­ne Modu­la­ri­tät: Man kann klein anfan­gen und sich dann stei­gern – allein der LTSP-Ser­ver mit sei­ner Hard­ware, den braucht man schon. Die Cli­ents sind ja schon da. Wenn man völ­lig bekloppt sein will, ver­legt man alle jet­zi­gen Cli­ents in vir­tu­el­le Maschi­nen und nutzt deren Lizen­zen weiter.

Was kos­tet das Gan­ze? Im Voll­aus­bau schät­ze ich eine Sum­me von 10000,- Euro (ohne Cli­ents und wenn man es selbst macht: LTSP ist in Ubun­tu sehr gut vor­kon­fi­gu­riert und recht schnell auf­ge­setzt). Wenn man 50 Cli­ents erneu­ern oder durch Note­books erset­zen möch­te, darf jedes nur 200,- Euro kos­ten, damit es „bil­li­ger“ wird. Für den Anfang tut es auch nur der LTSP-Ser­ver und der VLAN-fähi­ge Switch – dann kommt man wohl mit der Hälf­te hin und hat recht aktu­el­le, leicht wart­ba­re Systeme.

Der eigene URL-Shortener

Mar­kus erklärt in sei­nem Blog, war­um es Sinn macht, einen eige­nen URL-Shor­te­ner zu ver­wen­den. Ich kann dem wenig hin­zu­fü­gen und habe es ihm fast gleich­ge­tan – allein für ein neu­es Mul­ti­do­main-SSL-Zer­ti­fi­kat habe ich noch nicht die Muße gefun­den. Für den eige­nen URL-Shor­te­ner neh­me man

  1. Jeden 0815-Web­space mit PHP, MyS­QL und mod_­re­wri­te-Unter­stüt­zung – das bie­tet heu­te fast jedes Einsteiger-Paket.
  2. Eine mög­lichst kur­ze Domain. Es gibt noch zahl­rei­che Drei­buch­sta­ben-DE-Domains. Eine DE-Domain buche ich z.B. über mei­nen gemie­te­ten Robot in Echt­zeit für 3,90 Euro/Jahr.
  3. Ein fer­ti­ges Script, z.B. Yourls.

lighttpd-User wie ich haben es nur unwe­sent­lich schwe­rer, da die Rewri­te-Engi­ne etwas anders funk­tio­niert. Für den ent­spre­chen­den vhost trägt man hier ein:

$HTTP["host"] == "domain.tld" {
        server.document-root = "/pfad/zu/yourls"
        url.rewrite-once = (
        "^/([0-9A-Za-z]+)?$" => "/yourls-go.php?id=$1",
        "^/([0-9A-Za-z]+)?\+$" => "/yourls-infos.php?id=$1" )
}

… und schon hat man nach ein wenig Doku den eige­nen Kurz-URL-Dienst (lei­der klappt der Auf­ruf der Haupt­do­main so noch nicht). Mei­ner hört auf

http://www.m9r.de

und ist genau wie Mar­kus‘ Instal­la­ti­on nicht öffent­lich zugäng­lich, um Ärger mit bestimm­ten Zeit­ge­nos­sen zu ver­mei­den. Dass das klappt, lässt sich ganz gut mit mei­nem momen­ta­nen Lieb­lings­nach­denk­ar­ti­kel über Face­book zei­gen: http://m9r.de/3 (mit Dank an Andre­as Kalt).

Man han­delt sich in der Grund­ver­si­on wie­der eini­ge Daten­schutz­her­aus­for­de­run­gen ein, die sich aber lösen las­sen. Neben­bei weiß ich jetzt, wie oft mei­ne Kurz-URLs auf Twit­ter tat­säch­lich geklickt wur­den und es ent­steht qua­si neben­bei eine hüb­sche Link­samm­lung in der Daten­bank. Jetzt noch ein paar Tags und schon braucht es oben­drein auch kaum noch Bookmarks.

Das Quiz-Script Framework

Müs­sen alle Online-Tests über­wacht wer­den? (Nein) (!Ja) (!man­che)

Fin­dest du das Test-Inter­face von Mood­le gut? (!Ja) (Nein)

Inter­es­siert dich das Frame­work? (Ja) (!Nein)

Ein­lei­tung

Wenn ihr den obe­ren, natür­lich per Quiz-Script erstell­ten Test bestan­den habt oder auch nicht, dann ist viel­leicht die­se noch recht wenig bekann­te Ent­wick­lung von Felix Ries­te­rer etwas für euch. Die Leu­te von zum.de haben die Mög­lich­kei­ten erkannt und das Quiz-Script mit in ihre Wiki-Platt­for­men inte­griert. Hier gibt es auch Anlei­tun­gen für den Ein­satz. Die Anlei­tung zur Ein­bin­dung in Media­wi­ki ist in der dort skiz­zier­ten Form in mei­nen Augen aller­dings unbrauch­bar – daher unten mei­ne Vari­an­te. Trotz­dem bin ich dar­über über­haupt erst auf die Idee gekommen.

Was ist das Quiz-Script-Framework?

Die Demo­sei­te des Autors zeigt schon­mal, was das Quiz-Script-Frame­work kann. Ich sehe den Ein­satz vor in sprach­li­chen Fächern – end­lich mal etwas für uns… Wer schon ein­mal mit Mono­li­then wie Mood­le Tests erstellt und sich dabei tot­ge­klickt hat, wird das Kon­zept begrü­ßen: Nicht der Web­ser­ver macht die Haupt­ar­beit, son­dern der Brow­ser, indem ein­fach im HEAD jeder belie­bi­gen HTML-Datei drei ein­fa­che Java­Script-Auf­ru­fe dekla­riert wer­den. Des­we­gen ist das Script prin­zi­pi­ell auch in jeder Anwen­dung ein­setz­bar (z.B. in Word­Press, s.o.), die euch ermög­licht, das Tem­p­la­te (meist header.php) zu gestal­ten. Nicht geeig­net ist es für den TinyMCE-Edi­tor, da des­sen Sicher­heits­me­cha­nis­men auch im HTML-Modus die Tags zer­ha­seln, die das Script zum Erken­nen einer Test­sek­ti­on benötigt.

Bei­spiel – Ein­bin­dung in Mediawiki

Schritt 1:

Zunächst braucht ihr die Exten­si­on „Java­script“. Die­se besteht nur aus einer ein­zi­gen Datei namens Javascript.php. Die legt ihr in einen neu erstell­ten Ord­ner mit dem Namen „Java­script“. Das muss ein Unter­ord­ner des Media­wi­ki-Ord­ners „exten­si­ons“ sein. Ihr könnt natür­lich den Datei- und Ord­ner­na­men klein schrei­ben. 

Schritt 2:

In der Datei „LocalSettings.php“ im Stamm­ver­zeich­nis der Media­wi­ki­in­stal­la­ti­on ergänzt ihr ganz unten die Zeile:

include("$IP/extensions/Javascript/Javascript.php");

Schritt 3:

Das Quiz-Script-Frame­work könnt ihr hier gezippt her­un­ter­la­den. Nach dem Ent­pa­cken ent­steht ein Ord­ner „quiz“. Den Inhalt des Ord­ners ladet ihr nun in das Ver­zeich­nis /extensions/Javascript. Da war es schon.

Bei­spiel – Ein­bin­dung in ande­re Scripten:

Alle ande­ren sor­gen ein­fach dafür, dass im HEAD-Bereich fol­gen­de Zei­len auftauchen:

<script src="pfad_zu/quiz/quiz.js" type="text/javascript"></script>
<script src="pfad_zu/quiz/multilingual.js" type="text/javascript"></script>
<script src="pfad_zu/quiz/utf8-normalizer.js" type="text/javascript"></script>

… und schon steht auch dort die Funk­tio­na­li­tät des Quiz-Script Frame­works zur Verfügung.Natürlich klappt das auch auf jeder simp­len HTML-Seite.

Aus­bli­cke

  1. Ich expe­ri­men­tie­re gera­de damit her­um, SuS selbst Online-Recht­schreib­übun­gen inner­halb eines Wikis erstel­len zu las­sen. Das klappt auch mit der 6. Klas­se – Drag&Drop – so kom­plex ist der Code nicht.
  2. Man kann das Script natür­lich ent­spre­chend den eige­nen Vor­stel­lun­gen edi­tie­ren, da es im Quell­text vorliegt.
  3. Per Java­script las­sen sich auch Input-Fel­der eines For­mu­lars vor­be­le­gen – und dann in eine Daten­bank schrei­ben (z.B.) – dann rech­net der Cli­ent und nicht wie bei Mood­le ein PHP-Mons­ter. Baut wer mal ein Modul?
  4. In der vor­lie­gen­den Form ist das Script zum Üben her­vor­ra­gend – für Leh­rer mit chro­ni­scher Kon­trol­li­tis uns Sta­tis­ti­tis abso­lut unge­eig­net (so ste­hen z.B. die Lösun­gen im Sei­ten­quell­text – kann man aber aus­blen­den – wei­ter unten auf der Sei­te)… Die müs­sen doch wie­der z.B. Mood­le nehmen…
1 11 12 13 14 15 24