Wie freie Software entsteht

Ob GIMP, VLC Media Player oder Linux – freie Software begegnet einem im alltäglichen Computerleben häufiger als man vielleicht erwartet. Doch was ist alles nötig, um solch ein Projekt auf die Beine zu stellen?

Jonah Brüchert, Mitentwickler des offenen Messengers »Kaidan« berichtet von seinen Projekterfahrungen.

Open-Source-Projekte beginnen oft als ein kleines Hobby der Entwickler*innen. Mit der wachsenden Bekanntheit des Projektes wachsen sie häufig darüber hinaus, denn die Nutzenden des Projektes wünschen sich meist neue Funktionen und finden Fehler. Auch die Anzahl der Mitwirkenden steigt oftmals und es wird nötig die Ausrichtung des Projektes festzulegen.

Dieser Artikel soll meine Erfahrungen am Beispiel des Projekts Kaidan schildern, das eine Chat-App mit besseren Datenschutzverhältnissen entwickelt. Kaidan war das erste größer angelegte Vorhaben, an dem ich beteiligt war. Auch anderen Beteiligten ging das ähnlich. So haben wir laufend dazu gelernt und auch einige Fehler gemacht, die sich in künftigen Projekten vermeiden ließen. Hoffentlich ist dieser Artikel dabei hilfreich.

Projektorganisation – von Leiten und Leiden

Zur Führung eines Projekts gibt es verschiedene Ansätze. In einigen Projekten ist der oder die Gründer*in eine Art Chef auf Lebenszeit, und entscheidet über Ziele und deren Umsetzung. Während dies den Vorteil einer oft sehr klaren Entscheidungslage hat, ist es auch eine sehr hohe Belastung für die Leitung des Projekts, die sich um alles Organisatorische kümmern muss. Nicht selten stellen diese Menschen irgendwann fest, dass sie gar keine Zeit mehr haben, das zu tun was ihnen eigentlich Spaß gemacht hat – nämlich die Programmierung. Zusätzlich kann dies auch zu einem Gefühl der Ungerechtigkeit bei den weiteren Team-Mitgliedern führen, die zwar vielleicht viel Code beitragen, aber gar nicht mit entscheiden dürfen.

Oft gibt es deswegen eine Art Kompromisslösung, also eine kleine Zahl von Beitragenden, die entweder durch ihre lange Teilnahme am Projekt oder sehr große Beiträge eine Führungsrolle einnehmen. Während dies deutlich gerechter ist, kommt es hin und wieder zu langwierigen Diskussionen oder Streits über die Zielsetzung des Projekts, die sehr kräftezehrend und manchmal sogar abstoßend auf neue Beitragende wirken können.

Die dritte Variante ist eine Umsetzung weitgehend ohne Führung. Oft reguliert sich solch ein Projekt durch soziale Effekte, wie z. B. dadurch, dass neue Mitwirkende oft bei denen, die lange dabei sind, nach Verbesserungsvorschlägen, Überprüfung von Änderungen oder der Meinung fragen.

Der herausragende Vorteil des dritten Ansatzes ist: Selbst wenn der oder die Gründer*in das Projekt verlässt, stellt dies kein grundsätzliches Problem dar. Denn es gibt meist andere Menschen, die seine oder ihre Arbeit übernehmen können. Dadurch kommt es nicht zu einem „Machtvakuum“. Allerdings entsteht manchmal auch eine Unklarheit über das Ziel, was ebenfalls in langen Diskussionen darüber enden kann, welche Funktionen aufgenommen werden sollten und welche nicht.

Kaidan, das Projekt an dem ich beteiligt bin, stellt am ehesten die zweite Variante dar, also die mit einer Gruppe von Entscheidenden. Allerdings hatten wir anfangs wenig Erfahrung mit der Organisation von Projekten, sodass wir uns nicht sicher waren, wie viele Regelungen nötig sind.

In der Entwicklung stellen sich nämlich oft Fragen zu Abläufen, z. B. ob jede Zeile Code erst durch eine*n andere*n Entwickler*in überprüft werden muss. Im Nachhinein lässt sich sagen, dass es vorteilhaft ist, solche Vorgaben von Anfang an festzulegen. Wenn die Frage dann aufkommt, ist sie auf diese Weise einfach zu beantworten und muss nicht schnell und überstürzt entschieden werden.

Öffentlichkeitsarbeit

Eine andere wichtige Aufgabe für den Erfolg eines Projekts ist die Bewerbung, damit potenziell Interessierte davon erfahren. Je nach Zielsetzung und aktuellem Fortschritt der Entwicklung können unterschiedliche Varianten sinnvoll sein.

Nutzende finden Software oft über eine Internetsuche. Es lohnt sich also eine interessante Website mit einer möglichst generell gehaltenen und verständlichen Beschreibung zu veröffentlichen. Um existierende Benutzer*innen über den Fortschritt der Entwicklung und neue Funktionen zu informieren oder Fragen zu beantworten, sind auch Präsenzen in sozialen Medien sinnvoll.

Es ist vorteilhaft, auf der Webseite oder in sozialen Medien ab und zu Status-Updates zu veröffentlichen, da Menschen dadurch regelmäßig an das Projekt erinnert werden. Im Idealfall verbreiten sie die Artikel sogar und sorgen so für eine größere Reichweite und Nutzerbasis.

Um sich mit anderen Entwickler*innen auszutauschen, ist die Teilnahme an Konferenzen mit inhaltlichem Bezug zum Projekt eine nützliche Sache: Während die Teilnahme oft sehr viel Spaß macht, ist es möglich viel von anderen zu lernen und sie über das eigene Projekt zu informieren.

Nutzerbasis pflegen und Projekt ausbauen

