Wireless Geographic Logging Engine

Bei der Wireless Geographic Logging Engine, kurz WiGLE, handelt es sich um eine Datenbank in welcher WLAN-Netzwerke aufgezeichnet werden. Neben der Position und dem Namen werden anderen Dinge wie die genutzte Verschlüsslung hinterlegt. Mittlerweile sind in der Datenbank über 530 Millionen Netzwerke aufgeführt. Neben dem Fokus auf WLAN, werden ebenfalls Bluetooth-Geräte in der Datenbank aufgeführt.

Die Webseite des Projektes

Eigene Netzwerke können mithilfe der WiGLE-Android-App hinzugefügt werden.

Wigle Wifi Wardriving
Preis: Kostenlos

Für iOS existiert keine WiGLE-App. Allerdings gibt es noch weitere Möglichkeiten Daten zur Datenbank beizutragen. Die Daten selber sind dabei leider nicht unter einer freien Lizenz lizenziert. Zu finden ist das Projekt unter wigle.net.

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.

Aktuelle Datei im Projektbaum in IntelliJ IDEA lokalisieren

Bei der Nutzung einer IDE, in diesem Fall IntelliJ IDEA, hat man öfter das Problem, das man bei der Bearbeitung einer bestimmten Datei in das entsprechende Verzeichnis bzw. die Stelle in der Project View wechseln möchte.

Über das Select In kann die Projekt View aufgerufen werden

Dazu muss im Editor-Fenster die Tastenkombination Alt + F1 gedrückt werden. Damit öffnet sich das Select In. In diesem kann nun der erste Punkte mit dem Namen Project View mittels der Enter-Taste ausgewählt werden. Anschließend wird der aktuelle Ort der Datei in der Project View angezeigt.

Maven-Unterstützung zu einem IntelliJ IDEA Projekt hinzufügen

Wenn man unter IntelliJ IDEA eine Java-Projekt ohne Maven-Unterstützung geladen hat und eine solche benötigt, so kann man diese manuell hinzufügen. Dazu reicht es eine pom.xml Datei dem Projekt hinzuzufügen:

<?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>groupId</groupId>
    <artifactId>TestProject</artifactId>
    <version>1.0-SNAPSHOT</version>

</project>

Einfacher und schneller kann das ganze allerdings mit den Bordmitteln von IntelliJ IDEA gelöst werden.

Die Unterstützung für Maven kann einfach hinzugefügt werden

Die Unterstützung für Maven kann einfach hinzugefügt werden

Dazu muss mit der rechten Maustaste auf das Projekt geklickt werden. Dort wird der Punkt Add Framework support… ausgewählt. Anschließend öffnet sich ein Fenster in dem das gewünschte Framework ausgewählt werden kann. Wählt man hier Maven aus und bestätigt das ganze mit dem OK-Button wird eine pom.xml Datei für das Projekt erzeugt und die IDE erkennt automatisch, das es sich nun um ein Maven-Projekt handelt.

Scrivener Template importieren

Gestern hatte wolle ich eine Projektvorlage in Scrivener importieren. Dazu öffnete ich die scrivtemplate-Datei mittels Scrivener. Anschließend teilte Mac OS X mir mit das die Scrivener-App keine Dateien vom Typ scrivtemplate verarbeiten kann. Das verwundert im ersten Moment natürlich, da die Dateien speziell für Scrivener erstellt wurden.

Der "Neues Projekt"-Dialog unter Scrivener

Der “Neues Projekt”-Dialog unter Scrivener

Statt der intuitiven Variante muss man leider anders vorgehen. Im ersten Schritt wird Scrivener gestartet. Anschließend wird der Neues Projekt-Dialog aufgerufen. In dem Dialog gibt es links unten einen Button mit dem Titel Optionen. In dem sich öffnenden Submenü gibt es dann den Punkt Vorlagen importieren. Mit dieser Funktion kann die scrivtemplate-Datei importiert werden und danach im Neues Projekt-Dialog genutzt werden.