generated from leonetienne/LaTeX-Paper-template
feat: vergleich qr-code bibliotheken
This commit is contained in:
parent
2d42eaa169
commit
c7c4956c29
BIN
bar_chart.png
Normal file
BIN
bar_chart.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
bar_chart_grouped_by_objects.png
Normal file
BIN
bar_chart_grouped_by_objects.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
@ -22,14 +22,16 @@ Jedoch verweist diese Bibliothek selbst auf ihren desolaten Zustand und empfielt
|
|||||||
gepflegt wird. \textit{jquery-qrcode} wurde bis zum heutigen Tage 853 mal von Nutzern mit einem Stern
|
gepflegt wird. \textit{jquery-qrcode} wurde bis zum heutigen Tage 853 mal von Nutzern mit einem Stern
|
||||||
markiert \cite{bib:larsjung-jquery-qrcode}.
|
markiert \cite{bib:larsjung-jquery-qrcode}.
|
||||||
Wenn ein Nutzer ein Github-Repository mit einem Stern markiert, interessiert sich der Nutzer weit genug,
|
Wenn ein Nutzer ein Github-Repository mit einem Stern markiert, interessiert sich der Nutzer weit genug,
|
||||||
um über Neuigkeiten auf dem Laufenden gehalten werden zu wollen \cite{bib:github-stars}.
|
um über Neuigkeiten auf dem Laufenden gehalten werden zu wollen \cite{bib:github-stars}. Jquery-qrcode ist MIT-lizensiert
|
||||||
|
\cite{bib:larsjung-jquery-qrcode}.
|
||||||
|
|
||||||
\subsubsection*{kjua}
|
\subsubsection*{kjua}
|
||||||
\textit{Kjua} ist eine Javascript-Bibliothek, um dynamisch QR-Codes auf Browserseite zu generieren.
|
\textit{Kjua} ist eine Javascript-Bibliothek, um dynamisch QR-Codes auf Browserseite zu generieren.
|
||||||
Im Gegensatz zu \textit{jquery-qrcode} funktioniert Kjua auch ohne JQuery. Es werden diverse Stilattribute für gestaltete
|
Im Gegensatz zu \textit{jquery-qrcode} funktioniert Kjua auch ohne JQuery. Es werden diverse Stilattribute für gestaltete
|
||||||
QR-Codes unterstützt \cite{bib:larsjung-kjua}. Kjua setzt QR-Codes über HTML-Canvas um. Das ist bei näherer Betrachtung
|
QR-Codes unterstützt \cite{bib:larsjung-kjua}. Kjua kann QR-Codes über HTML-Canvas, Bilder und Vektorgrafiken umsetzen. Das ist bei näherer Betrachtung der Kjua Tech Demo \enpointy{https://larsjung.de/kjua/latest/demo} ersichtlich, jedoch
|
||||||
der Kjua Tech Demo \enpointy{https://larsjung.de/kjua/latest/demo} ersichtlich, jedoch nicht explizit erwähnt.
|
nicht explizit erwähnt. Nach dem aktuellen Stand wurde Kjua von 243 Nutzern mit einem Stern markiert.
|
||||||
Nach dem aktuellen Stand wurde Kjua von 243 Nutzern mit einem Stern markiert \cite{bib:larsjung-kjua}.
|
Kjuas letzte Codeänderung liegt circa zwei Jahre zurück. Es gibt eine unbeantwortete, sieben Jahre alte Pull-Request und
|
||||||
|
Issues scheinen ignoriert zu werden. Kjua ist MIT-lizensiert \cite{bib:larsjung-kjua}.
|
||||||
|
|
||||||
\subsubsection*{soldair/node-qrcode}
|
\subsubsection*{soldair/node-qrcode}
|
||||||
\textit{Soldair/node-qrcode} ist eine node.js-basierte Implementation eines QR-Code Generators und bietet somit Funktionialität
|
\textit{Soldair/node-qrcode} ist eine node.js-basierte Implementation eines QR-Code Generators und bietet somit Funktionialität
|
||||||
@ -38,20 +40,21 @@ und detailreichen Erklärungen. Der letzte Commit ist zu diesem Zeitpunkt knapp
|
|||||||
Projekt einen moderat gepflegten Eindruck. Die Readme-Datei verweist auf Unit Tests bei Travis, jedoch lief die letzte Pipeline
|
Projekt einen moderat gepflegten Eindruck. Die Readme-Datei verweist auf Unit Tests bei Travis, jedoch lief die letzte Pipeline
|
||||||
vor circa zwei Jahren, Februar 2021, durch und schlug zudem fehl. Einige Pull-Requests und Issues werden seit Jahren ignoriert
|
vor circa zwei Jahren, Februar 2021, durch und schlug zudem fehl. Einige Pull-Requests und Issues werden seit Jahren ignoriert
|
||||||
\cite{bib:soldair-node-qrcode}.
|
\cite{bib:soldair-node-qrcode}.
|
||||||
Die Bibliothek wurde 74 Millionen mal heruntergeladen mit 6308 Sternen markiert \cite{bib:npmjs-soldair-node-qrcode}.
|
Die Bibliothek wurde 74 Millionen mal heruntergeladen mit 6308 Sternen markiert.
|
||||||
|
Soldair/node-qrcode ist MIT-lizensiert \cite{bib:npmjs-soldair-node-qrcode}.
|
||||||
|
|
||||||
\subsection*{PHP-Implementationen}
|
\subsection*{PHP-Implementationen}
|
||||||
\subsubsection*{chillerlan/php-qrcode}
|
\subsubsection*{chillerlan/php-qrcode}
|
||||||
Eine arrivierte Lösung für QR-Code Generierung in PHP ist \textit{chillerlan/php-qrcode}, umgesetzt durch
|
Eine arrivierte Lösung für QR-Code Generierung in PHP ist \textit{chillerlan/php-qrcode}, umgesetzt durch
|
||||||
Eugen Rochko und weitere. Das zeigt sich durch den zu diesem Zeitpunkt auf 5 Millionen stehenden Downloadzähler,
|
Eugen Rochko und weitere. Das zeigt sich durch den zu diesem Zeitpunkt auf 5 Millionen stehendem Downloadzähler,
|
||||||
mehrere Entwickler und den letzten Commit, der zu diesem Zeitpunk nicht älter als einen Monat alt ist.
|
mehrere Entwickler und den letzten Commit, der zu diesem Zeitpunk nicht älter als einen Monat ist.
|
||||||
Insgesamt erfolgten bis dato 808 Commits von 6 Entwicklern. Das Projekt verfügt über Unit-Tests,
|
Insgesamt erfolgten bis dato 808 Commits von 6 Entwicklern. Das Projekt verfügt über Unit-Tests,
|
||||||
die 90\% der Zeilen in der Codebase abdecken. Rochko übernahm Teile der Codebase aus
|
die 90\% der Zeilen in der Codebase abdecken. Rochko übernahm Teile der Codebase aus
|
||||||
dem Java-Projekt \enquote{ZXing} und übersetzte diese zu PHP.
|
dem Java-Projekt \enquote{ZXing} und übersetzte diese zu PHP.
|
||||||
Issues und Pull Requests sind alle bearbeitet. Es gibt keine unbeantworteten Issues oder Pull-Requests.
|
Issues und Pull Requests sind alle bearbeitet. Es gibt zu diesem Zeitpunkt keine unbeantworteten Issues oder Pull-Requests.
|
||||||
\textit{chillerlan/php-qrcode} basiert auf einer angepassten Version von \textit{kazuhikoarase/qrcode-generator}.
|
\textit{chillerlan/php-qrcode} basiert auf einer angepassten Version von \textit{kazuhikoarase/qrcode-generator}.
|
||||||
Einzig auffällig sind die Commitnachrichten, die zuteils nur aus einem (1) Emoji bestehen.
|
Einzig auffällig sind die Commitnachrichten, die zuteils nur aus einem (1) Emoji bestehen.
|
||||||
\textit{chillerlan/php-qrcode} wurde von 1212 Github-Nutzern mit einem Stern markiert
|
\textit{chillerlan/php-qrcode} wurde von 1212 Github-Nutzern mit einem Stern markiert. Die Bibliothek ist MIT-lizensiert
|
||||||
\cite{bib:chillerlan-php-qrcode}.
|
\cite{bib:chillerlan-php-qrcode}.
|
||||||
|
|
||||||
\subsubsection*{kreativekorp/barcode}
|
\subsubsection*{kreativekorp/barcode}
|
||||||
@ -62,7 +65,9 @@ Das Projekt wurde bis zum heutigen Tage 189 mal mit einem Stern markiert \cite{b
|
|||||||
Die letzte Codeänderung dieses Projektes ist auf 2018 datiert \cite{bib:kreativkorp-barcode}. Das liegt zu diesem Zeitpunkt
|
Die letzte Codeänderung dieses Projektes ist auf 2018 datiert \cite{bib:kreativkorp-barcode}. Das liegt zu diesem Zeitpunkt
|
||||||
vier Jahre in der Vergangenheit. Vier von den sechs Commits erfolgten innerhalb von zwei Tagen in 2016. Ein weiterer
|
vier Jahre in der Vergangenheit. Vier von den sechs Commits erfolgten innerhalb von zwei Tagen in 2016. Ein weiterer
|
||||||
Commit erfolte wenige Tage später. Der aktuellste Commit wurde knapp zwei Jahre später, 2018, veröffentlicht.
|
Commit erfolte wenige Tage später. Der aktuellste Commit wurde knapp zwei Jahre später, 2018, veröffentlicht.
|
||||||
Damit ist diese Bibliothek de-facto sechseinhalb Jahre alt und wurde seitdem ein mal um Featuers erweitert
|
Damit ist diese Bibliothek de-facto sechseinhalb Jahre alt und wurde seitdem ein mal um Featuers erweitert.
|
||||||
|
Issues und Pull-Requests werden weitestgehend ignoriert.
|
||||||
|
Die Bibliothek verwendet die MIT-Lizenz
|
||||||
\cite{bib:kreativkorp-barcode}.
|
\cite{bib:kreativkorp-barcode}.
|
||||||
|
|
||||||
\subsubsection*{Bacon/BaconQrCode}
|
\subsubsection*{Bacon/BaconQrCode}
|
||||||
@ -74,12 +79,13 @@ Insgesamt machen die stichprobenartig betrachteten Projekte einen desolaten Eind
|
|||||||
von vor 10 Jahren. BaconQrCode stellt das beliebteste und gepflegteste Projekt mit 1508 Sterne-Markierungen und
|
von vor 10 Jahren. BaconQrCode stellt das beliebteste und gepflegteste Projekt mit 1508 Sterne-Markierungen und
|
||||||
einem aktuellsten Commit von vor zwei Monaten dar. BaconQrCode erfreut sich an 17 Entwicklern, die jeweils zumindest
|
einem aktuellsten Commit von vor zwei Monaten dar. BaconQrCode erfreut sich an 17 Entwicklern, die jeweils zumindest
|
||||||
einen Commit beigetragen haben. Insgesamt fanden zu diesem Zeitpunkt 177 Commits statt. Githubs DependencyGraph verzeichnet
|
einen Commit beigetragen haben. Insgesamt fanden zu diesem Zeitpunkt 177 Commits statt. Githubs DependencyGraph verzeichnet
|
||||||
nahezu 80.000 Projekte, die BaconQrCode verwenden. Eine Dokumentation neben der Readme-Datei existiert nicht und die
|
nahezu 80.000 Projekte die BaconQrCode verwenden\cite{bib:bacon-baconqrcode} und Packagist spricht von 50 Millionen Downloads
|
||||||
Readme-Datei ist sehr bescheiden. BaconQrCode kann QR-Codes als Rasterbild und Vektorgrafiken (SVG und EPS) generieren.
|
\cite{bib:packagist-baconqrcode}. Eine Dokumentation neben der Readme-Datei existiert nicht und die
|
||||||
Spezielle Styles sind nicht erwähnt. Ein Großteil der Issues und Pull-Requests wurden behandelt
|
diese ist bescheiden. BaconQrCode kann QR-Codes als Rasterbild und Vektorgrafiken (SVG und EPS) generieren.
|
||||||
|
Spezielle Styles sind nicht erwähnt. Ein Großteil der Issues und Pull-Requests wurden behandelt.
|
||||||
|
BaconQrCode ist mit einer BSD-2-Clause-Lizenz lizensiert
|
||||||
\cite{bib:bacon-baconqrcode}.
|
\cite{bib:bacon-baconqrcode}.
|
||||||
|
|
||||||
% Hiervor muss unbedingt die RE analyse!
|
|
||||||
\subsection*{Vergleich in Bezug auf die Problemstellung}
|
\subsection*{Vergleich in Bezug auf die Problemstellung}
|
||||||
Um eine Bibliothek als \enquote{die Beste} für einen Anwendungsfall zu kurieren,
|
Um eine Bibliothek als \enquote{die Beste} für einen Anwendungsfall zu kurieren,
|
||||||
müssen die konkreten Anforderungen und Constraints für diesen Anwendungsfall beachtet werden.
|
müssen die konkreten Anforderungen und Constraints für diesen Anwendungsfall beachtet werden.
|
||||||
@ -89,15 +95,85 @@ Hierfür werden die zuvor vorgestellten Bibliotheken zur Erstellung von QR-Codes
|
|||||||
\begin{description}
|
\begin{description}
|
||||||
\item [Funktionialität] \hfill \\
|
\item [Funktionialität] \hfill \\
|
||||||
Der Umfang der für diese Problemstellung relevanten Funktionen in Annahme dessen, dass die Bibliothek
|
Der Umfang der für diese Problemstellung relevanten Funktionen in Annahme dessen, dass die Bibliothek
|
||||||
syntaktisch und pragmatisch korrekt \cite{bib:heinemann-vorlesung-re} funktioniert.
|
syntaktisch und pragmatisch korrekt \cite{bib:heinemann-vorlesung-re} ist.
|
||||||
|
|
||||||
\item [Gepflegtheit] \hfill \\
|
\item [Gepflegtheit] \hfill \\
|
||||||
Das Ausmaß, in dem das Projekt aktiv gepflegt und ordnungsgemäß entwickelt zu sein scheint.
|
Das Ausmaß, in dem das Projekt aktiv gepflegt wird und ordnungsgemäß entwickelt zu sein scheint.
|
||||||
Hierzu zählen beispielsweise: Bearbeitung von Issues, Bearbeitung von Pull-Requests, Präsenz von Tests,
|
Hierzu zählen beispielsweise: Bearbeitung von Issues, Bearbeitung von Pull-Requests, Präsenz von Tests,
|
||||||
Präsenz einer angemessenen Dokumentation, häufige Commits, mehr als nur ein Contributor, Anzahl der
|
Präsenz einer angemessenen Dokumentation, häufige Commits, mehr als nur ein Contributor, Anzahl der
|
||||||
Sterne auf Github (Ausmaß an tieferem, öffentlichem Interesse \cite{bib:github-stars}), sowie der Anzahl der
|
Sterne auf Github (Ausmaß an tieferem, öffentlichem Interesse \cite{bib:github-stars}), sowie der Anzahl der
|
||||||
Downloads bzw Installationen, falls verfügbar.
|
Downloads bzw Installationen, falls verfügbar.
|
||||||
|
|
||||||
\item [Workflow-Eignung] \hfill \\
|
\item [Workflow-Eignung] \hfill \\
|
||||||
Die Eignung einer Bibliothek in existierende Workflows und Constraints übernommen zu werden.
|
Die Eignung einer Bibliothek in existierende Workflows und Constraints übernommen zu werden. Maßgeblich,
|
||||||
|
ob und mit wie viel Aufwand eine Bibliothek in das Projekt übernommen werden kann. Ebenfalls ist relevant,
|
||||||
|
ob die Lizenz einer Bibliothek überhaupt deren Einbundung gestattet, bzw. welche Bedingungen gelten.
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
|
Hierfür werden den verschiedenen Bibliotheken Punkte ($[0,10]$) in den zuvor genannten Kategorien vergeben.
|
||||||
|
Die Kumulativpunktzahl einer Bibltiothek beschreibt deren Gesamteignung.
|
||||||
|
|
||||||
|
\subsubsection*{kjua}
|
||||||
|
Kjua ist funktionell für dieses Projekt gut aufgestellt, da es optisch ansprechende QR-Codes mit Logo unterstützt. Das wird
|
||||||
|
mit acht Punkten in \enquote{Funktionalität} bemessen.
|
||||||
|
Kjua macht andererseits einen eher desolaten Eindruck und lässt somit begründete Zweifel an dessen Zukunftssicherheit zu.
|
||||||
|
Eine knappe Dokumentation ist verfügbar. Für die Dokumentation werden zwei Punkte in \enquote{Gepflegtheit} angerechnet.
|
||||||
|
Kjua ist als Javascript-Bibliothek nur schwer mit den Anforderungen vereinbar,
|
||||||
|
da der QR-Code in einem PDF eingebunden werden soll. Hierfür wäre ein serverseitiger Generator prädestiniert.
|
||||||
|
Kjuas Lizenz erlaubt Verwendung in kommerziellen, Closed-Source Projekten \cite{bib:opensource-license-mit}.
|
||||||
|
Die Exklusivität für Nutzung in Webbrowsern schließt eine Einbindung in den Workflow aus.
|
||||||
|
|
||||||
|
\begin{nicepic}
|
||||||
|
\includegraphics[width=1\textwidth]{images/qrlib-compare-barchart.png}
|
||||||
|
\captionof{figure}{Vergleichsergebnisse QR-Code Bibliotheken}
|
||||||
|
\caption*{Quelle: Eigene Darstellung}
|
||||||
|
\label{fig:qrlib-compare-barchart}
|
||||||
|
\end{nicepic}
|
||||||
|
|
||||||
|
\subsubsection*{soldair/node-qrcode}
|
||||||
|
Soldairs Lösung sieht dokumentativ und funktional vielversprechend aus.
|
||||||
|
Hieraus bilden sich 8 Punkte in \enquote{Funktionalität}.
|
||||||
|
Da diese Bibliothek eine Node.js-Bibliothek ist und Node.js ohne Browser, als Kommandozeilenapplikation ausgeführt werden
|
||||||
|
kann \cite{bib:nodejs-api-cli}, böte sich
|
||||||
|
Soldair/node-qrcode als serverseitige Anwendung an. Auch die Lizenz spräche nicht gegen eine Verwendung. Dennoch wäre es
|
||||||
|
ein vermeidbarer Mehraufwand und ggf. imperformant generierte QR-Codes aus einer Node.JS-Applikation in eine PHP-Umgebung zu
|
||||||
|
übertragen. Das bildet sich mit vier Punkten in \enquote{Workflow-Eignung} ab.
|
||||||
|
Darüberhinaus macht Soldair/node-qrcode einen verbesserungswürdigen Eindruck der Projektpflege, wofür es lediglich
|
||||||
|
drei Punkte gibt.
|
||||||
|
|
||||||
|
\subsubsection*{chillerlan/php-qrcode}
|
||||||
|
Rochkos Lösung macht einen aktiv gepflegten Eindruck und wird von großen Downloadzahlen gestützt.
|
||||||
|
Rochko stellt eine ausführliche Dokumentation und Codebeispiele bereit.
|
||||||
|
Hierfür wird die volle Punktzahl in \enquote{Gepflegtheit} vergeben.
|
||||||
|
Der Funktionsumfang übersteigt weit die Anforderungen und gestattet so ausführlich gestaltete QR-Codes
|
||||||
|
\cite{bib:chillerlan-php-qrcode-demo},
|
||||||
|
die somit ebenso die hedonische Qualität fördern \cite{bib:koenig-vorlesung-ux}.
|
||||||
|
Bewertet wird das mit einer vollen Punktzahl in \enquote{Funktionalität}.
|
||||||
|
Chillerlan/php-qrcode lässt sich nahtlos in das existierende Projekt eingliedern,
|
||||||
|
da es als PHP-Bibliothek über Composer eingebunden werden kann und eine eigene API bereitstellt \cite{bib:chillerlan-php-qrcode}.
|
||||||
|
Die von Rochko verwendete Lizenz gestattet eine unkomplizierte Verwendung. Chillerlan/php-qrcode funktioniert sowohl mit
|
||||||
|
PHP \^7.4 und \^8.0. Die Bibliothek benötigt zwei weitere Abhängigkeiten. Eine dieser Abhängigkeiten ist ebenfalls von Rochko
|
||||||
|
bereitgestellt \cite{bib:chillerlan-php-qrcode-composerjson} und weist eine ähnlich gute Projektpflege auf
|
||||||
|
\cite{bib:chillerlan-php-settings-container}. Das wird mit der Maximalwertung in \enquote{Workflow-Eignung} berechnet.
|
||||||
|
|
||||||
|
\subsubsection*{kreativekorp/barcode}
|
||||||
|
Kreativekorp beeindruckt durch Nutzungsbeispiele und Dokumentation in der Readme-Datei, sowie einer Vielzahl unterstützter
|
||||||
|
Barcode-Formate, darunter auch QR-Codes und einiger improvisierter Tests.
|
||||||
|
Hierfür werden drei Punkte in \enquote{Gepflegtheit} vergeben.
|
||||||
|
0 Punkte in \enquote{Workflow-Eignung} rechtfertigen sich durch die Abwesenheit jeglicher
|
||||||
|
Unterstützung für Paketmanager, wodurch eine saubere Verwendung in dem Brownfield-Projekt Änderungen an der Bibliothek
|
||||||
|
selbst erfordern würde.
|
||||||
|
Die Funktionalität wurde aufgrund der desaströsen Gepflegtheit und Eignung nicht näher untersucht,
|
||||||
|
da eine Verwendung selbst mit guter Funktionalität nicht infrage käme.
|
||||||
|
|
||||||
|
\subsubsection*{Bacon/BaconQrCode}
|
||||||
|
BaconQrCode nennt keine speziellen Optionen um näheren Einfluss auf den generierten QR-Code auszuüben.
|
||||||
|
Es werden Rasterbilder und verschiedene Vektorformate als Renderziel unterstützt. Aufgrund der fehlenden Optionen,
|
||||||
|
die andere Bibliotheken bereitstellen, werden lediglich fünf von 10 Punkten für \enquote{Funktionalität} vergeben.
|
||||||
|
Die Projektgepflegtheit ist inkonsistent. Manche Stellen, beispielsweise die Mitwirkenden, Alter des neuesten Commits, Tests
|
||||||
|
und Nutzerzahlen machen einen guten Eindruck, während Punkte wie die Dokumentation, die Organisationswebseite und andere
|
||||||
|
Projekte Sorgen begründen. Für die \enquote{Gepflegtheit} werden 8 Punkte vergeben.
|
||||||
|
Da es sich hierbei um eine PHP-Bibliothek handelt, die über Composer in PHP- \^7.4 und \^8.0 Projekte geladen werden kann
|
||||||
|
und eine API bereitstellt, ist die \enquote{Workflow-Eignung} gut. Die BSD-2-Clause-Lizenz verkompliziert eine Integration,
|
||||||
|
da dadurch eine Copyright-Notiz an Nutzer gezeigt werden muss \cite{bib:opensource-license-bsd-2}.
|
||||||
|
Dadurch werden drei Punkte einer vollkommenen Workflow-Eignung abgezogen, wodurch sieben Punkte vergeben werden.
|
||||||
|
@ -5,6 +5,13 @@
|
|||||||
publisher = {Hochschule Worms},
|
publisher = {Hochschule Worms},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@book{bib:koenig-vorlesung-ux,
|
||||||
|
author = {Werner König},
|
||||||
|
title = {Vorlesung: User Experience},
|
||||||
|
year = {2022},
|
||||||
|
publisher = {Hochschule Worms},
|
||||||
|
}
|
||||||
|
|
||||||
@article{bib:Parviainen_Tihinen_Kaariainen_Teppola_2022,
|
@article{bib:Parviainen_Tihinen_Kaariainen_Teppola_2022,
|
||||||
title={Tackling the digitalization challenge: how to benefit from digitalization in practice},
|
title={Tackling the digitalization challenge: how to benefit from digitalization in practice},
|
||||||
volume={5},
|
volume={5},
|
||||||
@ -181,6 +188,30 @@
|
|||||||
note = {Zugriff: Januar 2023}
|
note = {Zugriff: Januar 2023}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@misc{bib:chillerlan-php-qrcode-demo,
|
||||||
|
author = {Eugen Rochko},
|
||||||
|
howpublished = "\url{https://smiley.codes/qrcode}",
|
||||||
|
title = {{SVG QR Code Generator}},
|
||||||
|
year = {2023},
|
||||||
|
note = {Zugriff: Januar 2023}
|
||||||
|
}
|
||||||
|
|
||||||
|
@misc{bib:chillerlan-php-qrcode-composerjson,
|
||||||
|
author = {Eugen Rochko},
|
||||||
|
howpublished = "\url{https://github.com/chillerlan/php-qrcode/blob/main/composer.json}",
|
||||||
|
title = {{composer.json}},
|
||||||
|
year = {2022},
|
||||||
|
note = {Zugriff: Januar 2023}
|
||||||
|
}
|
||||||
|
|
||||||
|
@misc{bib:chillerlan-php-settings-container,
|
||||||
|
author = {Eugen Rochko},
|
||||||
|
howpublished = "\url{https://github.com/chillerlan/php-settings-container}",
|
||||||
|
title = {{A container class for immutable settings objects. Not a DI container.}},
|
||||||
|
year = {2022},
|
||||||
|
note = {Zugriff: Januar 2023}
|
||||||
|
}
|
||||||
|
|
||||||
@misc{bib:kreativkorp-barcode,
|
@misc{bib:kreativkorp-barcode,
|
||||||
author = {Rebecca G Bettencourt},
|
author = {Rebecca G Bettencourt},
|
||||||
howpublished = "\url{https://github.com/kreativekorp/barcode}",
|
howpublished = "\url{https://github.com/kreativekorp/barcode}",
|
||||||
@ -197,6 +228,14 @@
|
|||||||
note = {Zugriff: Januar 2023}
|
note = {Zugriff: Januar 2023}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@misc{bib:packagist-baconqrcode,
|
||||||
|
author = {{Packagist}},
|
||||||
|
howpublished = "\url{https://packagist.org/packages/bacon/bacon-qr-code}",
|
||||||
|
title = {{BaconQrCode is a QR code generator for PHP.}},
|
||||||
|
year = {2023},
|
||||||
|
note = {Zugriff: Januar 2023}
|
||||||
|
}
|
||||||
|
|
||||||
@misc{bib:github-stars,
|
@misc{bib:github-stars,
|
||||||
author = {{Github}},
|
author = {{Github}},
|
||||||
howpublished = "\url{https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars}",
|
howpublished = "\url{https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars}",
|
||||||
@ -235,3 +274,25 @@
|
|||||||
year = {2016},
|
year = {2016},
|
||||||
author = {{Die SOPHISTen}},
|
author = {{Die SOPHISTen}},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@misc{bib:opensource-license-mit,
|
||||||
|
author = {{Opensource.org}},
|
||||||
|
howpublished = "\url{https://opensource.org/licenses/MIT}",
|
||||||
|
title = {{The MIT License}},
|
||||||
|
note = {Zugriff: Januar 2023}
|
||||||
|
}
|
||||||
|
|
||||||
|
@misc{bib:opensource-license-bsd-2,
|
||||||
|
author = {{Opensource.org}},
|
||||||
|
howpublished = "\url{https://opensource.org/licenses/BSD-2-Clause}",
|
||||||
|
title = {{The 2-Clause BSD License}},
|
||||||
|
note = {Zugriff: Januar 2023}
|
||||||
|
}
|
||||||
|
|
||||||
|
@misc{bib:nodejs-api-cli,
|
||||||
|
author = {{OpenJS Foundation}},
|
||||||
|
howpublished = "\url{https://nodejs.org/api/cli.html#command-line-api}",
|
||||||
|
title = {{Command-line API}},
|
||||||
|
year = {2023},
|
||||||
|
note = {Zugriff: Januar 2023}
|
||||||
|
}
|
||||||
|
37
images/make-qrlib-compare-barchart.py
Executable file
37
images/make-qrlib-compare-barchart.py
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#!python
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
# Create data for the chart
|
||||||
|
objects = {
|
||||||
|
"(js) kjua": [8, 2, 0],
|
||||||
|
"(js) soldair/node-qrcode": [8, 3, 4],
|
||||||
|
"(php) chillerlan/php-qrcode": [10, 10, 10],
|
||||||
|
"(php) kreativekorp/barcode": [0, 3, 4],
|
||||||
|
"(php) bacon/baconqrcode": [5, 8, 4],
|
||||||
|
}
|
||||||
|
|
||||||
|
# Transpose the data
|
||||||
|
objects_data = list(zip(*[value for key, value in objects.items()]))
|
||||||
|
|
||||||
|
# Create the x-axis of the chart
|
||||||
|
x = list(objects.keys())
|
||||||
|
|
||||||
|
# Property names
|
||||||
|
property_names = ["Funktionalität", "Gepflegtheit", "Workflow-Eignung"]
|
||||||
|
|
||||||
|
# Create the chart
|
||||||
|
for i, object_data in enumerate(objects_data):
|
||||||
|
plt.bar(x, object_data, bottom=[sum(objects_data[j][k] for j in range(i)) for k in range(len(x))], width=0.5, label=property_names[i])
|
||||||
|
# Add title and legend to the chart
|
||||||
|
plt.title('Vergleich von QR-Code Bibliotheken im Kontext:\nWeinland-Mosel Einlieferungswerkzeug')
|
||||||
|
plt.legend()
|
||||||
|
plt.ylabel("Gesamteignung")
|
||||||
|
|
||||||
|
# Rotate the x-axis labels to avoid overlapping
|
||||||
|
plt.xticks(rotation=45)
|
||||||
|
|
||||||
|
# Increase the bottom margin to avoid x-axis labels getting cut off
|
||||||
|
plt.subplots_adjust(bottom=0.35)
|
||||||
|
|
||||||
|
#save the figure
|
||||||
|
plt.savefig("images/qrlib-compare-barchart.png")
|
BIN
images/qrlib-compare-barchart.png
Normal file
BIN
images/qrlib-compare-barchart.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
Loading…
x
Reference in New Issue
Block a user