Nach ein bisschen Öffentlichkeitsarbeit werden Softwareprojekte oft schnell in Firmen, Vereinen oder in Privathaushalten eingesetzt. Dann ist es wichtig, dass Community-Pflege und konkrete Weiterentwicklung stattfindet. Deswegen sollte sichergestellt werden, dass nicht nur eine einzelne Person Schreibzugriff auf den Quellcode und die Infrastruktur besitzt. In den harmlosen Fällen hat die Gründer*in sich vielleicht ein neues Projekt oder ein neues Hobby gesucht und hat deswegen keine Zeit mehr, sich darum zu kümmern. Aber auch in Fällen von Krankheit kann dies wichtig werden.

Obwohl Open-Source-Projekte in der Regel über das Internet entwickelt werden, ist es ein großer Vorteil, ab und zu Treffen mit den Beteiligten zu organisieren. Diese Zusammenkünfte werden oft „Sprints“ oder „Hackathons“ genannt. Dort können dann technische Probleme besprochen werden, die Pläne für die Zukunft festgelegt und zusammen neue Funktionen programmiert werden. Natürlich ist es für das Team auch einfach schön, sich mal persönlich zu sehen.

Ein Projekt benötigt Engagement und Geld

Oft stellen Firmen oder andere Institutionen (wie auch z. B. der DBJR im Rahmen von jugend.beteiligen.jetzt), Räumlichkeiten für Sprints zur Verfügung. In einigen Fällen werden die Reisekosten zu solchen Veranstaltungen zum Problem, wenn Entwickler*innen weiter entfernt leben. Glücklicherweise existieren Zusammenschlüsse aus mehreren Projekten, die oft Möglichkeiten gefunden haben, in solchen Fällen zu helfen. Eines davon ist KDE: Es kann Open-Source-Projekten neben anderen Vorteilen auch mit Reisekosten helfen.

Um Entwickler*innen zu ermöglichen, mehr Zeit in das Projekt zu investieren, sammeln viele Projekte Spenden oder beantragen Förderung. Auch für Kaidan haben wir solche Angebote bereits genutzt.

Obwohl die primäre Motivation hinter Open-Source-Projekten häufig der Spaß am Programmieren ist, müssen Entwickler*innen auch Organisationsprobleme lösen und sich um die Benutzer*innen kümmern. Mit den passenden Regelungen kann das aber gut funktionieren und sehr viel Freude bereiten. Bei Treffen außerhalb des Internets kann man dabei auch noch Gleichgesinnte kennenlernen und seine Ideen verwirklichen.

Kaidan – Auf dem Weg zur einfachen, sicheren und dezentralen Chat-App

Ein Gastbeitrag von Jonah Brüchert

Kaidan-Logo

Messenger-Dienste gibt es mittlerweile in unüberschaubarer Vielfalt. Meistens ist man damit aber an einen konkreten Anbieter oder vorgegebene Funktionen gebunden. Mit dem XMPP-Messenger „Kaidan“ hat sich eine Gruppe junger Entwickler aufgemacht, eine wirklich offene und datenschutzfreundliche Alternative aufzubauen. Im Folgenden stellen wir euch vor, was dieses Projekt so besonders macht.

Warum es etwas Neues brauchte

Was bei Post oder Telefon niemand akzeptieren würde, ist bei Messengern heute leider üblich: Man muss sich an einen konkreten Anbieter binden und erreicht darüber auch nur Kontakte, die beim selben Dienst ein Konto haben. Wie bei Telefon, Post und E-Mail wäre ein dezentraler Ansatz deutlich nutzerfreundlicher. Man wäre nicht auf einen Anbieter festgelegt, sondern hätte Wechselmöglichkeiten – ohne alle Kontakte zu verlieren.

WhatsApp ist nicht dezentral. Fast jede*r hat sich irgendwann mal WhatsApp installiert, um mit Freunden oder Verwandten in Kontakt zu bleiben. Auswahlmöglichkeiten hat man dabei keine. Man muss den Datenschutz von WhatsApp so hinnehmen wie er ist, denn einen anderen Anbieter wählen ist nicht möglich. So ist man am Ende den Entscheidungen vom Betreiber Facebook – bis hin zum unangekündigten Ausschluss – hilflos ausgeliefert.

Immerhin hat WhatsApp in den letzten Jahren eine Verschlüsselung eingeführt. Diese ist aber weitgehend nutzlos, solange WhatsApp Chatverläufe weiterhin in Google Drive speichert. Zudem liegen die Verkehrsdaten aller Nutzer*innen zentral an einer Stelle, in den Rechenzentren von Facebook. Mit dem Zugang zu diesem zentralen Ort kann man für alle Teilnehmenden einsehen, wer mit wem zu welcher Zeit wie lange kommuniziert hat.

Auch bei den WhatsApp-Alternativen sieht es nicht besonders gut aus. Selbst Signal, das häufig als das sicherere WhatsApp angesehen wird, löst nicht die strukturellen Probleme: Zwar ist der Programmcode von Signal wie auch der Kommunikationsstandard („Protokoll“) öffentlich einsehbar, aber auch Signal ermöglicht es nicht, für einen Verein oder eine Firma selbst einen eigenen Server zu betreiben. Auch wenn hinter Signal eine gemeinnützige Stiftung in den USA steckt, so bleibt man dennoch abhängig von einem einzelnen Anbieter und muss dessen Informationen vertrauen. Selbstständiges Weiterentwickeln fällt leider aus: Mit einer veränderten oder selbst entwickelten App darf man nicht mit anderen Signal-Nutzer*innen kommunizieren.

Im Bereich der internetbasierten Kommunikation existiert ein offener Standard, XMPP (früher: Jabber), der öffentlich verfügbar und nicht beschränkt ist. Die bisherigen XMPP-Messenger sind allerdings häufig nur auf einzelnen Betriebssystemen verfügbar und unterscheiden sich deutlich im Funktionsumfang. Neuere Sicherheitsmechanismen finden oft spät oder gar keinen Einzug in einzelne XMPP-Apps.

