Gogs aktualisieren

Nutzt man die freie Git-Hosting-Lösung Gogs, so kommt man regelmäßig in den Genuss von Updates. Möchte man das Upgrade einspielen, so gibt es einige Dinge zu beachten. Im ersten Schritt sollte der Dienst auf dem Server natürlich beendet werden:

service gogs stop

Anschließend wird in den Kontext des Nutzers gewechselt unter welchem Gogs betrieben wird:

su git
cd

Der nächste Schritt ist der Download der neuen Version, sowie die Verschiebung der alten Version und das Kopieren der Konfigurationsdatei von der alten zur neuen Version:

mv gogs gogs_old
wget https://github.com/gogits/gogs/releases/download/v0.8.10/linux_amd64.zip
unzip linux_amd64.zip 
cp -R gogs_old/custom gogs
cp -R gogs_old/data gogs
cp -R gogs_old/log gogs

Danach wird in den Gogs Ordner gewechselt und Gogs manuell gestartet.

cd gogs
./gogs web

Bei diesem Start wird die Migration der Datenbank durchgeführt. Anschließend kann Gogs wie gehabt genutzt werden. Die heruntergeladene Datei sowie der Ordner gogs_old können anschließend entfernt werden.

Ton unter Mac OS X über HDMI ausgeben

Wenn man ein HDMI-Display unter Mac OS X an den Rechner anschließt, so wird die Ausgabe um das zusätzliche Bild erweitert. Anders sieht es beim Audio aus. Der Ton wird weiterhin über das Standardgerät ausgegeben. Möchte man dies ändern und auch den Ton über HDMI ausgeben muss ein Blick in die Systemeinstellungen geworfen werden.

Die entsprechenden Einstellungen unter Mac OS X

Die entsprechenden Einstellungen unter Mac OS X

Dort findet man unter Ton im Tab Ausgabe die entsprechende Option um den Ton über das HDMI-Gerät ausgeben zu lassen. Nach Auswahl dieser Option wird der Ton anschließend nur noch über das HDMI-Gerät ausgegeben. Wird das HDMI-Gerät entfernt wird die Ausgabe wieder auf das Standardgerät zurückgesetzt.

Java und vorzeichenlose Typen

Zur Entwicklung von Anwendungen nutze ich im Normalfall die Programmiersprache C#. In dieser gibt es sogenannte Signed und Unsigned-Datentypen. Im Deutschen würde man dazu vorzeichenbehaftete und vorzeichenlose Typen sagen. Bei einem vorzeichenbehafteten Typ wird die Hälfte des Wertebereiches für die Darstellung negativer Zahlen und die andere Hälfte für die Darstellung positiver Zahlen genutzt. Dies führt allerdings dazu das man die Hälfte des positiven Wertebereiches einbüßt. So gibt es für den UInt32 und den Int32 unter C# bzw. der CLR folgende Wertebereiche:

UInt32    0 bis 4.294.967.295
Int32    −2.147.483.648 bis 2.147.483.647

An dieser Stelle spielen vorzeichenlose Datentypen ihre Stärke aus, da sie über einen größeren Wertebereich für positive Zahlen verfügen – bei gleichem Speicherverbrauch. So ist die Nutzung vorzeichenloser Datentypen immer dann interessant, wenn man größere positive Zahlen speichern möchte. Wenn man sich nun die Datentypen bei Java anschaut, so wird man feststellen, das es unter Java keine vorzeichenlosen Typen (mit der Ausnahme des 16 Bit großen Typs char) gibt. Möchte man nun z.B. die Werte von 0 bis 255 speichern, was bei der Verarbeitung von Daten aus bestimmten Dateiformaten vorkommt, müsste man in Java hierfür einen short (16 Bit) anstatt eines byte (8 Bit) nutzen, da selbst das byte unter Java vorzeichenbehaftet ist und nur den Bereich von -128 bis 127 abbilden kann. Möchte man diesen zusätzlichen Speicherplatz nicht hergeben, so gibt es auch unter Java eine Möglichkeit größere Werte in einem byte zu speichern:

byte unsigned = (byte)200;
int value = (int)unsigned^-256;

In der ersten Zeile wird die Zahl 200 gecastet und der Variable unsigned zugewiesen. Das Bitmuster in der Variable entspricht dann der Zahl 200. Da der Typ allerdings als vorzeichenbehaftet interpretiert wird, würde ein:

System.out.println(unsigned);

zur Ausgabe der Zahl -56 führen. Möchten wir den Wert der Variable vorzeichenlos ermitteln, muss eine XOR-Operation mit -256 ausgeführt werden, welche schließlich zum Ergebnis 200 führt.

Verbindungsausetzer der Magic Mouse beheben

Die Magic Mouse von Apple ist mittels Bluetooth an den Rechner angebunden und funkt auf einer Frequenz von 2,4 Ghz. Unter Umständen kann es passieren das diese Frequenz gestört wird. Dies kann zu Aussetzern führen, welche sich darin äußern das die Verbindung der Maus mit dem Rechner unterbrochen wird.

Eine Magic Mouse von Apple

Eine Magic Mouse von Apple

Eine Ursache für dieses Problem kann ein bestehendes WLAN sein, welches auf einem der höheren Kanäle (7 – 13) betrieben wird. In einem solchen Fall kann es hilfreich sein den Kanal des 2,4 Ghz WLANs auf einen der niedrigen Kanäle einzustellen. Dies verringert die Störungen welche zwischen dem WLAN und dem Bluetooth auftreten können.

Mittels ffmpeg Videomaterial deinterlacen

Unter Umständen kann es vorkommen, das man viele Videodateien bearbeiten muss, welche in Halbbildern vorliegen. Möchte man diese nun in progressives Material (nur Vollbilder) umkodieren, so kann das freie Tool ffmpeg sehr hilfreich sein. Auf der Konsole sieht die einfachste Variante des deinterlacing dabei so aus:

ffmpeg -i InputFile -vf yadif OutputFile

Möchte man die Datei bei dem deinterlacen gleich umkodieren, so ist dies mit ffmpeg in einem Rutsch möglich:

ffmpeg -i InputFile.mp4 -c:v libx264 -preset slow -crf 18 -c:a copy -vf yadif OutputFile.mkv

In diesem Fall wird das Eingangsvideo in H.264 umkodiert und gleichzeitig das Material deinterlaced. Je nach Video nimmt der Vorgang etliche Minuten bis Stunden in Anspruch.