Mitmachen bei der Tool-Entwicklung!

Die Tools, die wir im Projekt jugend.beteiligen.jetzt (mit)entwickeln, stehen alle unter einer Open-Source-Lizenz. Das bedeutet, dass der gesamte Programmiercode eingesehen und verändert werden kann. Schon während der Entwicklung könnt ihr euch einklinken, kommentieren, Fragen und Vorschläge einbringen oder selbst mit Programmcode beitragen. Auch (möglichst konkrete) Fehlerbeschreibungen helfen uns weiter.

Wie die Tools entwickelt werden

Die Entwicklung der Tools wird dabei über eine Versionsverwaltung organisiert. Diese hilft dabei, dass mehrere Personen Funktionen und Code beitragen können, ohne die Arbeit der Anderen aus Versehen zu überschreiben oder zu zerstören. Die populärste Versionverwaltung ist das freie »Git«. Die Entwicklung eines Projekts erfolgt dabei in einem sogenannten »Repository«, also einem digitalen Programm-Depot. Diese Repositorys kann man selbst verwalten, oder man nutzt eine der großen Plattformen hierfür. Bekannt sind Github, Gitlab oder auch Sourceforge. Diese Plattformen bieten neben der reinen Code-Verwaltung noch Zusatzfunktionen wie Wiki-Seiten, einen Issue-Tracker (Probleme und Ideen diskutieren) oder automatisches Analysieren von einigen Sicherheitsmängeln im Programmcode. Nicht alles muss für die Öffentlichkeit bestimmt sein: Projekte können zudem in geschützten Bereichen entwickelt werden.

Hier findet ihr einige der Tool-Repositorys:

Antragsgrün
github.com/CatoTH/antragsgruen/

Barcamptools
github.com/comlounge/camper/

ePartool
github.com/DeutscherBundesjugendring/epartool/

Etherpad (Basis für Yourpart.eu-Server)
github.com/ether/etherpad-lite/

Kaidan XMPP
invent.kde.org/kde/kaidan/

votAR
github.com/DBJRdev/votar/

Wechange.de
github.com/wechange-eg/cosinnus-devops/

Übersetzen statt Programmieren

Wer sich eher mit Fremdsprachen als mit Programmiersprachen auskennt, ist ebenso herzlich willkommen. Wir wollen unsere Tools in weiteren Sprachen zur Verfügung stellen – und bei den bereits bestehenden Übersetzungen kommen durch neue Funktionen ja auch immer neue Beschriftungen und Texte hinzu.

Auch die Übersetzungsdateien finden sich in den Repositorys. Je nach Tool unterscheiden sich jedoch die Arten, wie Übersetzungen am besten bearbeitet (oder bei zusätzlichen Sprachen: angelegt) werden. Wir helfen gerne beim Einstieg – meldet euch einfach!

Antragsgrün
github.com/CatoTH/antragsgruen/tree/master/messages

Barcamptools
github.com/comlounge/camper/tree/master/camper/translations

ePartool
github.com/DeutscherBundesjugendring/epartool/tree/master/install/languages

Etherpad (Basis für Yourpart.eu-Server)
github.com/ether/etherpad-lite/tree/develop/src/locales

Kaidan XMPP
invent.kde.org/kde/kaidan/tree/master/i18n

Wechange.de
github.com/wechange-eg/cosinnus-devops/tree/master/devops/locale

Die Augmented-Reality-App votAR ist bisher noch nicht für Mehrsprachigkeit vorbereitet.

In eigener Sache: DBJR sucht Mitarbeiter*in für Digitales zur Aufstockung des Teams

Der Deutsche Bundesjugendring sucht zum nächstmöglichen Termin eine*n Mitarbeiter*in zur Unterstützung der Digitalisierung im DBJR mit einem Beschäftigungsumfang von 50% der betrieblichen Arbeitszeit. Die Stelle ist zunächst befristet bis 31. Dezember 2020. Eine Weiterbeschäftigung wird angestrebt. Bewerbungsfrist ist der 6. Januar 2020.

Detaillierte Informationen gibt’s unter www.dbjr.de/artikel/mitarbeiterin-fuer-digitales-gesucht/