Aus diesen Gründen haben wir uns entschieden mit Kaidan eine wirklich offene und dezentrale Lösung zu schaffen, die für verschiedene Einsatzzwecke anpassbar, aber trotzdem einfach zu benutzen ist.

Wie Kaidan entstand

Die Idee kam Linus Jahn im Herbst 2016, nachdem er einen Vortrag über die App »Conversations« gehört hatte. Linus war begeistert von den Möglichkeiten, die das offene Protokoll XMPP bietet, das Conversations zur Kommunikation verwendet. Bei Conversations haperte es allerdings damals wie heute an der Unterstützung für verschiedene Systeme. Denn Conversations ist nur für Android verfügbar. Weitere existierende Programme boten einerseits oft nicht die Funktionalität, die von modernen Chat-Apps erwartet wird. Andererseits waren sie sehr technisch angelegt und daher kompliziert zu benutzen.

In einer ausgefallenen Schulstunde wurde dann das Design und die Funktionalität von Kaidan auf einem Blatt Papier geplant. Der damals spontan entstandene Plan wurde dann Stück für Stück in die Realität umgesetzt und immer wieder erweitert. Schon kurz nach der Ideenskizze begann die eigentliche Entwicklung, zusammen mit Mitstreiter*innen aus der XMPP-Community.

Knapp vier Jahre später ist Kaidan zwar noch nicht fertig (ein Wort, das im Zusammenhang mit Programmierprojekten ohnehin nur selten gebraucht wird), aber knapp 30.000 Zeilen Arbeit liegen hinter uns. Das Ergebnis ist eine funktionierende App mit einer sehr einfachen Registrierung und Kontaktverwaltung. Auch die Nutzung eines weiteren Geräts ist problemlos möglich. Zusätzlich zu Textnachrichten gibt es die Möglichkeit zum Teilen von Bildern, Sprachnachrichten und Standorten.

Trotzdem liegen noch einige wichtige Funktionen vor uns: Wir arbeiten als eines der ersten XMPP-Projekte an der Umsetzung einer neuen Art von Gruppenchats. Zudem haben wir mit der Umsetzung der Ende-zu-Ende-Verschlüsselung mit dem Namen „OMEMO“ in Kaidan begonnen. OMEMO wird bereits erfolgreich in Conversations eingesetzt. Die Integration neuer Funktionen wie dieser wird dadurch beschleunigt, dass wir immer wieder Mitwirkende dazu gewonnen haben. Vor allem durch den Besuch des regelmäßig stattfindenden XMPP-Meetups in Berlin konnten wir weitere XMPP-Interessierte für Kaidan gewinnen.

Inzwischen ist das Kaidan-Projekt Teil einer weltweiten Gemeinschaft von Open-Source-Entwickler*innen, der KDE-Community. Es hat jetzt seinen Platz neben Projekten wie dem in der digitalen Kunstszene beliebten Krita oder dem Plasma Desktop, der seinen Weg schon bis in die Verwaltung Münchens und in die Büros der NASA gefunden hat.

Wie Kaidan funktioniert

Unsere Vision für Kaidan ist, die technischen Möglichkeiten, die heute meist nur den Expert*innen zur Verfügung stehen, für jeden nutzbar zu machen: einfache, sichere Kommunikation, die nicht unter der Kontrolle einzelner großer Firmen steht. Dafür setzen wir auf Dezentralisierung. Das heißt, dass Nutzer*innen ihre Daten bei einem Anbieter ihrer Wahl speichern können. Am besten erklären lässt sich das am Beispiel von E-Mail: Einige Nutzer*innen haben ihr Konto bei GMX, andere bei Gmail oder Posteo. Gemeinsam haben alle diese Anbieter, dass sie auf die gleiche Weise miteinander kommunizieren. So ist es im Alltag völlig egal, bei welchem Anbieter man das E-Mail-Konto hat. Auch das Programm mit dem man die E-Mail-Nachrichten schreibt und empfängt kann jede Person selbst wählen. So nutzen manche beispielsweise Mozilla Thunderbird und andere wiederum Microsoft Outlook. Dasselbe gilt für XMPP-Anbieter und XMPP-Apps. Deswegen sehen die Chat-Adressen aus wie E-Mail-Adressen. Die Angabe einer Telefonnummer ist dafür nicht notwendig. Da mehrere Konten auf einem Gerät genutzt werden können, ist es möglich z. B. private und berufliche Kommunikation separat zu verwalten.

Jede*r kann sich den Anbieter aussuchen, der ihr / ihm gefällt (oder selbst ein solcher Anbieter werden). Um das Ganze aber nicht unnötig kompliziert zu machen, hat Kaidan eine Liste von vertrauenswürdigen Anbietern eingebaut. So können auch Nutzer*innen, die sich nicht mit der Auswahl eines Anbieters beschäftigen wollen, auf schnellstem Wege zum Chatten kommen.

Die verschiedenen Anbieter kommunizieren untereinander und bilden dadurch ein großes Netz. So entstehen keine separierten „Inseln” wie es z. B. bei WhatsApp oder Signal der Fall ist.

Wenn man nun auf eine besondere Funktion großen Wert legt, z. B. dass gesendete Bilder länger zwischengespeichert werden, kann ein Anbieter entsprechend nach den persönlichen Vorlieben ausgewählt werden. Natürlich können darunter auch bezahlte Anbieter mit besonders guten Eigenschaften sein. Dieses System ermöglicht es auch Organisationen, ihr eigener Anbieter zu werden, um die volle Kontrolle über die Chatverläufe, Kontaktlisten und Dateien zu behalten.

Um unser Ziel der Unterstützung verschiedener Geräte umzusetzen, entwickeln wir eine gemeinsame Codebasis für alle Endgeräte und Systeme. Das heißt, dass Kaidan auf Windows, macOS, Linux, Android und iOS im Kern immer dasselbe Programm ist. Auf diese Weise vermeiden wir die gleichen Funktionen doppelt oder gar dreifach in unterschiedlichen Programmiersprachen schreiben zu müssen. Dadurch gibt es auch neue Funktionen immer gleichzeitig für alle Geräte. Die Oberfläche von Kaidan passt sich automatisch an verschiedene Display-Größen an. So wird auf Smartphones z. B. nur entweder die Kontaktliste oder der Chatverlauf angezeigt. Auf Desktop-PCs und Laptops werden hingegen beide nebeneinander angezeigt, wie es Nutzer*innen von anderen Apps gewöhnt sind.

