Compare commits

...

2 commits

Author SHA1 Message Date
3c5c0d3ed0 aufgabe3: open, freemium 2023-04-18 16:21:44 +02:00
efce3cfd4d aufgabe3: code reading 2023-04-18 15:34:55 +02:00
2 changed files with 104 additions and 0 deletions

View file

@ -4,3 +4,4 @@
- [Aufgabe 1](./aufgaben/aufgabe_1.md)
- [Aufgabe 2](./aufgaben/aufgabe_2.md)
- [Aufgabe 3](./aufgaben/aufgabe_3.md)

103
src/aufgaben/aufgabe_3.md Normal file
View file

@ -0,0 +1,103 @@
# Aufgabe 3
## Code-Reading: Jellyfin
Was steht in der README.md?
> - Kurze Bescheibung des Projekts
> - Links zur Dokumentationsseite
> - Übersetzungsstatus
> - Anleitung zum Aufsetzen der Entwicklungsumgebung
Projekt aktiv oder verwaist? Wie aktiv war es in letzter Zeit?
> Jellyfin wird aktiv entwickelt, der letzte Commit ist unter 24 Stunden alt.
Wer hat es sich ursprünglich ausgedacht?
> Jellyfin ist ein Fork des Emby Media Servers unter der Leitung von
> Joshua Boniface.
Wer ist der aktuelle Maintainer?
> Joshua Boniface
Wo wird das Projekt gehostet? (z.B. Github, Gitlab, Savannah https://savannah.gnu.org)
<https://github.com/jellyfin/jellyfin>
Gibt es eine Homepage?
<https://jellyfin.org/>
Für welche Betriebssysteme ist es geeignet?
> Server: Linux, Windows, MacOS
> Client: Web, Linux, Windows, MacOS, Android, iOS, Roku
Unter welcher Lizenz steht das Programm?
> GPL 2.0
Ist es ein Kommandozeilen- oder Grafikprogramm?
> Jellyfin Server ist eine Webanwendung.
Wie lange existiert es?
> Emby existiert seit 2015, der Fork Jellyfin wurde 2018 als Reaktion auf die Veröffentlichung von Emby 4 unter einer proprietären Lizenz erstellt.
Wie viele haben in etwa daran gearbeitet?
> 880 Beitragende für das Backend, 1300 Beitragende für die Web-UI
Welche Programmiersprache(n) wird/werden verwendet? (Tipp: https://github.com/XAMPPRocky/tokei)
> Backend: C#, Frontend: Javascript/Typescript
Welches Konfigurations- bzw. Build-System wird verwendet?
> Backend: dotnet SDK, Frontend: webpack
Wird eine IDE zum Entwickeln verwendet?
> Visual Studio Code, JetBrains ReSharper
Gibt es eine Dokumentation, wenn ja, in welchem Textverarbeitungssystem wurde sie geschrieben?
> Ja, die Dokumentationsseite (<https://jellyfin.org>) ist in Markdown geschrieben und wird mit Docusaurus gebaut.
Wie viele Anwender verwenden das Programm ungefähr? (schwer herauszubekommen)
> Jellyfin beinhaltet keine Telemetrie, deswegen gibt es keine Nutzerzahlen. Stattdessen habe ich andere andere Metriken zur Beliebtheit des Projekts aufgelistet:
> - 22k Stars auf Github
> - 200M Pulls auf Docker
> - das Jellyfin-Subreddit hat 45k Mitglieder
Gibt es Abspaltungen ("forks")?
> Jellyfin stellt einen Fork des Emby Media Servers dar. Von Jellyfin selbst gibt es keine nennenswerten Forks. Es gibt jedoch ein Pluginsystem, um fehlende Features hinzuzufügen (bspw. weitere Datenquellen, LDAP-Authentifizierung, Vorspann von Serien automatisch überspringen etc.)
Wie kann man mitmachen bzw. Änderungen einreichen?
> - Übersetzungen können auf einer projekteigenen Weblate-Instanz eingegeben werden
> - Codeänderungen werden über Pull Requests auf GitHub entgegengenommen
Wie werden Branches in Git verwendet? (git Workflow bei der Entwicklung)
> - Änderungen von Teammitgliedern werden in eigenen Feature-Branches geführt und anschließend in den Master-Branch gemerged.
> - Für jedes Feature-Release wird ein eigener Branch angelegt (z.B. `release-10.8.z`).
Wie kann man das Programm installieren? (selber kompilieren, binary, snap, appimage, container, ...)
> - Selbst mit dotnet SDK und webpack kompilieren
> - Binary (Download von der Webseite)
> - deb/rpm-Package von Jellyfin's eigenem Repository
> - Container: offizielle Version von Jellyfin (`jellyfin/jellyfin`), linuxserver.io-Version (`linuxserver/jellyfin`)
In welcher Sprache sind die Meldungen des Programms verfasst, z.B. Englisch, Deutsch, Chinesisch? Gibt es eine Internationalisierung in verschiedenen Sprachen (z.B. GNU gettext)?
> Jellyfin ist in 84 Sprachen übersetzt. Die Internationalisierung wurde mit JSON-Dateien realisiert, auf eine spezielle Library wie gettext wurde verzichtet.
> Übersetzungen können auf einer eigenen Weblate-Instanz vorgenommen werden und werden automatisch in die Repositories eingepflegt.
## Projekte und Organisationen mit Open- im Namen
- OpenStreetMap (Durch Crowdsourcing erstellte Weltkarte unter der Open Database License)
- Open Office (freie Office-Suite, aktuell als Fork *LibreOffice* weitergeführt)
- OpenGL (Plattformunabhängige Grafikbibliothek)
- OpenSearch (von AWS entwickelter Fork von ElaticSearch nach deren Wechsel zur SSPL Lizenz)
- OpenAI (bis auf wenige Ausnahmen wie Whisper ist deren Software proprietär, der Name deswegen irreführend)
## Freemium
Freemium ist ein Kofferwort aus den Begriffen "Free" und "Premium" und bezeichnet ein kostenfreies nutzbares Produkt, das mit kostenpflichtigen Angeboten aufgewertet werden kann.
Dieses Geschäftsmodell ist bei Software sehr beliebt, da viele Nutzer nicht dazu bereit sind, initial für Software zu bezahlen. Hat der Nutzer die Software jedoch in seinen Workflow oder sein Leben integriert, ist er viel eher dazu bereit, für mehr Features zu bezahlen.
Das Freemium-Konzept existiert auch bei einigen kommerziellen Open-Source-Projekten. Hierbei wird die kostenfreie Basisanwendung unter einer Open Source Lizenz veröffentlicht, während der Quellcode für die kostenpflichtige Premiumversion entweder geschlossen bleibt oder unter einer proprietären Lizent veröffentlicht wird (source-available).
Zu den kostenpflichtigen Features gehörten oft solche Features, die vorwiegend von Unternehmen eingesetzt werden (bspw. Single Sign On oder eine erweiterte Benutzerrechteverwaltung).
Beispiele für Freemium-Open-Source-Projekte sind JetBrains IntelliJ/PyCharm sowie Gitlab.