Onlinekurs »Alles was Recht ist« zu digitaler Jugendbeteiligung

Die Kolleg*innen in unserem Partnerprojekt bei IJAB haben einen Online-Kurs zu Rechtsfragen rund um digitale Partizipation aufgesetzt. Dieser MOOC (Massive Open Online Course) ist für Teilnehmende kostenfrei und beginnt am 14. Oktober. Später einsteigen ist natürlich ebenfalls möglich.

Um was geht’s?

Der MOOC vermittelt Grundlagenwissen zu rechtlichen Fragen, die relevant werden, wenn Jugendliche digital beteiligt werden. Für die Umsetzung gibt es Hilfestellungen, gute Beispiele und Tipps von Expert*innen aus der Praxis. Interaktive Elemente runden den Kurs ab.

Die Teilnahme am Kurs ist auf vier Wochen angelegt. Ungefähr zwei Stunden Arbeitsaufwand pro Woche solltet ihr einplanen. Am Ende erhalten die Teilnehmenden ein Weiterbildungszertifikat.

Wer hat den Kurs entwickelt?

Das Projekt jugend.beteiligen.jetzt ist Initiator und Mitgestalter des Online-Kurses zum Thema digitale Beteiligung (kurz: jbjMOOC). Gemeinsam mit Kristin Narr, Medienpädagogin, und Verena Ketter, Professorin für Medien in der Sozialen Arbeit an der Hochschule Esslingen, wurde das Konzept für den jbjMOOCrecht erarbeitet. Der jbjMOOCrecht setzte bereits in der Konzeptions- und Planungsphase auf die Beteiligung und die Mitgestaltung junger Menschen. Studierende der Hochschule Esslingen produzierten partizipativ in einem Seminar innerhalb des Sommersemesters 2019 die Videos und stellen ihre Erfahrungen mit den Anwendungen als Videotutorials zur Verfügung.

Hier geht’s zur Anmeldung auf der Plattform oncampus »

In eigener Sache: DBJR sucht Mitarbeiter*in für Digitales zur Aufstockung des Teams

Der Deutsche Bundesjugendring sucht zum nächstmöglichen Termin eine*n Mitarbeiter*in zur Unterstützung der Digitalisierung im DBJR mit einem Beschäftigungsumfang von 50% der betrieblichen Arbeitszeit. Die Stelle ist zunächst befristet bis 31. Dezember 2020. Eine Weiterbeschäftigung wird angestrebt. Bewerbungsfrist ist der 18. August 2019.

Detaillierte Informationen gibt’s unter www.dbjr.de/artikel/mitarbeiterin-fuer-digitales-gesucht/

Einladung: Workshop-Reihe Digitale Jugendarbeit #2

Mit unserer Workshop-Reihe wollen wir Digitale Jugendarbeit in Theorie und Praxis voranbringen. Der Workshop #2 findet am 11. September 2019 von 10 bis 16 Uhr in Berlin statt.

Foto: Philipp Katzenberger/Unsplash (CC0)

Unsere Ziele für die Workshop-Reihe sind: Praktische und konkrete Herausforderungen der Digitalen Jugendarbeit meistern, kollegialen Austausch fördern und eine DBJR-Strategie zu Digitaler Jugendarbeit entwickeln. Der Theorieteil am Vormittag richtet sich vor allem an Aktive in Jugendverbänden, ist aber offen für Interessierte. Der Praxisteil am Nachmittag ist insbesondere für Menschen aus der Jugendarbeit gedacht, die schon mit Fragen und ihrer Suche nach Lösungen zum Workshop kommen und diese Erfahrungen in die Diskussion einbringen möchten.

Im Praxisteil werden wir uns diesmal besonders Aspekten von Wissensmanagement, Qualifizierung und dem Einsatz von Mixed Reality (Virtual Reality, Augmented Reality usw.) zuwenden.

Die ANMELDUNG ist bis 2. September möglich. Die Teilnahme ist kostenlos. Reisekosten werden nicht erstattet. Bei Fragen meldet euch einfach bei per E-Mail bei digital@dbjr.de.

Einladung: Workshopreihe Digitale Jugendarbeit #1