Desktop-Ansicht von Kaidan
Kaidan Kontakte Mobilansicht
Mobilansicht der Kontakte in Kaidan

Jede*r kann mitmachen

Kaidan verfügt derzeit noch nicht über alle Funktionalitäten, die von einer Chat-App erwartet werden. Wir sind aber auf einem guten Weg. Wir hoffen, weitere Menschen davon begeistern zu können, uns auf dem Weg zur sicheren und selbstbestimmten Kommunikation für alle zu begleiten. Aber keine Scheu: Nicht alle, die zu Kaidan beitragen, sind Programmierer*innen. Genauso wertvoll wie die Programmierung ist für das Projekt auch das Übersetzen in andere Sprachen. Ebenso ist das Zeichnen der vielen Grafiken, die die Nutzer*innen durch den Einstieg in Kaidan begleiten, wichtig. Nicht zu vergessen sind außerdem die Personen, die sich um die Pflege der Liste von Servern kümmern, bei denen man sich registrieren kann oder Anleitungen in unserem Wiki erstellen. Manche geben zudem per Chat anderen Hilfestellungen oder machen Werbung für Kaidan. Und schließlich spielen auch die Personen und Organisationen eine besondere Rolle, die Kaidan medial oder finanziell unterstützen. So hat beispielsweise der DBJR im Rahmen des Projekts jugend.beteiligen.jetzt die Entwicklung von Kaidan unterstützt.

Um unseren Zielen gerecht zu werden, ist der Quellcode von Kaidan von der Öffentlichkeit einsehbar und überprüfbar. Auf diese Weise braucht keine Person blind dem Team von Kaidan vertrauen. So können Nutzer*innen sichergehen, dass Kaidan ihre privaten Informationen nicht weitergibt. Damit das in Zukunft so bleibt, wird Kaidan unter der Bedingung veröffentlicht, dass zukünftige Änderungen am Code der Öffentlichkeit zur Verfügung gestellt werden müssen.

Mehr Informationen über Kaidan gibt es auf unserer Website.

Wir freuen uns immer über Beiträge. Die Entwicklung findet auf unserer Projektseite statt.

Jonah Brüchert ist einer der Entwickler von Kaidan und lebt in Berlin.

XMPP-Sprint: Livetreffen abgesagt, digital vernetzt geht’s weiter

Eigentlich hätte vom 26.–29. März ein europaweiter XMPP-Sprint stattfinden sollen. Bei diesen „Sprints“ treffen sich Entwickler*innen und Interessierte rund um den freien Standard XMPP. Es werden gemeinsam Fragen diskutiert, Weiterentwicklungen präsentiert und gemeinsam Ideen gesponnen. Leider kann der Sprint in Berlin zur Zeit nicht stattfinden. Schweren Herzens mussten wir daher das Live-Treffen nun absagen.

Einige der Teilnehmenden des XMPP-Sprints im März 2019

Allerdings heißt das nicht, dass die Zusammenarbeit nicht trotzdem stattfindet. Im Augenblick laufen Vorbereitungen, um insbesondere die Vorträge und Präsentationen, die für den Samstagnachmittag geplant sind, über Streaming durchzuführen.

Dabei versteht sich von selbst, dass auch fürs Streaming auf Open-Source-Werkzeuge gesetzt wird: Mit Jitsi zeigt XMPP seine Stärken – Videokonferenzen, Verbindung zur traditionellen Festnetz- und Mobiltelefonie, und ein Etherpad für die Zusammenarbeit während der Videokonferenz. Wie man selbst eine Jitsi-Instanz betreibt, hat Golem.de gestern erläutert: www.golem.de/news/homeoffice-videokonferenzen-auf-eigenen-servern-mit-jitsi-meet-2003-147239.html

Auf der Wiki-Seite zum Sprint unter wiki.xmpp.org/web/Sprints/2020_March_Berlin finden Interessierte weitere Informationen und einen Link zur Chatgruppe des XMPP-Sprints (englisch).

Ankündigung: XMPP-Wochenende im März 2020 in Berlin

Ein Jahr nach dem letzten XMPP-Sprint in Berlin laden wir vom 26.-29. März 2020 wieder zu einem Treffen für Entwickler*innen und Interessierte rund um XMPP ein. Ziel des Treffens ist es, möglichst viele Programmierer*innen und Nutzer*innen zusammenzubringen, um an neuen Funktionen zu arbeiten, bestehende Nutzeroberflächen gemeinsam zu diskutieren und XMPP als offenen Standard voran zu bringen.

Für Entwickler*innen geht’s optional bereits am Donnerstag los, reine XMPP-Nutzer*innen sind ab dem Freitagnachmittag herzlich willkommen. Für Neueinsteigende werden wir je nach Anmeldezahl einen eigenen Einstiegsworkshop anbieten.

Seminarsprachen werden Englisch, Deutsch und alle anderen sein, auf die man sich in kleiner Runde verständigt – also keine Angst!

Die Teilnahme ist kostenlos, Essen und Getränke werden gestellt. Wir bitten allerdings um eine Anmeldung mit kurzer Beschreibung des Vorwissens an digital@dbjr.de. Die Programmierer*innen erhalten auf der Sprint-Seite auf xmpp.org weitere Informationen.

Was ist XMPP?

