Wo befinden sich die Crontab-Dateien?

Wenn Cronjobs auf einem Linux-System angelegt werden sollen, so geschieht dies meist mit dem Befehl:

crontab -e

Damit wird die Crontab-Datei des aktuellen Nutzern in einem Editor geöffnet. Leider verschleiert der Befehl den Ort an dem die eigentlichen Crontab-Dateien liegen. Dies ist z.B. dann interessant wenn ein Backup der Cronjobs eingespielt werden soll. Die entsprechenden Crontab-Dateien befinden sich hierbei im Ordner:

/var/spool/cron/crontabs

Für jeden Nutzer existiert dort eine Datei mit dem entsprechenden Nutzernamen, in welchem die Cronjobs hinterlegt sind. Meistens wird ein solches Backup nach dem Befehl:

crontab -r

benötigt werden. Dieses Befehl löscht die Crontab-Datei des aktuellen Nutzers. Leider ist die E-Taste ein direkter Nachbar der R-Taste. Dies führt dazu das die Crontab-Datei beim Versuch sie zu bearbeiten, bedingt durch einen kleinen Vertipper, ohne Rückfrage gelöscht wird.

3D-Buch-Mockups erzeugen

Wenn ein Buch dargestellt werden soll, so kann natürlich einfach das Cover gezeigt werden. Allerdings wirkt dieses meist etwas künstlich, da die dritte Dimension fehlt.

Ein 3D-Mockup eines Buches

Für dieses Problem bieten sich Dienste an, welche 3D-Mockups aus einem beliebigen Cover erzeugen. Einer dieser Dienste ist der 3D-Mockup-Generator von DIY Book Design. Dort wird ein Cover hochgeladen und anschließend kann der gewünschte Mock-Typ gewählt werden. Neben klassischen Büchern, ist es ebenfalls möglich Mockups von elektronischen Lesegeräten wie dem Kindle zu generieren. Wenige Sekunden später kann das gewünschte 3D-Mockup heruntergeladen werden.

Telemetrie unter Windows 10 deaktivieren

Unter Windows 10 existieren eine Reihe von Telemetrie-Funktionalitäten. Diese senden Daten an Microsoft, welche zur Verbesserung des Nutzererlebnisses und angeblich für die Nutzung der Windows Updates benötigt werden.

In der Diensteverwaltung kann der Dienst abgeschaltet werden

Verantwortlich für die Aufzeichnung der Telemetrie ist der Dienst DiagTrack. Dieser kann über die Diensteverwaltung abgeschaltet werden. Dabei muss nach dem Dienst Benutzererfahrung und Telemetrie im verbundenen Modus gesucht werden. In den Eigenschaften des Dienstes wird anschließend der automatische Start unterbunden und der aktuell laufende Dienst beendet. Damit ist die Telemetrie unter Windows 10 abgeschaltet. Nach größeren Windows-Updates sollten die Einstellungen für den Dienst überprüft werden und der Dienst gegebenenfalls wieder deaktiviert werden.

Enumerationen unter Java mit Eigenschaften ausstatten

Im Gegensatz zu vielen anderen Programmiersprachen sind Enumerationen unter Java ein wenig anders gestrickt. Wird eine Enumerationen dort kompiliert entsteht als Ergebnis eine Klasse. Dieser Umstand kann für interessante Dinge genutzt werden. Während in C# der Enum:

public enum Unit {
    PASCAL,
    PSI
}

eine reine Enumeration, mit zwei Werten, darstellt, kann die Enumeration unter Java mit zusätzlicher Funktionalität ausgestattet werden:

public enum Unit {

    PASCAL("Pascal", 1),
    PSI("Pound-force per square inch", 6.895);

    Unit(String name, double conversionFactor) {
        this.name = name;
        this.conversionFactor = conversionFactor;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getConversionFactor() {
        return conversionFactor;
    }

    public void setConversionFactor(double conversionFactor) {
        this.conversionFactor = conversionFactor;
    }

    private String name;
    private double conversionFactor;
}

In diesem Fall erhält die Enumeration zwei zusätzliche Eigenschaften, einen Namen und einen Faktor zur Umrechnung in Pascal. Bei der Definition der einzelnen Werte der Enumeration werden diese zusätzlichen Eigenschaften über den Konstruktor übergeben. In der Nutzung sieht das Ganze dann wie folgt aus:

Unit unit = Unit.PSI;

System.out.println(unit.getName());
System.out.println("Conversion factor to Pascal: " + unit.getConversionFactor());

Mit dieser Herangehensweise lassen sich Enumerationen unter Java einfach mit dazugehörigen Metadaten bzw. zusätzlichen Informationen anreichern.

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.