Mit einer Workshopreihe wollen wir Digitale Jugendarbeit in Theorie und Praxis voranbringen. Unsere Ziele: Expert*innen vernetzen, praktische und konkrete Herausforderungen der digitalen Jugendarbeit meistern, kollegialen Austausch fördern und eine DBJR-Strategie zu Digitaler Jugendarbeit entwickeln.

Der Workshop #1 am 26. Juni 2019 (von 10 bis 16 Uhr) beschäftigt sich mit Potenzialen und Bedarfen Digitaler Jugendarbeit (Theorie) sowie mit Cloud und OpenSource-Angeboten in der Jugendarbeit (Praxis). Termine für die weiteren Workshops sind #2 am 11. September 2019 und #3 am 6. November 2019. Anmeldungen bitte bis 17. Juni 2019 unter https://dbjr.de/formulare/ws-d1/.

Die Teilnahme ist kostenlos. Reisekosten werden nicht erstattet.

Bei Fragen meldet euch einfach bei per E-Mail bei digital@dbjr.de.

Auf Fehlersuche? Tipps zu ePartool, Antragsgrün, Nextcloud, WordPress & Co.

Wenn dieser Fehler auftaucht, ist guter Rat teuer … oder?

Mittlerweile stehen viele hochwertige Open-Source-Anwendungen für eure Onlineauftritte oder Onlinezusammenarbeit zur Verfügung. Auch wenn sich Entwickler*innen große Mühe geben eine tolle Software zu schreiben, so schleichen sich doch immer wieder Fehler ein. Ebenso können sich im Zusammenspiel zwischen Anwendung und eigenem Server Probleme auftun, die einer Lösung bedürfen. Vor der Lösung steht jedoch die Fehlersuche: Oft lässt sich nicht per Augenschein erkennen, woran es hakt. Im Folgenden geben wir ein paar Tipps, wie ihr euch dem Problem nähert.

Die Log-Datei ist dein Freund!

Glücklicherweise werdet ihr bei der Fehlersuche von der Software aktiv unterstützt. Die meisten Anwendungen und auch die Server selbst legen verschiedene Protokoll-Dateien an. In diesen wird aufgezeichnet, welche Aktionen stattgefunden haben bzw. bei welchen Aktionen unvorhergesehene Ereignisse auftraten. Aus unserer Erfahrung lohnt es sich bei Problemen im ersten Schritt die Log-Dateien der betroffenen Anwendung anzusehen. Die meisten Fehler lassen sich hierüber bereits eingrenzen.

Log-Dateien werden fast immer als Dateien mit der Endung .log angelegt. Es handelt sich dabei aber in der Regel um Textdateien, die sich mit jedem beliebigen Editor öffnen lassen (Notepad, Wordpad, usw.).

In den Logs der Anwendungen wird in der Regel protokolliert, wenn einzelne Funktionen oder Programmbibliotheken eine Aufgabe nicht ausführen konnten. Das könnte z.B. daran liegen, dass Zugriffsrechte nicht korrekt gesetzt waren, benötigte Dateien nicht gefunden wurden, ein Datenbankserver nicht oder nicht schnell genug geantwortet hat, oder Funktionen schlichtweg Fehler hatten (Beispiel: Versuch durch 0 zu teilen). Dennoch können sich die Inhalte der Log-Dateien bisweilen sehr unterscheiden – die Entwickler*innen können sich dafür entscheiden, nicht nur fatale Fehler zu vermerken, sondern auch bereits Warnmeldungen oder auch erfolgreich durchgeführte Aktivitäten. Letzteres kann zwar von Interesse für die Entwickler*innen sein, allerdings im Dauerbetrieb auch mit Datenschutzerfordernissen kollidieren. Daher lassen sich Anwendungen häufig darauf konfigurieren, ob sie sich im Betriebsmodus für „Entwicklung“ (development, debug modus) oder für „Produktion“ befinden.

Anhand von vier Anwendungen möchten wir euch beispielhaft aufzeigen, wo Log-Dateien zu finden sind:

Antragsgrün: Die Software zur demokratischen Texterstellung führt eine Log-Datei unter /runtime/logs/app.log. Die Einträge sind dabei sehr ausführlich gehalten.

ePartool: Das DBJR-Konsultationswerkzeug führt eine Log-Datei unter /runtime/logs/application.log. Die neuesten Einträge finden sich ganz unten.