Bei XMPP/Jabber handelt es sich um einen offenen Standard für Chat und Messaging, bei dem die Nutzer*innen unabhängig von geschlossenen und kommerziellen Systemen (z.B. WhatsApp) sind. Ähnlich wie bei Telefon, Post oder E-Mail spielt es bei XMPP keine Rolle, über welchen Anbieter man teilnimmt. Und man hat die freie Wahl der Werkzeuge, also über welche Apps/Programme man mit Anderen kommunizieren möchte.

YOCHAT.EU jetzt auch mit Web-Client

Seit dem Frühjahr bieten wir den offenen Chatserver für die Jugendarbeit, yochat.eu, an. Der Server baut dabei auf den offenen Standard Jabber/XMPP auf, der ähnlich wie bei E-Mail den eigenen Serverbetrieb erlaubt und dennoch weltweite Erreichbarkeit gewährleistet.

Fürs Chatten benötigt man ein beliebiges XMPP-fähiges Programm oder App für Desktop oder Smartphone. Die Auswahl ist groß und leider sind nicht alles Anwendungen gut umgesetzt.

Wir bieten nun eine neue Möglichkeit an: Ihr könnt euch spontan auch direkt über eine Web-Oberfläche für das Chatkonto registrieren oder in ein bestehendes Chatkonto einloggen. Euch stehen komfortable Möglichkeiten für Einzelchats und Gruppen zur Verfügung. Je nachdem wie ihr eure Clients und euer Profil einstellt, könnt ihr jederzeit zwischen App und Web-Client wechseln, sie parallel betreiben und trotzdem auf alle Chatverläufe zugreifen.

Unser neuer Web-Client basiert auf der Open-Source-Software Converse.js. Aus Sicherheitsgründen haben wir das Einloggen auf Kontos bei yochat.eu beschränkt.

Mobil chatten über XMPP – so geht’s! (z.B. mit Conversations für Android)

Conversations-Logo

Vom 1.-7. Mai steht eine der besten XMPP-Apps unter Android, »Conversations«, kostenfrei im Google PlayStore zur Verfügung. Für uns ein guter Anlass, euch die Einrichtung und Nutzung von XMPP/Jabber kurz vorzustellen.

Über die Vorzüge eines freien Internetstandards im Vergleich zu den abgeschotteten Systemen wie WhatsApp etc. haben wir bereits berichtet. Seit wenigen Tagen steht der öffentliche XMPP-Server yochat.eu für Chat und Messaging in der Jugendarbeit bereit. (Eine Vorstellung findet ihr hier.). Damit ihr unser Angebot gut nutzen könnt, findet ihr im Folgenden eine bebilderte Anleitung und Tipps für den Fall wenn etwas schiefläuft.

So legt ihr los:

  1. App installieren
    Ladet euch eine Jabber/XMPP-App herunter und installiert sie. Unter Android empfehlen wir euch »Conversations«. Ihr erhaltet sie über den Google PlayStore (bis 7. Mai kostenlos, sonst € 2,39) oder über den freien App-Store F-Droid. Links zu Clients für alle anderen Betriebssysteme findet ihr im Artikel zu Yochat.eu.
  2. Nutzerkonto und Chatname registrieren
    XMPP-Clients können mehrere Nutzeraccounts verwalten, ähnlich wie es auch bei E-Mail-Programmen der Fall ist. Die Registrierung eines neuen Accounts kann bei XMPP allerdings bereits direkt aus der App heraus erfolgen. (Bei Yochat.eu bieten wir derzeit ausschließlich diesen Weg an; wir haben noch keine Website hierzu freigeschaltet.)

    Eine XMPP-/Jabber-ID besteht aus eurem Chatnamen (das kann der echte Name sein oder auch ein ausgedachter), ein @ um zu kennzeichnen bei welchem Server ihr euer Konto angelegt habt, und dann den Servernamen. Neben yochat.eu existieren weitere öffentliche Server, die euch Conversations zum Teil auch vorschlägt.

    Hinweis: Manche Apps bieten zusätzlich die Möglichkeit eine „Ressource“ einzutragen. Dabei handelt es sich um eine frei gewählte Beschreibung, z.B. „Handy” oder „Gerät 1“. Da ihr bei einem XMPP-Konto mit mehreren Geräten gleichzeitig angemeldet sein könnt, soll euch das zur späteren Unterscheidung helfen. In der Regel werdet ihr davon aber sehr selten einen Mehrwert haben.
  3. Euer Profilbild (Avatar) festlegen
    Das ist optional: Dieses Bild sehen Chatpartner*innen von euch.

  4. Kontakte hinzufügen
    Am Anfang ist eure Kontaktliste noch leer. Über das Sprechblasen- bzw. das Plus-Symbol unten rechts könnt ihr neue Kontakte, Gruppenchats und öffentliche Channels (Chaträume) hinzufügen. Selbstverständlich könnt ihr selbst auch Gruppenchats und Channels erstellen. Je nach Bedarf können sie dauerhaft oder temporär sein (also bis die letzte Person den Chat verlässt).
    Etwas angenehmer geht’s übrigens über das Einlesen eines QR-Codes. Diesen kann euch euer Kontakt entweder auf seinem/ihrem Display zum Abscannen zeigen oder ihr findet einen QR-Code für einen Channel irgendwo veröffentlicht.

    Wenn ihr noch niemanden kennt, der ebenfalls XMPP nutzt, dann kontaktiert doch einfach uns: tim@yochat.eu, tim.schrock@chat.dbjr.org, michael.scholl@chat.dbjr.org !

    [UPDATE 14.05.2019: Conversations behindert im Augenblick das erstmalige Hinzufügen von Einzelkontakten mit der Endung @chat.domain, weil es diese immer als Gruppe interpretiert. Das betrifft auch die @chat.dbjr.org. Der Entwickler ist bereits informiert. Die Abhilfe ist im Augenblick, dass die erste Kontaktaufnahme von Seiten der @chat.domain-Nutzer*in geschieht, dann ist es kein Problem.]




  5. Optional: Mehrere Nutzerkonten verwalten
    Wie fast alle XMPP-Apps kann Conversations mehrere Nutzerkonten verwalten, auch wenn sie bei unterschiedlichen Servern registriert sind. Zweck mehrerer Konten könnte beispielsweise sein, dass ihr eines privat und eines beruflich oder ehrenamtlich nutzen wollt. Die Konten können jeweils einzeln aktiviert und deaktiviert werden, z.B. wenn ihr abends das Büro verlasst oder ein paar Tage in Urlaub geht.

