GitHub Package Registry für Maven Packages nutzen

Vor einigen Wochen hat GitHub die GitHub Package Registry vorgestellt. Mit dieser ist es möglich fertige Packages direkt beim Projekt auf GitHub zu hosten. Aktuell unterstützt werden, neben Maven-Packages, unter anderem die Paketsysteme von NPM, Ruby, und NuGet. GitHub selbst definiert den Zweck der Registry wie folgt:

GitHub Package Registry allows you to develop your code and host your packages in one place. You can use packages from GitHub Package Registry as a dependency in your source code on GitHub.

Nach einer Registrierung unter github.com/features/package-registry kann das erste Paket für die Package Registry erstellt werden. Dazu muss im entsprechenden Java-Projekt in der pom.xml folgender Block hinzugefügt werden:

<!-- Definition for uploading artifact to custom repository -->
<distributionManagement>
    <repository>
        <id>github</id>
        <name>GitHub OWNER Apache Maven Packages</name>
        <url>https://maven.pkg.github.com/OWNER/mediawikixml</url>
    </repository>
</distributionManagement>

Das Wort OWNER muss dabei durch den eigenen GitHub-Nutzernamen ausgetauscht werden. Anschließend müssen die Zugangsdaten für GitHub hinterlegt werden. Dazu wird die Maven settings.xml geöffnet:

nano ~/.m2/settings.xml

Zu der Einstellungsdatei wird nun folgender Block hinzugefügt:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <activeProfiles>
    <activeProfile>github</activeProfile>
  </activeProfiles>

  <profiles>
    <profile>
      <id>github</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>https://repo1.maven.org/maven2</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
          <id>github</id>
          <name>GitHub OWNER Apache Maven Packages</name>
          <url>https://maven.pkg.github.com/OWNER</url>
        </repository>
      </repositories>
    </profile>
  </profiles>

  <servers>
    <server>
      <id>github</id>
      <username>USERNAME</username>
      <password>TOKEN</password>
    </server>
  </servers>
</settings>

Auch hier muss OWNER wieder durch den eigenen Nutzernamen ersetzt werden. Bei der Konfiguration müssen daneben die Felder USERNAME und TOKEN gefüllt werden. Das Token wird in den Einstellungen von GitHub unter Settings – Developer settings – Personal access tokens erzeugt.

Ein Personal Access Token muss für die Package Registry erzeugt werden

Nachdem das Token erzeugt wurde und die Konfiguration für Maven entsprechend hinterlegt wurde, kann das Package mittels:

mvn deploy

deployed werden und erscheint somit in der Package Registry. Angesehen werden kann das Paket nun mittels der URL:

https://github.com/OWNER/REPOSITORY/packages/

Zur Einbindung des neuen Paketes in einem anderes Projekt muss der pom.xml des anderen Projektes folgender Block hinzugefügt werden:

<!-- External non standard repositories -->
<repositories>
    <repository>
        <id>github</id>
        <url>https://maven.pkg.github.com/OWNER/REPOSITORY</url>
    </repository>
</repositories>

Anschließend kann das neue Paket ganz normal als Dependency hinzugefügt werden:

<dependency>
    <groupId>org.example</groupId>
    <artifactId>libtest</artifactId>
    <version>1.0.1</version>
</dependency>

Damit können schnell Pakete über die GitHub Package Registry bereitgestellt werden.

Nginx-Konfiguration per GUI

Bei der Nutzung des freien Webservers Nginx müssen für die einzelnen Domains Konfigurationen erstellt werden. Im Normalfall werden diese von Hand erstellt, allerdings existieren mittlerweile Werkzeuge, um diese auf anderem Wege zu erzeugen.

Über die Oberfläche kann eine Nginx-Konfiguration erzeugt werden

Eines dieser Werkzeuge ist nginxconfig.io. Über die Webseite kann eine Konfiguration erstellt werden, indem die gewünschten Optionen ausgewählt werden. Auch kann mit vorgefertigten Presets gearbeitet werden. Für den Einsteiger ist sicherlich interessant, dass er so ein Gefühl für Möglichkeiten von Nginx bekommt. Der Quelltext des Dienstes kann über GitHub bezogen werden. Er ist unter der MIT-Lizenz lizenziert und damit freie Software.

Videos unter WordPress DSGVO konform einbinden

Um Videos unter WordPress DSGVO konform einzubinden, existieren eine Reihe von Plugins, welche diese Aufgabe übernehmen. Meist funktionieren diese Plugins nur für YouTube oder Vimeo und nicht für beide oder andere Videodienste. Das Plugin Video-Privatsphäre händelt dies anders.

Im Beispiel würde die Einbindung eines Videos mit dem Plugin wie folgt aussehen:

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://www.youtube.com/watch?v=-9xNrBQpFt4

Neben den Diensten YouTube und Vimeo werden auch andere Dienste vom Plugin unterstützt. Allerdings hat das Plugin ein Problem mit größeren Videos, welche in einem beschränkten Content-Bereich abgespielt werden. Diese werden abgeschnitten, sodass das Video und der Player nicht richtig zu sehen sind. Auf GitHub habe ich eine Version des Plugins bereitgestellt, welche dieses Problem löst. Der originäre Quelltext des Plugins findet sich ebenfalls auf GitHub. Lizenziert ist das Plugin unter der GPL2 (und später) und damit freie Software.

Panorama-Plugin für WordPress

Für die Darstellung eines 360° Panorama, in der Rektangularprojektion (equirectangular), gibt es unter WordPress einige Plugins. Eines dieser Plugins ist DImage 360.

DImage 360
Preis: Kostenlos

Mithilfe des Plugins können Panoramen einfach per Shortcode in die Seite eingebunden werden:

[dimage attachment_id="123" control=true auto-rotate=true]

Übergeben wird hierbei die Attachment-ID, welche über den Medienmanager von WordPress ermittelt werden kann. Auf Mobilgeräten beherrscht DImage 360 einen Cardboard-Modus, sodass die Panoramen auch in einer Cardboard-kompatiblen VR-Brille angeschaut werden können.

Das Plugin in Aktion

Einziger Wermutstropfen bei der Nutzung über mobile Geräte ist ein Problem mit dem Vollbildmodus, welcher sich nur auf dem Desktop aktivieren lässt. Der Quellcode für das Plugin ist auf GitHub zu finden. Leider sind dort keinerlei Lizenzinformation hinterlegt.

Konsolen-Emulator für Windows

Eine ordentliche Konsole unter Windows ist so eine Sache. Die meisten professionellen Nutzer sind mit den bestehenden Konsolen unter Windows nicht zufrieden, auch wenn die PowerShell ein wenig Besserung brachte und Microsoft mit dem Windows Terminal aktuell einen neuen Anlauf startet.

Windows Terminal (Preview)
Preis: Kostenlos

Eine weitere Variante ist der Konsolen-Emulator Cmder. Dieser liefert Lösung für eine gut integriertes Terminal. Im Gegensatz zu vielen anderen Lösungen ist Cmder portabel, kann also von Rechner nur Rechner mitgenommen und genutzt werden, ohne Spuren zu hinterlassen. Technisch basiert Cmder auf ConEmu und wurde durch ein Theme und die Clink-Erweiterungen verfeinert.

Cmder

Verfügbar ist Cmder für Windows und kann über die offizielle Seite des Projektes, unter cmder.net bezogen werden. Der Quelltext ist auf GitHub zu finden. Er ist unter der MIT License lizenziert und somit freie Software.