Nextcloud: Die populäre Open-Source-Plattform für Dateiaustausch und Zusammenarbeit führt zwei unterschiedliche Log-Dateien. Während die Datei /data/updater.log nur über Installationsvorgänge Buch führt, ist die Datei /data/nextcloud.log für den täglichen Betrieb gedacht. Nextcloud beinhaltet zudem eine Zugriffsmöglichkeit auf diese Log-Datei über das Admin-Backend. Hier kann man auch einstellen, welche Art von Fehlern oder Problemhinweisen protokolliert werden sollen.

WordPress: In der Standardinstallation führt das CMS keine Log-Datei. Durch zwei Einträge in der Datei wp-config.php kann das Loggen aber aktiviert werden:

define('WP_DEBUG', true);

define('WP_DEBUG_LOG', true);

Weitere Informationen finden sich unter https://codex.wordpress.org/Debugging_in_WordPress.

Wenn man Log-Dateien über das administrative Backend betrachten und auswerten möchte, muss zudem ein Plugin installiert werden, z.B. der »Error Log Monitor« [https://de.wordpress.org/plugins/error-log-monitor/]

Weitere Log-Dateien

Gelegentlich helfen die Log-Dateien der Anwendungen aber nicht weiter. Das kann daran liegen, dass die Anwendung auf Probleme stößt, die außerhalb ihrer eigenen Analysemöglichkeit liegen. Im Extremfall wäre das bei einem Hardware-Defekt der Fall: Ob alle Kabel richtig stecken oder ob der Servercomputer selbst richtig rechnet, kann eine Anwendung kaum erkennen. Auf Log-Dateien der Betriebssystem-Ebene hat man jedoch in der Regel als Mieter*in eines Webhostings keinen Zugriff. Professionelle Provider stellen durch Überwachungsprogramme sicher, dass diese Art von Fehlern von ihnen selbst zeitnah entdeckt werden.

Zwischen dem Betriebssystem und Anwendungen wie den vier oben genannten liegt allerdings noch die installierte Web-Server-Software. Ein Web-Server ist meist als Sammelbegriff mehrerer Programme zu verstehen und beinhaltet neben dem eigentlichen Web-Server-Programmen wie Apache oder Nginx auch die PHP-Programmiersprache oder eine Datenbank). Diese alle führen ebenfalls Log-Dateien.

Welche Log-Datei hilft wann:

Web-Server: Hier werden der Zeitpunkt und die Herkunft der Zugriffe (IP-Adressen), Größe der abgerufenen Dateien und Statusmeldungen zu den einzelnen Verbindung geloggt. So lässt sich schnell herausfinden, ob es zeitgleich übermäßig viele Zugriffe gab (und daher der Server sehr langsam wurde) oder ob bestimmte Dateien nicht gefunden wurden (die bekannte Statusmeldung 404). Probleme im internen Programmablauf, die nicht die Zugriffe betreffen, werden meistens in einer separaten Log-Datei protokolliert.

PHP: Programmierfehler sind häufig kleine Tippfehler, wie eine vergessene Klammer zum Abschluss einer Funktion oder ein Buchstabendreher. Wenn der PHP-Interpreter nicht versteht, was er zu tun hat, können diese Fehler entweder geloggt oder direkt angezeigt werden. Letzteres hilft zwar, Fehler schnell zu finden, verrät aber Externen auch viel über mögliche Angriffspunkte. Bei PHP-Skripten kann man auch ohne viel Programmiererfahrung das Anzeigen von Fehlern aktivieren, indem man in die ersten Zeilen (nach dem Startkennzeichen <?php) folgende Befehle ergänzt:

error_reporting(E_ALL);
ini_set('display_errors', '1');

Voraussetzung dafür, dass nun konkrete Fehlermeldungen angezeigt werden, ist, dass der Server grundsätzlich dazu konfiguriert ist. Bei den meisten Providern lässt sich das im Administrationsmenü aktivieren und wieder deaktivieren. Bei direktem Server-Zugang und Schreibrechten auf die php.ini-Einstellungsdatei lässt sich dies durch display_errors = on aktivieren.