Was kann schieflaufen?

XMPP und die Chat-Clients werden ständig weiter entwickelt. Das ist im Kern etwas Gutes, führt aber dazu, dass manche Programme neue Funktionen (noch) nicht unterstützen. Gerade bei der Ende-zu-Ende-Verschlüsselung wie OMEMO kann das ein Problem darstellen, wenn ihr mehrere Clients parallel verwendet: Auf einem Client kommen dann die Nachrichten korrekt entschlüsselt an, während ihr auf dem anderen möglicherweise nur einen Buchstabensalat oder einen Fehlerhinweis erhaltet. Ihr klickt dann am besten auf das Schloss-Symbol des laufenden Chats (das Symbol ist in nahezu jedem Client vorhanden) und schaltet die Verschlüsselung um oder aus. Die Verbindung wird dann dennoch verschlüsselt sein, jedoch kann sie der Chat-Server theoretisch mitlesen.

Ihr könnt jederzeit mit neuen Clients euer Konto nutzen. Ebenso seid ihr frei darin, jederzeit alte XMPP-Apps oder Geräte in Rente zu schicken. Leider „weiß“ ein XMPP-Server im Vornherein nicht, ob ein Chat-Client jemals wieder online kommt. Daher gibt es auf den Servern verschiedene Mechanismen, wie die Warteschlangen von nicht zugestellten Nachrichten gemanagt werden. Gerade bei der Verwendung von iOS-Apps haben wir die Erfahrung gemacht, dass Nachrichten dann manchmal nicht mehr bei allen parallel genutzten Geräten ankommt.

Zur Registrierung von XMPP-Accounts müsst ihr keinerlei private Daten preisgeben, weder eure Telefonnummer noch eine E-Mail-Adresse. Das ist zwar erfreulich für Privatsphäre und Datenschutz, aber unpraktisch wenn ihr euer Passwort vergesst. Tatsächlich gibt es meist keinen Weg mehr, dann noch auf euer Konto zuzugreifen. Ihr könnt allerdings mit eurem Serverbetreiber sprechen, dann könnte das Konto immerhin zurückgesetzt werden – und ihr verliert wenigstens nicht die XMPP-ID.

[UPDATE 14.05.2019: Conversations behindert im Augenblick das erstmalige Hinzufügen von Einzelkontakten mit der Endung @chat.domain, weil es diese immer als Gruppe interpretiert. Der Entwickler ist bereits informiert. Die Abhilfe ist im Augenblick, dass die erste Kontaktaufnahme von Seiten der @chat.domain-Nutzer*in geschieht, dann ist es kein Problem.]

Warum kostet Conversations Geld, ist doch Open Source?

Wir machen hier Werbung für eine (normalerweise) kostenpflichtige App. Es gibt aber auch dauerhaft kostenfrei beziehbare Apps. Conversations ist beispielsweise über den freien App-Store F-Droid auch ohne Bezahlung erhältlich. Trotzdem muss man sich als Nutzer*in vergegenwärtigen, dass hinter der Konzeptionierung, Programmierung und Pflege von Apps sehr viel Arbeit steckt. Entwickler*innen von Open-Source-Software sind daher oft eine Stiftung, Träger mit öffentlicher Förderung (wie bei DBJR-Tools / jugend.beteiligen.jetzt) oder Privatpersonen, die ihren Lebensunterhalt nebenbei bestreiten müssen.

Vielen Dank an Daniel Gultsch von Conversations für die kostenlose Zurverfügungstellung seiner App!

Yochat.eu – willkommen beim offenen Chatserver für die Jugendarbeit!

Wie auf diesem Blog schon gelegentlich berichtet, unterstützt der DBJR die Verbreitung von offenen Standards und möchte deren Nutzungsmöglichkeiten für die Jugendarbeit verbessern. Einer der Bereiche ist das Thema Chat & Messaging, also das Kommunizieren zwischen zwei oder mehreren Empfänger*innen. Hierfür gibt es den offenen Standard Jabber/XMPP, der nicht an einen Anbieter gebunden ist. Nutzer*innen haben freie Auswahl bei den hierfür genutzten Apps und dem Serverbetreiber (ähnlich wie bei E-Mail). Eine etwas ausführlichere Beschreibung zu XMPP haben wir hier zusammengestellt.

Ohne Infrastruktur geht es (leider) nicht

Grundsätzlich können alle XMPP-Nutzer*innen weltweit miteinander kommunizieren, egal über welchen Anbieter/Server sie den Dienst nutzen. Die Zahl der frei nutzbaren Anbieter ist allerdings noch rar gesät; und selbst einen Server aufzusetzen ist für kleinere Gruppen kaum möglich. Der DBJR hat vorgearbeitet: Seit mehreren Monaten betreiben wir einen solchen Server vor allem für den internen Gebrauch, um die E-Mail-Postfächer der Kolleg*innen zu entlasten und die Kommunikation zu vereinfachen.

Nun können wir diesen Dienst aber auch für alle Interessierten kostenfrei anbieten: Seit wenigen Tagen könnt ihr euch mit einem persönlich gewählten Spitznamen oder eurem echten Namen eine Chat-ID @yochat.eu anlegen. Die Registrierung geschieht dabei nicht über eine Web-Oberfläche, sondern kann von jedem XMPP-kompatiblen Chat-Client aus erfolgen.

Welche Chat-Apps kann ich dafür nutzen?

Folgende Chat-Clients können wir euch empfehlen:

