java.util.List kann unter IntelliJ IDEA nicht importiert werden

In der IDE IntelliJ IDEA von JetBrains ist es möglich Imports über die Quick-Fix-Funktionalität vorzunehmen. Allerdings funktionierte dies nicht immer in allen Fällen. So führte folgende Quellcodezeile:

List lines = new ArrayList<>();

zu einem Problem. Das Interface List ist unter java.util.List zu finden, allerdings bot IntelliJ IDEA diesen Import nicht mehr an. Die Lösung für dieses Problem fand sich in den Einstellungen der IDE.

Die Auto Import Einstellungen von IntelliJ IDEA

Dort findet sich unter dem Punkt Editor -> General der Punkt Auto import. Unter diesem Punkt ist eine Liste der Pakete zu finden, welche nicht automatisch importiert werden sollen. Wenn java.util.List aus der Liste herausgenommen wurde, kann es wieder automatisch importiert werden.

10 Jahre alter Bug in JetBrains IDEs

Zur Entwicklung nutze ich in vielen Fällen die IDEs von JetBrains. Aus meiner Sicht sind die IDEs von JetBrains im Grunde großartig. Doch wo Licht ist, da fällt auch Schatten. Wenn man diese IDEs mit einer deutschen Tastaturbelegung nutzt, so wird man desöfteren mit Problemen konfrontiert sein. So ist es z.B. nicht möglich die Tastenkombination für die zeilenweise Auskommentierung zu nutzen. Es funktioniert mit einer deutschen Tastaturbelegung nicht. Manchmal kann man diese Probleme umgehen. Unter macOS würde die Nutzung des Numpads als Workarround in den meisten Fällen mangels Numpad scheitern.

Ein Beispiel für problematische Tastaturkürzel

Bei meiner Suche nach einer Lösung bin ich über einen entsprechenden Bug im Ticketsystem von JetBrains gestolpert: JRE-216. Dieser Bug vom 31. Oktober 2007 ist mittlerweile über 10 Jahre alt und noch immer ungelöst. Er verweist unter anderem auf das Ticket IDEA-165950. Auch in diesem Ticket geht es um die Unterstützung nationaler Tastaturbelegungen. Gelöst ist dieses Ticket nicht; auch wenn es mittlerweile Bestrebung gab, das Problem anzugehen. So heißt es weiter warten, auf eine endgültige Lösung; für ein Problem welches viele Entwickler Zeit, Ärger und Produktivität kostet.

Android Studio unter macOS entfernen

Wenn man das Android Studio unter macOS installiert hat, wird man unter Umständen feststellen dass man es nicht ohne Rückstände wieder deinstallieren kann. Es reicht nicht die Android Studio App zu löschen, stattdessen müssen ein paar Ordner mehr angefasst werden. Wer es sich einfach machen möchte kann folgende Kommandos im Terminal eingeben:

rm -Rf /Applications/Android\ Studio.app
rm -Rf ~/.AndroidStudio*
rm -Rf ~/.gradle
rm -Rf ~/Library/Preferences/AndroidStudio*
rm -Rf ~/Library/Preferences/com.google.android.*
rm -Rf ~/Library/Preferences/com.android.*
rm -Rf ~/Library/Application\ Support/AndroidStudio*
rm -Rf ~/Library/Logs/AndroidStudio*
rm -Rf ~/Library/Caches/AndroidStudio*

Zusätzlich kann man die SDK-Tools und die virtuellen Maschinen für den Android Emulator löschen. Allerdings sollte man hier sicher sein, das sie von keiner anderen Anwendung wie z.B. dem Xamarin Studio noch benötigt werden:

rm -Rf ~/.android
rm -Rf ~/Library/Android*

Größe des Flashspeichers beim NodeMCU ermitteln

Das auf dem ESP8266 basierendem Entwicklungsboard NodeMCU gibt es unterschiedlichen Varianten, die sich unter anderem durch die Größe des Flashspeichers unterscheiden. Möchte man nun ermitteln welche Größe der Speicher beim eigenen NodeMCU-Board hat kann man dies mit einem Programm aus einem der ESP8266-Repositories sehr unkompliziert ermittelt.

Die Größe des Flashspeichers wird über die serielle Schnittstelle ausgegeben

Nachdem die Arduino IDE mit dem Programm geöffnet wurde und das Programm auf das NodeMCU-Board geflasht wurde, kann die Ausgabe über die serielle Schnittstelle ausgelesen werden. Dazu muss der serielle Monitor, im Menü unter Werkzeuge -> Serieller Monitor zu finden, aktiviert werden. Wichtig ist es, dass hier die korrekte Baudrate eingestellt wird.

ESP8266 auf einem Developer-Board unter macOS in Betrieb nehmen

Der ESP8266 ist ein Mikrocontroller welcher vor allem aufgrund seines Preises und seiner Fähigkeiten sehr beliebt in der Bastlerszene ist. Während er ursprünglich als WLAN-Shield für den Arduino und Konsorten gedacht war, wird er immer öfter direkt genutzt. Das sollte auch nicht verwundern, schließlich sind viele Leistungswerte des ESP8266 einem gewöhnlichen Arduino überlegen. Mittlerweile gibt es vom ESP8266 14 Varianten die von ESP-1 bis ESP-14 durchnummeriert sind.

Das NodeMCU-Board

Der einfache Einstieg gelingt mit gelingt am besten mit einem ESP8266-Entwicklerboard. Diese verfügen meist über NodeMCU. Das NodeMCU-Modul basiert dabei auf einem ESP-12. Da der ESP8266 3,3 Volt benötigt, USB allerdings 5 Volt liefert, löst das Entwicklerboard viele Probleme, da es bereits einen Spannungsteiler an Bord hat. Für die Anbindung per seriellem Interface wird unter macOS ein Treiber benötigt. Dieser kann unter anderem auf GitHub gefunden werden. Nach der Installation des Treibers muss der Entwicklungsrechner neu gestartet werden.

Nach der Treiberinstallation kann die Schnittstelle angesprochen werden

Nach dem Neustart kann die Arduino IDE geöffnet werden. Da das Board nicht von Haus aus unterstützt wird, muss eine weitere Konfiguration für den Board Manager hinzugefügt werden. Dazu öffnet man die Einstellungen der Arduino IDE und wählt dort den Punkt Zusätzliche Boardverwalter-URLs aus. Dort fügt man nun die URL:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

hinzu. Anschließend können die Einstellungen geschlossen werden und der Board Manager geöffnet werden. Im Board Manager wird nun nach ESP8266 gesucht und die entsprechende Unterstützung installiert.

Die Unterstützung für die ESP8266-Boards wird installiert

Nachdem die Unterstützung für das Board installiert wurde, muss das ganze noch korrekt konfiguriert werden. In diesem Beispiel wurden folgende Einstellungen genutzt:

Board: "NodeMCU 1.0 (ESP-12E Module)"
CPU Frequency: "80 MHz"
Flash Size: "4M (3M SPIFFS)"
Upload Speed: "9600"
Port: "/dev/cu.wchusbserial1410"

Als Beispiel-Programm bietet sich das Webserver-Beispiel an. Nachdem das Beispielprogramm in der Arduino IDE gelandet ist, kompiliert und hochgeladen wurde kann der erste Test des ESP8266 durchgeführt werden. Dazu muss im Browser die IP-Adresse des Gerätes oder alternativ die URL: http://esp8266.local aufgerufen werden.