Datenbank: Da es verschiedene weit verbreitete Datenbanken gibt, fällt die Erkenntnismöglichkeit hier sehr unterschiedlich aus. General lässt sich über die Log-Datei herausfinden, ob der Service korrekt gestartet wurde, ob es gescheiterte Zugriffsversuche gab (z.B. wenn die Zugangspasswörter in der zugreifenden Anwendung falsch abgespeichert waren). Möglicherweise kann man über die Statusmitteilungen auch herausfinden, ob Datenbank-Anfragen ineffizient gestellt wurden und daher sehr lange zur Beantwortung brauchten oder gar komplett scheiterten. Dies könnte z.B. der Fall sein, wenn Suchindizes nach größeren Datenveränderungen nicht neu angelegt wurden oder durch zu viele parallel Schreibvorgänge versucht wurden. Auch der Ursprung von fehlerhafte Zeichenausgabe (Umlaute oder falsche Symbole) könnte hier liegen: Die Kette der Zeichenkodierung muss von der Datenbankablage über die Verbindung und Verarbeitung bei der Anwendung bis hin zum Browser bei den Nutzer*innen durchgehend richtig sein.

Der Einfluss von Fehler-Logs auf die Rechenzeit

Das Erstellen von Log-Dateien benötigt immer etwas Rechenzeit. Diese fällt umso größer aus, wenn man sich auf einem höheren Software-Level befindet (System → Server-Software → Anwendung). Daher lohnt es sich bei viel frequentierten Internet-Angeboten, im stabilen Betrieb das Logging durch die Anwendungen soweit wie möglich zu reduzieren.

Tipp: Nextcloud komfortabler verwalten mit »OCC Web«

Nextcloud ist ein datenschutzbewusster Gegenentwurf zu den großen Cloudanbietern und bietet vielfältige Möglichkeiten für Dateiaustausch und Onlinezusammenarbeit. Diese selbst betriebene Cloud ist dabei ausgesprochen genügsam: Sogar auf einfachen, gemieteten Webhosting-Paketen kann Nextcloud eingerichtet und mit Freund*innen und Kolleg*innen genutzt werden – sogar noch parallel zu einer bestehenden Website. Zusätzlich Kosten für den Betrieb können so vermieden werden.

Wer so eine kleine Nextcloud-Instanz betreibt, kann damit ohne Weiteres mit 20-50 gleichzeitig aktiven Nutzer*innen zurechtkommen: Die meisten Funktionen und Erweiterungs-Apps funktionieren ganz wunderbar. Einschränkungen treten im Betrieb am ehesten in Erscheinung, wenn mehrere Personen zeitgleich mit derselben Datei arbeiten oder auf aufwändige Funktionen zugreifen. In solchen Fällen geht nichts kaputt, aber es kann passieren, dass Nextcloud Dateien zu konservativ vor einem Löschversuch schützt.

Während die Nutzung von Nextcloud auf einfachen Webhosting-Paketen gut möglich ist, sind hier vor allem die administrativen Funktionen eingeschränkt: Auf einem „richtigen“ Server kann das Nextcloud-eigene Konfigurationswerkzeug OCC benutzt werden; kostengünstige Shared-Hostings erlauben jedoch meist keinen SSH- und damit keinen Befehlszeilen-Zugriff. Das erschwert Wartungsarbeiten, insbesondere wenn nach einer Versionsaktualisierung bestimmte Datenbank-Aktionen oder Neuindizierungen empfohlen werden oder zentrale Aufgaben für mehrere Nutzer*innen anstehen. Diese Aufgaben per Hand direkt in der Datenbank oder in diversen Installationsverzeichnissen zu erledigen ist unkomfortabel, technisch anspruchsvoll und fehleranfällig. Bisher gab es dazu aber keinen anderen Weg.

Das Wehklagen der Admins wurde von den Nextcloud-Entwickler*innen jedoch ernst genommen: Seit wenigen Tagen existiert ein Plug-in (in Nextcloud-Sprache: „App“), das die Befehlszeileneingabe direkt im Backend nachrüstet: Ein Admin kann sich also ins Backend einloggen und die notwendigen OCC-Befehle hierüber eingeben. Auch ist diese „OCC Web“ genannte Erweiterung recht hilfsbereit und zeigt nach Drücken der ENTER-Taste alle verfügbaren Befehle und deren Bedeutung an. Auch Wartungsfunktionen für andere installierte NC-Apps stehen bereit.