Diese Liste ist bei Weitem nicht abschließend. Auch ChatSecure (iOS) oder Mozilla Thunderbird (Windows, macOS, Linux), MirandaNG (Windows), Pidgin (Windows, Linux) und viele Anwendungen mehr unterstützen den Jabber/XMPP-Standard. Die letzteren drei gibt es für Windows ebenfalls als PortableApp, d.h. sie können auch ohne Installation z.B. von einem USB-Stick aus genutzt werden.

XMPP unterstützt auch die Parallelnutzung einer ID von mehreren Geräten aus, also z.B. vom Smartphone und vom PC aus. Generell sind die Apps auf iOS-Geräten noch etwas weniger gut ausgebaut als auf anderen Betriebssystemen. Das liegt daran, dass Apple recht strikte Vorgaben macht, wie Anwendungen in den AppStore aufgenommen werden können. Der Veröffentlichungsprozess ist daher gerade für Open-Source-Projekte aufwändiger und etwas teurer.

Buchstabensalat – was ist da passiert?

Der reine Nachrichtenaustausch ist bei allen Clients transportverschlüsselt. Allerdings hat sich in den letzten Jahren gerade im Bereich der Ende-zu-Ende-Verschlüsselung viel getan (also auf den Endgeräten und im Speicher der übermittelnden Server); nicht alle Anwendungen unterstützen daher die Möglichkeiten wie OMEMO, OpenPGP oder OTR. Daher kann es manchmal zu Buchstabensalat kommen, wenn man seinen Client öfters wechselt und nicht den richtigen Modus aktiviert hat. Per Klick lässt sich das aber in der Regel beheben.

Für technisch Interessierte: Innenleben unseres Servers und Speicherlimits

Yochat.eu läuft auf ejabberd, einem der verbreitetsten Open-Source-Server für XMPP. Das Ganze ist installiert auf einem Debian-Linux-Server, der im Nürnberger Rechenzentrum des Providers Hetzner steht. Welche XMPP-Module wir unterstützen, lässt sich jederzeit einsehen über den Compliance-Tester von Conversations: https://compliance.conversations.im/server/yochat.eu/.

Pro Nutzer*in ist ein Zwischenspeicher für (alte und neue) Nachrichten von 200 MB vorgesehen. Nachrichten werden für 90 Tage gespeichert. Bei Erreichen der Speicherdauer oder -grenze werden die ältesten Nachrichten automatisch gelöscht. Dateiübertragungen sind derzeit auf 50 MB begrenzt. Derzeit sammeln wir noch Erfahrungen mit den Speicherkapazitäten und der -dauer, so dass sich diese noch verändern könnten.

Gut zu wissen – Feedback herzlich willkommen!†

Wir stellen den XMPP-Dienst im Rahmen unserer Möglichkeiten aus dem Projekt jugend.beteiligen.jetzt – für die Praxis digitaler Partizipation für euch kostenfrei zur Verfügung. Auch wenn wir natürlich unser Bestes geben, können wir keine vollständige Verfügbarkeit garantieren. Über Neuigkeiten werden wir euch hier im Blog informieren.

Das Angebot richtet sich in erster Linie an Jugendliche, junge Erwachsene und Multiplikator*innen in der Jugendarbeit, darf aber natürlich auch von euren Freunden, Familienmitgliedern und anderen Interessierten genutzt werden. Bei missbräuchlicher Nutzung (z.B. Spam, Belästigung Anderer) behalten wir uns vor Accounts zu deaktivieren.

Wenn ihr Fragen zu yochat.eu oder zu XMPP habt, meldet euch gerne bei uns oder chattet uns an: tim@yochat.eu oder tim.schrock@chat.dbjr.org (das ist keine E-Mail-Adresse!)

UPDATE 14.05.2019: Die Android-App Conversations behindert im Augenblick das erstmalige Hinzufügen von Einzelkontakten mit der Endung @chat.domain (also auch @chat.dbjr.org), weil es diese immer als Gruppe interpretiert. Der Entwickler ist bereits informiert. Die Abhilfe ist im Augenblick, dass die erste Kontaktaufnahme von Seiten der @chat.domain-Nutzer*in geschieht, dann ist es kein Problem.

Rückblick auf den XMPP-Sprint

Vergangenes Wochenende trafen sich 25 Entwickler*innen und Interessierte zu einem europäischen »XMPP-Sprint« in Berlin. Der DBJR fungierte als Gastgeber, weil wir offene Standards unterstützen und sie für die Jugendarbeit besser nutzbar machen möchten.

Was bitte ist XMPP?

XMPP-Logo

Bei XMPP handelt es sich um einen offenen Standard für Chat und Messaging, bei dem die Nutzer*innen unabhängig von geschlossenen und kommerziellen Systemen (z.B. WhatsApp) sind. Ähnlich wie bei Telefon, Post oder E-Mail spielt es bei XMPP keine Rolle, über welchen Anbieter man teilnimmt. Und man hat die freie Wahl der Werkzeuge, also über welche Apps/Programme man mit Anderen kommunizieren möchte.

XMPP besteht schon eine ganze Weile: Vor zwanzig Jahren als »Jabber« gestartet, ist XMPP dann 2004 als Internetstandard verabschiedet worden. In den ersten Jahren stellte Jabber/XMPP allerdings nicht viel mehr dar als eine weitere Möglichkeit von Rechner zu Rechner zu chatten – mobiles Internet und Smartphones gab es ja noch nicht. Zu Beginn unterstützten auch Google und Facebook den offenen XMPP-Standard, riegelten ihre Dienste dann jedoch immer mehr nach außen ab: Am Ende landeten wir da, wo wir heute sind: Google Hangouts, Apple Facetime, Microsoft Skype, Facebook Messenger, Snapchat – alles geschlossene Systeme, die sich untereinander nicht verstehen (wollen).
Besonders nach den Datenskandalen der großen Konzerne und der Geheimdienste wurde XMPP als einer freien Alternative neue Aufmerksamkeit zuteil.

