Standard-Editor für Git setzen

Wenn das Versionsverwaltungsystem Git im Terminal bzw. auf der Konsole genutzt wird, so wird unter anderem im Falle des Befehls:

git commit

ein Editor geöffnet (in diesem Fall, zur Eingabe der Commit-Nachricht). Der betreffende Editor wird durch die Git-Konfiguration bestimmt. Innerhalb der Konfiguration definiert der Parameter core.editor den zu nutzenden Editor. Um einen Editor zu setzen, z.B. nano muss folgender Befehl genutzt werden:

git config --global core.editor "nano"

Damit wird der Editor nano in der globalen Git-Konfiguration hinterlegt und fortan als Standard-Editor für Git im Terminal genutzt.

Git-Branch ohne History erstellen

Eine wichtige Eigenschaft moderner Versionskontrollsysteme ist die Möglichkeit Branches zu erstellen. Ein neu erstellter Branch stellt aus Anwendersicht eine Kopie des Quellbranches da. Manchmal soll allerdings ein Branch erstellt werden, welcher nicht von der Versionsgeschichte eines Quellbranches beeinflusst ist. Unter Git kann ein solcher Branch mit dem Befehl:

git checkout --orphan branchName

erstellt werden. Dadurch wird ein Branch ohne Elternteil erstellt. Dies wiederum führt dazu das der Branch keinerlei Versionsgeschichte verfügt und unabhängig von anderen Branches des gleichen Repository existiert.

Ausführbare jar-Datei mittels Maven generieren

Für bestimmte Java-Projekte ist es durchaus praktisch als Ergebnis eine jar-Datei inklusive der benötigten Abhängigkeiten zu generieren. So kann das Projekt in Form einer einzelnen Datei unkompliziert ausgeliefert werden. Mittels Maven lässt sich dies relativ einfach bewerkstelligen. Dabei wird eine Basis-POM (pom.xml) benötigt, in welcher das Plugin maven-assembly-plugin konfiguriert wird:

<plugin>
	<artifactId>maven-assembly-plugin</artifactId>
	<version>3.1.0</version>
	<configuration>
		<archive>
			<manifest>
				<mainClass>com.example.webservice.Webservice</mainClass>
			</manifest>
		</archive>
		<descriptorRefs>
			<descriptorRef>jar-with-dependencies</descriptorRef>
		</descriptorRefs>
	</configuration>
</plugin>

Soll nach erfolgter Entwicklung die jar-Datei mit den Abhängigkeiten erzeugt werden, muss das Kommando:

mvn clean compile assembly:single

genutzt werden. Damit das Ganze auch beim gewöhnlichen:

mvn package

funktioniert, muss die pom.xml angepasst werden. Dabei wird zur Plugin-Definition ein executions-Block hinzugefügt, welcher dafür sorgt das dass Ziel single auch während der Phase package ausgeführt wird. Die komplette pom.xml sieht dann wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>webservice</artifactId>
    <version>1.0.0</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.example.webservice.Webservice</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Alle im dependencies-Block verwendeten Abhängigkeiten, werden somit in die jar-Datei übernommen.

Verbleibende Zeit im Batteriebetrieb anzeigen

Bei batteriebetriebenen Apple-Geräten wie der MacBook-Serie gab es in früheren Versionen des Betriebssystems eine Anzeige der noch verbleibenden Zeit im Batteriebetrieb. Diese war zu sehen wenn das Akkusymbol in der Menüleiste angeklickt wurde. In neueren Versionen von macOS ist diese Angabe leider nicht mehr zu finden.

Die Angabe der verbleibenden Zeit ist verschwunden

Warum diese Angabe entfernt wurde ist unklar; allerdings kann sie anderweitig im System angezeigt werden. Eine Variante ist die Nutzung der Aktivitätsanzeige. In dieser findet sich im Tab Energie im unteren Bereich eine Anzeige der verbleibenden Zeit.

In der Aktivitätsanzeige kann die Angabe der verbleibenden Zeit noch gefunden werden

Neben dem Weg über die Aktivitätsanzeige, kann die verbleibende Zeit alternativ über das Terminal ermittelt werden. Dazu muss dort:

pmset -g batt

eingeben. Anschließend erscheint eine Ausgabe nach dem Schema:

-InternalBattery-0 (id=5331033)	74%; discharging; 2:29 remaining present: true

Die Zahl vor dem remaining gibt hierbei die verbleibende Zeit an.

Nethack im Browser

Nethack, einer der Klassiker des Roguelike, wird im Normalfall im Terminal gespielt. Allerdings hat man nicht zu jeder Zeit ein Terminal in Reichweite. Einfacher ist es den Browser zu starten und BrowserHack zu spielen. Diese Implementation bzw. Portierung von Nethack findet sich unter coolwanglu.github.io/BrowserHack/. Im Gegensatz zum klassischen Nethack auf dem Terminal, werden bei BrowserHack entsprechende Tilesets unterstützt. Dadurch wird es für Einsteiger einfacher, einen Weg in das Spiel zu finden.

Mit BrowserHack kann Nethack im Browser gespielt werden

Der Quelltext von BrowserHack ist auf GitHub zu finden. Lizenziert ist das Ganze unter der NetHack General Public License kurz NGPL, welches eine von der Open Source Initiative zertifizierte freie Lizenz ist.