Befehlsübersicht von OCC_Web

Als Admin sollte man sich bei allen Vorteilen von »OCC Web« dennoch überlegen, ob man diese Erweiterung nur anlassbezogen oder dauerhaft einrichtet. Möglicherweise tun sich über die administrativen Funktionen Angriffsvektoren für Bots oder Schädlinge auf, die die Nextcloud-Instanz übers Web erreichen können. Generelle gilt, dass jede installierte App stellt ein mögliches Einfalltor darstellt, vor allem wenn sie sich noch recht jung in Entwicklung befindet. Daher könnte es sinnvoll sein, OCC Web nur im konkreten Bedarfsfall zu installieren und danach wieder herauszunehmen – in Nextcloud eine Sache von wenigen Sekunden.

Und wofür steht nun eigentlich das Kürzel »OCC«? „OCC“ wurde bereits eingeführt, als sich das Nextcloud-Projekt noch nicht von OwnCloud abgetrennt hatte. Daher bedeutet die Abkürzung OCC vermutlich „OwnCloud Configuration“ und wurde in Nextcloud so beibehalten.

In eigener Sache: Wechsel vom Gender_gap zum Gender*sternchen

Im Deutschen Bundesjugendring kommen junge Menschen mit sehr unterschiedlichen Hintergründen zusammen. Wir verstehen Vielfalt als eine Stärke der verbandlichen und offenen Jugendarbeit. Dazu gehört auch, dass wir uns Gedanken darüber machen, wie barrierearm und inklusiv unsere Angebote sind.

Ein Bereich ist die Sprache, die wir in direkter Kommunikation oder in Veröffentlichungen verwenden. Seit mehreren Jahren benutzen wir z.B. den »Gender_Gap« (Unterstrich), um deutlich zu machen, dass wir alle Menschen ansprechen möchten unabhängig von ihrer Geschlechtsidentität (Bsp: Schüler_innen).

Mittlerweile hat statt des Gender_Gap aber das Gender*sternchen eine größere Verbreitung gefunden. Der Gedanke hinter beiden Schreibweisen ist grundsätzlich gleich: Sie sollen ein Mittel der sprachlichen Darstellung aller sozialen Geschlechter und Geschlechtsidentitäten abseits der Zweigeschlechtlichkeit sein. In der deutschen Sprache wäre dies sonst nur durch Umschreibungen möglich. Das Zeichen wird eingefügt, um neben dem biologischen das soziale Geschlecht (Gender) darzustellen.

Im IT-Bereich steht das Sternchen als sog. »Wildcard« für eine beliebige Anzahl von Zeichen. Im queeren Zusammenhang taucht es schon länger vor allem als Trans* auf, um abgekürzt Transgender, Transsexuell und Transidentität auszudrücken.

Künftig werden wir unsere Artikel und auch die Tools, sofern noch nicht geschehen, mit der Schreibweise des Gender*sternchens veröffentlichen.

DSGVO-Artikelserie (4): Keine Angst vorm Datenschutz! (Präsentation)

Unsere bisher dreiteilige Artikelserie hat viel Anklang gefunden. Wir haben uns mit euren Anmerkungen und Fragen beschäftigt und die Artikelserie an mehreren Stellen ergänzt. Vielen Dank für euer Feedback!
Dem Bedarf an einer übersichtlichen Präsentation möchten wir zum Abschluss der Serie ebenfalls nachkommen. Mit dem Titel »Keine Angst vorm Datenschutz« ermöglicht die Präsentation einen vertieften Einstieg in die DSGVO und verweist auch auf damit zusammenhängende Regelungen in anderen Gesetzen. (Hinweis: Es handelt sich nicht um eine rechtliche Beratung.)

Startseite der PräsentationDie Präsentation steht als Vollbild-PDF zur Verfügung und ist wie alle Inhalte, unter einer CC-BY-Lizenz frei weiterverwendbar.

Herunterladen: 18-06-Keine-Angst-vorm-Datenschutz.pdf