Gerade für datenschutzsensitive Themen wie persönliche Beratung oder privatsphären-freundliches Ausschalten-Können einzelner Accounts (z.B. am Abend oder im Urlaub) eignet sich XMPP sehr gut. Zudem bleibt die persönliche Telefonnummer geheim und auch das eigene Adressbuch wird nicht von irgendeinem Anbieter ausgelesen.

Allerdings muss man sich auch ein wenig an neue Konzepte oder Abkürzungen gewöhnen: Auf die reine Übertragungsverschlüsselung können noch zusätzliche Sicherheitslevel wie OMEMO, OpenPGP oder OTR (Off-The-Record) draufgepackt werden, die sich aber nicht immer untereinander verstehen. Auch werden Chats mit mehreren Mitgliedern nicht unbedingt einheitlich benannt: Ist das jetzt ein Gruppenchat, ein Multi-User-Chat, ein Chatraum oder gar ein Channel?

Auch wenn die Möglichkeiten von XMPP am Anfang etwas erschlagend wirken können: Die Nutzung ist nach kurzer Zeit ganz einfach verständlich und unterscheidet sich im Alltag kaum von anderen Messenger-Diensten.

Auf zum Sprint! Vielfalt ist Stärke!

Jabber/XMPP wird von zahlreichen Programmen unterstützt, darunter so bekannte wie Mozilla Thunderbird oder der Pidgin-Multimessenger. Die Kehrseite eines offenen Standards ist, dass die Umsetzung des Standards recht unterschiedlich voranschreiten kann. Die Open-Source-Community rund um XMPP hat aber verstanden, dass man nur gemeinsam stark ist: Auf dem Sprint in Berlin kamen Programmierer*innen von einigen der bekanntesten Apps zusammen, wie z.B. Conversations, ConverseJS, Dino, Gajim, Salut à Toi und UWPX. Aber auch junge Projekte wie Kaidan oder solche mit besonderen Einsatzzwecken wie Poezio und Smack waren vor Ort. Und die Entwickler von Monal und des u.a. in Nextcloud eingebetteten JSXC brachten sich aus der Ferne ein.

Einige Teilnehmende des XMPP-Sprints in Berlin – der Rest war ins Coding vertieft oder wollte nicht mit aufs Foto. Der Anteil weiblicher Entwicklerinnen war leider niedrig, wenn auch nicht ganz so niedrig wie hier auf dem Bild.

Gemeinsam mit Interessierten diskutierten die Teilnehmenden über die Herangehensweisen an ihre Programme, über schöne und nützliche Bedienoberflächen und natürlich auch über die Weiterentwicklung des offenen Standards.

Neue Funktionen: Gruppenentscheidungen leicht(er) gemacht. Und: Vorsicht, Spoiler!

Vor Ort wurden daher auch neue Funktionen in die diversen Anwendungen integriert oder deren Umsetzung diskutiert. Spannend für Gruppenchats und spontane Meinungsbilder ist dabei z.B. ein Voting-Button, mit der man Fragen oder Vorschläge von Freund*innen in den Nachrichten unterstützen oder „downvoten“ kann. Moderne Chat-Apps könnten die Stimmen automatisch zählen und akkumuliert anzeigen, in älteren Apps würden Abstimmungen dann eher wie eine Liste von Emojis mit Daumen hoch/runter oder glücklichen/unglücklichen Smilies aussehen. Neu ist auch eine „Spoiler“-Funktion. Darunter verstehen die Programmierer*innen die Möglichkeit, dass man Bestandteile einer Nachricht am Anfang verbirgt und sie erst auf Klick angezeigt werden. Damit könnten einerseits Spoiler aus Film & Serien nur denjenigen gezeigt werden, die sie wirklich lesen wollen, andererseits eignet sich die Funktion auch für kleine Quizzes oder Fragen-und Antwortspiele (oder Prüfungsvorbereitung).

Wie es mit XMPP in der Jugendarbeit weitergeht

Dank zahlreicher Jabber/XMPP-Clients für die diversen Betriebssysteme hat man eine reichliche Auswahl an Optionen. Etwas schwieriger wird es, wenn man sich auf die Suche nach einem freien XMPP-Server macht, denn ähnlich wie bei einem Mailserver muss dieser von jemanden eingerichtet und betrieben werden. Hier hat der DBJR schon vorgearbeitet: Wir betreiben seit einigen Monaten einen vor allem intern genutzten XMPP-Chatserver. Wir prüfen gerade, wann und wie dieser für andere Nutzer*innen geöffnet werden kann. Voraussichtlich wird dies bereits in den kommenden Wochen der Fall sein.

XMPP-Sprint: Wir machen uns unabhängig von WhatsApp & Co! (29.-31. März in Berlin)

XMPP-Logo

Die SMS hat ausgedient. Abgelöst wurde sie von WhatsApp, Threema, Telegram oder dem Facebook Messenger. Diese Dienste verbindet jedoch dasselbe Problem: Man ist jeweils komplett von einem Anbieter abhängig, vertraut ihm alle Chats und manchmal sogar das Adressbuch an. Dass es auch anders geht, zeigt der offene Jabber/XMPP-Standard: Ähnlich wie bei E-Mail ist man frei in der Wahl des Servers und der verwendeten Chat-App.
Vom 29.-31. März treffen sich Entwickler*innen aus mehreren Ländern Europas beim DBJR, um gemeinsam an Konzepten zu diskutieren, an konkreten Anwendungen weiter zu arbeiten und XMPP nutzerfreundlicher zu machen.
Der »XMPP-Sprint« richtet sich an alle, die tiefer in XMPP einsteigen möchten und im besten Fall auch Programmiererfahrung mitbringen. Für Neuinteressierte bieten wir am Samstagvormittag einen Workshop zum Einstieg in XMPP und dessen Nutzung. Mitbringen: Smartphone, Tablet oder Notebook.

Für weitere Informationen und Anmeldung wendet euch an: digital@dbjr.de